|
@@ -184,6 +184,13 @@
|
|
|
<el-table-column label="所属员工" align="center" prop="companyUserNickName" />
|
|
|
<el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width">
|
|
|
<template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-edit"
|
|
|
+ @click="handleUpdate(scope.row)"
|
|
|
+ v-hasPermi="['store:user:edit']"
|
|
|
+ >修改</el-button>
|
|
|
<el-button
|
|
|
size="mini"
|
|
|
type="text"
|
|
@@ -207,20 +214,38 @@
|
|
|
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
|
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
|
|
<el-form-item label="用户头像" prop="avatar">
|
|
|
- <el-popover
|
|
|
- placement="right"
|
|
|
- title=""
|
|
|
- trigger="hover"
|
|
|
- >
|
|
|
- <img slot="reference" :src="form.avatar" width="80">
|
|
|
- <img :src="form.avatar" style="max-width: 120px;">
|
|
|
- </el-popover>
|
|
|
+ <div style="display: flex; align-items: center; gap: 16px;">
|
|
|
+ <el-popover
|
|
|
+ placement="right"
|
|
|
+ title=""
|
|
|
+ trigger="hover"
|
|
|
+ >
|
|
|
+ <img slot="reference" :src="form.avatar" width="80" style="border-radius: 8px; border: 2px solid #ddd;">
|
|
|
+ <img :src="form.avatar" style="max-width: 200px; border-radius: 8px;">
|
|
|
+ </el-popover>
|
|
|
+
|
|
|
+ <div>
|
|
|
+ <el-upload
|
|
|
+ class="avatar-uploader"
|
|
|
+ :action="uploadUrl"
|
|
|
+ :show-file-list="false"
|
|
|
+ :on-success="handleAvatarSuccess"
|
|
|
+ :before-upload="beforeAvatarUpload"
|
|
|
+ :http-request="handleAvatarUpload"
|
|
|
+ >
|
|
|
+ <el-button size="small" type="primary" icon="el-icon-upload">上传头像</el-button>
|
|
|
+ </el-upload>
|
|
|
+ <div style="font-size: 12px; color: #999; margin-top: 4px;">
|
|
|
+ 支持 JPG、PNG 格式,建议尺寸 200x200
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="昵称" prop="nickname">
|
|
|
<el-input v-model="form.nickname" placeholder="请输入昵称" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="手机号码" prop="phone">
|
|
|
- <el-input v-model="form.phone" placeholder="请输入手机号码" />
|
|
|
+ <el-input v-model="form.phone" disabled placeholder="请输入手机号码" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="最后登录IP" prop="lastIp" v-if="form.lastIp">
|
|
|
<el-input v-model="form.lastIp" disabled placeholder="最后一次登录IP" />
|
|
@@ -242,7 +267,7 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="所属员工" prop="companyUserId">
|
|
|
- <el-select v-model="form.companyUserId" placeholder="请选择所属员工" clearable>
|
|
|
+ <el-select v-model="form.companyUserId" disabled placeholder="请选择所属员工" clearable>
|
|
|
<el-option
|
|
|
v-for="item in salesOptions"
|
|
|
:key="item.userId"
|
|
@@ -271,11 +296,13 @@
|
|
|
|
|
|
<script>
|
|
|
import { listUser, getUser, addUser, updateUser, delUser, exportUser, auditUser } from "@/api/user/fsUser";
|
|
|
+import {getUserList} from "@/api/company/companyUser";
|
|
|
|
|
|
export default {
|
|
|
name: "FsUser",
|
|
|
data() {
|
|
|
return {
|
|
|
+ uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS", // 上传的图片服务器地址
|
|
|
// 遮罩层
|
|
|
loading: true,
|
|
|
// 选中数组
|
|
@@ -343,6 +370,26 @@ export default {
|
|
|
this.getSalesOptions();
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 头像上传前的校验
|
|
|
+ beforeAvatarUpload(file) {
|
|
|
+ const isJPG = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/jpg';
|
|
|
+ const isLt2M = file.size / 1024 / 1024 < 2;
|
|
|
+
|
|
|
+ if (!isJPG) {
|
|
|
+ this.$message.error('上传头像图片只能是 JPG/PNG/JPEG 格式!');
|
|
|
+ }
|
|
|
+ if (!isLt2M) {
|
|
|
+ this.$message.error('上传头像图片大小不能超过 2MB!');
|
|
|
+ }
|
|
|
+ return isJPG && isLt2M;
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ // 上传成功回调(如果使用服务器上传)
|
|
|
+ handleAvatarSuccess(response, file) {
|
|
|
+ this.form.avatar = response.url; // 假设服务器返回的是 {url: '图片地址'}
|
|
|
+ this.$message.success('头像上传成功');
|
|
|
+ },
|
|
|
/** 查询用户列表 */
|
|
|
getList() {
|
|
|
this.loading = true;
|
|
@@ -375,11 +422,12 @@ export default {
|
|
|
|
|
|
/** 获取销售员工选项 */
|
|
|
getSalesOptions() {
|
|
|
- this.salesOptions = [
|
|
|
- { userId: 1, nickName: "销售A" },
|
|
|
- { userId: 2, nickName: "销售B" },
|
|
|
- { userId: 3, nickName: "销售C" }
|
|
|
- ];
|
|
|
+ getUserList().then(res=>{
|
|
|
+ if(res.code === 200) {
|
|
|
+ this.salesOptions = res.data
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
},
|
|
|
|
|
|
/** 获取看课状态类型 */
|