“dzb”
2022-09-27 80e0b9da4d4da98452f8930b148750763d85f090
src/views/systemSetting/baseSetting/user/components/main/index.vue
@@ -7,22 +7,25 @@
                :data="tableData" style="width: 100%" :row-class-name="tableRowClassName">
                <el-table-column type="selection" min-width="5">
                </el-table-column>
                <el-table-column label="用户ID" min-width="5">
                <el-table-column label="用户ID" min-width="4">
                    <template slot-scope="scope">{{ scope.row.id }}</template>
                </el-table-column>
                <el-table-column prop="nickName" label="用户名称" min-width="10">
                </el-table-column>
                <el-table-column prop="username" label="所属姓名" min-width="10">
                <el-table-column prop="username" label="所属姓名" min-width="8">
                </el-table-column>
                <el-table-column prop="mobile" label="联系方式" min-width="10">
                <el-table-column prop="mobile" label="联系方式" min-width="7">
                </el-table-column>
                <el-table-column prop="note" label="所属角色" min-width="10">
                <el-table-column prop="note" label="所属角色" min-width="8">
                </el-table-column>
                <el-table-column prop="departName" label="所属部门" min-width="10">
                <el-table-column prop="departName" label="所属部门" min-width="8">
                </el-table-column>
                <el-table-column prop="jobTitle" label="所属职务" min-width="10">
                <el-table-column prop="jobTitle" label="所属职务" min-width="8">
                </el-table-column>
                <el-table-column prop="createTime" label="创建时间" min-width="10">
                    <template slot-scope="scope">
                        <span>{{changeTime(scope.row)}}</span>
                    </template>
                </el-table-column>
                <el-table-column prop="status" label="启用" min-width="5">
                    <template slot-scope="scope">
@@ -31,31 +34,52 @@
                        </el-switch>
                    </template>
                </el-table-column>
                <el-table-column prop="operation" label="操作" min-width="15">
                <el-table-column prop="operation" label="操作" min-width="22">
                    <template slot-scope="scope">
                        <div class="operation">
                            <!-- <span @click="handleChangeRole(scope.row)">修改角色</span> -->
                            <span @click="handleChangeRole(scope.row,'role')">修改角色</span>
                            <span class="line">|</span>
                            <span @click="handleFind(scope.row)">查看</span>
                            <span class="line">|</span>
                            <!-- <span>修改密码</span> -->
                            <!-- <span>删除</span> -->
                            <span @click="handleUpdate(scope.row)">修改部门</span>
                            <span @click="handleChangeRole(scope.row,'password')">修改密码</span>
                            <span class="line">|</span>
                            <span @click="handleDelete(scope.row)">删除</span>
                            <span class="line">|</span>
                            <span @click="handleChangeRole(scope.row,'depart')">修改部门</span>
                        </div>
                    </template>
                </el-table-column>
            </el-table>
            <!-- 查看修改页面 -->
            <el-dialog :visible.sync="dialogUpdate" width="45%" v-if="dialogUpdate"
                :title="updateFlag ? '修改用户部门信息' :'查看用户信息'">
                <updateUser :updateFlag="updateFlag" :userInfo=userInfo />
                :title="updateFlag ? flag.role ? '修改用户角色信息' : flag.depart ? '修改用户部门信息': '修改用户密码' :'查看用户信息'"
                :before-close="handleClose">
                <updateUser :updateFlag="updateFlag" :userInfo=userInfo :flag=flag @closeDialog="closeDialog"
                    :getUserList="getUserList" />
            </el-dialog>
            <!-- 分页 -->
            <!-- tools -->
            <div class="pagination">
                <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum"
                    :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev"
                    @next-click="handleNext">
                </el-pagination>
            </div>
                    <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum"
                        :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev"
                        @next-click="handleNext">
                    </el-pagination>
                </div>
            <!-- <div class="tools">
                 <div class="funs">
                    <div class="funsItem" >
                        <el-checkbox v-model="all" @change="selectAll()">全选</el-checkbox>
                    </div>
                    <div class="funsItem" >
                        <el-checkbox v-model="unsame" @change="disSame(tableData)">反选</el-checkbox>
                    </div>
                </div> -->
                <!-- <div class="pagination">
                    <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum"
                        :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev"
                        @next-click="handleNext">
                    </el-pagination>
                </div> -->
            <!-- </div>  -->
        </div>
    </main>
</template>
@@ -77,12 +101,61 @@
            pageSize: 10,
            currentPage: 1,
            renderFlag: false,
            flag: {
                role: false,
                password: false,
                depart: false,
            },
            all:false,
            unsame:false,
        }
    },
    created() {
        this.getUserList();
    },
    methods: {
        changeTime({createTime}){
            return helper(createTime);
        },
        selectAll() {
            this.$refs.multipleTable.toggleAllSelection();
        },
        disSame(list){
            console.log(this.$refs.multipleTable);
            // const row = this.$refs.table.data
            list.forEach(row => {
                this.$refs.multipleTable.toggleRowSelection(row)
            })
        },
        // 删除用户
        handleDelete({ id }) {
            this.$confirm('确认删除?').then(_ => {
                this.$axios({
                    method: 'post',
                    url: 'sccg/admin/delete/' + id,
                }).then(res => {
                    console.log(res);
                    this.$message({
                        message: res.message,
                        type: 'success'
                    })
                    this.getUserList();
                })
            }).catch(_ => { })
        },
        closeDialog({ flag }) {
            this.dialogUpdate = flag;
            this.getUserList();
        },
        handleClose(done) {
            this.$confirm('确认关闭?')
                .then(_ => {
                    this.dialogUpdate = false
                    done();
                })
                .catch(_ => { });
        },
        // 当前页改变触发事件
        changeCurrentPage(page) {
            this.currentPage = page;
@@ -99,10 +172,17 @@
            this.getUserList();
        },
        // 修改角色
        handleChangeRole(obj) {
            this.dialogUpdate = true
            this.user = obj;
            // console.log(obj)
        handleChangeRole(obj, mykey) {
            this.dialogUpdate = true;
            this.updateFlag = true;
            for (let key in this.flag) {
                if (key == mykey) {
                    this.flag[key] = true;
                } else {
                    this.flag[key] = false;
                }
            }
            this.userInfo = obj;
        },
        // 修改用户状态
        handleChangeStatus(obj) {
@@ -119,10 +199,10 @@
            // 获取所有用户信息、用户查询(暂时支持电话号码)
            this.$axios.get(`sccg/admin/list?mobile=${search}&current=${currentPage}&pageSize=${pageSize}`).then(res => {
                if (res.code === 200) {
                    res.data.records.forEach(item => {
                        item.createTime = helper(item.createTime);
                        item.status == 1 ? item.status = true : item.status = false;
                    })
                    // res.data.records.forEach(item => {
                    //     item.createTime = helper(item.createTime);
                    //     item.status == 1 ? item.status = true : item.status = false;
                    // })
                    that.totalNum = res.data.pages * pageSize;
                    that.tableData = res.data.records;
                    this.renderFlag = true;
@@ -134,22 +214,20 @@
            this.dialogUpdate = true;
            this.updateFlag = false;
            this.userInfo = rowData;
        },
        // 修改用户部门信息
        handleUpdate(rowData) {
            this.dialogUpdate = true;
            this.updateFlag = true;
            this.userInfo = rowData
            const { flag } = this;
            for (let key in flag) {
                flag[key] = false;
            }
        },
        // 设置表格斑马纹
        tableRowClassName({ row, rowIndex }) {
                if ((rowIndex + 1) % 2 == 0) {
                    return 'warning-row';
                } else {
                    return 'success-row';
                }
                return '';
            },
            if ((rowIndex + 1) % 2 == 0) {
                return 'warning-row';
            } else {
                return 'success-row';
            }
            return '';
        },
    },
    props: ['refresh', 'keyword', 'resetFresh'],
    watch: {
@@ -180,22 +258,30 @@
        line-height: 60px;
    }
    .pagination {
        margin-top: 50px;
    .tools {
        display: flex;
        line-height: 50px;
        justify-content: center;
        justify-content: space-between;
        .el-pagination {
        // .funs {}
            &::v-deep li,
            &::v-deep .btn-prev,
            &::v-deep .btn-next {
                background-color: #071f39;
                color: #4b9bb7;
    }
    .pagination {
            margin-top: 50px;
            display: flex;
            line-height: 50px;
            justify-content: center;
            .el-pagination {
                &::v-deep li,
                &::v-deep .btn-prev,
                &::v-deep .btn-next {
                    background-color: #071f39;
                    color: #4b9bb7;
                }
            }
        }
    }
    .el-table {
        color: #4b9bb7;
@@ -253,7 +339,7 @@
    &::v-deep .switchStyle.el-switch .el-switch__core,
    &::v-deep .el-switch .el-switch__label {
        width: 50px !important;
        width: 56px !important;
    }
}
</style>