|
@@ -1,229 +1,265 @@
|
|
|
<template>
|
|
|
-<!-- 用户-会员管理-等级列表 -->
|
|
|
- <div>
|
|
|
- <Card :bordered="false" dis-hover class="ivu-mt">
|
|
|
- <!-- 相关操作 -->
|
|
|
- <Button v-auth="['admin-user-level_add']" type="primary" @click="add">添加股东</Button>
|
|
|
- <!-- 等级列表表格 -->
|
|
|
- <Table :columns="columns1" :data="levelLists" 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.avatar">
|
|
|
- </div>
|
|
|
- </viewer>
|
|
|
- </template>
|
|
|
-
|
|
|
+ <!-- 用户-会员管理-等级列表 -->
|
|
|
+ <div>
|
|
|
+ <Card :bordered="false" dis-hover class="ivu-mt">
|
|
|
+ <!-- 相关操作 -->
|
|
|
+ <Button v-auth="['admin-user-level_add']" type="primary" @click="modals = true">添加股东</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.avatar">
|
|
|
+ </div>
|
|
|
+ </viewer>
|
|
|
+ </template>
|
|
|
+
|
|
|
<template slot-scope="{ row, index }" slot="name">
|
|
|
- <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>
|
|
|
+ <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>
|
|
|
+
|
|
|
+ <template slot-scope="{ row, index }" slot="action">
|
|
|
+ <a @click="del(row)">删除</a>
|
|
|
+ <Divider type="vertical" />
|
|
|
+ <a @click="changeholder(row)">股权</a>
|
|
|
</template>
|
|
|
-
|
|
|
- <template slot-scope="{ row, index }" slot="action">
|
|
|
- <a @click="changeMenu(row,2,index)">删除</a>
|
|
|
- </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>
|
|
|
+ </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="modalss" title="股权" scrollable width="900" @on-cancel="modalss=false" @on-ok='comInput'>
|
|
|
+ <Form :model="fromHolder" :label-width="100">
|
|
|
+ <FormItem label="分红股权">
|
|
|
+ <Input type="number" v-model="fromHolder.bonus_share" placeholder="输入分红股权数量"></Input>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="修改分红股权">
|
|
|
+ <RadioGroup v-model="fromHolder.initial_status">
|
|
|
+ <Radio label="1">增加</Radio>
|
|
|
+ <Radio label="2">减少</Radio>
|
|
|
+ </RadioGroup>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="原始股权">
|
|
|
+ <Input type="number" v-model="fromHolder.initial_share" placeholder="输入原始股权数量"></Input>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="修改原始股权">
|
|
|
+ <RadioGroup v-model="fromHolder.bonus_status">
|
|
|
+ <Radio label="1">增加</Radio>
|
|
|
+ <Radio label="2">减少</Radio>
|
|
|
+ </RadioGroup>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="备注">
|
|
|
+ <Input v-model="fromHolder.mark" placeholder="输入备注内容"></Input>
|
|
|
+ </FormItem>
|
|
|
+ </Form>
|
|
|
+ </Modal>
|
|
|
<Modal v-model="modals" title="用户列表" footerHide class="paymentFooter" scrollable width="900"
|
|
|
- @on-cancel="cancel">
|
|
|
- <user-list ref="goodslist" :goodsType="1" v-if="modals" @imageObject="getProductId"
|
|
|
- :serviceProject="1"></user-list>
|
|
|
+ @on-cancel="modals=false">
|
|
|
+ <user ref="goodslist" :goodsType="1" v-if="modals" @imageObject="getProductId" :serviceProject="1"></user>
|
|
|
</Modal>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
<script>
|
|
|
- import { mapState, mapMutations } from 'vuex';
|
|
|
- import { userList} from '@/api/user';
|
|
|
- import { updateShareholdingRecord,deleteShareholder,addShareholder} from '@/api/shareholder';
|
|
|
- export default {
|
|
|
- name: 'shareholderList',
|
|
|
- data () {
|
|
|
- return {
|
|
|
- // 弹窗
|
|
|
- modals:false,
|
|
|
- grid: {
|
|
|
- xl: 7,
|
|
|
- lg: 7,
|
|
|
- md: 12,
|
|
|
- sm: 24,
|
|
|
- xs: 24
|
|
|
- },
|
|
|
- loading: false,
|
|
|
- columns1: [
|
|
|
- {
|
|
|
- title: 'ID',
|
|
|
- key: 'uid',
|
|
|
- width: 80
|
|
|
- },
|
|
|
- {
|
|
|
- title: '头像',
|
|
|
- slot: 'icons',
|
|
|
- minWidth: 100
|
|
|
- },
|
|
|
- {
|
|
|
- title: '昵称',
|
|
|
- slot: 'name',
|
|
|
- minWidth: 120
|
|
|
- },
|
|
|
- {
|
|
|
- title: '分红股全',
|
|
|
- key: 'grade',
|
|
|
- minWidth: 100
|
|
|
- },
|
|
|
- {
|
|
|
- title: '原始股权',
|
|
|
- key: 'discount',
|
|
|
- minWidth: 100
|
|
|
- },
|
|
|
- {
|
|
|
- title: '操作',
|
|
|
- slot: 'action',
|
|
|
- fixed: 'right',
|
|
|
- minWidth: 120
|
|
|
- }
|
|
|
- ],
|
|
|
- listFrom: {
|
|
|
- is_shareholder: 1,
|
|
|
- page: 1,
|
|
|
- limit: 10
|
|
|
- },
|
|
|
- levelLists: [],
|
|
|
- total: 0,
|
|
|
- FromData: null,
|
|
|
- imgName: '',
|
|
|
- visible: false,
|
|
|
- levelId: 0,
|
|
|
- modalTitleSs: '',
|
|
|
- titleType: 'level',
|
|
|
- modelTask: false,
|
|
|
- num: 0
|
|
|
- }
|
|
|
- },
|
|
|
- created () {
|
|
|
+ import {
|
|
|
+ mapState,
|
|
|
+ mapMutations
|
|
|
+ } from 'vuex';
|
|
|
+ import {
|
|
|
+ userList
|
|
|
+ } from '@/api/user';
|
|
|
+ import {
|
|
|
+ updateShareholdingRecord,
|
|
|
+ deleteShareholder,
|
|
|
+ addShareholder
|
|
|
+ } from '@/api/shareholder';
|
|
|
+ import user from "@/components/userList/index"
|
|
|
+ export default {
|
|
|
+ name: 'shareholderList',
|
|
|
+ components: {
|
|
|
+ user
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ // 股权发放弹窗
|
|
|
+ modalss: false,
|
|
|
+ // 用户列表弹窗
|
|
|
+ modals: false,
|
|
|
+ loading: false,
|
|
|
+ columns1: [{
|
|
|
+ title: 'ID',
|
|
|
+ key: 'uid',
|
|
|
+ width: 80
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '头像',
|
|
|
+ slot: 'icons',
|
|
|
+ minWidth: 100
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '昵称',
|
|
|
+ slot: 'name',
|
|
|
+ minWidth: 120
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '分红股权',
|
|
|
+ key: 'bonus_share',
|
|
|
+ minWidth: 100
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '原始股权',
|
|
|
+ key: 'initial_share',
|
|
|
+ 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();
|
|
|
- },
|
|
|
- computed: {
|
|
|
- ...mapState('admin/layout', [
|
|
|
- 'isMobile'
|
|
|
- ]),
|
|
|
- labelWidth () {
|
|
|
- return this.isMobile ? undefined : 96;
|
|
|
- },
|
|
|
- labelPosition () {
|
|
|
- return this.isMobile ? 'top' : 'right';
|
|
|
- }
|
|
|
- },
|
|
|
- methods: {
|
|
|
- ...mapMutations('admin/userLevel', [
|
|
|
- 'getlevelId'
|
|
|
- ]),
|
|
|
- // 操作
|
|
|
- changeMenu (row, name, num) {
|
|
|
- this.levelId = row.id;
|
|
|
- switch (name) {
|
|
|
- case '1':
|
|
|
- this.getlevelId(this.levelId);
|
|
|
- this.$refs.tasks.modals = true;
|
|
|
- this.$refs.tasks.getList();
|
|
|
- break;
|
|
|
- default:
|
|
|
- this.del(row, '删除等级', num);
|
|
|
- }
|
|
|
- },
|
|
|
- // 删除
|
|
|
- del (row, tit, num) {
|
|
|
- let delfromData = {
|
|
|
- title: tit,
|
|
|
- num: num,
|
|
|
- url: `user/user_level/delete/${row.id}`,
|
|
|
- method: 'put',
|
|
|
- ids: ''
|
|
|
- }
|
|
|
- this.$modalSure(delfromData).then((res) => {
|
|
|
- this.$Message.success(res.msg);
|
|
|
- this.levelLists.splice(num, 1);
|
|
|
- if (!this.levelLists.length) {
|
|
|
- this.levelFrom.page = this.levelFrom.page == 1 ? 1 : this.levelFrom.page - 1;
|
|
|
- }
|
|
|
- this.getList();
|
|
|
- }).catch(res => {
|
|
|
- this.$Message.error(res.msg);
|
|
|
- });
|
|
|
- },
|
|
|
- // 等级列表
|
|
|
- getList () {
|
|
|
- this.loading = true;
|
|
|
- userList(this.listFrom).then(async res => {
|
|
|
- let data = res.data
|
|
|
- this.levelLists = 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.levelFrom.page = index;
|
|
|
- this.getList();
|
|
|
- },
|
|
|
- // 添加
|
|
|
- add () {
|
|
|
- this.modals = true;
|
|
|
- },
|
|
|
- // 编辑
|
|
|
- edit (row) {
|
|
|
- this.levelId = row.id;
|
|
|
- this.$modalForm(createApi({ id: this.levelId })).then(() => this.getList());
|
|
|
- this.getlevelId(this.levelId);
|
|
|
- },
|
|
|
- // 表格搜索
|
|
|
- userSearchs () {
|
|
|
- this.levelFrom.page = 1;
|
|
|
- this.getList();
|
|
|
- },
|
|
|
- // 修改成功
|
|
|
- submitFail () {
|
|
|
- this.getList();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapState('admin/layout', [
|
|
|
+ 'isMobile'
|
|
|
+ ]),
|
|
|
+ labelWidth() {
|
|
|
+ return this.isMobile ? undefined : 96;
|
|
|
+ },
|
|
|
+ labelPosition() {
|
|
|
+ return this.isMobile ? 'top' : 'right';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ 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;
|
|
|
+ },
|
|
|
+ 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;
|
|
|
+ userList(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.levelFrom.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);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 表格搜索
|
|
|
+ userSearchs() {
|
|
|
+ this.levelFrom.page = 1;
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
+ // 修改成功
|
|
|
+ submitFail() {
|
|
|
+ this.getList();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
</script>
|
|
|
|
|
|
<style lang="less">
|
|
|
- .tabBox_img{
|
|
|
- width: 36px;
|
|
|
- height: 36px;
|
|
|
- border-radius:4px;
|
|
|
- cursor: pointer;
|
|
|
- img{
|
|
|
- width: 100%;
|
|
|
- height :100%;
|
|
|
+ .tabBox_img {
|
|
|
+ width: 36px;
|
|
|
+ height: 36px;
|
|
|
+ border-radius: 4px;
|
|
|
+ cursor: pointer;
|
|
|
+
|
|
|
+ img {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
}
|
|
|
}
|
|
|
-</style>
|
|
|
+</style>
|