Commit 81755be0 by xiaohai

数据联调

parent 3b7b30f3
......@@ -122,11 +122,18 @@
};
},
methods: {
formatGroupData(data, employees = []) {
let copyData = data.slice(0);
formatGroupData(treeData, personData) {
let _this = this;
let data = [].concat(JSON.parse(JSON.stringify(treeData)));
let employees = [].concat(JSON.parse(JSON.stringify(personData)));
let copyData = data.slice(0);
let onlyGroup = _this.onlyGroup;
this.menuData = [];
this.defaultOpen = [];
this.menusObj = {};
data.forEach(group => {
group.allClerks = null;
group.childrens = null;
group.label = group.name || "";
group.id = group.groupId || "";
let allClerks = [];
......@@ -260,20 +267,47 @@
this.$refs.tree.filter(newK);
},
treeData(newData) {
// let treeData = [].concat(JSON.parse(JSON.stringify(newData.treeData)));
// let personData = [].concat(JSON.parse(JSON.stringify(newData.personData)));
this.formatGroupData(newData.treeData, newData.personData);
},
defaultSelection(list) {
this.$nextTick(() => {
console.log(this.$refs, "this");
this.selectedList = list;
this.$refs.tree.setCheckedNodes(list);
list.forEach(li => {
this.defaultOpen.push(this.menusObj[li.id].parentId);
});
});
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);
}
});
});
}
}
},
// 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() {
this.formatGroupData(this.treeData.treeData, this.treeData.personData);
// this.formatGroupData(this.treeData.treeData, this.treeData.personData);
}
}
};
......
......@@ -9,7 +9,7 @@
inactive-color="#DCDFE6">
</el-switch>
<div class="particular-setting" v-if="visibleThere">
<select-area @callPerSelector="callPerSelector" :treeData="treeData"></select-area>
<select-area @callPerSelector="callPerSelector" :treeData="treeData" :butList="butList" :specialList="specialList"></select-area>
</div>
</div>
<div class="only-visivble-self permission-div">
......@@ -20,6 +20,9 @@
active-color="#409EFF"
inactive-color="#DCDFE6">
</el-switch>
<div class="particular-setting" v-if="visibleSelf">
<select-area @callPerSelector="callPerSelector" :treeData="treeData" :butList="selfButList" :specialList="specialList"></select-area>
</div>
</div>
</div>
</template>
......@@ -31,7 +34,19 @@
selectArea
},
props: {
visibleApartList: {
butList: {
type: Array,
default() {
return [];
}
},
specialList: {
type: Array,
default() {
return [];
}
},
selfButList: {
type: Array,
default() {
return [];
......@@ -54,6 +69,12 @@
default() {
return {};
}
},
departInfo: {
type: Object,
default() {
return {}
}
}
},
data() {
......@@ -68,21 +89,23 @@
*/
switchPermission(val, _this, _there) {
val && (this[_there] = !val);
if (this.visibleSelf) {
this.departInfo.type = 2;
} else if (this.visibleThere) {
this.departInfo.type = 1;
} else {
this.departInfo.type = "";
}
},
callPerSelector(type, list) {
this.$emit("callPerSelector", type, list);
}
},
computed: {
vaList() {
return this.visibleApartList;
},
vsList() {
return this.visibleSpecialLsit;
},
osaList() {
return this.onlySelfApartList;
}
mounted() {
console.log(this.departInfo);
let type = this.departInfo.type;
this.visibleThere = !!type == 1;
this.visibleSelf = !!type == 2;
}
};
</script>
......
......@@ -2,8 +2,6 @@
<div class="select-area">
<div class="setting-name">
个别员工不设置该权限
<!-- <a class="J_add a-href" @click="treeSet.dialogVisible = true;"><i class="el-icon-plus"></i>添加</a>
<a class="a-href J_check-detail">查看详情</a> -->
</div>
<ul class="particular-list">
<template v-for="(li, index) in butList">
......@@ -21,24 +19,23 @@
</ul>
<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>
<!-- <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">
<template v-for="(li, index) in vipList">
<template v-for="(li, index) in specialList">
<li class="item person-item" v-if="li.employeeClerkId" :key="index+'_'+li.employeeClerkId">
<img :src="li.headPic">
<p class="name">{{li.label}}</p>
<i class="el-icon-circle-close" @click="delCurrent(li, 'vipList')"></i>
<i class="el-icon-circle-close" @click="delCurrent(li, 'specialList')"></i>
</li>
<li class="item group-item" v-else :key="index+'_'+li.groupId">
{{li.label}}
<i class="el-icon-circle-close" @click="delCurrent(li, 'vipList')"></i>
<i class="el-icon-circle-close" @click="delCurrent(li, 'specialList')"></i>
</li>
</template>
<li class="item J_add-btn" @click="callSelector"><i class="el-icon-plus"></i></li>
<li class="item J_add-btn" @click="callSelector('special', specialList)"><i class="el-icon-plus"></i></li>
</ul>
<!-- <vue-select-employee ref="butSelector" :treeSet="treeSet" @handleSelectedList="handleSelectedList" :treeData="groupData"></vue-select-employee> -->
</div>
</template>
<script>
......@@ -55,18 +52,22 @@ export default {
default() {
return {};
}
},
butList: {
type: Array,
default() {
return [];
}
},
specialList: {
type: Array,
default() {
return [];
}
}
},
data() {
return {
testList: [],
treeSet: {
isSelectPerson: true,
dialogVisible: false
},
butList: [],
vipList: [],
groupData: {}
};
},
......@@ -96,8 +97,6 @@ export default {
},
watch: {
treeData(data) {
console.log(data);
this.groupData = data;
}
}
};
......@@ -148,6 +147,7 @@ export default {
border-radius:4px;
font-size:12px;
color:rgba(64,158,255,1);
margin-top: 34px;
}
&.J_add-btn {
height:40px;
......
......@@ -6,7 +6,7 @@
:visible.sync="dialogVisible">
<p>请输入品牌名称</p>
<el-input v-model="brandName" class="m-t-20"></el-input>
<p class="danger-tip">
<!-- <p class="danger-tip">
<i class="el-icon-info"></i>
下列两项选择后将无法修改,请谨慎选择
</p>
......@@ -27,15 +27,16 @@
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-select> -->
<div class="btn-box t-rt m-t-20 m-b-10">
<el-button @click="dialogVisible = false;">取消</el-button>
<el-button type="primary">确定</el-button>
<el-button type="primary" @click="saveFn">确定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getRequest } from '@/api/api';
export default {
name: "add-brand-dialog",
data() {
......@@ -66,6 +67,36 @@
],
brand: ""
};
},
methods: {
saveFn() {
if (!this.brandName) {
this.$message.error({
message: "请输入品牌名称"
});
} else {
let ths = this;
let params = {
name: ths.brandName
};
getRequest("/haoban-manage-web/brand/insert", params)
.then(res => {
if (res.data.errorCode == 1) {
console.log(res);
ths.$emit("addSuccess");
} else {
ths.$message.error({
message: res.data.message
});
}
})
.catch(e => {
ths.$message.error({
message: e.message
});
});
}
}
}
};
</script>
......
......@@ -67,8 +67,8 @@
</el-form-item>
<el-form-item label="门店地址">
<vue-office-area :areaOptions="areaOptions" @selected="selected" projectName="haoban-web" postUrl="/api-admin/dict-district-list"></vue-office-area>
<el-input v-model="areaOptions.postAddress">
<template slot="suffix">{{(areaOptions.postAddress || "").length}}/50</template>
<el-input v-model="storeInfo.postAddress">
<template slot="suffix">{{(storeInfo.postAddress || "").length}}/50</template>
</el-input>
</el-form-item>
<el-form-item label="GPS坐标">
......@@ -97,12 +97,12 @@
</el-input>
</el-form-item>
<el-form-item label="手机号码" prop="phone">
<el-input v-model="storeInfo.managerPhoneNumber"></el-input>
<el-input v-model="storeInfo.managerPhoneNumber" disabled></el-input>
</el-form-item>
<el-form-item label="店长性别">
<el-radio-group v-model="storeInfo.managerSex">
<el-radio label="1"></el-radio>
<el-radio label="2"></el-radio>
<el-radio :label="1"></el-radio>
<el-radio :label="2"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="店长代码">
......@@ -154,16 +154,16 @@ export default {
storeInfo: {
type: Object,
default() {
return {
groupChainName: ""
};
return {};
}
}
},
data() {
return {
areaChainName: "",
location: ""
location: "",
areaOptions: {},
imgs: []
};
},
methods: {
......@@ -171,7 +171,6 @@ export default {
this.$refs.storeSelector.treeSet.dialogVisible = true;
},
handleSelectedList(list) {
console.log(list);
this.storeInfo.groupChainName = list[0].label;
this.storeInfo.storeGroupId = list[0].id;
},
......@@ -188,16 +187,17 @@ export default {
let locationArr = that.location.split(",");
that.storeInfo.longitude = locationArr[0];
that.storeInfo.latitude = locationArr.length !== 2 ? "" : locationArr[1];
that.storeInfo.postAddress = that.areaOptions.postAddress;
that.storeInfo.managerPhone = that.storeInfo.managerPhoneNumber;
that.storeInfo.areaChainName = that.areaChainName;
that.storeInfo.areaChainName = that.areaOptions.provinceName + "/" + that.areaOptions.cityName + "/" + that.areaOptions.countryName;
let params = that.storeInfo;
console.log(params, "params");
getRequest("/haoban-manage-web/store/update", params)
.then(res => {
console.log(res, "eidt result");
if (res.data.errorCode == 1) {
that.$message.success({
message: "操作成功!"
});
} else {
that.$message.error({
message: res.data.message
......@@ -209,26 +209,26 @@ export default {
message: e.message
});
});
}
},
computed: {
areaOptions() {
},
formatStoreInfo(obj) {
let ths = this;
let arr = (ths.storeInfo.areaChainName || "").split("/");
return {
let arr = (obj.areaChainName || "").split("/");
ths.areaOptions = {
provinceName: arr[0],
provinceId: ths.provinceId,
provinceId: obj.provinceId,
cityName: arr[1],
cityId: ths.cityId,
cityId: obj.cityId,
countryName: arr[2],
countyId: ths.countyId
countyId: obj.countyId
};
},
imgs() {
console.log(this.storeInfo.imageUrl, !!this.storeInfo.imageUrl);
return !this.storeInfo.imageUrl ? [] : this.storeInfo.imageUrl.split(",");
ths.imgs = !obj.imageUrl ? [] : obj.imageUrl.split(",");
ths.location = obj.longitude + "," + obj.latitude;
console.log( ths.areaOptions , ths.storeInfo, "ssss");
}
},
mounted() {
this.formatStoreInfo(this.storeInfo);
},
watch: {
$route(to) {
......
......@@ -78,7 +78,13 @@ export default {
parentId: _this.departInfo.parentId,
name: _this.departInfo.name
}
let url = _this.isAddNew ? "/haoban-manage-web/dept/insert" : "/haoban-manage-web/department/update";
let url = "";
if (_this.isAddNew) {
url = "/haoban-manage-web/dept/insert";
} else {
url = "/haoban-manage-web/dept/update";
params.groupId = _this.$route.query.groupId;
}
getRequest(url, params)
.then(res => {
console.log(res);
......
......@@ -15,16 +15,16 @@
<span class="title-span">{{groupInfo.groupName}}{{total}}人)</span>
<span class="id-span">部门ID: {{groupInfo.departmentId}}</span>
<span class="handle-area">
<a :href="'#/addDepartment?addnew=1&departmentId='+groupInfo.departmentId" class="J_add-child a-href">添加子部门</a>
<el-button @click="addSon" class="no-bdr-btn" :disabled="groupInfo.hasPression != 1">添加子分组</el-button>
<span class="hurdle"></span>
<a :href="'#/addDepartment?departmentId='+groupInfo.departmentId" class="J_edit a-href">编辑</a>
<el-button @click="goToEdit(groupInfo.level)" :href="'#/addGroup?groupId='+groupInfo.departmentId" :disabled="groupInfo.hasPression != 1" class="no-bdr-btn">编辑</el-button>
</span>
</div>
<div class="af-right-button-box">
<a :href="'#/employee?addnew=1&departmentId='+groupInfo.departmentId">
<el-button type="primary">添加成员</el-button>
</a>
<a><el-button>批量导入/导出</el-button></a>
<a :href="'#/employeeIo?departmentId='+groupInfo.departmentId"><el-button>批量导入/导出</el-button></a>
<el-button type="danger" plain @click="delMembers" :disabled="disabledDel">批量删除</el-button>
<el-button class="J_show-children"><el-checkbox class="m-r-10" v-model="showChildMember" @change="setChildMemberShow"></el-checkbox><a class="a-href">显示子成员</a></el-button>
</div>
......@@ -90,7 +90,15 @@
this.currentPage = val;
this.getEmployee();
},
// 跳转添加子部门页面
addSon() {
location.href = '#/addDepartment?addnew=1&departmentId='+this.groupInfo.departmentId;
},
// 跳转编辑部门页面
goToEdit(level) {
let type = level == 0 ? "company" : "group";
location.href = '#/addDepartment?departmentId='+this.groupInfo.departmentId+'&type='+type;
},
/**
* 树形菜单搜索
*/
......@@ -117,6 +125,8 @@
this.groupInfo.departmentId = obj.groupId;
this.groupInfo.groupName = obj.name;
this.showEmployee = showEmployee;
this.groupInfo.hasPression = obj.hasPression;
this.groupInfo.level = obj.level;
this.loading = true;
this.getEmployee();
},
......@@ -262,6 +272,15 @@
margin: 0 10px;
vertical-align: sub;
}
.no-bdr-btn {
background: none;
color: #409EFF;
border: none;
}
.el-button.is-disabled, .el-button.is-disabled:hover, .el-button.is-disabled:focus {
background: none;
color: #c0c4cc;
}
}
}
.af-right-button-box {
......
......@@ -17,11 +17,11 @@
<el-radio-button label="note">错误记录</el-radio-button>
</el-radio-group>
<div class="handle-area import">
<el-steps direction="vertical" :active="2" style="height: 200px;">
<!-- <el-steps direction="vertical" :active="2" style="height: 200px;">
<el-step>
<template slot="title">
<div>
下载员工通讯录模板,统一收集员工信息<span class="download-btn">下载<i class="iconfont icon-icon_yunxiazai"></i></span>
下载员工通讯录模板,统一收集员工信息<a href="http://www.gicdev.com/haoban-manage-web/excel/通讯录-行政架构导入模板.xls"><span class="download-btn">下载<i class="iconfont icon-icon_yunxiazai"></i></span></a>
</div>
</template>
<el-button type="primary">下载<i class="iconfont icon-icon_yunxiazai"></i></el-button>
......@@ -37,7 +37,20 @@
</div>
</template>
</el-step>
</el-steps>
</el-steps> -->
<div class="step-div" style="margin-bottom :90px;">
<span class="ft-large"></span>下载员工通讯录模板,统一收集员工信息
<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>
</a>
</div>
<div class="step-div">
<span class="ft-large"></span>上传收集完毕的员工信息表
<div class="d-u-btn m-t-30">
<el-button type="primary">选择文件</el-button>
<p class="warming">文件格式必须为xls或xlsx格式</p>
</div>
</div>
<div class="up-btn-div">
<el-button type="primary">上传</el-button>
</div>
......@@ -103,39 +116,57 @@ export default {
border-radius:4px;
padding: 25px 20px;
margin-top: 24px;
.el-step__title {
font-size:16px;
font-family:PingFangSC-Regular;
font-weight:400;
color:rgba(96,98,102,1);
.download-btn {
display: inline-block;
width:89px;
height:36px;
background:rgba(64,158,255,1);
border-radius:4px;
color: #fff;
text-align: center;
line-height: 36px;
color: #606266;
.step-div {
.d-u-btn {
display:inline-block;
margin-left: 10px;
cursor: pointer;
.iconfont {
margin-left: 5px;
vertical-align: middle;
.warming {
font-size:12px;
font-weight:400;
color:rgba(96,98,102,1);
line-height:30px;
margin-top: 5px;
}
}
.warming {
font-size:12px;
font-weight:400;
color:rgba(96,98,102,1);
.ft-large {
font-size: 20px;
margin-right: 10px;
color: #909399;
}
}
.el-step__head.is-finish {
color: rgba(96,98,102,1);
border-color: rgba(96,98,102,1);
}
// .el-step__title {
// font-size:16px;
// font-family:PingFangSC-Regular;
// font-weight:400;
// color:rgba(96,98,102,1);
// .download-btn {
// display: inline-block;
// width:89px;
// height:36px;
// background:rgba(64,158,255,1);
// border-radius:4px;
// color: #fff;
// text-align: center;
// line-height: 36px;
// margin-left: 10px;
// cursor: pointer;
// .iconfont {
// margin-left: 5px;
// }
// }
// .warming {
// font-size:12px;
// font-weight:400;
// color:rgba(96,98,102,1);
// }
// }
// .el-step__head.is-finish {
// color: rgba(96,98,102,1);
// border-color: rgba(96,98,102,1);
// }
.up-btn-div {
height: 100px;
line-height: 100px;
text-align: center;
margin-top: 20px;
}
......
<template>
<div class="store-estrutura-container">
<search-menu
ref="searchMenu"
:storeFrame="true"
:treeData="menuData"
:searchResult="searchResult"
......@@ -22,7 +23,7 @@
</template>
</search-menu>
<clerk-info v-if="showEmployee == 'employee'" :clerkInfo="selectedEmployee"></clerk-info>
<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"
v-else
v-loading="loading">
......@@ -30,9 +31,11 @@
<span class="title-span">{{groupInfo.groupName}}({{total}}家)</span>
<span class="id-span">部门ID: {{groupInfo.departmentId}}</span>
<span class="handle-area">
<a :href="'#/addGroup?addnew=1&groupId='+groupInfo.departmentId" class="J_add-child a-href">添加子分组</a>
<span class="hurdle"></span>
<a class="J_edit a-href" :href="'#/addGroup?groupId='+groupInfo.departmentId">编辑</a>
<el-button @click="addSon" class="no-bdr-btn" :disabled="groupInfo.hasPression != 1">添加子分组</el-button>
<template v-if="groupInfo.level != 0">
<span class="hurdle"></span>
<el-button @click="goToEdit(groupInfo.level)" :href="'#/addGroup?groupId='+groupInfo.departmentId" :disabled="groupInfo.hasPression != 1" class="no-bdr-btn">编辑</el-button>
</template>
</span>
</div>
<div class="tab-div">
......@@ -60,7 +63,7 @@
</el-pagination>
</div>
</div>
<add-brand ref="add_brand"></add-brand>
<add-brand ref="add_brand" @addSuccess="addSuccess"></add-brand>
</div>
</template>
<script>
......@@ -137,6 +140,18 @@ export default {
addBrand() {
this.$refs.add_brand.dialogVisible = true;
},
// 跳转添加子部门页面
addSon() {
location.href = '#/addGroup?addnew=1&groupId='+this.groupInfo.departmentId;
},
// 跳转编辑部门页面
goToEdit(level) {
let type = level == 0 ? "brand" : "group";
location.href = '#/addGroup?groupId='+this.groupInfo.departmentId+'&type='+type;
},
addSuccess() {
this.getGroupData();
},
/**
* 树形搜索结果选门店处理
*/
......@@ -148,6 +163,7 @@ export default {
console.log(res, "storeInfo");
if (res.data.errorCode == 1) {
that.storeInfo = res.data.result;
// that.$refs.store_info.formatStoreInfo(res.data.result);
that.showEmployee = "store";
} else {
that.$message.error({
......@@ -268,6 +284,8 @@ export default {
this.groupInfo.departmentId = obj.groupId;
this.groupInfo.groupName = obj.name;
this.showEmployee = showEmployee;
this.groupInfo.hasPression = obj.hasPression;
this.groupInfo.level = obj.level;
this.getStoreList();
},
/**
......@@ -294,6 +312,16 @@ export default {
};
</script>
<style lang="scss">
.handle-area {
.no-bdr-btn {
background: none;
color: #409EFF;
border: none;
}
.el-button.is-disabled, .el-button.is-disabled:hover, .el-button.is-disabled:focus {
background: none;
color: #c0c4cc;
}
}
</style>
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