fix: remove avatar upload in personal center; fix system management module issues

This commit is contained in:
张家训
2026-08-20 19:45:10 +08:00
parent fe64d97063
commit a2d71f720c
5 changed files with 138 additions and 135 deletions
+23 -36
View File
@@ -17,38 +17,33 @@
<Form :rules="userRuleCustom" :model="userFormItem" ref="userFormItem" :label-width="120" <Form :rules="userRuleCustom" :model="userFormItem" ref="userFormItem" :label-width="120"
label-position="right"> label-position="right">
<Row :gutter="32"> <Row :gutter="32">
<Col span="32"> <Col span="24">
<FormItem label="头像" prop="avatar"> <FormItem label="登录账号">
<uploadAvatar ref="uploadAvatar"></uploadAvatar>
</FormItem>
</Col>
<Col span="32">
<FormItem label="登录账号" prop="username">
{{ userFormItem.username }} {{ userFormItem.username }}
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="用户昵称" prop="nickname"> <FormItem label="用户昵称" prop="nickname">
<Input type="text" class="form-input" v-model="userFormItem.nickname" placeholder="请输入用户昵称"/> <Input type="text" class="form-input" v-model="userFormItem.nickname" placeholder="请输入用户昵称"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="联系电话" prop="phone"> <FormItem label="联系电话" prop="phone">
<Input type="text" class="form-input" v-model="userFormItem.phone" placeholder="请输入联系电话"/> <Input type="text" class="form-input" v-model="userFormItem.phone" placeholder="请输入联系电话"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="电子邮箱" prop="email"> <FormItem label="电子邮箱" prop="email">
<Input type="text" class="form-input" v-model="userFormItem.email" placeholder="请输入电子邮箱"/> <Input type="text" class="form-input" v-model="userFormItem.email" placeholder="请输入电子邮箱"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="个性签名" prop="signature"> <FormItem label="个性签名" prop="signature">
<Input type="textarea" class="form-input" v-model="userFormItem.signature" :rows="4" maxlength="100" <Input type="textarea" class="form-input" v-model="userFormItem.signature" :rows="4" maxlength="100"
show-word-limit placeholder="请输入个性签名"/> show-word-limit placeholder="请输入个性签名"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem> <FormItem>
<Button type="primary" <Button type="primary"
:loading="userSubmitLoading" :loading="userSubmitLoading"
@@ -66,24 +61,24 @@
<Form :rules="changePasswordRuleCustom" :model="changePasswordFormItem" ref="changePasswordFormItem" <Form :rules="changePasswordRuleCustom" :model="changePasswordFormItem" ref="changePasswordFormItem"
:label-width="120" label-position="right"> :label-width="120" label-position="right">
<Row :gutter="32"> <Row :gutter="32">
<Col span="32"> <Col span="24">
<FormItem label="登录账号" prop="username"> <FormItem label="登录账号">
{{ userFormItem.username }} {{ userFormItem.username }}
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="原密码" prop="oldPassword"> <FormItem label="原密码" prop="oldPassword">
<Input type="password" password class="form-input" v-model="changePasswordFormItem.oldPassword" <Input type="password" password class="form-input" v-model="changePasswordFormItem.oldPassword"
placeholder="请输入原密码"/> placeholder="请输入原密码"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="新密码" prop="newPassword"> <FormItem label="新密码" prop="newPassword">
<Input type="password" password class="form-input" v-model="changePasswordFormItem.newPassword" <Input type="password" password class="form-input" v-model="changePasswordFormItem.newPassword"
placeholder="请输入新密码"/> placeholder="请输入新密码"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem> <FormItem>
<Button type="primary" <Button type="primary"
:loading="changePasswordSubmitLoading" :loading="changePasswordSubmitLoading"
@@ -102,14 +97,10 @@
<script> <script>
import {getPersonalInfo, update, updatePassword} from '@/api/sys/sys-user' import {getPersonalInfo, update, updatePassword} from '@/api/sys/sys-user'
import uploadAvatar from "@/components/my-components/upload-avatar" import {mapActions, mapMutations} from "vuex";
import {mapActions} from "vuex";
export default { export default {
name: "personal-center", name: "personal-center",
components: {
uploadAvatar
},
data() { data() {
return { return {
currentMenu: 'basicInfo', currentMenu: 'basicInfo',
@@ -118,16 +109,12 @@
id: '', id: '',
username: '', username: '',
nickname: '', nickname: '',
avatar: '',
phone: '', phone: '',
email: '', email: '',
signature: '', signature: '',
status: '1', status: '1',
}, },
userRuleCustom: { userRuleCustom: {
username: [{
required: true, message: '请输入登录账号', trigger: 'blur'
}],
nickname: [{ nickname: [{
required: true, message: '请输入用户昵称', trigger: 'blur' required: true, message: '请输入用户昵称', trigger: 'blur'
}], }],
@@ -135,7 +122,7 @@
required: true, message: '请输入联系电话', trigger: 'blur' required: true, message: '请输入联系电话', trigger: 'blur'
}], }],
email: [{ email: [{
required: true, message: '请输入联系电话', trigger: 'blur' required: true, message: '请输入电子邮箱', trigger: 'blur'
}], }],
}, },
changePasswordSubmitLoading: false, changePasswordSubmitLoading: false,
@@ -158,19 +145,17 @@
...mapActions([ ...mapActions([
'handleLogOut' 'handleLogOut'
]), ]),
...mapMutations([
'setNickname'
]),
toChangeMenu(name) { toChangeMenu(name) {
this.currentMenu = name this.currentMenu = name
}, },
getPersonalInfo() { getPersonalInfo() {
getPersonalInfo().then(res => { getPersonalInfo().then(res => {
let temp = res.data.data.entity let temp = res.data.data
if (!temp) return
this.userFormItem.id = temp.id this.userFormItem.id = temp.id
this.userFormItem.avatar = temp.avatar
let avatar = temp.avatar
if (temp.avatar === null || temp.avatar === "") {
avatar = "https://732128096-read.oss-cn-hangzhou.aliyuncs.com/avatar.png"
}
this.$refs.uploadAvatar.setData(temp.id, avatar);
this.userFormItem.username = temp.username this.userFormItem.username = temp.username
this.userFormItem.nickname = temp.nickname this.userFormItem.nickname = temp.nickname
this.userFormItem.phone = temp.phone this.userFormItem.phone = temp.phone
@@ -191,6 +176,8 @@
setTimeout(() => { setTimeout(() => {
this.userSubmitLoading = false this.userSubmitLoading = false
this.$Message.success("个人信息保存并生效!") this.$Message.success("个人信息保存并生效!")
// 同步更新顶栏昵称
this.setNickname(this.userFormItem.nickname)
}, 300) }, 300)
}) })
} }
@@ -205,8 +192,8 @@
updatePassword(data).then(res => { updatePassword(data).then(res => {
setTimeout(() => { setTimeout(() => {
this.changePasswordSubmitLoading = false this.changePasswordSubmitLoading = false
if (res.data.code === 419) { if (res.data.code === 419 || !res.data.success) {
this.$Message.warning(res.data.message) this.$Message.warning(res.data.message || "修改密码失败")
} else { } else {
this.$Message.success("修改密码保存并生效!") this.$Message.success("修改密码保存并生效!")
this.handleLogOut().then(() => { this.handleLogOut().then(() => {
+24 -21
View File
@@ -69,7 +69,7 @@
<Modal v-model="modal" :title="modalTitle" :styles="{top: '20px'}" width="500" :mask-closable="false" @on-cancel="cancel()"> <Modal v-model="modal" :title="modalTitle" :styles="{top: '20px'}" width="500" :mask-closable="false" @on-cancel="cancel()">
<Form :rules="ruleCustom" :model="formItem" ref="formItem" :label-width="120" label-position="right"> <Form :rules="ruleCustom" :model="formItem" ref="formItem" :label-width="120" label-position="right">
<Row :gutter="32"> <Row :gutter="32">
<Col span="32"> <Col span="24">
<FormItem label="上级部门" prop="parentId"> <FormItem label="上级部门" prop="parentId">
<treeselect ref="treeSelect" <treeselect ref="treeSelect"
class="form-input" class="form-input"
@@ -81,22 +81,22 @@
/> />
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="部门名称" prop="deptName"> <FormItem label="部门名称" prop="deptName">
<Input type="text" class="form-input" v-model="formItem.deptName" placeholder="请输入部门名称"/> <Input type="text" class="form-input" v-model="formItem.deptName" placeholder="请输入部门名称"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="部门编码" prop="deptCode"> <FormItem label="部门编码" prop="deptCode">
<Input type="text" class="form-input" v-model="formItem.deptCode" placeholder="请输入部门编码"/> <Input type="text" class="form-input" v-model="formItem.deptCode" placeholder="请输入部门编码"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="部门排序" prop="sort"> <FormItem label="部门排序" prop="sort">
<InputNumber :min="0" v-model="formItem.sort" placeholder="请输入部门排序"/> <InputNumber :min="0" v-model="formItem.sort" placeholder="请输入部门排序"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="部门描述" prop="deptDesc"> <FormItem label="部门描述" prop="deptDesc">
<Input type="textarea" maxlength="100" show-word-limit :rows="4" class="form-input" v-model="formItem.deptDesc" placeholder="请输入部门描述"/> <Input type="textarea" maxlength="100" show-word-limit :rows="4" class="form-input" v-model="formItem.deptDesc" placeholder="请输入部门描述"/>
</FormItem> </FormItem>
@@ -216,7 +216,7 @@
}, },
ruleCustom: { ruleCustom: {
parentId: [{ parentId: [{
type: 'number', required: true, message: '请选择上级部门', trigger: 'blur' required: true, message: '请选择上级部门', trigger: 'change'
}], }],
deptName: [{ deptName: [{
required: true, message: '请输入部门名称', trigger: 'blur' required: true, message: '请输入部门名称', trigger: 'blur'
@@ -256,7 +256,7 @@
getDataList(data).then(res => { getDataList(data).then(res => {
let page = res.data.data let page = res.data.data
if (page != null ){ if (page != null ){
this.pageTotal = page.size this.pageTotal = page.total
this.dataList = page.records this.dataList = page.records
} }
// 延迟300毫秒,给它更流畅的感觉 // 延迟300毫秒,给它更流畅的感觉
@@ -276,24 +276,29 @@
this.modalTitle = "编辑" this.modalTitle = "编辑"
let temp = this.dataList[index] let temp = this.dataList[index]
this.formItem.id = temp.id
this.formItem.parentId = temp.parentId
this.formItem.deptName = temp.deptName
this.formItem.deptCode = temp.deptCode
this.formItem.level = temp.level
this.formItem.deptDesc = temp.deptDesc
this.formItem.sort = temp.sort
this.modal = true
this.addModal = false this.addModal = false
this.editModal = true this.editModal = true
this.modal = true
this.$nextTick(() => {
// 清除上次校验状态,避免编辑回显报红
if (this.$refs.formItem) {
this.$refs.formItem.resetFields()
}
this.formItem.id = temp.id
this.formItem.parentId = temp.parentId
this.formItem.deptName = temp.deptName
this.formItem.deptCode = temp.deptCode
this.formItem.level = temp.level
this.formItem.deptDesc = temp.deptDesc
this.formItem.sort = temp.sort
})
}, },
submit(formItem) { submit(formItem) {
// modal 提交 // modal 提交
this.$refs[formItem].validate((valid) => { this.$refs[formItem].validate((valid) => {
if (valid) { if (valid) {
if (this.addModal) {//添加 if (this.addModal) {//添加
console.log("add")
add(this.formItem).then(res => { add(this.formItem).then(res => {
this.refresh() this.refresh()
this.getTreeSelectList() this.getTreeSelectList()
@@ -302,7 +307,6 @@
this.$Message.success("添加成功!") this.$Message.success("添加成功!")
}) })
} else {//编辑 } else {//编辑
console.log("edit")
update(this.formItem).then(res => { update(this.formItem).then(res => {
this.refresh() this.refresh()
this.getTreeSelectList() this.getTreeSelectList()
@@ -324,10 +328,9 @@
let temp = this.dataList[index] let temp = this.dataList[index]
let data = { let data = {
id: temp.id, id: temp.id
status: '9'
} }
update(data).then(res => { remove(data).then(res => {
this.refresh() this.refresh()
this.getDataList() this.getDataList()
this.$Message.success("删除成功!") this.$Message.success("删除成功!")
+39 -34
View File
@@ -71,7 +71,7 @@
@on-cancel="cancel()"> @on-cancel="cancel()">
<Form :rules="ruleCustom" :model="formItem" ref="formItem" :label-width="120" label-position="right"> <Form :rules="ruleCustom" :model="formItem" ref="formItem" :label-width="120" label-position="right">
<Row :gutter="32"> <Row :gutter="32">
<Col span="32"> <Col span="24">
<FormItem label="上级菜单" prop="pId"> <FormItem label="上级菜单" prop="pId">
<treeselect ref="treeSelect" <treeselect ref="treeSelect"
class="form-input" class="form-input"
@@ -82,37 +82,37 @@
/> />
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="菜单名称" prop="permissionName"> <FormItem label="菜单名称" prop="permissionName">
<Input type="text" class="form-input" v-model="formItem.permissionName" placeholder="请输入菜单名称"/> <Input type="text" class="form-input" v-model="formItem.permissionName" placeholder="请输入菜单名称"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="菜单编码" prop="permissionCode"> <FormItem label="菜单编码" prop="permissionCode">
<Input type="text" class="form-input" v-model="formItem.permissionCode" placeholder="请输入菜单编码"/> <Input type="text" class="form-input" v-model="formItem.permissionCode" placeholder="请输入菜单编码"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="菜单图标" prop="icon"> <FormItem label="菜单图标" prop="icon">
<icon-choose v-model="formItem.icon"></icon-choose> <icon-choose v-model="formItem.icon"></icon-choose>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="路由地址" prop="url"> <FormItem label="路由地址" prop="url">
<Input type="text" class="form-input" v-model="formItem.url" placeholder="请输入路由地址"/> <Input type="text" class="form-input" v-model="formItem.url" placeholder="请输入路由地址"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="组件地址" prop="component"> <FormItem label="组件地址" prop="component">
<Input type="text" class="form-input" v-model="formItem.component" placeholder="请输入组件地址"/> <Input type="text" class="form-input" v-model="formItem.component" placeholder="请输入组件地址"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="菜单排序" prop="sort"> <FormItem label="菜单排序" prop="sort">
<InputNumber :min="0" v-model="formItem.sort" placeholder="请输入菜单排序"/> <InputNumber :min="0" v-model="formItem.sort" placeholder="请输入菜单排序"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="菜单描述" prop="permissionDesc"> <FormItem label="菜单描述" prop="permissionDesc">
<Input type="textarea" maxlength="100" show-word-limit :rows="4" class="form-input" <Input type="textarea" maxlength="100" show-word-limit :rows="4" class="form-input"
v-model="formItem.permissionDesc" placeholder="请输入菜单描述"/> v-model="formItem.permissionDesc" placeholder="请输入菜单描述"/>
@@ -133,7 +133,7 @@
</template> </template>
<script> <script>
import {getTreeList, getTreeSelectList, getDataList, add, update} from '@/api/sys/sys-permission' import {getTreeList, getTreeSelectList, getDataList, add, update, remove} from '@/api/sys/sys-permission'
import {objectUtil, utils, exportExcel} from "@/common/js/util" import {objectUtil, utils, exportExcel} from "@/common/js/util"
import IconChoose from "@/components/my-components/icon-choose" import IconChoose from "@/components/my-components/icon-choose"
import Treeselect from '@riophae/vue-treeselect' import Treeselect from '@riophae/vue-treeselect'
@@ -261,19 +261,15 @@
// 获取选中的节点信息 // 获取选中的节点信息
let choose = this.$refs.tree.getSelectedNodes(); let choose = this.$refs.tree.getSelectedNodes();
if (choose.length > 0) { if (choose.length > 0) {
console.log("选中!")
this.formItem.parentId = choose[0].id this.formItem.parentId = choose[0].id
this.formItem.level = choose[0].level + 1 this.formItem.level = choose[0].level + 1
this.search.parentId = choose[0].id this.search.parentId = choose[0].id
this.getDataList() this.getDataList()
} else {
console.log("取消选中!")
} }
}, },
getTreeList() { getTreeList() {
getTreeList().then(res => { getTreeList().then(res => {
this.treeList = res.data.data this.treeList = res.data.data
console.log("treeList:",this.treeList)
}) })
}, },
getTreeSelectList() { getTreeSelectList() {
@@ -287,8 +283,7 @@
this.tableLoading = true this.tableLoading = true
getDataList(data).then(res => { getDataList(data).then(res => {
let page = res.data.data let page = res.data.data
console.log(page) this.pageTotal = page.total
this.pageTotal = page.size
this.dataList = page.records this.dataList = page.records
// 延迟300毫秒,给它更流畅的感觉 // 延迟300毫秒,给它更流畅的感觉
setTimeout(() => { setTimeout(() => {
@@ -303,36 +298,46 @@
} }
this.modalTitle = "添加" this.modalTitle = "添加"
this.modal = true
this.addModal = true this.addModal = true
this.editModal = false this.editModal = false
this.modal = true
this.$nextTick(() => {
if (this.$refs.formItem) {
this.$refs.formItem.resetFields()
}
})
}, },
toEdit(index) { toEdit(index) {
this.modalTitle = "编辑" this.modalTitle = "编辑"
let temp = this.dataList[index] let temp = this.dataList[index]
this.formItem.id = temp.id
this.formItem.parentId = temp.parentId
this.formItem.permissionName = temp.permissionName
this.formItem.permissionCode = temp.permissionCode
this.formItem.level = temp.level
this.formItem.icon = temp.icon
this.formItem.url = temp.url
this.formItem.component = temp.component
this.formItem.permissionDesc = temp.permissionDesc
this.formItem.sort = temp.sort
this.modal = true
this.addModal = false this.addModal = false
this.editModal = true this.editModal = true
this.modal = true
this.$nextTick(() => {
// 先清除上次校验状态,再回填数据,避免编辑回显报红
if (this.$refs.formItem) {
this.$refs.formItem.resetFields()
}
this.formItem.id = temp.id
this.formItem.parentId = temp.parentId
this.formItem.permissionName = temp.permissionName
this.formItem.permissionCode = temp.permissionCode
this.formItem.level = temp.level
this.formItem.icon = temp.icon
this.formItem.url = temp.url
this.formItem.component = temp.component
this.formItem.permissionDesc = temp.permissionDesc
this.formItem.sort = temp.sort
})
}, },
submit(formItem) { submit(formItem) {
// modal 提交 // modal 提交
this.$refs[formItem].validate((valid) => { this.$refs[formItem].validate((valid) => {
if (valid) { if (valid) {
if (this.addModal) {//添加 if (this.addModal) {//添加
console.log("add")
add(this.formItem).then(res => { add(this.formItem).then(res => {
this.refresh() this.refresh()
this.getTreeSelectList() this.getTreeSelectList()
@@ -341,7 +346,6 @@
this.$Message.success("添加成功!") this.$Message.success("添加成功!")
}) })
} else {//编辑 } else {//编辑
console.log("edit")
update(this.formItem).then(res => { update(this.formItem).then(res => {
this.refresh() this.refresh()
this.getTreeSelectList() this.getTreeSelectList()
@@ -363,11 +367,12 @@
let temp = this.dataList[index] let temp = this.dataList[index]
let data = { let data = {
id: temp.id, id: temp.id
status: '9'
} }
update(data).then(res => { remove(data).then(res => {
this.refresh() this.refresh()
this.getTreeSelectList()
this.getTreeList()
this.getDataList() this.getDataList()
this.$Message.success("删除成功!") this.$Message.success("删除成功!")
}) })
+18 -12
View File
@@ -53,23 +53,23 @@
@on-cancel="cancel()"> @on-cancel="cancel()">
<Form :rules="ruleCustom" :model="formItem" ref="formItem" :label-width="120" label-position="right"> <Form :rules="ruleCustom" :model="formItem" ref="formItem" :label-width="120" label-position="right">
<Row :gutter="32"> <Row :gutter="32">
<Col span="32"> <Col span="24">
<FormItem label="角色名称" prop="roleName"> <FormItem label="角色名称" prop="roleName">
<Input type="text" class="form-input" v-model="formItem.roleName" placeholder="请输入角色名称"/> <Input type="text" class="form-input" v-model="formItem.roleName" placeholder="请输入角色名称"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="角色编码" prop="roleCode"> <FormItem label="角色编码" prop="roleCode">
<Input type="text" class="form-input" v-model="formItem.roleCode" placeholder="请输入角色编码"/> <Input type="text" class="form-input" v-model="formItem.roleCode" placeholder="请输入角色编码"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="角色描述" prop="roleDesc"> <FormItem label="角色描述" prop="roleDesc">
<Input type="textarea" maxlength="100" show-word-limit :rows="4" class="form-input" <Input type="textarea" maxlength="100" show-word-limit :rows="4" class="form-input"
v-model="formItem.roleDesc" placeholder="请输入角色描述"/> v-model="formItem.roleDesc" placeholder="请输入角色描述"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="部门名称" prop="deptId"> <FormItem label="部门名称" prop="deptId">
<treeselect ref="treeSelect" <treeselect ref="treeSelect"
class="form-input" class="form-input"
@@ -81,12 +81,12 @@
/> />
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="排序" prop="sort"> <FormItem label="排序" prop="sort">
<InputNumber :min="0" v-model="formItem.sort" placeholder="请输入角色排序"/> <InputNumber :min="0" v-model="formItem.sort" placeholder="请输入角色排序"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="默认角色" prop="isDefault"> <FormItem label="默认角色" prop="isDefault">
<RadioGroup v-model="formItem.isDefault"> <RadioGroup v-model="formItem.isDefault">
<Radio label="1"> <Radio label="1">
@@ -267,7 +267,7 @@ export default {
this.tableLoading = true this.tableLoading = true
getDataList(data).then(res => { getDataList(data).then(res => {
let page = res.data.data let page = res.data.data
this.pageTotal = page.size this.pageTotal = page.total
this.dataList = page.records this.dataList = page.records
// 延迟300毫秒,给它更流畅的感觉 // 延迟300毫秒,给它更流畅的感觉
setTimeout(() => { setTimeout(() => {
@@ -291,6 +291,15 @@ export default {
this.modalTitle = '编辑' this.modalTitle = '编辑'
let temp = this.dataList[index] let temp = this.dataList[index]
this.addModal = false
this.editModal = true
this.modal = true
this.$nextTick(() => {
// 清除上次校验状态,避免编辑回显报红
if (this.$refs.formItem) {
this.$refs.formItem.resetFields()
}
this.formItem.id = temp.id this.formItem.id = temp.id
this.formItem.roleName = temp.roleName this.formItem.roleName = temp.roleName
this.formItem.roleCode = temp.roleCode this.formItem.roleCode = temp.roleCode
@@ -298,10 +307,7 @@ export default {
this.formItem.isDefault = temp.isDefault this.formItem.isDefault = temp.isDefault
this.formItem.deptId = temp.deptId this.formItem.deptId = temp.deptId
this.formItem.sort = temp.sort this.formItem.sort = temp.sort
})
this.modal = true
this.addModal = false
this.editModal = true
}, },
submit (formItem) { submit (formItem) {
// modal 提交 // modal 提交
@@ -444,7 +450,7 @@ export default {
// 存叶子节点 // 存叶子节点
let rolePermissionArr = [] let rolePermissionArr = []
for (let i = 0; i < checkedNodes.length; i++) { for (let i = 0; i < checkedNodes.length; i++) {
if (checkedNodes[i].children.length === 0) { if ((checkedNodes[i].children || []).length === 0) {
let rolePermission = { let rolePermission = {
roleId: this.curRoleId, roleId: this.curRoleId,
permissionId: checkedNodes[i].id permissionId: checkedNodes[i].id
+34 -32
View File
@@ -60,27 +60,27 @@
@on-cancel="cancel()"> @on-cancel="cancel()">
<Form :rules="ruleCustom" :model="formItem" ref="formItem" :label-width="120" label-position="right"> <Form :rules="ruleCustom" :model="formItem" ref="formItem" :label-width="120" label-position="right">
<Row :gutter="32"> <Row :gutter="32">
<Col span="32"> <Col span="24">
<FormItem label="登录账号" prop="username"> <FormItem label="登录账号" prop="username">
<Input type="text" class="form-input" v-model="formItem.username" placeholder="请输入登录账号"/> <Input type="text" class="form-input" v-model="formItem.username" placeholder="请输入登录账号"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="用户昵称" prop="nickname"> <FormItem label="用户昵称" prop="nickname">
<Input type="text" class="form-input" v-model="formItem.nickname" placeholder="请输入用户昵称"/> <Input type="text" class="form-input" v-model="formItem.nickname" placeholder="请输入用户昵称"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="联系电话" prop="phone"> <FormItem label="联系电话" prop="phone">
<Input type="text" class="form-input" v-model="formItem.phone" placeholder="请输入联系电话"/> <Input type="text" class="form-input" v-model="formItem.phone" placeholder="请输入联系电话"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="电子邮箱" prop="email"> <FormItem label="电子邮箱" prop="email">
<Input type="text" class="form-input" v-model="formItem.email" placeholder="请输入电子邮箱"/> <Input type="text" class="form-input" v-model="formItem.email" placeholder="请输入电子邮箱"/>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="用户类型" prop="userType"> <FormItem label="用户类型" prop="userType">
<RadioGroup v-model="formItem.userType"> <RadioGroup v-model="formItem.userType">
<Radio label="userType001" disabled> <Radio label="userType001" disabled>
@@ -92,9 +92,9 @@
</RadioGroup> </RadioGroup>
</FormItem> </FormItem>
</Col> </Col>
<Col span="32"> <Col span="24">
<FormItem label="角色权限" prop="roleIds"> <FormItem label="角色权限" prop="roleIds">
<Select v-model="formItem.roleIds" multiple style="width:260px"> <Select v-model="formItem.roleIds" multiple style="width:100%">
<Option v-for="item in roleSelectList" <Option v-for="item in roleSelectList"
:value="item.value" :value="item.value"
:key="item.value">{{ item.label }} :key="item.value">{{ item.label }}
@@ -282,7 +282,7 @@
required: true, message: '请输入联系电话', trigger: 'blur' required: true, message: '请输入联系电话', trigger: 'blur'
}], }],
email: [{ email: [{
required: true, message: '请输入联系电话', trigger: 'blur' required: true, message: '请输入电子邮箱', trigger: 'blur'
}], }],
roleIds: [{ roleIds: [{
required: true, type: 'array', message: '请选择角色权限', trigger: 'blur' required: true, type: 'array', message: '请选择角色权限', trigger: 'blur'
@@ -297,10 +297,8 @@
this.tableLoading = true this.tableLoading = true
getDataList(data).then(res => { getDataList(data).then(res => {
let page = res.data.data; let page = res.data.data;
this.pageTotal = page.size this.pageTotal = page.total
this.dataList = page.records this.dataList = page.records
console.log("this.dataList:")
console.log(this.dataList)
// 延迟300毫秒,给它更流畅的感觉 // 延迟300毫秒,给它更流畅的感觉
setTimeout(() => { setTimeout(() => {
this.tableLoading = false this.tableLoading = false
@@ -310,11 +308,10 @@
getRoleSelectList() { getRoleSelectList() {
// 加载角色下拉列表 // 加载角色下拉列表
getRoleSelectList().then(res => { getRoleSelectList().then(res => {
let roleSelectList = res.data.data let roleSelectList = res.data.data || []
this.roleSelectList = roleSelectList this.roleSelectList = roleSelectList
this.isDefaultRoleId = [roleSelectList[0].value] this.isDefaultRoleId = roleSelectList.length > 0 ? [roleSelectList[0].value] : []
this.formItem.roleIds = this.isDefaultRoleId this.formItem.roleIds = this.isDefaultRoleId
}) })
}, },
toAdd() { toAdd() {
@@ -329,19 +326,27 @@
this.modalTitle = "编辑" this.modalTitle = "编辑"
let temp = this.dataList[index] let temp = this.dataList[index]
this.formItem.id = temp.id
this.formItem.username = temp.username
this.formItem.nickname = temp.nickname
this.formItem.userType = temp.userType
this.formItem.phone = temp.phone
this.formItem.email = temp.email
if (temp.roleIds != null) {
this.formItem.roleIds = temp.roleIds.split(',')
}
this.modal = true
this.addModal = false this.addModal = false
this.editModal = true this.editModal = true
this.modal = true
this.$nextTick(() => {
// 清除上次校验状态,避免编辑回显报红
if (this.$refs.formItem) {
this.$refs.formItem.resetFields()
}
this.formItem.id = temp.id
this.formItem.username = temp.username
this.formItem.nickname = temp.nickname
this.formItem.userType = temp.userType
this.formItem.phone = temp.phone
this.formItem.email = temp.email
if (temp.roleIds != null && temp.roleIds !== '') {
this.formItem.roleIds = temp.roleIds.split(',')
} else {
this.formItem.roleIds = []
}
})
}, },
submit(formItem) { submit(formItem) {
// modal 提交 // modal 提交
@@ -362,13 +367,11 @@
}) })
if (this.addModal) {//添加 if (this.addModal) {//添加
console.log("add")
add(data).then(res => { add(data).then(res => {
this.getDataList() this.getDataList()
this.$Message.success("添加成功!") this.$Message.success("添加成功!")
}) })
} else {//编辑 } else {//编辑
console.log("edit")
update(data).then(res => { update(data).then(res => {
this.getDataList() this.getDataList()
this.$Message.success("编辑成功!") this.$Message.success("编辑成功!")
@@ -393,8 +396,6 @@
}, },
toDelete(index) { toDelete(index) {
let temp = this.dataList[index] let temp = this.dataList[index]
console.log("this.dataList[index]:")
console.log(this.dataList[index])
if (temp.username === 'admin' && temp.userType === 'userType001') { if (temp.username === 'admin' && temp.userType === 'userType001') {
this.$Message.warning("系统内置管理员账号不可删除!") this.$Message.warning("系统内置管理员账号不可删除!")
return return
@@ -470,9 +471,10 @@
}, },
toExport() { toExport() {
// 导出到Excel // 导出到Excel
getDataList({pageNum: 1, pageSize: this.pageTotal}).then(res => { getDataList({pageNum: 1, pageSize: this.pageTotal || 1000}).then(res => {
let pageInfo = res.data.data.pageInfo let page = res.data.data
exportExcel(this.exportColumns, this.dataList, "用户数据") let data = (page && page.records) ? page.records : this.dataList
exportExcel(this.exportColumns, data, "用户数据")
}) })
}, },
toDownload() { toDownload() {