Commit f19c80e2 by xiaohai

新增部门

parent 19869c27
......@@ -74,10 +74,27 @@
type: Object,
default() {
return {
isSelectPerson: false,
dialogVisible: true
isSelectPerson: true,
dialogVisible: false,
isSingle: false // 是否单选
}
}
},
treeData: {
type: Object,
default() {
return {};
}
},
onlyGroup: {
type: Array,
default() {
return [];
}
},
onlyPerson: {
type: Boolean,
default: false
}
},
data() {
......@@ -97,57 +114,93 @@
/**
* 获取分组架构
*/
getGroupData() {
let _this = this;
let params = {
isStoreGroup: 0
};
getRequest("/haoban-manage-web/dept/deptListForCompany", params)
.then(res => {
let treeData = [];
let personData = [];
if (res.data.errorCode == 1) {
treeData = res.data.result.departmentList || [];
personData = res.data.result.searchList || []
}
_this.formatGroupData(treeData, personData);
})
.catch(e => {
console.log(e, "error");
});
},
// getGroupData() {
// let _this = this;
// let params = {
// isStoreGroup: 0
// };
// getRequest("/haoban-manage-web/dept/deptListForCompany", params)
// .then(res => {
// let treeData = [];
// let personData = [];
// if (res.data.errorCode == 1) {
// treeData = res.data.result.departmentList || [];
// personData = res.data.result.searchList || []
// }
// _this.formatGroupData(treeData, personData);
// })
// .catch(e => {
// console.log(e, "error");
// });
// },
formatGroupData(data, employees = []) {
let copyData = data.slice(0);
let _this = this;
let onlyGroup = _this.onlyGroup;
data.forEach(group => {
group.label = group.name || "";
group.id = group.groupId || "";
group.disableOpen = group.hasPression == 1 ? false : true;
group.disabled = group.hasPression == 1 ? false : true;
let allClerks = [];
let arr = [];
if (onlyGroup.length > 0) {
if (onlyGroup.indexOf(group.groupId) > -1) {
group.disableOpen = false;
group.disabled = true;
} else {
group.disabled = true;
group.disableOpen = true;
}
} else {
group.disabled = _this.onlyPerson ? true : group.hasPression == 1 ? false : true;
}
copyData.forEach(cG => {
cG.label = cG.name || "";
cG.id = cG.groupId || "";
cG.disableOpen = cG.hasPression == 1 ? false : true;
cG.disabled = cG.hasPression == 1 ? false : true;
cG.disableOpen = false;
if (onlyGroup.length > 0) {
if (onlyGroup.indexOf(cG.groupId) > -1) {
cG.disableOpen = false;
cG.disabled = true;
if (cG.parentId == group.groupId) {
arr.push(cG);
}
} else {
cG.disabled = true;
cG.disableOpen = true;
}
} else {
cG.disabled = _this.onlyPerson ? true : cG.hasPression == 1 ? false : true;
if (cG.parentId == group.groupId) {
arr.push(cG);
}
}
});
if (_this.treeSet.isSelectPerson) employees.forEach(person => {
if (_this.treeSet.isSelectPerson && group.hasPression == 1) employees.forEach(person => {
person.label = person.name;
person.id = person.employeeClerkId;
if (person.departmentId == group.groupId) {
arr.push(person);
allClerks.push(person);
}
});
if (arr.length > 0) group.childrens = arr;
group.allClerks = allClerks;
if (onlyGroup.length > 0) {
if (onlyGroup.indexOf(group.groupId) > -1) {
group.hasLoad = true;
_this.defaultOpen.push(group.id);
if (onlyGroup.indexOf(group.parentId) < 0) {
_this.menuData.push(group);
}
}
} else {
if (group.level == 0) {
group.disabled = true;
group.hasLoad = true;
_this.menuData = [group];
_this.defaultOpen.push(group.id);
}
}
});
},
/**
......@@ -162,6 +215,11 @@
getCurrentNode(data, ifChecked) {
data.disableOpen = ifChecked;
this.selectedList = this.$refs.tree.getCheckedNodes();
if (this.treeSet.isSingle && this.selectedList.length > 1) {
let index = this.selectedList.indexOf(data);
this.selectedList.splice(1 - index, 1);
this.$refs.tree.setCheckedNodes(this.selectedList);
}
},
/**
* 节点展开时,禁用复选框
......@@ -173,7 +231,7 @@
* 节点关闭时,取消复选框的禁用
*/
nodeClose(data, node, self) {
data.disabled = false;
data.disabled = this.onlyPerson ? true : data.hasPression != 1;
},
/**
* 关键词搜索
......@@ -199,15 +257,19 @@
* 外抛已选的数据
*/
submitSelected() {
this.$emit("handleSelectedList", this.selectedList);
this.$emit("handleSelectedList", this.treeSet.isSingle ? this.selectedList[0] : this.selectedList);
this.treeSet.dialogVisible = false;
}
},
beforeMount() {
this.getGroupData();
},
// beforeMount() {
// this.getGroupData();
// },
watch: {
searchText(newK, old) {
this.$refs.tree.filter(newK);
},
treeData(newData) {
this.formatGroupData(newData.treeData, newData.personData);
}
}
};
......
......@@ -9,34 +9,6 @@
inactive-color="#DCDFE6">
</el-switch>
<div class="particular-setting" v-if="visibleThere">
<!-- <div>
<div class="setting-name">
个别员工不设置该权限
<a class="J_add a-href"><i class="el-icon-plus"></i>添加</a>
<a class="a-href J_check-detail">查看详情</a>
</div>
<ul class="particular-list">
<li class="item person-item" v-for="(li, index) in visibleApartList" :key="index+'_'+li.employeeClerkId" v-if="index < 14">
<img :src="li.headPic">
<p class="name">{{li.name}}</p>
<i class="el-icon-circle-close" @click="delCurrent(li, 'vaList')"></i>
</li>
</ul>
<p class="check-more" v-if="vsList.length > 14">查看更多</p>
<div class="setting-name">
允许指定部门/人员可见
<a class="J_add a-href"><i class="el-icon-plus"></i>添加</a>
<a class="a-href J_check-detail">查看详情</a>
</div>
<ul class="particular-list">
<li class="item person-item" v-for="(li, index) in visibleSpecialLsit" :key="index+'_'+li.employeeClerkId" v-if="index < 14">
<img :src="li.headPic">
<p class="name">{{index}}{{li.name}}</p>
<i class="el-icon-circle-close" @click="delCurrent(li, 'vsList')"></i>
</li>
</ul>
<p class="check-more" v-if="vsList.length > 14">查看更多</p>
</div> -->
<select-area></select-area>
</div>
</div>
......@@ -80,7 +52,7 @@
},
data() {
return {
visibleThere: false,
visibleThere: true,
visibleSelf: false
};
},
......
......@@ -5,26 +5,35 @@
<el-form
class="department-info-form"
label-position="right"
label-width="100px">
<el-form-item label="部门名称" required>
:rules="rules"
:model="departInfo"
ref="departForm"
label-width="120px">
<el-form-item label="部门名称" prop="name">
<el-input v-model="departInfo.name"></el-input>
</el-form-item>
<el-form-item label="部门排序调整">
<el-input v-model="departInfo.name"></el-input>
<el-form-item label="部门排序调整" prop="parentId">
<el-input :disabled="disabled" v-model="departInfo.parentName" @focus="callGroupSelector" suffix-icon="el-icon-arrow-down"></el-input>
</el-form-item>
</el-form>
</div>
<div class="setting-cell">
<div class="setting-cell" v-if="$route.query.addnew != 1">
<p class="title">权限设置</p>
<permission-setting :visibleApartList="testList" :visibleSpecialLsit="testList" :onlySelfApartList="testList"></permission-setting>
</div>
<div class="setting-cell"></div>
<vue-select-employee></vue-select-employee>
<div class="setting-cell">
<div class="btn-area">
<el-button type="primary" @click="saveEdit">保存</el-button>
<!-- <el-button>取消</el-button> -->
</div>
</div>
<vue-select-employee :treeSet="treeSet" @handleSelectedList="handleSelectedList" :treeData="treeData"></vue-select-employee>
</div>
</template>
<script>
import permissionSetting from "components/contacts/permissionSet/permissionSetting";
import vueSelectEmployee from "components/common/vueSelectEmployee"
import vueSelectEmployee from "components/common/vueSelectEmployee";
import { getRequest, postRequest, postJsonRequest } from '@/api/api';
export default {
name: "addDepartment",
components: {
......@@ -34,10 +43,101 @@
data() {
return {
departInfo: {
name: ""
name: "",
parentName: "",
parentId: ""
},
testList: [],
treeSet: {
isSelectPerson: false,
dialogVisible: false,
isSingle: true // 是否单选
},
testList: []
rules: {
name: [
{ required: true, message: '请输入部门名称', trigger: 'blur' },
{ min: 1, max: 20, message: '长度在 1 到 20 个字符', trigger: 'blur' }
],
parentId: [
{ required: true, message: '请选择父级部门', trigger: 'change' }
]
},
treeData: {},
disabled: true
};
},
methods: {
/**
* 唤起部门选择器
*/
callGroupSelector() {
this.treeSet.dialogVisible = true;
},
/**
* 处理已选部门
*/
handleSelectedList(group) {
console.log(group);
this.departInfo.parentId = group ? group.id : "";
this.departInfo.parentName = group ? group.label : "";
},
saveEdit() {
this.$refs.departForm.validate(valid => {
if (!valid) {
return false;
}
let _this = this;
let params = {
parentId: _this.departInfo.parentId,
name: _this.departInfo.name
}
getRequest("/haoban-manage-web/dept/insert", params)
.then(res => {
console.log(res);
if (res.data.errorCode == 1) {
} else {
_this.$message.error({
duration: 1000,
message: res.data.message
});
}
})
.catch(e => {
_this.$message.error({
duration: 1000,
message: e.message
});
});
});
},
getGroupData() {
let _this = this;
let params = {
isStoreGroup: 0
};
getRequest("/haoban-manage-web/dept/deptListForCompany", params)
.then(res => {
let treeData = [];
let personData = [];
if (res.data.errorCode == 1) {
treeData = res.data.result.departmentList || [];
personData = res.data.result.searchList || []
}
// _this.formatGroupData(treeData, personData);
_this.treeData = {
treeData,
personData
};
_this.disabled = false;
})
.catch(e => {
console.log(e, "error");
});
}
},
beforeMount() {
this.getGroupData();
}
};
</script>
......@@ -61,6 +161,11 @@
width: 380px;
}
}
.btn-area{
width: 100%;
text-align: center;
padding: 12px;
}
}
}
</style>
......
......@@ -15,7 +15,7 @@
<span class="title-span">{{groupInfo.groupName}}{{total}}人)</span>
<span class="id-span">部门ID: {{groupInfo.departmentId}}</span>
<span class="handle-area">
<a :href="'#/addDepartment?departmentId='+groupInfo.departmentId" target="_blank" class="J_add-child a-href">添加子部门</a>
<a :href="'#/addDepartment?addnew=1&departmentId='+groupInfo.departmentId" target="_blank" class="J_add-child a-href">添加子部门</a>
<span class="hurdle"></span>
<a class="J_edit a-href">编辑</a>
</span>
......
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 to comment