环境数据模块

master
贾肃 5 months ago
parent a0e69726a7
commit 7674d345b8
  1. 6
      src/components/Hamburger/index.vue
  2. 70
      src/router/index.js
  3. 213
      src/views/envData/climaticData/index.vue
  4. 276
      src/views/envData/monitorData/index.vue
  5. 219
      src/views/envData/soilData/index.vue
  6. 8
      src/views/system/base/baseTable.vue

@ -81,9 +81,9 @@ const menuList = ref([
label: '环境数据',icon:'pure-natural', children: [ label: '环境数据',icon:'pure-natural', children: [
{label: '基地地图',href:'/system/base/mapMarkers'}, {label: '基地地图',href:'/system/base/mapMarkers'},
{label: '地块管理',href:'/system/base/baseTable'}, {label: '地块管理',href:'/system/base/baseTable'},
{label: '土壤数据'}, {label: '土壤数据',href: '/envData/soilData'},
{label: '气象数据'}, {label: '气象数据',href: '/envData/climaticData'},
{label: '监控数据'}, {label: '监控数据',href: '/envData/monitorData'},
] ]
}, },
{ {

@ -98,6 +98,76 @@ export const constantRoutes = [
} }
] ]
}, },
{
path: '/system/base',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: 'mapMarkers',
component: () => import('@/views/system/base/mapMarkers.vue'),
name: 'mapMarkers',
meta: { title: '基地地图' }
}
]
},
{
path: '/system/base',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: 'baseTable',
component: () => import('@/views/system/base/baseTable.vue'),
name: 'baseTable',
meta: { title: '地块管理' }
}
]
},
{
path: '/envData',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: 'soilData',
component: () => import('@/views/envData/soilData/index.vue'),
name: 'soilData',
meta: { title: '土壤数据' }
}
]
},
{
path: '/envData',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: 'climaticData',
component: () => import('@/views/envData/climaticData/index.vue'),
name: 'climaticData',
meta: { title: '气象数据' }
}
]
},
{
path: '/envData',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: 'monitorData',
component: () => import('@/views/envData/monitorData/index.vue'),
name: 'monitorData',
meta: { title: '监控数据' }
}
]
},
] ]
// 动态路由,基于用户权限动态去加载 // 动态路由,基于用户权限动态去加载

@ -0,0 +1,213 @@
<!--气象数据-->
<template>
<div class="app-container">
<el-row :gutter="20">
<!--育种基地/资源圃选择-->
<el-col :span="4" :xs="24">
<base-selection v-model="currentBase"></base-selection>
</el-col>
<!--用户数据-->
<el-col :span="20" :xs="24">
<el-row class="base-title">
<el-col :span="6" class="current-base-name">当前基地{{currentBase.baseName || '请选择基地'}}</el-col>
</el-row>
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
<el-row :gutter="10">
<el-col :span="6">
<el-form-item label="设备编码">
<el-input
v-model="queryParams.userName"
placeholder="请输入设备编码"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="数据采集时间">
<el-date-picker
v-model="dateRange"
value-format="YYYY-MM-DD"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<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-col>
</el-row>
</el-form>
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="Download" @click="exportExcel">Excel</el-button>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="设备编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
<el-table-column label="设备类型" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
<el-table-column label="空气温度(°C)" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
<el-table-column label="空气湿度%" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
<el-table-column label="光照强度(Lux)" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
<el-table-column label="风速(m/s)" align="center" key="phonenumber" prop="phonenumber" v-if="columns[5].visible" width="120" />
<el-table-column label="风向" align="center" key="status" v-if="columns[6].visible"></el-table-column>
<el-table-column label="雨量(mm/h)" align="center" prop="createTime" v-if="columns[7].visible" width="160"></el-table-column>
<el-table-column label="大气压(Kpa)" align="center" prop="createTime" v-if="columns[8].visible" width="160"></el-table-column>
<el-table-column label="数据采集时间" align="center" prop="createTime" v-if="columns[9].visible" width="160">
<template #default="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="详情" placement="top">
<el-button link type="primary" icon="View" @click="handleUpdate(scope.row)"></el-button>
</el-tooltip>
<el-tooltip content="修改" placement="top" v-if="scope.row.userId !== 1">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:user:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top" v-if="scope.row.userId !== 1">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:user:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
<template #empty>
<el-result
title="暂无数据">
<template #icon>
<i-database-fail theme="outline" size="38" fill="#9b9b9b"/>
</template>
</el-result>
</template>
</el-table>
<pagination
v-show="total > 0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</el-col>
</el-row>
</div>
</template>
<script setup name="User">
import { changeUserStatus, listUser, resetUserPwd, delUser, getUser, updateUser, addUser, deptTreeSelect } from "@/api/system/user";
const massifFormRef = ref(null)
const router = useRouter();
const { proxy } = getCurrentInstance();
const { sys_normal_disable } = proxy.useDict("sys_normal_disable");
const currentBase = ref({})
const tableList = ref([]);
const open = ref(false);
const loading = ref(false);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const dateRange = ref([]);
//
const columns = ref([
{ key: 0, label: `设备编号`, visible: true },
{ key: 1, label: `设备类型`, visible: true },
{ key: 2, label: `空气温度`, visible: true },
{ key: 3, label: `空气湿度`, visible: true },
{ key: 4, label: `光照强度`, visible: true },
{ key: 5, label: `风速`, visible: true },
{ key: 6, label: `风向`, visible: true },
{ key: 7, label: `雨量`, visible: true },
{ key: 8, label: `大气压`, visible: true },
{ key: 9, label: `数据采集时间`, visible: true },
]);
const exportExcel = () => {
}
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
userName: undefined,
plantingSeason: 2023,
status: undefined,
deptId: undefined
},
});
//
const submitSuccess = (value) =>{
}
const { queryParams, form, rules} = toRefs(data);
/** 查询用户列表 */
function getList() {
loading.value = true;
listUser(proxy.addDateRange(queryParams.value, dateRange.value)).then(res => {
loading.value = false;
tableList.value = res.rows;
total.value = res.total;
});
};
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
};
/** 重置按钮操作 */
function resetQuery() {
dateRange.value = [];
proxy.resetForm("queryRef");
queryParams.value.deptId = undefined;
proxy.$refs.deptTreeRef.setCurrentKey(null);
handleQuery();
};
/** 删除按钮操作 */
function handleDelete(row) {
const userIds = row.userId || ids.value;
proxy.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function () {
return delUser(userIds);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => {});
};
/** 选择条数 */
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.userId);
single.value = selection.length != 1;
multiple.value = !selection.length;
};
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
const userId = row.userId || ids.value;
getUser(userId).then(response => {
form.value = response.data;
open.value = true;
title.value = "修改用户";
form.password = "";
});
};
</script>
<style scoped lang="scss">
.base-title{
margin: 10px 0;
.handoff-model{
padding-right: 20px;
text-align: right;
}
}
.el-form-item{
width: 100%;
}
</style>

@ -0,0 +1,276 @@
<!--监控数据-->
<template>
<div class="app-container">
<el-tabs v-model="activeName">
<el-tab-pane label="实时监控" name="real">
<div class="monitor-title">
<div class="monitor-left">
<el-select v-model="queryParams.baseId">
<el-option v-for="item in baseList" :key="item.baseId" :label="item.baseName" :value="item.baseId"></el-option>
</el-select>
</div>
<div class="monitor-right"><el-link icon="Refresh">换一批</el-link></div>
</div>
<el-row :gutter="20">
<el-col :span="6" v-for="item in watchList">
<div class="monitoring">
<div class="monitorDate">{{item.monitorDate}}</div>
<div class="video"></div>
<div class="device-code">设备编码{{item.deviceCode}}</div>
</div>
</el-col>
</el-row>
</el-tab-pane>
<el-tab-pane label="历史监控" name="history">
<el-row :gutter="20">
<!--用户数据-->
<el-col :span="24" :xs="24">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
<el-row :gutter="10">
<el-col :span="6">
<el-form-item label="基地名称">
<el-select v-model="queryParams.baseId">
<el-option v-for="item in baseList" :key="item.baseId" :label="item.baseName" :value="item.baseId"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设备编码">
<el-input
v-model="queryParams.userName"
placeholder="请输入设备编码"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="数据采集时间">
<el-date-picker
v-model="dateRange"
value-format="YYYY-MM-DD"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<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-col>
</el-row>
</el-form>
<el-row :gutter="10" class="mb8">
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="基地名称" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
<el-table-column label="设备编号" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
<el-table-column label="设备类型" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
<el-table-column label="监控日期" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
<el-table-column label="监控时间段" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
<el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="详情" placement="top">
<el-button link type="primary" icon="View" @click="handleUpdate(scope.row)"></el-button>
</el-tooltip>
</template>
</el-table-column>
<template #empty>
<el-result
title="暂无数据">
<template #icon>
<i-database-fail theme="outline" size="38" fill="#9b9b9b"/>
</template>
</el-result>
</template>
</el-table>
<pagination
v-show="total > 0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</el-col>
</el-row>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script setup name="User">
import { changeUserStatus, listUser, resetUserPwd, delUser, getUser, updateUser, addUser, deptTreeSelect } from "@/api/system/user";
const massifFormRef = ref(null)
const router = useRouter();
const { proxy } = getCurrentInstance();
const currentBase = ref({})
const tableList = ref([]);
const open = ref(false);
const loading = ref(false);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const dateRange = ref([]);
const baseList = ref([
{baseId: 1, baseName: '广西农投基地'},
{baseId: 2, baseName: '广西农垦基地'},
{baseId: 4, baseName: '基地3'},
{baseId: 3, baseName: '基地4'},
{baseId: 5, baseName: '种植资源圃1'},
{baseId: 6, baseName: '种植资源圃2'},
])
//
const columns = ref([
{ key: 0, label: `基地名称`, visible: true },
{ key: 1, label: `设备编码`, visible: true },
{ key: 2, label: `设备类型`, visible: true },
{ key: 3, label: `监控日期`, visible: true },
{ key: 4, label: `监控时间段`, visible: true },
]);
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
userName: undefined,
plantingSeason: 2023,
status: undefined,
deptId: undefined
},
activeName:'real',
//
watchList:[
{deviceCode:'1234',deviceType:'1',monitorDate:'2023-01-01',videoUrl:'https://www.baidu.com'},
{deviceCode:'1234',deviceType:'1',monitorDate:'2023-01-01',videoUrl:'https://www.baidu.com'},
{deviceCode:'1234',deviceType:'1',monitorDate:'2023-01-01',videoUrl:'https://www.baidu.com'},
{deviceCode:'1234',deviceType:'1',monitorDate:'2023-01-01',videoUrl:'https://www.baidu.com'},
{deviceCode:'1234',deviceType:'1',monitorDate:'2023-01-01',videoUrl:'https://www.baidu.com'},
{deviceCode:'1234',deviceType:'1',monitorDate:'2023-01-01',videoUrl:'https://www.baidu.com'},
{deviceCode:'1234',deviceType:'1',monitorDate:'2023-01-01',videoUrl:'https://www.baidu.com'},
{deviceCode:'1234',deviceType:'1',monitorDate:'2023-01-01',videoUrl:'https://www.baidu.com'},
]
});
//
const submitSuccess = (value) =>{
}
const { queryParams, form,activeName,watchList} = toRefs(data);
/** 查询用户列表 */
function getList() {
loading.value = true;
listUser(proxy.addDateRange(queryParams.value, dateRange.value)).then(res => {
loading.value = false;
tableList.value = res.rows;
total.value = res.total;
});
};
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
};
/** 重置按钮操作 */
function resetQuery() {
dateRange.value = [];
proxy.resetForm("queryRef");
queryParams.value.deptId = undefined;
proxy.$refs.deptTreeRef.setCurrentKey(null);
handleQuery();
};
/** 删除按钮操作 */
function handleDelete(row) {
const userIds = row.userId || ids.value;
proxy.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function () {
return delUser(userIds);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => {});
};
/** 导出按钮操作 */
function handleExport() {
proxy.download("system/user/export", {
...queryParams.value,
},`user_${new Date().getTime()}.xlsx`);
};
/** 用户状态修改 */
function handleStatusChange(row) {
let text = row.status === "0" ? "启用" : "停用";
proxy.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function () {
return changeUserStatus(row.userId, row.status);
}).then(() => {
proxy.$modal.msgSuccess(text + "成功");
}).catch(function () {
row.status = row.status === "0" ? "1" : "0";
});
};
/** 选择条数 */
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.userId);
single.value = selection.length != 1;
multiple.value = !selection.length;
};
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
const userId = row.userId || ids.value;
getUser(userId).then(response => {
form.value = response.data;
open.value = true;
title.value = "修改用户";
form.password = "";
});
};
</script>
<style scoped lang="scss">
.el-form-item{
width: 100%;
}
.monitoring{
position: relative;
margin: 10px 0;
text-align: center;
.video{
border-radius: 5px;
margin: 0 auto;
height: 300px;
width: 300px;
background: #e5e5e5;
}
.device-code{
margin-top: 10px;
}
.monitorDate{
position: absolute;
top: 20px;
left: 50px;
}
}
.monitor-title{
height: 45px;
.monitor-left{
width: 200px;float: left
}
.monitor-right{
float: right;
margin-right: 30px;
}
:deep(.el-select__wrapper){
box-shadow:none !important;
}
}
</style>

@ -0,0 +1,219 @@
<!--土壤数据-->
<template>
<div class="app-container">
<el-row :gutter="20">
<!--育种基地/资源圃选择-->
<el-col :span="4" :xs="24">
<base-selection v-model="currentBase"></base-selection>
</el-col>
<!--用户数据-->
<el-col :span="20" :xs="24">
<el-row class="base-title">
<el-col :span="6" class="current-base-name">当前基地{{currentBase.baseName || '请选择基地'}}</el-col>
</el-row>
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
<el-row :gutter="10">
<el-col :span="6">
<el-form-item label="设备编码">
<el-input
v-model="queryParams.userName"
placeholder="请输入设备编码"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="数据采集时间">
<el-date-picker
v-model="dateRange"
value-format="YYYY-MM-DD"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<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-col>
</el-row>
</el-form>
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="Download" @click="exportExcel">Excel</el-button>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="设备编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
<el-table-column label="设备类型" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
<el-table-column label="土壤温度(°C)" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
<el-table-column label="土壤湿度%" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
<el-table-column label="土壤EC(us/cm)" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
<el-table-column label="土壤PH" align="center" key="phonenumber" prop="phonenumber" v-if="columns[5].visible" width="120" />
<el-table-column label="土壤N(us/cm)" align="center" key="status" v-if="columns[6].visible"></el-table-column>
<el-table-column label="土壤P(us/cm)" align="center" prop="createTime" v-if="columns[7].visible" width="160"></el-table-column>
<el-table-column label="土壤K(us/cm)" align="center" prop="createTime" v-if="columns[8].visible" width="160"></el-table-column>
<el-table-column label="数据采集时间" align="center" prop="createTime" v-if="columns[9].visible" width="160">
<template #default="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="详情" placement="top">
<el-button link type="primary" icon="View" @click="handleUpdate(scope.row)"></el-button>
</el-tooltip>
<el-tooltip content="修改" placement="top" v-if="scope.row.userId !== 1">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:user:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top" v-if="scope.row.userId !== 1">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:user:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
<template #empty>
<el-result
title="暂无数据">
<template #icon>
<i-database-fail theme="outline" size="38" fill="#9b9b9b"/>
</template>
</el-result>
</template>
</el-table>
<pagination
v-show="total > 0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</el-col>
</el-row>
</div>
</template>
<script setup name="User">
import { changeUserStatus, listUser, resetUserPwd, delUser, getUser, updateUser, addUser, deptTreeSelect } from "@/api/system/user";
const massifFormRef = ref(null)
const router = useRouter();
const { proxy } = getCurrentInstance();
const { sys_normal_disable } = proxy.useDict("sys_normal_disable");
const currentBase = ref({})
const tableList = ref([]);
const open = ref(false);
const loading = ref(false);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const dateRange = ref([]);
//
const columns = ref([
{ key: 0, label: `设备编号`, visible: true },
{ key: 1, label: `设备类型`, visible: true },
{ key: 2, label: `土壤温度`, visible: true },
{ key: 3, label: `土壤湿度`, visible: true },
{ key: 4, label: `土壤EC`, visible: true },
{ key: 5, label: `土壤PH`, visible: true },
{ key: 6, label: `土壤N`, visible: true },
{ key: 7, label: `土壤P`, visible: true },
{ key: 8, label: `土壤K`, visible: true },
{ key: 9, label: `数据采集时间`, visible: true },
]);
const exportExcel = () => {
}
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
userName: undefined,
plantingSeason: 2023,
status: undefined,
deptId: undefined
},
});
//
const submitSuccess = (value) =>{
}
const { queryParams, form,} = toRefs(data);
/** 查询用户列表 */
function getList() {
loading.value = true;
listUser(proxy.addDateRange(queryParams.value, dateRange.value)).then(res => {
loading.value = false;
tableList.value = res.rows;
total.value = res.total;
});
};
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
};
/** 重置按钮操作 */
function resetQuery() {
dateRange.value = [];
proxy.resetForm("queryRef");
queryParams.value.deptId = undefined;
proxy.$refs.deptTreeRef.setCurrentKey(null);
handleQuery();
};
/** 删除按钮操作 */
function handleDelete(row) {
const userIds = row.userId || ids.value;
proxy.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function () {
return delUser(userIds);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => {});
};
/** 导出按钮操作 */
function handleExport() {
proxy.download("system/user/export", {
...queryParams.value,
},`user_${new Date().getTime()}.xlsx`);
};
/** 选择条数 */
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.userId);
single.value = selection.length != 1;
multiple.value = !selection.length;
};
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
const userId = row.userId || ids.value;
getUser(userId).then(response => {
form.value = response.data;
open.value = true;
title.value = "修改用户";
form.password = "";
});
};
</script>
<style scoped lang="scss">
.base-title{
margin: 10px 0;
.handoff-model{
padding-right: 20px;
text-align: right;
}
}
.el-form-item{
width: 100%;
}
</style>

@ -132,6 +132,14 @@
</el-tooltip> </el-tooltip>
</template> </template>
</el-table-column> </el-table-column>
<template #empty>
<el-result
title="暂无数据">
<template #icon>
<i-database-fail theme="outline" size="38" fill="#9b9b9b"/>
</template>
</el-result>
</template>
</el-table> </el-table>
<pagination <pagination
v-show="total > 0" v-show="total > 0"

Loading…
Cancel
Save