| | |
| | | <div class="aside"> |
| | | <div class="title">组织机构</div> |
| | | <div class="input"> |
| | | <el-input placeholder="输入组织机构名称" v-model="searchArea"></el-input> |
| | | <el-input placeholder="输入组织机构名称, 按下enter键搜索" v-model="searchArea" @change="filterTreeNode"></el-input> |
| | | </div> |
| | | <div class="menu"> |
| | | <el-tree :data="areaData" :props="defaultProps" @node-click="handleNodeClick"></el-tree> |
| | | <el-tree ref="department" :filter-node-method="filterNode" :data="areaData" :props="defaultProps" @node-click="nodeClick"></el-tree> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import department from "@/api/system/department"; |
| | | |
| | | export default { |
| | | name: 'departmentAside', |
| | | data() { |
| | | return { |
| | | searchArea: null, |
| | | areaData: [], |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'label' |
| | | label: 'regionName' |
| | | } |
| | | }; |
| | | }, |
| | | |
| | | created() { |
| | | department.getDepartmentList() |
| | | .then(res => { |
| | | this.areaData = res; |
| | | }) |
| | | .catch(err => this.$message.error(err)) |
| | | }, |
| | | |
| | | methods: { |
| | | handleNodeClick(data) { |
| | | } |
| | | filterTreeNode() { |
| | | this.$refs.department.filter(this.searchArea); |
| | | }, |
| | | |
| | | filterNode(value, data) { |
| | | if (!value) return true; |
| | | return data.regionName.indexOf(value) !== -1; |
| | | }, |
| | | nodeClick(data, node, props) { |
| | | this.$emit('selectedDepartment', data); |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |