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

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

携带了工作城市,并新增了促销管理开通权限
上级 96c98f4d
......@@ -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',
......
......@@ -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 @@
}
})
}
getProCityList()
initProvinceList()
</script>
<style scoped
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论