|
|
|
@ -52,7 +52,6 @@
|
|
|
|
|
>
|
|
|
|
|
</div>
|
|
|
|
|
<el-table v-loading="loading" :data="postList">
|
|
|
|
|
<!-- @selection-change="handleSelectionChange"
|
|
|
|
|
<el-table-column type="selection" width="55" align="center" /> -->
|
|
|
|
|
<el-table-column label="序号" align="center">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
@ -60,8 +59,6 @@
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="手册名称" align="center" prop="name" />
|
|
|
|
|
<!-- <el-table-column label="发布单位" align="center" prop="unit" /> -->
|
|
|
|
|
<!-- <el-table-column label="发布人" align="center" prop="author" /> -->
|
|
|
|
|
<el-table-column label="创建时间" align="center" prop="createTime" />
|
|
|
|
|
<el-table-column label="操作" align="center">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
@ -237,7 +234,8 @@
|
|
|
|
|
height="400"
|
|
|
|
|
:row-key="(row) => row.id"
|
|
|
|
|
v-loading="loading"
|
|
|
|
|
@selection-change="handleSelectAll"
|
|
|
|
|
@select="handleSelect"
|
|
|
|
|
@select-all="handleSelectAll"
|
|
|
|
|
>
|
|
|
|
|
<el-table-column
|
|
|
|
|
type="selection"
|
|
|
|
@ -257,7 +255,11 @@
|
|
|
|
|
prop="xzfl"
|
|
|
|
|
label="现状分类"
|
|
|
|
|
align="center"
|
|
|
|
|
></el-table-column>
|
|
|
|
|
>
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<dict-tag :options="dict.type.xzfl" :value="scope.row.xzfl"/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="xmfrdwxz"
|
|
|
|
|
label="项目法人单位"
|
|
|
|
@ -312,10 +314,15 @@
|
|
|
|
|
v-for="(project, index) in selectedProjects"
|
|
|
|
|
:key="index"
|
|
|
|
|
class="selected-item"
|
|
|
|
|
@click="removeSelectedProject(project)"
|
|
|
|
|
>
|
|
|
|
|
<div class="dot-indicator"></div>
|
|
|
|
|
<span class="project-name">{{ project.name }}</span>
|
|
|
|
|
<el-button
|
|
|
|
|
type="text"
|
|
|
|
|
icon="el-icon-close"
|
|
|
|
|
class="remove-btn"
|
|
|
|
|
@click="removeSelectedProject(project)"
|
|
|
|
|
></el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
@ -395,6 +402,8 @@ export default {
|
|
|
|
|
Pagination: () => import("@/components/Pagination"),
|
|
|
|
|
FileUpload,
|
|
|
|
|
},
|
|
|
|
|
// 声明需要使用的字典
|
|
|
|
|
dicts: ['xzfl'],
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
queryParams: {
|
|
|
|
@ -443,7 +452,6 @@ export default {
|
|
|
|
|
loadingPdf: false,
|
|
|
|
|
pdfScale: 0.9, // 控制PDF缩放比例
|
|
|
|
|
editingHandbook: null, // 当前正在编辑的手册对象
|
|
|
|
|
isRestoringSelection: false, // 新增:标记是否正在恢复选择状态
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
@ -486,10 +494,6 @@ export default {
|
|
|
|
|
};
|
|
|
|
|
this.handleQuery();
|
|
|
|
|
},
|
|
|
|
|
// 表格选择变化
|
|
|
|
|
handleSelectionChange(selection) {
|
|
|
|
|
this.selectedRows = selection;
|
|
|
|
|
},
|
|
|
|
|
// 预览文档
|
|
|
|
|
handlePreview(row) {
|
|
|
|
|
this.previewMode = true;
|
|
|
|
@ -497,11 +501,8 @@ export default {
|
|
|
|
|
this.currentPage = 1;
|
|
|
|
|
this.pageCount = 0;
|
|
|
|
|
this.loadingPdf = true;
|
|
|
|
|
|
|
|
|
|
// 使用exportHandbook API获取PDF流
|
|
|
|
|
this.loadPdfFromApi(row.id);
|
|
|
|
|
},
|
|
|
|
|
// 从API获取PDF流并预览
|
|
|
|
|
async loadPdfFromApi(id) {
|
|
|
|
|
try {
|
|
|
|
|
const res = await exportHandbook([id]);
|
|
|
|
@ -518,22 +519,18 @@ export default {
|
|
|
|
|
pageLoaded() {
|
|
|
|
|
this.loadingPdf = false;
|
|
|
|
|
},
|
|
|
|
|
// PDF文档完全加载完成
|
|
|
|
|
pdfLoaded() {
|
|
|
|
|
this.loadingPdf = false;
|
|
|
|
|
},
|
|
|
|
|
// PDF加载错误
|
|
|
|
|
pdfError(error) {
|
|
|
|
|
this.$message.error("PDF渲染失败: " + (error.message || "未知错误"));
|
|
|
|
|
this.loadingPdf = false;
|
|
|
|
|
},
|
|
|
|
|
// 上一页
|
|
|
|
|
prevPage() {
|
|
|
|
|
if (this.currentPage > 1) {
|
|
|
|
|
this.currentPage--;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// 下一页
|
|
|
|
|
nextPage() {
|
|
|
|
|
if (this.currentPage < this.pageCount) {
|
|
|
|
|
this.currentPage++;
|
|
|
|
@ -541,14 +538,9 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
// 项目手册导出
|
|
|
|
|
async handleExport(id) {
|
|
|
|
|
// if (!this.selectedRows || this.selectedRows.length === 0) {
|
|
|
|
|
// this.$message.warning("请先选择要导出的手册");
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
try {
|
|
|
|
|
this.exportLoading = true;
|
|
|
|
|
// const idList = this.selectedRows.map((item) => item.id);
|
|
|
|
|
// 修改请求为直接获取二进制数据
|
|
|
|
|
// const res = await exportHandbook(idList);
|
|
|
|
|
const res = await exportHandbook([id]);
|
|
|
|
|
this.$download.saveAs(res, "项目手册.pdf");
|
|
|
|
@ -570,19 +562,11 @@ export default {
|
|
|
|
|
this.getProjectList();
|
|
|
|
|
},
|
|
|
|
|
handleAddDialogClose(done) {
|
|
|
|
|
// this.$confirm("确认关闭?未保存的数据将会丢失", "提示", {
|
|
|
|
|
// confirmButtonText: "确定",
|
|
|
|
|
// cancelButtonText: "取消",
|
|
|
|
|
// type: "warning",
|
|
|
|
|
// })
|
|
|
|
|
// .then(() => {
|
|
|
|
|
this.resetAddForm();
|
|
|
|
|
this.editingHandbook = null;
|
|
|
|
|
this.selectedProjectIds = [];
|
|
|
|
|
this.selectedProjects = [];
|
|
|
|
|
done();
|
|
|
|
|
// })
|
|
|
|
|
// .catch(() => {});
|
|
|
|
|
},
|
|
|
|
|
resetAddForm() {
|
|
|
|
|
this.coverForm = {
|
|
|
|
@ -596,7 +580,6 @@ export default {
|
|
|
|
|
subtitle: "",
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
// 下一步
|
|
|
|
|
nextStep() {
|
|
|
|
|
if (this.activeStep === 1) {
|
|
|
|
|
if (!this.coverForm.title) {
|
|
|
|
@ -616,7 +599,6 @@ export default {
|
|
|
|
|
size: this.projectParams.pageSize,
|
|
|
|
|
name: this.projectSearch || undefined,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
getBasicInformationPage(params)
|
|
|
|
|
.then((response) => {
|
|
|
|
|
this.projectList = response.data.records;
|
|
|
|
@ -633,13 +615,10 @@ export default {
|
|
|
|
|
this.$message.error("获取项目列表失败");
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
// 搜索项目
|
|
|
|
|
searchProjects() {
|
|
|
|
|
// 保存当前选中项目ID,然后重置页码
|
|
|
|
|
this.projectParams.pageNum = 1;
|
|
|
|
|
this.getProjectList();
|
|
|
|
|
},
|
|
|
|
|
// 重置项目搜索
|
|
|
|
|
resetProjectSearch() {
|
|
|
|
|
this.projectSearch = "";
|
|
|
|
|
this.projectParams.pageNum = 1;
|
|
|
|
@ -647,8 +626,20 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
handleRowClick(row) {
|
|
|
|
|
// 切换行选择状态
|
|
|
|
|
this.$refs.projectTable.toggleRowSelection(row);
|
|
|
|
|
const selectedRows = this.$refs.projectTable.selection;
|
|
|
|
|
const isSelected = selectedRows.some(item => item.id === row.id);
|
|
|
|
|
if (isSelected) {
|
|
|
|
|
// 如果是选中状态,添加到已选项目中
|
|
|
|
|
if (!this.selectedProjectIds.includes(row.id)) {
|
|
|
|
|
this.selectedProjectIds.push(row.id);
|
|
|
|
|
this.selectedProjects.push(row);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
// 如果是取消选中,从已选项目中移除
|
|
|
|
|
this.selectedProjectIds = this.selectedProjectIds.filter(id => id !== row.id);
|
|
|
|
|
this.selectedProjects = this.selectedProjects.filter(item => item.id !== row.id);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
removeSelectedProject(project) {
|
|
|
|
@ -682,18 +673,11 @@ export default {
|
|
|
|
|
this.$refs.projectTable.clearSelection();
|
|
|
|
|
if (!this.selectedProjectIds.length) return;
|
|
|
|
|
|
|
|
|
|
// 设置标记,表示正在恢复选择状态
|
|
|
|
|
this.isRestoringSelection = true;
|
|
|
|
|
this.projectList.forEach((row) => {
|
|
|
|
|
if (this.selectedProjectIds.includes(row.id)) {
|
|
|
|
|
this.$refs.projectTable.toggleRowSelection(row, true);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 恢复完成后,重置标记
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.isRestoringSelection = false;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 提交生成手册
|
|
|
|
@ -736,25 +720,54 @@ export default {
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// 处理单个项目选择事件
|
|
|
|
|
handleSelect(selection, row) {
|
|
|
|
|
|
|
|
|
|
// 检查是选中还是取消选中
|
|
|
|
|
const isSelected = selection.some(item => item.id === row.id);
|
|
|
|
|
|
|
|
|
|
if (isSelected) {
|
|
|
|
|
// 如果是选中,添加到已选列表中
|
|
|
|
|
if (!this.selectedProjectIds.includes(row.id)) {
|
|
|
|
|
this.selectedProjectIds.push(row.id);
|
|
|
|
|
this.selectedProjects.push(row);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
// 如果是取消选中,从已选列表中移除
|
|
|
|
|
this.selectedProjectIds = this.selectedProjectIds.filter(id => id !== row.id);
|
|
|
|
|
this.selectedProjects = this.selectedProjects.filter(item => item.id !== row.id);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 处理全选/取消全选事件
|
|
|
|
|
handleSelectAll(selection) {
|
|
|
|
|
// 如果正在恢复选择状态,不处理选择变化
|
|
|
|
|
if (this.isRestoringSelection) return;
|
|
|
|
|
|
|
|
|
|
// 获取当前页面的所有项目ID
|
|
|
|
|
const currentPageIds = this.projectList.map((item) => item.id);
|
|
|
|
|
|
|
|
|
|
// 保留不在当前页的已选项目
|
|
|
|
|
const projectsNotInCurrentPage = this.selectedProjects.filter(
|
|
|
|
|
(project) => !currentPageIds.includes(project.id)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// 合并选择
|
|
|
|
|
this.selectedProjects = [...projectsNotInCurrentPage, ...selection];
|
|
|
|
|
|
|
|
|
|
// 更新ID列表
|
|
|
|
|
this.selectedProjectIds = this.selectedProjects.map(
|
|
|
|
|
(project) => project.id
|
|
|
|
|
);
|
|
|
|
|
// 获取当前页面所有项目ID
|
|
|
|
|
const currentPageIds = this.projectList.map(item => item.id);
|
|
|
|
|
|
|
|
|
|
// 检查是全选还是取消全选
|
|
|
|
|
if (selection.length === 0) {
|
|
|
|
|
// 取消全选 - 从已选列表中移除当前页所有项目
|
|
|
|
|
this.selectedProjectIds = this.selectedProjectIds.filter(
|
|
|
|
|
id => !currentPageIds.includes(id)
|
|
|
|
|
);
|
|
|
|
|
this.selectedProjects = this.selectedProjects.filter(
|
|
|
|
|
project => !currentPageIds.includes(project.id)
|
|
|
|
|
);
|
|
|
|
|
} else {
|
|
|
|
|
// 全选 - 将当前页所有项目添加到已选列表
|
|
|
|
|
// 先移除当前页已有的选择,避免重复
|
|
|
|
|
const projectIdsNotInCurrentPage = this.selectedProjectIds.filter(
|
|
|
|
|
id => !currentPageIds.includes(id)
|
|
|
|
|
);
|
|
|
|
|
const projectsNotInCurrentPage = this.selectedProjects.filter(
|
|
|
|
|
project => !currentPageIds.includes(project.id)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// 合并不在当前页的选择和当前页所有项目
|
|
|
|
|
this.selectedProjectIds = [...projectIdsNotInCurrentPage, ...currentPageIds];
|
|
|
|
|
this.selectedProjects = [...projectsNotInCurrentPage, ...this.projectList];
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// 编辑按钮操作
|
|
|
|
|
handleEdit(row) {
|
|
|
|
@ -831,60 +844,15 @@ export default {
|
|
|
|
|
border: 1px solid #eee;
|
|
|
|
|
margin: 0.5rem;
|
|
|
|
|
.el-input {
|
|
|
|
|
flex: 1;
|
|
|
|
|
max-width: 100%;
|
|
|
|
|
}
|
|
|
|
|
flex: 1;
|
|
|
|
|
max-width: 100%;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.headerbox {
|
|
|
|
|
margin-bottom: 15px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 搜索表单样式 */
|
|
|
|
|
.search-form {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
gap: 15px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.form-item {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.label {
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
color: #606266;
|
|
|
|
|
margin-right: 10px;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.search-input,
|
|
|
|
|
.search-date {
|
|
|
|
|
width: 30%;
|
|
|
|
|
transition: all 0.3s;
|
|
|
|
|
margin-right: 30px;
|
|
|
|
|
::v-deep .el-input {
|
|
|
|
|
flex: 1!important;
|
|
|
|
|
max-width: 100%!important;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-input__inner {
|
|
|
|
|
width: 100%!important;
|
|
|
|
|
}
|
|
|
|
|
&:hover {
|
|
|
|
|
box-shadow: 0 0 0 1px #409eff;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.btn-group {
|
|
|
|
|
display: flex;
|
|
|
|
|
gap: 10px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 表格样式 */
|
|
|
|
|
.tablebtntwo {
|
|
|
|
|
width: 100%;
|
|
|
|
@ -938,7 +906,6 @@ export default {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: center;
|
|
|
|
|
// margin-bottom: 15px;
|
|
|
|
|
padding: 15px 20px;
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
border-radius: 8px 8px 0 0;
|
|
|
|
@ -1022,31 +989,6 @@ export default {
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
background-color: white;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
::v-deep .vue-pdf-embed {
|
|
|
|
|
width: 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.el-loading-parent--relative {
|
|
|
|
|
.el-loading-mask {
|
|
|
|
|
background-color: rgba(255, 255, 255, 0.9);
|
|
|
|
|
|
|
|
|
|
.el-loading-spinner {
|
|
|
|
|
.circular {
|
|
|
|
|
width: 50px;
|
|
|
|
|
height: 50px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.el-loading-text {
|
|
|
|
|
color: #409eff;
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@keyframes fadeIn {
|
|
|
|
@ -1126,57 +1068,6 @@ export default {
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 上传区域样式 */
|
|
|
|
|
.upload-area {
|
|
|
|
|
flex: 1;
|
|
|
|
|
border: 1px dashed #d9d9d9;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
|
border-color: #409eff;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.upload-box {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 180px;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
background-color: #fafafa;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.upload-icon {
|
|
|
|
|
font-size: 28px;
|
|
|
|
|
color: #8c939d;
|
|
|
|
|
margin-bottom: 8px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.upload-text {
|
|
|
|
|
color: #606266;
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.upload-tip {
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: #909399;
|
|
|
|
|
margin-top: 8px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.preview-image {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 180px;
|
|
|
|
|
object-fit: cover;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
border: 1px solid #dcdfe6;
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 表单布局样式 */
|
|
|
|
|
.cover-form {
|
|
|
|
|
width: 100%;
|
|
|
|
@ -1232,6 +1123,24 @@ export default {
|
|
|
|
|
margin-right: 8px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.search-input,
|
|
|
|
|
.search-date {
|
|
|
|
|
width: 30%;
|
|
|
|
|
transition: all 0.3s;
|
|
|
|
|
margin-right: 30px;
|
|
|
|
|
::v-deep .el-input {
|
|
|
|
|
flex: 1!important;
|
|
|
|
|
max-width: 100%!important;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-input__inner {
|
|
|
|
|
width: 100%!important;
|
|
|
|
|
}
|
|
|
|
|
&:hover {
|
|
|
|
|
box-shadow: 0 0 0 1px #409eff;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.search-btn {
|
|
|
|
|
margin-right: 8px;
|
|
|
|
|
}
|
|
|
|
@ -1291,6 +1200,16 @@ export default {
|
|
|
|
|
padding: 8px 15px;
|
|
|
|
|
background-color: #f8f8f8;
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
position: relative;
|
|
|
|
|
transition: all 0.2s;
|
|
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
|
background-color: #f0f0f0;
|
|
|
|
|
|
|
|
|
|
.remove-btn {
|
|
|
|
|
opacity: 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.dot-indicator {
|
|
|
|
@ -1306,13 +1225,17 @@ export default {
|
|
|
|
|
color: #333;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.remove-icon {
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
color: #c0c4cc;
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
|
|
|
|
.remove-btn {
|
|
|
|
|
opacity: 0.5;
|
|
|
|
|
transition: all 0.2s;
|
|
|
|
|
color: #909399;
|
|
|
|
|
padding: 2px;
|
|
|
|
|
margin-left: 8px;
|
|
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
|
color: #f56c6c;
|
|
|
|
|
color: #F56C6C;
|
|
|
|
|
opacity: 1;
|
|
|
|
|
transform: scale(1.1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|