Browse Source

yong hu jiang li gu quan

lhl 1 year ago
parent
commit
f66b8e5ac0

+ 18 - 0
src/api/finance.js

@@ -208,4 +208,22 @@ export function getYgGqList(data) {
 	    method: 'get',
 	    method: 'get',
 	    params: data
 	    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
+	});
 }
 }

+ 8 - 0
src/api/user.js

@@ -736,4 +736,12 @@ export function batchProcess(data) {
         method: 'post',
         method: 'post',
         data
         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;
     margin: 15px 0;
     padding-right: 20px;
     padding-right: 20px;
 }
 }
-</style>
+</style>

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

@@ -0,0 +1,243 @@
+<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>

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

@@ -0,0 +1,249 @@
+<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>

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

@@ -0,0 +1,189 @@
+<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>

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

@@ -0,0 +1,117 @@
+<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>

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

@@ -1,1863 +1,1707 @@
 <template>
 <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-key">手机号:</span>
                     <span class="expand-value">{{row.phone}}</span>
                     <span class="expand-value">{{row.phone}}</span>
                 </Col> -->
                 </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-key">真实姓名:</span>
                     <span class="expand-value">{{row.real_name}}</span>
                     <span class="expand-value">{{row.real_name}}</span>
                 </Col> -->
                 </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 }">
-            <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>
+								<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>
 </template>
 </template>
 
 
 <script>
 <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";
-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{
+	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);
+				// 获取之前选中值
 				let obj = this.$refs.xTable.getCheckboxReserveRecords(true);
 				let obj = this.$refs.xTable.getCheckboxReserveRecords(true);
-				if(!this.checkUidList.length || this.checkUidList.length <= obj.length){
-				  this.$refs.xTable.setAllCheckboxRow(false);
+				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.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>
 </script>
 
 
 <style scoped lang="stylus">
 <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;
+	/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;
 
 
-  .span {
-    color: #c5c8ce;
-  }
+			img {
+				width: 100%;
+				height: 100%;
+			}
+		}
+	}
 
 
-  .iconxiayi {
-    font-size: 12px;
-  }
-}
+	.userFrom {
+		>>>.ivu-form-item-content {
+			margin-left: 0px !important;
+		}
+	}
 
 
-.picBox {
-  display: inline-block;
-  cursor: pointer;
+	.userAlert {
+		margin-top: 20px;
+	}
 
 
-  .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);
-  }
+	.userI {
+		color: #1890FF;
+		font-style: normal;
+	}
 
 
-  .pictrue {
-    width: 60px;
-    height: 60px;
-    border: 1px dotted rgba(0, 0, 0, 0.1);
-    margin-right: 10px;
+	img {
+		height: 36px;
+		display: block;
+	}
 
 
-    img {
-      width: 100%;
-      height: 100%;
-    }
-  }
-}
+	.tabBox_img {
+		width: 36px;
+		height: 36px;
+		border-radius: 4px;
+		cursor: pointer;
 
 
-.userFrom {
-  >>> .ivu-form-item-content {
-    margin-left: 0px !important;
-  }
-}
+		img {
+			width: 100%;
+			height: 100%;
+		}
+	}
 
 
-.userAlert {
-  margin-top: 20px;
-}
+	.tabBox_tit {
+		width: 60%;
+		font-size: 12px !important;
+		margin: 0 2px 0 10px;
+		letter-spacing: 1px;
+		padding: 5px 0;
+		box-sizing: border-box;
+	}
 
 
-.userI {
-  color: #1890FF;
-  font-style: normal;
-}
+	.modelBox {
+		>>>.ivu-modal-body {
+			padding: 0 16px 16px 16px !important;
+		}
+	}
 
 
-img {
-  height: 36px;
-  display: block;
-}
+	.vipName {
+		color: #dab176;
+	}
 
 
-.tabBox_img {
-  width: 36px;
-  height: 36px;
-  border-radius: 4px;
-  cursor: pointer;
+	.listbox {
+		>>>.ivu-divider-horizontal {
+			margin: 0 !important;
+		}
+	}
 
 
-  img {
-    width: 100%;
-    height: 100%;
-  }
-}
+	/deep/.ivu-table-header {
+		// 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/.ivu-table th {
+		overflow: visible;
+	}
 
 
-.modelBox {
-  >>> .ivu-modal-body {
-    padding: 0 16px 16px 16px !important;
-  }
-}
+	/deep/.select-item:hover {
+		background-color: #f3f3f3;
+	}
 
 
-.vipName {
-  color: #dab176;
-}
+	/deep/.select-on {
+		display: block;
+	}
 
 
-.listbox {
-  >>>.ivu-divider-horizontal {
-    margin: 0 !important;
-  }
-}
+	/deep/.select-item.on {
+		/* background: #f3f3f3; */
+	}
 
 
-/deep/.ivu-table-header {
-  // overflow visible
-}
+	.pane_pd {
+		padding: 4px 16px 20px !important;
+		font-weight: 500;
+	}
 
 
-/deep/.ivu-table th {
-  overflow: visible;
-}
+	.new_tab {
+		>>>.ivu-tabs-nav .ivu-tabs-tab {
+			padding: 4px 16px 20px !important;
+			font-weight: 500;
+		}
+	}
 
 
-/deep/.select-item:hover {
-  background-color: #f3f3f3;
-}
+	.dateMedia {
+		/deep/.ivu-form-item-content {
+			max-width 250px;
 
 
-/deep/.select-on {
-  display: block;
-}
+			/deep/.ivu-date-picker {
+				width 100%;
+			}
+		}
+	}
 
 
-/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;
+	.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>
 </style>

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

@@ -76,6 +76,24 @@ export default {
 		        title: '股权记录'
 		        title: '股权记录'
 		    },
 		    },
 		    component: () => import('@/pages/finance/guquan/list')
 		    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')
 		}
 		}
     ]
     ]
 };
 };