Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-sfa-ui
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-sfa-ui
Commits
ce6c53f4
提交
ce6c53f4
authored
2月 11, 2025
作者:
lidongxu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(user): 用户编辑回显完毕
携带了工作城市,并新增了促销管理开通权限
上级
96c98f4d
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
101 行增加
和
73 行删除
+101
-73
user.js
src/api/system/user.js
+0
-15
index.vue
src/views/system/user/index.vue
+101
-58
没有找到文件。
src/api/system/user.js
浏览文件 @
ce6c53f4
...
...
@@ -20,21 +20,6 @@ export function getUser(userId) {
// 新增用户
export
function
addUser
(
data
)
{
// workCityList 工作城市数据格式处理
let
workCityList
=
data
.
workCityList
;
const
newWorkCityList
=
[]
for
(
let
i
=
0
;
i
<
workCityList
.
length
;
i
+=
2
)
{
const
obj
=
{
provinceId
:
workCityList
[
i
],
citys
:
[
{
cityId
:
workCityList
[
i
+
1
]
}
]
}
newWorkCityList
.
push
(
obj
)
}
data
.
workCityList
=
newWorkCityList
return
request
({
url
:
'/system/user'
,
method
:
'post'
,
...
...
src/views/system/user/index.vue
浏览文件 @
ce6c53f4
...
...
@@ -226,6 +226,27 @@
maxlength=
"30"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"手机号码"
prop=
"phonenumber"
>
<el-input
v-model=
"form.phonenumber"
placeholder=
"请输入手机号码"
maxlength=
"11"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"用户性别"
>
<el-select
v-model=
"form.sex"
placeholder=
"请选择"
>
<el-option
v-for=
"dict in sys_user_sex"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"归属部门"
prop=
"deptId"
>
...
...
@@ -237,24 +258,14 @@
check-strictly
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"手机号码"
prop=
"phonenumber"
>
<el-input
v-model=
"form.phonenumber"
placeholder=
"请输入手机号码"
maxlength=
"11"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<!-- <el-col :span="12">
<el-form-item label="邮箱"
prop="email">
<el-input v-model="form.email"
placeholder="请输入邮箱"
maxlength="50" />
</el-form-item>
</el-col>
</el-col>
-->
</el-row>
<el-row>
<el-col
:span=
"12"
>
...
...
@@ -278,28 +289,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"用户性别"
>
<el-select
v-model=
"form.sex"
placeholder=
"请选择"
>
<el-option
v-for=
"dict in sys_user_sex"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"状态"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio
v-for=
"dict in sys_normal_disable"
:key=
"dict.value"
:value=
"dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"岗位"
...
...
@@ -327,19 +317,48 @@
</el-select>
</el-form-item>
</el-col>
<el-row>
<el-col>
<el-form-item
label=
"工作地点"
>
<el-cascader
v-model=
"form.workCityList"
:options=
"provinceList"
:props=
"props"
collapse-tags
collapse-tags-tooltip
:max-collapse-tags=
"1"
clearable
/>
</el-form-item>
</el-col>
</el-row>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"促销权限"
>
<el-switch
v-model=
"form.proStatus"
></el-switch>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"工作地点"
>
<el-cascader
v-model=
"form.workCityList"
:options=
"provinceList"
:props=
"props"
collapse-tags
collapse-tags-tooltip
:max-collapse-tags=
"1"
clearable
/>
</el-form-item>
</el-col>
</el-row>
<!-- 促销权限配置 -->
<el-row
v-show=
"form.proStatus"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"促销角色"
>
<el-radio-group
v-model=
"form.privilegeId"
>
<el-radio
:value=
"1"
label=
"城市经理"
></el-radio>
<el-radio
:value=
"2"
label=
"职能角色"
></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"账户状态"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio
v-for=
"dict in sys_normal_disable"
:key=
"dict.value"
:value=
"dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"24"
>
...
...
@@ -472,8 +491,8 @@
password
:
[{
required
:
true
,
message
:
"用户密码不能为空"
,
trigger
:
"blur"
},
{
min
:
5
,
max
:
20
,
message
:
"用户密码长度必须介于 5 和 20 之间"
,
trigger
:
"blur"
},
{
pattern
:
/^
[^
<>"'|
\\]
+$/
,
message
:
"不能包含非法字符:< >
\"
'
\\\
|"
,
trigger
:
"blur"
}],
email
:
[{
type
:
"email"
,
message
:
"请输入正确的邮箱地址"
,
trigger
:
[
"blur"
,
"change"
]
}],
phonenumber
:
[{
pattern
:
/^1
[
3|4|5|6|7|8|9
][
0-9
]\d{8}
$/
,
message
:
"请输入正确的手机号码"
,
trigger
:
"blur"
}],
//
postId: [{ required: true, message: "请选择岗位", trigger: "change" }],
//
roleId: [{ required: true, message: "请选择角色", trigger: "change" }],
postId
:
[{
required
:
true
,
message
:
"请选择岗位"
,
trigger
:
"change"
}],
roleId
:
[{
required
:
true
,
message
:
"请选择角色"
,
trigger
:
"change"
}],
}
});
...
...
@@ -666,6 +685,8 @@
remark
:
undefined
,
postId
:
undefined
,
roleId
:
undefined
,
proStatus
:
false
,
// 促销权限
privilegeId
:
undefined
,
workCityList
:
[]
// 工作城市
};
proxy
.
resetForm
(
"userRef"
);
...
...
@@ -693,7 +714,20 @@
function
handleUpdate
(
row
)
{
reset
();
const
userId
=
row
.
userId
||
ids
.
value
;
getUser
(
userId
).
then
(
response
=>
{
getUser
(
userId
).
then
(
async
response
=>
{
// 省市回显
const
index
=
provinceList
.
value
.
findIndex
(
o
=>
o
.
value
===
response
.
data
.
workProvinceNum
)
const
cityList
=
await
getProCityList
(
response
.
data
.
workProvinceNum
)
provinceList
.
value
[
index
].
children
=
cityList
.
data
.
map
(
o
=>
{
return
{
value
:
o
.
num
,
label
:
o
.
name
,
leaf
:
true
}
})
response
.
data
.
workCityList
=
[
response
.
data
.
workProvinceNum
,
response
.
data
.
workCityNum
]
// 促销权限 0 开 1 关
response
.
data
.
proStatus
=
response
.
data
.
proStatus
==
1
?
false
:
true
;
form
.
value
=
response
.
data
;
postOptions
.
value
=
response
.
posts
;
roleOptions
.
value
=
response
.
roles
;
...
...
@@ -703,10 +737,16 @@
});
};
/** 提交按钮 */
function
submitForm
()
{
proxy
.
$refs
[
"userRef"
].
validate
(
valid
=>
{
if
(
valid
)
{
// 城市列表转城市参数
form
.
value
.
workProvinceNum
=
form
.
value
.
workCityList
[
0
]
form
.
value
.
workCityNum
=
form
.
value
.
workCityList
[
1
]
// 促销开关 true 转 0,false 转 1
form
.
value
.
proStatus
=
form
.
value
.
proStatus
==
true
?
0
:
1
;
if
(
form
.
value
.
userId
!=
undefined
)
{
updateUser
(
form
.
value
).
then
(
response
=>
{
proxy
.
$modal
.
msgSuccess
(
"修改成功"
);
...
...
@@ -720,6 +760,7 @@
getList
();
});
}
reset
()
}
});
};
...
...
@@ -727,16 +768,14 @@
getDeptTree
();
getList
();
// 工作地点
const
provinceList
=
ref
([])
const
props
=
{
// multiple: true,
lazy
:
true
,
async
lazyLoad
(
node
,
resolve
)
{
const
res
=
await
getProCityAPI
({
provinceId
:
node
.
value
})
lazy
:
true
,
async
lazyLoad
(
node
,
resolve
)
{
const
res
=
await
getProCityList
(
node
.
value
)
const
nodes
=
res
.
data
.
map
(
o
=>
{
return
{
value
:
o
.
num
,
...
...
@@ -748,8 +787,12 @@
},
}
const
getProCityList
=
async
()
=>
{
const
res
=
await
getProCityAPI
({})
const
getProCityList
=
async
(
provinceId
)
=>
{
return
await
getProCityAPI
({
provinceId
})
}
const
initProvinceList
=
async
()
=>
{
const
res
=
await
getProCityList
()
provinceList
.
value
=
res
.
data
.
map
(
obj
=>
{
return
{
value
:
obj
.
num
,
...
...
@@ -757,7 +800,7 @@
}
})
}
getProCity
List
()
initProvince
List
()
</
script
>
<
style
scoped
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论