Commit c9c8cd3e by xiaohai

stay back

parent e7eae828
...@@ -44,8 +44,8 @@ ...@@ -44,8 +44,8 @@
</p> </p>
<div class="tree-div"> <div class="tree-div">
<ul class="selected-list"> <ul class="selected-list">
<template v-if="selectedList.length > 0" v-for="li in selectedList"> <template v-if="selectedList.length > 0">
<li class="list group-li" :class="li.groupId ? 'group-li' : 'person-li'" :key="li.id+li.label"> <li v-for="li in selectedList" class="list group-li" :class="li.groupId ? 'group-li' : 'person-li'" :key="li.id+li.label">
<div class="label"> <div class="label">
<i class="iconfont" :class="li.groupId ? 'icon-tongshi-zuzhijiagou' : 'icon-chengyuan'"></i>{{li.label}} <i class="iconfont" :class="li.groupId ? 'icon-tongshi-zuzhijiagou' : 'icon-chengyuan'"></i>{{li.label}}
</div> </div>
...@@ -122,11 +122,33 @@ ...@@ -122,11 +122,33 @@
}; };
}, },
methods: { methods: {
/**
* 获取分组架构
*/
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(treeData, personData) { formatGroupData(treeData, personData) {
let _this = this; let _this = this;
let data = treeData.slice(0); let data = treeData;
let employees = personData.slice(0); let employees = personData;
let copyData = data.slice(0); let copyData = data;
let onlyGroup = _this.onlyGroup; let onlyGroup = _this.onlyGroup;
this.menuData = []; this.menuData = [];
this.defaultOpen = []; this.defaultOpen = [];
...@@ -142,9 +164,6 @@ ...@@ -142,9 +164,6 @@
if (onlyGroup.indexOf(group.groupId) > -1) { if (onlyGroup.indexOf(group.groupId) > -1) {
group.disableOpen = false; group.disableOpen = false;
group.disabled = true; group.disabled = true;
} else {
group.disabled = true;
group.disableOpen = true;
} }
} else { } else {
group.disabled = _this.onlyPerson ? true : group.hasPression == 1 ? false : true; group.disabled = _this.onlyPerson ? true : group.hasPression == 1 ? false : true;
...@@ -160,9 +179,6 @@ ...@@ -160,9 +179,6 @@
if (cG.parentId == group.groupId) { if (cG.parentId == group.groupId) {
arr.push(cG); arr.push(cG);
} }
} else {
cG.disabled = true;
cG.disableOpen = true;
} }
} else { } else {
cG.disabled = _this.onlyPerson ? true : cG.hasPression == 1 ? false : true; cG.disabled = _this.onlyPerson ? true : cG.hasPression == 1 ? false : true;
...@@ -200,6 +216,9 @@ ...@@ -200,6 +216,9 @@
} }
_this.menusObj[group.id] = group; _this.menusObj[group.id] = group;
}); });
if (this.defaultSelection && this.treeSet.dialogVisible) {
this.renderDefault();
}
}, },
/** /**
* 树形菜单选择 * 树形菜单选择
...@@ -257,72 +276,40 @@ ...@@ -257,72 +276,40 @@
submitSelected() { submitSelected() {
this.$emit("handleSelectedList", this.treeSet.isSingle ? this.selectedList[0] : this.selectedList); this.$emit("handleSelectedList", this.treeSet.isSingle ? this.selectedList[0] : this.selectedList);
this.treeSet.dialogVisible = false; this.treeSet.dialogVisible = false;
},
renderDefault() {
let list = this.defaultSelection;
this.$nextTick(() => {
console.log(this.$refs, "this");
this.selectedList = list;
this.$refs.tree.setCheckedNodes(list);
list.forEach(li => {
if (li.employeeClerkId) {
this.defaultOpen = [li.departmentId];
} else {
this.defaultOpen.push(this.menusObj[li.id].parentId);
}
});
});
} }
}, },
mounted() { mounted() {
console.log(this.$refs, "this"); this.getGroupData();
}, },
watch: { watch: {
searchText(newK, old) { searchText(newK, old) {
this.$refs.tree.filter(newK); this.$refs.tree.filter(newK);
}, },
treeData(newData) { treeSet: {
// let treeData = [].concat(JSON.parse(JSON.stringify(newData.treeData))); handler(newValue, oldValue) {
// let personData = [].concat(JSON.parse(JSON.stringify(newData.personData))); if (newValue.dialogVisible) {
this.formatGroupData(newData.treeData, newData.personData); this.renderDefault();
},
treeSet(obj) {
if (obj.dialogVisible) {
this.formatGroupData(this.treeData.treeData, this.treeData.personData);
if (this.defaultSelection) {
let list = this.defaultSelection;
this.$nextTick(() => {
console.log(this.$refs, "this");
this.selectedList = list;
this.$refs.tree.setCheckedNodes(list);
list.forEach(li => {
if (li.employeeClerkId) {
this.defaultOpen = [li.departmentId];
} else {
this.defaultOpen.push(this.menusObj[li.id].parentId);
}
});
});
} }
} },
deep: true
}, },
// defaultSelection(list) {
// console.log(list);
// this.$nextTick(() => {
// console.log(this.$refs, "this");
// this.selectedList = list;
// this.$refs.tree.setCheckedNodes(list);
// list.forEach(li => {
// if (li.employeeClerkId) {
// this.defaultOpen = [li.departmentId];
// } else {
// this.defaultOpen.push(this.menusObj[li.id].parentId);
// }
// });
// });
// },
changed() { changed() {
// this.formatGroupData(this.treeData.treeData, this.treeData.personData); this.getGroupData();
if (this.defaultSelection) {
let list = this.defaultSelection;
this.$nextTick(() => {
console.log(this.$refs, "this");
this.selectedList = list;
this.$refs.tree.setCheckedNodes(list);
list.forEach(li => {
if (li.employeeClerkId) {
this.defaultOpen = [li.departmentId];
} else {
this.defaultOpen.push(this.menusObj[li.id].parentId);
}
});
});
}
} }
} }
}; };
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<el-input v-model="info.name"></el-input> <el-input v-model="info.name"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="手机号" prop="phoneNumber"> <el-form-item label="手机号" prop="phoneNumber">
<el-input v-model="info.phoneNumber"></el-input> <el-input v-model="info.phoneNumber" :disabled="!isNew"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="部门" prop="departmentId"> <el-form-item label="部门" prop="departmentId">
<el-input v-model="info.departmentName" @focus="callGroupSelector" :disabled="disabled" suffix-icon="el-icon-arrow-down"></el-input> <el-input v-model="info.departmentName" @focus="callGroupSelector" :disabled="disabled" suffix-icon="el-icon-arrow-down"></el-input>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
// info: { // info: {
// type: Object, // type: Object,
// required: true // required: true
// } // },
isNew: { isNew: {
type: Boolean, type: Boolean,
default: false default: false
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<el-input v-model="clerkInfo.name"></el-input> <el-input v-model="clerkInfo.name"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="手机号" prop="phoneNumber"> <el-form-item label="手机号" prop="phoneNumber">
<el-input v-model="clerkInfo.phoneNumber"></el-input> <el-input v-model="clerkInfo.phoneNumber" :disabled="!isAddnew"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="门店" prop="storeName"> <el-form-item label="门店" prop="storeName">
<el-input v-model="clerkInfo.storeName" @focus="callSelector"></el-input> <el-input v-model="clerkInfo.storeName" @focus="callSelector"></el-input>
...@@ -39,6 +39,10 @@ export default { ...@@ -39,6 +39,10 @@ export default {
isAddnew: { isAddnew: {
type: Boolean, type: Boolean,
default: false default: false
},
perId: {
type: [String, Number],
default: ""
} }
}, },
components: { components: {
...@@ -167,7 +171,7 @@ export default { ...@@ -167,7 +171,7 @@ export default {
getClerkInfo() { getClerkInfo() {
let ths = this; let ths = this;
let params = { let params = {
id: ths.$route.query.clerkId id: !!ths.$route.query.clerkId ? ths.$route.query.clerkId : ths.perId
}; };
getRequest("/haoban-manage-web/emp/findOne", params) getRequest("/haoban-manage-web/emp/findOne", params)
.then(res => { .then(res => {
...@@ -190,6 +194,12 @@ export default { ...@@ -190,6 +194,12 @@ export default {
console.log(this.isAddnew, "dsdfsed"); console.log(this.isAddnew, "dsdfsed");
if (!this.isAddnew) if (!this.isAddnew)
this.getClerkInfo(); this.getClerkInfo();
},
watch: {
perId(id, ids) {
console.log(id, ids);
this.getClerkInfo(id);
}
} }
}; };
</script> </script>
......
...@@ -10,8 +10,8 @@ ...@@ -10,8 +10,8 @@
<template slot="suffix">{{storeInfo.storeName ? storeInfo.storeName.length : 0}}/20</template> <template slot="suffix">{{storeInfo.storeName ? storeInfo.storeName.length : 0}}/20</template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="所属分组" prop="group"> <el-form-item label="所属分组" prop="departmentName">
<el-input v-model="storeInfo.groupChainName" @focus="callSelector"> <el-input v-model="storeInfo.departmentName" @focus="callSelector">
<i slot="suffix" class="el-input__icon el-icon-arrow-down"></i> <i slot="suffix" class="el-input__icon el-icon-arrow-down"></i>
</el-input> </el-input>
</el-form-item> </el-form-item>
...@@ -178,7 +178,7 @@ export default { ...@@ -178,7 +178,7 @@ export default {
this.treeSet.dialogVisible = true; this.treeSet.dialogVisible = true;
}, },
handleSelectedList(list) { handleSelectedList(list) {
this.storeInfo.groupChainName = list[0].label; this.storeInfo.departmentName = list[0].label;
this.storeInfo.storeGroupId = list[0].id; this.storeInfo.storeGroupId = list[0].id;
}, },
selected(val) { selected(val) {
......
...@@ -15,7 +15,8 @@ ...@@ -15,7 +15,8 @@
<template v-for="(item, idx) in fieldList"> <template v-for="(item, idx) in fieldList">
<el-form-item :label="item.title+':'" class="item-width" :key="item.fieldCode+'_'+idx" :prop="item.fieldCode"> <el-form-item :label="item.title+':'" class="item-width" :key="item.fieldCode+'_'+idx" :prop="item.fieldCode">
<template v-if="showEdit"> <template v-if="showEdit">
<el-input v-model="info[item.fieldCode]" v-if="item.fieldType == 0 || item.fieldType == 6" :placeholder="item.fieldDescription" :disabled="item.fieldCode == 'clerkName' || item.fieldCode == 'clerkPhone'"></el-input> <el-input v-model="info[item.fieldCode]" v-if="item.fieldType == 0" :placeholder="item.fieldDescription" :disabled="item.fieldCode == 'clerkName' || item.fieldCode == 'clerkPhone'"></el-input>
<el-input v-model="info[item.fieldCode]" @change="onNumber(info[item.fieldCode])" v-if="item.fieldType == 6" :placeholder="item.fieldDescription" :disabled="item.fieldCode == 'clerkName' || item.fieldCode == 'clerkPhone'"></el-input>
<el-input v-model="info[item.fieldCode]" v-else-if="item.fieldType == 1" type="textarea" autosize></el-input> <el-input v-model="info[item.fieldCode]" v-else-if="item.fieldType == 1" type="textarea" autosize></el-input>
<template <template
v-else-if="item.fieldType == 2 || item.fieldType == 3"> v-else-if="item.fieldType == 2 || item.fieldType == 3">
...@@ -138,6 +139,9 @@ export default { ...@@ -138,6 +139,9 @@ export default {
}; };
}, },
methods: { methods: {
onNumber(e) {
console.log(e);
},
uploadOnSuccess(res, list) { uploadOnSuccess(res, list) {
console.log(res); console.log(res);
res.file.url = res.res.result[0].qcloudImageUrl; res.file.url = res.res.result[0].qcloudImageUrl;
...@@ -208,6 +212,7 @@ export default { ...@@ -208,6 +212,7 @@ export default {
}); });
}, },
cancelEdit() { cancelEdit() {
this.$refs.cell_form.clearValidate();
let nowObj = this.info; let nowObj = this.info;
let oldObj = this.staticInfo; let oldObj = this.staticInfo;
for (let key in nowObj) { for (let key in nowObj) {
...@@ -225,6 +230,18 @@ export default { ...@@ -225,6 +230,18 @@ export default {
let ths = this; let ths = this;
let obj = {}; let obj = {};
let fields = ths.fieldList; let fields = ths.fieldList;
let onlyNum = (rule, value, callback) => {
if (value) {
let reg = new RegExp("^[0-9]*$");;
if (!reg.test(value * 1)) {
return callback(new Error("请输入数字!"));
} else {
return callback();
}
} else {
return callback();
}
};
fields.forEach(field => { fields.forEach(field => {
let arr = []; let arr = [];
if (!!field.isMust) { if (!!field.isMust) {
...@@ -259,7 +276,7 @@ export default { ...@@ -259,7 +276,7 @@ export default {
} }
} }
if (field.fieldType == 6) { if (field.fieldType == 6) {
arr.push({type: 'number', message: field.fieldName + '必须为数字值'}); arr.push({validator: onlyNum, message: field.fieldName + '必须为数字', trigger: "change"});
} }
obj[field.fieldCode] = arr; obj[field.fieldCode] = arr;
}); });
......
...@@ -20,9 +20,12 @@ ...@@ -20,9 +20,12 @@
<div class="handle-area import" v-if="type == 'import'"> <div class="handle-area import" v-if="type == 'import'">
<div class="step-div" style="margin-bottom :90px;"> <div class="step-div" style="margin-bottom :90px;">
<span class="ft-large"></span>下载员工通讯录模板,统一收集员工信息 <span class="ft-large"></span>下载员工通讯录模板,统一收集员工信息
<a href="http://www.gicdev.com/haoban-manage-web/excel/通讯录-行政架构导入模板.xls" class="d-u-btn"> <!-- <a href="http://www.gicdev.com/haoban-manage-web/excel/通讯录-行政架构导入模板.xls" class="d-u-btn">
<el-button type="primary">下载<i class="iconfont icon-icon_yunxiazai m-l-5"></i></el-button> <el-button type="primary">下载<i class="iconfont icon-icon_yunxiazai m-l-5"></i></el-button>
</a> </a> -->
<a href="#/assets/recordTemplate/1.xlsx" download="通讯录-行政架构导入模板.xlsx">
<el-button type="primary">下载<i class="iconfont icon-icon_yunxiazai m-l-5"></i></el-button>
</a>
</div> </div>
<div class="step-div"> <div class="step-div">
<span class="ft-large"></span>上传收集完毕的员工信息表 <span class="ft-large"></span>上传收集完毕的员工信息表
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<div class="employee-detail-cell"> <div class="employee-detail-cell">
<div class="head-info"> <div class="head-info">
<p class="head-cell"><img :src="info.headPic" class="head-img"></p> <p class="head-cell"><img :src="info.headPic" class="head-img"></p>
<p class="head-cell name">{{info.clerkName}}<span>{{statusList[info.clerkStatus - 1]}}</span></p> <p class="head-cell name">{{info.clerkName}}<span>{{info.clerkStatus == '-1' ? "无状态" : statusList[info.clerkStatus - 1]}}</span></p>
<p class="head-cell c-303133">{{info.groupName}}{{info.positionName}}</p> <p class="head-cell c-303133">{{info.groupName}}{{info.positionName}}</p>
<p class="head-cell">已在{{info.enterpriseName}}工作了{{info.days}}</p> <p class="head-cell">已在{{info.enterpriseName}}工作了{{info.days}}</p>
</div> </div>
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</div> </div>
</template> </template>
</search-menu> </search-menu>
<clerk-info v-if="showEmployee == 'employee'" :clerkInfo="selectedEmployee"></clerk-info> <clerk-info v-if="showEmployee == 'employee'" :perId="perId"></clerk-info>
<store-info ref="store_info" v-else-if="showEmployee == 'store'" :storeInfo="storeInfo"></store-info> <store-info ref="store_info" v-else-if="showEmployee == 'store'" :storeInfo="storeInfo"></store-info>
<div class="sf-right-container common-right-container" <div class="sf-right-container common-right-container"
v-else v-else
...@@ -129,7 +129,7 @@ export default { ...@@ -129,7 +129,7 @@ export default {
storeList: [], storeList: [],
tableView: 1, tableView: 1,
showEmployee: 'node', showEmployee: 'node',
selectedEmployee: {}, perId: "",
storeInfo: {}, storeInfo: {},
disableBtn: true, disableBtn: true,
storeStatus: "", storeStatus: "",
...@@ -159,7 +159,7 @@ export default { ...@@ -159,7 +159,7 @@ export default {
*/ */
handleEmployeeSelection(employee, showEmployee) { handleEmployeeSelection(employee, showEmployee) {
console.log(employee, showEmployee); console.log(employee, showEmployee);
this.selectedEmployee = employee; this.perId = employee.employeeClerkId;
this.showEmployee = showEmployee; this.showEmployee = showEmployee;
}, },
/** /**
......
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
<template slot="suffix">{{storeInfo.storeName ? storeInfo.storeName.length : 0}}/20</template> <template slot="suffix">{{storeInfo.storeName ? storeInfo.storeName.length : 0}}/20</template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="所属分组" prop="groupChainName"> <el-form-item label="所属分组" prop="departmentName">
<el-input v-model="storeInfo.groupChainName" @focus="callSelector"> <el-input v-model="storeInfo.departmentName" @focus="callSelector">
<i slot="suffix" class="el-input__icon el-icon-arrow-down"></i> <i slot="suffix" class="el-input__icon el-icon-arrow-down"></i>
</el-input> </el-input>
</el-form-item> </el-form-item>
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="手机号码" prop="managerPhoneNumber"> <el-form-item label="手机号码" prop="managerPhoneNumber">
<el-input v-model="storeInfo.managerPhoneNumber" :disabled="!isNew"></el-input> <el-input v-model="storeInfo.managerPhoneNumber" :disabled="!isNew && !!storeInfo.managerPhoneNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="店长性别"> <el-form-item label="店长性别">
<el-radio-group v-model="storeInfo.managerSex"> <el-radio-group v-model="storeInfo.managerSex">
...@@ -250,7 +250,7 @@ export default { ...@@ -250,7 +250,7 @@ export default {
this.treeSet.dialogVisible = true; this.treeSet.dialogVisible = true;
}, },
handleSelectedList(list) { handleSelectedList(list) {
this.storeInfo.groupChainName = list[0].label; this.storeInfo.departmentName = list[0].label;
this.storeInfo.storeGroupId = list[0].id; this.storeInfo.storeGroupId = list[0].id;
}, },
selected(val) { selected(val) {
......
...@@ -22,9 +22,12 @@ ...@@ -22,9 +22,12 @@
<div class="handle-area import" v-if="type == 'import'"> <div class="handle-area import" v-if="type == 'import'">
<div class="step-div" style="margin-bottom :90px;"> <div class="step-div" style="margin-bottom :90px;">
<span class="ft-large"></span>下载门店导入模板,批量填写门店信息 <span class="ft-large"></span>下载门店导入模板,批量填写门店信息
<a href="http://www.gicdev.com/haoban-manage-web/excel/通讯录-门店架构导入模板.xlsx" class="d-u-btn"> <!-- <a href="http://www.gicdev.com/haoban-manage-web/excel/通讯录-门店架构导入模板.xlsx" class="d-u-btn">
<el-button type="primary">下载<i class="iconfont icon-icon_yunxiazai m-l-5"></i></el-button> <el-button type="primary">下载<i class="iconfont icon-icon_yunxiazai m-l-5"></i></el-button>
</a> </a> -->
<a href="#/assets/recordTemplate/1.xlsx" download="通讯录-门店架构导入模板.xlsx" class="d-u-btn">
<el-button type="primary">下载<i class="iconfont icon-icon_yunxiazai m-l-5"></i></el-button>
</a>
</div> </div>
<div class="step-div"> <div class="step-div">
<span class="ft-large"></span>上传填写好的门店信息 <span class="ft-large"></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