Commit d872be9f by 胡锦波

1. init 添加通讯录搜索

2. init 调整企业列表获取
parent 56ff0781
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
import EnterpriseHost from "@/views/service/enterprise-host"; import EnterpriseHost from "@/views/service/enterprise-host";
import { sdkService } from "@/api/sdk-service"; import { sdkService } from "@/api/sdk-service";
import companyService from "@/api/company-service"; import companyService from "@/api/company-service";
import Aside from "@/views/pages/employ-management/address-book/components/aside.vue"; import Aside from "@/views/pages/employ-management/address-book/aside.vue";
import EmployList from "@/views/pages/employ-management/address-book/components/employ-list.vue"; import EmployList from "@/views/pages/employ-management/address-book/employ-list.vue";
@Component({ components: { Aside, EmployList } }) @Component({ components: { Aside, EmployList } })
export default class AddressBook extends Vue { export default class AddressBook extends Vue {
......
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
@click="addDepGroup" @click="addDepGroup"
/> />
</div> </div>
<div>查询之后的列表</div> <div v-show="searchVal">查询之后的列表</div>
<div class="flex-fill"> <div v-show="!searchVal" class="flex-fill">
<div class="el-tree-box"> <div class="el-tree-box">
<el-tree <el-tree
class="el-tree-item old-tree" class="el-tree-item old-tree"
...@@ -56,9 +56,9 @@ ...@@ -56,9 +56,9 @@
private getDepartmentInfo() { private getDepartmentInfo() {
departmentController departmentController
.getDepartment4Tree() .getDepartments()
.then((r: any) => { .then((r: any) => {
this.departments = r; this.departments = r.departments4tree;
}) })
.catch(popupService.toast.error); .catch(popupService.toast.error);
} }
......
<template>
<div class="search-list">
<div class="search-label">员工和分组</div>
<ul>
<li
@click="handleClick(emp.empid)"
:class="emp.empid === activeIndex ? 'active' : ''"
v-for="emp in searchResult.emps"
:key="emp.empid"
>
<i class="item_icon">
<img src="@img/M@2x.png" alt />
</i>
<label>{{ emp.name }}</label>
<span>{{ emp.dptsName }}</span>
</li>
<li
@click="toDept(dept.id)"
:class="dept.id === activeIndex ? 'active' : ''"
v-for="dept in searchResult.depts"
:key="dept.id"
>
<i class="iconfont">&#xe60a;</i>
<label>{{ dept.name }}</label>
</li>
</ul>
</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
@Component({ components: {} })
export default class SearchList extends Vue {
private handleClick(id: string) {
this.$root.$emit("openAddressBookDetail", id);
}
}
</script>
<style lang="less" scoped>
@import "~@/css/variables.less";
</style>
...@@ -3,17 +3,39 @@ import companyService from "@/api/company-service"; ...@@ -3,17 +3,39 @@ import companyService from "@/api/company-service";
import EnterpriseHost from "./enterprise-host"; import EnterpriseHost from "./enterprise-host";
class DepartmentController { class DepartmentController {
public getDepartment4Tree() { private curPoid = "";
private departments4tree = [];
private departments = []
public getDepartments(reload = false) {
const poid = EnterpriseHost.getPoid(); const poid = EnterpriseHost.getPoid();
if (!reload && this.curPoid === poid && this.departments.length > 0) {
const p = {
departments4tree: this.departments4tree,
departments: this.departments
};
return Promise.resolve(p);
}
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.curPoid = poid;
companyService.getDepartment(poid).then((res: any) => { companyService.getDepartment(poid).then((res: any) => {
const ary = res.departments; const ary = res.departments;
this.departments = res.departments;
const r = this.parseMarksTree(ary); const r = this.parseMarksTree(ary);
resolve(r); this.departments4tree = r;
const p = {
departments4tree: this.departments4tree,
departments: this.departments
};
resolve(p);
}).catch(reject); }).catch(reject);
}); });
} }
public reloadDepartments() {
this.getDepartments(true);
}
private parseMarksTree(ary: any[], pid = '0'): any { private parseMarksTree(ary: any[], pid = '0'): any {
if (!Array.isArray(ary)) { if (!Array.isArray(ary)) {
return null; return null;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment