Merge remote-tracking branch 'origin/master'
| | |
| | | "safer-buffer": "^2.1.0" |
| | | } |
| | | }, |
| | | "echarts": { |
| | | "version": "5.4.3", |
| | | "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.3.tgz", |
| | | "integrity": "sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==", |
| | | "requires": { |
| | | "tslib": "2.3.0", |
| | | "zrender": "5.4.4" |
| | | }, |
| | | "dependencies": { |
| | | "tslib": { |
| | | "version": "2.3.0", |
| | | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", |
| | | "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" |
| | | } |
| | | } |
| | | }, |
| | | "ee-first": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", |
| | |
| | | "dev": true |
| | | } |
| | | } |
| | | }, |
| | | "zrender": { |
| | | "version": "5.4.4", |
| | | "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.4.4.tgz", |
| | | "integrity": "sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==", |
| | | "requires": { |
| | | "tslib": "2.3.0" |
| | | }, |
| | | "dependencies": { |
| | | "tslib": { |
| | | "version": "2.3.0", |
| | | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", |
| | | "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | "@riophae/vue-treeselect": "^0.4.0", |
| | | "axios": "^0.21.1", |
| | | "core-js": "^3.6.5", |
| | | "echarts": "^5.4.3", |
| | | "element-ui": "^2.3.6", |
| | | "js-cookie": "^2.2.1", |
| | | "js-file-download": "^0.4.12", |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/member/findUnusualPage', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 人åç§»é¤-è§£å» |
| | | export function updateRemoveStatusById (data) { |
| | | return request.post('/business/member/updateRemoveStatusById', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/business/member/exportExcel', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/carEvent/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/cars/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // å建 |
| | | export function create (data) { |
| | | return request.post('/business/cars/create', data) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/business/cars/updateById', data) |
| | | } |
| | | |
| | | // å é¤ |
| | | export function deleteById (id) { |
| | | return request.get(`/business/cars/delete/${id}`) |
| | | } |
| | | |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | | return request.get('/business/cars/delete/batch', { |
| | | params: { |
| | | ids |
| | | } |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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 |
| | | } |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/company/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // å建 |
| | | export function create (data) { |
| | | return request.post('/business/company/create', data) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/business/company/updateById', data) |
| | | } |
| | | |
| | | // é¨é¨ä¿¡æ¯åæ¥ |
| | | export function companySync (data) { |
| | | return request.post('/business/company/sync', data) |
| | | } |
| | | |
| | | // å é¤ |
| | | export function deleteById (id) { |
| | | return request.get(`/business/company/delete/${id}`) |
| | | } |
| | | |
| | | // æ ¹æ®ç±»åæ¥è¯¢ç»ç»ä¿¡æ¯ |
| | | export function findCompanyTreePage (type) { |
| | | return request.get(`/business/company/findCompanyTreePage?type=${type}`) |
| | | } |
| | | |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | | return request.get('/business/company/delete/batch', { |
| | | params: { |
| | | ids |
| | | } |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/device/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/business/device/updateById', data) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/deviceEvent/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/business/deviceEvent/exportExcel', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/deviceRole/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // å建 |
| | | export function create (data) { |
| | | return request.post('/business/deviceRole/create', data) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/business/deviceRole/updateById', data) |
| | | } |
| | | |
| | | // å é¤ |
| | | export function deleteById (id) { |
| | | return request.get(`/business/deviceRole/delete/${id}`) |
| | | } |
| | | |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | | return request.get('/business/deviceRole/delete/batch', { |
| | | params: { |
| | | ids |
| | | } |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/empower/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/business/empower/exportExcel', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
| | | |
| | | // å建 |
| | | export function create (data) { |
| | | return request.post('/business/empower/create', data) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/business/empower/updateById', data) |
| | | } |
| | | |
| | | // å é¤ |
| | | export function deleteById (id) { |
| | | return request.get(`/business/empower/delete/${id}`) |
| | | } |
| | | |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | | return request.get('/business/empower/delete/batch', { |
| | | params: { |
| | | ids |
| | | } |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | // return request.post('/business/member/page', data, { |
| | | // trim: true |
| | | // }) |
| | | return request.post('/business/member/findMemberInfoPage', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/business/member/exportExcel', data, { |
| | | trim: true, |
| | | download: 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 batchBlock (ids) { |
| | | return request.get(`/business/member/batchBlock?ids=${ids}`) |
| | | } |
| | | |
| | | // å é¤ |
| | | export function deleteById (id) { |
| | | return request.get(`/business/member/delete/${id}`) |
| | | } |
| | | |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | | return request.get('/business/member/delete/batch', { |
| | | params: { |
| | | ids |
| | | } |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/parks/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/problemLog/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/business/problemLog/exportExcel', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/problems/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // å建 |
| | | export function create (data) { |
| | | return request.post('/business/problems/create', data) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/business/problems/updateById', data) |
| | | } |
| | | |
| | | // å é¤ |
| | | export function deleteById (id) { |
| | | return request.get(`/business/problems/delete/${id}`) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/retention/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/business/retention/exportExcel', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
| | | |
| | | // å建 |
| | | export function create (data) { |
| | | return request.post('/business/retention/create', data) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/business/retention/updateById', data) |
| | | } |
| | | |
| | | // å é¤ |
| | | export function deleteById (id) { |
| | | return request.get(`/business/retention/delete/${id}`) |
| | | } |
| | | |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | | return request.get('/business/retention/delete/batch', { |
| | | params: { |
| | | ids |
| | | } |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/visitEvent/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/visits/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/business/visits/exportExcel', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
| | | |
| | | // å建 |
| | | export function create (data) { |
| | | return request.post('/business/visits/create', data) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/business/visits/updateById', data) |
| | | } |
| | | |
| | | // å é¤ |
| | | export function deleteById (id) { |
| | | return request.get(`/business/visits/delete/${id}`) |
| | | } |
| | | |
| | | // æ ¹æ®IDæ¥è¯¢ |
| | | export function queryById (id) { |
| | | return request.get(`/business/visits/${id}`) |
| | | } |
| | | |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | | return request.get('/business/visits/delete/batch', { |
| | | params: { |
| | | ids |
| | | } |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | width="500px" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="车çå·" prop="code"> |
| | | <el-input v-model="form.code" placeholder="请è¾å
¥è½¦çå·" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ç¨æ·ç±»å" prop="code"> |
| | | <el-radio-group v-model="form.code"> |
| | | <el-radio label="å
é¨åå·¥"></el-radio> |
| | | <el-radio label="å³å¡äººå"></el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="éæ©ç¨æ·" prop="code"> |
| | | <el-select v-model="form.code" filterable placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æææææ" prop="code"> |
| | | <el-date-picker |
| | | v-model="form.code" |
| | | type="daterange" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ææå车åº" prop="code"> |
| | | <el-radio-group v-model="form.code"> |
| | | <el-radio label="å
¨é¨å车åº"></el-radio> |
| | | <el-radio label="é¨åå车åº"></el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | export default { |
| | | name: 'OperaCarsWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | code: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | }, |
| | | options: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/cars', |
| | | 'field.id': 'id' |
| | | }) |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="å
¬å¸ç±»å" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥å
¬å¸ç±»å" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select v-model="form.status" placeholder="è¯·éæ©"> |
| | | <el-option label="å¯ç¨" value="0"></el-option> |
| | | <el-option label="ç¦ç¨" value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input type="textarea" v-model="form.remark" 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: 'OperaCategoryWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | name: '', |
| | | remark: '', |
| | | status: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [ |
| | | { required: true, message: '请è¾å
¥å
¬å¸ç±»å', trigger: 'blur' } |
| | | ], |
| | | status: [ |
| | | { required: true, message: 'è¯·éæ©æ¯å¦å¯ç¨', trigger: 'change' } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/category', |
| | | 'field.id': 'id' |
| | | }) |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="å
¬å¸ç¼ç " prop="code"> |
| | | <el-input v-model="form.code" placeholder="请è¾å
¥å
¬å¸ç¼ç " v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="å
¬å¸ç±»å" prop="type"> |
| | | <el-select v-model="form.type" placeholder="è¯·éæ©"> |
| | | <el-option label="å³å¡å
¬å¸" :value="0"></el-option> |
| | | <el-option label="å
é¨ç»ç»" :value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="è系人" prop="linkName"> |
| | | <el-input v-model="form.linkName" placeholder="请è¾å
¥è系人" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ææºå·" prop="linkPhone"> |
| | | <el-input type="number" v-model="form.linkPhone" maxlength="11" 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: 'OperaCompanyWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | name: '', |
| | | type: '', |
| | | code: '', |
| | | linkName: '', |
| | | linkPhone: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [ |
| | | { required: true, message: '请è¾å
¥å
¬å¸åç§°', trigger: 'blur' } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/company', |
| | | 'field.id': 'id' |
| | | }) |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="é¨ç¦ç»åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥é¨ç¦ç»åç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ææé¨ç¦" prop="doorIds"> |
| | | <el-radio-group v-model="form.doorIds"> |
| | | <el-radio :label="3">访客</el-radio> |
| | | <el-radio :label="6">å³å¡äººå</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | export default { |
| | | name: 'OperaDeviceRoleWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | name: '', |
| | | doorIds: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/deviceRole', |
| | | 'field.id': 'id' |
| | | }) |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦é»è®¤" prop="isDefault"> |
| | | <el-switch |
| | | v-model="form.isDefault" |
| | | active-color="#13ce66" |
| | | inactive-color="#ff4949" |
| | | :active-value="1" |
| | | :inactive-value="0"> |
| | | </el-switch> |
| | | </el-form-item> |
| | | <el-form-item label="ææé¨ç¦" prop="doorIds"> |
| | | <el-radio-group v-model="form.doorIds"> |
| | | <el-radio :label="3">å
¨é¨é¨ç¦</el-radio> |
| | | <el-radio :label="6">é¨åé¨ç¦</el-radio> |
| | | </el-radio-group> |
| | | <el-checkbox-group v-model="form.doorIds"> |
| | | <el-checkbox label="é¨ç¦A"></el-checkbox> |
| | | <el-checkbox label="é¨ç¦B"></el-checkbox> |
| | | <el-checkbox label="é¨ç¦C"></el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | export default { |
| | | name: 'OperaDeviceRoleWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | name: '', |
| | | isDefault: '', |
| | | doorIds: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/deviceRole', |
| | | 'field.id': 'id' |
| | | }) |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="é¨ç¦åç§°" prop="title"> |
| | | <el-input v-model="form.title" placeholder="请è¾å
¥é¨ç¦åç§°" v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | export default { |
| | | name: 'OperaDeviceWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | title: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | title: [ |
| | | { required: true, message: '请è¾å
¥é¨ç¦åç§°' } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/device', |
| | | 'field.id': 'id' |
| | | }) |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="form.name" 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: 'OperaInternalCompanyWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | name: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/company', |
| | | 'field.id': 'id' |
| | | }) |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="é¢ç®" prop="title"> |
| | | <el-input v-model="form.title" placeholder="请è¾å
¥é¢ç®" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="é¢ç®ç±»å" prop="type"> |
| | | <el-select v-model="form.type" 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="useType"> |
| | | <el-radio-group v-model="form.useType"> |
| | | <el-radio :label="0">å³å¡äººå</el-radio> |
| | | <el-radio :label="1">æ®é访客</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="é¢ç®é¡ºåº(ååº)" prop="sortnu"> |
| | | <el-input v-model="form.sortnu" placeholder="请è¾å
¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="é项éå" prop="options" v-if="form.type === '1' || form.type === '2'"> |
| | | <el-button type="primary" style="width: 120px; margin-bottom: 15px;" @click="add" icon="el-icon-plus">æ·»å é项</el-button> |
| | | <el-tabs v-model="editableTabsValue" type="card" closable @tab-remove="removeTab"> |
| | | <el-tab-pane |
| | | v-for="item in problems" |
| | | :key="item.name" |
| | | :label="item.name" |
| | | :name="item.id" |
| | | > |
| | | <el-input v-model="item.val" placeholder="请è¾å
¥" v-trim/> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </el-form-item> |
| | | <el-form-item label="æ£ç¡®çæ¡" prop="answer"> |
| | | <el-select v-model="form.answer" multiple placeholder="è¯·éæ©æ£ç¡®çæ¡"> |
| | | <el-option |
| | | v-for="item in problems" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | export default { |
| | | name: 'OperaProblemsWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | title: '', |
| | | options: '', |
| | | answer: '', |
| | | sortnu: '', |
| | | type: '', |
| | | useType: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | }, |
| | | editableTabsValue: '0', |
| | | problems: [ |
| | | { name: '鿩A', val: '', id: '0' } |
| | | ], |
| | | arr: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/problems', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | removeTab (e) { |
| | | this.problems.splice(e, 1) |
| | | if (e === this.editableTabsValue) { |
| | | this.editableTabsValue = '0' |
| | | } |
| | | this.problems.forEach((item, index) => { |
| | | item.name = 'é项' + this.arr[index] |
| | | item.id = index.toString() |
| | | }) |
| | | }, |
| | | add () { |
| | | const name = 'é项' + this.arr[this.problems.length] |
| | | this.problems.push({ name, val: '', id: this.problems.length.toString() }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | width="60%" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <div class="list"> |
| | | <div class="list_item"> |
| | | <div class="list_item_label">æè®¿ä¿¡æ¯</div> |
| | | <div class="list_item_val" v-if="info"> |
| | | <div class="list_item_val_item">æè®¿å¯¹æ¹ï¼{{info.receptMemberName}} - {{info.receptMemberDepartment}}</div> |
| | | <div class="list_item_val_item">æè®¿æ¶é´ï¼{{info.starttime}} è³ {{info.endtime}}</div> |
| | | <div class="list_item_val_item">æè®¿äºç±ï¼{{info.reason}}</div> |
| | | <div class="list_item_val_item">ç³è¯·äººåï¼{{info.name}} {{info.companyName}}</div> |
| | | <div class="list_item_val_item">ç³è¯·é¨ç¦ï¼{{info.deviceList ? info.deviceList.map(item => item.name).join(',') : ''}}</div> |
| | | <div class="list_item_val_item">å建æ¶é´ï¼{{info.createDate}}</div> |
| | | </div> |
| | | </div> |
| | | <div class="list_item"> |
| | | <div class="list_item_label">访客信æ¯</div> |
| | | <div class="list_item_info" v-if="info">é访车è¾ï¼{{info.carNos}}</div> |
| | | <div class="list_item_table" v-if="info"> |
| | | <el-table |
| | | :data="info.lwWithUserList ? info.lwWithUserList : []" |
| | | border |
| | | :header-cell-style="{background: '#dcdde2', color: 'rgb(51, 51, 51)'}" |
| | | style="width: 100%"> |
| | | <el-table-column |
| | | prop="name" |
| | | label="å§å"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æ§å«"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.sex === 1">ç·</span> |
| | | <span v-if="row.sex === 2">女</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="birthday" |
| | | label="å¹´é¾"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="phone" |
| | | label="ææºå·"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="è¯ä»¶ç±»å"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.idcardType === 0">身份è¯</span> |
| | | <span v-if="row.idcardType === 1">港澳è¯ä»¶</span> |
| | | <span v-if="row.idcardType === 2">æ¤ç
§</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="idcardNo" |
| | | label="身份è¯å·ç "> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="companyName" |
| | | label="å
¬å¸"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="faceImg" |
| | | label="人è¸ç
§ç"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="imgurl" |
| | | label="å¥åº·è¯"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="list_item">--> |
| | | <!-- <div class="list_item_label">å®¡æ¹æµç¨</div>--> |
| | | <!-- <div class="list_item_status">--> |
| | | <!-- <div class="list_item_status_item" v-for="(item, index) in 3" :key="index">--> |
| | | <!-- <div class="dian"></div>--> |
| | | <!-- <div class="xian"></div>--> |
| | | <!-- <div class="status_info">--> |
| | | <!-- <span class="status_info_a">å¼ ä¸æäº¤çå³å¡å
¥åç³è¯·</span>--> |
| | | <!-- <span class="status_info_b">çç»çï¼å·²åæï¼</span>--> |
| | | <!-- <div class="status_info_c">æ¥è®¿åè§å·¥åï¼æé¢å¯¼æ¹å</div>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | </div> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { queryById } from '@/api/business/visits' |
| | | export default { |
| | | name: 'OperaVisitsWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | list: [], |
| | | info: null |
| | | } |
| | | }, |
| | | methods: { |
| | | open (title, id) { |
| | | this.title = title |
| | | this.visible = true |
| | | queryById(id) |
| | | .then(res => { |
| | | console.log(res) |
| | | this.info = res |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .list { |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | .list_item { |
| | | width: 100%; |
| | | margin-bottom: 30px; |
| | | &:last-child { |
| | | margin-bottom: 0 !important; |
| | | } |
| | | .list_item_label { |
| | | font-size: 18px; |
| | | font-weight: 600; |
| | | color: #000000; |
| | | margin-bottom: 15px; |
| | | } |
| | | .list_item_info { |
| | | font-size: 14px; |
| | | color: #222222; |
| | | margin-bottom: 10px; |
| | | } |
| | | .list_item_status { |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | .list_item_status_item { |
| | | width: 100%; |
| | | max-height: 100px; |
| | | position: relative; |
| | | margin-bottom: 30px; |
| | | .dian { |
| | | width: 15px; |
| | | height: 15px; |
| | | border-radius: 50%; |
| | | background: #ffb447; |
| | | position: absolute; |
| | | left: 0; |
| | | top: 50%; |
| | | transform: translate(0, -50%); |
| | | } |
| | | .xian { |
| | | width: 1px; |
| | | height: calc(100% + 30px); |
| | | background: #ffb447; |
| | | position: absolute; |
| | | top: 50%; |
| | | left: 7px; |
| | | transform: translate(-50%, 0); |
| | | } |
| | | .status_info { |
| | | /*width: 100%;*/ |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | margin-left: 30px; |
| | | box-sizing: border-box; |
| | | .status_info_a { |
| | | font-size: 16px; |
| | | color: black; |
| | | margin-bottom: 10px; |
| | | } |
| | | .status_info_b { |
| | | font-size: 13px; |
| | | color: #666666; |
| | | margin-bottom: 10px; |
| | | } |
| | | .status_info_c { |
| | | padding: 5px 10px; |
| | | background: #ececec; |
| | | font-size: 13px; |
| | | color: black; |
| | | border-radius: 5px; |
| | | box-sizing: border-box; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .list_item_val { |
| | | width: 100%; |
| | | margin-bottom: 15px; |
| | | &:last-child { |
| | | margin-bottom: 0 !important; |
| | | } |
| | | .list_item_val_item { |
| | | font-size: 14px; |
| | | color: #222222; |
| | | margin-bottom: 5px; |
| | | &:last-child { |
| | | margin-bottom: 0 !important; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <h1 :class="{hidden: menuData.collapse}">è±ç±³è·³è·³</h1> |
| | | </div> |
| | | <scrollbar> |
| | | <!-- :default-openeds="defaultOpeneds"--> |
| | | <el-menu |
| | | ref="menu" |
| | | :unique-opened="true" |
| | | :default-active="activeIndex" |
| | | text-color="#fff" |
| | | active-text-color="#fff" |
| | | :collapse="menuData.collapse" |
| | | :default-openeds="defaultOpeneds" |
| | | :collapse-transition="false" |
| | | @select="handleSelect" |
| | | > |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <!-- <div class="tree">--> |
| | | <!-- <div v-for="(item, index) of list" :key="index" @click.stop="clickIten(item)">--> |
| | | <!-- <div class="tree_item">--> |
| | | <!-- <i class="el-icon-caret-bottom" :class="{ 'activeColor': item[defaultProps.status] }" v-show="item[defaultProps.status] && item[defaultProps.children]"></i>--> |
| | | <!-- <i class="el-icon-caret-right color" v-show="item[defaultProps.children] && !item[defaultProps.status]"></i>--> |
| | | <!-- <div class="tree_item_label long-title-style" :title="item[defaultProps.name]" :class="{ 'activeColor': item[defaultProps.status] && !item[defaultProps.children] }">{{ item[defaultProps.name] }}</div>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="tree_childern" v-show="item[defaultProps.status]">--> |
| | | <!-- <tree--> |
| | | <!-- :list="item[defaultProps.children]"--> |
| | | <!-- :defaultProps="defaultProps"--> |
| | | <!-- @callback="callback"--> |
| | | <!-- />--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <div class="tree"> |
| | | <div v-for="(item, index) in list" :key="index" @click.stop="clickIten(item)"> |
| | | <div class="tree_item"> |
| | | <i class="el-icon-caret-bottom" :class="{ 'activeColor': item.status }" v-show="item.status === 1 && item.companyDTOList.length > 0"></i> |
| | | <i class="el-icon-caret-right color" v-show="item.companyDTOList.length > 0 && item.status === 0"></i> |
| | | <div class="tree_item_label long-title-style" :title="item.name" :class="{ 'activeColor': item.status === 1 && item.companyDTOList.length === 0 }">{{ item.name }}</div> |
| | | </div> |
| | | <div class="tree_childern" v-show="item.status === 1"> |
| | | <tree |
| | | :list="item.companyDTOList" |
| | | :defaultProps="defaultProps" |
| | | @callback="callback" |
| | | /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | // import Bus from '@/utils/eventBus' |
| | | export default { |
| | | name: 'tree', |
| | | props: { |
| | | list: { |
| | | type: Array, |
| | | required: false, |
| | | default: () => [] |
| | | }, |
| | | defaultProps: { |
| | | type: Object, |
| | | require: false, |
| | | default: () => { |
| | | return { |
| | | name: 'name', |
| | | status: 'status', |
| | | children: 'children', |
| | | id: 'id' |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | tempItem: { |
| | | id: null, |
| | | name: null |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | // ç¹å»å½å项 |
| | | clickIten (item) { |
| | | this.recursion(this.list) |
| | | item.status === 0 ? item.status = 1 : item.status = 0 |
| | | // item[this.defaultProps.status] = !item[this.defaultProps.status] |
| | | // this.list.forEach(subItem => { |
| | | // if ((subItem[this.defaultProps.id] !== item[this.defaultProps.id] && subItem[this.defaultProps.status]) || (this.list.length === 1 && subItem[this.defaultProps.status] === false)) { |
| | | // subItem[this.defaultProps.status] = false |
| | | // if (subItem[this.defaultProps.children]) { |
| | | // this.recursion(subItem[this.defaultProps.children]) |
| | | // } |
| | | // } |
| | | // }) |
| | | // if (this.tempItem.id === item[this.defaultProps.id]) { |
| | | // this.tempItem = { |
| | | // id: null, |
| | | // name: null |
| | | // } |
| | | // } else { |
| | | // this.tempItem.id = item[this.defaultProps.id] |
| | | // this.tempItem.name = item[this.defaultProps.name] |
| | | // } |
| | | |
| | | this.$emit('callback', item) |
| | | }, |
| | | // é彿¹æ³ |
| | | recursion (children) { |
| | | // children.forEach(item => { |
| | | // item[this.defaultProps.status] = false |
| | | // if (item[this.defaultProps.children]) { |
| | | // this.recursion(item[this.defaultProps.children]) |
| | | // } |
| | | // }) |
| | | children.forEach(item => { |
| | | item.status = 0 |
| | | if (item.companyDTOList.length > 0) { |
| | | this.recursion(item.companyDTOList) |
| | | } |
| | | }) |
| | | }, |
| | | callback (data, item) { |
| | | if (this.tempItem.id === data.id) { |
| | | this.tempItem = {} |
| | | } else { |
| | | this.tempItem.id = data.id |
| | | this.tempItem.name = data.name |
| | | } |
| | | this.$emit('callback', this.tempItem, item) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .tree { |
| | | /*width: 100%;*/ |
| | | /*height: auto;*/ |
| | | /*border-radius: 5px;*/ |
| | | /*overflow: hidden;*/ |
| | | /*border: 1px solid #eeeeee;*/ |
| | | /*box-sizing: border-box;*/ |
| | | .tree_childern { |
| | | margin-left: 20px; |
| | | } |
| | | .activeItem { |
| | | background: #F4F7FC; |
| | | } |
| | | .tree_item { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 48px; |
| | | cursor: pointer; |
| | | padding-left: 10px; |
| | | .tree_item_label { |
| | | font-size: 14px; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | white-space: nowrap; |
| | | } |
| | | i { |
| | | margin-right: 5px; |
| | | } |
| | | .color { |
| | | color: #999999 !important; |
| | | } |
| | | .activeColor { |
| | | color: #305ED5 !important; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | overflow: hidden; |
| | | // 左边èå |
| | | .el-aside { |
| | | width: $menu-width !important; |
| | | width: 250px !important; |
| | | flex-shrink: 0; |
| | | height: 100%; |
| | | overflow-y: auto; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="table-layout"> |
| | | <!-- å¤´é¨ --> |
| | | <div v-if="withBreadcrumb" class="table-header"> |
| | | <el-breadcrumb separator="/"> |
| | | <el-breadcrumb-item v-for="path in paths" :key="path">{{path}}</el-breadcrumb-item> |
| | | </el-breadcrumb> |
| | | </div> |
| | | <Profile :roles="roles" :permissions="permissions"> |
| | | <div style="width: 100%; height: 100%; padding: 0 16px; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between;"> |
| | | <div style="width: 300px; height: 100%; flex-shrink: 0; background: #ffffff;"> |
| | | <slot name="menu"></slot> |
| | | </div> |
| | | <div style="width: calc(100% - 310px); height: 100%"> |
| | | <!-- æç´¢è¡¨åé¨å --> |
| | | <div class="table-search-form" style="padding: 0 !important;"> |
| | | <div class="form-wrap"> |
| | | <slot name="search-form"></slot> |
| | | </div> |
| | | </div> |
| | | <slot name="space"></slot> |
| | | <!-- å表åå页é¨å --> |
| | | <div class="table-content" style="padding: 0 !important;"> |
| | | <div class="table-wrap"> |
| | | <slot name="table-wrap"></slot> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </Profile> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Profile from '../components/common/Profile' |
| | | export default { |
| | | name: 'TableLayout1', |
| | | components: { Profile }, |
| | | props: { |
| | | // è§è² |
| | | roles: { |
| | | type: Array |
| | | }, |
| | | // æé |
| | | permissions: { |
| | | type: Array |
| | | }, |
| | | // æ¯å¦å±ç¤ºå¤´é¨é¢å
å± |
| | | withBreadcrumb: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | }, |
| | | computed: { |
| | | paths () { |
| | | return this.$route.meta.paths |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import "@/assets/style/variables.scss"; |
| | | .table-layout { |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | .not-allow-wrap { |
| | | padding-top: 0; |
| | | } |
| | | } |
| | | // å¤´é¨ |
| | | .table-header { |
| | | overflow: hidden; |
| | | padding: 12px 16px; |
| | | flex-shrink: 0; |
| | | // 页é¢è·¯å¾ |
| | | .el-breadcrumb { |
| | | .el-breadcrumb__item { |
| | | .el-breadcrumb__inner { |
| | | color: #ABB2BE; |
| | | font-size: 12px; |
| | | } |
| | | &:last-of-type .el-breadcrumb__inner { |
| | | color: #606263; |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // æç´¢ |
| | | .table-search-form { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | /*padding: 0 16px;*/ |
| | | /*box-sizing: border-box;*/ |
| | | .form-wrap { |
| | | padding: 16px 16px 0 16px; |
| | | width: 100%; |
| | | background: #fff; |
| | | &:empty { |
| | | padding: 0; |
| | | } |
| | | } |
| | | section { |
| | | display: inline-block; |
| | | margin-left: 16px; |
| | | margin-bottom: 18px; |
| | | } |
| | | } |
| | | // å表åå页 |
| | | .table-content { |
| | | margin-top: 10px; |
| | | /*padding: 0 16px;*/ |
| | | .table-wrap { |
| | | padding: 16px 16px 0 16px; |
| | | background: #fff; |
| | | // å·¥å
·æ |
| | | .toolbar { |
| | | border-bottom: 1px solid #eee; |
| | | padding-bottom: 10px; |
| | | li { |
| | | display: inline-block; |
| | | margin-right: 6px; |
| | | } |
| | | } |
| | | // è¡¨æ ¼ |
| | | .el-table { |
| | | th { |
| | | .cell { |
| | | color: #666; |
| | | } |
| | | } |
| | | // å¤éæ¡å |
| | | .el-table-column--selection { |
| | | .cell { |
| | | text-align: center !important; |
| | | } |
| | | } |
| | | // å¤å¼å段 |
| | | .table-column-strings { |
| | | ul { |
| | | li { |
| | | display: inline-block; |
| | | background: #eee; |
| | | border-radius: 3px; |
| | | padding: 0 3px; |
| | | margin-right: 3px; |
| | | margin-bottom: 3px; |
| | | } |
| | | } |
| | | } |
| | | // æ è§è§è°æ´ |
| | | [class*=el-table__row--level] .el-table__expand-icon { |
| | | position: relative; |
| | | left: -6px; |
| | | margin-right: 0; |
| | | } |
| | | } |
| | | // å页 |
| | | .table-pagination { |
| | | padding: 16px 0; |
| | | text-align: left; |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:member:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥è®¿å®¢åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <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="å
¬å¸åç§°" prop="code"> |
| | | <el-input v-model="searchForm.code" placeholder="请è¾å
¥å·¥å·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æä½äººå" prop="code"> |
| | | <el-select v-model="searchForm.code" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="人åç±»å" prop="companyId"> |
| | | <el-select v-model="searchForm.code" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </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:member:create', 'business:member:delete']"> |
| | | <li><el-button type="primary" v-permissions="['business:member:create']">ç§»åº</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="name" label="å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="ææºå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="idcard_id" label="身份è¯å·ç " min-width="100px"></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 === 1">æ®é访客</span> |
| | | <span v-if="row.type === 2">å
é¨äººå</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="company_id" label="å
¬å¸" min-width="100px"></el-table-column> |
| | | <el-table-column prop="edit_date" label="æä½æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editor" label="æä½äºº" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:member:update', 'business:member:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" icon="el-icon-edit" v-permissions="['business:member:update']">ç§»åº</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | export default { |
| | | name: 'blackmailPersonnel', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | companyId: '', |
| | | name: '', |
| | | code: '', |
| | | status: 2, |
| | | type: 1 |
| | | }, |
| | | options: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '人åä¿¡æ¯è¡¨', |
| | | api: '/business/member', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:category:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="车çå·" prop="plateNos"> |
| | | <el-input v-model="searchForm.plateNos" placeholder="请è¾å
¥è½¦çå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å§å/ææºå·" prop="plateNos"> |
| | | <el-input v-model="searchForm.plateNos" placeholder="请è¾å
¥å§å/ææºå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å
¬å¸/é¨é¨åç§°" prop="plateNos"> |
| | | <el-input v-model="searchForm.plateNos" placeholder="请è¾å
¥å
¬å¸/é¨é¨åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="人åç±»å" prop="plateNos"> |
| | | <el-select v-model="searchForm.plateNos" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="äºä»¶ç±»å" prop="eventType"> |
| | | <el-select v-model="searchForm.eventType" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´" prop="eventType"> |
| | | <el-date-picker |
| | | v-model="searchForm.eventType" |
| | | type="daterange" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-radio-group v-model="searchForm.eventType" size="small"> |
| | | <el-radio-button label="å½å¤©"></el-radio-button> |
| | | <el-radio-button label="è¿7天"></el-radio-button> |
| | | <el-radio-button label="è¿30天"></el-radio-button> |
| | | </el-radio-group> |
| | | <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" v-permissions="['business:member:create']">导åº</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | > |
| | | <el-table-column prop="plateNos" label="车çå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="plateNos" label="å½å±ç¨æ·ç±»å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="plateNos" label="å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="plateNos" label="ææºå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="plateNos" label="å
¬å¸/é¨é¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="parkName" label="å车åºåç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="gateName" label="åºå
¥å£åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="eventType" label="äºä»¶ç±»å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="inoutType" label="åºå
¥ç±»å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.inoutType === 0">è¿åº</span> |
| | | <span v-if="row.inoutType === 1">åºåº</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="vehiclePicUrl" label="ææå¾ç" min-width="100px"></el-table-column> |
| | | <el-table-column prop="happenTime" label="äºä»¶æ¶é´" min-width="100px"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | export default { |
| | | name: 'CarEvent', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | eventType: '', |
| | | plateNos: '' |
| | | }, |
| | | options: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'å车åºäºä»¶æ¨éè®°å½è¡¨', |
| | | api: '/business/carEvent', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:member:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="120px" inline> |
| | | <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="åå·¥å§å/ææºå·" prop="code"> |
| | | <el-input v-model="searchForm.code" placeholder="请è¾å
¥åå·¥å§å/ææºå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="é¨é¨" prop="code"> |
| | | <el-select v-model="value" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </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:member:create', 'business:member:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaCarsWindow.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="code" label="车çå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="code" label="å车åº" min-width="100px"></el-table-column> |
| | | <el-table-column prop="remark" label="ç¨æ·ç±»å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="remark" label="å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="remark" label="ææºå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="remark" label="é¨é¨/å
¬å¸" min-width="100px"></el-table-column> |
| | | <el-table-column prop="remark" label="夿³¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="remark" label="æææ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:member:update', 'business:member:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaCarsWindow.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> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaCarsWindow ref="operaCarsWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaCarsWindow from '@/components/business/OperaCarsWindow' |
| | | export default { |
| | | name: 'Cars', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaCarsWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | code: '' |
| | | }, |
| | | options: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '车è¾ä¿¡æ¯è¡¨', |
| | | api: '/business/cars', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:category:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select v-model="searchForm.status" placeholder="è¯·éæ©"> |
| | | <el-option label="å¯ç¨" 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: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="name" label="å
¬å¸ç±»å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="remark" label="夿³¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.status === 0">å¯ç¨</span> |
| | | <span v-if="row.status === 1">ç¦ç¨</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" 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: { |
| | | name: '', |
| | | status: '' |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'å类信æ¯è¡¨', |
| | | api: '/business/category', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:company:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="å
¬å¸åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å
¬å¸ç±»å" prop="type" @keypress.enter.native="search"> |
| | | <el-select v-model="searchForm.type" placeholder="è¯·éæ©"> |
| | | <el-option label="å³å¡å
¬å¸" value="0"></el-option> |
| | | <el-option label="å
é¨ç»ç»" value="1"></el-option> |
| | | </el-select> |
| | | </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="linkPhone"> |
| | | <el-input v-model="searchForm.linkPhone" 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:company:create', 'business:company:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaCompanyWindow.open('æ°å¢')" icon="el-icon-plus" v-permissions="['business:company:create']">æ°å»º</el-button></li> |
| | | <!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:company: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="name" label="å
¬å¸" min-width="100px"></el-table-column> |
| | | <el-table-column prop="type" label="å
¬å¸ç±»å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.type === 0">å³å¡å
¬å¸</span> |
| | | <span v-if="row.type === 1">å
é¨ç»ç»</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="code" label="å
¬å¸ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="num" label="å³å¡äººæ°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="linkName" label="è´è´£äºº" min-width="100px"></el-table-column> |
| | | <el-table-column prop="linkPhone" label="èç³»çµè¯" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-switch |
| | | v-model="row.status" |
| | | active-color="#13ce66" |
| | | inactive-color="#ff4949"> |
| | | </el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="creator" label="å建人" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:company:update', 'business:company:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaCompanyWindow.open('ç¼è¾', row)" icon="el-icon-edit" v-permissions="['business:company:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:company:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaCompanyWindow ref="operaCompanyWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaCompanyWindow from '@/components/business/OperaCompanyWindow' |
| | | export default { |
| | | name: 'Company', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaCompanyWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | type: '', |
| | | linkName: '', |
| | | linkPhone: '' |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'ä¼ä¸ä¿¡æ¯è¡¨', |
| | | api: '/business/company', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:company: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" placeholder="请è¾å
¥é¨ç¦åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="é¨ç¦ç级" prop="level"> |
| | | <el-select v-model="searchForm.level" placeholder="è¯·éæ©é¨ç¦ç级" @keypress.enter.native="search"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </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"> |
| | | <li><el-button type="primary">忥</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | > |
| | | <el-table-column prop="manufature" label="åå" min-width="100px"></el-table-column> |
| | | <el-table-column prop="no" label="设å¤ç¼å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="title" label="é¨ç¦åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="level" label="é¨ç¦ç级" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="设å¤ç¶æ 0ç¦ç¨ 1å¯ç¨" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.status === 0">ç¦ç¨</span> |
| | | <span v-if="row.status === 1">å¯ç¨</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:company:update'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaDeviceWindow.open('ç¼è¾è®¾å¤ä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:company:update']">ç¼è¾</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaDeviceWindow ref="operaDeviceWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaDeviceWindow from '@/components/business/OperaDeviceWindow' |
| | | export default { |
| | | name: 'Device', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaDeviceWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | title: '', |
| | | level: '' |
| | | }, |
| | | options: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '设å¤ä¿¡æ¯è¡¨', |
| | | api: '/business/device', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:member:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="å§å/ææºå·" prop="eventType"> |
| | | <el-input v-model="searchForm.eventType" placeholder="请è¾å
¥å§å/ææºå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å
¬å¸/ç»ç»åç§°" prop="eventType"> |
| | | <el-input v-model="searchForm.eventType" placeholder="请è¾å
¥å
¬å¸/ç»ç»åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="人åç±»å" prop="userType"> |
| | | <el-select v-model="searchForm.userType" placeholder="è¯·éæ©"> |
| | | <el-option label="æªç¥" 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-select> |
| | | </el-form-item> |
| | | <el-form-item label="äºä»¶ç±»å" prop="eventType"> |
| | | <el-select v-model="searchForm.eventType" placeholder="è¯·éæ©"> |
| | | <el-option label="æªç¥" 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-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´" prop="eventType"> |
| | | <el-date-picker |
| | | v-model="searchForm.eventType" |
| | | type="daterange" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-radio-group v-model="searchForm.eventType" size="small"> |
| | | <el-radio-button label="å½å¤©"></el-radio-button> |
| | | <el-radio-button label="è¿7天"></el-radio-button> |
| | | <el-radio-button label="è¿30天"></el-radio-button> |
| | | </el-radio-group> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:member:exportExcel']" @click="exportExcel">导åº</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | > |
| | | <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> |
| | | </template> |
| | | </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="idcard" label="身份è¯å·ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="company" label="å
¬å¸/ç»ç»" min-width="100px"></el-table-column> |
| | | <el-table-column prop="srcName" label="é¨ç¦åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="srcName" label="é¨ç¦ç¹" min-width="100px"></el-table-column> |
| | | <el-table-column prop="eventType" label="äºä»¶ç±»å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="eventType" label="åºå
¥ç±»å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="extEventPictureURL" label="ææç
§ç" min-width="100px"></el-table-column> |
| | | <el-table-column prop="happenTime" label="äºä»¶æ¶é´" min-width="100px"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | export default { |
| | | name: 'DeviceEvent', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | eventType: '', |
| | | userType: '' |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'é¨ç¦äºä»¶æ¨éè®°å½è¡¨', |
| | | api: '/business/deviceEvent', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:company:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="é¨ç¦ç»åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥é¨ç¦ç»åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:company:create', 'business:company:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaDeviceRoleWindow.open('æ°å»ºé¨ç¦è§è²ä¿¡æ¯è¡¨')" icon="el-icon-plus" v-permissions="['business:company:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:company: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="name" label="é¨ç¦ç»åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="使ç¨äººæ°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="isDefault" label="æ¯å¦é»è®¤" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-switch |
| | | v-model="row.isDefault" |
| | | active-color="#13ce66" |
| | | inactive-color="#ff4949" |
| | | :active-value="1" |
| | | :inactive-value="0"> |
| | | </el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:company:update', 'business:company:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaDeviceRoleWindow.open('ç¼è¾é¨ç¦è§è²ä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:company:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:company:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaDeviceRoleWindow ref="operaDeviceRoleWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaDeviceRoleWindow from '@/components/business/OperaDeviceRoleWindow' |
| | | export default { |
| | | name: 'DeviceRole', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaDeviceRoleWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | type: '2' |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'é¨ç¦è§è²ä¿¡æ¯è¡¨', |
| | | api: '/business/deviceRole', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:company:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="é¨ç¦ç»åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥é¨ç¦ç»åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar"> |
| | | <li><el-button type="primary">忥</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="name" label="é¨ç¦ç»åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="éç¨ç¨æ·ç±»å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="使ç¨äººæ°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="isDefault" label="æ¯å¦é»è®¤" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.isDefault === 1">æ¯</span> |
| | | <span v-if="row.isDefault === 0">å¦</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:company:update', 'business:company:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaDeviceRoleWindow.open('ç¼è¾é¨ç¦è§è²ä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:company:update']">ç¼è¾</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaDeviceRoleWindow ref="operaDeviceRoleWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaDeviceRoleWindow from '@/components/business/OperaDeviceRoleFWindow' |
| | | export default { |
| | | name: 'DeviceRole', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaDeviceRoleWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | type: '1' |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'é¨ç¦è§è²ä¿¡æ¯è¡¨', |
| | | api: '/business/deviceRole', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:empower:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="å§åææºå·" prop="startTime"> |
| | | <el-input v-model="searchForm.startTime" placeholder="请è¾å
¥å§å/ææºå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åç¶æ" prop="sendStatus"> |
| | | <el-select v-model="searchForm.sendStatus" 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="sendStatus"> |
| | | <el-select v-model="searchForm.sendStatus" 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="startTime"> |
| | | <el-input v-model="searchForm.startTime" placeholder="请è¾å
¥é¨ç¦æææå¼å§" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-radio-group v-model="searchForm.eventType" size="small"> |
| | | <el-radio-button label="å½å¤©"></el-radio-button> |
| | | <el-radio-button label="è¿7天"></el-radio-button> |
| | | <el-radio-button label="è¿30天"></el-radio-button> |
| | | </el-radio-group> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:member:exportExcel']" @click="exportExcel">导åº</el-button>--> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:empower:create', 'business:empower:delete']"> |
| | | <li><el-button type="primary" v-permissions="['business:empower:create']">导åº</el-button></li> |
| | | <li><el-button type="primary" v-permissions="['business:empower:create']">ç«å³ä¸å</el-button></li> |
| | | <li><el-button type="primary" v-permissions="['business:empower:create']">åæ¶ä¸å</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="name" label="å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="ææºå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="身份è¯å·ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="æå±å
¬å¸" min-width="100px"></el-table-column> |
| | | <el-table-column label="é¨ç¦æææ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span>èµ·ï¼{{row.startTime}}</span> |
| | | <span>æ¢ï¼{{row.endTime}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="sendDate" label="导å
¥æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sendUserId" label="æä½äººå" min-width="100px"></el-table-column> |
| | | <el-table-column label="ä¸åç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.sendStatus === 0">å¾
ä¸å</span> |
| | | <span v-if="row.sendStatus === 1">å·²ä¸å</span> |
| | | <span v-if="row.sendStatus === 2">已忶</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="sendType" label="ä¸åç±»å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.sendType === 0">宿¶</span> |
| | | <span v-if="row.sendType === 1">宿¶</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="sendDate" label="ä¸åæ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sendInfo" label="ä¸å失败åå " min-width="100px"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | export default { |
| | | name: 'Empower', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | startTime: '', |
| | | endTime: '', |
| | | sendStatus: '' |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'äººåææå¯¼å
¥è®°å½', |
| | | api: '/business/empower', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:member:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥è®¿å®¢åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <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="é¨é¨" prop="companyId"> |
| | | <el-cascader |
| | | :options="options" |
| | | v-model="searchForm.companyId" |
| | | @change="changeCompanyId" |
| | | :show-all-levels="false" |
| | | @keypress.enter.native="search" |
| | | :props="{ checkStrictly: true, value: 'id', label: 'name', children: 'companyDTOList' }" |
| | | ></el-cascader> |
| | | </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" v-permissions="['business:member:create']">è§£å»</el-button></li> |
| | | <li><el-button type="primary" :loading="isWorking.export" v-permissions="['business:member:exportExcel']" @click="exportExcel">导åº</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="name" label="å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="companyId" label="é¨é¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="code" label="å·¥å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="visitsLastDate" label="æå䏿¬¡é¨ç¦æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="userActionType1" label="å»ç»æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:member:update', 'business:member:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" icon="el-icon-edit" v-permissions="['business:member:update']">è§£å»</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import { findCompanyTreePage } from '@/api/business/company' |
| | | import { updateRemoveStatusById } from '@/api/business/block' |
| | | export default { |
| | | name: 'freezePersonnel', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | companyId: '', |
| | | name: '', |
| | | code: '', |
| | | type: 2 |
| | | }, |
| | | options: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '人åä¿¡æ¯è¡¨', |
| | | api: '/business/block', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | this.getfindCompanyTreePage() |
| | | }, |
| | | methods: { |
| | | changeCompanyId (e) { |
| | | this.searchForm.companyId = e[e.length - 1] |
| | | }, |
| | | // è·åç»ç»æ |
| | | getfindCompanyTreePage () { |
| | | findCompanyTreePage(1) |
| | | .then(res => { |
| | | console.log(res) |
| | | this.options = res |
| | | // this.search() |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:company:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="ç»ç»åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥ç»ç»åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æå±ä¸çº§ç»ç»" prop="parentName"> |
| | | <el-input v-model="searchForm.parentName" 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:company:create', 'business:company:delete']"> |
| | | <li><el-button type="primary" v-permissions="['business:company:create']" @click="synchronous()">忥</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="name" label="ç»ç»åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="parentName" label="ä¸çº§ç»ç»" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="æåæ´æ°æ¶é´" min-width="100px"></el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- v-if="containPermissions(['business:company:update', 'business:company:delete'])"--> |
| | | <!-- label="æä½"--> |
| | | <!-- min-width="80"--> |
| | | <!-- fixed="right"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <el-button type="text" @click="$refs.OperaInternalCompanyWindow.open('ç¼è¾ä¼ä¸ä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:company:update']">ç¼è¾</el-button>--> |
| | | <!-- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:company:delete']">å é¤</el-button>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <!-- <OperaInternalCompanyWindow ref="OperaInternalCompanyWindow" @success="handlePageChange"/>--> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import { companySync } from '@/api/business/company' |
| | | // import OperaInternalCompanyWindow from '@/components/business/OperaInternalCompanyWindow' |
| | | export default { |
| | | name: 'internalCompany', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | parentName: '', |
| | | type: 1 |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'ä¼ä¸ä¿¡æ¯è¡¨', |
| | | api: '/business/company', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | // åæ¥ä¿¡æ¯ |
| | | async synchronous () { |
| | | const message = await companySync({}) |
| | | this.$message.success(message) |
| | | this.search() |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout1 :permissions="['business:member:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <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="status"> |
| | | <el-select v-model="searchForm.status" @keypress.enter.native="search" placeholder="æ¯å¦æäººè¸"> |
| | | <el-option label="æ " value="0"></el-option> |
| | | <el-option label="æ" value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="" prop="canVisit"> |
| | | <el-select v-model="searchForm.canVisit" @keypress.enter.native="search" placeholder="å¯æè®¿"> |
| | | <el-option label="æ¯" value="1"></el-option> |
| | | <el-option label="å¦" value="0"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="" prop="status"> |
| | | <el-select v-model="searchForm.status" @keypress.enter.native="search" 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> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <template v-slot:menu> |
| | | <div style="width: 100%; height: 50px; background: rgba(242, 242, 242, 1); line-height: 50px; text-align: center; font-size: 14px;">ä¼ä¸ç»ç»æ¶æ</div> |
| | | <Tree :list="companyTree" :defaultProps="{name: 'name', status: 'status', children: 'companyDTOList', id: 'id'}" @callback="callback" /> |
| | | </template> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:member:delete']"> |
| | | <li><el-button type="primary">é¨ç¦ææ</el-button></li> |
| | | <li><el-button type="primary">忥</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="name" label="å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="ææºå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sex" label="æ§å«" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.status === 0">æ£å¸¸</span> |
| | | <span v-if="row.status === 1">ç¦ç¨</span> |
| | | <span v-if="row.status === 2">æé»/å»ç»</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="code" label="å·¥å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="code" label="é¨é¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="code" label="å¯æè®¿" min-width="100px"></el-table-column> |
| | | <el-table-column prop="roleId" label="é¨ç¦è§è²" min-width="100px"></el-table-column> |
| | | <el-table-column fixed="right" prop="faceImg" label="人è¸ä¿¡æ¯" min-width="100px"></el-table-column> |
| | | <el-table-column fixed="right" prop="faceImg" label="å¡çä¿¡æ¯" min-width="100px"></el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- v-if="containPermissions(['business:member:update', 'business:member:delete'])"--> |
| | | <!-- label="æä½"--> |
| | | <!-- min-width="120"--> |
| | | <!-- fixed="right"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <el-button type="text" @click="$refs.operaMemberWindow.open('ç¼è¾äººåä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:member:update']">ç¼è¾</el-button>--> |
| | | <!-- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:member:delete']">å é¤</el-button>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout1> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout1 from '@/layouts/TableLayout1' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import Tree from '@/components/common/Tree' |
| | | import { findCompanyTreePage } from '@/api/business/company' |
| | | export default { |
| | | name: 'internalMember', |
| | | extends: BaseTable, |
| | | components: { TableLayout1, Pagination, Tree }, |
| | | data () { |
| | | return { |
| | | TreeList: [ |
| | | { |
| | | name: '忍', |
| | | status: '', |
| | | id: 1, |
| | | children: [ |
| | | { name: 'è¡æ¿é¨', status: '', id: 2 }, |
| | | { name: 'ä¿¡æ¯é¨', status: '', id: 3 }, |
| | | { name: '项ç®é¨', status: '', id: 4 } |
| | | ] |
| | | } |
| | | ], |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | status: '', |
| | | canVisit: '', |
| | | companyId: '', |
| | | keyword: '', |
| | | type: 2 |
| | | }, |
| | | companyTree: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '人åä¿¡æ¯è¡¨', |
| | | api: '/business/member', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | // this.search() |
| | | this.getfindCompanyTreePage() |
| | | }, |
| | | methods: { |
| | | // è·åç»ç»æ |
| | | getfindCompanyTreePage () { |
| | | findCompanyTreePage(1) |
| | | .then(res => { |
| | | this.companyTree = res |
| | | this.searchForm.companyId = res[0].id |
| | | this.search() |
| | | }) |
| | | }, |
| | | callback (row) { |
| | | this.searchForm.companyId = row.id |
| | | this.search() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .box { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | .box_menu { |
| | | width: 100px; |
| | | height: 100%; |
| | | flex-shrink: 0; |
| | | } |
| | | .box_tab { |
| | | flex: 1; |
| | | height: 100%; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="box"> |
| | | <el-form :model="form" ref="form" label-width="140px"> |
| | | <el-form-item label="æ¥è®¿é¢çº¦æ¹å¼:" prop="doorIds"> |
| | | <el-radio-group v-model="form.doorIds"> |
| | | <el-radio :label="3">é¢çº¦å
ç»è®°</el-radio> |
| | | <el-radio :label="6">é¢çº¦åç»è®°(éè¦é
å¤è®¿å®¢æº)</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="è¢«è®¿äººæ ¡éªæ¹å¼:" prop="doorIds"> |
| | | <el-radio-group v-model="form.doorIds"> |
| | | <el-radio :label="3">ä»
ææºå·</el-radio> |
| | | <el-radio :label="6">ææºå·&å§å</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="å¥åº·è¯æ¯å¦å¿
å¡«:" prop="doorIds"> |
| | | <el-radio-group v-model="form.doorIds"> |
| | | <el-radio :label="3">å¦</el-radio> |
| | | <el-radio :label="6">æ¯</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="访客æ¯å¦çé¢:" prop="doorIds"> |
| | | <el-switch |
| | | v-model="form.doorIds" |
| | | active-color="#13ce66" |
| | | inactive-color="#ff4949" |
| | | :active-value="1" |
| | | :inactive-value="0"> |
| | | </el-switch> |
| | | </el-form-item> |
| | | <el-form-item label="访客çé¢ä¸»é¢:" prop="doorIds"> |
| | | <el-input style="width: 50%;" v-model="form.doorIds" placeholder="请è¾å
¥ç颿 é¢" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="访客çé¢è¯´æ:" prop="doorIds"> |
| | | <el-input style="width: 50%;" type="textarea" v-model="form.doorIds" placeholder="请è¾å
¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary">ä¿åé
置项</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'visitorSources', |
| | | |
| | | data() { |
| | | return { |
| | | form: { |
| | | doorIds: '' |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .box { |
| | | width: 100%; |
| | | height: 100%; |
| | | padding: 30px; |
| | | box-sizing: border-box; |
| | | background: #ffffff; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:member: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" placeholder="请è¾å
¥å车åºåç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æå±å车åº" prop="title"> |
| | | <el-select v-model="searchForm.title" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </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"> |
| | | <li><el-button type="primary">忥</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | > |
| | | <el-table-column prop="createDate" label="å车åºåç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="æå±å车åº" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="100px"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | export default { |
| | | name: 'Parks', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | title: '' |
| | | }, |
| | | options: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'å车åºä¿¡æ¯è¡¨', |
| | | api: '/business/parks', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:member:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="çé¢äºº" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <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="companyId"> |
| | | <el-select v-model="searchForm.code" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </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"> |
| | | <li><el-button type="primary" :loading="isWorking.export" v-permissions="['business:member:exportExcel']" @click="exportExcel">导åº</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | > |
| | | <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="companyName" label="å
¬å¸åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="ç¨æ·ç±»å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="ç颿¶é´" min-width="100px"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | export default { |
| | | name: 'ProblemLog', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | companyName: '' |
| | | }, |
| | | options: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '访客çé¢è®°å½è¡¨', |
| | | api: '/business/problemLog', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:company: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" placeholder="请è¾å
¥" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="人åç±»å" prop="useType"> |
| | | <el-select v-model="searchForm.useType" placeholder="è¯·éæ©" @keypress.enter.native="search"> |
| | | <el-option label="å³å¡äººå" 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:company:create']"> |
| | | <li><el-button type="primary" @click="$refs.operaProblemsWindow.open('æ°å»ºè¯é¢ä¿¡æ¯è¡¨')" icon="el-icon-plus" v-permissions="['business:company:create']">æ°å»º</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | > |
| | | <el-table-column prop="title" label="é¢ç®åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="useType" label="éç¨äººåç±»å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.useType === 0">å³å¡äººå</span> |
| | | <span v-if="row.useType === 1">æ®é访客</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="type" label="é¢ç®ç±»å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.useType === 0">åé</span> |
| | | <span v-if="row.useType === 1">å¤é</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="sortnu" label="é¢ç®é¡ºåº(ååº)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="creator" label="å建人ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:company:update', 'business:company:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaProblemsWindow.open('ç¼è¾è¯é¢ä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:company:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:company:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaProblemsWindow ref="operaProblemsWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaProblemsWindow from '@/components/business/OperaProblemsWindow' |
| | | export default { |
| | | name: 'Problems', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaProblemsWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | title: '', |
| | | useType: '' |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'è¯é¢ä¿¡æ¯è¡¨', |
| | | api: '/business/problems', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:member:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥å§å" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ææºå·" prop="phone"> |
| | | <el-input v-model="searchForm.phone" placeholder="请è¾å
¥ææºå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å
¬å¸/é¨é¨åç§°" prop="companyId"> |
| | | <el-input v-model="searchForm.companyId" placeholder="请è¾å
¥å
¬å¸/é¨é¨åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="人åç±»å" prop="type"> |
| | | <el-select v-model="searchForm.type" 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="companyId"> |
| | | <el-date-picker |
| | | v-model="searchForm.companyId" |
| | | type="daterange" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ"> |
| | | </el-date-picker> |
| | | </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" :loading="isWorking.export" v-permissions="['business:member:exportExcel']" @click="exportExcel">导åº</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="companyId" label="å
¬å¸/ç»ç»" min-width="100px"></el-table-column> |
| | | <el-table-column prop="type" label="人åç±»å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <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="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="100px"></el-table-column> |
| | | <el-table-column prop="eventDate" label="è¿åºé¨ç¦" min-width="100px"></el-table-column> |
| | | <el-table-column prop="eventDate" label="è¿åºæ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="faceImg" label="è¿åºææç
§ç" min-width="100px"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | export default { |
| | | name: 'Retention', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | companyId: '', |
| | | type: '', |
| | | name: '', |
| | | phone: '' |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'å¨å人åä¿¡æ¯ è¡¨ï¼æ»çï¼', |
| | | api: '/business/retention', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:member:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥è®¿å®¢åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <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="æä½äººå" prop="code"> |
| | | <el-select v-model="searchForm.code" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç¨æ·ç±»å" prop="companyId"> |
| | | <el-select v-model="searchForm.code" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </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:member:create', 'business:member:delete']"> |
| | | <li><el-button type="primary" v-permissions="['business:member:create']">离åº</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="name" label="å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="ææºå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="company_id" label="å
¬å¸" min-width="100px"></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 === 1">æ®é访客</span> |
| | | <span v-if="row.type === 2">å
é¨äººå</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="idcard_id" label="å
¥åºæ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="edit_date" label="ææå°ææ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="idcard_id" label="è¶
æ¶æ¶é¿" min-width="100px"></el-table-column> |
| | | <el-table-column prop="idcard_id" label="ç¶æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editor" label="æä½äºº" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:member:update', 'business:member:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" icon="el-icon-edit" v-permissions="['business:member:update']">离å</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | export default { |
| | | name: 'strandedPersonnel', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | companyId: '', |
| | | name: '', |
| | | code: '', |
| | | status: 2, |
| | | type: 1 |
| | | }, |
| | | options: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '人åä¿¡æ¯è¡¨', |
| | | api: '/business/member', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:member:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="å§å" prop="personName"> |
| | | <el-input v-model="searchForm.personName" placeholder="请è¾å
¥å§å" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ææºå·ç " prop="endTime"> |
| | | <el-input v-model="searchForm.endTime" placeholder="请è¾å
¥ææºå·ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="车çå·" prop="carNo"> |
| | | <el-input v-model="searchForm.carNo" placeholder="请è¾å
¥è½¦çå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å
¬å¸åç§°" prop="endTime"> |
| | | <el-input v-model="searchForm.endTime" placeholder="请è¾å
¥å
¬å¸åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="设å¤ç±»å" prop="carNo"> |
| | | <el-select v-model="searchForm.carNo" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="åºå
¥ç±»å" prop="carNo"> |
| | | <el-select v-model="searchForm.carNo" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´" prop="carNo"> |
| | | <el-date-picker |
| | | v-model="searchForm.carNo" |
| | | type="daterange" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-radio-group v-model="searchForm.eventType" size="small"> |
| | | <el-radio-button label="å½å¤©"></el-radio-button> |
| | | <el-radio-button label="è¿7天"></el-radio-button> |
| | | <el-radio-button label="è¿30天"></el-radio-button> |
| | | </el-radio-group> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | > |
| | | <el-table-column prop="personName" label="å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="endTime" label="ææºå·ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="idNo" label="身份è¯å·ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="idNo" label="å
¬å¸" min-width="100px"></el-table-column> |
| | | <el-table-column prop="carNo" label="车çå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="carNo" label="设å¤ç±»å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="carNo" label="设å¤åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="carNo" label="åºå
¥ç±»å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="captureUrl" label="ææå¾uri" min-width="100px"></el-table-column> |
| | | <el-table-column prop="happenTime" label="ææç
§ç" min-width="100px"></el-table-column> |
| | | <el-table-column prop="captureUrl" label="äºä»¶æ¶é´" min-width="100px"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | export default { |
| | | name: 'VisitEvent', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | personName: '', |
| | | endTime: '', |
| | | carNo: '' |
| | | }, |
| | | options: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '访客äºä»¶æ¨éè®°å½è¡¨', |
| | | api: '/business/visitEvent', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:member:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥å§å" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ææºå·" prop="phone"> |
| | | <el-input v-model="searchForm.phone" placeholder="请è¾å
¥ææºå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å
¬å¸åç§°" prop="companyName"> |
| | | <el-input v-model="searchForm.companyName" placeholder="请è¾å
¥å
¬å¸åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="身份è¯å·" prop="idcardNo"> |
| | | <el-input v-model="searchForm.idcardNo" placeholder="请è¾å
¥èº«ä»½è¯å·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:member:create', 'business:member:delete']"> |
| | | <li><el-button type="primary" v-permissions="['business:member:create']" @click="block">æé»</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="name" label="å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="ææºå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="æ§å«" min-width="100px"></el-table-column> |
| | | <el-table-column label="è¯ä»¶ç±»å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.idcardType === 0">身份è¯</span> |
| | | <span v-if="row.idcardType === 1">港澳è¯ä»¶</span> |
| | | <span v-if="row.idcardType === 2">æ¤ç
§</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="idcardNo" label="身份è¯å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="companyName" label="å
¬å¸" min-width="100px"></el-table-column> |
| | | <el-table-column prop="visitTimes" label="æè®¿æ¬¡æ°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="lastVisitDate" label="æåæè®¿æ¶é´" min-width="100px"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import { batchBlock } from '@/api/business/member' |
| | | export default { |
| | | name: 'visitorManagement', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | companyName: '', |
| | | name: '', |
| | | phone: '', |
| | | idcardNo: '', |
| | | type: 1 |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '人åä¿¡æ¯è¡¨', |
| | | api: '/business/member', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | block () { |
| | | if (this.tableData.selectedRows.length === 0) { |
| | | this.$message.warning('è¯·éæ©äººå') |
| | | return |
| | | } |
| | | this.$confirm('ç¡®å®è¦æé»å?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | batchBlock(this.tableData.selectedRows.map(item => item.id).join(',')) |
| | | .then(res => { |
| | | this.$message.success('æé»æå') |
| | | this.search() |
| | | }) |
| | | }).catch(() => { |
| | | |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="box"> |
| | | <el-form :model="form" ref="form" label-width="140px"> |
| | | <el-form-item label="æ¥è®¿é¢çº¦æ¹å¼:" prop="doorIds"> |
| | | <el-radio-group v-model="form.doorIds"> |
| | | <el-radio :label="3">é¢çº¦å
ç»è®°</el-radio> |
| | | <el-radio :label="6">é¢çº¦åç»è®°(éè¦é
å¤è®¿å®¢æº)</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="è¢«è®¿äººæ ¡éªæ¹å¼:" prop="doorIds"> |
| | | <el-radio-group v-model="form.doorIds"> |
| | | <el-radio :label="3">ä»
ææºå·</el-radio> |
| | | <el-radio :label="6">ææºå·&å§å</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="å¥åº·è¯æ¯å¦å¿
å¡«:" prop="doorIds"> |
| | | <el-radio-group v-model="form.doorIds"> |
| | | <el-radio :label="3">å¦</el-radio> |
| | | <el-radio :label="6">æ¯</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="访客æ¯å¦çé¢:" prop="doorIds"> |
| | | <el-switch |
| | | v-model="form.doorIds" |
| | | active-color="#13ce66" |
| | | inactive-color="#ff4949" |
| | | :active-value="1" |
| | | :inactive-value="0"> |
| | | </el-switch> |
| | | </el-form-item> |
| | | <el-form-item label="访客çé¢ä¸»é¢:" prop="doorIds"> |
| | | <el-input style="width: 50%;" v-model="form.doorIds" placeholder="请è¾å
¥ç颿 é¢" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="访客çé¢è¯´æ:" prop="doorIds"> |
| | | <el-input style="width: 50%;" type="textarea" v-model="form.doorIds" placeholder="请è¾å
¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary">ä¿åé
置项</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'visitorSources', |
| | | |
| | | data() { |
| | | return { |
| | | form: { |
| | | doorIds: '' |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .box { |
| | | width: 100%; |
| | | height: 100%; |
| | | padding: 30px; |
| | | box-sizing: border-box; |
| | | background: #ffffff; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:visits:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="å§å/ææºå·" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥å§å/ææºå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="身份è¯å·" prop="idcardNo"> |
| | | <el-input v-model="searchForm.idcardNo" 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="status"> |
| | | <el-select v-model="searchForm.status" placeholder="è¯·éæ©"> |
| | | <el-option label="å¾
å®¡æ ¸" value="0"></el-option> |
| | | <el-option label="å·²æäº¤ERP审æ¹" 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-select> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:visits:exportExcel']" @click="exportExcel">导åº</el-button>--> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </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>--> |
| | | <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="name" label="访客å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="ææºå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="companyName" label="å
¬å¸åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="receptMemberName" label="被访人" min-width="100px"></el-table-column> |
| | | <el-table-column prop="reason" label="æè®¿äºç±" min-width="100px"></el-table-column> |
| | | <el-table-column label="æè®¿æ¶é´" min-width="170px"> |
| | | <template slot-scope="{row}"> |
| | | <span>èµ·ï¼{{row.starttime}}</span> |
| | | <span>æ¢ï¼{{row.endtime}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="é访人å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.visitsList && row.visitsList.length > 0">{{row.visitsList.length}}</span> |
| | | <span>0</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="é访车è¾" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.carNos">{{row.carNos.split(',').length}}</span> |
| | | <span>0</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="status" fixed="right" label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span style="color: rgba(245, 154, 35, 0.996);" v-if="row.status === 0">å¾
å®¡æ ¸</span> |
| | | <span v-if="row.status === 1">å·²æäº¤ERP审æ¹</span> |
| | | <span v-if="row.status === 2">å®¡æ ¸éè¿</span> |
| | | <span style="color: red;" v-if="row.status === 3">å®¡æ ¸ä¸éè¿</span> |
| | | <span v-if="row.status === 4">åæ¶</span> |
| | | <span v-if="row.status === 5">ä¸åæå</span> |
| | | <span v-if="row.status === 6">ä¸å失败</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:visits:update', 'business:visits:delete'])" |
| | | label="æä½" |
| | | min-width="190" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.OperaVisitsDesWindow.open('详æ
', row.id)" v-permissions="['business:visits:update']">æ¥ç详æ
</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:visits:delete']">æ¥è¯¢å®¡æ¹ç»æ</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | <!-- 详æ
--> |
| | | <OperaVisitsDesWindow ref="OperaVisitsDesWindow" /> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaVisitsDesWindow from '@/components/business/OperaVisitsDesWindow' |
| | | export default { |
| | | name: 'Visits', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaVisitsDesWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | companyName: '', |
| | | idcardNo: '', |
| | | status: '' |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '访客ç³è¯·ä¿¡æ¯è¡¨', |
| | | api: '/business/visits', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <template> |
| | | <div class="home"> |
| | | <div class="wrap"> |
| | | <h2>欢è¿ä½¿ç¨ä¼å¨æéå¼åæ¡æ¶</h2> |
| | | <p>æ¨ä½¿ç¨çæ¤å¥å¼æºæ¡æ¶æ²¡æä»»ä½çæé®é¢ï¼å¯å¦ä¹ å¯åç¨ï¼è¯·æ¾å¿ä½¿ç¨ï¼</p> |
| | | <p>ä¼å¨è´åäºæé ç®æ´ãåçã髿çå¼åä½éªï¼ä¸ºæ¤æä»¬å°ä¸æåçº§ï¼æè°¢æ¨çæ¯æï¼</p> |
| | | <p style="margin-top: 12px;"> |
| | | <a href="https://gitee.com/coderd-repos/eva" target="_blank">GITEE</a> |
| | | <a href="https://github.com/coderd-repos/eva" target="_blank">GITHUB</a> |
| | | </p> |
| | | <div class="guide"> |
| | | <a href="http://eva.adjustrd.com" target="_blank">åå¾å®ç½</a> |
| | | <a href="http://coderd.adjustrd.com/template/308/default" target="_blank">åå¾CodeRd</a> |
| | | <div class="home_total"> |
| | | <div class="home_total_head">å¨åäººåæ»è§</div> |
| | | <div class="home_total_list"> |
| | | <div class="home_total_list_item a"> |
| | | <span>352</span> |
| | | <span>å
é¨åå·¥</span> |
| | | </div> |
| | | <div class="home_total_list_item b"> |
| | | <span>352</span> |
| | | <span>访客</span> |
| | | </div> |
| | | <div class="home_total_list_item c"> |
| | | <span>352</span> |
| | | <span>å³å¡äººå</span> |
| | | </div> |
| | | <div class="home_total_list_item d"> |
| | | <span>352</span> |
| | | <span>å¨åºè½¦è¾</span> |
| | | </div> |
| | | <div class="home_total_list_item e"> |
| | | <span>352</span> |
| | | <span>访客车è¾</span> |
| | | </div> |
| | | <div class="home_total_list_item f"> |
| | | <span>352</span> |
| | | <span>å³å¡è½¦è¾</span> |
| | | </div> |
| | | <div class="home_total_list_item g"> |
| | | <span>352</span> |
| | | <span>ä¾åºå</span> |
| | | </div> |
| | | </div> |
| | | <img src="@/assets/images/qq.png"> |
| | | <p>ä½ å¯ä»¥æ«ç å å
¥ç¾¤è以è·å¾ææ¯æ¯æ</p> |
| | | <div class="award"> |
| | | <h4>æ¿å±ä½è
å徿´å¥½</h4> |
| | | <img src="@/assets/images/alipay.jpeg"> |
| | | <img src="@/assets/images/wxpay.jpeg"> |
| | | </div> |
| | | <div class="home_charts"> |
| | | <div class="home_charts_item"> |
| | | <div class="home_charts_item_label">å¨å人åå æ¯</div> |
| | | <div class="home_charts_item_charts" id="chart1"></div> |
| | | </div> |
| | | <div class="home_charts_item"> |
| | | <div class="home_charts_item_label">å³å¡äººåå叿»è§</div> |
| | | <div class="home_charts_item_charts" id="chart2"></div> |
| | | </div> |
| | | </div> |
| | | <div class="home_table"> |
| | | <div class="home_table_head">è¶
æ¶é¢è¦äººå(3)</div> |
| | | <div class="home_table_box"> |
| | | <el-table |
| | | :data="list" |
| | | :header-cell-style="{background: '#dcdde2', color: 'rgb(51, 51, 51)'}" |
| | | border |
| | | style="width: 100%"> |
| | | <el-table-column |
| | | prop="date" |
| | | label="访客å§å"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="name" |
| | | label="访客çµè¯"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="访客å
¬å¸"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="å
¬å¸ç±»å"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="ææå°ææ¶é´"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="ç¶æ"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="å¤ç" |
| | | width="80"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text">离åº</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination |
| | | style="margin-top: 20px;" |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="page" |
| | | :page-sizes="[100, 200, 300, 400]" |
| | | :page-size="100" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="400"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import * as echarts from 'echarts' |
| | | export default { |
| | | name: 'Index', |
| | | data () { |
| | | return {} |
| | | return { |
| | | list: [], |
| | | page: 1 |
| | | } |
| | | }, |
| | | mounted () { |
| | | this.getcharts1() |
| | | this.getcharts2() |
| | | }, |
| | | methods: { |
| | | handleSizeChange () { |
| | | |
| | | }, |
| | | handleCurrentChange () { |
| | | |
| | | }, |
| | | getcharts1 () { |
| | | const myChart = echarts.init(document.getElementById('chart1')) |
| | | // ç»å¶å¾è¡¨ |
| | | myChart.setOption({ |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | grid: { |
| | | bottom: '5%', |
| | | top: '5%' |
| | | }, |
| | | legend: { |
| | | bottom: '0%', |
| | | left: 'center', |
| | | icon: 'circle' |
| | | }, |
| | | series: [ |
| | | { |
| | | type: 'pie', |
| | | radius: ['40%', '70%'], |
| | | label: { |
| | | formatter: '{b} {d}%' |
| | | }, |
| | | data: [ |
| | | { value: 1048, name: 'å³å¡äººå' }, |
| | | { value: 735, name: 'å
é¨åå·¥' }, |
| | | { value: 580, name: '访客' } |
| | | ], |
| | | itemStyle: { |
| | | normal: { |
| | | color: function (colors) { |
| | | var colorList = [ |
| | | '#fc8251', |
| | | '#5470c6', |
| | | '#91cd77' |
| | | ] |
| | | return colorList[colors.dataIndex] |
| | | } |
| | | } |
| | | }, |
| | | emphasis: { |
| | | itemStyle: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: 'rgba(0, 0, 0, 0.5)' |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | }) |
| | | }, |
| | | getcharts2 () { |
| | | const myChart = echarts.init(document.getElementById('chart2')) |
| | | myChart.setOption({ |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | grid: { |
| | | bottom: '5%', |
| | | top: '5%' |
| | | }, |
| | | xAxis: { |
| | | max: 'dataMax' |
| | | }, |
| | | yAxis: { |
| | | type: 'category', |
| | | data: ['海康å¨è§', 'å䏿éå
¬å¸', 'åå¹ä¹æéå
¬å¸', 'ä¸è¾¾è¡ä»½æéå
¬å¸', 'é¿éå·´å·´é墿éå
¬å¸', 'è
¾è®¯é墿éå
¬å¸'] |
| | | }, |
| | | series: [ |
| | | { |
| | | realtimeSort: true, |
| | | type: 'bar', |
| | | data: [1, 2, 3, 4, 5, 6], |
| | | itemStyle: { |
| | | normal: { |
| | | color: '#fc8251' |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <style scoped lang="scss"> |
| | | @import "@/assets/style/variables.scss"; |
| | | .home { |
| | | text-align: center; |
| | | color: #777; |
| | | .wrap { |
| | | margin-top: 80px; |
| | | img { |
| | | width: 240px; |
| | | width: 100%; |
| | | .home_table { |
| | | width: 100%; |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | background: #ffffff; |
| | | margin-top: 20px; |
| | | .home_table_head { |
| | | font-size: 16px; |
| | | font-weight: 600; |
| | | color: black; |
| | | } |
| | | .home_table_box { |
| | | width: 100%; |
| | | margin-top: 15px; |
| | | } |
| | | } |
| | | h2 { |
| | | font-size: 32px; |
| | | color: #555; |
| | | margin-bottom: 20px; |
| | | } |
| | | p { |
| | | line-height: 24px; |
| | | margin: 0; |
| | | } |
| | | .start-up { |
| | | margin-top: 8px; |
| | | } |
| | | .guide { |
| | | margin: 30px 0 40px 0; |
| | | .home_charts { |
| | | width: 100%; |
| | | margin-top: 20px; |
| | | display: flex; |
| | | justify-content: center; |
| | | a { |
| | | margin-right: 12px; |
| | | padding: 12px 40px; |
| | | border-radius: 30px; |
| | | background: $primary-color; |
| | | color: #fff; |
| | | text-decoration: none; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | .home_charts_item { |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | margin-right: 20px; |
| | | background: #ffffff; |
| | | .home_charts_item_label { |
| | | font-size: 16px; |
| | | font-weight: 600; |
| | | color: black; |
| | | } |
| | | .home_charts_item_charts { |
| | | width: 100%; |
| | | height: 300px; |
| | | } |
| | | &:last-child { |
| | | margin: 0 !important; |
| | | } |
| | | } |
| | | } |
| | | em,a { |
| | | font-style: normal; |
| | | font-weight: bold; |
| | | margin: 0 3px; |
| | | color: $primary-color; |
| | | } |
| | | .award { |
| | | position: absolute; |
| | | right: 20px; |
| | | bottom: 60px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | text-align: left; |
| | | padding: 12px; |
| | | border: 1px solid #eee; |
| | | box-shadow: -1px 1px 10px #ccc; |
| | | h4 { |
| | | font-weight: bold; |
| | | margin-bottom: 8px; |
| | | .home_total { |
| | | width: 100%; |
| | | background: #ffffff; |
| | | margin-top: 20px; |
| | | .home_total_head { |
| | | width: 100%; |
| | | font-size: 16px; |
| | | font-weight: 600; |
| | | color: black; |
| | | padding: 10px 20px; |
| | | box-sizing: border-box; |
| | | border-bottom: 1px solid #ececec; |
| | | } |
| | | img { |
| | | width: 160px; |
| | | margin-bottom: 20px; |
| | | transition: opacity ease .3s; |
| | | .home_total_list { |
| | | width: 100%; |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | align-items: center; |
| | | .a { |
| | | border-left: 5px solid rgba(129, 211, 248, 1) !important; |
| | | } |
| | | .b { |
| | | border-left: 5px solid rgba(236, 128, 141, 1) !important; |
| | | } |
| | | .c { |
| | | border-left: 5px solid rgba(250, 205, 145, 1) !important; |
| | | } |
| | | .d { |
| | | border-left: 5px solid rgba(245, 154, 35, 1) !important; |
| | | } |
| | | .e { |
| | | border-left: 5px solid rgba(128, 128, 255, 1) !important; |
| | | } |
| | | .f { |
| | | border-left: 5px solid rgba(202, 249, 130, 1) !important; |
| | | } |
| | | .g { |
| | | border-left: 5px solid rgba(194, 128, 255, 1) !important; |
| | | } |
| | | .home_total_list_item { |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | height: 80px; |
| | | border-radius: 5px; |
| | | border: 1px solid #ececec; |
| | | margin-right: 15px; |
| | | &:last-child { |
| | | margin: 0 !important; |
| | | } |
| | | span { |
| | | &:first-child { |
| | | font-weight: 500; |
| | | font-size: 24px; |
| | | color: black; |
| | | } |
| | | &:last-child { |
| | | font-weight: 400; |
| | | font-size: 14px; |
| | | color: #666666; |
| | | margin-top: 2px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | port: 10012, |
| | | proxy: { |
| | | [process.env.VUE_APP_API_PREFIX]: { |
| | | target: 'http://192.168.0.197:10013', |
| | | // http://192.168.0.130:10013 |
| | | // 192.168.0.110:10013 192.168.0.110:10013 |
| | | // http://192.168.0.101:10013 |
| | | // http://192.168.0.132:10013 |
| | | target: 'http://192.168.0.108:10013', |
| | | changeOrigin: true, |
| | | pathRewrite: { |
| | | [`^${[process.env.VUE_APP_API_PREFIX]}`]: '' |