feature_0521
zhenghuang 6 years ago
parent f19cd852a2
commit 3e4f825467

@ -1,193 +1,194 @@
<template> <template>
<div> <div>
<Tabs active-key="key1" @on-click="onTabClick"> <Tabs active-key="key1"
<Tab-pane label="待审核" key="key1"> @on-click="onTabClick">
<Tab-pane label="待审核"
key="key1">
<Row class="search-row"> <Row class="search-row">
<i-col span="24" class="search-col"> <i-col span="24"
class="search-col">
<Row class="row-style"> <Row class="row-style">
<i-input placeholder="请输入推广员姓名或手机号" class="search-select" v-model="searchShop" /> <i-input placeholder="请输入推广员姓名或手机号"
class="search-select"
v-model="searchShop" />
<span class="search-span">选择日期</span> <span class="search-span">选择日期</span>
<DatePicker <DatePicker :value="selectDate"
:value="selectDate" type="daterange"
type="daterange" split-panels
split-panels placeholder="请选择日期"
placeholder="请选择日期" @on-change="onChangeDateLister"
@on-change="onChangeDateLister" class="date-picker"></DatePicker>
class="date-picker"
></DatePicker>
<span class="search-span">零售公司</span> <span class="search-span">零售公司</span>
<Select <Select v-model="companyId"
v-model="companyId" filterable
filterable class="search-select"
class="search-select" @on-change="companySelect">
@on-change="companySelect" <Option v-for="(item,index) in companyList"
> :value="item.id"
<Option :key="index + item.id">{{ item.name }}</Option>
v-for="(item,index) in companyList"
:value="item.id"
:key="index + item.id"
>{{ item.name }}</Option>
</Select> </Select>
<span class="search-span">店铺</span> <span class="search-span">店铺</span>
<Select v-model="selectedStore" filterable class="search-select"> <Select v-model="selectedStore"
<Option filterable
v-for="(item,index) in shopList" class="search-select">
:value="item.id" <Option v-for="(item,index) in shopList"
:key="index + item.id" :value="item.id"
>{{ item.name }}</Option> :key="index + item.id">{{ item.name }}</Option>
</Select> </Select>
<Button type="primary" @click="searchCustomerDataBtnClick" class="search-btn">查询</Button> <Button type="primary"
@click="searchCustomerDataBtnClick"
class="search-btn">查询</Button>
</Row> </Row>
</i-col> </i-col>
</Row> </Row>
<Table <Table ref="table"
ref="table" :loading="loading"
:loading="loading" :columns="columns1"
:columns="columns1" :data="data1"
:data="data1" class="table-store"
class="table-store" size="small"
size="small" @on-row-dblclick="onDblClickRowLister">
@on-row-dblclick="onDblClickRowLister" <template slot="action"
> slot-scope="{row}">
<template slot="action" slot-scope="{row}">
<i-col span="12"> <i-col span="12">
<Button type="success" class="router-btn" @click="() => {passShow(row)}">审核通过</Button> <Button type="success"
class="router-btn"
@click="() => {passShow(row)}">审核通过</Button>
</i-col> </i-col>
<i-col span="12"> <i-col span="12">
<Button type="error" class="router-btn" @click="() => {refuseShow(row)}">审核不通过</Button> <Button type="error"
class="router-btn"
@click="() => {refuseShow(row)}">审核不通过</Button>
</i-col> </i-col>
</template> </template>
</Table> </Table>
</Tab-pane> </Tab-pane>
<Tab-pane label="通过审核" key="key2"> <Tab-pane label="通过审核"
key="key2">
<Row class="search-row"> <Row class="search-row">
<i-col span="24" class="search-col"> <i-col span="24"
class="search-col">
<Row class="row-style"> <Row class="row-style">
<i-input placeholder="请输入推广员姓名或手机号" class="search-select" v-model="searchShop" /> <i-input placeholder="请输入推广员姓名或手机号"
class="search-select"
v-model="searchShop" />
<span class="search-span">选择日期</span> <span class="search-span">选择日期</span>
<DatePicker <DatePicker v-model="date"
v-model="date" class="left-15 date-picker"
class="left-15 date-picker" type="date"
type="date" placement="bottom-start"
placement="bottom-start" split-panels
split-panels placeholder="请选择日期"></DatePicker>
placeholder="请选择日期"
></DatePicker>
<span class="search-span">零售公司</span> <span class="search-span">零售公司</span>
<Select <Select v-model="companyId"
v-model="companyId" filterable
filterable class="search-select"
class="search-select" @on-change="companySelect">
@on-change="companySelect" <Option v-for="(item,index) in companyList"
> :value="item.id"
<Option :key="index + item.id">{{ item.name }}</Option>
v-for="(item,index) in companyList"
:value="item.id"
:key="index + item.id"
>{{ item.name }}</Option>
</Select> </Select>
<span class="search-span">店铺</span> <span class="search-span">店铺</span>
<Select v-model="selectedStore" filterable class="search-select"> <Select v-model="selectedStore"
<Option filterable
v-for="(item,index) in shopList" class="search-select">
:value="item.id" <Option v-for="(item,index) in shopList"
:key="index + item.id" :value="item.id"
>{{ item.name }}</Option> :key="index + item.id">{{ item.name }}</Option>
</Select> </Select>
<Button type="primary" @click="searchCustomerDataBtnClick" class="search-btn">查询</Button> <Button type="primary"
@click="searchCustomerDataBtnClick"
class="search-btn">查询</Button>
</Row> </Row>
</i-col> </i-col>
</Row> </Row>
<Table <Table ref="table1"
ref="table" :loading="loading"
:loading="loading" :columns="columns2"
:columns="columns2" :data="data2"
:data="data2" class="table-store"
class="table-store" size="small"
size="small" @on-row-dblclick="onDblClickRowLister"></Table>
@on-row-dblclick="onDblClickRowLister"
></Table>
</Tab-pane> </Tab-pane>
<Tab-pane label="审核未通过" key="key3"> <Tab-pane label="审核未通过"
key="key3">
<Row class="search-row"> <Row class="search-row">
<i-col span="24" class="search-col"> <i-col span="24"
class="search-col">
<Row class="row-style"> <Row class="row-style">
<i-input placeholder="请输入推广员姓名或手机号" class="search-select" v-model="searchShop" /> <i-input placeholder="请输入推广员姓名或手机号"
class="search-select"
v-model="searchShop" />
<span class="search-span">选择日期</span> <span class="search-span">选择日期</span>
<DatePicker <DatePicker v-model="date"
v-model="date" class="left-15 date-picker"
class="left-15 date-picker" type="date"
type="date" placement="bottom-start"
placement="bottom-start" split-panels
split-panels placeholder="请选择日期"></DatePicker>
placeholder="请选择日期"
></DatePicker>
<span class="search-span">零售公司</span> <span class="search-span">零售公司</span>
<Select <Select v-model="companyId"
v-model="companyId" filterable
filterable class="search-select"
class="search-select" @on-change="companySelect">
@on-change="companySelect" <Option v-for="(item,index) in companyList"
> :value="item.id"
<Option :key="index + item.id">{{ item.name }}</Option>
v-for="(item,index) in companyList"
:value="item.id"
:key="index + item.id"
>{{ item.name }}</Option>
</Select> </Select>
<span class="search-span">店铺</span> <span class="search-span">店铺</span>
<Select v-model="selectedStore" filterable class="search-select"> <Select v-model="selectedStore"
<Option filterable
v-for="(item,index) in shopList" class="search-select">
:value="item.id" <Option v-for="(item,index) in shopList"
:key="index + item.id" :value="item.id"
>{{ item.name }}</Option> :key="index + item.id">{{ item.name }}</Option>
</Select> </Select>
<Button type="primary" @click="searchCustomerDataBtnClick" class="search-btn">查询</Button> <Button type="primary"
@click="searchCustomerDataBtnClick"
class="search-btn">查询</Button>
</Row> </Row>
</i-col> </i-col>
</Row> </Row>
<Table <Table ref="table2"
ref="table" :loading="loading"
:loading="loading" :columns="columns3"
:columns="columns3" :data="data3"
:data="data3" class="table-store"
class="table-store" size="small"
size="small" @on-row-dblclick="onDblClickRowLister"></Table>
@on-row-dblclick="onDblClickRowLister"
></Table>
</Tab-pane> </Tab-pane>
</Tabs> </Tabs>
<!-- 拒绝 --> <!-- 拒绝 -->
<Modal <Modal v-model="refuseIsShow"
v-model="refuseIsShow" :title="showStoreName"
:title="showStoreName" :footer-hide="true"
:footer-hide="true" width="600"
width="600" class-name="vertical-center-modal"
class-name="vertical-center-modal" @on-ok="ok">
@on-ok="ok"
>
<div slot="header"> <div slot="header">
<p>审核不通过原因</p> <p>审核不通过原因</p>
</div> </div>
<div> <div>
<i-input v-model="remark" type="textarea" :rows="4" placeholder="请填写审核不通过原因"></i-input> <i-input v-model="remark"
type="textarea"
:rows="4"
placeholder="请填写审核不通过原因"></i-input>
</div> </div>
<div style="margin-top:20px;text-align: center;"> <div style="margin-top:20px;text-align: center;">
<Button ghost type="primary" @click="refuse(rowData)"></Button> <Button ghost
type="primary"
@click="refuse(rowData)">确定</Button>
</div> </div>
</Modal> </Modal>
<!-- 升级 --> <!-- 升级 -->
<Modal <Modal v-model="passIsShow"
v-model="passIsShow" :title="showStoreName"
:title="showStoreName" :footer-hide="true"
:footer-hide="true" width="600"
width="600" class-name="vertical-center-modal"
class-name="vertical-center-modal" @on-ok="ok">
@on-ok="ok"
>
<div slot="header"> <div slot="header">
<p style="text-align: center;">确认审核</p> <p style="text-align: center;">确认审核</p>
</div> </div>
@ -196,20 +197,20 @@
</div> </div>
<div style="margin-top:20px;text-align: center;"> <div style="margin-top:20px;text-align: center;">
<Button @click="cancel(rowData)"></Button> <Button @click="cancel(rowData)"></Button>
<Button style="margin-left:20px" type="primary" @click="confirm(rowData)"></Button> <Button style="margin-left:20px"
type="primary"
@click="confirm(rowData)">确定</Button>
</div> </div>
</Modal> </Modal>
<Page <Page :total="total"
:total="total" :current="pageNum"
:current="pageNum" :page-size="pageSize"
:page-size="pageSize" show-elevator
show-elevator show-total
show-total placement="top"
placement="top" @on-change="handlePage"
@on-change="handlePage" class-name="ks-page"></Page>
class-name="ks-page"
></Page>
</div> </div>
</template> </template>
@ -221,7 +222,7 @@ import bulletinService from "../../services/recruit/Bulletin";
export default { export default {
name: "", name: "",
data() { data () {
return { return {
tabIndex: 0, tabIndex: 0,
userId: JSON.parse(sessionStorage.getItem("loginInfo")).userId, userId: JSON.parse(sessionStorage.getItem("loginInfo")).userId,
@ -268,6 +269,13 @@ export default {
return h("span", params.row.promoterInfo.phone); return h("span", params.row.promoterInfo.phone);
} }
}, },
{
title: "推广员身份证号",
width: 120,
render: (h, params) => {
return h("span", params.row.promoterInfo.idNo);
}
},
{ {
title: "零售公司", title: "零售公司",
width: 150, width: 150,
@ -343,6 +351,13 @@ export default {
return h("span", params.row.promoterInfo.phone); return h("span", params.row.promoterInfo.phone);
} }
}, },
{
title: "推广员身份证号",
width: 120,
render: (h, params) => {
return h("span", params.row.promoterInfo.idNo);
}
},
{ {
title: "零售公司", title: "零售公司",
width: 150, width: 150,
@ -378,7 +393,7 @@ export default {
return h("span", params.row.fissionUser.name); return h("span", params.row.fissionUser.name);
} }
}, },
{ {
title: "加入时间", title: "加入时间",
width: 120, width: 120,
render: (h, params) => { render: (h, params) => {
@ -421,6 +436,13 @@ export default {
return h("span", params.row.promoterInfo.phone); return h("span", params.row.promoterInfo.phone);
} }
}, },
{
title: "推广员身份证号",
width: 120,
render: (h, params) => {
return h("span", params.row.promoterInfo.idNo);
}
},
{ {
title: "零售公司", title: "零售公司",
width: 150, width: 150,
@ -456,7 +478,7 @@ export default {
return h("span", params.row.fissionUser.name); return h("span", params.row.fissionUser.name);
} }
}, },
{ {
title: "加入时间", title: "加入时间",
width: 120, width: 120,
render: (h, params) => { render: (h, params) => {
@ -474,7 +496,7 @@ export default {
title: "审核不通过原因", title: "审核不通过原因",
width: 120, width: 120,
render: (h, params) => { render: (h, params) => {
return h("span",params.row.fissionUser.remark); return h("span", params.row.remark);
} }
} }
], ],
@ -485,7 +507,7 @@ export default {
remark: null remark: null
}; };
}, },
mounted: function() { mounted: function () {
// let startDate = this.$moment().format("YYYY-MM-DD"); // let startDate = this.$moment().format("YYYY-MM-DD");
// let endDate = this.$moment().format("YYYY-MM-DD"); // let endDate = this.$moment().format("YYYY-MM-DD");
// this.selectDate.push(startDate); // this.selectDate.push(startDate);
@ -495,17 +517,17 @@ export default {
this.getRecruitList(); this.getRecruitList();
}, },
methods: { methods: {
onChangeDateLister(date) { onChangeDateLister (date) {
console.log(date); console.log(date);
this.selectDate = date; this.selectDate = date;
}, },
/**基础数据区域list、零售公司list、客户list*/ /**基础数据区域list、零售公司list、客户list*/
getSelectList: function() { getSelectList: function () {
let that = this; let that = this;
let request = { let request = {
userId: this.userId userId: this.userId
}; };
zeroExtend.getSelectListRequest(request, function(data) { zeroExtend.getSelectListRequest(request, function (data) {
if (data.data.code !== "0000") { if (data.data.code !== "0000") {
that.$Message.error("系统异常"); that.$Message.error("系统异常");
} }
@ -521,7 +543,7 @@ export default {
}); });
}, },
// //
insertAllOption: function() { insertAllOption: function () {
if (this.companyList.length === 0 || this.companyList[0].id !== 0) { if (this.companyList.length === 0 || this.companyList[0].id !== 0) {
this.companyList.splice(0, 0, { id: 0, name: "全部" }); this.companyList.splice(0, 0, { id: 0, name: "全部" });
} }
@ -530,7 +552,7 @@ export default {
} }
}, },
// //
downShopData: function(selected) { downShopData: function (selected) {
let that = this; let that = this;
let companyId = selected; let companyId = selected;
if (!selected) { if (!selected) {
@ -552,7 +574,7 @@ export default {
userId: that.userId, userId: that.userId,
customerIds: JSON.stringify(customerIds) customerIds: JSON.stringify(customerIds)
}; };
staff.downShopData(request, function(data) { staff.downShopData(request, function (data) {
data = data.data.results; data = data.data.results;
if (data) { if (data) {
that.shopList = [{ id: 0, name: "全部" }]; that.shopList = [{ id: 0, name: "全部" }];
@ -566,38 +588,38 @@ export default {
}); });
}, },
// //
companySelect: function() { companySelect: function () {
// //
this.downShopData(this.companyId); this.downShopData(this.companyId);
this.selectedStore = 0; this.selectedStore = 0;
}, },
downCompanyChange: function(formValidate) { downCompanyChange: function (formValidate) {
this.downShopData(formValidate.departIds); this.downShopData(formValidate.departIds);
}, },
searchCustomerDataBtnClick: function() { searchCustomerDataBtnClick: function () {
this.pageNum = 1; this.pageNum = 1;
this.getRecruitList(); this.getRecruitList();
}, },
// row // row
onDblClickRowLister: function(row) { onDblClickRowLister: function (row) {
this.$router.push({ this.$router.push({
path: "/shop/increase/manager/staff", path: "/shop/increase/manager/staff",
query: { storeId: row.id } query: { storeId: row.id }
}); });
}, },
// //
handlePage: function(value) { handlePage: function (value) {
this.pageNum = value; this.pageNum = value;
this.getRecruitList(); this.getRecruitList();
}, },
getRecruitList() { getRecruitList () {
let that = this; let that = this;
this.loading = true; this.loading = true;
let request = { let request = {
status: that.tabIndex + 2, status: that.tabIndex + 2,
pageNum: that.pageNum, pageNum: that.pageNum,
storeId: that.selectedStore ==0 ? null:that.selectedStore, storeId: that.selectedStore == 0 ? null : that.selectedStore,
companyId: that.companyId ==0 ? null:that.companyId, companyId: that.companyId == 0 ? null : that.companyId,
store: that.searchShop, store: that.searchShop,
start: start:
that.selectDate[0] === "" || that.selectDate.length == 0 that.selectDate[0] === "" || that.selectDate.length == 0
@ -610,7 +632,7 @@ export default {
}; };
bulletinService.getRecruitList( bulletinService.getRecruitList(
request, request,
function(data) { function (data) {
that.loading = false; that.loading = false;
if (data.data.code == "0000") { if (data.data.code == "0000") {
that.data1 = []; that.data1 = [];
@ -624,21 +646,21 @@ export default {
if (datas.list == null) { if (datas.list == null) {
datas.list = []; datas.list = [];
} }
if(that.tabIndex == 0){ if (that.tabIndex == 0) {
that.data1 = datas.records; that.data1 = datas.records;
}else if(that.tabIndex == 1){ } else if (that.tabIndex == 1) {
that.data2 = datas.records; that.data2 = datas.records;
}else{ } else {
that.data3 = datas.records; that.data3 = datas.records;
} }
} }
}, },
function(error) { function (error) {
that.loading = false; that.loading = false;
} }
); );
}, },
onTabClick(e) { onTabClick (e) {
this.tabIndex = e; this.tabIndex = e;
this.pageNum = 1; this.pageNum = 1;
this.storeId = null; this.storeId = null;
@ -647,11 +669,11 @@ export default {
this.selectDate = []; this.selectDate = [];
this.getRecruitList(); this.getRecruitList();
}, },
ok() { ok () {
this.refuseIsShow = false; this.refuseIsShow = false;
}, },
// //
refuse(rData) { refuse (rData) {
let param = { let param = {
fissionPromoterId: rData.id, fissionPromoterId: rData.id,
status: 4, status: 4,
@ -660,19 +682,19 @@ export default {
this.doRecruitSave(param); this.doRecruitSave(param);
this.refuseIsShow = false; this.refuseIsShow = false;
}, },
refuseShow(index) { refuseShow (index) {
this.refuseIsShow = true; this.refuseIsShow = true;
this.rowData = index; this.rowData = index;
}, },
passShow(index) { passShow (index) {
this.passIsShow = true; this.passIsShow = true;
this.rowData = index; this.rowData = index;
}, },
cancel() { cancel () {
this.passIsShow = false; this.passIsShow = false;
}, },
// //
confirm(rData) { confirm (rData) {
let param = { let param = {
fissionPromoterId: rData.id, fissionPromoterId: rData.id,
status: 3 status: 3
@ -681,11 +703,11 @@ export default {
this.passIsShow = false; this.passIsShow = false;
}, },
// //
doRecruitSave(request) { doRecruitSave (request) {
let that = this; let that = this;
bulletinService.recruitSave( bulletinService.recruitSave(
request, request,
function(data) { function (data) {
that.loading = false; that.loading = false;
if (data.data.code == "0000") { if (data.data.code == "0000") {
that.$Message.info(data.data.results); that.$Message.info(data.data.results);
@ -694,7 +716,7 @@ export default {
that.$Message.error("系统异常"); that.$Message.error("系统异常");
} }
}, },
function(error) { function (error) {
that.loading = false; that.loading = false;
} }
); );

@ -1,427 +1,498 @@
<template> <template>
<div> <div>
<Row class="search-row"> <Row class="search-row">
<i-col span="24" class="search-col"> <i-col span="24"
<Row class="row-style"> class="search-col">
<i-input placeholder="请输入推广员姓名或手机号" class="search-select" v-model="searchShop"/> <Row class="row-style">
<span class="search-span">选择日期</span> <i-input placeholder="请输入推广员姓名或手机号"
<DatePicker :value="selectDate" type="daterange" split-panels placeholder="请选择日期" class="search-select"
@on-change="onChangeDateLister" v-model="searchShop" />
class="date-picker"></DatePicker> <span class="search-span">选择日期</span>
<span class="search-span">零售公司</span> <DatePicker :value="selectDate"
<Select v-model="companyId" filterable class="search-select" @on-change="companySelect"> type="daterange"
<Option v-for="(item,index) in companyList" :value="item.id" :key="index + item.id">{{ item.name }}</Option> split-panels
</Select> placeholder="请选择日期"
<span class="search-span">店铺</span> @on-change="onChangeDateLister"
<Select v-model="selectedStore" filterable class="search-select"> class="date-picker"></DatePicker>
<Option v-for="(item,index) in shopList" :value="item.id" :key="index + item.id">{{ item.name }}</Option> <span class="search-span">零售公司</span>
</Select> <Select v-model="companyId"
<Button type="primary" @click="searchCustomerDataBtnClick" class="search-btn">查询</Button> filterable
class="search-select"
@on-change="companySelect">
<Option v-for="(item,index) in companyList"
:value="item.id"
:key="index + item.id">{{ item.name }}</Option>
</Select>
<span class="search-span">店铺</span>
<Select v-model="selectedStore"
filterable
class="search-select">
<Option v-for="(item,index) in shopList"
:value="item.id"
:key="index + item.id">{{ item.name }}</Option>
</Select>
<Button type="primary"
@click="searchCustomerDataBtnClick"
class="search-btn">查询</Button>
</Row>
</i-col>
</Row> </Row>
<Table ref="table" :loading="loading" :columns="columns1" :data="data1" class="table-store" size="small" @on-row-dblclick="onDblClickRowLister"> </i-col>
<template slot="action" slot-scope="{row}"> </Row>
<i-col span="12"> <Table ref="table"
<Button type="success" class="router-btn" :loading="loading"
@click="() => {show(row)}">升级</Button> :columns="columns1"
</i-col> :data="data1"
<i-col span="12"> class="table-store"
<Button type="text" class="router-btn" style="color:2DBCF0!important" size="small"
@click="() => {doShow(row,true)}">查看上下级</Button> @on-row-dblclick="onDblClickRowLister">
</i-col> <template slot="action"
</template> slot-scope="{row}">
</Table> <i-col span="12">
<Button type="success"
<!-- 升级 --> class="router-btn"
<Modal @click="() => {show(row)}">升级</Button>
v-model="isShow" </i-col>
:title="showStoreName" <i-col span="12">
:footer-hide="true" <Button type="text"
width="600" class="router-btn"
class-name="vertical-center-modal" style="color:2DBCF0!important"
@on-ok="ok"> @click="() => {doShow(row,true)}">查看上下级</Button>
<div slot="header"> </i-col>
<p style="text-align: center;">确认升级</p> </template>
</div> </Table>
<div style="text-align:center;min-height:100px">
<span style="line-height:100px">确认将张继军从客户经理升级成服务经理吗?</span> <!-- 升级 -->
</div> <Modal v-model="isShow"
<div style="margin-top:20px;text-align: center;"> :title="showStoreName"
<Button @click="cancel(rowData)"></Button> :footer-hide="true"
<Button style="margin-left:20px" type="primary" @click="confirm(rowData)"></Button> width="600"
</div> class-name="vertical-center-modal"
</Modal> @on-ok="ok">
<recruitTable ref="recruitTable" <div slot="header">
@doShow="doShow" <p style="text-align: center;">确认升级</p>
:show="showrecruit" </div>
:schedule="recruitSchedule"> <div style="text-align:center;min-height:100px">
</recruitTable> <span style="line-height:100px">{{upgradeStr}}</span>
<Page :total="total" :current="pageNum" :page-size="pageSize" show-elevator show-total </div>
placement="top" @on-change="handlePage" class-name="ks-page"></Page> <div style="margin-top:20px;text-align: center;">
</div> <Button @click="cancel(rowData)"></Button>
<Button style="margin-left:20px"
type="primary"
@click="confirm(rowData)">确定升级</Button>
</div>
</Modal>
<recruitTable ref="recruitTable"
@doShow="doShow"
:show="showrecruit"
:schedule="recruitSchedule">
</recruitTable>
<Page :total="total"
:current="pageNum"
:page-size="pageSize"
show-elevator
show-total
placement="top"
@on-change="handlePage"
class-name="ks-page"></Page>
</div>
</template> </template>
<script> <script>
import recruitTable from "./recruitTable"; import recruitTable from "./recruitTable";
import zeroExtend from "../../services/customer/zeroExtend"; import zeroExtend from "../../services/customer/zeroExtend";
import staff from "../../services/staff/staff"; import staff from "../../services/staff/staff";
import { formatDate } from "../../utils/Common"; import { formatDate } from "../../utils/Common";
import bulletinService from '../../services/recruit/Bulletin' import bulletinService from '../../services/recruit/Bulletin'
export default { export default {
name: "", name: "",
components: { components: {
recruitTable, recruitTable,
},
data () {
return {
tabIndex: 0,
userId: JSON.parse(sessionStorage.getItem("loginInfo")).userId,
searchShop: null,
date: "",
companyId: null,
isShow: false,
showStoreName: '',
showrecruit: false,
recruitSchedule: {},
rowData: {},
upgradeStr: "",
//list
companyList: [],
selectedStore: null,
shopList: [],
loading: false,
//list
organizationalList: [],
total: 0,
pageSize: 10,
pageNum: 1,
columns1: [
{
title: '序号',
key: 'number',
width: 60,
render: (h, params) => {
return h('span', params.index + (this.pageNum - 1) * this.pageSize + 1);
}
}, },
data() { {
return { title: '推广员姓名',
tabIndex:0, key: 'shopName',
userId: JSON.parse(sessionStorage.getItem("loginInfo")).userId, width: 120,
searchShop:null, render: (h, params) => {
date:"", return h('span', params.row.promoterInfo.name);
companyId:null, }
isShow: false, },
showStoreName: '', {
showrecruit:false, title: '推广员手机号',
recruitSchedule:{}, key: 'shopPhone',
rowData:{}, width: 120,
//list render: (h, params) => {
companyList: [], return h('span', params.row.promoterInfo.phone);
selectedStore: null, }
shopList: [], },
loading:false, {
//list title: '等级',
organizationalList: [], width: 80,
total: 0, render: (h, params) => {
pageSize: 10, let str = "";
pageNum: 1, switch (params.row.level) {
columns1: [ case 1:
{ str = "一般推广员";
title: '序号', break;
key: 'number', case 2:
width:60, str = "客户经理";
render: (h, params) => { break;
return h('span', params.index + (this.pageNum - 1) * this.pageSize + 1); case 3:
} str = "服务经理";
}, break;
{ default:
title: '推广员姓名', str = "一般推广员";
key: 'shopName',
width:120,
render: (h, params) => {
return h('span', params.row.promoterInfo.name);
}
},
{
title: '推广员手机号',
key: 'shopPhone',
width:120,
render: (h, params) => {
return h('span', params.row.promoterInfo.phone);
}
},
{
title: '等级',
width:80,
render: (h, params) => {
return h('span', params.row.organizational.level);
}
},
{
title: '客户经理数',
key: 'customerManagerCount',
width:120
},
{
title: '推广员数',
key: 'extensionCount',
width:120
},
{
title: '客户数',
key: 'customerCount',
width:80
},
{
title: '业绩',
key: 'achievement',
width:80
},
{
title: '零售公司',
key: 'companyName',
width:150,
render: (h, params) => {
return h('span', params.row.organizational.name);
}
},
{
title: '店铺',
key: 'storeName',
width:160,
render: (h, params) => {
return h('span', params.row.store.name);
}
},
{
title: '店铺编号',
key: 'storeNO',
width:80,
render: (h, params) => {
return h('span', params.row.store.code);
}
},
{
title: '发展人',
key: 'fissionNum',
width:80,
render: (h, params) => {
return h('span', params.row.fissionUser.name);
}
},
{
title: '加入时间',
key: 'submitDate',
width:120,
render: (h, params) => {
return h('span', formatDate(params.row.joinTime));
}
},
{
title: '操作',
slot: 'operation',
width:250,
render: (h, params) => {
let that = this;
return h('div', [
h('span', {
style: {
background: 'white',
border: '0',
color: '#3496EB',
marginRight: '15px',
cursor: 'pointer'
},
on: {
click: () => {
that.show(params.row)
}
}
}, '升级'),
h('span', {
style: {
background: 'white',
border: '0',
color: '#3496EB',
marginRight: '15px',
cursor: 'pointer'
},
on: {
click: () => {
that.doShow(params.row,true)
}
}
}, '查看上下级'),
])
}
}
],
data1:[
],
selectDate: [],
} }
return h('span', str);
}
}, },
mounted: function () { {
this.getSelectList(); title: '客户经理数',
this.downShopData(); key: 'customerManagerCount',
this.getPromoterList(); width: 120
},
{
title: '推广员数',
key: 'extensionCount',
width: 120
},
{
title: '客户数',
key: 'customerCount',
width: 80
},
{
title: '业绩',
key: 'achievement',
width: 80
},
{
title: '零售公司',
key: 'companyName',
width: 150,
render: (h, params) => {
return h('span', params.row.organizational.name);
}
}, },
methods: {
onChangeDateLister(date) {
console.log(date)
this.selectDate = date;
},
/**基础数据区域list、零售公司list、客户list*/
getSelectList: function () {
let that = this;
let request = {
userId: this.userId,
};
zeroExtend.getSelectListRequest(request, function (data) {
if (data.data.code !== "0000") {
that.$Message.error("系统异常");
}
data = data.data.results;
if (data) {
that.organizationalList = data;
that.companyList = that.organizationalList.filter(item => item.level === 2);
}
//
that.insertAllOption();
});
},
//
insertAllOption: function () {
if (this.companyList.length === 0 || this.companyList[0].id !== 0) {
this.companyList.splice(0, 0, {"id": 0, "name": "全部"});
}
if (this.shopList.length === 0 || this.shopList[0].id !== 0) {
this.shopList.splice(0, 0, {"id": 0, "name": "全部"});
}
},
//
downShopData: function (selected) {
let that = this;
let companyId = selected;
if (!selected) {
companyId = that.companyId;
}
let customerIds = [];
this.customerList = [];
if (companyId === 0) {
//
} else {
this.customerList = this.organizationalList.filter(item => item.parentId === companyId && item.level === 3);
this.insertAllOption();
}
customerIds = this.customerList.map(item => item.id);
let request = {
{userId: that.userId, customerIds: JSON.stringify(customerIds)}; title: '店铺',
staff.downShopData(request, function (data) { key: 'storeName',
data = data.data.results; width: 160,
if (data) { render: (h, params) => {
that.shopList = [{"id": 0, "name": "全部"}]; return h('span', params.row.store.name);
for (let i = 0; i < data.length; i++) { }
let entity = data[i]; },
if (entity) { {
that.shopList.push(entity); title: '店铺编号',
} key: 'storeNO',
} width: 80,
} render: (h, params) => {
}) return h('span', params.row.store.code);
}, }
// },
companySelect: function () { {
// title: '发展人',
this.downShopData(this.companyId); key: 'fissionNum',
this.selectedStore = 0; width: 80,
}, render: (h, params) => {
downCompanyChange: function (formValidate) { return h('span', params.row.fissionUser.name);
this.downShopData(formValidate.departIds); }
}, },
searchCustomerDataBtnClick: function () { {
this.pageNum = 1; title: '加入时间',
this.getCheckList(); key: 'submitDate',
}, width: 120,
// row render: (h, params) => {
onDblClickRowLister: function (row) { return h('span', formatDate(params.row.joinTime));
this.$router.push({path:'/shop/increase/manager/staff',query:{storeId:row.id}}); }
}, },
// {
handlePage: function (value) { title: '操作',
this.pageNum = value; slot: 'operation',
this.getCheckList(); width: 250,
}, render: (h, params) => {
getPromoterList() { let that = this;
let that = this; return h('div', [
this.loading = true; h('span', {
let request = { style: {
pageNum: that.pageNum, background: 'white',
storeId:that.selectedStore, border: '0',
companyId: that.companyId, color: '#3496EB',
store:that.searchShop, marginRight: '15px',
start:that.selectDate[0] === ""||that.selectDate.length==0?null:that.selectDate[0], cursor: 'pointer'
end:that.selectDate[1] === ""||that.selectDate.length==0?null:that.selectDate[1], },
}; on: {
bulletinService.promoterList(request, function (data) { click: () => {
that.loading = false; that.show(params.row)
if (data.data.code == "0000") { }
that.data1 = [];
let datas = data.data.results;
//
if (datas.total == null) {
that.total = 0;
} else {
that.total = datas.total;
}
if (datas.list == null) {
datas.list = [];
}
that.data1 = datas.records;
}
}, function (error) {
that.loading = false;
});
},
onTabClick(e){
this.tabIndex = e;
console.log('tabIndex',this.tabIndex);
},
ok() {
this.isShow = false;
},
cancel(){
this.isShow = false;
},
//
confirm(rData) {
let request={
promoterId:rData.id
} }
let that = this; }, '升级'),
bulletinService.promoterUpgrade(request, function (data) { h('span', {
that.loading = false; style: {
if (data.data.code == "0000") { background: 'white',
that.$Message.info("升级成功"); border: '0',
that.getPromoterList(); color: '#3496EB',
}else{ marginRight: '15px',
that.$Message.error("系统异常"); cursor: 'pointer'
} },
}, function (error) { on: {
that.loading = false; click: () => {
}); that.doShow(params.row, true)
this.isShow = false; }
},
show(index) {
this.isShow = true;
this.rowData = index;
},
doShow (currData,ishow) {
this.showrecruit = false;
let that = this;
let param = {
promoterId:currData.id
} }
bulletinService.promoterDetail(param, function (data) { }, '查看上下级'),
that.loading = false;
if (data.data.code == "0000") { ])
// TODO ,,.
that.showrecruit = ishow; }
that.recruitSchedule = currData;
console.log(data.data);
}else{
that.$Message.error("系统异常");
}
}, function (error) {
that.loading = false;
});
},
} }
],
data1: [
],
selectDate: [],
} }
},
mounted: function () {
this.getSelectList();
this.downShopData();
this.getPromoterList();
},
methods: {
onChangeDateLister (date) {
console.log(date)
this.selectDate = date;
},
/**基础数据区域list、零售公司list、客户list*/
getSelectList: function () {
let that = this;
let request = {
userId: this.userId,
};
zeroExtend.getSelectListRequest(request, function (data) {
if (data.data.code !== "0000") {
that.$Message.error("系统异常");
}
data = data.data.results;
if (data) {
that.organizationalList = data;
that.companyList = that.organizationalList.filter(item => item.level === 2);
}
//
that.insertAllOption();
});
},
//
insertAllOption: function () {
if (this.companyList.length === 0 || this.companyList[0].id !== 0) {
this.companyList.splice(0, 0, { "id": 0, "name": "全部" });
}
if (this.shopList.length === 0 || this.shopList[0].id !== 0) {
this.shopList.splice(0, 0, { "id": 0, "name": "全部" });
}
},
//
downShopData: function (selected) {
let that = this;
let companyId = selected;
if (!selected) {
companyId = that.companyId;
}
let customerIds = [];
this.customerList = [];
if (companyId === 0) {
//
} else {
this.customerList = this.organizationalList.filter(item => item.parentId === companyId && item.level === 3);
this.insertAllOption();
}
customerIds = this.customerList.map(item => item.id);
let request =
{ userId: that.userId, customerIds: JSON.stringify(customerIds) };
staff.downShopData(request, function (data) {
data = data.data.results;
if (data) {
that.shopList = [{ "id": 0, "name": "全部" }];
for (let i = 0; i < data.length; i++) {
let entity = data[i];
if (entity) {
that.shopList.push(entity);
}
}
}
})
},
//
companySelect: function () {
//
this.downShopData(this.companyId);
this.selectedStore = 0;
},
downCompanyChange: function (formValidate) {
this.downShopData(formValidate.departIds);
},
searchCustomerDataBtnClick: function () {
this.pageNum = 1;
this.getCheckList();
},
// row
onDblClickRowLister: function (row) {
this.$router.push({ path: '/shop/increase/manager/staff', query: { storeId: row.id } });
},
//
handlePage: function (value) {
this.pageNum = value;
this.getCheckList();
},
getPromoterList () {
let that = this;
this.loading = true;
let request = {
pageNum: that.pageNum,
storeId: that.selectedStore,
companyId: that.companyId,
store: that.searchShop,
start: that.selectDate[0] === "" || that.selectDate.length == 0 ? null : that.selectDate[0],
end: that.selectDate[1] === "" || that.selectDate.length == 0 ? null : that.selectDate[1],
};
bulletinService.promoterList(request, function (data) {
that.loading = false;
if (data.data.code == "0000") {
that.data1 = [];
let datas = data.data.results;
//
if (datas.total == null) {
that.total = 0;
} else {
that.total = datas.total;
}
if (datas.list == null) {
datas.list = [];
}
that.data1 = datas.records;
}
}, function (error) {
that.loading = false;
});
},
onTabClick (e) {
this.tabIndex = e;
console.log('tabIndex', this.tabIndex);
},
ok () {
this.isShow = false;
},
cancel () {
this.isShow = false;
},
//
confirm (rData) {
let request = {
promoterId: rData.id
}
let that = this;
bulletinService.promoterUpgrade(request, function (data) {
that.loading = false;
if (data.data.code == "0000") {
that.$Message.info("升级成功");
that.getPromoterList();
} else {
that.$Message.error("系统异常");
}
}, function (error) {
that.loading = false;
});
this.isShow = false;
},
show (index) {
if (index.level >= 3) {
that.$Message.error(`${index.name}的等级已是最高`);
return false;
}
this.isShow = true;
this.rowData = index;
let str = "";
let next = "";
switch (index.level) {
case 1:
str = "一般推广员";
next = "客户经理";
break;
case 2:
str = "客户经理";
next = "服务经理";
break;
case 3:
str = "服务经理";
next = "服务经理";
break;
default:
str = "一般推广员";
}
this.upgradeStr = `确认将${index.name}${str}升级成${next}吗?`;
},
doShow (currData, ishow) {
this.showrecruit = false;
let that = this;
let param = {
promoterId: currData.id
}
bulletinService.promoterDetail(param, function (data) {
that.loading = false;
if (data.data.code == "0000") {
// TODO ,,.
that.showrecruit = ishow;
that.recruitSchedule = currData;
console.log(data.data);
} else {
that.$Message.error("系统异常");
}
}, function (error) {
that.loading = false;
});
},
}
}
</script> </script>
<style scoped> <style scoped>
.table-store {
.table-store { margin-top: 20px;
margin-top: 20px; }
} .search-btn {
.search-btn{ margin-left: 40px;
margin-left: 40px; }
}
</style> </style>

@ -1,12 +1,13 @@
<template> <template>
<div class="use_box"> <div class="use_box">
<Modal :scrollable="false" <Modal :scrollable="false"
v-model="showUse" v-model="showUse"
title="上下级详情" title="上下级详情"
@on-cancel="cancel" @on-cancel="cancel"
:loading="true" :loading="true"
width="70%"> width="70%">
<div v-if="isShow" class="m-info"> <div v-if="isShow"
class="m-info">
<div class="m-info-top"> <div class="m-info-top">
<p>所属零售公司{{schedule.organizational.name}}</p> <p>所属零售公司{{schedule.organizational.name}}</p>
<p>所属店铺{{schedule.store.name}}</p> <p>所属店铺{{schedule.store.name}}</p>
@ -16,20 +17,20 @@
<div class="t-rows"> <div class="t-rows">
<div>{{schedule.fissionUser.name}}</div> <div>{{schedule.fissionUser.name}}</div>
<div>{{schedule.fissionUser.mobil}}</div> <div>{{schedule.fissionUser.mobil}}</div>
<div>服务经理</div> <div>{{level}}</div>
</div> </div>
</div> </div>
<div class="m-subordinate">下级(35)</div> <div class="m-subordinate">下级(0)</div>
<div> <div>
<div class="t-rows"> <!-- <div class="t-rows">
<div>张胜男</div> <div>张胜男</div>
<div>13123209313</div> <div>13123209313</div>
<div>推广员</div> <div>推广员</div>
</div> -->
</div> </div>
</div> </div>
</div>
<div slot="footer"> <div slot="footer">
</div> </div>
</Modal> </Modal>
</div> </div>
@ -39,15 +40,15 @@
export default { export default {
name: "recruitTable", name: "recruitTable",
components: { components: {
}, },
data () { data () {
return { return {
isShow:false, isShow: false,
currentStep: 0, currentStep: 0,
modal_loading: false, modal_loading: false,
loading:false, loading: false,
showUse: false, showUse: false
}; };
}, },
props: { props: {
@ -67,41 +68,59 @@ export default {
show () { show () {
this.showUse = this.show; this.showUse = this.show;
}, },
schedule(){ schedule () {
console.log('schedule监听',this.schedule); console.log('schedule监听', this.schedule);
this.isShow = true; this.isShow = true;
} }
}, },
computed: {
level () {
let str = "";
switch (this.schedule.level) {
case 1:
str = "一般推广员";
break;
case 2:
str = "客户经理";
break;
case 3:
str = "服务经理";
break;
default:
str = "一般推广员";
}
return str;
}
},
mounted () { }, mounted () { },
methods: { methods: {
cancel () { cancel () {
this.modal_loading = false; this.modal_loading = false;
}, },
}, },
}; };
</script> </script>
<style scoped> <style scoped>
.m-info-top{ .m-info-top {
display: flex; display: flex;
}
} .m-info-top p:last-child {
.m-info-top p:last-child{ margin-left: 160px;
margin-left: 160px; }
} .m-superior,
.m-superior,.m-subordinate{ .m-subordinate {
margin: 10px 0; margin: 10px 0;
padding: 10px 0 10px 10px; padding: 10px 0 10px 10px;
background-color: #f5f7f9; background-color: #f5f7f9;
} }
.t-rows{ .t-rows {
display: flex; display: flex;
}
} .t-rows div {
.t-rows div{ margin-right: 40px;
margin-right: 40px; line-height: 45px;
line-height: 45px; padding-left: 20px;
padding-left: 20px; }
}
</style> </style>

Loading…
Cancel
Save