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.
house/fount/modules/discussfangwuxinxi/list.vue

526 lines
28 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<!-- 主容器 -->
<div class="main-content">
<!-- 列表页显示区域 -->
<div v-if="showFlag">
<!-- -->
<el-form :inline="true" :model="searchForm" class="form-content">
<!-- 搜索框布局 -->
<el-row :gutter="20" class="slt" :style="{justifyContent:contents.searchBoxPosition=='1'?'flex-start':contents.searchBoxPosition=='2'?'center':'flex-end'}">
<!-- 搜索输入框 -->
<el-form-item :label="contents.inputTitle == 1 ? '评论内容' : ''">
<!-- 带前缀图标的输入框 -->
<el-input v-if="contents.inputIcon == 1 && contents.inputIconPosition == 1" prefix-icon="el-icon-search" v-model="searchForm.content" placeholder="评论内容" clearable></el-input>
<!-- 带后缀图标的输入框 -->
<el-input v-if="contents.inputIcon == 1 && contents.inputIconPosition == 2" suffix-icon="el-icon-search" v-model="searchForm.content" placeholder="评论内容" clearable></el-input>
<!-- 不带图标的输入框 -->
<el-input v-if="contents.inputIcon == 0" v-model="searchForm.content" placeholder="评论内容" clearable></el-input>
</el-form-item>
<!-- 搜索按钮 -->
<el-form-item>
<!-- 带前缀图标的查询按钮 -->
<el-button v-if="contents.searchBtnIcon == 1 && contents.searchBtnIconPosition == 1" icon="el-icon-search" type="success" @click="search()">{{ contents.searchBtnFont == 1?'查询':'' }}</el-button>
<!-- 带后缀图标的查询按钮 -->
<el-button v-if="contents.searchBtnIcon == 1 && contents.searchBtnIconPosition == 2" type="success" @click="search()">{{ contents.searchBtnFont == 1?'查询':'' }}<i class="el-icon-search el-icon--right"/></el-button>
<!-- 不带图标的查询按钮 -->
<el-button v-if="contents.searchBtnIcon == 0" type="success" @click="search()">{{ contents.searchBtnFont == 1?'查询':'' }}</el-button>
</el-form-item>
</el-row>
<!-- 新增、删除按钮布局 -->
<el-row class="ad" :style="{justifyContent:contents.btnAdAllBoxPosition=='1'?'flex-start':contents.btnAdAllBoxPosition=='2'?'center':'flex-end'}">
<el-form-item>
<!-- 新增按钮(带前缀图标) -->
<el-button
v-if="isAuth('discussfangwuxinxi','新增') && contents.btnAdAllIcon == 1 && contents.btnAdAllIconPosition == 1"
type="success"
icon="el-icon-plus"
@click="addOrUpdateHandler()"
>{{ contents.btnAdAllFont == 1?'新增':'' }}</el-button>
<!-- 新增按钮(带后缀图标) -->
<el-button
v-if="isAuth('discussfangwuxinxi','新增') && contents.btnAdAllIcon == 1 && contents.btnAdAllIconPosition == 2"
type="success"
@click="addOrUpdateHandler()"
>{{ contents.btnAdAllFont == 1?'新增':'' }}<i class="el-icon-plus el-icon--right" /></el-button>
<!-- 新增按钮(不带图标) -->
<el-button
v-if="isAuth('discussfangwuxinxi','新增') && contents.btnAdAllIcon == 0"
type="success"
@click="addOrUpdateHandler()"
>{{ contents.btnAdAllFont == 1?'新增':'' }}</el-button>
<!-- 删除按钮(带前缀图标) -->
<el-button
v-if="isAuth('discussfangwuxinxi','删除') && contents.btnAdAllIcon == 1 && contents.btnAdAllIconPosition == 1 && contents.tableSelection"
:disabled="dataListSelections.length <= 0"
type="danger"
icon="el-icon-delete"
@click="deleteHandler()"
>{{ contents.btnAdAllFont == 1?'删除':'' }}</el-button>
<!-- 删除按钮(带后缀图标) -->
<el-button
v-if="isAuth('discussfangwuxinxi','删除') && contents.btnAdAllIcon == 1 && contents.btnAdAllIconPosition == 2 && contents.tableSelection"
:disabled="dataListSelections.length <= 0"
type="danger"
@click="deleteHandler()"
>{{ contents.btnAdAllFont == 1?'删除':'' }}<i class="el-icon-delete el-icon--right" /></el-button>
<!-- 删除按钮(不带图标) -->
<el-button
v-if="isAuth('discussfangwuxinxi','删除') && contents.btnAdAllIcon == 0 && contents.tableSelection"
:disabled="dataListSelections.length <= 0"
type="danger"
@click="deleteHandler()"
>{{ contents.btnAdAllFont == 1?'删除':'' }}</el-button>
</el-form-item>
</el-row>
</el-form>
<!-- 表格内容 -->
<div class="table-content">
<!-- 表格组件 -->
<el-table class="tables" :size="contents.tableSize" :show-header="contents.tableShowHeader"
:header-row-style="headerRowStyle" :header-cell-style="headerCellStyle"
:border="contents.tableBorder"
:fit="contents.tableFit"
:stripe="contents.tableStripe"
:row-style="rowStyle"
:cell-style="cellStyle"
:style="{width: '100%',fontSize:contents.tableContentFontSize,color:contents.tableContentFontColor}"
:data="dataList"
v-loading="dataListLoading"
@selection-change="selectionChangeHandler">
<!-- 多选列 -->
<el-table-column v-if="contents.tableSelection"
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<!-- 索引列 -->
<el-table-column label="索引" v-if="contents.tableIndex" type="index" width="50" />
<!-- 评论内容列 -->
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="content"
header-align="center"
label="评论内容">
<template slot-scope="scope">
{{scope.row.content}} <!-- 显示评论内容 -->
</template>
</el-table-column>
<!-- 回复内容列 -->
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="reply"
header-align="center"
label="回复内容">
<template slot-scope="scope">
{{scope.row.reply}} <!-- 显示回复内容 -->
</template>
</el-table-column>
<!-- 操作列 -->
<el-table-column width="300" :align="contents.tableAlign"
header-align="center"
label="操作">
<template slot-scope="scope">
<!-- 详情按钮(带前缀图标) -->
<el-button v-if=" contents.tableBtnIcon == 1 && contents.tableBtnIconPosition == 1" type="success" icon="el-icon-tickets" size="mini" @click="addOrUpdateHandler(scope.row.id,'info')">{{ contents.tableBtnFont == 1?'详情':'' }}</el-button>
<!-- 详情按钮(带后缀图标) -->
<el-button v-if=" contents.tableBtnIcon == 1 && contents.tableBtnIconPosition == 2" type="success" size="mini" @click="addOrUpdateHandler(scope.row.id,'info')">{{ contents.tableBtnFont == 1?'详情':'' }}<i class="el-icon-tickets el-icon--right" /></el-button>
<!-- 详情按钮(不带图标) -->
<el-button v-if=" contents.tableBtnIcon == 0" type="success" size="mini" @click="addOrUpdateHandler(scope.row.id,'info')">{{ contents.tableBtnFont == 1?'详情':'' }}</el-button>
<!-- 修改按钮(带前缀图标) -->
<el-button v-if="isAuth('discussfangwuxinxi','修改') && contents.tableBtnIcon == 1 && contents.tableBtnIconPosition == 1" type="primary" icon="el-icon-edit" size="mini" @click="addOrUpdateHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'修改':'' }}</el-button>
<!-- 修改按钮(带后缀图标) -->
<el-button v-if="isAuth('discussfangwuxinxi','修改') && contents.tableBtnIcon == 1 && contents.tableBtnIconPosition == 2" type="primary" size="mini" @click="addOrUpdateHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'修改':'' }}<i class="el-icon-edit el-icon--right" /></el-button>
<!-- 修改按钮(不带图标) -->
<el-button v-if="isAuth('discussfangwuxinxi','修改') && contents.tableBtnIcon == 0" type="primary" size="mini" @click="addOrUpdateHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'修改':'' }}</el-button>
<!-- 查看评论按钮(带前缀图标) -->
<el-button v-if="isAuth('discussfangwuxinxi','查看评论') && contents.tableBtnIcon == 1 && contents.tableBtnIconPosition == 1" type="primary" icon="el-icon-edit" size="mini" @click="disscussListHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'查看评论':'' }}</el-button>
<!-- 查看评论按钮(带后缀图标) -->
<el-button v-if="isAuth('discussfangwuxinxi','查看评论') && contents.tableBtnIcon == 1 && contents.tableBtnIconPosition == 2" type="primary" size="mini" @click="disscussListHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'查看评论':'' }}<i class="el-icon-edit el-icon--right" /></el-button>
<!-- 查看评论按钮(不带图标) -->
<el-button v-if="isAuth('discussfangwuxinxi','查看评论') && contents.tableBtnIcon == 0" type="primary" size="mini" @click="disscussListHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'查看评论':'' }}</el-button>
<!-- 回复按钮(带前缀图标) -->
<el-button v-if="contents.tableBtnIcon == 1 && contents.tableBtnIconPosition == 1" type="primary" icon="el-icon-edit" size="mini" @click="addOrUpdateHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'回复':'' }}</el-button>
<!-- 回复按钮(带后缀图标) -->
<el-button v-if="contents.tableBtnIcon == 1 && contents.tableBtnIconPosition == 2" type="primary" size="mini" @click="addOrUpdateHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'回复':'' }}<i class="el-icon-edit el-icon--right" /></el-button>
<!-- 回复按钮(不带图标) -->
<el-button v-if="contents.tableBtnIcon == 0" type="primary" size="mini" @click="addOrUpdateHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'回复':'' }}</el-button>
<!-- 删除按钮(带前缀图标) -->
<el-button v-if=" contents.tableBtnIcon == 1 && contents.tableBtnIconPosition == 1" type="danger" icon="el-icon-delete" size="mini" @click="deleteHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'删除':'' }}</el-button>
<!-- 删除按钮(带后缀图标) -->
<el-button v-if=" contents.tableBtnIcon == 1 && contents.tableBtnIconPosition == 2" type="danger" size="mini" @click="deleteHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'删除':'' }}<i class="el-icon-delete el-icon--right" /></el-button>
<!-- 删除按钮(不带图标) -->
<el-button v-if=" contents.tableBtnIcon == 0" type="danger" size="mini" @click="deleteHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'删除':'' }}</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<el-pagination
clsss="pages"
:layout="layouts"
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="Number(contents.pageEachNum)"
:total="totalPage"
:small="contents.pageStyle"
class="pagination-content"
:background="contents.pageBtnBG"
:style="{textAlign:contents.pagePosition==1?'left':contents.pagePosition==2?'center':'right'}"
></el-pagination>
</div>
</div>
<!-- 添加/修改页面组件 -->
<add-or-update v-if="addOrUpdateFlag" :parent="this" ref="addOrUpdate"></add-or-update>
</div>
</template>
<script>
// 导入添加/修改组件
import AddOrUpdate from "./add-or-update";
export default {
data() {
return {
searchForm: { // 搜索表单数据模型
key: ""
},
dataList: [], // 数据列表
pageIndex: 1, // 当前页码
pageSize: 10, // 每页数据量
totalPage: 0, // 总页数
dataListLoading: false, // 数据加载状态
dataListSelections: [], // 已选择的数据项
showFlag: true, // 是否显示主内容
sfshVisiable: false, // 审核弹窗可见性
shForm: {}, // 审核表单数据
chartVisiable: false, // 图表弹窗可见性
addOrUpdateFlag:false, // 添加/修改页面标志
contents:{"searchBtnFontColor":"#333","pagePosition":"1","inputFontSize":"14px","inputBorderRadius":"22px","tableBtnDelFontColor":"#333","tableBtnIconPosition":"1","searchBtnHeight":"40px","inputIconColor":"rgba(66, 130, 129, 1)","searchBtnBorderRadius":"22px","tableStripe":false,"btnAdAllWarnFontColor":"#333","tableBtnDelBgColor":"rgba(244, 150, 150, 1)","searchBtnIcon":"1","tableSize":"medium","searchBtnBorderStyle":"solid","tableSelection":true,"searchBtnBorderWidth":"1px","tableContentFontSize":"14px","searchBtnBgColor":"rgba(153, 239, 237, 1)","inputTitleSize":"14px","btnAdAllBorderColor":"#DCDFE6","pageJumper":true,"btnAdAllIconPosition":"1","searchBoxPosition":"1","tableBtnDetailFontColor":"#333","tableBtnHeight":"40px","pagePager":true,"searchBtnBorderColor":"#DCDFE6","tableHeaderFontColor":"rgba(33, 34, 35, 1)","inputTitle":"1","tableBtnBorderRadius":"22px","btnAdAllFont":"1","btnAdAllDelFontColor":"rgba(21, 20, 20, 1)","tableBtnIcon":"1","btnAdAllHeight":"40px","btnAdAllWarnBgColor":"rgba(238, 236, 126, 1)","btnAdAllBorderWidth":"1px","tableStripeFontColor":"#606266","tableBtnBorderStyle":"solid","inputHeight":"40px","btnAdAllBorderRadius":"22px","btnAdAllDelBgColor":"rgba(234, 93, 93, 0.69)","pagePrevNext":true,"btnAdAllAddBgColor":"rgba(153, 239, 237, 1)","searchBtnFont":"1","tableIndex":true,"btnAdAllIcon":"1","tableSortable":true,"pageSizes":true,"tableFit":true,"pageBtnBG":true,"searchBtnFontSize":"14px","tableBtnEditBgColor":"rgba(240, 242, 124, 1)","inputBorderWidth":"1px","inputFontPosition":"1","inputFontColor":"#333","pageEachNum":10,"tableHeaderBgColor":"rgba(152, 129, 129, 1)","inputTitleColor":"#333","btnAdAllBoxPosition":"1","tableBtnDetailBgColor":"rgba(171, 239, 239, 1)","inputIcon":"0","searchBtnIconPosition":"1","btnAdAllFontSize":"14px","inputBorderStyle":"solid","inputBgColor":"rgba(197, 174, 174, 0.32)","pageStyle":false,"pageTotal":true,"btnAdAllAddFontColor":"#333","tableBtnFont":"1","tableContentFontColor":"rgba(22, 22, 23, 1)","inputBorderColor":"rgba(152, 129, 129, 1)","tableShowHeader":true,"tableBtnFontSize":"14px","tableBtnBorderColor":"rgba(196, 210, 244, 1)","inputIconPosition":"1","tableBorder":true,"btnAdAllBorderStyle":"solid","tableBtnBorderWidth":"1px","tableStripeBgColor":"rgba(213, 197, 197, 1)","tableBtnEditFontColor":"#333","tableAlign":"center"}, // 样式配置对象
layouts: '', // 分页布局
};
},
created() {
this.init(); // 初始化方法
this.getDataList(); // 获取数据列表
this.contentStyleChange(); // 动态调整样式
},
mounted() {
// 页面挂载后执行的操作
},
filters: {
htmlfilter: function (val) {
return val.replace(/<[^>]*>/g).replace(/undefined/g,''); // 过滤HTML标签和undefined值
}
},
components: {
AddOrUpdate, // 注册子组件
},
methods: {
contentStyleChange() {
this.contentSearchStyleChange(); // 调整搜索框样式
this.contentBtnAdAllStyleChange(); // 调整新增/删除按钮样式
this.contentSearchBtnStyleChange(); // 调整搜索按钮样式
this.contentTableBtnStyleChange(); // 调整表格按钮样式
this.contentPageStyleChange(); // 调整分页样式
},
contentSearchStyleChange() {
this.$nextTick(()=>{
document.querySelectorAll('.form-content .slt .el-input__inner').forEach(el=>{
let textAlign = 'left'; // 默认文本对齐方式
if(this.contents.inputFontPosition == 2) textAlign = 'center'; // 居中对齐
if(this.contents.inputFontPosition == 3) textAlign = 'right'; // 右对齐
el.style.textAlign = textAlign; // 设置文本对齐
el.style.height = this.contents.inputHeight; // 高度
el.style.lineHeight = this.contents.inputHeight; // 行高
el.style.color = this.contents.inputFontColor; // 字体颜色
el.style.fontSize = this.contents.inputFontSize; // 字体大小
el.style.borderWidth = this.contents.inputBorderWidth; // 边框宽度
el.style.borderStyle = this.contents.inputBorderStyle; // 边框样式
el.style.borderColor = this.contents.inputBorderColor; // 边框颜色
el.style.borderRadius = this.contents.inputBorderRadius; // 圆角
el.style.backgroundColor = this.contents.inputBgColor; // 背景颜色
});
if(this.contents.inputTitle) {
document.querySelectorAll('.form-content .slt .el-form-item__label').forEach(el=>{
el.style.color = this.contents.inputTitleColor; // 标签字体颜色
el.style.fontSize = this.contents.inputTitleSize; // 标签字体大小
el.style.lineHeight = this.contents.inputHeight; // 标签行高
});
}
setTimeout(()=>{
document.querySelectorAll('.form-content .slt .el-input__prefix').forEach(el=>{
el.style.color = this.contents.inputIconColor; // 前缀图标颜色
el.style.lineHeight = this.contents.inputHeight; // 前缀图标行高
});
document.querySelectorAll('.form-content .slt .el-input__suffix').forEach(el=>{
el.style.color = this.contents.inputIconColor; // 后缀图标颜色
el.style.lineHeight = this.contents.inputHeight; // 后缀图标行高
});
document.querySelectorAll('.form-content .slt .el-input__icon').forEach(el=>{
el.style.lineHeight = this.contents.inputHeight; // 图标行高
});
},10);
});
},
// 搜索按钮样式调整
contentSearchBtnStyleChange() {
this.$nextTick(()=>{
document.querySelectorAll('.form-content .slt .el-button--success').forEach(el=>{
el.style.height = this.contents.searchBtnHeight; // 高度
el.style.color = this.contents.searchBtnFontColor; // 字体颜色
el.style.fontSize = this.contents.searchBtnFontSize; // 字体大小
el.style.borderWidth = this.contents.searchBtnBorderWidth; // 边框宽度
el.style.borderStyle = this.contents.searchBtnBorderStyle; // 边框样式
el.style.borderColor = this.contents.searchBtnBorderColor; // 边框颜色
el.style.borderRadius = this.contents.searchBtnBorderRadius; // 圆角
el.style.backgroundColor = this.contents.searchBtnBgColor; // 背景颜色
});
});
},
// 新增、批量删除按钮样式调整
contentBtnAdAllStyleChange() {
this.$nextTick(()=>{
document.querySelectorAll('.form-content .ad .el-button--success').forEach(el=>{
el.style.height = this.contents.btnAdAllHeight; // 高度
el.style.color = this.contents.btnAdAllAddFontColor; // 字体颜色
el.style.fontSize = this.contents.btnAdAllFontSize; // 字体大小
el.style.borderWidth = this.contents.btnAdAllBorderWidth; // 边框宽度
el.style.borderStyle = this.contents.btnAdAllBorderStyle; // 边框样式
el.style.borderColor = this.contents.btnAdAllBorderColor; // 边框颜色
el.style.borderRadius = this.contents.btnAdAllBorderRadius; // 圆角
el.style.backgroundColor = this.contents.btnAdAllAddBgColor; // 背景颜色
});
document.querySelectorAll('.form-content .ad .el-button--danger').forEach(el=>{
el.style.height = this.contents.btnAdAllHeight; // 高度
el.style.color = this.contents.btnAdAllDelFontColor; // 字体颜色
el.style.fontSize = this.contents.btnAdAllFontSize; // 字体大小
el.style.borderWidth = this.contents.btnAdAllBorderWidth; // 边框宽度
el.style.borderStyle = this.contents.btnAdAllBorderStyle; // 边框样式
el.style.borderColor = this.contents.btnAdAllBorderColor; // 边框颜色
el.style.borderRadius = this.contents.btnAdAllBorderRadius; // 圆角
el.style.backgroundColor = this.contents.btnAdAllDelBgColor; // 背景颜色
});
document.querySelectorAll('.form-content .ad .el-button--warning').forEach(el=>{
el.style.height = this.contents.btnAdAllHeight; // 高度
el.style.color = this.contents.btnAdAllWarnFontColor; // 字体颜色
el.style.fontSize = this.contents.btnAdAllFontSize; // 字体大小
el.style.borderWidth = this.contents.btnAdAllBorderWidth; // 边框宽度
el.style.borderStyle = this.contents.btnAdAllBorderStyle; // 边框样式
el.style.borderColor = this.contents.btnAdAllBorderColor; // 边框颜色
el.style.borderRadius = this.contents.btnAdAllBorderRadius; // 圆角
el.style.backgroundColor = this.contents.btnAdAllWarnBgColor; // 背景颜色
});
});
},
// 表格行样式
rowStyle({ row, rowIndex}) {
if (rowIndex % 2 == 1) { // 奇数行
if(this.contents.tableStripe) {
return {color:this.contents.tableStripeFontColor}; // 条纹字体颜色
}
} else {
return ''; // 偶数行无样式
}
},
// 表格单元格样式
cellStyle({ row, rowIndex}){
if (rowIndex % 2 == 1) { // 奇数行
if(this.contents.tableStripe) {
return {backgroundColor:this.contents.tableStripeBgColor}; // 条纹背景颜色
}
} else {
return ''; // 偶数行无样式
}
},
// 表格头部行样式
headerRowStyle({ row, rowIndex}){
return {color: this.contents.tableHeaderFontColor}; // 表头字体颜色
},
// 表格头部单元格样式
headerCellStyle({ row, rowIndex}){
return {backgroundColor: this.contents.tableHeaderBgColor}; // 表头背景颜色
},
// 表格按钮样式调整
contentTableBtnStyleChange(){
// 动态调整表格按钮样式,暂时未启用
},
// 分页样式调整
contentPageStyleChange(){
let arr = []; // 分页布局数组
if(this.contents.pageTotal) arr.push('total'); // 显示总条数
if(this.contents.pageSizes) arr.push('sizes'); // 显示每页条数选择
if(this.contents.pagePrevNext){
arr.push('prev'); // 显示上一页
if(this.contents.pagePager) arr.push('pager'); // 显示页码
arr.push('next'); // 显示下一页
}
if(this.contents.pageJumper) arr.push('jumper'); // 显示跳转输入框
this.layouts = arr.join(); // 组合分页布局
this.contents.pageEachNum = 10; // 默认每页条数
},
init () {
// 初始化方法,暂无具体实现
},
search() {
this.pageIndex = 1; // 重置页码
this.getDataList(); // 重新获取数据
},
// 获取数据列表
getDataList() {
this.dataListLoading = true; // 开启加载状态
let params = {
page: this.pageIndex, // 当前页码
limit: this.pageSize, // 每页条数
sort: 'id', // 排序字段
refid : this.$route.query.refid, // 关联ID
}
if(this.searchForm.content!='' && this.searchForm.content!=undefined){
params['content'] = '%' + this.searchForm.content + '%'; // 模糊查询条件
}
this.$http({
url: "discussfangwuxinxi/page", // 请求接口
method: "get",
params: params
}).then(({ data }) => {
if (data && data.code === 0) {
this.dataList = data.data.list; // 更新数据列表
this.totalPage = data.data.total; // 更新总条数
} else {
this.dataList = []; // 清空数据列表
this.totalPage = 0; // 清空总条数
}
this.dataListLoading = false; // 关闭加载状态
});
},
// 每页条数变化
sizeChangeHandle(val) {
this.pageSize = val; // 更新每页条数
this.pageIndex = 1; // 重置页码
this.getDataList(); // 重新获取数据
},
// 当前页变化
currentChangeHandle(val) {
this.pageIndex = val; // 更新当前页码
this.getDataList(); // 重新获取数据
},
// 多选变化
selectionChangeHandler(val) {
this.dataListSelections = val; // 更新已选择项
},
// 添加/修改操作
addOrUpdateHandler(id,type) {
this.showFlag = false; // 隐藏主内容
this.addOrUpdateFlag = true; // 显示添加/修改页面
this.crossAddOrUpdateFlag = false; // 跨页面标志
if(type!='info'){
type = 'else'; // 设置类型
}
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id,type); // 初始化子组件
});
},
// 查看评论操作
disscussListHandler(id,type) {
this.$router.push({path:'/discussdiscussfangwuxinxi',query:{refid:id}}); // 跳转到评论页面
},
// 下载文件
download(file){
window.open(`${file}`); // 新窗口打开文件链接
},
// 删除操作
deleteHandler(id) {
var ids = id
? [Number(id)] // 单个删除
: this.dataListSelections.map(item => {
return Number(item.id); // 批量删除
});
this.$confirm(`确定进行[${id ? "删除" : "批量删除"}]操作?`, "提示", {
confirmButtonText: "确定", // 确认按钮文字
cancelButtonText: "取消", // 取消按钮文字
type: "warning" // 提示类型
}).then(() => {
this.$http({
url: "discussfangwuxinxi/delete", // 请求接口
method: "post",
data: ids
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功", // 成功提示
type: "success",
duration: 1500,
onClose: () => {
this.search(); // 刷新数据
}
});
} else {
this.$message.error(data.msg); // 错误提示
}
});
});
},
}
};
</script>
<style lang="scss" scoped>
.slt {
margin: 0 !important; // 移除外边距
display: flex; // 使用弹性布局
}
.ad {
margin: 0 !important; // 移除外边距
display: flex; // 使用弹性布局
}
.pages {
& /deep/ el-pagination__sizes{ // 深度选择器,调整分页尺寸选择框
& /deep/ el-input__inner {
height: 22px; // 高度
line-height: 22px; // 行高
}
}
}
.el-button+.el-button {
margin:0; // 移除按钮间距
}
.tables {
& /deep/ .el-button--success { // 成功按钮样式
height: 40px;
color: #333;
font-size: 14px;
border-width: 1px;
border-style: solid;
border-color: rgba(196, 210, 244, 1);
border-radius: 22px;
background-color: rgba(171, 239, 239, 1);
}
& /deep/ .el-button--primary { // 主要按钮样式
height: 40px;
color: #333;
font-size: 14px;
border-width: 1px;
border-style: solid;
border-color: rgba(196, 210, 244, 1);
border-radius: 22px;
background-color: rgba(240, 242, 124, 1);
}
& /deep/ .el-button--danger { // 危险按钮样式
height: 40px;
color: #333;
font-size: 14px;
border-width: 1px;
border-style: solid;
border-color: rgba(196, 210, 244, 1);
border-radius: 22px;
background-color: rgba(244, 150, 150, 1);
}
& /deep/ .el-button {
margin: 4px; // 按钮间距
}
}
</style>