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" class="date-picker"></DatePicker>
></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"
<Option
v-for="(item,index) in companyList"
:value="item.id" :value="item.id"
:key="index + item.id" :key="index + item.id">{{ item.name }}</Option>
>{{ 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">
<Option v-for="(item,index) in shopList"
:value="item.id" :value="item.id"
:key="index + item.id" :key="index + item.id">{{ item.name }}</Option>
>{{ 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"
<template slot="action" slot-scope="{row}"> 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="请选择日期" placeholder="请选择日期"></DatePicker>
></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"
<Option
v-for="(item,index) in companyList"
:value="item.id" :value="item.id"
:key="index + item.id" :key="index + item.id">{{ item.name }}</Option>
>{{ 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">
<Option v-for="(item,index) in shopList"
:value="item.id" :value="item.id"
:key="index + item.id" :key="index + item.id">{{ item.name }}</Option>
>{{ 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" @on-row-dblclick="onDblClickRowLister"></Table>
></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="请选择日期" placeholder="请选择日期"></DatePicker>
></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"
<Option
v-for="(item,index) in companyList"
:value="item.id" :value="item.id"
:key="index + item.id" :key="index + item.id">{{ item.name }}</Option>
>{{ 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">
<Option v-for="(item,index) in shopList"
:value="item.id" :value="item.id"
:key="index + item.id" :key="index + item.id">{{ item.name }}</Option>
>{{ 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" @on-row-dblclick="onDblClickRowLister"></Table>
></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" class-name="ks-page"></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,
@ -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,
@ -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,42 +1,68 @@
<template> <template>
<div> <div>
<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 :value="selectDate" type="daterange" split-panels placeholder="请选择日期" <DatePicker :value="selectDate"
type="daterange"
split-panels
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 v-model="companyId" filterable class="search-select" @on-change="companySelect"> <Select v-model="companyId"
<Option v-for="(item,index) in companyList" :value="item.id" :key="index + item.id">{{ item.name }}</Option> 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> </Select>
<span class="search-span">店铺</span> <span class="search-span">店铺</span>
<Select v-model="selectedStore" filterable class="search-select"> <Select v-model="selectedStore"
<Option v-for="(item,index) in shopList" :value="item.id" :key="index + item.id">{{ item.name }}</Option> filterable
class="search-select">
<Option v-for="(item,index) in shopList"
:value="item.id"
: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 ref="table" :loading="loading" :columns="columns1" :data="data1" class="table-store" size="small" @on-row-dblclick="onDblClickRowLister"> <Table ref="table"
<template slot="action" slot-scope="{row}"> :loading="loading"
:columns="columns1"
:data="data1"
class="table-store"
size="small"
@on-row-dblclick="onDblClickRowLister">
<template slot="action"
slot-scope="{row}">
<i-col span="12"> <i-col span="12">
<Button type="success" class="router-btn" <Button type="success"
class="router-btn"
@click="() => {show(row)}">升级</Button> @click="() => {show(row)}">升级</Button>
</i-col> </i-col>
<i-col span="12"> <i-col span="12">
<Button type="text" class="router-btn" style="color:2DBCF0!important" <Button type="text"
class="router-btn"
style="color:2DBCF0!important"
@click="() => {doShow(row,true)}">查看上下级</Button> @click="() => {doShow(row,true)}">查看上下级</Button>
</i-col> </i-col>
</template> </template>
</Table> </Table>
<!-- 升级 --> <!-- 升级 -->
<Modal <Modal v-model="isShow"
v-model="isShow"
:title="showStoreName" :title="showStoreName"
:footer-hide="true" :footer-hide="true"
width="600" width="600"
@ -46,11 +72,13 @@
<p style="text-align: center;">确认升级</p> <p style="text-align: center;">确认升级</p>
</div> </div>
<div style="text-align:center;min-height:100px"> <div style="text-align:center;min-height:100px">
<span style="line-height:100px">确认将张继军从客户经理升级成服务经理吗?</span> <span style="line-height:100px">{{upgradeStr}}</span>
</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>
<recruitTable ref="recruitTable" <recruitTable ref="recruitTable"
@ -58,39 +86,46 @@
:show="showrecruit" :show="showrecruit"
:schedule="recruitSchedule"> :schedule="recruitSchedule">
</recruitTable> </recruitTable>
<Page :total="total" :current="pageNum" :page-size="pageSize" show-elevator show-total <Page :total="total"
placement="top" @on-change="handlePage" class-name="ks-page"></Page> :current="pageNum"
:page-size="pageSize"
show-elevator
show-total
placement="top"
@on-change="handlePage"
class-name="ks-page"></Page>
</div> </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() { data () {
return { return {
tabIndex:0, tabIndex: 0,
userId: JSON.parse(sessionStorage.getItem("loginInfo")).userId, userId: JSON.parse(sessionStorage.getItem("loginInfo")).userId,
searchShop:null, searchShop: null,
date:"", date: "",
companyId:null, companyId: null,
isShow: false, isShow: false,
showStoreName: '', showStoreName: '',
showrecruit:false, showrecruit: false,
recruitSchedule:{}, recruitSchedule: {},
rowData:{}, rowData: {},
upgradeStr: "",
//list //list
companyList: [], companyList: [],
selectedStore: null, selectedStore: null,
shopList: [], shopList: [],
loading:false, loading: false,
//list //list
organizationalList: [], organizationalList: [],
total: 0, total: 0,
@ -100,7 +135,7 @@
{ {
title: '序号', title: '序号',
key: 'number', key: 'number',
width:60, width: 60,
render: (h, params) => { render: (h, params) => {
return h('span', params.index + (this.pageNum - 1) * this.pageSize + 1); return h('span', params.index + (this.pageNum - 1) * this.pageSize + 1);
} }
@ -108,7 +143,7 @@
{ {
title: '推广员姓名', title: '推广员姓名',
key: 'shopName', key: 'shopName',
width:120, width: 120,
render: (h, params) => { render: (h, params) => {
return h('span', params.row.promoterInfo.name); return h('span', params.row.promoterInfo.name);
} }
@ -116,42 +151,56 @@
{ {
title: '推广员手机号', title: '推广员手机号',
key: 'shopPhone', key: 'shopPhone',
width:120, width: 120,
render: (h, params) => { render: (h, params) => {
return h('span', params.row.promoterInfo.phone); return h('span', params.row.promoterInfo.phone);
} }
}, },
{ {
title: '等级', title: '等级',
width:80, width: 80,
render: (h, params) => { render: (h, params) => {
return h('span', params.row.organizational.level); let str = "";
switch (params.row.level) {
case 1:
str = "一般推广员";
break;
case 2:
str = "客户经理";
break;
case 3:
str = "服务经理";
break;
default:
str = "一般推广员";
}
return h('span', str);
} }
}, },
{ {
title: '客户经理数', title: '客户经理数',
key: 'customerManagerCount', key: 'customerManagerCount',
width:120 width: 120
}, },
{ {
title: '推广员数', title: '推广员数',
key: 'extensionCount', key: 'extensionCount',
width:120 width: 120
}, },
{ {
title: '客户数', title: '客户数',
key: 'customerCount', key: 'customerCount',
width:80 width: 80
}, },
{ {
title: '业绩', title: '业绩',
key: 'achievement', key: 'achievement',
width:80 width: 80
}, },
{ {
title: '零售公司', title: '零售公司',
key: 'companyName', key: 'companyName',
width:150, width: 150,
render: (h, params) => { render: (h, params) => {
return h('span', params.row.organizational.name); return h('span', params.row.organizational.name);
} }
@ -160,7 +209,7 @@
{ {
title: '店铺', title: '店铺',
key: 'storeName', key: 'storeName',
width:160, width: 160,
render: (h, params) => { render: (h, params) => {
return h('span', params.row.store.name); return h('span', params.row.store.name);
} }
@ -168,7 +217,7 @@
{ {
title: '店铺编号', title: '店铺编号',
key: 'storeNO', key: 'storeNO',
width:80, width: 80,
render: (h, params) => { render: (h, params) => {
return h('span', params.row.store.code); return h('span', params.row.store.code);
} }
@ -176,7 +225,7 @@
{ {
title: '发展人', title: '发展人',
key: 'fissionNum', key: 'fissionNum',
width:80, width: 80,
render: (h, params) => { render: (h, params) => {
return h('span', params.row.fissionUser.name); return h('span', params.row.fissionUser.name);
} }
@ -184,7 +233,7 @@
{ {
title: '加入时间', title: '加入时间',
key: 'submitDate', key: 'submitDate',
width:120, width: 120,
render: (h, params) => { render: (h, params) => {
return h('span', formatDate(params.row.joinTime)); return h('span', formatDate(params.row.joinTime));
} }
@ -192,7 +241,7 @@
{ {
title: '操作', title: '操作',
slot: 'operation', slot: 'operation',
width:250, width: 250,
render: (h, params) => { render: (h, params) => {
let that = this; let that = this;
return h('div', [ return h('div', [
@ -220,7 +269,7 @@
}, },
on: { on: {
click: () => { click: () => {
that.doShow(params.row,true) that.doShow(params.row, true)
} }
} }
}, '查看上下级'), }, '查看上下级'),
@ -230,7 +279,7 @@
} }
} }
], ],
data1:[ data1: [
], ],
selectDate: [], selectDate: [],
@ -242,7 +291,7 @@
this.getPromoterList(); this.getPromoterList();
}, },
methods: { methods: {
onChangeDateLister(date) { onChangeDateLister (date) {
console.log(date) console.log(date)
this.selectDate = date; this.selectDate = date;
}, },
@ -268,10 +317,10 @@
// //
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": "全部" });
} }
if (this.shopList.length === 0 || this.shopList[0].id !== 0) { if (this.shopList.length === 0 || this.shopList[0].id !== 0) {
this.shopList.splice(0, 0, {"id": 0, "name": "全部"}); this.shopList.splice(0, 0, { "id": 0, "name": "全部" });
} }
}, },
// //
@ -292,11 +341,11 @@
customerIds = this.customerList.map(item => item.id); customerIds = this.customerList.map(item => item.id);
let request = let request =
{userId: that.userId, customerIds: JSON.stringify(customerIds)}; { userId: that.userId, 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": "全部" }];
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
let entity = data[i]; let entity = data[i];
if (entity) { if (entity) {
@ -321,23 +370,23 @@
}, },
// row // row
onDblClickRowLister: function (row) { onDblClickRowLister: function (row) {
this.$router.push({path:'/shop/increase/manager/staff',query:{storeId:row.id}}); this.$router.push({ path: '/shop/increase/manager/staff', query: { storeId: row.id } });
}, },
// //
handlePage: function (value) { handlePage: function (value) {
this.pageNum = value; this.pageNum = value;
this.getCheckList(); this.getCheckList();
}, },
getPromoterList() { getPromoterList () {
let that = this; let that = this;
this.loading = true; this.loading = true;
let request = { let request = {
pageNum: that.pageNum, pageNum: that.pageNum,
storeId:that.selectedStore, storeId: that.selectedStore,
companyId: that.companyId, companyId: that.companyId,
store:that.searchShop, store: that.searchShop,
start:that.selectDate[0] === ""||that.selectDate.length==0?null:that.selectDate[0], start: that.selectDate[0] === "" || that.selectDate.length == 0 ? null : that.selectDate[0],
end:that.selectDate[1] === ""||that.selectDate.length==0?null:that.selectDate[1], end: that.selectDate[1] === "" || that.selectDate.length == 0 ? null : that.selectDate[1],
}; };
bulletinService.promoterList(request, function (data) { bulletinService.promoterList(request, function (data) {
that.loading = false; that.loading = false;
@ -359,20 +408,20 @@
that.loading = false; that.loading = false;
}); });
}, },
onTabClick(e){ onTabClick (e) {
this.tabIndex = e; this.tabIndex = e;
console.log('tabIndex',this.tabIndex); console.log('tabIndex', this.tabIndex);
}, },
ok() { ok () {
this.isShow = false; this.isShow = false;
}, },
cancel(){ cancel () {
this.isShow = false; this.isShow = false;
}, },
// //
confirm(rData) { confirm (rData) {
let request={ let request = {
promoterId:rData.id promoterId: rData.id
} }
let that = this; let that = this;
bulletinService.promoterUpgrade(request, function (data) { bulletinService.promoterUpgrade(request, function (data) {
@ -380,7 +429,7 @@
if (data.data.code == "0000") { if (data.data.code == "0000") {
that.$Message.info("升级成功"); that.$Message.info("升级成功");
that.getPromoterList(); that.getPromoterList();
}else{ } else {
that.$Message.error("系统异常"); that.$Message.error("系统异常");
} }
}, function (error) { }, function (error) {
@ -388,15 +437,38 @@
}); });
this.isShow = false; this.isShow = false;
}, },
show(index) { show (index) {
if (index.level >= 3) {
that.$Message.error(`${index.name}的等级已是最高`);
return false;
}
this.isShow = true; this.isShow = true;
this.rowData = index; this.rowData = index;
}, let str = "";
doShow (currData,ishow) { 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; this.showrecruit = false;
let that = this; let that = this;
let param = { let param = {
promoterId:currData.id promoterId: currData.id
} }
bulletinService.promoterDetail(param, function (data) { bulletinService.promoterDetail(param, function (data) {
that.loading = false; that.loading = false;
@ -405,7 +477,7 @@
that.showrecruit = ishow; that.showrecruit = ishow;
that.recruitSchedule = currData; that.recruitSchedule = currData;
console.log(data.data); console.log(data.data);
}else{ } else {
that.$Message.error("系统异常"); that.$Message.error("系统异常");
} }
}, function (error) { }, function (error) {
@ -413,15 +485,14 @@
}); });
}, },
} }
} }
</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>

@ -6,7 +6,8 @@
@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,16 +17,16 @@
<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">
@ -43,11 +44,11 @@ export default {
}, },
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,11 +68,30 @@ 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 () {
@ -83,25 +103,24 @@ export default {
</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-subordinate{ .m-superior,
.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