|
|
@@ -0,0 +1,208 @@
|
|
|
+<template>
|
|
|
+ <scTable ref="table" :apiObj="list.apiObj" :params="searchKey" @selectionChange="selectionChange" row-key="id">
|
|
|
+ <el-table-column type="selection" width="50" fixed="left"></el-table-column>
|
|
|
+ <el-table-column label="达人" width="340" prop="name" fixed="left">
|
|
|
+ <template #default="scope">
|
|
|
+ <div class="goods-img">
|
|
|
+ <div class="img">
|
|
|
+ <el-image
|
|
|
+ style="width: 54px; height: 54px"
|
|
|
+ :src="scope.row.avatar_url"
|
|
|
+ :zoom-rate="1.2"
|
|
|
+ :max-scale="7"
|
|
|
+ :min-scale="0.2"
|
|
|
+ :preview-src-list="[scope.row.avatar_url]"
|
|
|
+ preview-teleported
|
|
|
+ z-index="999"
|
|
|
+ fit="cover"></el-image>
|
|
|
+ </div>
|
|
|
+ <div class="name">
|
|
|
+ <span>{{ scope.row.show_nickname }}</span>
|
|
|
+ <span class="dec">抖音号:{{ scope.row.unique_id }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="粉丝数" width="200" prop="id">
|
|
|
+ <template #default="scope">
|
|
|
+ <div class="price">{{ scope.row.fans_count }}</div>
|
|
|
+ <div class="goods-price">
|
|
|
+ <span v-for="value in scope.row.fans_tag_list">{{ value }}</span></div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="本地粉丝数" width="120" prop="id">
|
|
|
+ <template #default="scope">
|
|
|
+ <div class="price">{{ scope.row.local_fans_count }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="视频带货力" prop="category_id" width="120">
|
|
|
+ <template #default="scope">
|
|
|
+ <span v-if="scope.row.talent_item_level_display">{{ scope.row.talent_item_level_display }}</span>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="直播带货力" prop="talent_live_level_display" width="120">
|
|
|
+ <template #default="scope">
|
|
|
+ <span v-if="scope.row.talent_live_level_display">{{ scope.row.talent_live_level_display }}</span>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="内容力" prop="category_id" width="120">
|
|
|
+ <template #default="scope">
|
|
|
+ <span v-if="scope.row.content_level_display">{{ scope.row.content_level_display }}</span>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="信用分" prop="category_id" width="120">
|
|
|
+ <template #default="scope">
|
|
|
+ <span v-if="scope.row.credit_score_display">{{ scope.row.credit_score_display }}</span>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="视频榜" prop="category_id" width="120">
|
|
|
+ <template #default="scope">
|
|
|
+ <span v-if="scope.row.rank_display">{{ scope.row.city_name }} 第{{ scope.row.rank_display }}名</span>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="状态" prop="enable" width="120" align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ <div class="status-success" v-if="scope.row.status==1"><sc-status-indicator type="success"></sc-status-indicator> 正常</div>
|
|
|
+ <div class="status-danger" v-if="scope.row.status==2"><sc-status-indicator type="danger"></sc-status-indicator> 禁用</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
|
|
|
+ <el-table-column label="操作" width="180" align="left" fixed="right">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-button-group>
|
|
|
+ <el-button size="small" text @click="table_update(scope.row)" v-if="scope.row.status == 1">更新</el-button>
|
|
|
+ <el-button type="danger" text size="small" @click="table_del(scope.row)">删除</el-button>
|
|
|
+ </el-button-group>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </scTable>
|
|
|
+ <formMain ref="formMain" @success="handleSuccess"></formMain>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import formMain from './form';
|
|
|
+export default {
|
|
|
+ components: {
|
|
|
+ formMain
|
|
|
+ },
|
|
|
+ data(){
|
|
|
+ return {
|
|
|
+ list: {
|
|
|
+ apiObj: this.$API.merStar.list
|
|
|
+ },
|
|
|
+ dataSelect:[],
|
|
|
+ dataSelectFull:[],
|
|
|
+ searchKey:{}
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ methods: {
|
|
|
+ table_auth(data){
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.comboMain.open("edit").setData(data)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ table_update(data){
|
|
|
+ this.$confirm(`更新后可能数据没有变化,确定更新该达人的基础数据吗?`, '提示', {
|
|
|
+ type: 'warning'
|
|
|
+ }).then(async ()=>{
|
|
|
+ var resp = await this.$API.merStar.update.post({"id":data.id});
|
|
|
+ if (resp.code == 0) {
|
|
|
+ return this.$message.error(resp.msg);
|
|
|
+ }
|
|
|
+ this.$message.success(resp.msg);
|
|
|
+ this.$refs.table.refresh()
|
|
|
+ }).catch(()=>{})
|
|
|
+ },
|
|
|
+ table_life(data){
|
|
|
+ this.$confirm(`来客下架成功后,在小程序中将不展示该商品,同时也将无法二次上架`, '提示', {
|
|
|
+ type: 'warning'
|
|
|
+ }).then(async ()=>{
|
|
|
+ var resp = await this.$API.merGoods.off.post({"id":data.id});
|
|
|
+ if (resp.code == 0) {
|
|
|
+ return this.$message.error(resp.msg);
|
|
|
+ }
|
|
|
+ this.$message.success(resp.msg);
|
|
|
+ this.$emit("success");
|
|
|
+ }).catch(()=>{})
|
|
|
+ },
|
|
|
+ table_view(data){
|
|
|
+ this.$router.push({path:"/merchant/goods/edit",query:{"product_id":data.product_id,"id":data.id,"spm":(new Date()).getTime()}})
|
|
|
+ },
|
|
|
+ table_del(data){
|
|
|
+ this.$confirm(`删除店铺后,所有有关该店铺的门店、订单等信息都将删除,不可恢复,确定要执行删除吗`, '提示', {
|
|
|
+ type: 'warning'
|
|
|
+ }).then(async ()=>{
|
|
|
+ var resp = await this.$API.shop.del.post({"id":data.id});
|
|
|
+ if (resp.code == 0) {
|
|
|
+ return this.$message.error(resp.msg);
|
|
|
+ }
|
|
|
+ this.$message.success(resp.msg);
|
|
|
+ this.$emit("success");
|
|
|
+ }).catch(()=>{})
|
|
|
+ },
|
|
|
+ refresh(){
|
|
|
+ this.$refs.table.refresh()
|
|
|
+ },
|
|
|
+ upData(data){
|
|
|
+ this.$refs.table.upData(data)
|
|
|
+ },
|
|
|
+ handleSuccess(){
|
|
|
+ this.$refs.table.refresh()
|
|
|
+ },
|
|
|
+ sortChange(event){
|
|
|
+ if (event.order) {
|
|
|
+ var data = {
|
|
|
+ "field":event.prop,
|
|
|
+ "order":event.order
|
|
|
+ }
|
|
|
+ this.$refs.table.upData(data)
|
|
|
+ } else {
|
|
|
+ this.$refs.table.reload(this.searchKey)
|
|
|
+ }
|
|
|
+ return ;
|
|
|
+ },
|
|
|
+ selectionChange(event){
|
|
|
+ this.dataSelect = [];
|
|
|
+ var arr = [];
|
|
|
+ var arrCompany = [];
|
|
|
+ event.forEach(function(val,index){
|
|
|
+ arr[index] = val.id;
|
|
|
+ arrCompany[index] = val;
|
|
|
+ });
|
|
|
+ this.dataSelectFull = arrCompany;
|
|
|
+ this.dataSelect = arr;
|
|
|
+ this.$emit("success",this.dataSelect);
|
|
|
+ this.$emit("successFull",this.dataSelectFull);
|
|
|
+ },
|
|
|
+ table_passwd(row){
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.userPasswd.open("edit").setData(row)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style>
|
|
|
+.goods-img{display: flex;gap: 5px;}
|
|
|
+.goods-img .name span{display: block;}
|
|
|
+.goods-img .name span.dec{color: #999;font-size: 12px;}
|
|
|
+.goods-price,.price{display: flex;align-items: center;gap: 5px;font-size: 14px;}
|
|
|
+.goods-price .del{text-decoration: line-through;}
|
|
|
+.goods-price span{background-color: #fff !important;
|
|
|
+ border: 1px solid #d3d9e0 !important;
|
|
|
+ border-radius: 4px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ color: #6c737a !important;
|
|
|
+ display: inline-flex;
|
|
|
+ flex: none;
|
|
|
+ font-size: 12px;
|
|
|
+ line-height: 18px !important;
|
|
|
+ padding: 1px 6px !important;text-decoration: none;}
|
|
|
+</style>
|