[fix 83977] 所属单位改下拉菜单

This commit is contained in:
danshihao
2024-04-25 11:27:37 +08:00
parent 3133590be9
commit ec6282dfd8
2 changed files with 59 additions and 12 deletions
@@ -116,11 +116,11 @@
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="所属单位"> <a-form-item label="所属单位">
<j-select-depart <a-select v-decorator="['selecteddeparts', validatorRules.selecteddeparts]" allowClear
placeholder="请选择所属单位" placeholder="请选择所属单位">
v-decorator="['selecteddeparts', validatorRules.selecteddeparts]" <a-icon slot="suffixIcon" type="caret-down" class="select-arrow" />
:backDepart="true" <a-select-option v-for="item in departList" :key="item.id" :value="item.id">{{ item.departName }}</a-select-option>
:treeOpera="true"></j-select-depart> </a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@@ -185,6 +185,7 @@ import { dataAcquisitionCycle, dataAcquisitionProtocol, msgType, userType } from
import { getRSAPublicKey } from '@/utils/encryption' import { getRSAPublicKey } from '@/utils/encryption'
import { JSEncrypt } from 'jsencrypt' import { JSEncrypt } from 'jsencrypt'
import UserInfoModal from '@views/systemOverview/systemSettings/modules/UserInfoModal' import UserInfoModal from '@views/systemOverview/systemSettings/modules/UserInfoModal'
import { queryDepartTreeList } from '@api/api'
export default { export default {
name: 'SystemSettings', name: 'SystemSettings',
components: { UserInfoModal, CommonCard }, components: { UserInfoModal, CommonCard },
@@ -377,13 +378,35 @@ export default {
password: '123456', password: '123456',
confirmpassword: '123456', confirmpassword: '123456',
userIdentity: '1' userIdentity: '1'
} },
departList: [] // 所属单位下拉
} }
}, },
created () { created () {
this.loadPage() this.loadPage()
this.loadDepartList()
}, },
methods: { methods: {
// 获取部门下拉
loadDepartList () {
const flattenTree = (tree) => {
const result = []
function flatten (node) {
result.push(node)
if (Array.isArray(node.children) && node.children.length) {
node.children.forEach(child => flatten(child))
}
}
tree.forEach((node) => flatten(node))
return result
}
return queryDepartTreeList().then(res => {
if (res.success) {
const tree = res.result || []
this.departList = flattenTree(tree)
}
})
},
// 是否是默认管理员账号,不可删除 // 是否是默认管理员账号,不可删除
isDefaultAdmin ({ username }) { isDefaultAdmin ({ username }) {
const usernameArr = ['admin', 'admin2', 'admin3'] const usernameArr = ['admin', 'admin2', 'admin3']
@@ -40,11 +40,11 @@
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="所属单位"> <a-form-model-item label="所属单位">
<j-select-depart <a-select v-decorator="['selecteddeparts', validatorRules.selecteddeparts]" allowClear
placeholder="请选择所属单位" placeholder="请选择所属单位">
v-decorator="['selecteddeparts', validatorRules.selecteddeparts]" <a-icon slot="suffixIcon" type="caret-down" class="select-arrow" />
:backDepart="true" <a-select-option v-for="item in departList" :key="item.id" :value="item.id">{{ item.departName }}</a-select-option>
:treeOpera="true"></j-select-depart> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@@ -63,6 +63,7 @@
<script> <script>
import { editUserInfo } from '@api/systemOverview' import { editUserInfo } from '@api/systemOverview'
import { getAction } from '@api/manage' import { getAction } from '@api/manage'
import { queryDepartTreeList } from '@api/api'
export default { export default {
name: 'UserInfoModal', name: 'UserInfoModal',
data () { data () {
@@ -78,11 +79,13 @@ export default {
userType: { rules: [{ required: true, message: '请选择用户类别' }], validateTrigger: 'change' }, userType: { rules: [{ required: true, message: '请选择用户类别' }], validateTrigger: 'change' },
selecteddeparts: { rules: [{ required: true, message: '请选择所属单位' }], validateTrigger: 'change' }, selecteddeparts: { rules: [{ required: true, message: '请选择所属单位' }], validateTrigger: 'change' },
phone: { rules: [{ required: true, message: '请输入联系方式' }, { validator: this.validateMobile }], validateTrigger: 'blur' } phone: { rules: [{ required: true, message: '请输入联系方式' }, { validator: this.validateMobile }], validateTrigger: 'blur' }
} },
departList: [] // 所属单位下拉
} }
}, },
methods: { methods: {
add () { add () {
this.loadDepartList()
this.edit(this.modelDefault) this.edit(this.modelDefault)
}, },
edit (record) { edit (record) {
@@ -91,6 +94,7 @@ export default {
this.$nextTick(() => { this.$nextTick(() => {
this.form.setFieldsValue(this.model) this.form.setFieldsValue(this.model)
}) })
this.loadDepartList()
this.getUserDeparts(record.id) this.getUserDeparts(record.id)
}, },
close () { close () {
@@ -123,6 +127,26 @@ export default {
handleCancel () { handleCancel () {
this.close() this.close()
}, },
// 获取部门下拉
loadDepartList () {
const flattenTree = (tree) => {
const result = []
function flatten (node) {
result.push(node)
if (Array.isArray(node.children) && node.children.length) {
node.children.forEach(child => flatten(child))
}
}
tree.forEach((node) => flatten(node))
return result
}
return queryDepartTreeList().then(res => {
if (res.success) {
const tree = res.result || []
this.departList = flattenTree(tree)
}
})
},
// 获取用户部门 // 获取用户部门
getUserDeparts (userid) { getUserDeparts (userid) {
const that = this const that = this