You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
450 lines
13 KiB
450 lines
13 KiB
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
|
|
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
|
|
<style>
|
|
#feedbackIndex {
|
|
color: #444;
|
|
background: #fff;
|
|
}
|
|
|
|
.custom-header {
|
|
padding: 0 20px;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.color-7536D0 {
|
|
color: #7536D0;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.common-btn {
|
|
height: 32px;
|
|
cursor: pointer;
|
|
border-radius: 4px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.el-input__inner,
|
|
.el-input__icon {
|
|
line-height: 32px;
|
|
height: 32px;
|
|
}
|
|
|
|
.btn-box {
|
|
display: flex;
|
|
align-items: center;
|
|
margin-bottom: 20px;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.refresh-btn {
|
|
width: 32px;
|
|
border: 1px solid #E6E6E6;
|
|
font-size: 14px;
|
|
margin-right: 20px;
|
|
}
|
|
|
|
.create-goods,
|
|
.add-params,
|
|
.add-level1-sku {
|
|
width: 98px;
|
|
background: #7536D0;
|
|
color: #fff;
|
|
}
|
|
|
|
.create-goods {
|
|
margin-right: 40px;
|
|
}
|
|
|
|
.create-goods span,
|
|
.add-params span,
|
|
.add-level1-sku span {
|
|
margin-left: 8px;
|
|
}
|
|
|
|
.platform-name span {
|
|
display: flex;
|
|
}
|
|
|
|
.goods-img {
|
|
width: 34px;
|
|
height: 34px;
|
|
margin-right: 10px;
|
|
border: 1px solid #e6e6e6;
|
|
}
|
|
|
|
.display-flex {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
|
|
.label-auto {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.one-ellipsis {
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.sort-order {
|
|
margin-left: 6px;
|
|
color: #C0C4CC;
|
|
flex-direction: row-reverse;
|
|
}
|
|
|
|
.recycle-btn {
|
|
width: 88px;
|
|
color: #444;
|
|
border: #444 1px solid;
|
|
}
|
|
|
|
.recycle-btn i {
|
|
margin-right: 6px;
|
|
font-size: 14px;
|
|
}
|
|
|
|
.status-box {
|
|
width: 100%;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.status-btn {
|
|
width: 56px;
|
|
height: 26px;
|
|
border: 1px solid #7438D5;
|
|
color: #7438D5;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.status-btn-2 {
|
|
color: #FF5959;
|
|
border-color: #FF5959;
|
|
}
|
|
|
|
.status-btn-3 {
|
|
color: #999;
|
|
border-color: #999;
|
|
}
|
|
|
|
.icon-top {
|
|
margin-left: -5px;
|
|
}
|
|
|
|
.edit-text,
|
|
.del-text,
|
|
.enable-text,
|
|
.disable-text {
|
|
cursor: pointer;
|
|
color: #444;
|
|
margin-right: 14px;
|
|
}
|
|
|
|
.edit-text {
|
|
color: #7438D5;
|
|
}
|
|
|
|
.enable-text {
|
|
color: #01CFA1;
|
|
}
|
|
|
|
.del-text {
|
|
color: #FF5959;
|
|
}
|
|
|
|
.el-popover {
|
|
left: 46px;
|
|
top: 10px;
|
|
padding: 16px;
|
|
}
|
|
|
|
.choose-container {
|
|
margin-bottom: 10px;
|
|
color: #666;
|
|
}
|
|
|
|
.custom-choose,
|
|
.custom-choose-type,
|
|
.custom-choose-sub {
|
|
height: 50px;
|
|
border-radius: 4px;
|
|
justify-content: space-between;
|
|
padding: 0 20px;
|
|
background: #fff;
|
|
}
|
|
|
|
.custom-choose-type,
|
|
.custom-choose-sub {
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.custom-choose-sub {
|
|
height: 70px;
|
|
padding: 0 10px 20px 20px;
|
|
}
|
|
|
|
.choose-status-tip {
|
|
margin-right: 12px;
|
|
}
|
|
|
|
.custom-choose-type-tip {
|
|
margin-right: 16px;
|
|
}
|
|
|
|
.choose-btn {
|
|
width: 80px;
|
|
border: 1px solid #E6E6E6;
|
|
margin-right: 10px;
|
|
height: 30px;
|
|
}
|
|
|
|
.choose-btn-active {
|
|
background-color: #7536D0;
|
|
border: none;
|
|
color: #fff;
|
|
}
|
|
|
|
.custom-table {
|
|
/* padding: 20px 20px 30px; */
|
|
padding: 0px 20px 30px;
|
|
background: #fff;
|
|
}
|
|
|
|
label {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.page-container {
|
|
justify-content: flex-end;
|
|
margin-top: 30px;
|
|
}
|
|
|
|
.goods-title {
|
|
margin-bottom: 4px;
|
|
width: 154px;
|
|
line-height: 14px;
|
|
}
|
|
|
|
.activity-type {
|
|
justify-content: space-around;
|
|
}
|
|
|
|
.activity-type-btn {
|
|
width: 40px;
|
|
height: 20px;
|
|
padding-top: 2px;
|
|
border-radius: 4px;
|
|
color: #fff;
|
|
justify-content: center;
|
|
}
|
|
|
|
.groupon-btn {
|
|
background: #A17BDF;
|
|
}
|
|
|
|
.seckill-btn {
|
|
background: #FE9387;
|
|
}
|
|
|
|
.score-btn {
|
|
background: #FBB74A;
|
|
}
|
|
|
|
.el-table .bg-color {
|
|
background: #f9f9f9;
|
|
}
|
|
|
|
.cell-left .cell {
|
|
justify-content: flex-start !important;
|
|
}
|
|
|
|
.el-table_1_column_11.is-leaf,
|
|
.el-table_1_column_11 {
|
|
border-color: #EBEEF5 !important;
|
|
}
|
|
|
|
.avatar-img {
|
|
width: 26px;
|
|
height: 26px;
|
|
border: 1px solid #E5E5E5;
|
|
}
|
|
|
|
.el-popover {
|
|
padding-bottom: 6px;
|
|
color: #444;
|
|
}
|
|
|
|
.popover-container>div {
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.popover-tip {
|
|
width: 56px;
|
|
color: #666;
|
|
text-align: justify;
|
|
text-align-last: justify;
|
|
}
|
|
|
|
.custom-table {
|
|
padding-top: 14px;
|
|
}
|
|
|
|
.user-avatar {
|
|
margin-right: 20px;
|
|
}
|
|
.no-handle{
|
|
color: #FF5959;
|
|
}
|
|
.yes-handle{
|
|
color: #18d3a9;
|
|
}
|
|
|
|
[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/Sortable.min.js"></script>
|
|
<script src="__CDN__/assets/addons/shopro/libs/vuedraggable.js"></script>
|
|
<script src="__CDN__/assets/addons/shopro/libs/moment.js"></script>
|
|
<div id="feedbackIndex" v-cloak>
|
|
<div class="custom-header display-flex">
|
|
<div class="choose-status" style="font-size: 14px;">
|
|
反馈列表
|
|
</div>
|
|
<div class="custom-search">
|
|
<el-input placeholder="请输入搜索内容" suffix-icon="el-icon-search" v-model="searchKey">
|
|
</el-input>
|
|
</div>
|
|
</div>
|
|
<div class="display-flex-b" style="padding: 0 20px;">
|
|
<div class="custom-refresh display-flex-c" @click="getData">
|
|
<i class="el-icon-refresh"></i>
|
|
</div>
|
|
{if condition = "$auth->check('shopro/feedback/recyclebin')"}
|
|
<div class="recycle-btn display-flex-c" @click="operation('recyclebin')">
|
|
<i class="fa fa-recycle"></i>
|
|
回收站
|
|
</div>
|
|
{/if}
|
|
</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" min-width="60">
|
|
</el-table-column>
|
|
<el-table-column label="反馈用户" min-width="200">
|
|
<template slot-scope="scope">
|
|
<div class="display-flex" v-if="scope.row.user.nickname" @click="goUserDetail(scope.row.user.id)">
|
|
<div class="avatar-img user-avatar">
|
|
<el-image v-if="scope.row.user.avatar"
|
|
:src="Fast.api.cdnurl(scope.row.user.avatar)"
|
|
:preview-src-list="scope.row.user.avatar_arr">
|
|
</el-image>
|
|
</div>
|
|
<div class="ellipsis-item theme-color cursor-pointer">
|
|
{{scope.row.user.nickname}}
|
|
</div>
|
|
</div>
|
|
<div v-else>-</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="反馈类型" min-width="160">
|
|
<template slot-scope="scope">
|
|
<div class="ellipsis-item">{{scope.row.type_text}}</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="反馈内容" min-width="110">
|
|
<template slot-scope="scope">
|
|
<div><span class="ellipsis-item" v-if="scope.row.content">{{scope.row.content}}</span><span
|
|
v-else>-</span></div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="图片" min-width="60">
|
|
<template slot-scope="scope">
|
|
<div v-if="scope.row.images">
|
|
<el-image class="avatar-img"
|
|
:src="Fast.api.cdnurl(scope.row.images.split(',')[0])"
|
|
:preview-src-list="scope.row.images_arr">
|
|
</el-image>
|
|
</div>
|
|
<div v-else>-</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="联系电话" width="110">
|
|
<template slot-scope="scope">
|
|
<div class="display-flex-c">
|
|
<span v-if="scope.row.phone">{{scope.row.phone}}</span>
|
|
<span v-else>-</span>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="是否处理" min-width="120">
|
|
<template slot-scope="scope">
|
|
<!-- <div class="display-flex-c">
|
|
<span :class="scope.row.status==0?'no-handle':'yes-handle'">{{scope.row.status_text}}</span>
|
|
</div> -->
|
|
<div class="display-flex">
|
|
<span v-if="scope.row.status==1" 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-if="scope.row.status==0" 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="处理备注" prop="remark" min-width="120">
|
|
<template slot-scope="scope">
|
|
<div class="display-flex-c">
|
|
<span v-if="scope.row.remark">{{scope.row.remark}}</span>
|
|
<span v-else>-</span>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="创建时间" min-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="更新时间" min-width="160">
|
|
<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 fixed="right" label="操作" min-width="134">
|
|
<template slot-scope="scope">
|
|
<div>
|
|
{if condition = "$auth->check('shopro/feedback/detail')"}
|
|
<span class="edit-text" @click="operation('edit',scope.row.id)">查看详情</span>
|
|
{/if}
|
|
{if condition = "$auth->check('shopro/feedback/del')"}
|
|
<span class="del-text" @click="operation('del',scope.row.id)">删除</span>
|
|
{/if}
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
<div class="page-container display-flex">
|
|
<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> |