admin/src/api/business/cars.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/api/business/parkBook.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/assets/style/style.scss | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/components/business/OperaCarAuthWindow.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/components/business/OperaMemberRoleWindow.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/views/business/internalCompany.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/views/business/internalMember.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/views/vehicle/parkBook.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
admin/src/api/business/cars.js
@@ -23,12 +23,12 @@ // 删除 export function deleteById (id) { return request.get(`/business/cars/delete/${id}`) return request.get(`/visitsAdmin/cloudService/business/cars/delete/${id}`) } // 批量删除 export function deleteByIdInBatch (ids) { return request.get('/business/cars/delete/batch', { return request.get('/visitsAdmin/cloudService/business/cars/delete/batch', { params: { ids } admin/src/api/business/parkBook.js
@@ -11,6 +11,9 @@ export function create (data) { return request.post('/visitsAdmin/cloudService/business/parkBook/create', data) } export function batchAuth (data) { return request.post('/visitsAdmin/cloudService/business/parkBook/batchAuth', data) } // 修改 export function updateById (data) { @@ -23,7 +26,7 @@ // 删除 export function deleteById (id) { return request.get(`/business/parkBook/delete/${id}`) return request.get(`/visitsAdmin/cloudService/business/parkBook/delete/${id}`) } // 批量删除 admin/src/assets/style/style.scss
@@ -115,7 +115,7 @@ } } .tip-warn { margin: 4px 0 12px 0; margin: 4px 0 25px 0; font-size: 12px; color: #999; i { admin/src/components/business/OperaCarAuthWindow.vue
@@ -0,0 +1,176 @@ <template> <GlobalWindow :title="title" width="800px" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm" > <p class="tip-warn"><i class="el-icon-warning"></i>提醒:<br> 1.车辆权限配置成功后,授权任务即进入权限下发队列,可前往【车辆授权申请记录】查看下发进度;<br> 2.如果需要清空当前选中人员下发权限,以下【授权停车场】为空提交即可。 </p> <p class="tip" v-if="form.codes != null">正在为<em>【{{ form.codes.map(item => `${item}`).join(',') }}】</em> 配置停车场权限</p> <el-form :model="form" ref="form" :rules="rules"> <el-form-item label="授权有效期:" prop="authTimeType" > <el-radio-group v-model="form.authTimeType"> <el-radio :label="0">长期有效</el-radio> <el-radio :label="1">自定义时间</el-radio> <el-radio :label="2">跟随车主</el-radio> </el-radio-group> <div v-if="form.authTimeType ==1" style="margin-top: 10px" > <el-date-picker @change="seleTime" v-model="time" type="datetimerange" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker> </div> </el-form-item> <el-form-item label="选择停车库" prop="parkIdList"> <el-select multiple v-model="form.parkIdList" filterable placeholder="请选择" clearable> <el-option v-for="item in parks" :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' import { findList } from '@/api/business/parks' export default { name: 'OperaCarsWindow', extends: BaseOpera, components: { GlobalWindow }, data () { var validateTime = (rule, value, callback) => { if (this.form.authTimeType == null) { callback(new Error('请填写正确的授权有效期时间')) return } if (this.form.authTimeType === 1 && (this.form.startTime == null || this.form.endTime == null)) { callback(new Error('请填写正确的授权有效期时间')) return } callback() } return { // 表单数据 form: { ids: [], codes: [], authTimeType: 0, startTime: null, endTime: null, parkIdList: [] }, time: null, parks: [], // 验证规则 rules: { authTimeType: [ { required: true, validator: validateTime, message: '请选中门禁有效期' } ] }, options: [] } }, created () { this.config({ api: '/business/parkBook', 'field.id': 'id' }) }, methods: { confirm () { this.$refs.form.validate((valid) => { if (!valid) { return } if (this.form.parkIdList == null || this.form.parkIdList.length === 0) { this.$dialog.actionConfirm('授权停车库为空,提交后即清除所选车辆已分配的全部权限,请谨慎操作!', '您确认进行该操作吗?') .then(() => { this.confirmDo() }) .catch(() => {}) } else { this.confirmDo() } }) }, confirmDo () { // 调用新建接口 this.isWorking = true this.api.batchAuth({ idList: this.form.ids, authTimeType: this.form.authTimeType, startTime: this.form.startTime, endTime: this.form.endTime, parkIdList: this.form.parkIdList }) .then(() => { this.visible = false this.$tip.apiSuccess('授权成功,可前往【车辆授权申请记录】查看下发进度') this.$emit('success') }) .catch(e => { // this.$tip.apiFailed(e) }) .finally(() => { this.isWorking = false }) }, seleTime (e) { if (e && e.length >= 2) { this.form.startTime = e[0] this.form.endTime = e[1] } else { this.form.startTime = null this.form.endTime = null } }, open (title, ids, names, companyType) { this.title = title this.visible = true this.companyType = companyType // 新建 this.$nextTick(() => { this.$refs.form.resetFields() this.form[this.configData['field.id']] = null this.form.ids = ids this.form.codes = names this.loadParks() console.log(names) }) }, loadParks () { this.parks = [] findList({ isdeleted: 0 }) .then(res => { this.parks = res }) .catch(e => { this.$message.error('加载停车库信息失败') }) .finally(() => { // this.isWorking = false }) } } } </script> admin/src/components/business/OperaMemberRoleWindow.vue
@@ -2,7 +2,7 @@ <GlobalWindow :title="title" :visible.sync="visible" width="900px" width="70%" :confirm-working="isWorking" @confirm="confirm" > @@ -145,7 +145,7 @@ }) .then(() => { this.visible = false this.$tip.apiSuccess('新建成功') this.$tip.apiSuccess('授权成功,可前往【人员授权记录】查看下发进度') this.$emit('success') }) .catch(e => { admin/src/views/business/internalCompany.vue
@@ -50,7 +50,7 @@ <template slot-scope="{row}"> <el-button type="text" @click="$refs.OperaInternalCompanyWindow.open('编辑企业信息',{ id: row.parentId,name:row.parentName,type:row.parentType, companyPath:row.parentCompanyPath}, row)" icon="el-icon-edit" v-permissions="['business:company:update']">编辑</el-button> <el-button type="text" @click="$refs.OperaInternalCompanyWindow.open('新建子级', row,null)" icon="el-icon-plus">新建子级</el-button> <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:company:delete']">删除</el-button> <el-button type="text" @click="deleteById(row)" style="color: red" icon="el-icon-delete" v-permissions="['business:company:delete']">删除</el-button> </template> </el-table-column> </el-table> admin/src/views/business/internalMember.vue
@@ -6,26 +6,26 @@ <el-input v-model="searchForm.keyword" placeholder="请输入姓名/手机号/工号" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="" prop="hasFace"> <el-select v-model="searchForm.hasFace" @keypress.enter.native="search" placeholder="是否有人脸"> <el-select v-model="searchForm.hasFace" @keypress.enter.native="search" clearable 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-select v-model="searchForm.canVisit" clearable @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-select v-model="searchForm.status" @keypress.enter.native="search" clearable 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="hkStatus"> <el-select v-model="searchForm.hkStatus" @keypress.enter.native="search" placeholder="海康同步状态"> <el-select v-model="searchForm.hkStatus" @keypress.enter.native="search" clearable placeholder="海康同步状态"> <el-option label="待同步" value="0"></el-option> <el-option label="同步成功" value="1"></el-option> <el-option label="同步失败" value="2"></el-option> @@ -170,7 +170,7 @@ <el-button type="text" :loading="heading" icon="el-icon-delete" @click="updateHead(row,0)" v-if="row.headStatus ==1 " v-permissions="['business:member:head']">取消主管</el-button> <el-button type="text" :loading="heading" icon="el-icon-edit" @click="updateHead(row,1)" v-if="row.headStatus == 0" v-permissions="['business:member:head']">设为主管</el-button> <el-button type="text" icon="el-icon-plus" @click="empower(row.id)" v-permissions="['business:empower:create']">重新授权</el-button> <el-button type="text" icon="el-icon-delete" @click="empower(row.id)" v-permissions="['business:empower:delete']">删除</el-button> <el-button type="text" icon="el-icon-delete" @click="deleteById(row)" style="color: red" v-permissions="['business:member:delete']">删除</el-button> </template> </el-table-column> </el-table> admin/src/views/vehicle/parkBook.vue
@@ -5,11 +5,11 @@ <el-form-item label="车牌号" prop="carCode"> <el-input v-model="searchForm.carCode" placeholder="请输入车牌号" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="员工姓名/手机号" prop="memberName"> <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 label="车主组织" prop="companyName"> <el-input v-model="searchForm.companyName" placeholder="请输入车主组织" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="停车库名称" prop="parksName"> <el-input v-model="searchForm.parksName" placeholder="请输入停车库名称" @keypress.enter.native="search"></el-input>