组织机构树修改

This commit is contained in:
aoli.qu 2022-02-25 16:39:11 +08:00
parent 9a0519601f
commit 756e8f1a9b
8 changed files with 192 additions and 165 deletions

View File

@ -1,3 +1,4 @@
import _ from 'lodash'
export function timeFix() { export function timeFix() {
const time = new Date() const time = new Date()
const hour = time.getHours() const hour = time.getHours()
@ -67,6 +68,12 @@ export function removeLoadingAnimate(id = '', timeout = 1500) {
} }
export function listToTree(list, tree, parentId) { export function listToTree(list, tree, parentId) {
list.map(item => {
const index = _.findIndex(list, ['id', item.pid])
if(index === -1){
item.pid = 0
}
})
list.forEach(item => { list.forEach(item => {
if (item.pid === parentId) { if (item.pid === parentId) {
const child = { const child = {

View File

@ -11,7 +11,13 @@
<a-col :md="5" :sm="24" class="borderTop "> <a-col :md="5" :sm="24" class="borderTop ">
<div> <div>
<div v-if="this.orgTree != ''"> <div v-if="this.orgTree != ''">
<a-tree :treeData="orgTree" v-if="orgTree.length" @select="handleClick" :defaultExpandAll="true" :defaultExpandedKeys="defaultExpandedKeys" :replaceFields="replaceFields" /> <a-tree
:treeData="orgTree"
v-if="orgTree.length"
@select="handleClick"
:defaultExpandAll="true"
:expandedKeys="expandedKeys"
:replaceFields="replaceFields" />
</div> </div>
<div v-else> <div v-else>
<a-empty :image="simpleImage" /> <a-empty :image="simpleImage" />
@ -75,7 +81,7 @@ export default {
// //
simpleImage: Empty.PRESENTED_IMAGE_SIMPLE, simpleImage: Empty.PRESENTED_IMAGE_SIMPLE,
orgTree: [], orgTree: [],
defaultExpandedKeys: [], expandedKeys: [],
treeLoading: true, treeLoading: true,
replaceFields: { replaceFields: {
children: 'children', children: 'children',
@ -91,25 +97,35 @@ export default {
{ title: '部门信息', width: 'auto', align: 'center', dataIndex: 'bmOrgName', key: 'bmOrgName' }, { title: '部门信息', width: 'auto', align: 'center', dataIndex: 'bmOrgName', key: 'bmOrgName' },
{ title: '证书名称', width: 'auto', align: 'center', dataIndex: 'name', key: 'name' }, { title: '证书名称', width: 'auto', align: 'center', dataIndex: 'name', key: 'name' },
{ {
title: '证书类型', width: 'auto', align: 'center', dataIndex: 'type', key: 'type', customRender: (text, record, index) => { title: '证书类型',
let textStr = ''; width: 'auto',
this.queryOptions[0].options.forEach(element => { if (element.value.toString() === text) textStr = element.name; }); align: 'center',
return textStr; dataIndex: 'type',
key: 'type',
customRender: (text, record, index) => {
let textStr = ''
this.queryOptions[0].options.forEach(element => { if (element.value.toString() === text) textStr = element.name })
return textStr
} }
}, },
{ title: '注册日期', width: 'auto', align: 'center', dataIndex: 'registerDate', key: 'registerDate' }, { title: '注册日期', width: 'auto', align: 'center', dataIndex: 'registerDate', key: 'registerDate' },
{ title: '失效日期', width: 'auto', align: 'center', dataIndex: 'validityEndDate', key: 'validityEndDate' }, { title: '失效日期', width: 'auto', align: 'center', dataIndex: 'validityEndDate', key: 'validityEndDate' },
{ {
title: '证书状态', width: '80px', align: 'center', dataIndex: 'state', key: 'state', customRender: (text, record, index) => { title: '证书状态',
let textStr = ''; width: '80px',
this.state.forEach(element => { if (element.value.toString() === text) textStr = element.name; }); align: 'center',
return textStr; dataIndex: 'state',
key: 'state',
customRender: (text, record, index) => {
let textStr = ''
this.state.forEach(element => { if (element.value.toString() === text) textStr = element.name })
return textStr
} }
}, },
{ title: '操作', width: '70px', key: 'operation', align: 'center', scopedSlots: { customRender: 'action' } } { title: '操作', width: '70px', key: 'operation', align: 'center', scopedSlots: { customRender: 'action' } }
], ],
loadData: null, loadData: null
}; }
}, },
// data // data
computed: {}, computed: {},
@ -124,37 +140,35 @@ export default {
if (!res.code === 200 || !res.data.length) { if (!res.code === 200 || !res.data.length) {
return return
} }
this.defaultExpandedKeys = [] this.expandedKeys = []
this.orgTree = listToTree(res.data, [], 0) this.orgTree = listToTree(res.data, [], 0)
this.queryParam.orgId = this.orgTree[0].id this.queryParam.orgId = this.orgTree[0].id
for (var item of this.orgTree) { //
if (item.pid === 0) { this.orgTree.forEach(item => {
this.defaultExpandedKeys.push(item.id) this.expandedKeys.push(item.id)
} })
}
if (!this.loadData) this.loadData = parameter => { return getArchivesCertificatelist(Object.assign(parameter, this.queryParam)).then(res => { return res }) }; if (!this.loadData) this.loadData = parameter => { return getArchivesCertificatelist(Object.assign(parameter, this.queryParam)).then(res => { return res }) }
else this.handleRefresh(); else this.handleRefresh()
})
});
}, },
// //
dictionaryDropDown () { dictionaryDropDown () {
// //
dictionaryDropDown({ dictionaryCode: '0001' }).then((res) => { dictionaryDropDown({ dictionaryCode: '0001' }).then((res) => {
this.queryOptions[0].options = res.data; this.queryOptions[0].options = res.data
}) })
// //
dictionaryDropDown({ dictionaryCode: '0010' }).then((res) => { dictionaryDropDown({ dictionaryCode: '0010' }).then((res) => {
this.state = res.data; this.state = res.data
}) })
}, },
// //
editCertificateType () { editCertificateType () {
this.$router.push({ path: '/archives/certificate/CertificateType', query: {} }); this.$router.push({ path: '/archives/certificate/CertificateType', query: {} })
}, },
// //
@ -164,8 +178,8 @@ export default {
// //
changeOrgType () { changeOrgType () {
this.queryParam.orgType = this.queryParam.orgType === 1 ? 2 : 1; this.queryParam.orgType = this.queryParam.orgType === 1 ? 2 : 1
this.getOrgTree(); this.getOrgTree()
// this.handleClick(); // this.handleClick();
}, },
@ -178,34 +192,35 @@ export default {
// //
editPersonCertificate (record) { editPersonCertificate (record) {
this.$router.push({ this.$router.push({
path: '/archives/certificate/EditCertificate', query: { path: '/archives/certificate/EditCertificate',
query: {
certificateId: record.id certificateId: record.id
} }
}); })
}, },
// //
exportPersonCertificate (record) { exportPersonCertificate (record) {
exportCertificate({ id: record.id }).then(res => { exportCertificate({ id: record.id }).then(res => {
downloadExportFile(res.data); downloadExportFile(res.data)
}); })
}, },
// //
delPersonCertificate (record) { delPersonCertificate (record) {
delCertificate({ id: record.id }).then(res => { delCertificate({ id: record.id }).then(res => {
this.$message.success("删除证书成功!"); this.$message.success('删除证书成功!')
this.$refs.table.refresh(true) this.$refs.table.refresh(true)
}); })
} }
}, },
// - 访this // - 访this
created () { created () {
// //
this.getOrgTree(); this.getOrgTree()
// //
this.dictionaryDropDown(); this.dictionaryDropDown()
}, },
// - 访DOM // - 访DOM
mounted () { }, mounted () { },
@ -223,7 +238,7 @@ export default {
destroyed () { }, destroyed () { },
// keep-alive // keep-alive
activated () { } activated () { }
}; }
</script> </script>
<style scoped> <style scoped>

View File

@ -11,9 +11,9 @@
:onLoadData="orgTree" :onLoadData="orgTree"
v-if="orgTree.length" v-if="orgTree.length"
@select="handleClick" @select="handleClick"
:defaultExpandAll="true" :defaultExpandAll="false"
:defaultExpandedKeys="defaultExpandedKeys" :expandedKeys="expandedKeys"
:defaultSelectedKeys="defaultSelectedKeys" :defaultSelectedKeys="selectedKeys"
:replaceFields="replaceFields" /> :replaceFields="replaceFields" />
</div> </div>
<div v-else> <div v-else>
@ -60,8 +60,8 @@
v-if="orgTree.length" v-if="orgTree.length"
@select="handleClick" @select="handleClick"
:defaultExpandAll="true" :defaultExpandAll="true"
:defaultExpandedKeys="defaultExpandedKeys" :expandedKeys="expandedKeys"
:defaultSelectedKeys="defaultSelectedKeys" :defaultSelectedKeys="selectedKeys"
:replaceFields="replaceFields" /> :replaceFields="replaceFields" />
</div> </div>
<div v-else> <div v-else>
@ -207,7 +207,7 @@
{ {
title: '累计学时', title: '累计学时',
dataIndex: 'sumClassHour' dataIndex: 'sumClassHour'
}, }
], ],
loadData2: parameter => { loadData2: parameter => {
return dataPersonalStatistics(Object.assign(parameter, this.queryParam)).then((res) => { return dataPersonalStatistics(Object.assign(parameter, this.queryParam)).then((res) => {
@ -221,7 +221,7 @@
key: 'index', key: 'index',
align: 'center', align: 'center',
width: 60, width: 60,
customRender: (text,record,index) => `${index+1}`, customRender: (text, record, index) => `${index + 1}`
}, },
{ {
title: '姓名', title: '姓名',
@ -256,7 +256,7 @@
key: 'index', key: 'index',
align: 'center', align: 'center',
width: 60, width: 60,
customRender: (text,record,index) => `${index+1}`, customRender: (text, record, index) => `${index + 1}`
}, },
{ {
title: '姓名', title: '姓名',
@ -287,8 +287,8 @@
orgTree: [], orgTree: [],
selectedRowKeys: [], selectedRowKeys: [],
selectedRows: [], selectedRows: [],
defaultExpandedKeys: [], expandedKeys: [],
defaultSelectedKeys: [], selectedKeys: [],
treeLoading: true, treeLoading: true,
simpleImage: Empty.PRESENTED_IMAGE_SIMPLE, simpleImage: Empty.PRESENTED_IMAGE_SIMPLE,
replaceFields: { replaceFields: {
@ -329,16 +329,15 @@
if (!res.code === 200 || !res.data.length) { if (!res.code === 200 || !res.data.length) {
return return
} }
this.defaultExpandedKeys = [] this.expandedKeys = []
this.defaultSelectedKeys = [] this.selectedKeys = []
this.orgTree = listToTree(res.data, [], 0) this.orgTree = listToTree(res.data, [], 0)
this.orgId = this.orgTree[0].id this.orgId = this.orgTree[0].id
this.defaultSelectedKeys.push(this.orgId) this.selectedKeys.push(this.orgId)
for (var item of this.orgTree) { //
if (item.pid === 0) { this.orgTree.forEach(item => {
this.defaultExpandedKeys.push(item.id) this.expandedKeys.push(item.id)
} })
}
}) })
}, },
/** /**

View File

@ -109,11 +109,10 @@ export default {
return return
} }
const orgTree = listToTree(res.data, [], rootParentId) const orgTree = listToTree(res.data, [], rootParentId)
for (var item of orgTree) { //
if (item.pid === 0) { orgTree.forEach(item => {
this.expandedKeys.push(item.id) this.expandedKeys.push(item.id)
} })
}
generateList(orgTree) generateList(orgTree)
this.orgList = orgTree this.orgList = orgTree
}) })

View File

@ -62,7 +62,7 @@
<a-col :md="12" :sm="24"> <a-col :md="12" :sm="24">
<a-form :form="form"> <a-form :form="form">
<a-form-item label="年龄" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-form-item label="年龄" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input readOnly v-decorator="['age']" /> <a-input disabled v-decorator="['age']" />
</a-form-item> </a-form-item>
</a-form> </a-form>
</a-col> </a-col>
@ -72,7 +72,7 @@
<a-form :form="form"> <a-form :form="form">
<a-form-item label="性别" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="性别" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-radio-group <a-radio-group
readOnly disabled
v-decorator="['sex', { rules: [{ required: true, message: '请选择性别!' }] }]" v-decorator="['sex', { rules: [{ required: true, message: '请选择性别!' }] }]"
> >
<a-radio :value="1"></a-radio> <a-radio :value="1"></a-radio>

View File

@ -9,9 +9,9 @@
:onLoadData="orgTree" :onLoadData="orgTree"
v-if="orgTree.length" v-if="orgTree.length"
@select="handleClick" @select="handleClick"
:defaultExpandAll="true" :defaultExpandAll="false"
:defaultExpandedKeys="defaultExpandedKeys" :expandedKeys="expandedKeys"
:defaultSelectedKeys="defaultSelectedKeys" :defaultSelectedKeys="selectedKeys"
:replaceFields="replaceFields" /> :replaceFields="replaceFields" />
</div> </div>
<div v-else> <div v-else>
@ -165,7 +165,7 @@ export default {
}, },
{ {
title: '年度学时要求', title: '年度学时要求',
dataIndex: 'classHours' dataIndex: 'planClassHour'
}, },
{ {
title: '注册时间', title: '注册时间',
@ -175,6 +175,7 @@ export default {
], ],
// Promise // Promise
loadData: parameter => { loadData: parameter => {
if (!this.orgId) return []
return personPage(Object.assign(parameter, this.queryParam)).then((res) => { return personPage(Object.assign(parameter, this.queryParam)).then((res) => {
return res return res
}) })
@ -182,8 +183,8 @@ export default {
orgTree: [], orgTree: [],
selectedRowKeys: [], selectedRowKeys: [],
selectedRows: [], selectedRows: [],
defaultExpandedKeys: [], expandedKeys: [],
defaultSelectedKeys: [], selectedKeys: [],
treeLoading: true, treeLoading: true,
simpleImage: Empty.PRESENTED_IMAGE_SIMPLE, simpleImage: Empty.PRESENTED_IMAGE_SIMPLE,
replaceFields: { replaceFields: {
@ -226,26 +227,28 @@ export default {
async getOrgTree () { async getOrgTree () {
await orgList({ orgType: this.orgType }).then(res => { await orgList({ orgType: this.orgType }).then(res => {
this.treeLoading = false this.treeLoading = false
this.expandedKeys = []
this.selectedKeys = []
if (!res.code === 200 || !res.data.length) { if (!res.code === 200 || !res.data.length) {
this.orgTree = []
return return
} }
this.defaultExpandedKeys = []
this.defaultSelectedKeys = []
this.orgTree = listToTree(res.data, [], rootParentId) this.orgTree = listToTree(res.data, [], rootParentId)
this.orgId = this.orgTree[0].id this.orgId = this.orgTree[0].id
this.defaultSelectedKeys.push(this.orgId) this.selectedKeys.push(this.orgId)
for (var item of this.orgTree) { //
if (item.pid === 0) { this.orgTree.forEach(item => {
this.defaultExpandedKeys.push(item.id) this.expandedKeys.push(item.id)
} })
}
this.handleClick(this.orgId)
}) })
}, },
async changeOrgType () { async changeOrgType () {
this.orgType = this.orgType === 1 ? 2 : 1 this.orgType = this.orgType === 1 ? 2 : 1
await this.getOrgTree() await this.getOrgTree()
// 使asyncawait orgTree // 使asyncawait orgTree
this.handleClick(this.orgId) // this.handleClick(this.orgId)
}, },
/** /**
* 重置密码 * 重置密码

View File

@ -12,9 +12,9 @@
:treeData="orgTree" :treeData="orgTree"
v-if="orgTree.length" v-if="orgTree.length"
@select="onSelect" @select="onSelect"
:defaultExpandAll="true" :defaultExpandAll="false"
:defaultExpandedKeys="defaultExpandedKeys" :expandedKeys="expandedKeys"
:defaultSelectedKeys="defaultSelectedKeys" :defaultSelectedKeys="selectedKeys"
:replaceFields="replaceFields" :replaceFields="replaceFields"
> >
<a-icon slot="switcherIcon" type="down" /> <a-icon slot="switcherIcon" type="down" />
@ -105,8 +105,8 @@ export default {
replaceFields: { children: 'children', title: 'name', key: 'id', value: 'id' }, replaceFields: { children: 'children', title: 'name', key: 'id', value: 'id' },
expandedKeys: [], expandedKeys: [],
autoExpandParent: true, autoExpandParent: true,
defaultExpandedKeys: [], expandedKeys: [],
defaultSelectedKeys: [], selectedKeys: [],
orgTree: [], orgTree: [],
orgId: this.$route.query.orgId, orgId: this.$route.query.orgId,
orgType: 2, orgType: 2,
@ -227,16 +227,15 @@ export default {
return return
} }
var rootParentId = res.data[0].pid var rootParentId = res.data[0].pid
this.defaultExpandedKeys = [] this.expandedKeys = []
this.defaultSelectedKeys = [] this.selectedKeys = []
this.orgTree = listToTree(res.data, [], rootParentId) this.orgTree = listToTree(res.data, [], rootParentId)
this.orgId = this.orgTree[0].id this.orgId = this.orgTree[0].id
this.defaultSelectedKeys.push(this.orgId) this.selectedKeys.push(this.orgId)
for (var item of this.orgTree) { //
if (item.pid === 0) { this.orgTree.forEach(item => {
this.defaultExpandedKeys.push(item.id) this.expandedKeys.push(item.id)
} })
}
}) })
} }
}, },

View File

@ -10,7 +10,13 @@
<a-col :span="4" id="tree"> <a-col :span="4" id="tree">
<a-page-header title="单位列表" sub-title="" /> <a-page-header title="单位列表" sub-title="" />
<div v-if="this.orgTree != ''"> <div v-if="this.orgTree != ''">
<a-tree :treeData="orgTree" v-if="orgTree.length" @select="onSelect" :defaultExpandAll="true" :defaultExpandedKeys="defaultExpandedKeys" :replaceFields="replaceFields"> <a-tree
:treeData="orgTree"
v-if="orgTree.length"
@select="onSelect"
:defaultExpandAll="false"
:expandedKeys="expandedKeys"
:replaceFields="replaceFields">
<a-icon slot="switcherIcon" type="down" /> <a-icon slot="switcherIcon" type="down" />
</a-tree> </a-tree>
</div> </div>
@ -71,12 +77,12 @@ export default {
// import使 // import使
components: { components: {
orgList, orgList,
STable, STable
}, },
props: { props: {
projectForm: { projectForm: {
type: Object, type: Object
}, }
}, },
data () { data () {
// //
@ -87,7 +93,7 @@ export default {
replaceFields: { children: 'children', title: 'name', key: 'id', value: 'id' }, replaceFields: { children: 'children', title: 'name', key: 'id', value: 'id' },
expandedKeys: [], expandedKeys: [],
autoExpandParent: true, autoExpandParent: true,
defaultExpandedKeys: [], expandedKeys: [],
selectedRowKeys: [], selectedRowKeys: [],
selectedRows: this.projectForm.projectPersonLists || [], selectedRows: this.projectForm.projectPersonLists || [],
orgTree: [], orgTree: [],
@ -96,21 +102,21 @@ export default {
columns: [ columns: [
{ title: '序号', key: 'id', dataIndex: 'id', width: 60, scopedSlots: { customRender: 'serial' } }, { title: '序号', key: 'id', dataIndex: 'id', width: 60, scopedSlots: { customRender: 'serial' } },
{ title: '姓名', dataIndex: 'name' }, { title: '姓名', dataIndex: 'name' },
{ title: '用户名', dataIndex: 'userName' }, { title: '用户名', dataIndex: 'userName' }
], ],
// //
loadData: (parameter) => { loadData: (parameter) => {
return personPage(Object.assign(parameter, this.queryParam)).then((res) => { return personPage(Object.assign(parameter, this.queryParam)).then((res) => {
return res return res
}) })
}, }
} }
}, },
// data // data
computed: { computed: {
hasSelected () { hasSelected () {
return this.selectedRowKeys.length > 0 return this.selectedRowKeys.length > 0
}, }
}, },
// data // data
watch: {}, watch: {},
@ -190,7 +196,7 @@ export default {
this.selectedRowKeys = [], this.selectedRowKeys = [],
this.form.projectPersonLists.forEach(element => { this.form.projectPersonLists.forEach(element => {
this.selectedRowKeys.push(element.id) this.selectedRowKeys.push(element.id)
}); })
console.log('初始化的值', this.selectedRowKeys) console.log('初始化的值', this.selectedRowKeys)
} }
}, },
@ -204,16 +210,15 @@ export default {
if (!res.code === 200 || !res.data.length) { if (!res.code === 200 || !res.data.length) {
return return
} }
this.defaultExpandedKeys = [] this.expandedKeys = []
this.orgTree = listToTree(res.data, [], rootParentId) this.orgTree = listToTree(res.data, [], rootParentId)
this.orgId = this.orgTree[0].id this.orgId = this.orgTree[0].id
for (var item of this.orgTree) { //
if (item.pid === 0) { this.orgTree.forEach(item => {
this.defaultExpandedKeys.push(item.id) this.expandedKeys.push(item.id)
}
}
}) })
}, })
}
}, },
// - 访this // - 访this
created () { created () {
@ -235,7 +240,7 @@ export default {
// - // -
destroyed () { }, destroyed () { },
// keep-alive // keep-alive
activated() { }, activated () { }
} }
</script> </script>
<style scoped> <style scoped>