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.
103 lines
3.3 KiB
103 lines
3.3 KiB
<template>
|
|
<div v-if="lists && lists.length">
|
|
<el-table :data="lists" class="bg-title" style="width: 100%">
|
|
<el-table-column prop="name" label="业务名称1"> </el-table-column>
|
|
<el-table-column prop="appId" label="APPID" width="300"> </el-table-column>
|
|
<el-table-column prop="startUsing" label="状态" key="slot" sortable>
|
|
<template #default="scope">
|
|
<div class="flex flex-row items-center" @click="change(scope.row)">
|
|
<div :class="scope.row.startUsing ? 'point bg-green-500' : 'point bg-red-500'"></div>
|
|
<span style="margin-left: 10px">{{ scope.row.startUsing ? '启动' : '禁用' }}</span>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="公开" sortable key="slot" width="180">
|
|
<template #default="scope">
|
|
<div class="flex flex-row items-center" @click="change(scope.row)">
|
|
<div :class="scope.row.pub ? 'point bg-green-500' : 'point bg-red-500'"></div>
|
|
<span style="margin-left: 10px">{{ scope.row.pub ? '公开' : '非公开' }}</span>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="createTime" :formatter="changeDate" label="创建日期" sortable></el-table-column>
|
|
<el-table-column label="操作" key="slot">
|
|
<template #default="scope">
|
|
<el-popconfirm title="确定删除这条业务吗?" confirm-button-text="确定" cancel-button-text="再想想" @confirm="deleteBusiness">
|
|
<template #reference>
|
|
<el-button type="text" size="small">删除</el-button>
|
|
</template>
|
|
</el-popconfirm>
|
|
<el-button type="text" size="small" disabled>配置</el-button>..
|
|
<el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
<template slot="empty">
|
|
<p>没有记录哦~</p>
|
|
</template>
|
|
</el-table>
|
|
</div>
|
|
<el-empty v-else description="暂无业务信息"></el-empty>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { useRouter } from 'vue-router';
|
|
import { defineProps } from 'vue';
|
|
import { useStore } from 'vuex';
|
|
import time from 'utils/time';
|
|
|
|
const router = useRouter();
|
|
const store = useStore();
|
|
defineProps({
|
|
lists: { default: () => [], type: Array },
|
|
currentPage: { default: 1, type: Number },
|
|
pageSize: { default: 10, type: Number },
|
|
total: { default: 0, type: Number },
|
|
showConfig: { default: false, type: Boolean },
|
|
});
|
|
|
|
function change(row) {
|
|
console.log('row: ', row);
|
|
}
|
|
|
|
function handleClick(row) {
|
|
router.push({ name: 'business-detail', query: { id: row.id } });
|
|
store.commit('plugin/setBusinessInfo', row);
|
|
}
|
|
|
|
function changeDate(row) {
|
|
const value = row.createTime;
|
|
return time.dateFormat(value);
|
|
}
|
|
|
|
/**
|
|
* 删除业务
|
|
* @param {String} businessId
|
|
*/
|
|
function deleteBusiness() {
|
|
try {
|
|
// 这里写接口 记得加 async await
|
|
} catch (error) {
|
|
console.error('error: ', error);
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
.bg-title >>> thead tr th {
|
|
color: #333;
|
|
background: #fafafa;
|
|
border-top: 1px solid #e8e8e8;
|
|
}
|
|
.bg-title >>> thead tr th:first-child {
|
|
border-left: 1px solid #e8e8e8;
|
|
}
|
|
.bg-title >>> thead tr th:last-child {
|
|
border-right: 1px solid #e8e8e8;
|
|
}
|
|
|
|
.point {
|
|
width: 6px;
|
|
height: 6px;
|
|
border-radius: 50%;
|
|
}
|
|
</style>
|
|
|