@@ -0,0 +1,109 @@
|
||||
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
|
||||
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
|
||||
<style>
|
||||
#groupDetail {
|
||||
background: #fff;
|
||||
border-radius: 6px;
|
||||
font-size: 14px;
|
||||
padding: 0 20px 20px;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.del-image-btn {
|
||||
position: absolute;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
line-height: 14px;
|
||||
text-align: center;
|
||||
border-radius: 50%;
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
background: #7438D5;
|
||||
color: #fff;
|
||||
top: -7px;
|
||||
right: -7px;
|
||||
}
|
||||
|
||||
.goods-images {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border-radius: 4px;
|
||||
position: relative;
|
||||
border: 1px solid #7438D5;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.label-auto {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.add-img {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border: 1px dashed #E6E6E6;
|
||||
border-radius: 4px;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.el-tree-node.is-expanded>.el-tree-node__children,.el-tree-node>.el-tree-node__children {
|
||||
display: flex;
|
||||
}
|
||||
.el-checkbox__input.is-checked+.el-checkbox__label{
|
||||
color: #7438D5;
|
||||
}
|
||||
|
||||
[v-cloak] {
|
||||
display: none
|
||||
}
|
||||
</style>
|
||||
<script src="__CDN__/assets/addons/shopro/libs/vue.js"></script>
|
||||
<script src="__CDN__/assets/addons/shopro/libs/element/element.js"></script>
|
||||
|
||||
<div id="groupDetail" v-cloak>
|
||||
<el-form :model="detailForm" ref="detailForm" :rules="fromRules" label-width="100px" class="demo-detailForm">
|
||||
<el-form-item label="组名:" prop="name">
|
||||
<el-input v-model="detailForm.name" placeholder="请输入组名"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="等级图片:" prop="image">
|
||||
<div class="display-flex">
|
||||
<div class="goods-image-box display-flex" v-if="detailForm.image">
|
||||
<div class="goods-images" style="margin-right: 0;">
|
||||
<img class="label-auto" :src="Fast.api.cdnurl(detailForm.image)" style="border-radius: 4px;">
|
||||
<div class="del-image-btn" @click="delImg('image',null)">
|
||||
<img class="label-auto" src="/assets/addons/shopro/img/goods/close.png">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="add-img display-flex" @click="addImg('image',null,false)" v-if="!detailForm.image">
|
||||
<i class="el-icon-plus"></i>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="权限:" prop="rules_arr">
|
||||
<div><el-checkbox v-model="ischecked" @change="checkedAll">选择全部</el-checkbox><el-checkbox v-model="isexpand" @change="expandAll">展开全部</el-checkbox></div>
|
||||
<el-tree
|
||||
v-if="openOrNot" :data="nodeList" show-checkbox node-key="id" ref="tree" highlight-current :default-checked-keys="detailForm.rules_arr" :default-expanded-keys="expand_arr" @check="selcetedStatus"
|
||||
:props="defaultProps">
|
||||
</el-tree>
|
||||
</el-form-item>
|
||||
<el-form-item label="Vip分组:" prop="status">
|
||||
<el-radio-group v-model="detailForm.is_vip">
|
||||
<el-radio label="1">是</el-radio>
|
||||
<el-radio label="2">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态:" prop="status">
|
||||
<el-radio-group v-model="detailForm.status">
|
||||
<el-radio label="normal">正常</el-radio>
|
||||
<el-radio label="hidden">隐藏</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="dialog-footer">
|
||||
<div @click="submitFrom" class="dialog-cancel-btn display-flex-c cursor-pointer">取消</div>
|
||||
<div @click="submitFrom('yes','detailForm')" class="dialog-define-btn display-flex-c cursor-pointer">确定
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,109 @@
|
||||
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
|
||||
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
|
||||
<style>
|
||||
#groupDetail {
|
||||
background: #fff;
|
||||
border-radius: 6px;
|
||||
font-size: 14px;
|
||||
padding: 0 20px 20px;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.del-image-btn {
|
||||
position: absolute;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
line-height: 14px;
|
||||
text-align: center;
|
||||
border-radius: 50%;
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
background: #7438D5;
|
||||
color: #fff;
|
||||
top: -7px;
|
||||
right: -7px;
|
||||
}
|
||||
|
||||
.goods-images {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border-radius: 4px;
|
||||
position: relative;
|
||||
border: 1px solid #7438D5;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.label-auto {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.add-img {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border: 1px dashed #E6E6E6;
|
||||
border-radius: 4px;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.el-tree-node.is-expanded>.el-tree-node__children,.el-tree-node>.el-tree-node__children {
|
||||
display: flex;
|
||||
}
|
||||
.el-checkbox__input.is-checked+.el-checkbox__label{
|
||||
color: #7438D5;
|
||||
}
|
||||
|
||||
[v-cloak] {
|
||||
display: none
|
||||
}
|
||||
</style>
|
||||
<script src="__CDN__/assets/addons/shopro/libs/vue.js"></script>
|
||||
<script src="__CDN__/assets/addons/shopro/libs/element/element.js"></script>
|
||||
|
||||
<div id="groupDetail" v-cloak>
|
||||
<el-form :model="detailForm" ref="detailForm" :rules="fromRules" label-width="100px" class="demo-detailForm">
|
||||
<el-form-item label="组名:" prop="name">
|
||||
<el-input v-model="detailForm.name" placeholder="请输入组名"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="等级图片:" prop="image">
|
||||
<div class="display-flex">
|
||||
<div class="goods-image-box display-flex" v-if="detailForm.image">
|
||||
<div class="goods-images" style="margin-right: 0;">
|
||||
<img class="label-auto" :src="Fast.api.cdnurl(detailForm.image)" style="border-radius: 4px;">
|
||||
<div class="del-image-btn" @click="delImg('image',null)">
|
||||
<img class="label-auto" src="/assets/addons/shopro/img/goods/close.png">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="add-img display-flex" @click="addImg('image',null,false)" v-if="!detailForm.image">
|
||||
<i class="el-icon-plus"></i>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="权限:" prop="rules_arr">
|
||||
<div><el-checkbox v-model="ischecked" @change="checkedAll">选择全部</el-checkbox><el-checkbox v-model="isexpand" @change="expandAll">展开全部</el-checkbox></div>
|
||||
<el-tree
|
||||
v-if="openOrNot" :data="nodeList" show-checkbox node-key="id" ref="tree" highlight-current :default-checked-keys="detailForm.rules_arr" :default-expanded-keys="expand_arr" @check="selcetedStatus"
|
||||
:props="defaultProps">
|
||||
</el-tree>
|
||||
</el-form-item>
|
||||
<el-form-item label="Vip分组:" prop="status">
|
||||
<el-radio-group v-model="detailForm.is_vip">
|
||||
<el-radio label="1">是</el-radio>
|
||||
<el-radio label="2">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态:" prop="status">
|
||||
<el-radio-group v-model="detailForm.status">
|
||||
<el-radio label="normal">正常</el-radio>
|
||||
<el-radio label="hidden">隐藏</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="dialog-footer">
|
||||
<div @click="submitFrom" class="dialog-cancel-btn display-flex-c cursor-pointer">取消</div>
|
||||
<div @click="submitFrom('yes','detailForm')" class="dialog-define-btn display-flex-c cursor-pointer">确定
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,106 @@
|
||||
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
|
||||
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
|
||||
<style>
|
||||
#groupIndex {
|
||||
background: #fff;
|
||||
padding: 0 20px 30px;
|
||||
}
|
||||
.status-normal{
|
||||
color: #6ACAA5;
|
||||
}
|
||||
.status-hidden{
|
||||
color: #C4C4C4;
|
||||
}
|
||||
|
||||
[v-cloak] {
|
||||
display: none
|
||||
}
|
||||
</style>
|
||||
<script src="__CDN__/assets/addons/shopro/libs/vue.js"></script>
|
||||
<script src="__CDN__/assets/addons/shopro/libs/element/element.js"></script>
|
||||
<script src="__CDN__/assets/addons/shopro/libs/moment.js"></script>
|
||||
<div id="groupIndex" v-cloak>
|
||||
<div class="custom-header display-flex">
|
||||
<div class="custom-header-title">
|
||||
用户分组
|
||||
</div>
|
||||
</div>
|
||||
<div class="custom-button-container">
|
||||
<div class="display-flex">
|
||||
<div class="custom-refresh" @click="getData">
|
||||
<i class="el-icon-refresh"></i>
|
||||
</div>
|
||||
<el-button type="primary" size="small" @click="operation('create',null)"><i class="el-icon-plus"></i> 新建分组</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="custom-table">
|
||||
<div class="custom-table-border">
|
||||
<el-table ref="multipleTable" :data="data" tooltip-effect="dark" style="width: 100%" border
|
||||
:row-class-name="tableRowClassName" :cell-class-name="tableCellClassName"
|
||||
:header-cell-class-name="tableCellClassName" @row-dblclick="operation">
|
||||
<el-table-column label="ID" prop="id" width="80">
|
||||
</el-table-column>
|
||||
<el-table-column label="组名" min-width="240">
|
||||
<template slot-scope="scope">
|
||||
<div class="ellipsis-item">
|
||||
{{scope.row.name}}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="vip分组" width="100">
|
||||
<template slot-scope="scope">
|
||||
<div class="display-flex">
|
||||
<span v-if="scope.row.is_vip==1" class="display-flex">
|
||||
<span class="shopro-status-dot shopro-status-normal-dot"></span>
|
||||
<span class="shopro-status-normal">是</span>
|
||||
</span>
|
||||
<span v-else class="display-flex">
|
||||
<span class="shopro-status-dot shopro-status-default-dot"></span>
|
||||
<span class="shopro-status-default">否</span>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="更新时间" width="180">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{moment(scope.row.updatetime*1000).format("YYYY-MM-DD HH:mm:ss")}}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" width="80">
|
||||
<template slot-scope="scope">
|
||||
<div class="display-flex">
|
||||
<span v-if="scope.row.status=='normal'" class="display-flex">
|
||||
<span class="shopro-status-dot shopro-status-normal-dot"></span>
|
||||
<span class="shopro-status-normal">{{scope.row.status_text}}</span>
|
||||
</span>
|
||||
<span v-else class="display-flex">
|
||||
<span class="shopro-status-dot shopro-status-default-dot"></span>
|
||||
<span class="shopro-status-default">{{scope.row.status_text}}</span>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" min-width="130">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{if condition = "$auth->check('shopro/user/group/edit')"}
|
||||
<span class="table-edit-text" @click="operation('edit',scope.row.id)">编辑</span>
|
||||
{/if}
|
||||
{if condition = "$auth->check('shopro/user/group/del')"}
|
||||
<span class="table-delete-text" @click="operation('del',scope.row.id)">删除</span>
|
||||
{/if}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="pagination-container">
|
||||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
||||
:current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="limit"
|
||||
layout="total, sizes, prev, pager, next, jumper" :total="totalPage">
|
||||
</el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
在新工单中引用
屏蔽一个用户