YZProjectCloud/yanzhu-ui-vue3/src/views/manage/attendance_ubi_device/index.vue

381 lines
16 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="公司主键" prop="comId">
<el-input v-model="queryParams.comId" placeholder="请输入公司主键" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="分包单位" prop="projectId">
<el-input v-model="queryParams.projectId" placeholder="请输入分包单位" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="设备名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入设备名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="设备标签" prop="tag">
<el-input v-model="queryParams.tag" placeholder="请输入设备标签" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="场景 Guid" prop="sceneGuid">
<el-input v-model="queryParams.sceneGuid" placeholder="请输入场景 Guid" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="设备来源,字典ubi_device_source" prop="source">
<el-input v-model="queryParams.source" placeholder="请输入设备来源,字典ubi_device_source" clearable
@keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="设备序列号" prop="deviceNo">
<el-input v-model="queryParams.deviceNo" placeholder="请输入设备序列号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="是否绑定默认场景" prop="bindDefaultScene">
<el-input v-model="queryParams.bindDefaultScene" placeholder="请输入是否绑定默认场景" clearable
@keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="是否清空设备数据默认为false" prop="forceEmptyDevice">
<el-input v-model="queryParams.forceEmptyDevice" placeholder="请输入是否清空设备数据默认为false" clearable
@keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="当forceEmptyDevice为true传入设备密码" prop="password">
<el-input v-model="queryParams.password" placeholder="请输入当forceEmptyDevice为true传入设备密码" clearable
@keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="设备模式" prop="deviceModel">
<el-input v-model="queryParams.deviceModel" placeholder="请输入设备模式" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="设备状态" prop="deviceState">
<el-input v-model="queryParams.deviceState" placeholder="请输入设备状态" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="在线状态" prop="onlineState">
<el-input v-model="queryParams.onlineState" placeholder="请输入在线状态" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="版本号" prop="versionNo">
<el-input v-model="queryParams.versionNo" placeholder="请输入版本号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="最后激活时间" prop="lastActiveTime">
<el-date-picker clearable v-model="queryParams.lastActiveTime" type="date" value-format="YYYY-MM-DD"
placeholder="请选择最后激活时间">
</el-date-picker>
</el-form-item>
<el-form-item label="是否已注册" prop="hasRegister">
<el-input v-model="queryParams.hasRegister" placeholder="请输入是否已注册" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="状态" prop="state">
<el-input v-model="queryParams.state" placeholder="请输入状态" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="${comment}" prop="isDel">
<el-input v-model="queryParams.isDel" placeholder="请输入${comment}" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd"
v-hasPermi="['manage:attendance_ubi_device:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate"
v-hasPermi="['manage:attendance_ubi_device:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
v-hasPermi="['manage:attendance_ubi_device:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="Download" @click="handleExport"
v-hasPermi="['manage:attendance_ubi_device:export']">导出</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="attendance_ubi_deviceList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="${comment}" align="center" prop="id" />
<el-table-column label="公司主键" align="center" prop="comId" />
<el-table-column label="分包单位" align="center" prop="projectId" />
<el-table-column label="设备名称" align="center" prop="name" />
<el-table-column label="设备标签" align="center" prop="tag" />
<el-table-column label="场景 Guid" align="center" prop="sceneGuid" />
<el-table-column label="设备来源,字典ubi_device_source" align="center" prop="source" />
<el-table-column label="设备序列号" align="center" prop="deviceNo" />
<el-table-column label="扩展字段" align="center" prop="addition" />
<el-table-column label="是否绑定默认场景" align="center" prop="bindDefaultScene" />
<el-table-column label="是否清空设备数据默认为false" align="center" prop="forceEmptyDevice" />
<el-table-column label="当forceEmptyDevice为true传入设备密码" align="center" prop="password" />
<el-table-column label="设备模式" align="center" prop="deviceModel" />
<el-table-column label="设备状态" align="center" prop="deviceState" />
<el-table-column label="比对模式,1:本地识别 2:云端识别" align="center" prop="recType" />
<el-table-column label="在线状态" align="center" prop="onlineState" />
<el-table-column label="版本号" align="center" prop="versionNo" />
<el-table-column label="最后激活时间" align="center" prop="lastActiveTime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.lastActiveTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="是否已注册" align="center" prop="hasRegister" />
<el-table-column label="状态" align="center" prop="state" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="${comment}" align="center" prop="isDel" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['manage:attendance_ubi_device:edit']">修改</el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
v-hasPermi="['manage:attendance_ubi_device:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改宇泛的设备信息对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="attendance_ubi_deviceRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="公司主键" prop="comId">
<el-input v-model="form.comId" placeholder="请输入公司主键" />
</el-form-item>
<el-form-item label="分包单位" prop="projectId">
<el-input v-model="form.projectId" placeholder="请输入分包单位" />
</el-form-item>
<el-form-item label="设备名称" prop="name">
<el-input v-model="form.name" placeholder="请输入设备名称" />
</el-form-item>
<el-form-item label="设备标签" prop="tag">
<el-input v-model="form.tag" placeholder="请输入设备标签" />
</el-form-item>
<el-form-item label="场景 Guid" prop="sceneGuid">
<el-input v-model="form.sceneGuid" placeholder="请输入场景 Guid" />
</el-form-item>
<el-form-item label="设备来源,字典ubi_device_source" prop="source">
<el-input v-model="form.source" placeholder="请输入设备来源,字典ubi_device_source" />
</el-form-item>
<el-form-item label="设备序列号" prop="deviceNo">
<el-input v-model="form.deviceNo" placeholder="请输入设备序列号" />
</el-form-item>
<el-form-item label="扩展字段" prop="addition">
<el-input v-model="form.addition" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="是否绑定默认场景" prop="bindDefaultScene">
<el-input v-model="form.bindDefaultScene" placeholder="请输入是否绑定默认场景" />
</el-form-item>
<el-form-item label="是否清空设备数据默认为false" prop="forceEmptyDevice">
<el-input v-model="form.forceEmptyDevice" placeholder="请输入是否清空设备数据默认为false" />
</el-form-item>
<el-form-item label="当forceEmptyDevice为true传入设备密码" prop="password">
<el-input v-model="form.password" placeholder="请输入当forceEmptyDevice为true传入设备密码" />
</el-form-item>
<el-form-item label="设备模式" prop="deviceModel">
<el-input v-model="form.deviceModel" placeholder="请输入设备模式" />
</el-form-item>
<el-form-item label="设备状态" prop="deviceState">
<el-input v-model="form.deviceState" placeholder="请输入设备状态" />
</el-form-item>
<el-form-item label="在线状态" prop="onlineState">
<el-input v-model="form.onlineState" placeholder="请输入在线状态" />
</el-form-item>
<el-form-item label="版本号" prop="versionNo">
<el-input v-model="form.versionNo" placeholder="请输入版本号" />
</el-form-item>
<el-form-item label="最后激活时间" prop="lastActiveTime">
<el-date-picker clearable v-model="form.lastActiveTime" type="date" value-format="YYYY-MM-DD"
placeholder="请选择最后激活时间">
</el-date-picker>
</el-form-item>
<el-form-item label="是否已注册" prop="hasRegister">
<el-input v-model="form.hasRegister" placeholder="请输入是否已注册" />
</el-form-item>
<el-form-item label="状态" prop="state">
<el-input v-model="form.state" placeholder="请输入状态" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="${comment}" prop="isDel">
<el-input v-model="form.isDel" placeholder="请输入${comment}" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="Attendance_ubi_device">
import { listAttendance_ubi_device, getAttendance_ubi_device, delAttendance_ubi_device, addAttendance_ubi_device, updateAttendance_ubi_device } from "@/api/manage/attendanceUbiDevice";
const { proxy } = getCurrentInstance();
const attendance_ubi_deviceList = ref([]);
const open = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
comId: null,
projectId: null,
name: null,
tag: null,
sceneGuid: null,
source: null,
deviceNo: null,
addition: null,
bindDefaultScene: null,
forceEmptyDevice: null,
password: null,
deviceModel: null,
deviceState: null,
recType: null,
onlineState: null,
versionNo: null,
lastActiveTime: null,
hasRegister: null,
state: null,
isDel: null,
},
rules: {
}
});
const { queryParams, form, rules } = toRefs(data);
/** */
function getList() {
loading.value = true;
listAttendance_ubi_device(queryParams.value).then(response => {
attendance_ubi_deviceList.value = response.rows;
total.value = response.total;
loading.value = false;
});
}
// 取消按钮
function cancel() {
open.value = false;
reset();
}
// 表单重置
function reset() {
form.value = {
id: null,
comId: null,
projectId: null,
name: null,
tag: null,
sceneGuid: null,
source: null,
deviceNo: null,
addition: null,
bindDefaultScene: null,
forceEmptyDevice: null,
password: null,
deviceModel: null,
deviceState: null,
recType: null,
onlineState: null,
versionNo: null,
lastActiveTime: null,
hasRegister: null,
state: null,
remark: null,
isDel: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
proxy.resetForm("attendance_ubi_deviceRef");
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
}
// 多选框选中数据
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
function handleAdd() {
reset();
open.value = true;
title.value = "添加宇泛的设备信息";
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
const _id = row.id || ids.value
getAttendance_ubi_device(_id).then(response => {
form.value = response.data;
open.value = true;
title.value = "修改宇泛的设备信息";
});
}
/** 提交按钮 */
function submitForm() {
proxy.$refs["attendance_ubi_deviceRef"].validate(valid => {
if (valid) {
if (form.value.id != null) {
updateAttendance_ubi_device(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
} else {
addAttendance_ubi_device(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
}
}
});
}
/** 删除按钮操作 */
function handleDelete(row) {
const _ids = row.id || ids.value;
proxy.$modal.confirm('是否确认删除宇泛的设备信息编号为"' + _ids + '"的数据项?').then(function () {
return delAttendance_ubi_device(_ids);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => { });
}
/** 导出按钮操作 */
function handleExport() {
proxy.download('manage/attendance_ubi_device/export', {
...queryParams.value
}, `attendance_ubi_device_${new Date().getTime()}.xlsx`)
}
getList();
</script>