提交 ce6c53f4 authored 作者: lidongxu's avatar lidongxu

feat(user): 用户编辑回显完毕

携带了工作城市,并新增了促销管理开通权限
上级 96c98f4d
...@@ -20,21 +20,6 @@ export function getUser(userId) { ...@@ -20,21 +20,6 @@ export function getUser(userId) {
// 新增用户 // 新增用户
export function addUser(data) { 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({ return request({
url: '/system/user', url: '/system/user',
method: 'post', method: 'post',
......
...@@ -226,6 +226,27 @@ ...@@ -226,6 +226,27 @@
maxlength="30" /> maxlength="30" />
</el-form-item> </el-form-item>
</el-col> </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-col :span="12">
<el-form-item label="归属部门" <el-form-item label="归属部门"
prop="deptId"> prop="deptId">
...@@ -237,24 +258,14 @@ ...@@ -237,24 +258,14 @@
check-strictly /> check-strictly />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> <!-- <el-col :span="12">
<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-form-item label="邮箱" <el-form-item label="邮箱"
prop="email"> prop="email">
<el-input v-model="form.email" <el-input v-model="form.email"
placeholder="请输入邮箱" placeholder="请输入邮箱"
maxlength="50" /> maxlength="50" />
</el-form-item> </el-form-item>
</el-col> </el-col> -->
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
...@@ -278,28 +289,7 @@ ...@@ -278,28 +289,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </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-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="岗位" <el-form-item label="岗位"
...@@ -327,19 +317,48 @@ ...@@ -327,19 +317,48 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-row> </el-row>
<el-col> <el-row>
<el-form-item label="工作地点"> <el-col :span="12">
<el-cascader v-model="form.workCityList" <el-form-item label="促销权限">
:options="provinceList" <el-switch v-model="form.proStatus"></el-switch>
:props="props" </el-form-item>
collapse-tags </el-col>
collapse-tags-tooltip <el-col :span="12">
:max-collapse-tags="1" <el-form-item label="工作地点">
clearable /> <el-cascader v-model="form.workCityList"
</el-form-item> :options="provinceList"
</el-col> :props="props"
</el-row> 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-row> <el-row>
<el-col :span="24"> <el-col :span="24">
...@@ -472,8 +491,8 @@ ...@@ -472,8 +491,8 @@
password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }, { pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" }], 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"] }], email: [{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
phonenumber: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }], phonenumber: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }],
// postId: [{ required: true, message: "请选择岗位", trigger: "change" }], postId: [{ required: true, message: "请选择岗位", trigger: "change" }],
// roleId: [{ required: true, message: "请选择角色", trigger: "change" }], roleId: [{ required: true, message: "请选择角色", trigger: "change" }],
} }
}); });
...@@ -666,6 +685,8 @@ ...@@ -666,6 +685,8 @@
remark: undefined, remark: undefined,
postId: undefined, postId: undefined,
roleId: undefined, roleId: undefined,
proStatus: false, // 促销权限
privilegeId: undefined,
workCityList: [] // 工作城市 workCityList: [] // 工作城市
}; };
proxy.resetForm("userRef"); proxy.resetForm("userRef");
...@@ -693,7 +714,20 @@ ...@@ -693,7 +714,20 @@
function handleUpdate(row) { function handleUpdate(row) {
reset(); reset();
const userId = row.userId || ids.value; 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; form.value = response.data;
postOptions.value = response.posts; postOptions.value = response.posts;
roleOptions.value = response.roles; roleOptions.value = response.roles;
...@@ -703,10 +737,16 @@ ...@@ -703,10 +737,16 @@
}); });
}; };
/** 提交按钮 */ /** 提交按钮 */
function submitForm() { function submitForm() {
proxy.$refs["userRef"].validate(valid => { proxy.$refs["userRef"].validate(valid => {
if (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) { if (form.value.userId != undefined) {
updateUser(form.value).then(response => { updateUser(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功"); proxy.$modal.msgSuccess("修改成功");
...@@ -720,6 +760,7 @@ ...@@ -720,6 +760,7 @@
getList(); getList();
}); });
} }
reset()
} }
}); });
}; };
...@@ -727,16 +768,14 @@ ...@@ -727,16 +768,14 @@
getDeptTree(); getDeptTree();
getList(); getList();
// 工作地点 // 工作地点
const provinceList = ref([]) const provinceList = ref([])
const props = { const props = {
// multiple: true, // multiple: true,
lazy: true, async lazyLoad(node, resolve) { lazy: true,
const res = await getProCityAPI({ async lazyLoad(node, resolve) {
provinceId: node.value const res = await getProCityList(node.value)
})
const nodes = res.data.map(o => { const nodes = res.data.map(o => {
return { return {
value: o.num, value: o.num,
...@@ -748,8 +787,12 @@ ...@@ -748,8 +787,12 @@
}, },
} }
const getProCityList = async () => { const getProCityList = async (provinceId) => {
const res = await getProCityAPI({}) return await getProCityAPI({ provinceId })
}
const initProvinceList = async () => {
const res = await getProCityList()
provinceList.value = res.data.map(obj => { provinceList.value = res.data.map(obj => {
return { return {
value: obj.num, value: obj.num,
...@@ -757,7 +800,7 @@ ...@@ -757,7 +800,7 @@
} }
}) })
} }
getProCityList() initProvinceList()
</script> </script>
<style scoped <style scoped
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论