| | |
| | | </el-header>
|
| | | <el-container>
|
| | | <el-aside width="400px">
|
| | | <el-tree |
| | | ref="tree" |
| | | :data="deptTree" |
| | | :check-strictly="true" |
| | | show-checkbox |
| | | accordion |
| | | node-key="id" |
| | | highlight-current |
| | | default-expand-all |
| | | :filter-node-method="filterNode" |
| | | @node-click="nodeClick" |
| | | <el-tree
|
| | | ref="tree"
|
| | | :data="deptTree"
|
| | | :check-strictly="true"
|
| | | show-checkbox
|
| | | accordion
|
| | | node-key="id"
|
| | | highlight-current
|
| | | default-expand-all
|
| | | :filter-node-method="filterNode"
|
| | | @node-click="nodeClick"
|
| | | />
|
| | | </el-aside>
|
| | | <el-main>
|
| | | <el-table |
| | | ref="multipleTable" |
| | | :data="list" |
| | | style="width: 100%;height: 80%;" |
| | | <el-table
|
| | | ref="multipleTable"
|
| | | :data="list"
|
| | | style="width: 100%;height: 80%;"
|
| | | row-key="prop1"
|
| | | @selection-change="handleSelectionChange" |
| | | @selection-change="handleSelectionChange"
|
| | | >
|
| | | <el-table-column type="selection" :reserve-selection="true" width="55" />
|
| | | <el-table-column :label="$t('table.user.username')" prop="username" :show-overflow-tooltip="true" align="center" min-width="120px"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.username }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column :label="$t('table.user.email')" :show-overflow-tooltip="true" align="center" min-width="150px"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.email }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | :label="$t('table.user.sex')" |
| | | :filters="[{ text: $t('common.sex.male'), value: '0' }, { text: $t('common.sex.female'), value: '1' }, { text: $t('common.sex.secret'), value: '2' }]" |
| | | :filter-method="filterSex" |
| | | class-name="status-col" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-tag :type="row.sex | sexFilter"> |
| | | {{ transSex(row.sex) }} |
| | | </el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- |
| | | page.sync 当前页 |
| | | limit.sync 每页显示数量 只能是5,10,20,30,50 |
| | | pagination 翻页的事件 |
| | | --> |
| | | <el-table-column :label="$t('table.user.username')" prop="username" :show-overflow-tooltip="true" align="center" min-width="120px">
|
| | | <template slot-scope="scope">
|
| | | <span>{{ scope.row.username }}</span>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column :label="$t('table.user.email')" :show-overflow-tooltip="true" align="center" min-width="150px">
|
| | | <template slot-scope="scope">
|
| | | <span>{{ scope.row.email }}</span>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column
|
| | | :label="$t('table.user.sex')"
|
| | | :filters="[{ text: $t('common.sex.male'), value: '0' }, { text: $t('common.sex.female'), value: '1' }, { text: $t('common.sex.secret'), value: '2' }]"
|
| | | :filter-method="filterSex"
|
| | | class-name="status-col"
|
| | | >
|
| | | <template slot-scope="{row}">
|
| | | <el-tag :type="row.sex | sexFilter">
|
| | | {{ transSex(row.sex) }}
|
| | | </el-tag>
|
| | | </template>
|
| | | </el-table-column>
|
| | | </el-table>
|
| | | <!--
|
| | | page.sync 当前页
|
| | | limit.sync 每页显示数量 只能是5,10,20,30,50
|
| | | pagination 翻页的事件
|
| | | -->
|
| | | <pagination v-show="total>0" :total="total" :page.sync="pagination.num" :limit.sync="pagination.size" @pagination="search" />
|
| | | <el-button type="primary" @click="sureChoose">确定</el-button>
|
| | | <el-button type="danger" @click="cancleChoose">取消</el-button>
|
| | |
| | | </el-container>
|
| | | </div>
|
| | | </template>
|
| | | <script> |
| | | // 引用翻页组件 |
| | | <script>
|
| | | // 引用翻页组件
|
| | | import Pagination from '@/components/Pagination'
|
| | | export default { |
| | | export default {
|
| | | components: { Pagination },
|
| | | data() {
|
| | | return {
|
| | | headerHeight: '70px', |
| | | headerHeight: '70px',
|
| | | deptTree: [],
|
| | | advancedQueryShow: false, |
| | | advancedQueryShow: false,
|
| | | selection: [],
|
| | | multipleSelection: [], |
| | | total: 0, // 总数量 |
| | | queryParams: {}, // 查询参数 |
| | | sort: {}, // 排序 |
| | | pagination: { // 分页参数 |
| | | size: 5, |
| | | num: 1 |
| | | multipleSelection: [],
|
| | | total: 0, // 总数量
|
| | | queryParams: {}, // 查询参数
|
| | | sort: {}, // 排序
|
| | | pagination: { // 分页参数
|
| | | size: 5,
|
| | | num: 1
|
| | | },
|
| | | list: [], // 给table显示的数据 |
| | | list: [], // 给table显示的数据
|
| | | defaultProps: {
|
| | | children: 'children',
|
| | | label: 'label'
|
| | | }
|
| | | }
|
| | | }, |
| | | mounted() { |
| | | this.initDeptTree() |
| | | // 初始加载 |
| | | this.fetch() |
| | | },
|
| | | methods: { |
| | | initDept() { |
| | | return { |
| | | deptId: '', |
| | | deptName: '', |
| | | parentId: null, |
| | | orderNum: 0 |
| | | } |
| | | }, |
| | | transSex(sex) { |
| | | switch (sex) { |
| | | case '0': |
| | | return this.$t('common.sex.male') |
| | | case '1': |
| | | return this.$t('common.sex.female') |
| | | default: |
| | | return this.$t('common.sex.secret') |
| | | } |
| | | }, |
| | | filterSex(value, row) { |
| | | return row.sex === value |
| | | }, |
| | | // 翻页方法 |
| | | search() { |
| | | this.fetch({ |
| | | ...this.queryParams, |
| | | ...this.sort |
| | | }) |
| | | }, |
| | | fetch(params = {}) { |
| | | var that = this |
| | | params.pageSize = this.pagination.size |
| | | params.pageNum = this.pagination.num |
| | | this.$get('system/user', { |
| | | ...params |
| | | }).then((r) => { |
| | | const data = r.data.data |
| | | that.total = data.total |
| | | that.list = data.rows |
| | | }) |
| | | }, |
| | | |
| | | initDeptTree() { |
| | | this.$get('system/dept').then((r) => { |
| | | this.deptTree = r.data.data.rows |
| | | }) |
| | | }, |
| | | filterNode(value, data) { |
| | | if (!value) return true |
| | | return data.label.indexOf(value) !== -1 |
| | | }, |
| | | nodeClick(data) { |
| | | this.dept.parentId = data.parentId |
| | | if (this.dept.parentId === '0') { |
| | | this.dept.parentId = null |
| | | } |
| | | this.dept.orderNum = data.orderNum |
| | | this.dept.deptName = data.label |
| | | this.dept.deptId = data.id |
| | | mounted() {
|
| | | this.initDeptTree()
|
| | | // 初始加载
|
| | | this.fetch()
|
| | | },
|
| | | methods: {
|
| | | initDept() {
|
| | | return {
|
| | | deptId: '',
|
| | | deptName: '',
|
| | | parentId: null,
|
| | | orderNum: 0
|
| | | }
|
| | | },
|
| | | transSex(sex) {
|
| | | switch (sex) {
|
| | | case '0':
|
| | | return this.$t('common.sex.male')
|
| | | case '1':
|
| | | return this.$t('common.sex.female')
|
| | | default:
|
| | | return this.$t('common.sex.secret')
|
| | | }
|
| | | },
|
| | | filterSex(value, row) {
|
| | | return row.sex === value
|
| | | },
|
| | | // 翻页方法
|
| | | search() {
|
| | | this.fetch({
|
| | | ...this.queryParams,
|
| | | ...this.sort
|
| | | })
|
| | | },
|
| | | fetch(params = {}) {
|
| | | var that = this
|
| | | params.pageSize = this.pagination.size
|
| | | params.pageNum = this.pagination.num
|
| | | this.$get('system/user', {
|
| | | ...params
|
| | | }).then((r) => {
|
| | | const data = r.data.data
|
| | | that.total = data.total
|
| | | that.list = data.rows
|
| | | })
|
| | | },
|
| | |
|
| | | initDeptTree() {
|
| | | this.$get('system/dept').then((r) => {
|
| | | this.deptTree = r.data.data.rows
|
| | | })
|
| | | },
|
| | | filterNode(value, data) {
|
| | | if (!value) return true
|
| | | return data.label.indexOf(value) !== -1
|
| | | },
|
| | | nodeClick(data) {
|
| | | this.dept.parentId = data.parentId
|
| | | if (this.dept.parentId === '0') {
|
| | | this.dept.parentId = null
|
| | | }
|
| | | this.dept.orderNum = data.orderNum
|
| | | this.dept.deptName = data.label
|
| | | this.dept.deptId = data.id
|
| | | },
|
| | | handleSelectionChange(val) {
|
| | | this.multipleSelection = val
|
| | |
| | | },
|
| | | sureChoose() {
|
| | | this.$emit('selectedUser', this.multipleSelection)
|
| | | }, |
| | | cancleChoose() { |
| | | this.$emit('cancleChooseUser') |
| | | },
|
| | | cancleChoose() {
|
| | | this.$emit('cancleChooseUser')
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | | <style lang="scss" scoped>
|
| | |
|
| | | .el-main {
|
| | | height: 600px;
|
| | | }
|
| | | </style>
|
| | | <style lang="scss">
|
| | | .el-aside {
|
| | | padding: 20px;
|
| | |
| | | .el-tree {
|
| | | height: 100%;
|
| | | }
|
| | | }
|
| | |
|
| | | .el-main {
|
| | | height: 600px;
|
| | | }
|
| | |
|
| | | #searchTable {
|
| | |
| | | .del_button {
|
| | | color: #D9001B;
|
| | | }
|
| | | </style> |
| | | </style>
|