“dzb”
2022-10-09 2bb0e066fdc522beb51dd13f6a72cd67bd5d6a58
src/views/systemSetting/baseSetting/department/updateUser/index.vue
@@ -1,33 +1,38 @@
<template>
    <div class="updateUser">
        <header>
            <div class="headerTitle">{{updateFlag ? '修改用户部门信息' :'查看用户信息'}}</div>
        </header>
        <!-- <header>
             <div class="headerTitle">{{updateFlag ? '修改用户部门信息' :'查看用户信息'}}</div>
        </header> -->
        <main>
            <div class="mainContent">
                <el-form ref="user" label-width="140px" autoComplete="on" :model="user" :rules="createUserRules"
                    label-position="right">
                    <!-- 部门id -->
                    <el-form-item class="optionItem" label="部门id:" prop="id">
                        <el-input v-model="user.id" placeholder="请输入部门名称" :disabled="!updateFlag"></el-input>
                    </el-form-item>
                    <!-- 部门名称 -->
                    <el-form-item class="optionItem" label="部门名称:" prop="departName">
                        <el-input v-model="user.departName" placeholder="请输入部门名称" :disabled="true"></el-input>
                        <el-input v-model="user.departName" placeholder="请输入部门名称" :disabled="!updateFlag"></el-input>
                    </el-form-item>
                    <!-- 上级部门 -->
                    <el-form-item class="optionItems" label="上级部门:" prop="parentId">
                        <el-select v-model="user.parentId" placeholder="请选择上级部门" disabled>
                            <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value">
                        <el-select v-model="user.parentId" placeholder="请选择上级部门" :disabled="!updateFlag">
                            <el-option v-for="item in typeList" :key="item.departName" :label="item.departName"
                                :value="item.id">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <!-- 部门类型 -->
                    <el-form-item class="optionItem" label="部门类型:" prop="departType">
                        <el-select v-model="user.departType" placeholder="请选择部门类型" disabled>
                        <el-select v-model="user.departType" placeholder="请选择部门类型" :disabled="!updateFlag">
                            <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <!-- 部门描述 -->
                    <el-form-item class="optionItem" label="部门描述:" prop="departDes">
                        <el-input v-model="user.departDes" placeholder="请输入部门描述" :disabled="true"></el-input>
                        <el-input v-model="user.departDes" placeholder="请输入部门描述" :disabled="!updateFlag"></el-input>
                    </el-form-item>
                    <el-form-item v-if="updateFlag">
                        <div class="optionBtn">
@@ -46,58 +51,63 @@
    data() {
        const validateNickname = (rule, value, callback) => {
            if (!value) {
                callback(new Error("请填写用户名称"));
                callback(new Error("请填写部门名称"));
            } else {
                callback();
            }
        };
        const validateId = (rule, value, callback) => {
            if (!value) {
                callback(new Error("请填写部门id"));
            } else {
                callback();
            }
        }
        const validatePass = (rule, value, callback) => {
            if (!value) {
                callback(new Error("请填写登录密码"));
                callback();
            } else {
                const rep = /^\w+$/;
                if (!rep.test(value)) {
                    callback(new Error("密码只能是以数字、26个英文字母或者下划线组成的字符串"));
                }
            }
        };
        const validateTruename = (rule, value, callback) => {
            if (!value) {
                callback(new Error("请填写用户姓名"));
            } else {
                const rep = /^[\u4E00-\u9FA5]{2,4}$/;
                if (!rep.test(value)) {
                    callback("请输入正确的用户姓名");
                }
                callback();
                // const rep = /^\w+$/;
                // if (!rep.test(value)) {
                //     callback(new Error("密码只能是以数字、26个英文字母或者下划线组成的字符串"));
                // }
            }
        };
        const validatePhone = (rule, value, callback) => {
            if (!value) {
                callback(new Error("请填写手机号码"));
                callback();
            } else {
                const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/
                if (!rep.test(value)) {
                    callback("请输入正确的手机号码");
                }
                callback();
                // const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/
                // if (!rep.test(value)) {
                //     callback("请输入正确的手机号码");
                // }
            }
        };
        return {
            user: {
                id: '',
                departName: '',
                parentId: '',
                departDes: '',
                departType:'',
                departType: '',
            },
            createUserRules: {
                id: [
                    { required: true, trigger: "blur", validator: validateId },
                ],
                departName: [
                    { required: true, trigger: "blur", validator: validateNickname },
                ],
                parentId: [
                    { required: true, trigger: "blur", validator: validatePass },
                    { required: false, trigger: "blur", validator: validatePass },
                ],
                departDes: [
                    { required: true, trigger: "blur", validator: validateTruename },
                    { required: false, trigger: "blur" },
                ],
                departType: [
                    { required: true, trigger: "blur" },
                    { required: false, trigger: "blur" },
                ],
            },
            roleList: [
@@ -122,16 +132,31 @@
    },
    methods: {
        handleUser() {
            const { user } = this;
            this.$axios.post('sccg/depart/status', {
                id: user.departmentId,
                status: user.status ? 1 : 0,
            }).then(res => {
                console.log(res);
            this.$refs['user'].validate((valid) => {
                if (valid) {
                    const { user } = this;
                    console.log(user)
                    this.$axios.post('sccg/depart/update', {
                        id: user.id,
                        departName: user.departName,
                        parentId: user.parentId,
                        departDes: user.departDes
                    }).then(res => {
                        console.log(res);
                        this.$message({
                            message:res.message,
                            type:res.code === 200 ? 'success' : 'warning',
                        })
                        this.$emit('changeDialog', { flag: false });
                        this.getUserList();
                    })
                } else {
                    return false;
                }
            })
        }
    },
    props: ['userInfo', 'updateFlag']
    props: ['userInfo', 'updateFlag', 'getUserList', 'changeDialog']
}
</script>
<style lang="scss" scoped>
@@ -139,44 +164,47 @@
    border-radius: 1px;
    background-color: #09152f;
    header {
        display: flex;
        justify-content: center;
        height: 60px;
        line-height: 60px;
        padding: 0 20px;
        border: 1px solid #fff;
        .headerTitle {
            color: #4b9bb7;
            font-weight: 600;
        }
    // header {
    //     display: flex;
    //     justify-content: center;
    //     height: 60px;
    //     line-height: 60px;
    //     padding: 0 20px;
    //     border: 1px solid #fff;
        .headerTip span {
            color: #ff3b6c;
        }
    //     .headerTitle {
    //         color: #4b9bb7;
    //         font-weight: 600;
    //     }
        .headerTip label {
            color: #4b9bb7;
        }
    }
    //     .headerTip span {
    //         color: #ff3b6c;
    //     }
    //     .headerTip label {
    //         color: #4b9bb7;
    //     }
    // }
    main {
        border: 1px solid #fff;
        // border: 1px solid #fff;
        text-align: left;
        padding: 0 55px;
        background-color: #09152f;
        padding-bottom: 50px;
        .mainTitle {
            color: #4b9bb7;
            font-weight: 600;
            line-height: 100px;
            font-size: 14px;
        }
        // .mainTitle {
        //     color: #4b9bb7;
        //     font-weight: 600;
        //     line-height: 100px;
        //     font-size: 14px;
        // }
        .mainContent {
            display: flex;
            justify-content: center;
            margin-top: 50px;
            padding-top: 50px;
            .el-form-item__content {
                width: 400px;