Merge remote-tracking branch 'origin/master'
| | |
| | | "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", |
| | | "dev": true |
| | | }, |
| | | "ansi-styles": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", |
| | | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-convert": "^2.0.1" |
| | | } |
| | | }, |
| | | "chalk": { |
| | | "version": "4.1.2", |
| | | "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", |
| | | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "ansi-styles": "^4.1.0", |
| | | "supports-color": "^7.1.0" |
| | | } |
| | | }, |
| | | "color-convert": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", |
| | | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-name": "~1.1.4" |
| | | } |
| | | }, |
| | | "color-name": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", |
| | | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "has-flag": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", |
| | | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "loader-utils": { |
| | | "version": "2.0.4", |
| | | "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", |
| | | "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "big.js": "^5.2.2", |
| | | "emojis-list": "^3.0.0", |
| | | "json5": "^2.1.2" |
| | | } |
| | | }, |
| | | "ssri": { |
| | | "version": "8.0.1", |
| | | "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz", |
| | |
| | | "dev": true, |
| | | "requires": { |
| | | "minipass": "^3.1.1" |
| | | } |
| | | }, |
| | | "supports-color": { |
| | | "version": "7.2.0", |
| | | "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", |
| | | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "has-flag": "^4.0.0" |
| | | } |
| | | }, |
| | | "vue-loader-v16": { |
| | | "version": "npm:vue-loader@16.8.3", |
| | | "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", |
| | | "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "chalk": "^4.1.0", |
| | | "hash-sum": "^2.0.0", |
| | | "loader-utils": "^2.0.0" |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | }, |
| | | "vue-loader-v16": { |
| | | "version": "npm:vue-loader@16.8.3", |
| | | "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", |
| | | "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "chalk": "^4.1.0", |
| | | "hash-sum": "^2.0.0", |
| | | "loader-utils": "^2.0.0" |
| | | }, |
| | | "dependencies": { |
| | | "ansi-styles": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", |
| | | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-convert": "^2.0.1" |
| | | } |
| | | }, |
| | | "chalk": { |
| | | "version": "4.1.2", |
| | | "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", |
| | | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "ansi-styles": "^4.1.0", |
| | | "supports-color": "^7.1.0" |
| | | } |
| | | }, |
| | | "color-convert": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", |
| | | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-name": "~1.1.4" |
| | | } |
| | | }, |
| | | "color-name": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", |
| | | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "has-flag": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", |
| | | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "loader-utils": { |
| | | "version": "2.0.4", |
| | | "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", |
| | | "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "big.js": "^5.2.2", |
| | | "emojis-list": "^3.0.0", |
| | | "json5": "^2.1.2" |
| | | } |
| | | }, |
| | | "supports-color": { |
| | | "version": "7.2.0", |
| | | "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", |
| | | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "has-flag": "^4.0.0" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "vue-property-decorator": { |
| | | "version": "8.5.1", |
| | | "resolved": "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-8.5.1.tgz", |
| | |
| | | <el-form-item label="å§å/ææºå·" prop="keyword"> |
| | | <el-input v-model="searchForm.keyword" placeholder="请è¾å
¥åå·¥å§å/ææºå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¨æ·ç±»å" prop="type"> |
| | | <el-select v-model="searchForm.type" placeholder="è¯·éæ©"> |
| | | <el-form-item label="ç¨æ·ç±»å" prop="memberType"> |
| | | <el-select v-model="searchForm.memberType" placeholder="è¯·éæ©"> |
| | | <el-option label="å³å¡äººå" :value="0"></el-option> |
| | | <el-option label="å
é¨åå·¥" :value="2"></el-option> |
| | | </el-select> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="ç¨æ·ç±»å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.type === 0">å³å¡è®¿å®¢</span> |
| | | <span v-if="row.type === 2">å
é¨äººå</span> |
| | | <span v-if="row.memberType === 0">å³å¡è®¿å®¢</span> |
| | | <span v-if="row.memberType === 2">å
é¨äººå</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="memberName" label="åå·¥å§å" min-width="100px"></el-table-column> |
| | |
| | | searchForm: { |
| | | code: '', |
| | | keyword: '', |
| | | status: '' |
| | | status: '', |
| | | memberType: '' |
| | | } |
| | | } |
| | | }, |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="companyName" label="å
¬å¸/ç»ç»" min-width="100px"></el-table-column> |
| | | <el-table-column prop="companyName" label="å
¬å¸/ç»ç»" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.type === 2 || row.type === 0">{{row.companyName}}</span> |
| | | <span v-else>{{row.visitCompanyName}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="type" label="人åç±»å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.type === 0">å³å¡è®¿å®¢</span> |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="ææºå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="idcardNo" label="身份è¯å·" min-width="130px"></el-table-column> |
| | | <el-table-column prop="deviceName" label="è¿åºé¨ç¦" min-width="100px"></el-table-column> |
| | | <el-table-column prop="idcardDecode" label="身份è¯å·" min-width="130px"></el-table-column> |
| | | <el-table-column label="è¿åºé¨ç¦" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.type === 1">-</span> |
| | | <span v-else>{{row.deviceName}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="eventDate" label="è¿åºæ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column label="人è¸ç
§ç" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="inDate" label="å
¥åºæ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="endtime" label="ææå°ææ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="timeOut" label="è¶
æ¶æ¶é¿" min-width="100px"></el-table-column> |
| | | <el-table-column prop="outDate" label="ææå°ææ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column label="è¶
æ¶æ¶é¿" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span>{{row.timeOut.toString().replace('-', '')}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.outStatus === 0">æªè¶
æ¶</span> |
| | | <span v-else-if="row.timeOut === 1">å·²è¶
æ¶</span> |
| | | <span v-else-if="row.timeOut === 2">å³å°è¶
æ¶</span> |
| | | <span style="color: red;" v-else-if="row.outStatus === 1">å·²è¶
æ¶</span> |
| | | <span v-else-if="row.outStatus === 2">å³å°è¶
æ¶</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- v-if="containPermissions(['business:member:update', 'business:member:delete'])"--> |
| | | <!-- label="æä½"--> |
| | | <!-- min-width="120"--> |
| | | <!-- fixed="right"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <el-button type="text" icon="el-icon-edit" v-permissions="['business:member:update']" @click="thaw(row.id)">离å</el-button>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:member:update', 'business:member:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" icon="el-icon-edit" v-permissions="['business:member:update']" @click="departure(scope.row.id)">离å</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import { findAllList } from '@/api/system/common' |
| | | import { level } from '@/api/business/staging' |
| | | export default { |
| | | name: 'strandedPersonnel', |
| | | extends: BaseTable, |
| | |
| | | this.getUser() |
| | | }, |
| | | methods: { |
| | | departure(id) { |
| | | this.$confirm('ç¡®å®ç¦»åºå, æ¯å¦ç»§ç»?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | level(id) |
| | | .then(res => { |
| | | this.search() |
| | | }) |
| | | }).catch(() => { |
| | | |
| | | }); |
| | | }, |
| | | // thaws () { |
| | | // if (this.tableData.selectedRows.length === 0) return this.$message.warning('è³å°éæ©ä¸é¡¹å
容') |
| | | // const ids = this.tableData.selectedRows.map(item => { |
| | |
| | | <TableLayout :permissions="['business:useraction:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="ç±»å" prop="type"> |
| | | <el-input v-model="searchForm.type" placeholder="请è¾å
¥ç±»å" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="æä½äººåç§°" prop="createName"> |
| | | <el-input v-model="searchForm.createName" placeholder="请è¾å
¥æä½äººåç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æä½åç¶æ" prop="beforeStatus"> |
| | | <el-input v-model="searchForm.beforeStatus" placeholder="请è¾å
¥æä½åç¶æ" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="æä½å¯¹è±¡" prop="memberName"> |
| | | <el-input v-model="searchForm.memberName" placeholder="请è¾å
¥æä½å¯¹è±¡" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æå±å
¬å¸" prop="companyName"> |
| | | <el-input v-model="searchForm.companyName" placeholder="请è¾å
¥æå±å
¬å¸" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="人åç±»å" prop="memberType"> |
| | | <el-select v-model="searchForm.memberType" placeholder="è¯·éæ©"> |
| | | <el-option label="å³å¡è®¿å®¢" :value="0"></el-option> |
| | | <el-option label="æ®é访客" :value="1"></el-option> |
| | | <el-option label="å
é¨äººå" :value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ææºå·" prop="mobile"> |
| | | <el-input v-model="searchForm.mobile" placeholder="请è¾å
¥ææºå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åå²è´¦å·ç¶æ" prop="beforeStatus"> |
| | | <el-select v-model="searchForm.beforeStatus" placeholder="è¯·éæ©"> |
| | | <el-option label="è§£å»" :value="0"></el-option> |
| | | <el-option label="å»ç»" :value="1"></el-option> |
| | | <el-option label="æé»" :value="2"></el-option> |
| | | <el-option label="æ¢å¤" :value="3"></el-option> |
| | | <el-option label="设为æè®¿äºº" :value="4"></el-option> |
| | | <el-option label="åæ¶æè®¿äºº" :value="5"></el-option> |
| | | <el-option label="设为é«çº§å®¡æ¹äºº" :value="6"></el-option> |
| | | <el-option label="åæ¶é«çº§å®¡æ¹äºº" :value="7"></el-option> |
| | | <el-option label="æå¨ç¦»åº" :value="8"></el-option> |
| | | <el-option label="å é¤" :value="9"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æä½ç±»å" prop="type"> |
| | | <el-select v-model="searchForm.type" placeholder="è¯·éæ©"> |
| | | <el-option label="è§£å»" :value="0"></el-option> |
| | | <el-option label="å»ç»" :value="1"></el-option> |
| | | <el-option label="æé»" :value="2"></el-option> |
| | | <el-option label="æ¢å¤" :value="3"></el-option> |
| | | <el-option label="设为æè®¿äºº" :value="4"></el-option> |
| | | <el-option label="åæ¶æè®¿äºº" :value="5"></el-option> |
| | | <el-option label="设为é«çº§å®¡æ¹äºº" :value="6"></el-option> |
| | | <el-option label="åæ¶é«çº§å®¡æ¹äºº" :value="7"></el-option> |
| | | <el-option label="æå¨ç¦»åº" :value="8"></el-option> |
| | | <el-option label="å é¤" :value="9"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | |
| | | :data="tableData.list" |
| | | stripe |
| | | > |
| | | <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="type" label="ç±»å 0è§£å» 1å»ç» 2æé» 3æ¢å¤ 4设为æè®¿äºº 5åæ¶æè®¿äºº 6设为é«çº§å®¡æ¹äºº 7åæ¶é«çº§å®¡æ¹äºº 8æå¨ç¦»åº 9å é¤" min-width="100px"></el-table-column> |
| | | <el-table-column prop="beforeStatus" label="æä½åç¶æ 0è§£å» 1å»ç» 2æé» 3æ¢å¤ 4设为æè®¿äºº 5åæ¶æè®¿äºº 6设为é«çº§å®¡æ¹äºº 7åæ¶é«çº§å®¡æ¹äºº 8æå¨ç¦»åº 9å é¤" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createName" label="æä½äººå"></el-table-column> |
| | | <el-table-column prop="memberName" label="æä½å¯¹è±¡"></el-table-column> |
| | | <el-table-column prop="companyName" label="æå±å
¬å¸"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.memberType === '1'">{{row.visitCompanyName}}</span> |
| | | <span v-else>{{row.companyName}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="人åç±»å"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.memberType === '0'">å³å¡è®¿å®¢</span> |
| | | <span v-if="row.memberType === '1'">æ®é访客</span> |
| | | <span v-if="row.memberType === '2'">å
é¨äººå</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="mobile" label="ææºå·"></el-table-column> |
| | | <el-table-column label="åå²ç¶æ"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.beforeStatus === 0">è§£å»</span> |
| | | <span v-if="row.beforeStatus === 1">å»ç»</span> |
| | | <span v-if="row.beforeStatus === 2">æé»</span> |
| | | <span v-if="row.beforeStatus === 3">æ¢å¤</span> |
| | | <span v-if="row.beforeStatus === 4">设为æè®¿äºº</span> |
| | | <span v-if="row.beforeStatus === 5">åæ¶æè®¿äºº</span> |
| | | <span v-if="row.beforeStatus === 6">设为é«çº§å®¡æ¹äºº</span> |
| | | <span v-if="row.beforeStatus === 7">åæ¶é«çº§å®¡æ¹äºº</span> |
| | | <span v-if="row.beforeStatus === 8">æå¨ç¦»åº</span> |
| | | <span v-if="row.beforeStatus === 8">å é¤</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.type === 0">è§£å»</span> |
| | | <span v-if="row.type === 1">å»ç»</span> |
| | | <span v-if="row.type === 2">æé»</span> |
| | | <span v-if="row.type === 3">æ¢å¤</span> |
| | | <span v-if="row.type === 4">设为æè®¿äºº</span> |
| | | <span v-if="row.type === 5">åæ¶æè®¿äºº</span> |
| | | <span v-if="row.type === 6">设为é«çº§å®¡æ¹äºº</span> |
| | | <span v-if="row.type === 7">åæ¶é«çº§å®¡æ¹äºº</span> |
| | | <span v-if="row.type === 8">æå¨ç¦»åº</span> |
| | | <span v-if="row.type === 8">å é¤</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createDate" label="æä½æ¶é´"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | type: '', |
| | | beforeStatus: '' |
| | | createName: '', |
| | | memberName: '', |
| | | companyName: '', |
| | | memberType: '', |
| | | mobile: '', |
| | | beforeStatus: '', |
| | | type: '' |
| | | } |
| | | } |
| | | }, |
| | |
| | | <el-table-column prop="beVisitedPersonName" label="被访人" min-width="100px"></el-table-column> |
| | | <el-table-column prop="beVisitedPersonOrg" label="被访人ç»ç»" min-width="100px"></el-table-column> |
| | | <el-table-column prop="eventTypeName" label="äºä»¶ç±»å" min-width="100px"></el-table-column> |
| | | <el-table-column label="ææå¾uri" min-width="100px"> |
| | | <el-table-column label="ææå¾ç" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-image v-if="row.captureUrlFull!=null" |
| | | style="width: 80px; height: 80px" |
| | |
| | | label="访客å
¬å¸"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="人åç±»å"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.memberType === 0">å³å¡è®¿å®¢</span> |
| | | <span v-if="row.memberType === 1">æ®é访客</span> |
| | | <span v-if="row.memberType === 2">å
é¨äººå</span> |
| | | <span v-if="row.type === 0">å³å¡è®¿å®¢</span> |
| | | <span v-if="row.type === 1">æ®é访客</span> |
| | | <span v-if="row.type === 2">å
é¨äººå</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="endtime" |
| | | prop="outDate" |
| | | label="ææå°ææ¶é´"> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | // http://192.168.0.134:10028 任康 |
| | | // http://192.168.0.110:10013 ç£ç£ |
| | | // http://192.168.0.132:10013 å¸
å¥ |
| | | // http://192.168.0.129:10013 èå§ |
| | | // http://192.168.0.126:10033 èå§ |
| | | // https://dmtest.ahapp.net/admin_api æµè¯æ |
| | | target: 'http://192.168.0.126:10033', |
| | | target: 'http://192.168.0.129:10028', |
| | | changeOrigin: true, |
| | | pathRewrite: { |
| | | [`^${[process.env.VUE_APP_API_PREFIX]}`]: '' |
| | |
| | | { |
| | | "requires": true, |
| | | "name": "æ¯æå页Picker", |
| | | "version": "1.0", |
| | | "lockfileVersion": 1, |
| | | "requires": true, |
| | | "dependencies": { |
| | | "qrcodejs2": { |
| | | "version": "0.0.2", |
| | | "resolved": "https://registry.npmmirror.com/qrcodejs2/-/qrcodejs2-0.0.2.tgz", |
| | | "integrity": "sha512-+Y4HA+cb6qUzdgvI3KML8GYpMFwB24dFwzMkS/yXq6hwtUGNUnZQdUnksrV1XGMc2mid5ROw5SAuY9XhI3ValA==" |
| | | }, |
| | | "uniapp-qrcode": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmmirror.com/uniapp-qrcode/-/uniapp-qrcode-1.0.2.tgz", |
| | | "integrity": "sha512-jcWwWz4yXsO7if/+78MMXj5VUdZTLu2D6L/IKb4mJkIw87oF11pO3WS/jS27SUcPCrX/BKcir5a2R1uvkaoR9g==" |
| | | }, |
| | | "uview-ui": { |
| | | "version": "2.0.36", |
| | | "resolved": "https://registry.npmjs.org/uview-ui/-/uview-ui-2.0.36.tgz", |
| | |
| | | "å端ç»ä»¶", |
| | | "éç¨ç»ä»¶" |
| | | ] |
| | | }, |
| | | "dependencies": { |
| | | "qrcodejs2": "0.0.2", |
| | | "uniapp-qrcode": "^1.0.2" |
| | | } |
| | | } |
| | |
| | | "navigationBarTitleText" : "é¢çº¦è¯¦æ
", |
| | | "enablePullDownRefresh" : false |
| | | } |
| | | }, |
| | | { |
| | | "path" : "pages/cropping/cropping", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText" : "å¾çè£åª", |
| | | "enablePullDownRefresh" : false |
| | | } |
| | | } |
| | | ], |
| | | "subPackages": [ |
| | |
| | | <template> |
| | | <view class="box"> |
| | | <view class="box_head"> |
| | | <image src="@/static/logo@2x.png" mode="widthFix"></image> |
| | | <canvas class="box_head_qrcode" canvas-id="img"></canvas> |
| | | <text class="box_head_a" v-if="info.status === 0">访客é¢çº¦å¾
å®¡æ ¸</text> |
| | | <text class="box_head_a" style="color: ;" v-if="info.status === 2">访客é¢çº¦å®¡æ ¸éè¿</text> |
| | | <text class="box_head_a" v-if="info.status === 3">访客é¢çº¦å®¡æ ¸ä¸éè¿</text> |
| | |
| | | </view> |
| | | <view class="box_list"> |
| | | <view class="box_list_label">æè®¿ä¿¡æ¯</view> |
| | | <view class="box_list_tips">è¯·æ³¨ææ¥çåºå
¥é¨ç¦ä¸åæ
åµï¼å¦è¥ä¸å失败ééæ°ç³è¯·</view> |
| | | <view class="box_list_item"> |
| | | <view class="box_list_item_label">æè®¿åå·¥ï¼</view> |
| | | <view class="box_list_item_label">被访人åï¼</view> |
| | | <view class="box_list_item_val">{{info.visitUserName}}</view> |
| | | </view> |
| | | <view class="box_list_item"> |
| | | <!-- <view class="box_list_item"> |
| | | <view class="box_list_item_label">车çå·ï¼</view> |
| | | <view class="box_list_item_val">{{info.carNos}}</view> |
| | | </view> |
| | | </view> --> |
| | | <view class="box_list_item"> |
| | | <view class="box_list_item_label">æè®¿äºç±ï¼</view> |
| | | <view class="box_list_item_val">{{info.visitReason}}</view> |
| | |
| | | <view class="box_list_item_label">访é®é¨ç¦ï¼</view> |
| | | <view class="box_list_item_val" v-if="info.doorGroupName && info.doorGroupName.length > 0">{{info.doorGroupName.join('ã')}}</view> |
| | | </view> |
| | | <view class="box_list_item"> |
| | | <view class="box_list_item_label">主访客ï¼</view> |
| | | <view class="box_list_item_val"> |
| | | {{info.name}} {{info.phone}} |
| | | </view> |
| | | </view> |
| | | <view class="box_list_item" v-for="(item, index) in info.withVisitsList" :key="index"> |
| | | <view class="box_list_item_label">é访人å{{index + 1}}ï¼</view> |
| | | <view class="box_list_item_val">{{item.name}} {{item.phone}}</view> |
| | | <view class="box_list_item_val"> |
| | | {{item.name}} {{item.phone}} |
| | | <view class="box_list_item_val_btn" v-if="[2,5,7,8,9].includes(item.status)"> |
| | | <u-button text="æ¥çäºç»´ç " size="mini" @click="seeQrCode(item)" type="primary"></u-button> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <u-popup :show="show" mode="center" @close="close"> |
| | | <view class="qrocde"> |
| | | <canvas class="qrcode_img" canvas-id="img1"></canvas> |
| | | </view> |
| | | </u-popup> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import wxcode from 'uniapp-qrcode' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | info: {} |
| | | info: {}, |
| | | show: false |
| | | }; |
| | | }, |
| | | onLoad(option) { |
| | |
| | | .then(res => { |
| | | if (res.code === 200) { |
| | | this.info = res.data |
| | | if (res.data.qrcode) { |
| | | wxcode.qrcode('img', res.data.qrcode, 320, 320) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | methods: { |
| | | close() { |
| | | this.show = false |
| | | }, |
| | | seeQrCode(code) { |
| | | if (code.qrcode) { |
| | | this.show = true |
| | | this.$nextTick(() => { |
| | | wxcode.qrcode('img1', code.qrcode, 300, 300) |
| | | }) |
| | | } else { |
| | | uni.showToast({ title: 'ææ äºç»´ç ', icon: 'none' }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <style lang="scss" scoped> |
| | | .box { |
| | | width: 100%; |
| | | .qrocde { |
| | | width: 300rpx; |
| | | height: 300rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | .qrcode_img { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | } |
| | | .box_head { |
| | | width: 100%; |
| | | padding: 40rpx 0; |
| | |
| | | align-items: center; |
| | | justify-content: center; |
| | | flex-direction: column; |
| | | image { |
| | | .box_head_qrcode { |
| | | width: 320rpx; |
| | | height: 320rpx; |
| | | } |
| | |
| | | background-color: #ffffff; |
| | | padding: 40rpx 30rpx; |
| | | box-sizing: border-box; |
| | | .box_list_tips { |
| | | width: 100%; |
| | | height: 52rpx; |
| | | padding: 0 20rpx; |
| | | box-sizing: border-box; |
| | | line-height: 52rpx; |
| | | background-color: rgba(224, 49, 42, 0.06); |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | color: #E0312A; |
| | | border-radius: 4rpx; |
| | | margin: 30rpx 0; |
| | | } |
| | | .box_list_label { |
| | | font-size: 32rpx; |
| | | font-weight: 500; |
| | |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | display: flex; |
| | | align-items: center; |
| | | .box_list_item_val_btn { |
| | | width: 140rpx; |
| | | margin-left: 15rpx; |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="settingHeadImage" @touchstart="onTouchstart" @touchmove.stop.prevent="onTouchmove" @touchend="touchE"> |
| | | <!-- èå± --> |
| | | <canvas class="pre-canvas" canvas-id="firstCanvas" :style="{ width: 100 + 'vw', height: 100 + 'vh' }"></canvas> |
| | | <!-- imgé¢è§ --> |
| | | <view class="preImage" :style="{ width: preImgW + 'px' }"> |
| | | <canvas canvas-id="mycanvas" class="pre-i" |
| | | :style="{ width: preImgW + 'px', height: preImgH + 'px', transform: `translate(${x}px,${y}px)` }"></canvas> |
| | | </view> |
| | | <!-- å·¥å
· --> |
| | | <view class="setting-btns"><text @click="onCrop">ç¡®å®</text></view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | maxW: 250, // æå¤§å®½åº¦ |
| | | maxH: 250, |
| | | screenWidth: '', // å±å¹å®½ |
| | | screenHeight: '', |
| | | xToTop: 0, // xæ¹åè·ç¦»é¡¶é¨è·ç¦» |
| | | scale: 1, // ç¼©æ¾ |
| | | preSrc: '', |
| | | preImgW: '', |
| | | preImgH: '', |
| | | x: 0, |
| | | y: 0, |
| | | oldx: 0, |
| | | oldy: 0, |
| | | isMove: false, |
| | | start: { |
| | | left: 0, |
| | | top: 0 |
| | | } |
| | | }; |
| | | }, |
| | | computed: {}, |
| | | onLoad(option) { |
| | | // éæ©ç
§çä¿¡æ¯ |
| | | let data = JSON.parse(decodeURIComponent(option.item)); |
| | | const query = uni.createSelectorQuery(); |
| | | query.select('.settingHeadImage').boundingClientRect(); |
| | | query.exec(res => { |
| | | // 设置å±å¹å¤§å° |
| | | this.screenWidth = res[0].width; |
| | | this.screenHeight = res[0].height; |
| | | // 设置å¾ååºåå¼ï¼å¾ååºå弿å±å¹å®½åº¦è®¾ç½®ï¼ä¸¤è¾¹çç½å40 |
| | | this.maxH = res[0].width - 80; |
| | | this.maxW = res[0].width - 80; |
| | | // 设置Xè½´å¼ï¼ç®å¼ï¼å±å¹é«åº¦çä¸ååå»åºåæ¡é«åº¦çä¸å |
| | | this.xToTop = this.screenHeight / 2 - this.maxH / 2; |
| | | this.setImageSize(data); |
| | | }); |
| | | }, |
| | | methods: { |
| | | // 宽é«å¤ç |
| | | setImageSize(data) { |
| | | const { |
| | | tempFilePath |
| | | } = data; |
| | | const { |
| | | maxH, |
| | | maxW |
| | | } = this; |
| | | uni.getImageInfo({ |
| | | src: tempFilePath, |
| | | success: res => { |
| | | const { |
| | | errMsg, |
| | | path, |
| | | width, |
| | | height |
| | | } = res; |
| | | let w = ''; |
| | | let h = ''; |
| | | if (errMsg === 'getImageInfo:ok') { |
| | | w = width; |
| | | h = height; |
| | | // 宽大ä¸é«å¤§äºæå¤§å®½åº¦ |
| | | if (width > height && width > maxW) { |
| | | w = Math.floor((width / height) * maxW); |
| | | h = maxH; |
| | | } |
| | | // é«å¤§äºå®½å¤§äºæå¤§é«åº¦ |
| | | if (height > width && height > maxH) { |
| | | h = Math.floor((height / width) * maxH); |
| | | w = maxW; |
| | | } |
| | | // 宽é«ç¸çæè
宽é«å°äºæå¤§å¼ |
| | | if (width === height || (width < maxW && height < maxH)) { |
| | | h = maxH; |
| | | w = maxW; |
| | | } |
| | | this.preSrc = path; |
| | | this.preImgH = h; |
| | | this.preImgW = w; |
| | | // 设置èå± |
| | | this.setBgBox(); |
| | | // å¾åé¢è§ |
| | | this.previewCanvas({ |
| | | w, |
| | | h, |
| | | path |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 设置èå± |
| | | setBgBox() { |
| | | const { |
| | | maxW, |
| | | maxH, |
| | | screenHeight, |
| | | screenWidth, |
| | | xToTop |
| | | } = this; |
| | | const ctx = uni.createCanvasContext('firstCanvas'); |
| | | // å
æ¸
é¤ç©å½¢ |
| | | ctx.clearRect(0, 0, screenWidth, screenHeight); |
| | | // 设置canvaséæåº¦ |
| | | ctx.setGlobalAlpha(0.7); |
| | | // 设置èå±é¢è² |
| | | ctx.setFillStyle('#000000'); |
| | | // ç»å¶èå± |
| | | ctx.fillRect(0, 0, screenWidth, screenHeight); |
| | | // åºåæ¡çç½ |
| | | ctx.clearRect(40, xToTop, maxW, maxH); |
| | | // ç»å¶åºåæ¡ |
| | | ctx.beginPath(); |
| | | ctx.setStrokeStyle('#FFFFFF'); |
| | | ctx.strokeRect(40, xToTop, maxW, maxH); |
| | | ctx.closePath(); |
| | | ctx.draw(); |
| | | }, |
| | | // é¢è§ |
| | | previewCanvas({ |
| | | w, |
| | | h, |
| | | path |
| | | }) { |
| | | const ctx = uni.createCanvasContext('mycanvas'); |
| | | ctx.drawImage(path, 0, 0, w, h); |
| | | ctx.draw(); |
| | | }, |
| | | onTouchstart(ev) { |
| | | if (ev.changedTouches.length === 1) { |
| | | this.isMove = true; |
| | | this.start.left = ev.changedTouches[0].clientX; |
| | | this.start.top = ev.changedTouches[0].clientY; |
| | | } |
| | | }, |
| | | onTouchmove(ev) { |
| | | const { |
| | | maxW, |
| | | maxH, |
| | | preImgH, |
| | | preImgW, |
| | | xToTop |
| | | } = this; |
| | | if (this.isMove && ev.changedTouches.length === 1) { |
| | | let clientX = ev.changedTouches[0].clientX, |
| | | clientY = ev.changedTouches[0].clientY; |
| | | this.x = preImgW <= maxW ? 0 : this.oldx + clientX - this.start.left; |
| | | this.y = preImgH <= maxH ? 0 : this.oldy + clientY - this.start.top; |
| | | } |
| | | }, |
| | | touchE(val) { |
| | | const { |
| | | preImgH, |
| | | preImgW, |
| | | maxH, |
| | | maxW |
| | | } = this; |
| | | const query = uni.createSelectorQuery(); |
| | | const fx = this.x; |
| | | query.select('.pre-i').boundingClientRect(); |
| | | query.exec(res => { |
| | | // xãyåå¼¹è®¡ç® |
| | | let y = (res[0].height - res[0].width) / 2; |
| | | /** |
| | | * 夿ç
§çå¯ç§»å¨çè·ç¦»æ¯å¦å¤§äºçç½çå¼ï¼å¦æå¤§äºåå³åæ¶å¾çç宽åå»åºåæ¡ç宽åå»çç½åå·¦æ¶çç½ï¼å°äºæ¶æå¾ççå¯ç§»å¨å¼ |
| | | * */ |
| | | let x = (preImgW - maxW) / 2 > 40 ? (fx < 0 ? preImgW - maxW - 40 : 40) : (preImgW - maxW) / 2; |
| | | if (preImgH > maxH) { |
| | | this.y = this.y > y ? y : this.y < -y ? -y : this.y; |
| | | } |
| | | if (preImgW > maxW) { |
| | | this.x = this.x > x ? x : this.x < -x ? -x : this.x; |
| | | } |
| | | this.oldx = this.x; |
| | | this.oldy = this.y; |
| | | this.isMove = false; |
| | | }); |
| | | }, |
| | | // è£åª |
| | | onCrop() { |
| | | let y = 0; |
| | | let x = 0; |
| | | const query = uni.createSelectorQuery(); |
| | | query.select('.pre-i').boundingClientRect(); |
| | | query.exec(res => { |
| | | // è·åé¢è§imgè·ç¦»å·¦ä¸çè·ç¦» |
| | | y = Math.abs(res[0].top); |
| | | x = Math.abs(res[0].left); |
| | | const { |
| | | maxW, |
| | | maxH, |
| | | preImgH, |
| | | preImgW, |
| | | xToTop |
| | | } = this; |
| | | uni.canvasToTempFilePath({ |
| | | x: Math.abs(res[0].left < 0 ? x + 40 : x - 40), |
| | | y: Math.abs(res[0].top < 0 ? xToTop + y : xToTop - y), |
| | | width: maxW, |
| | | height: maxH, |
| | | destWidth: maxW, |
| | | destHeight: maxH, |
| | | canvasId: 'mycanvas', |
| | | success: fileRes => { |
| | | console.log(fileRes); |
| | | uni.previewImage({ |
| | | count: 1, |
| | | urls: [fileRes.tempFilePath] |
| | | }); |
| | | }, |
| | | fail: function(err) { |
| | | console.log(err); |
| | | uni.showToast({ |
| | | title: 'ä¸ä¼ 失败ï¼å¾ççæè¿ç¨ä¸éå°é误', |
| | | icon: 'none' |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .settingHeadImage { |
| | | background-color: #000000; |
| | | overflow: hidden; |
| | | |
| | | .pre-canvas { |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | z-index: 20; |
| | | } |
| | | |
| | | .preImage { |
| | | min-width: 100vw; |
| | | height: 100vh; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | overflow: hidden; |
| | | z-index: 1; |
| | | |
| | | .pre-i { |
| | | // transition: all 0.1s; |
| | | } |
| | | } |
| | | |
| | | .setting-btns { |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | z-index: 20; |
| | | font-size: 14px; |
| | | color: #ffffff; |
| | | } |
| | | } |
| | | </style> |