123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344 |
- <link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
- <link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
- <style>
- #indexPage {
- font-family: Source Han Sans SC;
- /* padding: 0 0 20px; */
- /* background: #fff; */
- border-radius: 10px 10px 0px 0px;
- }
- .shopro-screen-container {
- padding-top: 16px;
- background: #fff;
- }
- .shopro-table-container {
- background: #fff;
- margin-top: 10px;
- padding: 20px 20px 30px;
- }
- .shopro-reset-button {
- margin-right: 20px;
- }
- .title {
- height: 58px;
- line-height: 58px;
- font-weight: 600;
- font-size: 13px;
- }
- .btn-common {
- width: 80px;
- height: 30px;
- line-height: 30px;
- border-radius: 4px;
- font-size: 13px;
- text-align: center;
- cursor: pointer;
- display: inline-block;
- }
- .btn-box {
- margin-bottom: 20px;
- display: flex;
- justify-content: space-between;
- }
- .create-btn {
- background: #7536D0;
- color: #fff;
- width: 100px;
- height: 32px;
- line-height: 32px;
- }
- .operation-status {
- color: #7438D5;
- margin-right: 14px;
- cursor: pointer;
- }
- .table-header-bgcolor th {
- background-color: #f9f9f9 !important;
- padding: 8px 0;
- }
- .table-header-bgcolor th .cell {
- font-weight: 400;
- color: #444;
- }
- /* 搜索 筛选 */
- .screen-con {
- display: flex;
- }
- .header-input-item {
- margin-right: 30px;
- margin-bottom: 14px;
- width: 242px;
- }
- .header-input-item .header-input-tip {
- margin-right: 14px;
- }
- .header-input-item .el-input {
- width: 176px;
- }
- .multiple-set-acitve-1,
- .multiple-set-acitve-2,
- .multiple-set-acitve-3 {
- cursor: pointer;
- margin-right: 14px;
- }
- .multiple-set-acitve .multiple-set-acitve-1 {
- color: #60CC9E;
- }
- .multiple-set-acitve .multiple-set-acitve-2 {
- color: #ED655F;
- }
- .multiple-set-acitve .multiple-set-acitve-3 {
- color: #7438D5
- }
- .shopro-pagination-container .shopro-edit-text {
- color: inherit;
- }
- .shopro-refresh-button {
- margin-bottom: 20px;
- margin-right: 20px;
- }
- .el-checkbox__inner:focus {
- border: none;
- outline: none;
- }
- .el-table--border th:first-child .cell {
- padding-left: 5px;
- }
- .activity-type {
- justify-content: space-around;
- width: 90px;
- }
- .activity-type-btn {
- width: 40px;
- height: 20px;
- padding-top: 2px;
- border-radius: 4px;
- color: #fff;
- justify-content: center;
- }
- .seckill-btn {
- background: #FFF4F3;
- border: 1px solid #FECAC4;
- color: #FE9488;
- }
- .groupon-btn {
- background: #F1EDFA;
- border: 1px solid #CEBEEC;
- color: #9C7EDA;
- }
- .score-btn {
- background: #FDF5E8;
- border: 1px solid #F8DCAE;
- color: #F2BA5E;
- }
- .really-status-tip {
- margin-right: 10px;
- color: #444;
- font-size: 12px;
- }
- .really-status-icon {
- font-size: 20px;
- color: #7C7C7C;
- margin-right: 16px;
- }
- .el-popover--plain {
- padding: 12px;
- color: #444;
- }
- .nice-validator .el-input__inner {
- vertical-align: baseline !important;
- }
- .active-cursor-line {
- color: #7438D5;
- cursor: pointer;
- }
- [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="indexPage" v-cloak v-loading="isAjax">
- <div class="shopro-screen-container">
- <div class="shopro-button shopro-refresh-button" @click="getListData">
- <i class="el-icon-refresh"></i>
- </div>
- <div class="display-flex shopro-screen-item">
- <div class="really-status-tip">实时动态</div>
- <el-popover placement="top" trigger="hover" content="开启后,该页面将实时刷新">
- <i class="el-icon-question really-status-icon" slot="reference"></i>
- </el-popover>
- <el-switch @change="changeReallyStatus" v-model="really_status" active-value="1" inactive-value="0"
- active-color="#7536D0" inactive-color="#eee">
- </el-switch>
- </div>
- <div class="display-flex shopro-screen-item">
- <el-input placeholder="请输入内容" v-model="searchForm.form_1_value" class="screen-item-select" size="small">
- <el-select v-model="searchForm.form_1_key" slot="prepend" placeholder="请选择">
- <el-option label="分销用户ID" value="agent_id"></el-option>
- <el-option label="分销用户昵称" value="agent_nickname"></el-option>
- <el-option label="分销用户手机号" value="agent_mobile"></el-option>
- </el-select>
- </el-input>
- </div>
- <div class="display-flex shopro-screen-item">
- <div class="shopro-screen-tip">操作人类型</div>
- <div class="shopro-screen-condition">
- <el-select v-model="searchForm.oper_type" placeholder="请选择动态类型" size="small">
- <el-option :label="type.label" :value="type.value" v-for="type in operTypeOptions">
- </el-option>
- </el-select>
- </div>
- </div>
- <div class="display-flex shopro-screen-item"
- v-if="searchForm.oper_type=='user' || searchForm.oper_type=='admin'">
- <el-input placeholder="请输入内容" v-model="searchForm.form_2_value" class="screen-item-select" size="small">
- <el-select v-model="searchForm.form_2_key" slot="prepend" placeholder="请选择">
- <el-option label="操作人ID" value="oper_id"></el-option>
- <el-option label="操作人昵称" value="oper_nickname"></el-option>
- <el-option label="操作人手机号" value="oper_mobile" v-if="searchForm.oper_type=='user'"></el-option>
- </el-select>
- </el-input>
- </div>
- <div class="display-flex shopro-screen-item">
- <div class="shopro-screen-tip">动态时间</div>
- <div>
- <el-date-picker v-model="searchForm.createtime" type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss"
- size="small" format="yyyy-MM-dd HH:mm:ss" range-separator="至" start-placeholder="开始日期"
- end-placeholder="结束日期">
- </el-date-picker>
- </div>
- </div>
- <div class="display-flex shopro-screen-item">
- <div class="shopro-screen-tip">动态类型</div>
- <div class="shopro-screen-condition">
- <el-select v-model="searchForm.event" placeholder="请选择动态类型" size="small">
- <el-option :label="log.name" :value="log.type" v-for="log in logOptions">
- </el-option>
- </el-select>
- </div>
- </div>
- <div class="display-flex shopro-screen-item-button">
- <div class="shopro-button shopro-reset-button" @click="screenEmpty">重置</div>
- <div class="shopro-button shopro-screen-button" @click="pageCurrentChange(1)">筛选</div>
- </div>
- </div>
- <div class="shopro-table-container">
- <el-table :data="listData" style="width: 100%" border stripe="true" :cell-class-name="tableCellClassName"
- :header-cell-class-name="tableCellClassName">
- </el-table-column>
- <el-table-column prop="id" label="ID" width="70">
- </el-table-column>
- <el-table-column prop="event_text" label="动态筛选" min-width="100">
- </el-table-column>
- <el-table-column label="分销商" width="160">
- <template slot-scope="scope">
- <el-popover placement="bottom" trigger="hover" width="180">
- <div class="popover-container">
- <div class="display-flex">
- <div class="display-flex">
- <div class="popover-tip">用户ID</div>:
- </div>
- <div class="active-cursor-line" @click="openAgentProfile(scope.row.agent_id)">
- {{scope.row.agent.id}}
- </div>
- </div>
- <div class="display-flex" v-if="scope.row.agent && scope.row.agent.mobile">
- <div class="display-flex">
- <div class="popover-tip">手机号</div>:
- </div>
- <div>{{scope.row.agent.mobile}}</div>
- </div>
- </div>
- <div class="display-flex" slot="reference" v-if="scope.row.agent">
- <div class="table-image">
- <el-image :src="Fast.api.cdnurl(scope.row.agent.avatar)" fit="contain">
- <div slot="error" class="image-slot">
- <i class="el-icon-picture-outline"></i>
- </div>
- </el-image>
- </div>
- <div class="ellipsis-item">{{scope.row.agent.nickname}}</div>
- </div>
- </el-popover>
- <div v-if="!scope.row.agent">-</div>
- </template>
- </el-table-column>
- <el-table-column prop="remark" label="内容" width="400">
- </el-table-column>
- <el-table-column prop="oper_type_text" label="操作人类型" width="100">
- </el-table-column>
- <el-table-column label="操作人" width="160">
- <template slot-scope="scope">
- <div class="display-flex" v-if="scope.row.oper">
- <div class="table-image">
- <el-image :src="Fast.api.cdnurl(scope.row.oper.avatar)" fit="contain">
- <div slot="error" class="image-slot">
- <i class="el-icon-picture-outline"></i>
- </div>
- </el-image>
- </div>
- <div class="ellipsis-item">{{scope.row.oper.nickname}}</div>
- </div>
- <div v-if="!scope.row.oper">系统</div>
- </template>
- </el-table-column>
- <el-table-column label="动态时间" width="160">
- <template slot-scope="scope">
- <div>
- {{moment(scope.row.createtime*1000).format("YYYY-MM-DD HH:mm:ss")}}
- </div>
- </template>
- </el-table-column>
- <el-table-column label="操作" fixed="right" min-width="80">
- <template slot-scope="scope">
- <div class="operation-status">
- <span v-if="['order','reward','share','agent','level'].includes(scope.row.event)"
- @click="operation(scope.row.event,scope.row)">详情</span>
- <span v-else>-</span>
- </div>
- </template>
- </el-table-column>
- </el-table>
- <div class="shopro-pagination-container">
- <el-pagination @size-change="pageSizeChange" @current-change="pageCurrentChange" :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>
|