|
|
@@ -1,293 +1,317 @@
|
|
|
<template>
|
|
|
-<!-- 用户-会员管理-等级列表 -->
|
|
|
- <div>
|
|
|
- <Card :bordered="false" dis-hover class="ivu-mt" :padding="0">
|
|
|
- <div class="new_card_pd">
|
|
|
- <!-- 筛选条件 -->
|
|
|
- <Form ref="levelFrom" :model="levelFrom" inline :label-width="labelWidth" :label-position="labelPosition" @submit.native.prevent>
|
|
|
- <FormItem label="状态:" label-for="status1">
|
|
|
- <Select v-model="levelFrom.is_show" placeholder="请选择" clearable element-id="status1" style="width:250px;">
|
|
|
- <Option value="1">显示</Option>
|
|
|
- <Option value="0">不显示</Option>
|
|
|
- </Select>
|
|
|
- </FormItem>
|
|
|
- <FormItem label="等级名称:" label-for="title">
|
|
|
- <Input v-model="levelFrom.title" placeholder="请输入等级名称" style="width:250px;margin-right:14px;"/>
|
|
|
- <Button type="primary" @click="userSearchs">查询</Button>
|
|
|
- </FormItem>
|
|
|
- </Form>
|
|
|
- </div>
|
|
|
- </Card>
|
|
|
- <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.icon">
|
|
|
- </div>
|
|
|
- </viewer>
|
|
|
- </template>
|
|
|
- <template slot-scope="{ row, index }" slot="is_forevers">
|
|
|
- <i-switch v-model="row.is_forever" :value="row.is_forever" :true-value="1" :false-value="0" :disabled="true" size="large">
|
|
|
- <span slot="open">永久</span>
|
|
|
- <span slot="close">非永久</span>
|
|
|
- </i-switch>
|
|
|
- </template>
|
|
|
- <template slot-scope="{ row, index }" slot="is_pays">
|
|
|
- <i-switch v-model="row.is_pay" :value="row.is_pay" :true-value="1" :false-value="0" :disabled="true" size="large">
|
|
|
- <span slot="open">付费</span>
|
|
|
- <span slot="close">免费</span>
|
|
|
- </i-switch>
|
|
|
- </template>
|
|
|
- <template slot-scope="{ row, index }" slot="is_shows">
|
|
|
- <i-switch v-model="row.is_show" :value="row.is_show" :true-value="1" :false-value="0" @on-change="onchangeIsShow(row)" size="large">
|
|
|
- <span slot="open">显示</span>
|
|
|
- <span slot="close">隐藏</span>
|
|
|
- </i-switch>
|
|
|
- </template>
|
|
|
- <template slot-scope="{ row, index }" slot="action">
|
|
|
- <a @click="edit(row)">编辑</a>
|
|
|
- <Divider type="vertical" />
|
|
|
- <a @click="changeMenu(row,2,index)">删除</a>
|
|
|
-<!-- <template>-->
|
|
|
-<!-- <Dropdown @on-click="changeMenu(row,$event,index)">-->
|
|
|
-<!-- <a href="javascript:void(0)">-->
|
|
|
-<!-- 更多-->
|
|
|
-<!-- <Icon type="ios-arrow-down"></Icon>-->
|
|
|
-<!-- </a>-->
|
|
|
-<!-- <DropdownMenu slot="list">-->
|
|
|
-<!--<!– <DropdownItem name="1">等级任务</DropdownItem>–>-->
|
|
|
-<!-- <DropdownItem name="2">删除等级</DropdownItem>-->
|
|
|
-<!-- </DropdownMenu>-->
|
|
|
-<!-- </Dropdown>-->
|
|
|
-<!-- </template>-->
|
|
|
- </template>
|
|
|
- </Table>
|
|
|
- <div class="acea-row row-right page">
|
|
|
- <Page :total="total" :current="levelFrom.page" show-elevator show-total @on-change="pageChange"
|
|
|
- :page-size="levelFrom.limit"/>
|
|
|
- </div>
|
|
|
- </Card>
|
|
|
- <!-- 等级任务-->
|
|
|
- <task-list ref="tasks"></task-list>
|
|
|
- </div>
|
|
|
+ <!-- 用户-会员管理-等级列表 -->
|
|
|
+ <div>
|
|
|
+ <Card :bordered="false" dis-hover class="ivu-mt">
|
|
|
+ <Tabs value="type1">
|
|
|
+ <TabPane label="每月发放记录" name="type1">
|
|
|
+ <!-- 每月发放记录表格 -->
|
|
|
+ <Table :columns="columns1" :data="list" ref="table" :loading="loading" highlight-row
|
|
|
+ no-userFrom-text="暂无数据" no-filtered-userFrom-text="暂无筛选结果">
|
|
|
+ <template slot-scope="{ row, index }" slot="initial_share">
|
|
|
+ <div>
|
|
|
+ 数量:{{row.initial_share_count}}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 占比:{{row.initial_ratio}}%
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 分润:{{row.grant_initial_price}}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 单股:{{row.one_price}}
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template slot-scope="{ row, index }" slot="bonus_share">
|
|
|
+ <div>
|
|
|
+ 数量:{{row.bonus_share_count}}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 占比:{{row.bonus_ratio}}%
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 分润:{{row.grant_bonus_price}}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 单股:{{row.two_price}}
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template slot-scope="{ row, index }" slot="action">
|
|
|
+ <a @click="changeholder(row)">详情</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>
|
|
|
+ </TabPane>
|
|
|
+ <TabPane label="详细记录" name="type2">
|
|
|
+ <div class="new_card_pd">
|
|
|
+ <!-- 筛选条件 -->
|
|
|
+ <Form ref="levelFrom" :model="detailFrom" inline :label-width="labelWidth" :label-position="labelPosition"
|
|
|
+ @submit.native.prevent>
|
|
|
+ <FormItem label="发放时间" label-for="status1">
|
|
|
+ <Select v-model="detailFrom.shareholding_record_id" placeholder="请选择" clearable filterable style="width:250px;">
|
|
|
+ <Option v-for="item in list" :value="item.id">{{item.create_time+"("+item.id+")"}}</Option>
|
|
|
+ </Select>
|
|
|
+ <Button type="primary" @click="searchs">查询</Button>
|
|
|
+ </FormItem>
|
|
|
+ </Form>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ <!-- 分红详细记录表格 -->
|
|
|
+ <Table :columns="columns2" :data="detailList" ref="table" :loading="detailloading" highlight-row
|
|
|
+ no-userFrom-text="暂无数据" no-filtered-userFrom-text="暂无筛选结果">
|
|
|
+ <template slot-scope="{ row, index }" slot="initial_share">
|
|
|
+ <div>
|
|
|
+ 数量:{{row.initial_share_count}}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 占比:{{row.initial_ratio}}%
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 分润:{{row.grant_initial_price}}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 单股:{{row.one_price}}
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template slot-scope="{ row, index }" slot="bonus_share">
|
|
|
+ <div>
|
|
|
+ 数量:{{row.bonus_share_count}}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 占比:{{row.bonus_ratio}}%
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 分润:{{row.grant_bonus_price}}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 单股:{{row.two_price}}
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template slot-scope="{ row, index }" slot="action">
|
|
|
+ <a @click="changeholder(row)">详情</a>
|
|
|
+ </template>
|
|
|
+ </Table>
|
|
|
+ <div class="acea-row row-right page">
|
|
|
+ <Page :total="detailtotal" :current="detailFrom.page" show-elevator show-total
|
|
|
+ @on-change="detailPageChange" :page-size="detailFrom.limit" />
|
|
|
+ </div>
|
|
|
+ </TabPane>
|
|
|
+ </Tabs>
|
|
|
+
|
|
|
+ </Card>
|
|
|
+
|
|
|
+ </div>
|
|
|
</template>
|
|
|
<script>
|
|
|
- import { mapState, mapMutations } from 'vuex';
|
|
|
- import { levelListApi, setShowApi, createApi } from '@/api/user';
|
|
|
- import editFrom from '@/components/from/from';
|
|
|
- export default {
|
|
|
- name: 'user_level',
|
|
|
- components: { editFrom },
|
|
|
- data () {
|
|
|
- return {
|
|
|
- grid: {
|
|
|
- xl: 7,
|
|
|
- lg: 7,
|
|
|
- md: 12,
|
|
|
- sm: 24,
|
|
|
- xs: 24
|
|
|
- },
|
|
|
- loading: false,
|
|
|
- columns1: [
|
|
|
- {
|
|
|
- title: 'ID',
|
|
|
- key: 'id',
|
|
|
- width: 80
|
|
|
- },
|
|
|
- {
|
|
|
- title: '等级图标',
|
|
|
- slot: 'icons',
|
|
|
- minWidth: 100
|
|
|
- },
|
|
|
- {
|
|
|
- title: '等级名称',
|
|
|
- key: 'name',
|
|
|
- minWidth: 120
|
|
|
- },
|
|
|
- {
|
|
|
- title: '等级',
|
|
|
- key: 'grade',
|
|
|
- minWidth: 100
|
|
|
- },
|
|
|
- {
|
|
|
- title: '享受折扣(%)',
|
|
|
- key: 'discount',
|
|
|
- minWidth: 100
|
|
|
- },
|
|
|
- // {
|
|
|
- // title: '有效时间',
|
|
|
- // key: 'valid_date',
|
|
|
- // minWidth: 120
|
|
|
- // },
|
|
|
- // {
|
|
|
- // title: '是否永久',
|
|
|
- // slot: 'is_forevers',
|
|
|
- // minWidth: 130
|
|
|
- // },
|
|
|
- // {
|
|
|
- // title: '是否付费',
|
|
|
- // slot: 'is_pays',
|
|
|
- // minWidth: 120
|
|
|
- // },
|
|
|
- {
|
|
|
- title: '是否显示',
|
|
|
- slot: 'is_shows',
|
|
|
- minWidth: 120
|
|
|
- },
|
|
|
- {
|
|
|
- title: '等级说明',
|
|
|
- key: 'explain',
|
|
|
- minWidth: 120
|
|
|
- },
|
|
|
- {
|
|
|
- title: '操作',
|
|
|
- slot: 'action',
|
|
|
- fixed: 'right',
|
|
|
- minWidth: 120
|
|
|
- }
|
|
|
- ],
|
|
|
- levelFrom: {
|
|
|
- is_show: '',
|
|
|
- title: '',
|
|
|
- page: 1,
|
|
|
- limit: 10
|
|
|
- },
|
|
|
- levelLists: [],
|
|
|
- total: 0,
|
|
|
- FromData: null,
|
|
|
- imgName: '',
|
|
|
- visible: false,
|
|
|
- levelId: 0,
|
|
|
- modalTitleSs: '',
|
|
|
- titleType: 'level',
|
|
|
- modelTask: false,
|
|
|
- num: 0
|
|
|
- }
|
|
|
- },
|
|
|
- created () {
|
|
|
- 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);
|
|
|
- });
|
|
|
- },
|
|
|
- // 删除成功
|
|
|
- // submitModel () {
|
|
|
- // this.levelLists.splice(this.delfromData.num, 1)
|
|
|
- // },
|
|
|
- // 修改是否显示
|
|
|
- onchangeIsShow (row) {
|
|
|
- let data = {
|
|
|
- id: row.id,
|
|
|
- is_show: row.is_show
|
|
|
- }
|
|
|
- setShowApi(data).then(async res => {
|
|
|
- this.$Message.success(res.msg);
|
|
|
- }).catch(res => {
|
|
|
- this.$Message.error(res.msg);
|
|
|
- })
|
|
|
- },
|
|
|
- // 等级列表
|
|
|
- getList () {
|
|
|
- this.loading = true;
|
|
|
- this.levelFrom.is_show = this.levelFrom.is_show || '';
|
|
|
- levelListApi(this.levelFrom).then(async res => {
|
|
|
- let data = res.data
|
|
|
- this.levelLists = data.list;
|
|
|
- this.total = res.data.count;
|
|
|
- this.loading = false;
|
|
|
- }).catch(res => {
|
|
|
- this.loading = false;
|
|
|
- this.$Message.error(res.msg);
|
|
|
- })
|
|
|
- },
|
|
|
- pageChange (index) {
|
|
|
- this.levelFrom.page = index;
|
|
|
- this.getList();
|
|
|
- },
|
|
|
- // 添加
|
|
|
- add () {
|
|
|
- this.levelId = 0;
|
|
|
- this.$modalForm(createApi({ id: this.levelId })).then(() => this.getList());
|
|
|
- },
|
|
|
- // 编辑
|
|
|
- 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();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ import {
|
|
|
+ mapState,
|
|
|
+ mapMutations
|
|
|
+ } from 'vuex';
|
|
|
+ import {
|
|
|
+ monthShareholderList,
|
|
|
+ userShareholderList
|
|
|
+ } from '@/api/shareholder';
|
|
|
+ export default {
|
|
|
+ name: 'shareholderBonus',
|
|
|
+ computed: {
|
|
|
+ ...mapState('admin/layout', [
|
|
|
+ 'isMobile'
|
|
|
+ ]),
|
|
|
+ labelWidth() {
|
|
|
+ return this.isMobile ? undefined : 80;
|
|
|
+ },
|
|
|
+ labelPosition() {
|
|
|
+ return this.isMobile ? 'top' : 'right';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ // 股权发放弹窗
|
|
|
+ modalss: false,
|
|
|
+ // 用户列表弹窗
|
|
|
+ modals: false,
|
|
|
+ loading: false,
|
|
|
+ columns1: [{
|
|
|
+ title: 'ID',
|
|
|
+ key: 'id',
|
|
|
+ width: 80
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '月份',
|
|
|
+ key: 'month',
|
|
|
+ minWidth: 50
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '毛利润',
|
|
|
+ key: 'gross_profit',
|
|
|
+ minWidth: 100
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '原始股',
|
|
|
+ slot: 'initial_share',
|
|
|
+ minWidth: 150
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '分红股',
|
|
|
+ slot: 'bonus_share',
|
|
|
+ minWidth: 150
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '发放时间',
|
|
|
+ key: 'create_time',
|
|
|
+ minWidth: 130
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '发放总分润',
|
|
|
+ key: 'price',
|
|
|
+ minWidth: 130
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '操作',
|
|
|
+ slot: 'action',
|
|
|
+ fixed: 'right',
|
|
|
+ minWidth: 120
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ columns2: [{
|
|
|
+ title: 'ID',
|
|
|
+ key: 'id',
|
|
|
+ width: 80
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '月份',
|
|
|
+ key: 'month',
|
|
|
+ minWidth: 50
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '毛利润',
|
|
|
+ key: 'gross_profit',
|
|
|
+ minWidth: 100
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '原始股',
|
|
|
+ slot: 'initial_share',
|
|
|
+ minWidth: 150
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '分红股',
|
|
|
+ slot: 'bonus_share',
|
|
|
+ minWidth: 150
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '发放时间',
|
|
|
+ key: 'create_time',
|
|
|
+ minWidth: 130
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '发放总分润',
|
|
|
+ key: 'price',
|
|
|
+ minWidth: 130
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '操作',
|
|
|
+ slot: 'action',
|
|
|
+ fixed: 'right',
|
|
|
+ minWidth: 120
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ listFrom: {
|
|
|
+ page: 1,
|
|
|
+ limit: 10
|
|
|
+ },
|
|
|
+ fromHolder: {
|
|
|
+ uid: 0,
|
|
|
+ initial_share: 0,
|
|
|
+ bonus_share: 0,
|
|
|
+ initial_status: "1",
|
|
|
+ bonus_status: "1",
|
|
|
+ mark: ''
|
|
|
+ },
|
|
|
+ list: [], //每月发放记录
|
|
|
+ total: 0,
|
|
|
+ detailFrom: {
|
|
|
+ shareholding_record_id: '',
|
|
|
+ page: 1,
|
|
|
+ limit: 10
|
|
|
+ },
|
|
|
+ detailloading: false,
|
|
|
+ detailList: [], //单次发放记录
|
|
|
+ detailTotal: 0,
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getList();
|
|
|
+ this.getDetailList();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ // 发放列表
|
|
|
+ getList() {
|
|
|
+ this.loading = true;
|
|
|
+ monthShareholderList(this.listFrom).then(async res => {
|
|
|
+ let data = res.data
|
|
|
+ this.list = data.list.map((re) => {
|
|
|
+ re.one_price = (re.grant_initial_price / 100 * re.initial_ratio / re
|
|
|
+ .initial_share_count).toFixed(2);
|
|
|
+ re.two_price = (re.grant_bonus_price / 100 * re.bonus_ratio / re
|
|
|
+ .bonus_share_count).toFixed(2);
|
|
|
+ return re;
|
|
|
+ });
|
|
|
+ this.total = res.data.count;
|
|
|
+ this.loading = false;
|
|
|
+ }).catch(res => {
|
|
|
+ console.log(res, 'res');
|
|
|
+ this.loading = false;
|
|
|
+ this.$Message.error(res.msg);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 发放详细
|
|
|
+ getDetailList() {
|
|
|
+ this.detailloading = true;
|
|
|
+ userShareholderList(this.detailFrom).then(async res => {
|
|
|
+ let data = res.data
|
|
|
+ this.detailList = data.list;
|
|
|
+ this.detailTotal = res.data.count;
|
|
|
+ this.detailloading = false;
|
|
|
+ }).catch(res => {
|
|
|
+ console.log(res, 'res');
|
|
|
+ this.detailloading = false;
|
|
|
+ this.$Message.error(res.msg);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ pageChange(index) {
|
|
|
+ this.listFrom.page = index;
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
+ detailPageChange(index) {
|
|
|
+ this.detailFrom.page = index;
|
|
|
+ this.getDetailList();
|
|
|
+ },
|
|
|
+ // 表格搜索
|
|
|
+ searchs() {
|
|
|
+ this.detailFrom.page = 1;
|
|
|
+ this.getDetailList();
|
|
|
+ },
|
|
|
+ }
|
|
|
+ }
|
|
|
</script>
|
|
|
|
|
|
-<style scoped lang="stylus">
|
|
|
- .tabBox_img
|
|
|
- width 36px
|
|
|
- height 36px
|
|
|
- border-radius:4px
|
|
|
- cursor pointer
|
|
|
- img
|
|
|
- width 100%
|
|
|
- height 100%
|
|
|
-</style>
|
|
|
+<style lang="less">
|
|
|
+ .tabBox_img {
|
|
|
+ width: 36px;
|
|
|
+ height: 36px;
|
|
|
+ border-radius: 4px;
|
|
|
+ cursor: pointer;
|
|
|
+
|
|
|
+ img {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|