290 lines
7.1 KiB
Vue
290 lines
7.1 KiB
Vue
<template>
|
|
<div class="user">
|
|
<div class="demo-formName">
|
|
<my-form
|
|
:formNewList="formList"
|
|
:fromItem="formItem"
|
|
@headdenForm="headdenForm"
|
|
@onMounted="onMountedForm"
|
|
ref="myForm"
|
|
:labelWidth="'110px'"
|
|
>
|
|
</my-form>
|
|
</div>
|
|
<div class="count">
|
|
<el-button
|
|
type="primary"
|
|
icon="el-icon-search"
|
|
@click="headdenForm({ page: 1, pageSize: 10 }, 'search')"
|
|
>
|
|
查询
|
|
</el-button>
|
|
<el-button
|
|
type="primary"
|
|
icon="el-icon-plus"
|
|
@click="headdenForm({}, 'add')"
|
|
>
|
|
新增
|
|
</el-button>
|
|
</div>
|
|
<div class="table-container">
|
|
<my-table
|
|
:tableData="tableData"
|
|
:coloumData="coloumData"
|
|
isShowPagination
|
|
:paginationParam="paginationParam"
|
|
@changeSize="handleSizeChange"
|
|
@changePage="handlePageChange"
|
|
>
|
|
<template #operate="{ data }">
|
|
<el-link
|
|
type="primary"
|
|
:underline="false"
|
|
@click="handleClick(data, 'edit')"
|
|
v-if="data.name !== 'admin'"
|
|
>
|
|
修改
|
|
</el-link>
|
|
<el-link
|
|
type="danger"
|
|
:underline="false"
|
|
@click="handleClick(data, 'delete')"
|
|
v-if="data.name !== 'admin'"
|
|
>
|
|
删除
|
|
</el-link>
|
|
</template>
|
|
</my-table>
|
|
</div>
|
|
<el-drawer
|
|
:title="title"
|
|
:visible.sync="drawer"
|
|
append-to-body
|
|
direction="rtl"
|
|
>
|
|
<div class="demo-drawer__content">
|
|
<my-form
|
|
:formNewList="formDrawerList"
|
|
:fromItem="fromItem"
|
|
dialogImageUrl
|
|
@determine="determine"
|
|
@handleClose="handleClose"
|
|
labelWidth="120px"
|
|
>
|
|
</my-form>
|
|
</div>
|
|
</el-drawer>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
"use script";
|
|
import { userList, userAdd, userUpdate, userDelete } from "@/api/user.js";
|
|
export default {
|
|
name: "webDevice",
|
|
data() {
|
|
return {
|
|
defaultImg: require("@/assets/img/nopic.png"),
|
|
formList: [
|
|
{
|
|
label: "账号",
|
|
type: "input",
|
|
model: "key"
|
|
}
|
|
],
|
|
formItem: {},
|
|
formDrawerList: [
|
|
{
|
|
label: "账号",
|
|
type: "input",
|
|
model: "name",
|
|
rules: [{ required: true, message: "请输入账号" }],
|
|
disabled: true
|
|
},
|
|
{
|
|
label: "密码",
|
|
type: "input",
|
|
model: "password",
|
|
rules: [{ required: true, message: "请输入密码" }],
|
|
showPassword: true,
|
|
disabled: true,
|
|
show: false
|
|
},
|
|
{
|
|
label: "是否管理员",
|
|
type: "select",
|
|
model: "isAdmin",
|
|
options: [
|
|
{
|
|
label: "是",
|
|
key: true
|
|
},
|
|
{
|
|
label: "否",
|
|
key: false
|
|
}
|
|
]
|
|
}
|
|
],
|
|
tableData: [],
|
|
coloumData: [
|
|
{
|
|
label: "账号",
|
|
prop: "name",
|
|
align: "center"
|
|
},
|
|
{
|
|
label: "是否管理员",
|
|
prop: "isAdmin",
|
|
align: "center"
|
|
},
|
|
{
|
|
slot: "operate",
|
|
label: "操作",
|
|
width: 250,
|
|
fixed: "right"
|
|
}
|
|
],
|
|
paginationParam: {
|
|
currentPage: 1,
|
|
size: 10,
|
|
total: 0
|
|
},
|
|
drawer: false,
|
|
title: "",
|
|
fromItem: {},
|
|
deviceType: [],
|
|
PositionList: [],
|
|
historyList: [],
|
|
isType: ""
|
|
};
|
|
},
|
|
mounted() {
|
|
this.headdenForm({}, "search");
|
|
},
|
|
methods: {
|
|
getStatusStyle(value) {
|
|
return {
|
|
color: value == 0 ? "green" : "red"
|
|
};
|
|
},
|
|
// 最大健康值 默认显示
|
|
onMountedForm() {
|
|
this.$forceUpdate();
|
|
},
|
|
// 关闭抽屉
|
|
handleClose() {
|
|
this.drawer = false;
|
|
},
|
|
// 新增 搜索
|
|
headdenForm(value, type) {
|
|
let params = {};
|
|
if (type === "add") {
|
|
this.isType = "add";
|
|
this.title = "新增人员";
|
|
this.fromItem = {};
|
|
this.formDrawerList[0].disabled = false;
|
|
this.formDrawerList[1].disabled = false;
|
|
this.formDrawerList[1].show = true;
|
|
this.drawer = true;
|
|
} else if (type === "search") {
|
|
params = JSON.parse(JSON.stringify(this.$refs.myForm.ruleForm));
|
|
params.pageNum = this.paginationParam.currentPage;
|
|
params.pageSize = this.paginationParam.size;
|
|
userList(params).then((res) => {
|
|
if (res.code === 0) {
|
|
this.tableData = res.data.items.map((item) => {
|
|
const { ...rest } = item;
|
|
return {
|
|
...rest,
|
|
isAdmin: item.isAdmin ? "是" : "否"
|
|
};
|
|
});
|
|
this.paginationParam.total = res.data.total;
|
|
}
|
|
});
|
|
}
|
|
console.log(value);
|
|
},
|
|
// 停用 编辑 删除
|
|
handleClick(value, type) {
|
|
if (type === "edit") {
|
|
this.isType = "edit";
|
|
this.title = "编辑人员";
|
|
this.fromItem = value;
|
|
this.formDrawerList[0].disabled = true;
|
|
this.formDrawerList[1].disabled = true;
|
|
this.formDrawerList[1].show = false;
|
|
this.drawer = true;
|
|
} else if (type === "delete") {
|
|
this.$confirm("此操作将永久删除该人员, 是否继续?", "提示", {
|
|
confirmButtonText: "确定",
|
|
cancelButtonText: "取消",
|
|
type: "warning"
|
|
})
|
|
.then(() => {
|
|
userDelete([value.id]).then((res) => {
|
|
if (res.code === 0) {
|
|
this.$message.success("删除成功");
|
|
this.headdenForm({}, "search");
|
|
}
|
|
});
|
|
})
|
|
.catch(() => {
|
|
this.$message({
|
|
type: "info",
|
|
message: "已取消删除"
|
|
});
|
|
});
|
|
}
|
|
},
|
|
// 确定按钮
|
|
determine(value) {
|
|
let params = {};
|
|
params = value;
|
|
params.isAdmin = JSON.parse(params.isAdmin);
|
|
console.log(params, "params");
|
|
if (this.isType === "add") {
|
|
// console.log("新增");
|
|
userAdd(params)
|
|
.then((res) => {
|
|
if (res.code === 0) {
|
|
this.$message.success("新增成功");
|
|
this.headdenForm({}, "search");
|
|
}
|
|
})
|
|
.catch((err) => {
|
|
console.log(err);
|
|
});
|
|
} else if (this.isType === "edit") {
|
|
userUpdate(params).then((res) => {
|
|
if (res.code === 0) {
|
|
this.$message.success("编辑成功");
|
|
this.headdenForm({}, "search");
|
|
}
|
|
});
|
|
}
|
|
this.drawer = false;
|
|
},
|
|
handleSizeChange(value) {
|
|
console.log(value);
|
|
this.paginationParam.size = value;
|
|
this.headdenForm({}, "search");
|
|
},
|
|
handlePageChange(value) {
|
|
console.log(value);
|
|
this.paginationParam.currentPage = value;
|
|
this.headdenForm({}, "search");
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
<style scoped lang="scss">
|
|
.user {
|
|
width: 95%;
|
|
height: 100%;
|
|
padding: 20px;
|
|
position: relative;
|
|
}
|
|
</style>
|