|
@@ -140,7 +140,7 @@
|
|
<el-table-column type="selection" width="50" align="center" />
|
|
<el-table-column type="selection" width="50" align="center" />
|
|
<el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
|
|
<el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
|
|
<el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
|
|
<el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
|
|
- <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
|
|
|
|
|
|
+ <el-table-column label="姓名" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
|
|
<el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
|
|
<el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
|
|
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
|
|
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
|
|
<el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
|
|
<el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
|
|
@@ -207,8 +207,8 @@
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
<el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="用户昵称" prop="nickName">
|
|
|
|
- <el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
|
|
|
|
|
|
+ <el-form-item label="姓名" prop="nickName">
|
|
|
|
+ <el-input v-model="form.nickName" placeholder="请输入姓名" maxlength="30" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
@@ -301,6 +301,26 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col :span="24">
|
|
|
|
+ <el-form-item label="照片" prop="photo" v-if="form.userId">
|
|
|
|
+ <el-upload
|
|
|
|
+ ref="photo"
|
|
|
|
+ :headers="photo.headers"
|
|
|
|
+ :action="photo.url + '?pType=' + photo.pType + '&pId=' + photo.pId"
|
|
|
|
+ :show-file-list="false"
|
|
|
|
+ :on-success="handleAvatarSuccess"
|
|
|
|
+ list-type="picture-card">
|
|
|
|
+ <img v-if="photoUrl" :src="photoUrl" class="avatar">
|
|
|
|
+ <i v-else class="el-icon-plus "></i>
|
|
|
|
+ </el-upload>
|
|
|
|
+
|
|
|
|
+ <el-dialog :close-on-click-modal="false" v-dialogDrag :visible.sync="dialogVisible" append-to-body>
|
|
|
|
+ <img width="100%" :src="dialogImageUrl" alt="">
|
|
|
|
+ </el-dialog>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
</el-form>
|
|
</el-form>
|
|
<div slot="footer" class="dialog-footer">
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
@@ -352,6 +372,22 @@ export default {
|
|
components: { Treeselect },
|
|
components: { Treeselect },
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ // 人员照片参数
|
|
|
|
+ photo: {
|
|
|
|
+ file: "",
|
|
|
|
+ // 报告附件上传位置编号
|
|
|
|
+ ids: 0,
|
|
|
|
+ // 设置上传的请求头部
|
|
|
|
+ headers: { Authorization: "Bearer " + getToken() },
|
|
|
|
+ // 上传的地址
|
|
|
|
+ url: process.env.VUE_APP_BASE_API + "/system/user/uploadPhoto",
|
|
|
|
+ pType: 'userPhoto',
|
|
|
|
+ pId: null
|
|
|
|
+ },
|
|
|
|
+ //照片回显
|
|
|
|
+ photoUrl: '',
|
|
|
|
+ dialogImageUrl: '',
|
|
|
|
+ dialogVisible: false,
|
|
// 遮罩层
|
|
// 遮罩层
|
|
loading: true,
|
|
loading: true,
|
|
// 选中数组
|
|
// 选中数组
|
|
@@ -416,7 +452,7 @@ export default {
|
|
columns: [
|
|
columns: [
|
|
{ key: 0, label: `用户编号`, visible: true },
|
|
{ key: 0, label: `用户编号`, visible: true },
|
|
{ key: 1, label: `用户名称`, visible: true },
|
|
{ key: 1, label: `用户名称`, visible: true },
|
|
- { key: 2, label: `用户昵称`, visible: true },
|
|
|
|
|
|
+ { key: 2, label: `姓名`, visible: true },
|
|
{ key: 3, label: `部门`, visible: true },
|
|
{ key: 3, label: `部门`, visible: true },
|
|
{ key: 4, label: `手机号码`, visible: true },
|
|
{ key: 4, label: `手机号码`, visible: true },
|
|
{ key: 5, label: `状态`, visible: true },
|
|
{ key: 5, label: `状态`, visible: true },
|
|
@@ -429,7 +465,7 @@ export default {
|
|
{ min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' }
|
|
{ min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' }
|
|
],
|
|
],
|
|
nickName: [
|
|
nickName: [
|
|
- { required: true, message: "用户昵称不能为空", trigger: "blur" }
|
|
|
|
|
|
+ { required: true, message: "姓名不能为空", trigger: "blur" }
|
|
],
|
|
],
|
|
password: [
|
|
password: [
|
|
{ required: true, message: "用户密码不能为空", trigger: "blur" },
|
|
{ required: true, message: "用户密码不能为空", trigger: "blur" },
|
|
@@ -466,6 +502,24 @@ export default {
|
|
});
|
|
});
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ handleAvatarProgress(event, file, fileList) {
|
|
|
|
+ this.photo.file = file;
|
|
|
|
+ this.photoUrl = file;
|
|
|
|
+ },
|
|
|
|
+ handleAvatarSuccess(res, file, fileList) {
|
|
|
|
+ // this.photoUrl = URL.createObjectURL(file.raw);
|
|
|
|
+ getUser(this.photo.pId).then(response => {
|
|
|
|
+ if (response.data.photo) {
|
|
|
|
+ this.photoUrl = process.env.VUE_APP_BASE_API + response.data.photo;
|
|
|
|
+ this.dialogImageUrl = process.env.VUE_APP_BASE_API + response.data.photo;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ this.$alert(res.msg, '导入结果', { dangerouslyUseHTMLString: true });
|
|
|
|
+ },
|
|
|
|
+ handlePictureCardPreview(file) {
|
|
|
|
+ this.dialogImageUrl = file.url;
|
|
|
|
+ this.dialogVisible = true;
|
|
|
|
+ },
|
|
/** 查询用户列表 */
|
|
/** 查询用户列表 */
|
|
getList() {
|
|
getList() {
|
|
this.loading = true;
|
|
this.loading = true;
|
|
@@ -561,6 +615,7 @@ export default {
|
|
/** 新增按钮操作 */
|
|
/** 新增按钮操作 */
|
|
handleAdd() {
|
|
handleAdd() {
|
|
this.reset();
|
|
this.reset();
|
|
|
|
+ this.photoUrl = null;
|
|
getUser().then(response => {
|
|
getUser().then(response => {
|
|
this.postOptions = response.posts;
|
|
this.postOptions = response.posts;
|
|
this.roleOptions = response.roles;
|
|
this.roleOptions = response.roles;
|
|
@@ -572,6 +627,7 @@ export default {
|
|
/** 修改按钮操作 */
|
|
/** 修改按钮操作 */
|
|
handleUpdate(row) {
|
|
handleUpdate(row) {
|
|
this.reset();
|
|
this.reset();
|
|
|
|
+ this.photoUrl = null;
|
|
const userId = row.userId || this.ids;
|
|
const userId = row.userId || this.ids;
|
|
getUser(userId).then(response => {
|
|
getUser(userId).then(response => {
|
|
this.form = response.data;
|
|
this.form = response.data;
|
|
@@ -582,7 +638,11 @@ export default {
|
|
this.open = true;
|
|
this.open = true;
|
|
this.title = "修改用户";
|
|
this.title = "修改用户";
|
|
this.form.password = "";
|
|
this.form.password = "";
|
|
|
|
+ if (response.data.photo) {
|
|
|
|
+ this.photoUrl = process.env.VUE_APP_BASE_API + response.data.photo;
|
|
|
|
+ }
|
|
});
|
|
});
|
|
|
|
+ this.photo.pId = row.userId;
|
|
},
|
|
},
|
|
/** 重置密码按钮操作 */
|
|
/** 重置密码按钮操作 */
|
|
handleResetPwd(row) {
|
|
handleResetPwd(row) {
|
|
@@ -667,4 +727,29 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
};
|
|
-</script>
|
|
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style scoped>
|
|
|
|
+ .avatar-uploader .el-upload {
|
|
|
|
+ border: 1px dashed #d9d9d9;
|
|
|
|
+ border-radius: 6px;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ position: relative;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ }
|
|
|
|
+ .avatar-uploader .el-upload:hover {
|
|
|
|
+ border-color: #409EFF;
|
|
|
|
+ }
|
|
|
|
+ .avatar-uploader-icon {
|
|
|
|
+ font-size: 28px;
|
|
|
|
+ color: #8c939d;
|
|
|
|
+ width: 178px;
|
|
|
|
+ height: 178px;
|
|
|
|
+ line-height: 178px;
|
|
|
|
+ text-align: center;
|
|
|
|
+ }
|
|
|
|
+ .avatar {
|
|
|
|
+ width: 120px;
|
|
|
|
+ height: 140px;
|
|
|
|
+ }
|
|
|
|
+</style>
|