feat: 门禁权限查看与删除

This commit is contained in:
caoqianming 2023-10-09 15:51:25 +08:00
parent cd6b31bd51
commit 7fa43de6c7
4 changed files with 144 additions and 2 deletions

View File

@ -24,6 +24,7 @@
"d3": "^7.6.1", "d3": "^7.6.1",
"dagre": "^0.8.5", "dagre": "^0.8.5",
"dagre-d3": "^0.6.4", "dagre-d3": "^0.6.4",
"dhtmlx-gantt": "^8.0.6",
"echarts": "5.4.1", "echarts": "5.4.1",
"element-plus": "2.2.32", "element-plus": "2.2.32",
"file-saver": "^2.0.5", "file-saver": "^2.0.5",

View File

@ -114,6 +114,24 @@ export default {
data data
); );
} }
},
doorauth: {
list: {
name: "门禁权限",
req: async function(data){
return await http.get(
`${config.API_URL}/third/doorauth/`,
data
);
}
},
delete: {
name: "删除权限",
req: async function(id){
return await http.delete(
`${config.API_URL}/third/doorauth/${id}/`,
);
}
}
} }
} }

View File

@ -1496,7 +1496,16 @@ const routes = [
}, },
"component": "hrm/certificate" "component": "hrm/certificate"
}, },
{
"name": "doorAuth",
"path": "/hrm/doorauth",
"meta": {
"title": "门禁权限",
"icon": "el-icon-key",
"perms": ["doorauth"]
},
"component": "hrm/doorauth"
},
] ]
}, },
//基础配置 //基础配置

114
src/views/hrm/doorauth.vue Normal file
View File

@ -0,0 +1,114 @@
<template>
<el-container>
<el-header>
<div class="left-panel">
<el-select v-model="query.dchannel" placeholder="门禁通道" @change="handleQuery" clearable
style="margin-left: 2px; width: 220px">
<el-option v-for="item in dchannelOptions" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
<el-select v-model="query.employee__type" placeholder="人员类型" @change="handleQuery" clearable
style="margin-left: 2px; width: 120px">
<el-option v-for="item in typeOptions" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
</div>
<div class="right-panel">
<div class="right-panel-search">
<el-input v-model="query.search" placeholder="人员姓名" clearable @keyup.enter="handleQuery"></el-input>
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
</div>
</div>
</el-header>
<el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe>
<el-table-column label="通道名称" prop="dchannel">
<template #default="scope">
<span v-if="scope.row.dchannel_">{{ scope.row.dchannel_.name }}</span>
</template>
</el-table-column>
<el-table-column label="人员类型">
<template #default="scope">
<span v-if="scope.row.employee_">{{ epOptions[scope.row.employee_.type] }}</span>
</template>
</el-table-column>
<el-table-column label="人员姓名">
<template #default="scope">
<span v-if="scope.row.employee_">{{ scope.row.employee_.name }}</span>
</template>
</el-table-column>
<el-table-column label="部门/单位">
<template #default="scope">
<span v-if="scope.row.employee_">{{ scope.row.employee_.belong_dept_name }}</span>
</template>
</el-table-column>
<el-table-column label="时间范围">
<template #default="scope">
<div v-if="scope.row.employee_">
<p>{{ scope.row.employee_.third_info.dh_face_card_start }}</p>
<p>{{ scope.row.employee_.third_info.dh_face_card_end }}</p>
</div>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" align="left">
<template #default="scope">
<el-popconfirm title="确定删除吗?" @confirm="table_del(scope.row, scope.$index)">
<template #reference>
<el-button link type="danger" size="small" v-auth="'doorauth.delete'">删除</el-button>
</template>
</el-popconfirm>
</template>
</el-table-column>
</scTable>
</el-main>
</el-container>
</template>
<script>
export default {
name: "doorauth",
components: {},
data() {
return {
apiObj: this.$API.third.doorauth.list,
query: {},
dchannelOptions: [],
typeOptions: [
{ label: "正式员工", value: "employee" },
{ label: "相关方", value: "remployee" },
{ label: "访客", value: "visitor" },
{ label: "货车司机", value: "driver" },
],
epOptions: {
"employee": "正式员工",
"remployee": "相关方",
'visitor': "访客",
"driver": "司机"
},
trigger_: {
"door": "门禁",
"location": "定位",
"panel": "面板机"
},
};
},
mounted() {
this.getDchannels()
},
methods: {
getDchannels() {
this.$API.third.tdevice.list.req({ page: 0, type: 70 }).then(res => {
this.dchannelOptions = res
})
},
handleQuery() {
this.$refs.table.queryData(this.query);
},
table_del(row) {
this.$API.third.doorauth.delete.req(row.id).then(() => {
this.$refs.table.refresh();
this.$message.success("删除成功");
});
},
}
}
</script>