提交 f53333be authored 作者: 龙菲's avatar 龙菲

用户管理

上级 58c0704a
...@@ -159,18 +159,11 @@ export default { ...@@ -159,18 +159,11 @@ export default {
}, },
async handleSubmit() { async handleSubmit() {
// debugger
// console.log(this.dialogForm);
// return
let params = JSON.parse(JSON.stringify(this.dialogForm)); let params = JSON.parse(JSON.stringify(this.dialogForm));
// 回填文件 // 回填文件
let file = this.$refs.pdf.getFiles(); let file = this.$refs.pdf.getFiles();
let formData = new FormData(); let formData = new FormData();
// console.log("file", file);
// return
// debugger;
if (file[0].status == "ready") { if (file[0].status == "ready") {
// debugger;
formData.append("files", file[0].raw); formData.append("files", file[0].raw);
let upLoadRes = await uploadFile(formData); let upLoadRes = await uploadFile(formData);
if (upLoadRes.code == 0) { if (upLoadRes.code == 0) {
......
...@@ -19,6 +19,13 @@ export const title = [{ ...@@ -19,6 +19,13 @@ export const title = [{
label: "手机号", label: "手机号",
columnAlign: 'center', columnAlign: 'center',
}, },
{
prop: "status",
label: "状态",
columnAlign: 'center',
isStatus: true,
width: 100
},
] ]
export const operates = { export const operates = {
......
<!-- --> <!-- -->
<template> <template>
<div class='users app-container'> <div class="users app-container">
<el-row :gutter="16"> <el-row :gutter="16">
<el-col :span="4"> <el-col :span="4">
<el-tree :data="treeData" :props="defaultProps" @node-click="handleNodeClick" default-expand-all></el-tree> <el-tree
:data="treeData"
:props="defaultProps"
@node-click="handleNodeClick"
default-expand-all
:expand-on-click-node="false"
></el-tree>
</el-col> </el-col>
<el-col :span="20"> <el-col :span="20">
<div class="top-bar"> <div class="top-bar">
<SearchBar :config="searchConfig" @search="search" @reset="reset" /> <SearchBar :config="searchConfig" @search="search" @reset="reset" />
<el-button type="primary" @click.native="handleOperation({ type: 'add' })" icon="el-icon-s-promotion"> <el-button
发布</el-button> type="primary"
@click.native="handleOperation({ type: 'add' })"
icon="el-icon-s-promotion"
>
新增</el-button
>
</div> </div>
<TablePage :data="list.records" :tableTitle="tableTitle" :operates="tableOperates"> <TablePage
:data="list.records"
:tableTitle="tableTitle"
:operates="tableOperates"
>
<template v-slot:status="data"> <template v-slot:status="data">
<el-popconfirm :title="getStatusTitle(data.scope.status)" @onConfirm="handleChangeStatus(data.scope)"> <el-popconfirm
<el-switch slot="reference" :value="Boolean(Number(data.scope.status))"></el-switch> :title="getStatusTitle(data.scope.status)"
@onConfirm="handleChangeStatus(data.scope)"
>
<el-switch
slot="reference"
:value="Boolean(Number(data.scope.status))"
></el-switch>
</el-popconfirm> </el-popconfirm>
</template> </template>
<template v-slot:operates="scope"> <template v-slot:operates="scope">
<TableOperation :operations="tableOperations" :rawData="scope.scope.row" @handleOperation="handleOperation"> <TableOperation
:operations="tableOperations"
:rawData="scope.scope.row"
@handleOperation="handleOperation"
>
</TableOperation> </TableOperation>
</template> </template>
</TablePage> </TablePage>
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination
:current-page="Number(list.current)" :page-sizes="[10, 20, 40, 50]" :page-size="Number(list.size)" @size-change="handleSizeChange"
layout="total, sizes, prev, pager, next, jumper" :total="Number(list.total)" class="pagination"> @current-change="handleCurrentChange"
:current-page="Number(list.current)"
:page-sizes="[10, 20, 40, 50]"
:page-size="Number(list.size)"
layout="total, sizes, prev, pager, next, jumper"
:total="Number(list.total)"
class="pagination"
>
</el-pagination> </el-pagination>
</el-col> </el-col>
</el-row> </el-row>
<InfoEditDialog
:visible="dialogVisible"
:form="form"
:orgTreeData="treeData"
@handleClose="handleClose"
@refresh="loadData"
/>
</div> </div>
</template> </template>
<script> <script>
import TablePage from "@/components/Table/TablePage.vue"; import TablePage from "@/components/Table/TablePage.vue";
import TableOperation from "@/components/Table/TableOperation.vue"; import TableOperation from "@/components/Table/TableOperation.vue";
import SearchBar from "@/components/SearchBar"; import SearchBar from "@/components/SearchBar";
import { title, operates, operations } from "./config"; import { title, operates, operations } from "./config";
import { getDeptTree, getUserList } from '@/api/user' import { getDeptTree, getUserList } from "@/api/user";
export default { export default {
components: { components: {
TablePage, TablePage,
TableOperation, TableOperation,
SearchBar SearchBar,
// InfoEditDialog, // InfoEditDialog,
},
computed: {
tableTitle() {
return title;
}, },
computed: { tableOperates() {
tableTitle() { return operates;
return title; },
}, tableOperations() {
tableOperates() { return operations;
return operates; },
},
data() {
return {
treeData: [],
defaultProps: {
children: "children",
label: "label",
}, },
tableOperations() { list: {
return operations; records: [],
size: 10,
current: 1,
total: 0,
}, },
},
data() { searchConfig: [
return { {
treeData: [ prop: "username",
], type: "input",
defaultProps: { label: "用户名",
children: 'children',
label: 'label'
}, },
list: { {
records: [], prop: "nickName",
size: 10, type: "input",
current: 1, label: "昵称",
total: 0,
}, },
searchConfig: [ ],
{ currentDeptNo: null,
prop: "username", form: {
type: "input", username: "", //用户名
label: "用户名", nickname: "", //昵称
}, password: "", //密码
{ phone: "", //手机号
prop: "nickName", realName: "", //真实姓名
type: "input", deptNo: "",
label: "昵称", },
}, };
], },
mounted() {
this.loadTreeData();
},
methods: {
// 加载树结构数据
async loadTreeData() {
const res = await getDeptTree();
console.log(111, res);
if (res.code == 0) {
this.treeData = res.data;
this.currentDeptNo = this.treeData[0].deptNo;
this.loadListData();
}
},
// 加载表格数据
async loadListData() {
var params = {
page: this.list.current,
limit: this.list.size,
deptNo: this.currentDeptNo,
}; };
const res = await getUserList(params);
if (res.code == 0) {
this.list = res.data;
}
}, },
mounted() {
this.loadTreeData()
this.loadListData()
async search(form) {
var params = {
page: this.list.current,
limit: this.list.size,
deptNo: this.currentDeptNo,
...form,
};
const res = await getUserList(params);
if (res.code == 0) {
this.list = res.data;
}
},
reset() {
this.loadListData();
}, },
methods: {
// 加载树结构数据
async loadTreeData() {
const res = await getDeptTree()
console.log(111, res);
if (res.code == 0) {
this.treeData = res.data
}
},
// 加载表格数据
async loadListData() {
var params = {
page: this.list.current,
limit: this.list.size,
};
const res = await getUserList(params)
if (res.code == 0) {
this.list = res.data;
}
},
async search(form) {
var params = {
page: this.list.current,
limit: this.list.size,
...form,
};
const res = await getUserList(params)
if (res.code == 0) {
this.list = res.data;
}
},
reset() {
this.loadListData();
},
handleNodeClick(e) { handleNodeClick(e) {
console.log(e); console.log(e);
}, const { deptNo } = e;
// 改变页容量 this.currentDeptNo = deptNo;
handleSizeChange(value) { this.loadListData();
this.list.size = value; },
this.loadListData(); // 改变页容量
}, handleSizeChange(value) {
this.list.size = value;
this.loadListData();
},
// 改变当前显示页 // 改变当前显示页
handleCurrentChange(value) { handleCurrentChange(value) {
this.list.current = value; this.list.current = value;
this.loadListData(); this.loadListData();
}, },
async handleOperation(value, row) { async handleOperation(value, row) {
console.log("handleOperation", value, row); console.log("handleOperation", value, row);
switch (value.type) { switch (value.type) {
case "add": case "add":
// this.drawerVisible = true; this.dialogVisible = true;
break; break;
case "edit": case "edit":
// this.form = row; // this.form = row;
// this.drawerVisible = true; this.dialogVisible = true;
break; break;
case "delete": case "delete":
// let deleteRes = await deleteLt([row.literatureId]); // let deleteRes = await deleteLt([row.literatureId]);
// if (deleteRes.code == 0) { // if (deleteRes.code == 0) {
// this.$message.success("删除成功!"); // this.$message.success("删除成功!");
// this.loadData(); // this.loadData();
// } // }
break; break;
} }
},
}, },
}; },
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.top-bar { .top-bar {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 10px; margin-bottom: 10px;
} }
.pagination { .pagination {
margin: 16px; margin: 16px;
} }
.el-button { .el-button {
margin-bottom: 22px; margin-bottom: 22px;
} }
</style> </style>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论