cmy 9 kuukautta sitten
vanhempi
commit
0bd00f806e

+ 0 - 18
src/api/finance.js

@@ -208,22 +208,4 @@ export function getYgGqList(data) {
 	    method: 'get',
 	    params: data
 	});
-}
-
-//用户奖励股权提现申请
-export function getYhJlTx(data) {
-	return request({
-	    url: `user/withdrawalList`,
-	    method: 'get',
-	    params: data
-	});
-}
-
-//work/withdrawalExamine  用户股权提现申请审核
-export function passYhJlTx(data) {
-	return request({
-	    url: `user/withdrawalExamine`,
-	    method: 'post',
-	    data
-	});
 }

+ 13 - 0
src/api/statistic.js

@@ -340,3 +340,16 @@ export function getType(params) {
     params
   });
 }
+
+/**
+ * 预约订单导出
+ * @param {*} params
+ * @returns
+ */
+export function SubscribeGetExcel(params) {
+  return request({
+    url: '/service/Subscribe/getExcel',
+    method: 'get',
+    params
+  });
+}

+ 0 - 8
src/api/user.js

@@ -736,12 +736,4 @@ export function batchProcess(data) {
         method: 'post',
         data
     });
-}
-
-export function getUserJlList (data) {
-    return request({
-        url: `user/recordList`,
-        method: 'get',
-        params: data
-    });
 }

+ 1 - 1
src/components/userList/index.vue

@@ -293,4 +293,4 @@ margin-right:14px
     margin: 15px 0;
     padding-right: 20px;
 }
-</style>
+</style>

+ 0 - 243
src/components/userLists/index.vue

@@ -1,243 +0,0 @@
-<template>
-	<div class="goodList">
-		<Form ref="pagination" :model="formValidate" @submit.native.prevent>
-			<FormItem label="用户昵称:" label-for="title">
-				<Input v-model="formValidate.nickname" placeholder="请输入用户昵称" class="input-add mr14" />
-				<Button type="primary" @click="userSearchs()">查询</Button>
-			</FormItem>
-		</Form>
-		<Table ref="table" no-data-text="暂无数据" @on-select-all="selectAll" @on-select-all-cancel="cancelAll"
-			@on-select="TableSelectRow" @on-select-cancel="TableSelectCancelRow" no-filtered-data-text="暂无筛选结果"
-			:columns="columns4" :data="tableList" :loading="loading" class="mr-20" height="500">
-			<template slot-scope="{ row }" slot="avatar">
-				<viewer>
-					<div class="tabBox_img">
-						<img v-lazy="row.headimgurl||row.user.headimgurl" />
-					</div>
-				</viewer>
-			</template>
-			<template slot-scope="{ row, index }" slot="user_type">
-			  <span v-if="row.user_type === 'wechat'">公众号</span>
-			  <span v-if="row.user_type === 'routine'">小程序</span>
-			  <span v-if="row.user_type === 'h5'">H5</span>
-			  <span v-if="row.user_type === 'pc'">PC</span>
-			</template>
-		</Table>
-		<div class="acea-row row-right page">
-			<Page :total="total" show-elevator show-total @on-change="pageChange" :page-size="formValidate.limit" />
-		</div>
-		<div class="footer" slot="footer" >
-			<Button type="primary" size="large" :loading="modal_loading" long @click="ok">确定</Button>
-		</div>
-	</div>
-</template>
-
-<script>
-	import { kefucreateApi } from "@/api/setting";
-	import {
-		mapState
-	} from "vuex";
-	import {
-		getYgList
-	} from '@/api/store'
-	export default {
-		name: "index",
-		props: {
-			is_reservation: {
-				type: Number,
-				default: 1
-			},
-		},
-		data() {
-			return {
-				//选中商品集合
-				selectEquips: [],
-				// 选中的id集合
-				selectEquipsIds: [],
-				cateIds: [],
-				modal_loading: false,
-				formValidate: {
-					page: 1,
-					limit: 10,
-					nickname: ''
-				},
-				total: 0,
-				loading: false,
-				tableList: [],
-				columns4: [{
-						type: 'selection',
-						width: 60,
-						align: 'center'
-					},
-					{
-						title: "用户UID",
-						key: "uid",
-						width: 60,
-					},
-					{
-						title: "头像",
-						slot: "avatar",
-						width: 60,
-					},
-					{
-						title: "昵称",
-						key: "nickname",
-						minWidth: 80,
-					},
-					// {
-					// 	title: "别称",
-					// 	key: "alias",
-					// 	minWidth: 80,
-					// },
-					{
-					  title: "用户类型",
-					  slot: "user_type",
-					  minWidth: 100,
-					},
-					// {
-					// 	title: "创建时间",
-					// 	key: "create_time",
-					// 	minWidth: 100,
-					// },
-				],
-				images: [],
-			};
-		},
-		created() {
-		},
-		mounted() {
-			this.getList();
-		},
-		methods: {
-			// 判断是否选中
-			sortData() {
-				if (this.selectEquipsIds.length) {
-					this.tableList.forEach(ele => {
-						if (this.selectEquipsIds.includes(ele.id)) ele._checked = true;
-					})
-				}
-			},
-			// 选中一行
-			TableSelectRow(selection, row) {
-				console.log(selection, row,'selection, row')
-				if (!this.selectEquipsIds.includes(row.uid)) {
-					this.selectEquipsIds.push(row.uid);
-					this.selectEquips.push(row);
-				}
-			},
-			// 取消选中一行
-			TableSelectCancelRow(selection, row) {
-				var _index = this.selectEquipsIds.indexOf(row.uid);
-				if (_index != -1) {
-					this.selectEquipsIds.splice(_index, 1);
-					this.selectEquips.splice(_index, 1);
-				}
-			},
-			// 选中所有
-			selectAll() {
-				for (let i = this.tableList.length - 1; i >= 0; i--) {
-					this.TableSelectRow(null, this.tableList[i]);
-				}
-			},
-			// 取消选中所有
-			cancelAll() {
-				for (let i = this.tableList.length - 1; i >= 0; i--) {
-					this.TableSelectCancelRow(null, this.tableList[i]);
-				}
-			},
-			pageChange(index) {
-				this.formValidate.page = index;
-				this.getList();
-			},
-			// 列表
-			getList() {
-				this.loading = true;
-					kefucreateApi(this.formValidate)
-						.then(async (res) => {
-							let data = res.data;
-							this.tableList = data.list;
-							this.total = res.data.count;
-							this.sortData();
-							this.loading = false;
-						})
-						.catch((res) => {
-							this.loading = false;
-							this.$Message.error(res.msg);
-						});
-			},
-			changeCheckbox(selection) {
-				let images = [];
-				selection.forEach(function(item) {
-					let imageObject = {
-						image: item.image,
-						product_id: item.id,
-						store_name: item.store_name,
-						temp_id: item.temp_id
-					};
-					images.push(imageObject);
-				});
-				this.images = images;
-				this.$emit("getProductDiy", selection);
-			},
-			ok() {
-				console.log("getProductId", this.selectEquips)
-				this.$emit("getProductId", this.selectEquips);
-			},
-			treeSearchs(value) {
-				this.formValidate.page = 1;
-				this.getList();
-			},
-			// 表格搜索
-			userSearchs() {
-				this.formValidate.page = 1;
-				this.getList();
-			},
-			clear() {
-			},
-		},
-	};
-</script>
-
-<style scoped lang="stylus">
-	/deep/.ivu-table-header thead tr th {
-		padding: 8px 5px;
-	}
-
-	/deep/.ivu-radio-wrapper {
-		margin-right: 0 !important;
-	}
-
-	.footer {
-		margin: 15px 0;
-	}
-
-	.tabBox_img {
-		width: 36px;
-		height: 36px;
-		border-radius: 100px;
-		overflow: hidden;
-		cursor: pointer;
-
-		img {
-			width: 100%;
-			height: 100%;
-		}
-	}
-
-	.tabform {
-		>>>.ivu-form-item {
-			margin-bottom: 16px !important;
-		}
-	}
-
-	.btn {
-		margin-top: 20px;
-		float: right;
-	}
-
-	.goodList {}
-
-	.mr-20 {
-		margin-right: 10px;
-	}
-</style>

+ 0 - 249
src/pages/finance/jl/index.vue

@@ -1,249 +0,0 @@
-<template>
-	<!-- 用户-会员管理-等级列表 -->
-	<div>
-		<Card :bordered="false" dis-hover class="ivu-mt">
-			<!-- 相关操作 -->
-		
-			<Table :columns="columns1" :data="list" ref="table" class="mt25" :loading="loading" highlight-row
-				no-userFrom-text="暂无数据" no-filtered-userFrom-text="暂无筛选结果">
-				<template slot-scope="{ row, index }" slot="icons">
-					<viewer>
-						<div class="tabBox_img">
-							<img v-lazy="row.member.avatar">
-						</div>
-					</viewer>
-				</template>
-
-				<template slot-scope="{ row, index }" slot="name">
-					<div class="acea-row">
-						<div v-if="row.user.delete_time != null" style="color:#ed4014;">{{row.member.nickname}} (已注销)</div>
-						<div v-else v-text="row.user.nickname"></div>
-					</div>
-					<div>uid:{{row.user.uid}}</div>
-				</template>
-				<template slot-scope="{ row, index }" slot="status">
-					<Tag color="primary" v-if="row.status == 1">待审核</Tag>
-					    <Tag color="success" v-if="row.status == 2">已通过</Tag>
-					    <Tag color="error" v-if="row.status == 0">未通过</Tag>
-				</template>
-				<template slot-scope="{ row, index }" slot="action">
-					<template v-if="row.status == 1">
-						<a @click="pass(row,2)">通过</a>
-						<Divider type="vertical" />
-						<a @click="pass(row,0)">拒绝</a>
-					</template>
-				</template>
-			</Table>
-			<div class="acea-row row-right page">
-				<Page :total="total" :current="listFrom.page" show-elevator show-total @on-change="pageChange"
-					:page-size="listFrom.limit" />
-			</div>
-		</Card>
-	</div>
-</template>
-<script>
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		userList
-	} from '@/api/user';
-	import {
-		updateShareholdingRecord,
-		deleteShareholder,
-		addShareholder
-	} from '@/api/shareholder';
-	import {
-		getYhJlTx,
-		passYhJlTx
-	} from '@/api/finance'
-	import user from "@/components/userList/index"
-	export default {
-		name: 'guquanIndex',
-		data() {
-			return {
-				// 股权发放弹窗
-				modalss: false,
-				// 用户列表弹窗
-				modals: false,
-				loading: false,
-				columns1: [{
-						title: 'ID',
-						key: 'id',
-						width: 80
-					},
-					{
-						title: '用户',
-						slot: 'name',
-						minWidth: 150
-					},
-					{
-						title: '提现股权',
-						key: 'reward_share',
-						minWidth: 100
-					},
-					{
-						title: '预计金额',
-						key: 'money',
-						minWidth: 100
-					},
-					{
-						title: '提现时间',
-						key: 'create_time',
-						minWidth: 100
-					},
-					{
-						title: '审核状态',
-						slot: 'status',
-						minWidth: 100
-					},
-					{
-						title: '操作',
-						slot: 'action',
-						fixed: 'right',
-						minWidth: 120
-					}
-				],
-				listFrom: {
-					is_shareholder: 1,
-					page: 1,
-					limit: 10
-				},
-				fromHolder: {
-					uid: 0,
-					initial_share: 0,
-					bonus_share: 0,
-					initial_status: "1",
-					bonus_status: "1",
-					mark: ''
-				},
-				list: [],
-				total: 0,
-				user: {}
-			}
-		},
-		created() {
-			console.log('zs');
-			this.getList();
-		},
-		methods: {
-			// 确认发放股权
-			comInput(res) {
-				updateShareholdingRecord(this.fromHolder).then((res) => {
-					this.getList();
-					this.$Message.success(res.msg);
-				}).catch(res => {
-					this.$Message.error(res.msg);
-				});
-			},
-			// 打开股权发放
-			changeholder(res) {
-				// 保存当前选中的对象
-				this.fromHolder.uid = res.uid;
-				this.modalss = true;
-			},
-			pass(row,type) {
-				console.log('row',row)
-				let that = this
-				this.$Modal.confirm({
-					title: '提示',
-					content: type == 2 ? `通过用户:${row.user.nickname} 的股权提现申请`: `拒绝用户:${row.user.nickname} 的股权提现申请`,
-					loading: true,
-					onOk: () => {
-						this.$Modal.remove();
-						// this.add(res.uid)
-						passYhJlTx({
-							id: row.id,
-							status: type
-						}).then(res=> {
-							that.$Message.success('审核完成');
-							that.getList();
-						})
-					},
-					onCancel: () => {
-						// this.$Message.info('取消成功');
-					}
-				});
-			},
-			getProductId(res) {
-				console.log(res);
-				this.modals = false;
-				this.$Modal.confirm({
-					title: '提示',
-					content: `是否将用户${res.name}(UID:${res.uid})添加为股东`,
-					loading: true,
-					onOk: () => {
-						this.$Modal.remove();
-						this.add(res.uid)
-						this.getList();
-					},
-					onCancel: () => {
-						// this.$Message.info('取消成功');
-					}
-				});
-			},
-			// 删除
-			del(row) {
-				let delfromData = {
-					title: "删除股东",
-					url: `stockRights/deleteShareholder`,
-					method: 'post',
-					ids: {
-						uid: row.uid
-					}
-				}
-				this.$modalSure(delfromData).then((res) => {
-					this.$Message.success(res.msg);
-					this.getList();
-				}).catch(res => {
-					this.$Message.error(res.msg);
-				});
-			},
-			// 等级列表
-			getList() {
-				this.loading = true;
-				getYhJlTx(this.listFrom).then(async res => {
-					let data = res.data
-					this.list = data.list;
-					this.total = res.data.count;
-					this.loading = false;
-				}).catch(res => {
-					console.log(res, 'res');
-					this.loading = false;
-					this.$Message.error(res.msg);
-				})
-			},
-			pageChange(index) {
-				this.listFrom.page = index;
-				this.getList();
-			},
-			// 添加
-			add(uid) {
-				addShareholder({
-					uid
-				}).then((res) => {
-					console.log(res);
-					this.getList();
-					this.$Message.success(res.msg);
-				}).catch((res) => {
-					this.$Message.error(res.msg);
-				})
-			},
-		}
-	}
-</script>
-
-<style lang="less">
-	.tabBox_img {
-		width: 36px;
-		height: 36px;
-		border-radius: 4px;
-		cursor: pointer;
-
-		img {
-			width: 100%;
-			height: 100%;
-		}
-	}
-</style>

+ 0 - 189
src/pages/finance/jl/list.vue

@@ -1,189 +0,0 @@
-<template>
-	<!-- 用户-会员管理-等级列表 -->
-	<div>
-		<Card :bordered="false" dis-hover class="ivu-mt">
-			<!-- 相关操作 -->
-			<Input v-model="listFrom.uid" icon="ios-search" @on-click='openmid' placeholder="请输入用户ID" class="input-add mr14" />
-			<Button type="primary" @click="getList" style="margin-left: 20px;">查询</Button>
-			<Button type="primary" @click="reset" style="margin-left: 20px;">重置</Button>
-			<Table :columns="columns1" :data="list" ref="table" class="mt25" :loading="loading" highlight-row
-				no-userFrom-text="暂无数据" no-filtered-userFrom-text="暂无筛选结果">
-				<template slot-scope="{ row, index }" slot="icons">
-					<viewer>
-						<div class="tabBox_img">
-							<img v-lazy="row.member.avatar">
-						</div>
-					</viewer>
-				</template>
-
-				<template slot-scope="{ row, index }" slot="name">
-					<div class="acea-row">
-						<div v-if="row.user.delete_time != null" style="color:#ed4014;">{{row.user.nickname}} (已注销)</div>
-						<div v-else v-text="row.user.nickname"></div>
-					</div>
-					<div >uid:{{row.user.uid}}</div>
-				</template>
-				<template slot-scope="{ row, index }" slot="status">
-					<Tag color="primary" v-if="row.status == 1">待审核</Tag>
-					    <Tag color="success" v-if="row.status == 2">已通过</Tag>
-					    <Tag color="error" v-if="row.status == 0">未通过</Tag>
-				</template>
-				<template slot-scope="{ row, index }" slot="action">
-					<template v-if="row.status == 1">
-						<a @click="pass(row,2)">通过</a>
-						<Divider type="vertical" />
-						<a @click="pass(row,0)">拒绝</a>
-					</template>
-				</template>
-			</Table>
-			<div class="acea-row row-right page">
-				<Page :total="total" :current="listFrom.page" show-elevator show-total @on-change="pageChange"
-					:page-size="listFrom.limit" />
-			</div>
-		</Card>
-		<Modal v-model="modals" width='80' mask title="员工选择">
-			<userLists :is_reservation='0' @getProductId='checkmember'></userLists>
-			<template #footer>
-				<Button @click="memberListShow=false">取消</Button>
-			</template>
-		</Modal>
-	</div>
-</template>
-<script>
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		getYhJlList,
-		passYgGqTx
-	} from '@/api/finance'
-	import { getUserJlList} from '@/api/user'
-	import userLists from "@/components/userLists/index";
-	export default {
-		name: 'guquanList',
-		components: {
-			userLists
-		},
-		data() {
-			return {
-				modals: false,
-				loading: false,
-				columns1: [{
-						title: 'ID',
-						key: 'id',
-						width: 80
-					},
-					{
-						title: '用户',
-						slot: 'name',
-						minWidth: 150
-					},
-					{
-						title: '详情',
-						key: 'content',
-						minWidth: 200
-					},
-					{
-						title: '数量',
-						key: 'reward_share',
-						minWidth: 100
-					},
-					{
-						title: '变动后',
-						key: 'balance',
-						minWidth: 100
-					},
-					{
-						title: '变更时间',
-						key: 'create_time',
-						minWidth: 200
-					}
-				],
-				listFrom: {
-					page: 1,
-					limit: 10,
-					uid: '',
-				},
-				list: [],
-				total: 0,
-			}
-		},
-		created() {
-			console.log('zs');
-			this.getList();
-		},
-		methods: {
-			// 打开弹窗
-			openmid(e) {
-				this.modals = true;
-			},
-			// 选中员工
-			checkmember(res) {
-				console.log(res,'res')
-				let data = res[0];
-				this.modals = false;
-				this.listFrom.uid = data.uid;
-				console.log(this.listFrom.uid,'this.listFrom.uid')
-			},
-			reset() {
-				this.listFrom.member_id = 0,
-				this.getList()
-			},
-			pass(row,type) {
-				console.log('row',row)
-				let that = this
-				this.$Modal.confirm({
-					title: '提示',
-					content: type == 2 ? `通过员工:${row.member.name} 的股权提现申请`: `拒绝员工:${row.member.name} 的股权提现申请`,
-					loading: true,
-					onOk: () => {
-						this.$Modal.remove();
-						// this.add(res.uid)
-						passYgGqTx({
-							id: row.id,
-							status: type
-						}).then(res=> {
-							that.$Message.success('审核完成');
-							that.getList();
-						})
-					},
-					onCancel: () => {
-						// this.$Message.info('取消成功');
-					}
-				});
-			},
-			getList() {
-				this.loading = true;
-				getUserJlList(this.listFrom).then(async res => {
-					let data = res.data
-					this.list = data.list;
-					this.total = res.data.count;
-					this.loading = false;
-				}).catch(res => {
-					console.log(res, 'res');
-					this.loading = false;
-					this.$Message.error(res.msg);
-				})
-			},
-			pageChange(index) {
-				this.listFrom.page = index;
-				this.getList();
-			},
-		}
-	}
-</script>
-
-<style lang="less">
-	.tabBox_img {
-		width: 36px;
-		height: 36px;
-		border-radius: 4px;
-		cursor: pointer;
-
-		img {
-			width: 100%;
-			height: 100%;
-		}
-	}
-</style>

+ 1 - 1
src/pages/marketing/serve/create.vue

@@ -211,7 +211,7 @@
 					let row = res.data.info.storeInfo
 					this.formData = {
 						id: row.id,
-						product_id: row.product_id,
+						product_id: row.id,
 						card_name: row.card_name,
 						card_price: row.card_price,
 						explain: row.explain,

+ 53 - 1
src/pages/order/serveList/index.vue

@@ -24,10 +24,24 @@
 								class="input-add mr14" />
 						</div>
 					</FormItem>
-					
+					  <FormItem label="创建时间:">
+					    <DatePicker
+					      :editable="false"
+					      :clearable="true"
+					      @on-change="onchangeTime"
+					      :value="timeVal"
+					      format="yyyy/MM/dd HH:mm:ss"
+					      type="datetimerange"
+					      placement="bottom-start"
+					      placeholder="自定义时间"
+					      class="input-add mr20"
+					      :options="options"
+					    ></DatePicker>
+					  </FormItem>
 					<FormItem label="订单搜索:" label-for="title">
 						<Input v-model="pagination.order_id" placeholder="请输入订单号" class="input-add mr14" />
 						<Button type="primary" @click="orderSearch()">查询</Button>
+						<Button type="primary" style="margin-left: 10px;" @click="exportExcel()">导出</Button>
 					</FormItem>
 				</Form>
 			</div>
@@ -180,6 +194,10 @@
 		member_update,
 		active_refund_order
 	} from "@/api/order";
+	import {
+		SubscribeGetExcel
+	} from "@/api/statistic";
+	import exportExcel from "@/utils/newToExcel.js";
 	import {
 		getYgList
 	} from "@/api/store"
@@ -188,6 +206,7 @@
 	} from "@/api/erp";
 	import userlist from "@/components/customerInfo/index";
 	import staffList from "@/components/staffList/index";
+	import timeOptions from '@/utils/timeOptions'
 	export default {
 		components: {
 			userlist,
@@ -195,6 +214,8 @@
 		},
 		data() {
 			return {
+				timeVal:'',
+				options: timeOptions,
 				delModel: false,
 				delData: {
 					id: '',
@@ -308,6 +329,37 @@
 			this.getOrderList();
 		},
 		methods: {
+			async exportExcel() {
+			  let [th, filekey, data, fileName] = [[], [], [], ""];
+			  let excelData = this.pagination;
+			  excelData.page = 1;
+			  let lebData = await this.getExcelData(excelData);
+			  console.log(lebData,'lebData')
+			  if (!fileName) fileName = lebData.filename;
+			  if (!filekey.length) {
+			    filekey = lebData.filekey;
+			  }
+			  if (!th.length) th = lebData.header;
+			  data = data.concat(lebData.export);
+			  exportExcel(th, filekey, fileName, data);
+			},
+			getExcelData(excelData) {
+			  return new Promise((resolve, reject) => {
+			    SubscribeGetExcel(excelData).then((res) => {
+			      return resolve(res.data);
+			    });
+			  });
+			},
+			// 具体日期
+			onchangeTime(e) {
+			  if (e[1].slice(-8) === '00:00:00') {
+			    e[1] = e[1].slice(0, -8) + '23:59:59'
+			    this.timeVal = e
+			  } else {
+			    this.timeVal = e
+			  }
+			  this.pagination.data = this.timeVal[0] ? this.timeVal.join('-') : ''
+			},
 			delConfirm() {
 				const that = this;
 				that.delModel = false;

+ 12 - 48
src/pages/order/three/index.vue

@@ -5,18 +5,12 @@
 			<div class="new_card_pd">
 				<Form ref="pagination" inline :model="pagination" :label-width="labelWidth"
 					:label-position="labelPosition" @submit.native.prevent>
-					<FormItem label="充值状态:">
-						<Select v-model="pagination.status" class="input-add">
+					<!-- <FormItem label="支付状态:">
+						<Select v-model="pagination.paid" class="input-add">
 							<Option v-for="(item, index) in num" :value="item.value" :key="index">{{ item.name }}
 							</Option>
 						</Select>
-					</FormItem>
-					<FormItem label="充值类型:">
-						<Select v-model="pagination.type" class="input-add">
-							<Option v-for="(item, index) in typeList" :value="item.value" :key="index">{{ item.name }}
-							</Option>
-						</Select>
-					</FormItem>
+					</FormItem> -->
 					<!-- <FormItem label="员工ID:" label-for="title">
 						<div class='flex-search'>
 							<Input v-model="pagination.work_member_id" icon="ios-search" @on-click='openmid'
@@ -53,7 +47,7 @@
 					<span class="tabBox_pice">{{showName(row.work_member_id)}}</span>
 				</template>
 				<template slot-scope="{ row }" slot="goods_name">
-					<div class="tabBox_serve">
+					<div class="tabBox_serve" >
 						{{row.goods_name}}
 					</div>
 				</template>
@@ -194,7 +188,8 @@
 				ygList: [],
 				chooseId: 0,
 				openErp: false,
-				thead: [{
+				thead: [
+					{
 						title: "id",
 						align: "center",
 						key: "id",
@@ -210,11 +205,6 @@
 						slot: "goods_name",
 						minWidth: 250,
 					},
-					{
-						title: "到账金额",
-						key: "num",
-						minWidth: 70,
-					},
 					{
 						title: "支付金额",
 						slot: "pay_price",
@@ -240,11 +230,6 @@
 						key: "create_time",
 						minWidth: 130,
 					},
-					{
-						title: "备注",
-						key: "mark",
-						minWidth: 130,
-					},
 					{
 						title: "操作",
 						slot: "action",
@@ -255,44 +240,22 @@
 				],
 				tbody: [],
 				num: [{
-						name: '待下单',
+						name: '待支付',
 						value: 0
 					},
 					{
-						name: '未充值',
+						name: '已支付',
 						value: 1
-					},
-					{
-						name: '已充值',
-						value: 2
-					},
-					{
-						name: '充值取消',
-						value: -1
 					}
 				],
-				typeList: [{
-						name: '话费充值',
-						value: 0
-					},
-					{
-						name: '电费充值',
-						value: 2
-					},
-					{
-						name: '水费充值',
-						value: 3
-					},
-				],
 				loading: false,
 				total: 0,
 				pagination: {
-					type: 0,
 					page: 1,
 					limit: 15,
 					order_id: "",
 					time: "",
-					status: 1,
+					status: 0,
 					uid: '',
 					work_member_id: ''
 				},
@@ -383,7 +346,8 @@
 				// }).then(res => {
 				// 	this.ygList = res.data.list
 				// })
-				this.ygList = [{
+				this.ygList = [
+					{
 						name: '待下单',
 						id: 0
 					},
@@ -400,7 +364,7 @@
 						id: -1
 					}
 				]
-
+				
 			},
 			showTime(time) {
 				var date = new Date(time * 1000);

+ 9 - 3
src/pages/setting/step/index.vue

@@ -39,9 +39,12 @@
 				<FormItem label="排序:" prop="sort">
 					<Input v-model="updata.sort" type="text" style="width: 100%" />
 				</FormItem>
-				<FormItem label="提成比例:" prop="ratio">
+				<FormItem label="销售提成:" prop="ratio">
 					<Input v-model="updata.ratio" type="text" style="width: 100%" />
 				</FormItem>
+				<FormItem label="手工提成:" prop="ratio">
+					<Input v-model="updata.craft_ratio" type="text" style="width: 100%" />
+				</FormItem>
 				<FormItem label="股权:" prop="shareholding">
 					<Input v-model="updata.shareholding" type="text" style="width: 100%" />
 				</FormItem>
@@ -87,7 +90,8 @@
 					sort: 1,
 					status: 1,
 					step: '',
-					money:''
+					money:'',
+					craft_ratio:''
 				},
 				id: 51,
 				grid: {
@@ -190,7 +194,8 @@
 					shareholding: '',
 					sort: 1,
 					status: 1,
-					step: ''
+					step: '',
+					craft_ratio:''
 				}
 				this.modals = false
 			},
@@ -309,6 +314,7 @@
 					this.updata.sort = item.sort;
 					this.updata.step = item.step;
 					this.updata.gid = this.id;
+					this.updata.craft_ratio = item.craft_ratio;
 				}
 				this.modals = true
 			},

+ 55 - 17
src/pages/user/list/handle/userDetails.vue

@@ -244,7 +244,7 @@
 						label: '消费记录'
 					},
 					{
-						val: 'order',
+						val: 'recharge',
 						label: '话费充值'
 					},
 					{
@@ -537,23 +537,28 @@
 										res.add_time = that.formatDate(date, that.dataType);
 									}
 									if (res.card) {
-										const card = res.card;
-										if (card.product && card.type == 2) {
-											// 设定时间显示默认样式
-											const card_end_time = new Date(card.card_end_time * 1000);
-											const card_start_time = new Date(card.card_start_time *
-												1000);
-											const end_time = new Date(card.end_time * 1000);
-											const start_time = new Date(card.start_time * 1000);
-											card.card_end_time_text = that.formatDate(card_end_time,
-												that.dataType);
-											card.card_start_time_text = that.formatDate(
-												card_start_time, that.dataType);
-											card.end_time_text = that.formatDate(end_time, that
-												.dataType);
-											card.start_time_text = that.formatDate(start_time, that
-												.dataType);
+										for (let i; i < res.card.length; i++) {
+											const card = res.card[i];
+											if (card.product && card.type == 2) {
+												// 设定时间显示默认样式
+												const card_end_time = new Date(card.card_end_time *
+													1000);
+												const card_start_time = new Date(card.card_start_time *
+													1000);
+												const end_time = new Date(card.end_time * 1000);
+												const start_time = new Date(card.start_time * 1000);
+												card.card_end_time_text = that.formatDate(
+													card_end_time,
+													that.dataType);
+												card.card_start_time_text = that.formatDate(
+													card_start_time, that.dataType);
+												card.end_time_text = that.formatDate(end_time, that
+													.dataType);
+												card.start_time_text = that.formatDate(start_time, that
+													.dataType);
+											}
 										}
+
 									}
 									return res
 								});
@@ -624,6 +629,39 @@
 									}
 								]
 								break;
+							case 'recharge':
+								this.columns = [{
+										title: '订单ID',
+										key: 'order_id',
+										minWidth: 160
+									},
+									{
+										title: '收货人',
+										key: 'real_name',
+										minWidth: 100
+									},
+									{
+										title: '商品数量',
+										key: 'total_num',
+										minWidth: 90
+									},
+									{
+										title: '商品总价',
+										key: 'total_price',
+										minWidth: 110
+									},
+									{
+										title: '实付金额',
+										key: 'pay_price',
+										minWidth: 120
+									},
+									{
+										title: '交易完成时间',
+										key: 'pay_time',
+										minWidth: 120
+									}
+								]
+								break;	
 							case 'subscribe_order':
 								this.columns = [{
 										title: "订单号",

+ 0 - 117
src/pages/user/list/handle/userJl.vue

@@ -1,117 +0,0 @@
-<template>
-    <div>
-        <Modal v-model="modals"  scrollable  footer-hide closable title="用户奖励股权明细" :mask-closable="false"  width="900" @on-cancel="onCancel">
-            <Table ref="selection" :columns="columns4" :data="tabList" :loading="loading"
-                   no-data-text="暂无数据" highlight-row max-height="400"
-                   no-filtered-data-text="暂无筛选结果">
-            </Table>
-            <div class="acea-row row-right page">
-                <Page :total="total" show-elevator show-total @on-change="pageChange"
-                      :page-size="formValidate.limit"/>
-            </div>
-        </Modal>
-    </div>
-</template>
-
-<script>
-    import { mapState } from 'vuex';
-    // import { stairListApi } from '@/api/agent';
-	import { getUserJlList } from '@/api/user';
-    import timeOptions from "@/utils/timeOptions";
-    export default {
-        name: 'userJl',
-        data () {
-            return {
-                modals: false,
-                options: timeOptions,
-                formValidate: {
-                    limit: 15,
-                    page: 1,
-                    uid: 0
-                },
-                loading: false,
-                tabList: [],
-                total: 0,
-                timeVal: [],
-                columns4: [],
-                listTitle: ''
-            }
-        },
-        computed: {
-            ...mapState('admin/layout', [
-                'isMobile'
-            ]),
-            labelWidth () {
-                return this.isMobile ? undefined : 100;
-            },
-            labelPosition () {
-                return this.isMobile ? 'top' : 'right';
-            }
-        },
-        methods: {
-            onCancel () {
-                this.formValidate = {
-                    limit: 15,
-                    page: 1,
-                    uid: 0
-                };
-				this.timeVal = [];
-            },
-            // 具体日期
-            onchangeTime (e) {
-                this.timeVal = e;
-                this.formValidate.data = this.timeVal[0] ? this.timeVal.join('-') : "";
-            },
-            // 列表
-            getList (row) {
-                this.formValidate.uid = row.uid
-                getUserJlList(this.formValidate).then(async res => {
-                    let data = res.data
-                    this.tabList = data.list;
-                    this.total = data.count;
-                    this.columns4 = [
-                        {
-                            title: 'ID',
-                            key: 'id'
-                        },
-                        {
-                            title: '数量',
-                            key: 'reward_share',
-							render: (h, params) => {
-							    return h('viewer', [
-							        h('span', (params.row.pm == 1? '+ ': '- ') + params.row.reward_share)
-							    ]);
-							}
-                        },
-                        {
-                            title: '备注',
-                            key: 'content'
-                        },
-						{
-						    title: '充值订单id / 提现申请id',
-						    key: 'link_id'
-						},
-						{
-						    title: '变更后剩余',
-						    key: 'balance'
-						}
-                    ];
-                    this.loading = false;
-                }).catch(res => {
-                    this.loading = false;
-                    this.tabList = [];
-                    this.$Message.error(res.msg);
-                })
-            },
-            pageChange (item) {
-				console.log(item)
-                this.formValidate.page = item;
-                this.getList(this.formValidate);
-            }
-        }
-    }
-</script>
-
-<style scoped>
-
-</style>

+ 1811 - 1655
src/pages/user/list/index.vue

@@ -1,1707 +1,1863 @@
 <template>
-	<!-- 用户-用户列表 -->
-	<div>
-		<Card :bordered="false" dis-hover class="ivu-mt" :padding="0">
-			<div class="padding-add">
-				<!-- 筛选条件 -->
-				<Form ref="userFrom" :model="userFrom" :label-width="labelWidth" :label-position="labelPosition"
-					@submit.native.prevent>
-					<Row :gutter="24">
-						<Col span="18">
-						<Row>
-							<Col span="24">
-							<Row>
-								<Col>
-								<FormItem label="用户搜索:" label-for="nickname">
-									<Input v-model="userFrom.nickname" placeholder="请输入" element-id="nickname" clearable
-										class="input-add">
-									<Select v-model="field_key" slot="prepend" style="width: 80px">
-										<Option value="all">全部</Option>
-										<Option value="uid">UID</Option>
-										<Option value="phone">手机号</Option>
-										<Option value="nickname">用户昵称</Option>
-									</Select>
-									</Input>
-								</FormItem>
-								</Col>
-							</Row>
-							</Col>
-						</Row>
-						</Col>
-						<template v-if="collapse">
-							<Col span="18">
-							<Row>
-								<Col>
-								<FormItem label="用户分组:" label-for="group_id">
-									<Select v-model="userFrom.group_id" placeholder="请选择" element-id="group_id"
-										clearable class="input-add">
-										<!--                        <Option value="">全部</Option>-->
-										<Option :value="item.id" v-for="(item, index) in groupList" :key="index">
-											{{ item.group_name }}</Option>
-									</Select>
-								</FormItem>
-								</Col>
-								<Col>
-								<FormItem label="用户标签:" label-for="label_id">
-									<div class="labelInput acea-row row-between-wrapper input-add"
-										@click="openLabelList">
-										<div>
-											<div v-if="dataLabel.length">
-												<Tag closable v-for="(item, index) in dataLabel" :key="index"
-													@on-close="closeLabel(item)">{{ item.label_name }}</Tag>
-											</div>
-											<span class="span" v-else>请选择</span>
-										</div>
-										<div class="iconfont iconxiayi"></div>
-									</div>
-								</FormItem>
-								</Col>
-								<Col>
-								<FormItem label="性别:" label-for="sex">
-									<Select v-model="userFrom.sex" placeholder="请选择" clearable class="input-add">
-										<!--                        <Option value="">全部</Option>-->
-										<Option value="1">男</Option>
-										<Option value="2">女</Option>
-										<Option value="0">未知</Option>
-									</Select>
-								</FormItem>
-								</Col>
-							</Row>
-							</Col>
-							<Col span="18">
-							<Row>
-								<Col>
-								<FormItem label="会员等级:" label-for="level">
-									<Select v-model="userFrom.level" placeholder="请选择" element-id="level" clearable
-										class="input-add">
-										<!--                        <Option value="">全部</Option>-->
-										<Option :value="item.id" v-for="(item, index) in levelList" :key="index">
-											{{ item.name }}</Option>
-									</Select>
-								</FormItem>
-								</Col>
-								<Col>
-								<FormItem label="付费会员:" label-for="isMember">
-									<Select v-model="userFrom.isMember" placeholder="请选择" clearable class="input-add">
-										<!--                        <Option value="">全部</Option>-->
-										<Option value="1">是</Option>
-										<Option value="0">否</Option>
-									</Select>
-								</FormItem>
-								</Col>
-								<Col>
-								<FormItem label="身份:">
-									<Select v-model="userFrom.is_promoter" placeholder="请选择" clearable
-										class="input-add">
-										<!--                        <Option value="">全部</Option>-->
-										<Option value="1">推广员</Option>
-										<Option value="0">普通用户</Option>
-									</Select>
-								</FormItem>
-								</Col>
-							</Row>
-							</Col>
+  <!-- 用户-用户列表 -->
+  <div>
+    <Card :bordered="false" dis-hover class="ivu-mt" :padding="0">
+      <div class="padding-add">
+        <!-- 筛选条件 -->
+        <Form
+            ref="userFrom"
+            :model="userFrom"
+            :label-width="labelWidth"
+            :label-position="labelPosition"
+            @submit.native.prevent
+        >
+          <Row :gutter="24">
+            <Col span="18">
+              <Row>
+                <Col span="24">
+                  <Row>
+                    <Col>
+                      <FormItem label="用户搜索:" label-for="nickname">
+                        <Input
+                            v-model="userFrom.nickname"
+                            placeholder="请输入"
+                            element-id="nickname"
+                            clearable
+                            class="input-add"
+                        >
+                          <Select
+                              v-model="field_key"
+                              slot="prepend"
+                              style="width: 80px"
+                          >
+                            <Option value="all">全部</Option>
+                            <Option value="uid">UID</Option>
+                            <Option value="phone">手机号</Option>
+                            <Option value="nickname">用户昵称</Option>
+                          </Select>
+                        </Input>
+                      </FormItem>
+                    </Col>
+                  </Row>
+                </Col>
+              </Row>
+            </Col>
+            <template v-if="collapse">
+              <Col span="18">
+                <Row>
+                  <Col>
+                    <FormItem label="用户分组:" label-for="group_id">
+                      <Select
+                          v-model="userFrom.group_id"
+                          placeholder="请选择"
+                          element-id="group_id"
+                          clearable
+                          class="input-add"
+                      >
+                        <!--                        <Option value="">全部</Option>-->
+                        <Option
+                            :value="item.id"
+                            v-for="(item, index) in groupList"
+                            :key="index"
+                        >{{ item.group_name }}</Option
+                        >
+                      </Select>
+                    </FormItem>
+                  </Col>
+                  <Col>
+                    <FormItem label="用户标签:" label-for="label_id">
+                      <div
+                          class="labelInput acea-row row-between-wrapper input-add"
+                          @click="openLabelList"
+                      >
+                        <div>
+                          <div v-if="dataLabel.length">
+                            <Tag
+                                closable
+                                v-for="(item, index) in dataLabel"
+                                :key="index"
+                                @on-close="closeLabel(item)"
+                            >{{ item.label_name }}</Tag
+                            >
+                          </div>
+                          <span class="span" v-else>请选择</span>
+                        </div>
+                        <div class="iconfont iconxiayi"></div>
+                      </div>
+                    </FormItem>
+                  </Col>
+                  <Col>
+                    <FormItem label="性别:" label-for="sex">
+                      <Select
+                          v-model="userFrom.sex"
+                          placeholder="请选择"
+                          clearable
+                          class="input-add"
+                      >
+                        <!--                        <Option value="">全部</Option>-->
+                        <Option value="1">男</Option>
+                        <Option value="2">女</Option>
+                        <Option value="0">未知</Option>
+                      </Select>
+                    </FormItem>
+                  </Col>
+                </Row>
+              </Col>
+              <Col span="18">
+                <Row>
+                  <Col>
+                    <FormItem label="会员等级:" label-for="level">
+                      <Select
+                          v-model="userFrom.level"
+                          placeholder="请选择"
+                          element-id="level"
+                          clearable
+                          class="input-add"
+                      >
+                        <!--                        <Option value="">全部</Option>-->
+                        <Option
+                            :value="item.id"
+                            v-for="(item, index) in levelList"
+                            :key="index"
+                        >{{ item.name }}</Option
+                        >
+                      </Select>
+                    </FormItem>
+                  </Col>
+                  <Col>
+                    <FormItem label="付费会员:" label-for="isMember">
+                      <Select
+                          v-model="userFrom.isMember"
+                          placeholder="请选择"
+                          clearable
+                          class="input-add"
+                      >
+                        <!--                        <Option value="">全部</Option>-->
+                        <Option value="1">是</Option>
+                        <Option value="0">否</Option>
+                      </Select>
+                    </FormItem>
+                  </Col>
+                  <Col>
+                    <FormItem label="身份:">
+                      <Select
+                          v-model="userFrom.is_promoter"
+                          placeholder="请选择"
+                          clearable
+                          class="input-add"
+                      >
+                        <!--                        <Option value="">全部</Option>-->
+                        <Option value="1">推广员</Option>
+                        <Option value="0">普通用户</Option>
+                      </Select>
+                    </FormItem>
+                  </Col>
+                </Row>
+              </Col>
 
-							<Col span="18">
-							<Row>
-								<Col class="dateMedia">
-								<FormItem label="访问时间:" label-for="user_time">
-									<DatePicker :editable="false" @on-change="onchangeTime" :value="timeVal"
-										format="yyyy/MM/dd" type="daterange" placement="bottom-start"
-										placeholder="自定义时间" :options="options" class="input-add"></DatePicker>
-								</FormItem>
-								</Col>
-								<Col>
-								<FormItem label="访问情况:" label-for="user_time_type">
-									<Select v-model="userFrom.user_time_type" placeholder="请选择"
-										element-id="user_time_type" clearable class="input-add">
-										<!--                        <Option value="all">全部</Option>-->
-										<Option value="visitno">时间段未访问</Option>
-										<Option value="visit">时间段访问过</Option>
-										<Option value="add_time">首次访问</Option>
-									</Select>
-								</FormItem>
-								</Col>
-								<Col>
-								<FormItem label="下单次数:" label-for="pay_count">
-									<Select v-model="userFrom.pay_count" placeholder="请选择" element-id="pay_count"
-										clearable class="input-add">
-										<!--                        <Option value="">全部</Option>-->
-										<Option value="-1">0次</Option>
-										<Option value="0">1次以上</Option>
-										<Option value="1">2次以上</Option>
-										<Option value="2">3次以上</Option>
-										<Option value="3">4次以上</Option>
-										<Option value="4">5次以上</Option>
-									</Select>
-								</FormItem>
-								</Col>
-							</Row>
-							</Col>
-							<Col span="18">
-							<Row>
-								<Col>
-								<FormItem label="国家:" label-for="country">
-									<Select v-model="userFrom.country" placeholder="请选择" element-id="country" clearable
-										@on-change="changeCountry" class="input-add">
-										<!--                        <Option value="">全部</Option>-->
-										<Option value="domestic">中国</Option>
-										<Option value="abroad">其他</Option>
-									</Select>
-								</FormItem>
-								</Col>
-								<Col v-if="userFrom.country === 'domestic'">
-								<FormItem label="省份:">
-									<Cascader :data="addresData" change-on-select :value="address" v-model="address"
-										@on-change="handleChange" class="input-add"></Cascader>
-								</FormItem>
-								</Col>
-							</Row>
-							</Col>
+              <Col span="18">
+                <Row>
+                  <Col class="dateMedia">
+                    <FormItem label="访问时间:" label-for="user_time">
+                      <DatePicker
+                          :editable="false"
+                          @on-change="onchangeTime"
+                          :value="timeVal"
+                          format="yyyy/MM/dd"
+                          type="daterange"
+                          placement="bottom-start"
+                          placeholder="自定义时间"
+                          :options="options"
+                          class="input-add"
+                      ></DatePicker>
+                    </FormItem>
+                  </Col>
+                  <Col>
+                    <FormItem label="访问情况:" label-for="user_time_type">
+                      <Select
+                          v-model="userFrom.user_time_type"
+                          placeholder="请选择"
+                          element-id="user_time_type"
+                          clearable
+                          class="input-add"
+                      >
+                        <!--                        <Option value="all">全部</Option>-->
+                        <Option value="visitno">时间段未访问</Option>
+                        <Option value="visit">时间段访问过</Option>
+                        <Option value="add_time">首次访问</Option>
+                      </Select>
+                    </FormItem>
+                  </Col>
+                  <Col>
+                    <FormItem label="下单次数:" label-for="pay_count">
+                      <Select
+                          v-model="userFrom.pay_count"
+                          placeholder="请选择"
+                          element-id="pay_count"
+                          clearable
+                          class="input-add"
+                      >
+                        <!--                        <Option value="">全部</Option>-->
+                        <Option value="-1">0次</Option>
+                        <Option value="0">1次以上</Option>
+                        <Option value="1">2次以上</Option>
+                        <Option value="2">3次以上</Option>
+                        <Option value="3">4次以上</Option>
+                        <Option value="4">5次以上</Option>
+                      </Select>
+                    </FormItem>
+                  </Col>
+                </Row>
+              </Col>
+              <Col span="18">
+                <Row>
+                  <Col>
+                    <FormItem label="国家:" label-for="country">
+                      <Select
+                          v-model="userFrom.country"
+                          placeholder="请选择"
+                          element-id="country"
+                          clearable
+                          @on-change="changeCountry"
+                          class="input-add"
+                      >
+                        <!--                        <Option value="">全部</Option>-->
+                        <Option value="domestic">中国</Option>
+                        <Option value="abroad">其他</Option>
+                      </Select>
+                    </FormItem>
+                  </Col>
+                  <Col v-if="userFrom.country === 'domestic'">
+                    <FormItem label="省份:">
+                      <Cascader
+                          :data="addresData"
+						  change-on-select
+                          :value="address"
+                          v-model="address"
+                          @on-change="handleChange"
+                          class="input-add"
+                      ></Cascader>
+                    </FormItem>
+                  </Col>
+                </Row>
+              </Col>
 
-						</template>
-						<Col span="6" class="ivu-text-right userFrom">
-						<FormItem>
-							<Button type="primary" label="default" class="mr15" @click="userSearchs">搜索</Button>
-							<Button class="ResetSearch" @click="reset('userFrom')">重置</Button>
-							<a v-font="14" class="ivu-ml-8" @click="collapse = !collapse">
-								<template v-if="!collapse">
-									展开
-									<Icon type="ios-arrow-down" />
-								</template>
-								<template v-else>
-									收起
-									<Icon type="ios-arrow-up" />
-								</template>
-							</a>
-						</FormItem>
-						</Col>
-					</Row>
-				</Form>
-			</div>
-		</Card>
-		<Card :bordered="false" dis-hover class="ivu-mt listbox">
-			<div class="new_tab">
-				<!-- Tab栏切换 -->
-				<Tabs v-model="headeType" @on-click="onClickTab">
-					<TabPane :label="item.name" :name="item.type" v-for="(item, index) in headeNum" :key="index" />
-				</Tabs>
-			</div>
-			<Row type="flex" justify="space-between">
-				<!-- 相关操作 -->
-				<Col span="24">
-				<Button v-auth="['admin-user-save']" type="primary" class="mr20" @click="save">添加用户</Button>
-				<Tooltip content="本页至少选中一项" :disabled="!!checkUidList.length && isAll==0">
-					<Button v-auth="['admin-user-coupon']" type="primary" class="mr20"
-						:disabled="!checkUidList.length && isAll==0" @click="onSend">发送优惠券</Button>
-				</Tooltip>
-				<Tooltip content="本页至少选中一项" :disabled="!!checkUidList.length && isAll==0">
-					<Button v-auth="['admin-wechat-news']" class="greens mr20" size="default"
-						:disabled="!checkUidList.length && isAll==0" @click="onSendPic"
-						v-if="userFrom.user_type === 'wechat'">
-						<Icon type="md-list"></Icon>
-						发送图文消息
-					</Button>
-				</Tooltip>
-				<Tooltip content="本页至少选中一项" :disabled="!!checkUidList.length && isAll==0">
-					<Button v-auth="['admin-user-set_label']" class="mr20" :disabled="!checkUidList.length && isAll==0"
-						@click="setBatch">批量设置</Button>
-				</Tooltip>
-				</Col>
-			</Row>
-			<!-- 用户列表表格 -->
-			<vxe-table ref="xTable" class="mt25" :loading="loading" row-id="uid" :expand-config="{accordion: true}"
-				:checkbox-config="{reserve: true}" @checkbox-all="checkboxAll" @checkbox-change="checkboxItem"
-				:data="userLists">
-				<vxe-column type="" width="0"></vxe-column>
-				<vxe-column type="expand" width="35">
-					<template #content="{ row }">
-						<div class="tdinfo">
-							<Row class="expand-row">
-								<Col span="6">
-								<span class="expand-key">首次访问:</span>
-								<span class="expand-value"> {{row.add_time | formatDate}}</span>
-								</Col>
-								<Col span="6">
-								<span class="expand-key">近次访问:</span>
-								<span class="expand-value">{{row.last_time | formatDate}}</span>
-								</Col>
-								<Col span="6">
-								<span class="expand-key">身份证号:</span>
-								<span class="expand-value">{{row.card_id}}</span>
-								</Col>
-								<Col span="6">
-								<span class="expand-key">真实姓名:</span>
-								<span class="expand-value">{{row.real_name}}</span>
-								</Col>
-								<!-- <Col span="6">
+            </template>
+            <Col span="6" class="ivu-text-right userFrom">
+              <FormItem>
+                <Button
+                    type="primary"
+                    label="default"
+                    class="mr15"
+                    @click="userSearchs"
+                >搜索</Button
+                >
+                <Button class="ResetSearch" @click="reset('userFrom')"
+                >重置</Button
+                >
+                <a v-font="14" class="ivu-ml-8" @click="collapse = !collapse">
+                  <template v-if="!collapse">
+                    展开 <Icon type="ios-arrow-down" />
+                  </template>
+                  <template v-else>
+                    收起 <Icon type="ios-arrow-up" />
+                  </template>
+                </a>
+              </FormItem>
+            </Col>
+          </Row>
+        </Form>
+      </div>
+    </Card>
+    <Card :bordered="false" dis-hover class="ivu-mt listbox">
+      <div class="new_tab">
+        <!-- Tab栏切换 -->
+        <Tabs v-model="headeType" @on-click="onClickTab">
+          <TabPane
+              :label="item.name"
+              :name="item.type"
+              v-for="(item, index) in headeNum"
+              :key="index"
+          />
+        </Tabs>
+      </div>
+      <Row type="flex" justify="space-between">
+        <!-- 相关操作 -->
+        <Col span="24">
+          <Button
+              v-auth="['admin-user-save']"
+              type="primary"
+              class="mr20"
+              @click="save"
+          >添加用户</Button
+          >
+          <Tooltip
+              content="本页至少选中一项"
+              :disabled="!!checkUidList.length && isAll==0"
+          >
+            <Button
+                v-auth="['admin-user-coupon']"
+                type="primary"
+                class="mr20"
+                :disabled="!checkUidList.length && isAll==0"
+                @click="onSend"
+            >发送优惠券</Button
+            >
+          </Tooltip>
+          <Tooltip
+              content="本页至少选中一项"
+              :disabled="!!checkUidList.length && isAll==0"
+          >
+            <Button
+                v-auth="['admin-wechat-news']"
+                class="greens mr20"
+                size="default"
+                :disabled="!checkUidList.length && isAll==0"
+                @click="onSendPic"
+                v-if="userFrom.user_type === 'wechat'"
+            >
+              <Icon type="md-list"></Icon>
+              发送图文消息
+            </Button>
+          </Tooltip>
+          <Tooltip
+              content="本页至少选中一项"
+              :disabled="!!checkUidList.length && isAll==0"
+          >
+            <Button
+                v-auth="['admin-user-set_label']"
+                class="mr20"
+                :disabled="!checkUidList.length && isAll==0"
+                @click="setBatch"
+            >批量设置</Button
+            >
+          </Tooltip>
+        </Col>
+      </Row>
+      <!-- 用户列表表格 -->
+      <vxe-table
+          ref="xTable"
+          class="mt25"
+          :loading="loading"
+          row-id="uid"
+          :expand-config="{accordion: true}"
+          :checkbox-config="{reserve: true}"
+          @checkbox-all="checkboxAll"
+          @checkbox-change="checkboxItem"
+          :data="userLists">
+        <vxe-column type="" width="0"></vxe-column>
+        <vxe-column type="expand" width="35">
+          <template #content="{ row }">
+            <div class="tdinfo">
+              <Row class="expand-row">
+                <Col span="6">
+                  <span class="expand-key">首次访问:</span>
+                  <span class="expand-value"> {{row.add_time | formatDate}}</span>
+                </Col>
+                <Col span="6">
+                  <span class="expand-key">近次访问:</span>
+                  <span class="expand-value">{{row.last_time  | formatDate}}</span>
+                </Col>
+                <Col span="6">
+                  <span class="expand-key">身份证号:</span>
+                  <span class="expand-value">{{row.card_id}}</span>
+                </Col>
+                <Col span="6">
+                  <span class="expand-key">真实姓名:</span>
+                  <span class="expand-value">{{row.real_name}}</span>
+                </Col>
+                <!-- <Col span="6">
                     <span class="expand-key">手机号:</span>
                     <span class="expand-value">{{row.phone}}</span>
                 </Col> -->
-							</Row>
-							<Row class="expand-row">
-								<!-- <Col span="6">
+              </Row>
+              <Row class="expand-row">
+                <!-- <Col span="6">
                     <span class="expand-key">真实姓名:</span>
                     <span class="expand-value">{{row.real_name}}</span>
                 </Col> -->
-								<Col span="6">
-								<span class="expand-key">标签:</span>
-								<span class="expand-value">{{row.labels}}</span>
-								</Col>
-								<Col span="6">
-								<span class="expand-key">生日:</span>
-								<span class="expand-value">{{row.birthday}}</span>
-								</Col>
-								<Col span="6">
-								<span class="expand-key">地址:</span>
-								<span class="expand-value">{{row.addres}}</span>
-								</Col>
-							</Row>
-							<Row class="expand-row">
-								<Col span="6">
-								<span class="expand-key">备注:</span>
-								<span class="expand-value">{{row.mark}}</span>
-								</Col>
-							</Row>
-						</div>
-					</template>
-				</vxe-column>
-				<vxe-column type="checkbox" width="100">
-					<template #header>
-						<div>
-							<Dropdown transfer @on-click="allPages">
-								<a href="javascript:void(0)" class="acea-row row-middle">
-									<span>全选({{isAll==1?(total-checkUidList.length):checkUidList.length}})</span>
-									<Icon type="ios-arrow-down"></Icon>
-								</a>
-								<template #list>
-									<DropdownMenu>
-										<DropdownItem name="0">当前页</DropdownItem>
-										<DropdownItem name="1">所有页</DropdownItem>
-									</DropdownMenu>
-								</template>
-							</Dropdown>
-						</div>
-					</template>
-				</vxe-column>
-				<vxe-column field="uid" title="UID" width="60"></vxe-column>
-				<vxe-column field="avatars" title="头像" width="50">
-					<template v-slot="{ row }">
-						<viewer>
-							<div class="tabBox_img">
-								<img v-lazy="row.avatar" />
-							</div>
-						</viewer>
-					</template>
-				</vxe-column>
-				<vxe-column field="nickname" title="昵称" min-width="150">
-					<template v-slot="{ row }">
-						<div class="acea-row">
-							<Icon type="md-male" v-show="row.sex === '男'" color="#2db7f5" size="15" class="mr5" />
-							<Icon type="md-female" v-show="row.sex === '女'" color="#ed4014" size="15" class="mr5" />
-							<div v-if="row.delete_time != null" style="color:#ed4014;">{{row.nickname}} (已注销)</div>
-							<div v-else v-text="row.nickname"></div>
-						</div>
-					</template>
-				</vxe-column>
-				<vxe-column field="isMember" title="付费会员" min-width="90">
-					<template v-slot="{ row }">
-						<div>{{ row.isMember ? "是" : "否" }}</div>
-					</template>
-				</vxe-column>
-				<vxe-column field="level" title="用户等级" min-width="90"></vxe-column>
-				<vxe-column field="group_id" title="分组" min-width="100"></vxe-column>
-				<vxe-column field="phone" title="手机号" min-width="110"></vxe-column>
-				<vxe-column field="user_type" title="用户类型" min-width="100"></vxe-column>
-				<vxe-column field="spread_uid_nickname" title="推荐人" min-width="100"></vxe-column>
-				<vxe-column field="now_money" title="余额" min-width="100"></vxe-column>
-				<vxe-column field="action" title="操作" align="center" width="180" fixed="right">
-					<template v-slot="{ row }">
-						<a @click="lookJl(row)">奖励股权明细</a>
-						<Divider type="vertical" />
-						<span v-if="row.delete_time != null" style="color: #c5c8ce;">编辑</span>
-						<a v-else @click="edit(row)">编辑</a>
-						<Divider type="vertical" v-if="row.is_extend_info" />
-
-						<a @click="extendInfo(row)" v-if="row.is_extend_info">信息补充</a>
-						<Divider type="vertical" />
-						<a @click="changeMenu(row, '1')">详情</a>
-					</template>
-				</vxe-column>
-			</vxe-table>
-			<vxe-pager class="mt20" border size="medium" :page-size="userFrom.limit" :current-page="userFrom.page"
-				:total="total" :layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Total']"
-				@page-change="pageChange">
-			</vxe-pager>
-		</Card>
-		<!-- 用户标签 -->
-		<Modal v-model="labelListShow" scrollable title="选择用户标签" :closable="true" width="540" :footer-hide="true"
-			:mask-closable="false">
-			<labelList ref="labelList" @activeData="activeData" @close="labelListClose"></labelList>
-		</Modal>
-		<!-- 编辑表单 积分余额-->
-		<edit-from ref="edits" :FromData="FromData" :userEdit="1" @submitFail="submitFail"></edit-from>
-		<!-- 发送优惠券-->
-		<send-from ref="sends" :is-all="isAll" :where="userFrom" :userIds="checkUidList.join(',')"></send-from>
-		<!-- 会员详情-->
-		<user-details ref="userDetails" :group-list="groupList"></user-details>
-		<!--发送图文消息 -->
-		<Modal v-model="modal13" scrollable title="发送消息" width="1200" height="800" footer-hide class="modelBox">
-			<news-category v-if="modal13" :isShowSend="isShowSend" :is-all="isAll" :where="userFrom"
-				:userIds="checkUidList.join(',')" :scrollerHeight="scrollerHeight" :contentTop="contentTop"
-				:contentWidth="contentWidth" :maxCols="maxCols"></news-category>
-		</Modal>
-		<!--修改推广人-->
-		<Modal v-model="promoterShow" scrollable title="修改推广人" class="order_box" :closable="false">
-			<Form ref="formInline" :model="formInline" :label-width="100" @submit.native.prevent>
-				<FormItem label="用户头像:" prop="image">
-					<div class="picBox" @click="customer">
-						<div class="pictrue" v-if="formInline.image">
-							<img v-lazy="formInline.image" />
-						</div>
-						<div class="upLoad acea-row row-center-wrapper" v-else>
-							<Icon type="ios-camera-outline" size="26" />
-						</div>
-					</div>
-				</FormItem>
-			</Form>
-			<div slot="footer">
-				<Button type="primary" @click="putSend('formInline')">提交</Button>
-				<Button @click="cancel('formInline')">取消</Button>
-			</div>
-		</Modal>
-		<Modal v-model="customerShow" scrollable title="请选择商城用户" :closable="false" width="900">
-			<customerInfo v-if="customerShow" @imageObject="imageObject"></customerInfo>
-		</Modal>
-		<Modal v-model="labelShow" scrollable title="选择用户标签" :closable="true" width="540" :footer-hide="true">
-			<userLabel :uid="labelActive.uid" @close="labelClose"></userLabel>
-		</Modal>
-		<!-- 批量设置 -->
-		<Modal v-model="batchModal" title="批量设置" width="750" class-name="batch-modal"
-			@on-visible-change="batchVisibleChange">
-			<Alert show-icon>每次只能修改一项,如需修改多项,请多次操作。</Alert>
-			<Row type="flex" align="middle">
-				<Col span="4">
-				<Menu :active-name="menuActive" width="auto" @on-select="menuSelect">
-					<MenuItem :name="1">用户分组</MenuItem>
-					<MenuItem :name="2">用户标签</MenuItem>
-					<MenuItem :name="3">用户等级</MenuItem>
-					<MenuItem :name="4">积分余额</MenuItem>
-					<MenuItem :name="5">赠送会员</MenuItem>
-					<MenuItem :name="6">上级推广人</MenuItem>
-				</Menu>
-				</Col>
-				<Col span="20">
-				<Form :model="batchData" :label-width="122">
-					<FormItem v-if="menuActive === 1" label="用户分组:">
-						<Select v-model="batchData.group_id">
-							<Option v-for="item in groupList" :key="item.id" :value="item.id">{{ item.group_name }}
-							</Option>
-						</Select>
-					</FormItem>
-					<FormItem v-if="menuActive === 2" label="用户标签:">
-						<div class="select-tag" @click="openLabelList">
-							<div v-if="batchLabel.length">
-								<Tag v-for="item in batchLabel" :key="item.id" closable @on-close="tagClose(item.id)">
-									{{ item.label_name }}</Tag>
-							</div>
-							<span v-else class="placeholder">请选择</span>
-							<Icon type="ios-arrow-down" />
-						</div>
-					</FormItem>
-					<FormItem v-if="menuActive === 3" label="用户等级:">
-						<Select v-model="batchData.level_id">
-							<Option v-for="item in levelList" :key="item.id" :value="item.id">{{ item.name }}</Option>
-						</Select>
-					</FormItem>
-					<FormItem v-if="menuActive === 4" label="修改余额:">
-						<RadioGroup v-model="batchData.money_status">
-							<Radio :label="1">增加</Radio>
-							<Radio :label="2">减少</Radio>
-						</RadioGroup>
-					</FormItem>
-					<FormItem v-if="menuActive === 4" label="余额:">
-						<InputNumber v-model="batchData.money" :min="0" :max="999999"></InputNumber>
-					</FormItem>
-					<FormItem v-if="menuActive === 4" label="修改积分:">
-						<RadioGroup v-model="batchData.integration_status">
-							<Radio :label="1">增加</Radio>
-							<Radio :label="2">减少</Radio>
-						</RadioGroup>
-					</FormItem>
-					<FormItem v-if="menuActive === 4" label="积分:">
-						<InputNumber v-model="batchData.integration" :min="0" :max="999999"></InputNumber>
-					</FormItem>
-					<FormItem v-if="menuActive === 5" label="修改时长:">
-						<RadioGroup v-model="batchData.days_status">
-							<Radio :label="1">增加</Radio>
-							<Radio :label="2">减少</Radio>
-						</RadioGroup>
-					</FormItem>
-					<FormItem v-if="menuActive === 5" label="修改时长(天):">
-						<InputNumber v-model="batchData.day" :min="0" :max="999999"></InputNumber>
-					</FormItem>
-					<FormItem v-if="menuActive === 6" label="上级推广员:">
-						<Input :value="spread_name" placeholder="请选择" icon="ios-arrow-down" @on-click="customer"
-							@on-focus="customer"></Input>
-					</FormItem>
-				</Form>
-				</Col>
-			</Row>
-			<div slot="footer">
-				<Button @click="cancelBatch">取消</Button>
-				<Button type="primary" @click="saveBatch">保存</Button>
-			</div>
-		</Modal>
-		 <user-jl ref="userJlList"></user-jl> >
-	</div>
+                <Col span="6">
+                  <span class="expand-key">标签:</span>
+                  <span class="expand-value">{{row.labels}}</span>
+                </Col>
+                <Col span="6">
+                  <span class="expand-key">生日:</span>
+                  <span class="expand-value">{{row.birthday}}</span>
+                </Col>
+                <Col span="6">
+                  <span class="expand-key">地址:</span>
+                  <span class="expand-value">{{row.addres}}</span>
+                </Col>
+              </Row>
+              <Row class="expand-row">
+                <Col span="6">
+                  <span class="expand-key">备注:</span>
+                  <span class="expand-value">{{row.mark}}</span>
+                </Col>
+              </Row>
+            </div>
+          </template>
+        </vxe-column>
+        <vxe-column type="checkbox" width="100">
+          <template #header>
+            <div>
+              <Dropdown transfer @on-click="allPages">
+                <a href="javascript:void(0)" class="acea-row row-middle">
+                  <span>全选({{isAll==1?(total-checkUidList.length):checkUidList.length}})</span>
+                  <Icon type="ios-arrow-down"></Icon>
+                </a>
+                <template #list>
+                  <DropdownMenu>
+                    <DropdownItem name="0">当前页</DropdownItem>
+                    <DropdownItem name="1">所有页</DropdownItem>
+                  </DropdownMenu>
+                </template>
+              </Dropdown>
+            </div>
+          </template>
+        </vxe-column>
+        <vxe-column field="uid" title="UID" width="60"></vxe-column>
+        <vxe-column field="avatars" title="头像" width="50">
+          <template v-slot="{ row }">
+            <viewer>
+              <div class="tabBox_img">
+                <img v-lazy="row.avatar" />
+              </div>
+            </viewer>
+          </template>
+        </vxe-column>
+        <vxe-column field="nickname" title="昵称" min-width="150">
+          <template v-slot="{ row }">
+            <div class="acea-row">
+              <Icon
+                  type="md-male"
+                  v-show="row.sex === '男'"
+                  color="#2db7f5"
+                  size="15"
+                  class="mr5"
+              />
+              <Icon
+                  type="md-female"
+                  v-show="row.sex === '女'"
+                  color="#ed4014"
+                  size="15"
+                  class="mr5"
+              />
+              <div v-if="row.delete_time != null" style="color:#ed4014;">{{row.nickname}} (已注销)</div>
+              <div v-else v-text="row.nickname"></div>
+            </div>
+          </template>
+        </vxe-column>
+        <vxe-column field="isMember" title="付费会员" min-width="90">
+          <template v-slot="{ row }">
+            <div>{{ row.isMember ? "是" : "否" }}</div>
+          </template>
+        </vxe-column>
+        <vxe-column field="level" title="用户等级" min-width="90"></vxe-column>
+        <vxe-column field="group_id" title="分组" min-width="100"></vxe-column>
+        <vxe-column field="phone" title="手机号" min-width="110"></vxe-column>
+        <vxe-column field="user_type" title="用户类型" min-width="100"></vxe-column>
+        <vxe-column field="spread_uid_nickname" title="推荐人" min-width="100"></vxe-column>
+        <vxe-column field="now_money" title="余额" min-width="100"></vxe-column>
+        <vxe-column field="action" title="操作" align="center" width="180" fixed="right">
+          <template v-slot="{ row }">
+            <span v-if="row.delete_time != null" style="color: #c5c8ce;">编辑</span>
+            <a v-else @click="edit(row)">编辑</a>
+            <Divider type="vertical" v-if="row.is_extend_info"/>
+            <a @click="extendInfo(row)" v-if="row.is_extend_info">信息补充</a>
+            <Divider type="vertical" />
+            <a @click="changeMenu(row, '1')">详情</a>
+          </template>
+        </vxe-column>
+      </vxe-table>
+      <vxe-pager class="mt20" border size="medium" :page-size="userFrom.limit" :current-page="userFrom.page" :total="total"
+                 :layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Total']" @page-change="pageChange">
+      </vxe-pager>
+    </Card>
+    <!-- 用户标签 -->
+    <Modal
+        v-model="labelListShow"
+        scrollable
+        title="选择用户标签"
+        :closable="true"
+        width="540"
+        :footer-hide="true"
+        :mask-closable="false"
+    >
+      <labelList
+          ref="labelList"
+          @activeData="activeData"
+          @close="labelListClose"
+      ></labelList>
+    </Modal>
+    <!-- 编辑表单 积分余额-->
+    <edit-from
+        ref="edits"
+        :FromData="FromData"
+        :userEdit="1"
+        @submitFail="submitFail"
+    ></edit-from>
+    <!-- 发送优惠券-->
+    <send-from
+        ref="sends"
+        :is-all="isAll"
+        :where="userFrom"
+        :userIds="checkUidList.join(',')"
+    ></send-from>
+    <!-- 会员详情-->
+    <user-details ref="userDetails" :group-list="groupList"></user-details>
+    <!--发送图文消息 -->
+    <Modal
+        v-model="modal13"
+        scrollable
+        title="发送消息"
+        width="1200"
+        height="800"
+        footer-hide
+        class="modelBox"
+    >
+      <news-category
+          v-if="modal13"
+          :isShowSend="isShowSend"
+          :is-all="isAll"
+          :where="userFrom"
+          :userIds="checkUidList.join(',')"
+          :scrollerHeight="scrollerHeight"
+          :contentTop="contentTop"
+          :contentWidth="contentWidth"
+          :maxCols="maxCols"
+      ></news-category>
+    </Modal>
+    <!--修改推广人-->
+    <Modal
+        v-model="promoterShow"
+        scrollable
+        title="修改推广人"
+        class="order_box"
+        :closable="false"
+    >
+      <Form
+          ref="formInline"
+          :model="formInline"
+          :label-width="100"
+          @submit.native.prevent
+      >
+        <FormItem label="用户头像:" prop="image">
+          <div class="picBox" @click="customer">
+            <div class="pictrue" v-if="formInline.image">
+              <img v-lazy="formInline.image" />
+            </div>
+            <div class="upLoad acea-row row-center-wrapper" v-else>
+              <Icon type="ios-camera-outline" size="26" />
+            </div>
+          </div>
+        </FormItem>
+      </Form>
+      <div slot="footer">
+        <Button type="primary" @click="putSend('formInline')">提交</Button>
+        <Button @click="cancel('formInline')">取消</Button>
+      </div>
+    </Modal>
+    <Modal
+        v-model="customerShow"
+        scrollable
+        title="请选择商城用户"
+        :closable="false"
+        width="900"
+    >
+      <customerInfo
+          v-if="customerShow"
+          @imageObject="imageObject"
+      ></customerInfo>
+    </Modal>
+    <Modal
+        v-model="labelShow"
+        scrollable
+        title="选择用户标签"
+        :closable="true"
+        width="540"
+        :footer-hide="true"
+    >
+      <userLabel :uid="labelActive.uid" @close="labelClose"></userLabel>
+    </Modal>
+    <!-- 批量设置 -->
+    <Modal v-model="batchModal" title="批量设置" width="750" class-name="batch-modal" @on-visible-change="batchVisibleChange">
+      <Alert show-icon>每次只能修改一项,如需修改多项,请多次操作。</Alert>
+      <Row type="flex" align="middle">
+        <Col span="4">
+          <Menu :active-name="menuActive" width="auto" @on-select="menuSelect">
+            <MenuItem :name="1">用户分组</MenuItem>
+            <MenuItem :name="2">用户标签</MenuItem>
+            <MenuItem :name="3">用户等级</MenuItem>
+            <MenuItem :name="4">积分余额</MenuItem>
+            <MenuItem :name="5">赠送会员</MenuItem>
+            <MenuItem :name="6">上级推广人</MenuItem>
+          </Menu>
+        </Col>
+        <Col span="20">
+          <Form :model="batchData" :label-width="122">
+            <FormItem v-if="menuActive === 1" label="用户分组:">
+              <Select v-model="batchData.group_id">
+                <Option v-for="item in groupList" :key="item.id" :value="item.id">{{ item.group_name }}</Option>
+              </Select>
+            </FormItem>
+            <FormItem v-if="menuActive === 2" label="用户标签:">
+              <div class="select-tag" @click="openLabelList">
+                <div v-if="batchLabel.length">
+                  <Tag v-for="item in batchLabel" :key="item.id" closable @on-close="tagClose(item.id)">{{ item.label_name }}</Tag>
+                </div>
+                <span v-else class="placeholder">请选择</span>
+                <Icon type="ios-arrow-down" />
+              </div>
+            </FormItem>
+            <FormItem v-if="menuActive === 3" label="用户等级:">
+              <Select v-model="batchData.level_id">
+                <Option v-for="item in levelList" :key="item.id" :value="item.id">{{ item.name }}</Option>
+              </Select>
+            </FormItem>
+            <FormItem v-if="menuActive === 4" label="修改余额:">
+              <RadioGroup v-model="batchData.money_status">
+                <Radio :label="1">增加</Radio>
+                <Radio :label="2">减少</Radio>
+              </RadioGroup>
+            </FormItem>
+            <FormItem v-if="menuActive === 4" label="余额:">
+              <InputNumber v-model="batchData.money" :min="0" :max="999999"></InputNumber>
+            </FormItem>
+            <FormItem v-if="menuActive === 4" label="修改积分:">
+              <RadioGroup v-model="batchData.integration_status">
+                <Radio :label="1">增加</Radio>
+                <Radio :label="2">减少</Radio>
+              </RadioGroup>
+            </FormItem>
+            <FormItem v-if="menuActive === 4" label="积分:">
+              <InputNumber v-model="batchData.integration" :min="0" :max="999999"></InputNumber>
+            </FormItem>
+            <FormItem v-if="menuActive === 5" label="修改时长:">
+              <RadioGroup v-model="batchData.days_status">
+                <Radio :label="1">增加</Radio>
+                <Radio :label="2">减少</Radio>
+              </RadioGroup>
+            </FormItem>
+            <FormItem v-if="menuActive === 5" label="修改时长(天):">
+              <InputNumber v-model="batchData.day" :min="0" :max="999999"></InputNumber>
+            </FormItem>
+            <FormItem v-if="menuActive === 6" label="上级推广员:">
+              <Input :value="spread_name" placeholder="请选择" icon="ios-arrow-down" @on-click="customer" @on-focus="customer"></Input>
+            </FormItem>
+          </Form>
+        </Col>
+      </Row>
+      <div slot="footer">
+        <Button @click="cancelBatch">取消</Button>
+        <Button type="primary" @click="saveBatch">保存</Button>
+      </div>
+    </Modal>
+  </div>
 </template>
 
 <script>
-	import {
-		formatDate
-	} from '@/utils/validate';
-	import userLabel from "../../../components/userLabel";
-	import labelList from "@/components/labelList";
-	import {
-		mapState
-	} from "vuex";
-	import expandRow from "./tableExpand.vue";
-	import {
-		userList,
-		getUserData,
-		isShowApi,
-		editOtherApi,
-		giveLevelApi,
-		userSetGroup,
-		userGroupApi,
-		levelListApi,
-		userSetLabelApi,
-		userLabelApi,
-		userSynchro,
-		getUserSaveForm,
-		giveLevelTimeApi,
-		extendInfo,
-		batchProcess
-	} from "@/api/user";
-	import {
-		agentSpreadApi
-	} from "@/api/agent";
-	import editFrom from "../../../components/from/from";
-	import sendFrom from "@/components/sendCoupons/index";
-	import userDetails from "./handle/userDetails";
-	import newsCategory from "@/components/newsCategory/index";
-	import city from "@/utils/city";
-	import customerInfo from "@/components/customerInfo";
-	import userJl from "./handle/userJl.vue";
-	export default {
-		name: "user_list",
-		filters: {
-			formatDate(time) {
-				if (time !== 0) {
-					let date = new Date(time * 1000);
-					return formatDate(date, 'yyyy-MM-dd hh:mm');
-				}
-			}
-		},
-		components: {
-			userJl,
-			expandRow,
-			editFrom,
-			sendFrom,
-			userDetails,
-			newsCategory,
-			customerInfo,
-			userLabel,
-			labelList,
-		},
-		data() {
-			return {
-				dataLabel: [],
-				labelListShow: false,
-				labelShow: false,
-				customerShow: false,
-				promoterShow: false,
-				labelActive: {
-					uid: 0,
-				},
-				formInline: {
-					uid: 0,
-					spread_uid: 0,
-					image: "",
-				},
-				options: {
-					shortcuts: [{
-							text: "今天",
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(
-									new Date(
-										new Date().getFullYear(),
-										new Date().getMonth(),
-										new Date().getDate()
-									)
-								);
-								return [start, end];
-							},
-						},
-						{
-							text: "昨天",
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(
-									start.setTime(
-										new Date(
-											new Date().getFullYear(),
-											new Date().getMonth(),
-											new Date().getDate() - 1
-										)
-									)
-								);
-								end.setTime(
-									end.setTime(
-										new Date(
-											new Date().getFullYear(),
-											new Date().getMonth(),
-											new Date().getDate() - 1
-										)
-									)
-								);
-								return [start, end];
-							},
-						},
-						{
-							text: "最近7天",
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(
-									start.setTime(
-										new Date(
-											new Date().getFullYear(),
-											new Date().getMonth(),
-											new Date().getDate() - 6
-										)
-									)
-								);
-								return [start, end];
-							},
-						},
-						{
-							text: "最近30天",
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(
-									start.setTime(
-										new Date(
-											new Date().getFullYear(),
-											new Date().getMonth(),
-											new Date().getDate() - 29
-										)
-									)
-								);
-								return [start, end];
-							},
-						},
-						{
-							text: "上月",
-							value() {
-								const end = new Date();
-								const start = new Date();
-								const day = new Date(start.getFullYear(), start.getMonth(), 0).getDate();
-								start.setTime(
-									start.setTime(
-										new Date(new Date().getFullYear(), new Date().getMonth() - 1, 1)
-									)
-								);
-								end.setTime(
-									end.setTime(
-										new Date(new Date().getFullYear(), new Date().getMonth() - 1, day)
-									)
-								);
-								return [start, end];
-							},
-						},
-						{
-							text: "本月",
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(
-									start.setTime(
-										new Date(new Date().getFullYear(), new Date().getMonth(), 1)
-									)
-								);
-								return [start, end];
-							},
-						},
-						{
-							text: "本年",
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(
-									start.setTime(new Date(new Date().getFullYear(), 0, 1))
-								);
-								return [start, end];
-							},
-						},
-					],
-				},
-				collapse: false,
-				headeType: "-1",
-				headeNum: [{
-						type: "-1",
-						name: "全部"
-					},
-					{
-						type: "wechat",
-						name: "微信公众号"
-					},
-					{
-						type: "routine",
-						name: "微信小程序"
-					},
-					{
-						type: "h5",
-						name: "H5"
-					},
-					{
-						type: "pc",
-						name: "PC"
-					},
-					{
-						type: "app",
-						name: "APP"
-					},
-				],
-				address: [],
-				addresData: city,
-				isShowSend: true,
-				modal13: false,
-				maxCols: 4,
-				scrollerHeight: "600",
-				contentTop: "130",
-				contentWidth: "98%",
-				// grid: {
-				//   xl: 8,
-				//   lg: 8,
-				//   md: 12,
-				//   sm: 24,
-				//   xs: 24,
-				// },
-				grid2: {
-					xl: 18,
-					lg: 16,
-					md: 12,
-					sm: 24,
-					xs: 24,
-				},
-				loading: false,
-				total: 0,
-				userFrom: {
-					label_id: "",
-					user_type: "",
-					status: "",
-					sex: "",
-					is_promoter: "",
-					country: "",
-					isMember: "",
-					pay_count: "",
-					user_time_type: "",
-					user_time: "",
-					nickname: "",
-					province: "",
-					city: "",
-					page: 1,
-					limit: 15,
-					level: "",
-					group_id: "",
-					field_key: "",
-				},
-				field_key: "",
-				level: "",
-				group_id: "",
-				label_id: "",
-				user_time_type: "",
-				pay_count: "",
-				userLists: [],
-				FromData: null,
-				selectionList: [],
-				user_ids: "",
-				selectedData: [],
-				timeVal: [],
-				array_ids: [],
-				groupList: [],
-				levelList: [],
-				labelFrom: {
-					page: 1,
-					limit: "",
-				},
-				labelLists: [],
-				display: "none",
-				checkBox: false,
-				selectionCopy: [],
-				isCheckBox: false,
-				isAll: 0,
-				userId: 0,
-				checkUidList: [],
-				batchModal: false,
-				menuActive: 1,
-				batchLabel: [],
-				batchData: {
-					group_id: 0,
-					label_id: [],
-					level_id: 0,
-					money_status: 0,
-					money: 0,
-					integration_status: 0,
-					integration: 0,
-					days_status: 1,
-					day: 0,
-					spread_uid: '',
-				},
-				spread_name: ''
-			};
-		},
-		watch: {
-			selectionList(value) {
-				let arr = value.map((item) => item.uid);
-				this.array_ids = arr;
-				this.user_ids = arr.join();
-			},
-			userLists: {
-				deep: true,
-				handler(value) {
-					value.forEach((item) => {
-						this.selectionList.forEach((itm) => {
-							if (itm.uid === item.uid) {
-								item.checkBox = true;
-							}
-						});
-					});
-					const arr = this.userLists.filter((item) => item.checkBox);
-					if (this.userLists.length) {
-						this.checkBox = this.userLists.length === arr.length;
-					} else {
-						this.checkBox = false;
-					}
-				},
-			},
-		},
-		computed: {
-			...mapState("admin/layout", ["isMobile"]),
-			labelWidth() {
-				return this.isMobile ? undefined : 100;
-			},
-			labelPosition() {
-				return this.isMobile ? "top" : "right";
-			},
-		},
-		created() {
-			this.getList();
-		},
-		mounted() {
-			this.userGroup();
-			this.levelLists();
-			this.groupLists();
-		},
-		methods: {
-			lookJl(row) {
-			  this.$refs.userJlList.modals = true;
-			  this.$refs.userJlList.getList(row);
-			},
-			checkboxItem(e) {
-				let uid = parseInt(e.rowid);
-				let index = this.checkUidList.indexOf(uid);
-				if (index !== -1) {
-					this.checkUidList = this.checkUidList.filter((item) => item !== uid);
-				} else {
-					this.checkUidList.push(uid);
-				}
-			},
-			checkboxAll() {
-				// 获取选中当前值
-				let obj2 = this.$refs.xTable.getCheckboxRecords(true);
-				// 获取之前选中值
+import { formatDate } from '@/utils/validate';
+import userLabel from "../../../components/userLabel";
+import labelList from "@/components/labelList";
+import { mapState } from "vuex";
+import expandRow from "./tableExpand.vue";
+import {
+  userList,
+  getUserData,
+  isShowApi,
+  editOtherApi,
+  giveLevelApi,
+  userSetGroup,
+  userGroupApi,
+  levelListApi,
+  userSetLabelApi,
+  userLabelApi,
+  userSynchro,
+  getUserSaveForm,
+  giveLevelTimeApi,
+  extendInfo,
+  batchProcess
+} from "@/api/user";
+import { agentSpreadApi } from "@/api/agent";
+import editFrom from "../../../components/from/from";
+import sendFrom from "@/components/sendCoupons/index";
+import userDetails from "./handle/userDetails";
+import newsCategory from "@/components/newsCategory/index";
+import city from "@/utils/city";
+import customerInfo from "@/components/customerInfo";
+export default {
+  name: "user_list",
+  filters: {
+    formatDate (time) {
+      if (time !== 0) {
+        let date = new Date(time * 1000);
+        return formatDate(date, 'yyyy-MM-dd hh:mm');
+      }
+    }
+  },
+  components: {
+    expandRow,
+    editFrom,
+    sendFrom,
+    userDetails,
+    newsCategory,
+    customerInfo,
+    userLabel,
+    labelList,
+  },
+  data() {
+    return {
+      dataLabel: [],
+      labelListShow: false,
+      labelShow: false,
+      customerShow: false,
+      promoterShow: false,
+      labelActive: {
+        uid: 0,
+      },
+      formInline: {
+        uid: 0,
+        spread_uid: 0,
+        image: "",
+      },
+      options: {
+        shortcuts: [
+          {
+            text: "今天",
+            value() {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(
+                  new Date(
+                      new Date().getFullYear(),
+                      new Date().getMonth(),
+                      new Date().getDate()
+                  )
+              );
+              return [start, end];
+            },
+          },
+          {
+            text: "昨天",
+            value() {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(
+                  start.setTime(
+                      new Date(
+                          new Date().getFullYear(),
+                          new Date().getMonth(),
+                          new Date().getDate() - 1
+                      )
+                  )
+              );
+              end.setTime(
+                  end.setTime(
+                      new Date(
+                          new Date().getFullYear(),
+                          new Date().getMonth(),
+                          new Date().getDate() - 1
+                      )
+                  )
+              );
+              return [start, end];
+            },
+          },
+          {
+            text: "最近7天",
+            value() {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(
+                  start.setTime(
+                      new Date(
+                          new Date().getFullYear(),
+                          new Date().getMonth(),
+                          new Date().getDate() - 6
+                      )
+                  )
+              );
+              return [start, end];
+            },
+          },
+          {
+            text: "最近30天",
+            value() {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(
+                  start.setTime(
+                      new Date(
+                          new Date().getFullYear(),
+                          new Date().getMonth(),
+                          new Date().getDate() - 29
+                      )
+                  )
+              );
+              return [start, end];
+            },
+          },
+		  {
+		    text: "上月",
+		    value() {
+		      const end = new Date();
+		      const start = new Date();
+		  	const day = new Date(start.getFullYear(), start.getMonth(), 0).getDate();
+		      start.setTime(
+		        start.setTime(
+		          new Date(new Date().getFullYear(), new Date().getMonth()-1, 1)
+		        )
+		      );
+		  	end.setTime(
+		  	  end.setTime(
+		  	    new Date(new Date().getFullYear(), new Date().getMonth()-1, day)
+		  	  )
+		  	);
+		      return [start, end];
+		    },
+		  },
+          {
+            text: "本月",
+            value() {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(
+                  start.setTime(
+                      new Date(new Date().getFullYear(), new Date().getMonth(), 1)
+                  )
+              );
+              return [start, end];
+            },
+          },
+          {
+            text: "本年",
+            value() {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(
+                  start.setTime(new Date(new Date().getFullYear(), 0, 1))
+              );
+              return [start, end];
+            },
+          },
+        ],
+      },
+      collapse: false,
+      headeType: "-1",
+      headeNum: [
+        { type: "-1", name: "全部" },
+        { type: "wechat", name: "微信公众号" },
+        { type: "routine", name: "微信小程序" },
+        { type: "h5", name: "H5" },
+        { type: "pc", name: "PC" },
+        { type: "app", name: "APP" },
+      ],
+      address: [],
+      addresData: city,
+      isShowSend: true,
+      modal13: false,
+      maxCols: 4,
+      scrollerHeight: "600",
+      contentTop: "130",
+      contentWidth: "98%",
+      // grid: {
+      //   xl: 8,
+      //   lg: 8,
+      //   md: 12,
+      //   sm: 24,
+      //   xs: 24,
+      // },
+      grid2: {
+        xl: 18,
+        lg: 16,
+        md: 12,
+        sm: 24,
+        xs: 24,
+      },
+      loading: false,
+      total: 0,
+      userFrom: {
+        label_id: "",
+        user_type: "",
+        status: "",
+        sex: "",
+        is_promoter: "",
+        country: "",
+        isMember: "",
+        pay_count: "",
+        user_time_type: "",
+        user_time: "",
+        nickname: "",
+        province: "",
+        city: "",
+        page: 1,
+        limit: 15,
+        level: "",
+        group_id: "",
+        field_key: "",
+      },
+      field_key: "",
+      level: "",
+      group_id: "",
+      label_id: "",
+      user_time_type: "",
+      pay_count: "",
+      userLists: [],
+      FromData: null,
+      selectionList: [],
+      user_ids: "",
+      selectedData: [],
+      timeVal: [],
+      array_ids: [],
+      groupList: [],
+      levelList: [],
+      labelFrom: {
+        page: 1,
+        limit: "",
+      },
+      labelLists: [],
+      display: "none",
+      checkBox: false,
+      selectionCopy: [],
+      isCheckBox: false,
+      isAll: 0,
+      userId: 0,
+      checkUidList:[],
+      batchModal: false,
+      menuActive: 1,
+      batchLabel: [],
+      batchData: {
+        group_id: 0,
+        label_id: [],
+        level_id: 0,
+        money_status: 0,
+        money: 0,
+        integration_status: 0,
+        integration: 0,
+        days_status: 1,
+        day: 0,
+        spread_uid: '',
+      },
+      spread_name: ''
+    };
+  },
+  watch: {
+    selectionList(value) {
+      let arr = value.map((item) => item.uid);
+      this.array_ids = arr;
+      this.user_ids = arr.join();
+    },
+    userLists: {
+      deep: true,
+      handler(value) {
+        value.forEach((item) => {
+          this.selectionList.forEach((itm) => {
+            if (itm.uid === item.uid) {
+              item.checkBox = true;
+            }
+          });
+        });
+        const arr = this.userLists.filter((item) => item.checkBox);
+        if (this.userLists.length) {
+          this.checkBox = this.userLists.length === arr.length;
+        } else {
+          this.checkBox = false;
+        }
+      },
+    },
+  },
+  computed: {
+    ...mapState("admin/layout", ["isMobile"]),
+    labelWidth() {
+      return this.isMobile ? undefined : 100;
+    },
+    labelPosition() {
+      return this.isMobile ? "top" : "right";
+    },
+  },
+  created() {
+    this.getList();
+  },
+  mounted() {
+    this.userGroup();
+    this.levelLists();
+    this.groupLists();
+  },
+  methods: {
+    checkboxItem(e){
+      let uid = parseInt(e.rowid);
+      let index = this.checkUidList.indexOf(uid);
+      if(index !== -1){
+        this.checkUidList = this.checkUidList.filter((item)=> item !== uid);
+      }else{
+        this.checkUidList.push(uid);
+      }
+    },
+    checkboxAll(){
+      // 获取选中当前值
+      let obj2 = this.$refs.xTable.getCheckboxRecords(true);
+      // 获取之前选中值
+      let obj = this.$refs.xTable.getCheckboxReserveRecords(true);
+	  if(this.isAll == 0 && this.checkUidList.length <= obj.length && !this.isCheckBox){
+	  	obj = [];
+	  }
+      obj = obj.concat(obj2);
+      let uids = [];
+      obj.forEach((item)=>{
+        uids.push(parseInt(item.uid))
+      })
+      this.checkUidList = uids;
+      if(!obj2.length){
+        this.isCheckBox = false;
+      }
+    },
+    allPages(e){
+      this.isAll = e;
+      if(e==0){
+        this.$refs.xTable.toggleAllCheckboxRow();
+        // this.checkboxAll();
+      }else{
+        if(!this.isCheckBox){
+          this.$refs.xTable.setAllCheckboxRow(true);
+          this.isCheckBox = true;
+          this.isAll = 1;
+        }else{
+          this.$refs.xTable.setAllCheckboxRow(false);
+          this.isCheckBox = false;
+          this.isAll = 0;
+        }
+        this.checkUidList = []
+      }
+    },
+    closeLabel(label) {
+      let index = this.dataLabel.indexOf(
+          this.dataLabel.filter((d) => d.id == label.id)[0]
+      );
+      this.dataLabel.splice(index, 1);
+    },
+    activeData(dataLabel) {
+      this.labelListShow = false;
+      if (this.batchModal && this.menuActive === 2) {
+        this.batchLabel = dataLabel;
+        this.batchData.label_id = dataLabel.map(item => item.id);
+      } else {
+        this.dataLabel = dataLabel;
+      }
+    },
+    openLabelList(row) {
+      this.labelListShow = true;
+      let data = JSON.parse(JSON.stringify(this.dataLabel));
+      if (this.batchModal && this.menuActive === 2) {
+        data = JSON.parse(JSON.stringify(this.batchLabel));
+      }
+      this.$refs.labelList.userLabel(data);
+    },
+    // 标签弹窗关闭
+    labelListClose() {
+      this.labelListShow = false;
+    },
+    // 标签弹窗关闭
+    labelClose(e) {
+      if (!e) {
+        this.getList();
+      }
+      this.labelShow = false;
+      this.labelActive.uid = 0;
+    },
+    // 提交
+    putSend(name) {
+      this.$refs[name].validate((valid) => {
+        if (valid) {
+          if (!this.formInline.spread_uid) {
+            return this.$Message.error("请上传用户");
+          }
+          agentSpreadApi(this.formInline)
+              .then((res) => {
+                this.promoterShow = false;
+                this.$Message.success(res.msg);
+                this.getList();
+                this.$refs[name].resetFields();
+              })
+              .catch((res) => {
+                this.$Message.error(res.msg);
+              });
+        }
+      });
+    },
+    save() {
+      this.$modalForm(getUserSaveForm()).then(() => this.getList());
+      // getUserSaveForm().then(async (res) => {
+      // 	if(res.data.status === false){
+      // 		return this.$authLapse(res.data);
+      // 	}
+      // 	this.FromData = res.data;
+      // 	this.$refs.edits.modals = true;
+      // }).catch(err=>{
+      // 	this.$Message.error(err.msg);
+      // })
+    },
+    synchro() {
+      userSynchro()
+          .then((res) => {
+            this.$Message.success(res.msg);
+          })
+          .catch((err) => {
+            this.$Message.error(err.msg);
+          });
+    },
+    // 分组列表
+    groupLists() {
+      this.loading = true;
+      userLabelApi(this.labelFrom)
+          .then(async (res) => {
+            let data = res.data;
+            this.labelLists = data.list;
+          })
+          .catch((res) => {
+            this.loading = false;
+            this.$Message.error(res.msg);
+          });
+    },
+    onClickTab(type) {
+      this.isAll = 0;
+      this.isCheckBox = false;
+      this.$refs.xTable.setAllCheckboxRow(false);
+      this.checkUidList = [];
+      this.userFrom.page = 1;
+      this.userFrom.user_type = type==-1?'':type;
+      this.getList();
+    },
+    userGroup() {
+      let data = {
+        page: 1,
+        limit: "",
+      };
+      userGroupApi(data).then((res) => {
+        this.groupList = res.data.list;
+      });
+    },
+    levelLists() {
+      let data = {
+        page: 1,
+        limit: "",
+        title: "",
+        is_show: 1,
+      };
+      levelListApi(data).then((res) => {
+        this.levelList = res.data.list;
+      });
+    },
+    // 批量设置分组;
+    setGroup() {
+      if (this.selectionList.length === 0) {
+        this.$Message.warning("请选择要设置分组的用户");
+      } else {
+        let uids = {
+          all: this.isAll,
+          uids: this.array_ids
+        };
+        if (this.isAll == 1) {
+          uids.where = this.userFrom;
+          uids.where = {
+            city: this.userFrom.city,
+            country: this.userFrom.country,
+            field_key: this.userFrom.field_key,
+            group_id: this.userFrom.group_id,
+            isMember: this.userFrom.isMember,
+            is_promoter: this.userFrom.is_promoter,
+            label_id: this.userFrom.label_id,
+            level: this.userFrom.level,
+            nickname: this.userFrom.nickname,
+            pay_count: this.userFrom.pay_count,
+            province: this.userFrom.province,
+            sex: this.userFrom.sex,
+            status: this.userFrom.status,
+            user_time: this.userFrom.user_time,
+            user_time_type: this.userFrom.user_time_type,
+            user_type: this.userFrom.user_type,
+          };
+        }
+        this.$modalForm(userSetGroup(uids)).then(() => this.getList());
+      }
+    },
+    // 批量设置标签;
+    setLabel() {
+      if (this.selectionList.length === 0) {
+        this.$Message.warning("请选择要设置标签的用户");
+      } else {
+        let uids = {
+          all: this.isAll,
+          uids: this.array_ids
+        };
+        if (this.isAll == 1) {
+          uids.where = {
+            city: this.userFrom.city,
+            country: this.userFrom.country,
+            field_key: this.userFrom.field_key,
+            group_id: this.userFrom.group_id,
+            isMember: this.userFrom.isMember,
+            is_promoter: this.userFrom.is_promoter,
+            label_id: this.userFrom.label_id,
+            level: this.userFrom.level,
+            nickname: this.userFrom.nickname,
+            pay_count: this.userFrom.pay_count,
+            province: this.userFrom.province,
+            sex: this.userFrom.sex,
+            status: this.userFrom.status,
+            user_time: this.userFrom.user_time,
+            user_time_type: this.userFrom.user_time_type,
+            user_type: this.userFrom.user_type,
+          };
+        }
+        this.labelShow = true;
+        this.labelActive.uid = uids;
+        // this.$modalForm(userSetLabelApi(uids)).then(() => this.getList());
+      }
+    },
+    // 是否为付费会员;
+    changeMember() {
+      this.userFrom.page = 1;
+      this.getList();
+    },
+    // 选择国家
+    changeCountry() {
+      if (this.userFrom.country === "abroad" || !this.userFrom.country) {
+        this.selectedData = [];
+        this.userFrom.province = "";
+        this.userFrom.city = "";
+        this.address = [];
+      }
+    },
+    // 选择地址
+    handleChange(value, selectedData) {
+      this.selectedData = selectedData.map((o) => o.label);
+      this.userFrom.province = this.selectedData[0];
+      this.userFrom.city = this.selectedData[1];
+    },
+    // 具体日期
+    onchangeTime(e) {
+      this.timeVal = e;
+      this.userFrom.user_time = this.timeVal[0] ? this.timeVal.join("-") : "";
+    },
+    // 操作
+    changeMenu(row, name, index) {
+      this.userId = row.uid;
+      let uid = [];
+      uid.push(row.uid);
+      let uids = { uids: uid };
+      switch (name) {
+        case "1":
+          this.$refs.userDetails.modals = true;
+          this.$refs.userDetails.activeName = "info";
+          this.$refs.userDetails.getDetails(row.uid);
+          break;
+        case "2":
+          this.getOtherFrom(row.uid);
+          break;
+        case "3":
+          // this.giveLevel(row.uid);
+          this.giveLevelTime(row.uid);
+          break;
+        case "4":
+          this.del(
+              row,
+              "清除 【 " + row.nickname + " 】的会员等级",
+              index,
+              "user"
+          );
+          break;
+        case "5":
+          this.$modalForm(userSetGroup(uids)).then(() =>
+              this.$refs.sends.getList()
+          );
+          break;
+        case "6":
+          this.openLabel(row);
+          // this.$modalForm(userSetLabelApi(uids)).then(() => this.$refs.sends.getList());
+          break;
+        case "7":
+          this.editS(row);
+          break;
+        default:
+          this.del(
+              row,
+              "解除【 " + row.nickname + " 】的上级推广人",
+              index,
+              "tuiguang"
+          );
+          break;
+          // this.del(row, '清除 【 ' + row.nickname + ' 】的会员等级', index)
+      }
+    },
+    openLabel(row) {
+      this.labelShow = true;
+      this.labelActive.uid = row.uid;
+    },
+    editS(row) {
+      this.promoterShow = true;
+      this.formInline.uid = row.uid;
+    },
+    customer() {
+      this.customerShow = true;
+    },
+    imageObject(e) {
+      this.customerShow = false;
+      if (this.batchModal && this.menuActive === 6) {
+        this.batchData.spread_uid = e.uid;
+        this.spread_name = e.name;
+      } else {
+        this.formInline.spread_uid = e.uid;
+        this.formInline.image = e.image;
+      }
+    },
+    cancel(name) {
+      this.promoterShow = false;
+      this.$refs[name].resetFields();
+    },
+    // 赠送会员等级
+    giveLevel(id) {
+      giveLevelApi(id)
+          .then(async (res) => {
+            if (res.data.status === false) {
+              return this.$authLapse(res.data);
+            }
+            this.FromData = res.data;
+            this.$refs.edits.modals = true;
+          })
+          .catch((res) => {
+            this.$Message.error(res.msg);
+          });
+    },
+    // 赠送会员等级
+    giveLevelTime(id) {
+      giveLevelTimeApi(id)
+          .then(async (res) => {
+            if (res.data.status === false) {
+              return this.$authLapse(res.data);
+            }
+            this.FromData = res.data;
+            this.$refs.edits.modals = true;
+          })
+          .catch((res) => {
+            this.$Message.error(res.msg);
+          });
+    },
+    // 删除
+    del(row, tit, num, name) {
+      let delfromData = {
+        title: tit,
+        num: num,
+        url:
+            name === "user"
+                ? `user/del_level/${row.uid}`
+                : `agent/stair/delete_spread/${row.uid}`,
+        method: name === "user" ? "DELETE" : "PUT",
+        // url: `user/del_level/${row.uid}`,
+        // method: 'DELETE',
+        ids: "",
+      };
+      this.$modalSure(delfromData)
+          .then((res) => {
+            this.$Message.success(res.msg);
+            this.getList();
+          })
+          .catch((res) => {
+            this.$Message.error(res.msg);
+          });
+    },
+    // 清除会员删除成功
+    submitModel() {
+      this.getList();
+    },
+    // 会员列表
+    getList() {
+      this.loading = true;
+      let activeIds = [];
+      this.dataLabel.forEach((item) => {
+        activeIds.push(item.id);
+      });
+      this.userFrom.label_id = activeIds.join(",") || "";
+      this.userFrom.user_type = this.userFrom.user_type || "";
+      this.userFrom.status = this.userFrom.status || "";
+      this.userFrom.sex = this.userFrom.sex || "";
+      this.userFrom.is_promoter = this.userFrom.is_promoter || "";
+      this.userFrom.country = this.userFrom.country || "";
+      this.userFrom.user_time_type = this.userFrom.user_time_type || "";
+      this.userFrom.pay_count = this.userFrom.pay_count || "";
+      // this.userFrom.label_id = this.userFrom.label_id || "";
+      this.userFrom.field_key = this.field_key === "all" ? "" : this.field_key;
+      this.userFrom.level =
+          this.userFrom.level === "all" ? "" : this.userFrom.level;
+      this.userFrom.group_id =
+          this.userFrom.group_id === "all" ? "" : this.userFrom.group_id;
+      userList(this.userFrom)
+          .then(async (res) => {
+            let data = res.data;
+            data.list.forEach((item) => {
+              item.checkBox = false;
+            });
+            this.userLists = data.list;
+            this.total = data.count;
+            this.loading = false;
+            this.$nextTick(function(){
+              if (this.isAll == 1) {
+                this.selectionList = this.userLists;
+                if(this.isCheckBox){
+                  this.$refs.xTable.setAllCheckboxRow(true);
+                }else{
+                  this.$refs.xTable.setAllCheckboxRow(false);
+                }
+              }else{
 				let obj = this.$refs.xTable.getCheckboxReserveRecords(true);
-				if (this.isAll == 0 && this.checkUidList.length <= obj.length && !this.isCheckBox) {
-					obj = [];
-				}
-				obj = obj.concat(obj2);
-				let uids = [];
-				obj.forEach((item) => {
-					uids.push(parseInt(item.uid))
-				})
-				this.checkUidList = uids;
-				if (!obj2.length) {
-					this.isCheckBox = false;
-				}
-			},
-			allPages(e) {
-				this.isAll = e;
-				if (e == 0) {
-					this.$refs.xTable.toggleAllCheckboxRow();
-					// this.checkboxAll();
-				} else {
-					if (!this.isCheckBox) {
-						this.$refs.xTable.setAllCheckboxRow(true);
-						this.isCheckBox = true;
-						this.isAll = 1;
-					} else {
-						this.$refs.xTable.setAllCheckboxRow(false);
-						this.isCheckBox = false;
-						this.isAll = 0;
-					}
-					this.checkUidList = []
-				}
-			},
-			closeLabel(label) {
-				let index = this.dataLabel.indexOf(
-					this.dataLabel.filter((d) => d.id == label.id)[0]
-				);
-				this.dataLabel.splice(index, 1);
-			},
-			activeData(dataLabel) {
-				this.labelListShow = false;
-				if (this.batchModal && this.menuActive === 2) {
-					this.batchLabel = dataLabel;
-					this.batchData.label_id = dataLabel.map(item => item.id);
-				} else {
-					this.dataLabel = dataLabel;
-				}
-			},
-			openLabelList(row) {
-				this.labelListShow = true;
-				let data = JSON.parse(JSON.stringify(this.dataLabel));
-				if (this.batchModal && this.menuActive === 2) {
-					data = JSON.parse(JSON.stringify(this.batchLabel));
-				}
-				this.$refs.labelList.userLabel(data);
-			},
-			// 标签弹窗关闭
-			labelListClose() {
-				this.labelListShow = false;
-			},
-			// 标签弹窗关闭
-			labelClose(e) {
-				if (!e) {
-					this.getList();
+				if(!this.checkUidList.length || this.checkUidList.length <= obj.length){
+				  this.$refs.xTable.setAllCheckboxRow(false);
 				}
-				this.labelShow = false;
-				this.labelActive.uid = 0;
-			},
-			// 提交
-			putSend(name) {
-				this.$refs[name].validate((valid) => {
-					if (valid) {
-						if (!this.formInline.spread_uid) {
-							return this.$Message.error("请上传用户");
-						}
-						agentSpreadApi(this.formInline)
-							.then((res) => {
-								this.promoterShow = false;
-								this.$Message.success(res.msg);
-								this.getList();
-								this.$refs[name].resetFields();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-					}
-				});
-			},
-			save() {
-				this.$modalForm(getUserSaveForm()).then(() => this.getList());
-				// getUserSaveForm().then(async (res) => {
-				// 	if(res.data.status === false){
-				// 		return this.$authLapse(res.data);
-				// 	}
-				// 	this.FromData = res.data;
-				// 	this.$refs.edits.modals = true;
-				// }).catch(err=>{
-				// 	this.$Message.error(err.msg);
-				// })
-			},
-			synchro() {
-				userSynchro()
-					.then((res) => {
-						this.$Message.success(res.msg);
-					})
-					.catch((err) => {
-						this.$Message.error(err.msg);
-					});
-			},
-			// 分组列表
-			groupLists() {
-				this.loading = true;
-				userLabelApi(this.labelFrom)
-					.then(async (res) => {
-						let data = res.data;
-						this.labelLists = data.list;
-					})
-					.catch((res) => {
-						this.loading = false;
-						this.$Message.error(res.msg);
-					});
-			},
-			onClickTab(type) {
-				this.isAll = 0;
-				this.isCheckBox = false;
-				this.$refs.xTable.setAllCheckboxRow(false);
-				this.checkUidList = [];
-				this.userFrom.page = 1;
-				this.userFrom.user_type = type == -1 ? '' : type;
-				this.getList();
-			},
-			userGroup() {
-				let data = {
-					page: 1,
-					limit: "",
-				};
-				userGroupApi(data).then((res) => {
-					this.groupList = res.data.list;
-				});
-			},
-			levelLists() {
-				let data = {
-					page: 1,
-					limit: "",
-					title: "",
-					is_show: 1,
-				};
-				levelListApi(data).then((res) => {
-					this.levelList = res.data.list;
-				});
-			},
-			// 批量设置分组;
-			setGroup() {
-				if (this.selectionList.length === 0) {
-					this.$Message.warning("请选择要设置分组的用户");
-				} else {
-					let uids = {
-						all: this.isAll,
-						uids: this.array_ids
-					};
-					if (this.isAll == 1) {
-						uids.where = this.userFrom;
-						uids.where = {
-							city: this.userFrom.city,
-							country: this.userFrom.country,
-							field_key: this.userFrom.field_key,
-							group_id: this.userFrom.group_id,
-							isMember: this.userFrom.isMember,
-							is_promoter: this.userFrom.is_promoter,
-							label_id: this.userFrom.label_id,
-							level: this.userFrom.level,
-							nickname: this.userFrom.nickname,
-							pay_count: this.userFrom.pay_count,
-							province: this.userFrom.province,
-							sex: this.userFrom.sex,
-							status: this.userFrom.status,
-							user_time: this.userFrom.user_time,
-							user_time_type: this.userFrom.user_time_type,
-							user_type: this.userFrom.user_type,
-						};
-					}
-					this.$modalForm(userSetGroup(uids)).then(() => this.getList());
-				}
-			},
-			// 批量设置标签;
-			setLabel() {
-				if (this.selectionList.length === 0) {
-					this.$Message.warning("请选择要设置标签的用户");
-				} else {
-					let uids = {
-						all: this.isAll,
-						uids: this.array_ids
-					};
-					if (this.isAll == 1) {
-						uids.where = {
-							city: this.userFrom.city,
-							country: this.userFrom.country,
-							field_key: this.userFrom.field_key,
-							group_id: this.userFrom.group_id,
-							isMember: this.userFrom.isMember,
-							is_promoter: this.userFrom.is_promoter,
-							label_id: this.userFrom.label_id,
-							level: this.userFrom.level,
-							nickname: this.userFrom.nickname,
-							pay_count: this.userFrom.pay_count,
-							province: this.userFrom.province,
-							sex: this.userFrom.sex,
-							status: this.userFrom.status,
-							user_time: this.userFrom.user_time,
-							user_time_type: this.userFrom.user_time_type,
-							user_type: this.userFrom.user_type,
-						};
-					}
-					this.labelShow = true;
-					this.labelActive.uid = uids;
-					// this.$modalForm(userSetLabelApi(uids)).then(() => this.getList());
-				}
-			},
-			// 是否为付费会员;
-			changeMember() {
-				this.userFrom.page = 1;
-				this.getList();
-			},
-			// 选择国家
-			changeCountry() {
-				if (this.userFrom.country === "abroad" || !this.userFrom.country) {
-					this.selectedData = [];
-					this.userFrom.province = "";
-					this.userFrom.city = "";
-					this.address = [];
-				}
-			},
-			// 选择地址
-			handleChange(value, selectedData) {
-				this.selectedData = selectedData.map((o) => o.label);
-				this.userFrom.province = this.selectedData[0];
-				this.userFrom.city = this.selectedData[1];
-			},
-			// 具体日期
-			onchangeTime(e) {
-				this.timeVal = e;
-				this.userFrom.user_time = this.timeVal[0] ? this.timeVal.join("-") : "";
-			},
-			// 操作
-			changeMenu(row, name, index) {
-				this.userId = row.uid;
-				let uid = [];
-				uid.push(row.uid);
-				let uids = {
-					uids: uid
-				};
-				switch (name) {
-					case "1":
-						this.$refs.userDetails.modals = true;
-						this.$refs.userDetails.activeName = "info";
-						this.$refs.userDetails.getDetails(row.uid);
-						break;
-					case "2":
-						this.getOtherFrom(row.uid);
-						break;
-					case "3":
-						// this.giveLevel(row.uid);
-						this.giveLevelTime(row.uid);
-						break;
-					case "4":
-						this.del(
-							row,
-							"清除 【 " + row.nickname + " 】的会员等级",
-							index,
-							"user"
-						);
-						break;
-					case "5":
-						this.$modalForm(userSetGroup(uids)).then(() =>
-							this.$refs.sends.getList()
-						);
-						break;
-					case "6":
-						this.openLabel(row);
-						// this.$modalForm(userSetLabelApi(uids)).then(() => this.$refs.sends.getList());
-						break;
-					case "7":
-						this.editS(row);
-						break;
-					default:
-						this.del(
-							row,
-							"解除【 " + row.nickname + " 】的上级推广人",
-							index,
-							"tuiguang"
-						);
-						break;
-						// this.del(row, '清除 【 ' + row.nickname + ' 】的会员等级', index)
-				}
-			},
-			openLabel(row) {
-				this.labelShow = true;
-				this.labelActive.uid = row.uid;
-			},
-			editS(row) {
-				this.promoterShow = true;
-				this.formInline.uid = row.uid;
-			},
-			customer() {
-				this.customerShow = true;
-			},
-			imageObject(e) {
-				this.customerShow = false;
-				if (this.batchModal && this.menuActive === 6) {
-					this.batchData.spread_uid = e.uid;
-					this.spread_name = e.name;
-				} else {
-					this.formInline.spread_uid = e.uid;
-					this.formInline.image = e.image;
-				}
-			},
-			cancel(name) {
-				this.promoterShow = false;
-				this.$refs[name].resetFields();
-			},
-			// 赠送会员等级
-			giveLevel(id) {
-				giveLevelApi(id)
-					.then(async (res) => {
-						if (res.data.status === false) {
-							return this.$authLapse(res.data);
-						}
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 赠送会员等级
-			giveLevelTime(id) {
-				giveLevelTimeApi(id)
-					.then(async (res) => {
-						if (res.data.status === false) {
-							return this.$authLapse(res.data);
-						}
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 删除
-			del(row, tit, num, name) {
-				let delfromData = {
-					title: tit,
-					num: num,
-					url: name === "user" ?
-						`user/del_level/${row.uid}` :
-						`agent/stair/delete_spread/${row.uid}`,
-					method: name === "user" ? "DELETE" : "PUT",
-					// url: `user/del_level/${row.uid}`,
-					// method: 'DELETE',
-					ids: "",
-				};
-				this.$modalSure(delfromData)
-					.then((res) => {
-						this.$Message.success(res.msg);
-						this.getList();
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 清除会员删除成功
-			submitModel() {
-				this.getList();
-			},
-			// 会员列表
-			getList() {
-				this.loading = true;
-				let activeIds = [];
-				this.dataLabel.forEach((item) => {
-					activeIds.push(item.id);
-				});
-				this.userFrom.label_id = activeIds.join(",") || "";
-				this.userFrom.user_type = this.userFrom.user_type || "";
-				this.userFrom.status = this.userFrom.status || "";
-				this.userFrom.sex = this.userFrom.sex || "";
-				this.userFrom.is_promoter = this.userFrom.is_promoter || "";
-				this.userFrom.country = this.userFrom.country || "";
-				this.userFrom.user_time_type = this.userFrom.user_time_type || "";
-				this.userFrom.pay_count = this.userFrom.pay_count || "";
-				// this.userFrom.label_id = this.userFrom.label_id || "";
-				this.userFrom.field_key = this.field_key === "all" ? "" : this.field_key;
-				this.userFrom.level =
-					this.userFrom.level === "all" ? "" : this.userFrom.level;
-				this.userFrom.group_id =
-					this.userFrom.group_id === "all" ? "" : this.userFrom.group_id;
-				userList(this.userFrom)
-					.then(async (res) => {
-						let data = res.data;
-						data.list.forEach((item) => {
-							item.checkBox = false;
-						});
-						this.userLists = data.list;
-						this.total = data.count;
-						this.loading = false;
-						this.$nextTick(function() {
-							if (this.isAll == 1) {
-								this.selectionList = this.userLists;
-								if (this.isCheckBox) {
-									this.$refs.xTable.setAllCheckboxRow(true);
-								} else {
-									this.$refs.xTable.setAllCheckboxRow(false);
-								}
-							} else {
-								let obj = this.$refs.xTable.getCheckboxReserveRecords(true);
-								if (!this.checkUidList.length || this.checkUidList.length <= obj.length) {
-									this.$refs.xTable.setAllCheckboxRow(false);
-								}
-							}
-						})
+              }
+            })
 
-					})
-					.catch((res) => {
-						this.loading = false;
-						this.$Message.error(res.msg);
-					});
-			},
-			pageChange({
-				currentPage,
-				pageSize
-			}) {
-				this.userFrom.page = currentPage;
-				this.userFrom.limit = pageSize;
-				this.getList();
-			},
-			// pageChange(index) {
-			//   this.userFrom.page = index;
-			//   this.getList();
-			// },
-			// 搜索
-			userSearchs() {
-				if (this.userFrom.user_time_type && !this.timeVal.length) {
-					return this.$Message.error("请选择访问时间");
-				}
-				if (this.timeVal.length && !this.userFrom.user_time_type) {
-					return this.$Message.error("请选择访问情况");
-				}
-				this.isAll = 0;
-				this.$refs.xTable.setAllCheckboxRow(false);
-				this.checkUidList = [];
-				this.userFrom.page = 1;
-				this.selectionList = [];
-				this.getList();
-			},
-			// 重置
-			reset(name) {
-				this.$refs.xTable.setAllCheckboxRow(false);
-				this.checkUidList = []
-				this.headeType = "-1";
-				this.userFrom = {
-					user_type: "",
-					status: "",
-					sex: "",
-					is_promoter: "",
-					country: "",
-					pay_count: "",
-					user_time_type: "",
-					user_time: "",
-					nickname: "",
-					field_key: "",
-					level: "",
-					group_id: "",
-					label_id: "",
-					page: 1, // 当前页
-					limit: 20, // 每页显示条数
-				};
-				this.field_key = "";
-				this.level = "";
-				this.group_id = "";
-				this.label_id = "";
-				this.user_time_type = "";
-				this.pay_count = "";
-				this.timeVal = [];
-				this.selectionList = [];
-				this.dataLabel = [];
-				this.getList();
-			},
-			// 获取编辑表单数据
-			getUserFrom(id) {
-				this.$modalForm(getUserData(id)).then(() => this.getList());
-				// getUserData(id)
-				//   .then(async (res) => {
-				//     if (res.data.status === false) {
-				//       return this.$authLapse(res.data);
-				//     }
-				//     this.FromData = res.data;
-				//     this.$refs.edits.modals = true;
-				//   })
-				//   .catch((res) => {
-				//     this.$Message.error(res.msg);
-				//   });
-			},
-			// 获取积分余额表单
-			getOtherFrom(id) {
-				editOtherApi(id)
-					.then(async (res) => {
-						if (res.data.status === false) {
-							return this.$authLapse(res.data);
-						}
-						res.data.rules[1].props.max = 999999;
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 修改状态
-			onchangeIsShow(row) {
-				let data = {
-					id: row.uid,
-					status: row.status,
-				};
-				isShowApi(data)
-					.then(async (res) => {
-						this.$Message.success(res.msg);
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 点击发送优惠券
-			onSend() {
-				if (this.checkUidList.length === 0 && this.isAll == 0) {
-					return this.$Message.warning("请选择要发送优惠券的用户");
-				}
-				this.$refs.sends.modals = true;
-				this.$refs.sends.getList();
-			},
-			// 发送图文消息
-			onSendPic() {
-				if (this.checkUidList.length === 0 && this.isAll == 0) {
-					this.$Message.warning("请选择要发送图文消息的用户");
-				} else {
-					this.modal13 = true;
-				}
-			},
-			// 编辑
-			edit(row) {
-				this.getUserFrom(row.uid);
-				// this.$modalForm(getUserSaveForm(row.uid)).then(() => this.getList());
-			},
-			//信息补充
-			extendInfo(row) {
-				// this.$modalForm(extendInfo(row.uid)).then(() => this.getList());
-				extendInfo(row.uid).then(async (res) => {
-					if (res.data.status === false) {
-						return this.$authLapse(res.data);
-					}
-					this.FromData = res.data;
-					this.$refs.edits.modals = true;
-					// this.getList()
-				}).catch(err => {
-					this.$Message.error(err.msg);
-				})
-			},
-			// 修改成功
-			submitFail(p) {
-				// this.getList();
-				if (this.$refs.userDetails.modals) {
-					this.$refs.userDetails.getDetails(this.userId);
-				}
-			},
-			// 排序
-			// sortChanged(e) {
-			//   this.userFrom[e.key] = e.order;
-			//   this.getList();
-			// },
-			// onSelectCancel(selection, row) {},
-			menuSelect(name) {
-				this.menuActive = name;
-			},
-			setBatch() {
-				this.batchModal = true;
-			},
-			tagClose(id) {
-				let index = this.batchLabel.findIndex(item => item.id === id);
-				this.batchLabel.splice(index, 1);
-			},
-			cancelBatch() {
-				this.batchModal = false;
-			},
-			// 保存批量操作
-			saveBatch() {
-				batchProcess({
-					type: this.menuActive,
-					uids: this.checkUidList,
-					all: this.isAll,
-					where: this.userFrom,
-					data: this.batchData
-				}).then(res => {
-					this.$Message.success(res.msg);
-					this.batchModal = false;
-				}).catch(res => {
-					this.$Message.error(res.msg);
-				});
-			},
-			batchVisibleChange() {
-				this.batchData = {
-					group_id: 0,
-					label_id: [],
-					level_id: 0,
-					money_status: 0,
-					money: 0,
-					integration_status: 0,
-					integration: 0,
-					days_status: 1,
-					day: 0,
-					spread_uid: '',
-				};
-				this.batchLabel = [];
-				this.spread_name = '';
-				this.menuActive = 1;
-			}
-		},
-	};
+          })
+          .catch((res) => {
+            this.loading = false;
+            this.$Message.error(res.msg);
+          });
+    },
+    pageChange({ currentPage, pageSize }) {
+      this.userFrom.page = currentPage;
+      this.userFrom.limit = pageSize;
+      this.getList();
+    },
+    // pageChange(index) {
+    //   this.userFrom.page = index;
+    //   this.getList();
+    // },
+    // 搜索
+    userSearchs() {
+      if (this.userFrom.user_time_type && !this.timeVal.length) {
+        return this.$Message.error("请选择访问时间");
+      }
+      if (this.timeVal.length && !this.userFrom.user_time_type) {
+        return this.$Message.error("请选择访问情况");
+      }
+      this.isAll = 0;
+      this.$refs.xTable.setAllCheckboxRow(false);
+      this.checkUidList = [];
+      this.userFrom.page = 1;
+      this.selectionList = [];
+      this.getList();
+    },
+    // 重置
+    reset(name) {
+      this.$refs.xTable.setAllCheckboxRow(false);
+      this.checkUidList = []
+      this.headeType = "-1";
+      this.userFrom = {
+        user_type: "",
+        status: "",
+        sex: "",
+        is_promoter: "",
+        country: "",
+        pay_count: "",
+        user_time_type: "",
+        user_time: "",
+        nickname: "",
+        field_key: "",
+        level: "",
+        group_id: "",
+        label_id: "",
+        page: 1, // 当前页
+        limit: 20, // 每页显示条数
+      };
+      this.field_key = "";
+      this.level = "";
+      this.group_id = "";
+      this.label_id = "";
+      this.user_time_type = "";
+      this.pay_count = "";
+      this.timeVal = [];
+      this.selectionList = [];
+      this.dataLabel = [];
+      this.getList();
+    },
+    // 获取编辑表单数据
+    getUserFrom(id) {
+      this.$modalForm(getUserData(id)).then(() => this.getList());
+      // getUserData(id)
+      //   .then(async (res) => {
+      //     if (res.data.status === false) {
+      //       return this.$authLapse(res.data);
+      //     }
+      //     this.FromData = res.data;
+      //     this.$refs.edits.modals = true;
+      //   })
+      //   .catch((res) => {
+      //     this.$Message.error(res.msg);
+      //   });
+    },
+    // 获取积分余额表单
+    getOtherFrom(id) {
+      editOtherApi(id)
+          .then(async (res) => {
+            if (res.data.status === false) {
+              return this.$authLapse(res.data);
+            }
+            res.data.rules[1].props.max = 999999;
+            this.FromData = res.data;
+            this.$refs.edits.modals = true;
+          })
+          .catch((res) => {
+            this.$Message.error(res.msg);
+          });
+    },
+    // 修改状态
+    onchangeIsShow(row) {
+      let data = {
+        id: row.uid,
+        status: row.status,
+      };
+      isShowApi(data)
+          .then(async (res) => {
+            this.$Message.success(res.msg);
+          })
+          .catch((res) => {
+            this.$Message.error(res.msg);
+          });
+    },
+    // 点击发送优惠券
+    onSend() {
+      if (this.checkUidList.length === 0 && this.isAll==0) {
+         return this.$Message.warning("请选择要发送优惠券的用户");
+      }
+      this.$refs.sends.modals = true;
+      this.$refs.sends.getList();
+    },
+    // 发送图文消息
+    onSendPic() {
+      if (this.checkUidList.length === 0 && this.isAll==0) {
+        this.$Message.warning("请选择要发送图文消息的用户");
+      } else {
+        this.modal13 = true;
+      }
+    },
+    // 编辑
+    edit(row) {
+      this.getUserFrom(row.uid);
+      // this.$modalForm(getUserSaveForm(row.uid)).then(() => this.getList());
+    },
+    //信息补充
+    extendInfo(row) {
+      // this.$modalForm(extendInfo(row.uid)).then(() => this.getList());
+      extendInfo(row.uid).then(async (res) => {
+        if(res.data.status === false){
+          return this.$authLapse(res.data);
+        }
+        this.FromData = res.data;
+        this.$refs.edits.modals = true;
+        // this.getList()
+      }).catch(err=>{
+        this.$Message.error(err.msg);
+      })
+    },
+    // 修改成功
+    submitFail(p) {
+      // this.getList();
+      if (this.$refs.userDetails.modals) {
+        this.$refs.userDetails.getDetails(this.userId);
+      }
+    },
+    // 排序
+    // sortChanged(e) {
+    //   this.userFrom[e.key] = e.order;
+    //   this.getList();
+    // },
+    // onSelectCancel(selection, row) {},
+    menuSelect(name) {
+      this.menuActive = name;
+    },
+    setBatch() {
+      this.batchModal = true;
+    },
+    tagClose(id) {
+      let index = this.batchLabel.findIndex(item => item.id === id);
+      this.batchLabel.splice(index, 1);
+    },
+    cancelBatch() {
+      this.batchModal = false;
+    },
+    // 保存批量操作
+    saveBatch() {
+      batchProcess({
+        type: this.menuActive,
+        uids: this.checkUidList,
+        all: this.isAll,
+        where: this.userFrom,
+        data: this.batchData
+      }).then(res => {
+        this.$Message.success(res.msg);
+        this.batchModal = false;
+      }).catch(res => {
+        this.$Message.error(res.msg);
+      });
+    },
+    batchVisibleChange() {
+      this.batchData = {
+        group_id: 0,
+        label_id: [],
+        level_id: 0,
+        money_status: 0,
+        money: 0,
+        integration_status: 0,
+        integration: 0,
+        days_status: 1,
+        day: 0,
+        spread_uid: '',
+      };
+      this.batchLabel = [];
+      this.spread_name = '';
+      this.menuActive = 1;
+    }
+  },
+};
 </script>
 
 <style scoped lang="stylus">
-	/deep/.ivu-dropdown-item {
-		font-size: 12px !important;
-	}
-
-	/deep/.vxe-table--render-default .vxe-cell {
-		font-size: 12px;
-	}
-
-	.expand-row {
-		margin-bottom: 16px;
-		font-size: 12px;
-	}
-
-	.tdinfo {
-		margin-left: 88px;
-		margin-top: 15px;
-	}
-
-	.padding-add {
-		padding: 20px 20px 0;
-	}
-
-	.input-add {
-		max-width: 250px;
-	}
-
-	.labelInput {
-		max-width: 250px;
-		border: 1px solid #dcdee2;
-		padding: 0 5px;
-		border-radius: 5px;
-		min-height: 30px;
-		cursor: pointer;
-
-		.span {
-			color: #c5c8ce;
-		}
-
-		.iconxiayi {
-			font-size: 12px;
-		}
-	}
-
-	.picBox {
-		display: inline-block;
-		cursor: pointer;
-
-		.upLoad {
-			width: 58px;
-			height: 58px;
-			line-height: 58px;
-			border: 1px dotted rgba(0, 0, 0, 0.1);
-			border-radius: 4px;
-			background: rgba(0, 0, 0, 0.02);
-		}
-
-		.pictrue {
-			width: 60px;
-			height: 60px;
-			border: 1px dotted rgba(0, 0, 0, 0.1);
-			margin-right: 10px;
+/deep/.ivu-dropdown-item{
+  font-size: 12px!important;
+}
+/deep/.vxe-table--render-default .vxe-cell{
+  font-size: 12px;
+}
+.expand-row{
+  margin-bottom: 16px;
+  font-size: 12px;
+}
+.tdinfo {
+  margin-left: 88px;
+  margin-top: 15px;
+}
+.padding-add {
+  padding: 20px 20px 0;
+}
+.input-add {
+  max-width:250px;
+}
+.labelInput {
+  max-width:250px;
+  border: 1px solid #dcdee2;
+  padding: 0 5px;
+  border-radius: 5px;
+  min-height: 30px;
+  cursor: pointer;
 
-			img {
-				width: 100%;
-				height: 100%;
-			}
-		}
-	}
+  .span {
+    color: #c5c8ce;
+  }
 
-	.userFrom {
-		>>>.ivu-form-item-content {
-			margin-left: 0px !important;
-		}
-	}
+  .iconxiayi {
+    font-size: 12px;
+  }
+}
 
-	.userAlert {
-		margin-top: 20px;
-	}
+.picBox {
+  display: inline-block;
+  cursor: pointer;
 
-	.userI {
-		color: #1890FF;
-		font-style: normal;
-	}
+  .upLoad {
+    width: 58px;
+    height: 58px;
+    line-height: 58px;
+    border: 1px dotted rgba(0, 0, 0, 0.1);
+    border-radius: 4px;
+    background: rgba(0, 0, 0, 0.02);
+  }
 
-	img {
-		height: 36px;
-		display: block;
-	}
+  .pictrue {
+    width: 60px;
+    height: 60px;
+    border: 1px dotted rgba(0, 0, 0, 0.1);
+    margin-right: 10px;
 
-	.tabBox_img {
-		width: 36px;
-		height: 36px;
-		border-radius: 4px;
-		cursor: pointer;
+    img {
+      width: 100%;
+      height: 100%;
+    }
+  }
+}
 
-		img {
-			width: 100%;
-			height: 100%;
-		}
-	}
+.userFrom {
+  >>> .ivu-form-item-content {
+    margin-left: 0px !important;
+  }
+}
 
-	.tabBox_tit {
-		width: 60%;
-		font-size: 12px !important;
-		margin: 0 2px 0 10px;
-		letter-spacing: 1px;
-		padding: 5px 0;
-		box-sizing: border-box;
-	}
+.userAlert {
+  margin-top: 20px;
+}
 
-	.modelBox {
-		>>>.ivu-modal-body {
-			padding: 0 16px 16px 16px !important;
-		}
-	}
+.userI {
+  color: #1890FF;
+  font-style: normal;
+}
 
-	.vipName {
-		color: #dab176;
-	}
+img {
+  height: 36px;
+  display: block;
+}
 
-	.listbox {
-		>>>.ivu-divider-horizontal {
-			margin: 0 !important;
-		}
-	}
+.tabBox_img {
+  width: 36px;
+  height: 36px;
+  border-radius: 4px;
+  cursor: pointer;
 
-	/deep/.ivu-table-header {
-		// overflow visible
-	}
+  img {
+    width: 100%;
+    height: 100%;
+  }
+}
 
-	/deep/.ivu-table th {
-		overflow: visible;
-	}
+.tabBox_tit {
+  width: 60%;
+  font-size: 12px !important;
+  margin: 0 2px 0 10px;
+  letter-spacing: 1px;
+  padding: 5px 0;
+  box-sizing: border-box;
+}
 
-	/deep/.select-item:hover {
-		background-color: #f3f3f3;
-	}
+.modelBox {
+  >>> .ivu-modal-body {
+    padding: 0 16px 16px 16px !important;
+  }
+}
 
-	/deep/.select-on {
-		display: block;
-	}
+.vipName {
+  color: #dab176;
+}
 
-	/deep/.select-item.on {
-		/* background: #f3f3f3; */
-	}
+.listbox {
+  >>>.ivu-divider-horizontal {
+    margin: 0 !important;
+  }
+}
 
-	.pane_pd {
-		padding: 4px 16px 20px !important;
-		font-weight: 500;
-	}
+/deep/.ivu-table-header {
+  // overflow visible
+}
 
-	.new_tab {
-		>>>.ivu-tabs-nav .ivu-tabs-tab {
-			padding: 4px 16px 20px !important;
-			font-weight: 500;
-		}
-	}
+/deep/.ivu-table th {
+  overflow: visible;
+}
 
-	.dateMedia {
-		/deep/.ivu-form-item-content {
-			max-width 250px;
+/deep/.select-item:hover {
+  background-color: #f3f3f3;
+}
 
-			/deep/.ivu-date-picker {
-				width 100%;
-			}
-		}
-	}
+/deep/.select-on {
+  display: block;
+}
 
-	.select-tag {
-		position: relative;
-		min-height: 32px;
-		padding: 0 24px 0 4px;
-		border: 1px solid #dcdee2;
-		border-radius: 4px;
-		line-height: normal;
-		user-select: none;
-		cursor: pointer;
+/deep/.select-item.on {
+  /* background: #f3f3f3; */
+}
+.pane_pd{
+  padding:4px 16px 20px !important;
+  font-weight: 500;
+}
+.new_tab {
+  >>>.ivu-tabs-nav .ivu-tabs-tab{
+    padding:4px 16px 20px !important;
+    font-weight: 500;
+  }
+}
+.dateMedia{
+  /deep/.ivu-form-item-content{
+    max-width 250px;
+    /deep/.ivu-date-picker{
+      width 100%;
+    }
+  }
+}
+.select-tag{
+  position: relative;
+  min-height: 32px;
+  padding: 0 24px 0 4px;
+  border: 1px solid #dcdee2;
+  border-radius: 4px;
+  line-height: normal;
+  user-select: none;
+  cursor: pointer;
 
-		&:hover {
-			border-color: #57a3f3;
-		}
+  &:hover {
+    border-color: #57a3f3;
+  }
 
-		.ivu-icon {
-			position: absolute;
-			top: 50%;
-			right: 8px;
-			line-height: 1;
-			transform: translateY(-50%);
-			font-size: 14px;
-			color: #808695;
-			transition: all .2s ease-in-out;
-		}
+  .ivu-icon {
+    position: absolute;
+    top: 50%;
+    right: 8px;
+    line-height: 1;
+    transform: translateY(-50%);
+    font-size: 14px;
+    color: #808695;
+    transition: all .2s ease-in-out;
+  }
 
-		.ivu-tag {
-			position: relative;
-			max-width: 99%;
-			height: 24px;
-			margin: 3px 4px 3px 0;
-			line-height: 22px;
-		}
+  .ivu-tag {
+    position: relative;
+    max-width: 99%;
+    height: 24px;
+    margin: 3px 4px 3px 0;
+    line-height: 22px;
+  }
 
-		.placeholder {
-			display: block;
-			height: 30px;
-			line-height: 30px;
-			color: #c5c8ce;
-			font-size: 12px;
-			overflow: hidden;
-			text-overflow: ellipsis;
-			white-space: nowrap;
-			padding-left: 4px;
-			padding-right: 22px;
-		}
-	}
+  .placeholder {
+    display: block;
+    height: 30px;
+    line-height: 30px;
+    color: #c5c8ce;
+    font-size: 12px;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    padding-left: 4px;
+    padding-right: 22px;
+  }
+}
 
-	>>>.batch-modal {
-		.ivu-modal-body {
-			padding: 0;
-		}
+>>> .batch-modal {
+  .ivu-modal-body {
+    padding: 0;
+  }
 
-		.ivu-alert {
-			margin: 12px 24px;
-		}
+  .ivu-alert {
+    margin: 12px 24px;
+  }
 
-		.ivu-col-span-4 {
-			flex: none;
-			width: 130px;
-		}
+  .ivu-col-span-4 {
+    flex: none;
+    width: 130px;
+  }
 
-		.ivu-col-span-20 {
-			padding-right: 37px;
-		}
+  .ivu-col-span-20 {
+    padding-right: 37px;
+  }
 
-		.ivu-input-number {
-			width: 100%;
-		}
+  .ivu-input-number {
+    width: 100%;
+  }
 
-		.ivu-menu-light.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu) {
-			z-index: auto;
-		}
+  .ivu-menu-light.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu) {
+    z-index: auto;
+  }
 
-		.ivu-menu-light.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu):after {
-			right: auto;
-			left: 0;
-		}
+  .ivu-menu-light.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu):after {
+    right: auto;
+    left: 0;
+  }
 
-		.ivu-menu-item {
-			padding-right: 0;
-		}
-	}
+  .ivu-menu-item {
+    padding-right: 0;
+  }
+}
 </style>

+ 0 - 18
src/router/modules/finance.js

@@ -76,24 +76,6 @@ export default {
 		        title: '股权记录'
 		    },
 		    component: () => import('@/pages/finance/guquan/list')
-		},
-		{
-		    path: 'jl/index',
-		    name: `${pre}jlIndex`,
-		    meta: {
-		        auth: ['admin-finance-jl-index'],
-		        title: '提现申请'
-		    },
-		    component: () => import('@/pages/finance/jl/index')
-		},
-		{
-		    path: 'jl/list',
-		    name: `${pre}jlList`,
-		    meta: {
-		        auth: ['admin-finance-jl-list'],
-		        title: '股权记录'
-		    },
-		    component: () => import('@/pages/finance/jl/list')
 		}
     ]
 };