|
|
@@ -5,12 +5,7 @@
|
|
|
<div class="search-card">
|
|
|
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
|
|
<el-form-item label="广告名称" prop="adName">
|
|
|
- <el-input
|
|
|
- v-model="queryParams.adName"
|
|
|
- placeholder="请输入广告名称"
|
|
|
- clearable
|
|
|
- @keyup.enter="handleQuery"
|
|
|
- />
|
|
|
+ <el-input v-model="queryParams.adName" placeholder="请输入广告名称" clearable @keyup.enter="handleQuery" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="起始时间" prop="dateRange">
|
|
|
<el-date-picker
|
|
|
@@ -39,51 +34,45 @@
|
|
|
<!-- 表格标题 -->
|
|
|
<div class="table-title">轮播广告信息列表</div>
|
|
|
|
|
|
- <!-- 表格 -->
|
|
|
- <el-table v-loading="loading" :data="carouselList" border>
|
|
|
- <el-table-column label="广告图片" align="center" width="120">
|
|
|
- <template #default="scope">
|
|
|
- <el-image
|
|
|
- :src="scope.row.imageUrl"
|
|
|
- :preview-src-list="[scope.row.imageUrl]"
|
|
|
- fit="cover"
|
|
|
- style="width: 80px; height: 60px; border-radius: 4px"
|
|
|
- lazy
|
|
|
- />
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="广告名称" align="center" prop="title" :show-overflow-tooltip="true" min-width="200" />
|
|
|
- <el-table-column label="时间" align="center" width="280">
|
|
|
- <template #default="scope">
|
|
|
- <div>开始时间:{{ scope.row.startTime }}</div>
|
|
|
- <div>到期时间:{{ scope.row.endTime }}</div>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="上线/下线" align="center" width="100">
|
|
|
- <template #default="scope">
|
|
|
- <el-tag :type="scope.row.status === 1 ? 'success' : 'danger'">
|
|
|
- {{ scope.row.status === 1 ? '上线' : '下线' }}
|
|
|
- </el-tag>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="排序" align="center" prop="sort" width="80" />
|
|
|
- <el-table-column label="链接" align="center" prop="link" :show-overflow-tooltip="true" min-width="200" />
|
|
|
- <el-table-column label="操作" align="center" width="150">
|
|
|
- <template #default="scope">
|
|
|
- <span class="action-link primary" @click="handleUpdate(scope.row)">编辑</span>
|
|
|
- <span class="action-link danger" @click="handleDelete(scope.row)">删除</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
+ <!-- 表格 -->
|
|
|
+ <el-table v-loading="loading" :data="carouselList" border>
|
|
|
+ <el-table-column label="广告图片" align="center" width="120">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-image
|
|
|
+ :src="scope.row.imageUrl"
|
|
|
+ :preview-src-list="[scope.row.imageUrl]"
|
|
|
+ fit="cover"
|
|
|
+ style="width: 80px; height: 60px; border-radius: 4px"
|
|
|
+ lazy
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="广告名称" align="center" prop="title" :show-overflow-tooltip="true" min-width="200" />
|
|
|
+ <el-table-column label="时间" align="center" width="280">
|
|
|
+ <template #default="scope">
|
|
|
+ <div>开始时间:{{ scope.row.startTime?.substring(0, 10) }}</div>
|
|
|
+ <div>到期时间:{{ scope.row.endTime?.substring(0, 10) }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="上线/下线" align="center" width="100">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-tag :type="scope.row.status === 1 ? 'success' : 'danger'">
|
|
|
+ {{ scope.row.status === 1 ? '上线' : '下线' }}
|
|
|
+ </el-tag>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="排序" align="center" prop="sort" width="80" />
|
|
|
+ <el-table-column label="链接" align="center" prop="link" :show-overflow-tooltip="true" min-width="200" />
|
|
|
+ <el-table-column label="操作" align="center" width="150">
|
|
|
+ <template #default="scope">
|
|
|
+ <span class="action-link primary" @click="handleUpdate(scope.row)">编辑</span>
|
|
|
+ <span class="action-link danger" @click="handleDelete(scope.row)">删除</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
|
|
|
<!-- 分页 -->
|
|
|
- <pagination
|
|
|
- v-show="total > 0"
|
|
|
- v-model:page="queryParams.pageNum"
|
|
|
- v-model:limit="queryParams.pageSize"
|
|
|
- :total="total"
|
|
|
- @pagination="getList"
|
|
|
- />
|
|
|
+ <pagination v-show="total > 0" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" :total="total" @pagination="getList" />
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
@@ -103,6 +92,7 @@
|
|
|
placeholder="选择开始时间"
|
|
|
value-format="YYYY-MM-DD"
|
|
|
style="width: 100%"
|
|
|
+ @change="form.endTime = ''"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="结束时间" prop="endTime">
|
|
|
@@ -112,6 +102,7 @@
|
|
|
placeholder="选择结束时间"
|
|
|
value-format="YYYY-MM-DD"
|
|
|
style="width: 100%"
|
|
|
+ :disabled-date="disabledEndDate"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="链接地址" prop="link">
|
|
|
@@ -181,6 +172,12 @@ const initFormData = {
|
|
|
|
|
|
const form = ref({ ...initFormData });
|
|
|
|
|
|
+const disabledEndDate = (date: Date) => {
|
|
|
+ if (!form.value.startTime) return false;
|
|
|
+ const start = new Date(form.value.startTime + 'T00:00:00');
|
|
|
+ return date.getTime() < start.getTime();
|
|
|
+};
|
|
|
+
|
|
|
const rules = reactive({
|
|
|
title: [{ required: true, message: '广告名称不能为空', trigger: 'blur' }],
|
|
|
startTime: [{ required: true, message: '开始时间不能为空', trigger: 'change' }],
|
|
|
@@ -312,8 +309,12 @@ onMounted(() => {
|
|
|
justify-content: space-between;
|
|
|
align-items: flex-start;
|
|
|
|
|
|
- .el-form { flex: 1; }
|
|
|
- .toolbar { flex-shrink: 0; }
|
|
|
+ .el-form {
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+ .toolbar {
|
|
|
+ flex-shrink: 0;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.table-card {
|
|
|
@@ -335,12 +336,16 @@ onMounted(() => {
|
|
|
|
|
|
&.primary {
|
|
|
color: #409eff;
|
|
|
- &:hover { color: #66b1ff; }
|
|
|
+ &:hover {
|
|
|
+ color: #66b1ff;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
&.danger {
|
|
|
color: #f56c6c;
|
|
|
- &:hover { color: #f78989; }
|
|
|
+ &:hover {
|
|
|
+ color: #f78989;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</style>
|