2024-11-29 16:04:56 +08:00

194 lines
7.8 KiB
Vue

<template>
<div class="layout-tabs-content-box">
<div class="">
<div class="height-56 flex-row align-items-center justify-content-between">
<div class="f22 color-text-primary">调解协议模板</div>
<div class="flex-row">
<div class="mr-16">
<el-input
placeholder="请输入搜索内容"
suffix-icon="el-icon-search"
v-model.trim="queryParam.name"
size="small"
clearable
@change="handleSearch"
@keydown.enter.native="handleSearch"
>
</el-input>
</div>
<el-button size="small" @click="handleExport">下载模板</el-button>
<el-button size="small" type="primary" @click="handleAddForm">新增调解协议模板</el-button>
</div>
</div>
<div class="" >
<el-table :data="tableData" :height="`${contentHeight}`" @current-change="handleCurrentChange" highlight-current-row>
<!-- <el-table-column type="selection" width="55"></el-table-column> -->
<el-table-column type="index" label="序号" width="55"></el-table-column>
<el-table-column prop="name" label="模板名称" width="400"></el-table-column>
<el-table-column label="金融产品" width="200">
<template slot-scope="scope">
<div class="flex-row">
{{getDictName(scope.row.productTypeId)}}
</div>
</template>
</el-table-column>
<el-table-column label="文件大小" width="150">
<template slot-scope="scope">
<div class="flex-row">
{{scope.row.fileSize}}M
</div>
</template>
</el-table-column>
<el-table-column prop="remark" label="备注"></el-table-column>
<el-table-column label="操作" width="150">
<template slot-scope="scope">
<div class="flex-row align-items-center">
<div class="f14 color-1960F4 cursor-pointer mr-8" @click="handleAddForm(scope)">编辑</div>
<div class="f14 color-1960F4 cursor-pointer" @click="handleDelete(scope)">删除</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div class="text-center pt-16" v-if="tableData.length>0">
<el-pagination
@size-change="getMediateDataList"
@current-change="getMediateDataList"
:current-page="queryParam.current"
:page-size="queryParam.size"
layout="total, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</div>
<!-- 新增金融机构弹框 -->
<addTemplateDialog v-if="addTemplateDialog" :dictList.sync="dictList" :addTemplateDialog.sync="addTemplateDialog" />
</div>
</template>
<script>
import basicApi from "@/services/basicManage";
export default {
components: {
addTemplateDialog: () => import('./components/addTemplateDialog.vue'),
},
data() {
return {
queryParam: {
type:1,
name: '',//
current:1,
size:10
},
tableData: [],
total:0,
addTemplateDialog:null,
dictList:[],
multipleSelection:[],
currentRow:null
}
},
created() {
this.getDictDataList()
this.getMediateDataList(1)
},
computed:{
// 获取抽屉drawer的内容高度
contentHeight(){
let oh = document.documentElement.clientHeight;
return oh-56-48-56-50-32
}
},
methods: {
getDictName(val){
let dictItem= this.dictList.find(item =>{
return item.code === val
})
if(dictItem){return dictItem.codeName;}
else{return '';}
},
getDictDataList(val){
basicApi.getDictList({current:1,size:100}).then(res => {
if (!res.code) {
this.dictList = res.records;
}
})
},
getMediateDataList(val){
this.queryParam.current = val
basicApi.getTemplateList(this.queryParam).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
}
})
},
// 搜索
handleSearch() {
this.queryParam.current = 1
this.queryParam.size = 10
this.getMediateDataList(1)
},
// 新增弹窗
handleAddForm(scope){
let title = scope.row?'编辑调解协议模板':'新增调解协议模板'
let data = scope.row?scope.row:''
this.addTemplateDialog={
title:title,
data: data
}
},
// 导出
handleExport(){
if(!this.$clickThrottle()) { return }//防止重复点击
if(this.currentRow!=null)
{
// this.handlePreview({previewUrl:"/manage-center/minio/preview/"+this.multipleSelection[0].content,url:this.multipleSelection[0].content})
this.handlePreview({previewUrl:"/manage-center/minio/preview/"+this.currentRow.content,url:this.currentRow.content})
}
else
{
this.$message.warning(`请选择下载模板!`)
return
}
},
async handlePreview(item) {
try {
let res = await this.$fetchApi.getMinioToken({objectName: item.url})
console.log(res)
window.open(`${item.previewUrl}?token=${res}`, '_target')
}catch (e) {
this.$message.error(e.msg || e)
}
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
handleCurrentChange(val) {
this.currentRow = val;
},
// 删除
handleDelete(scope){
this.$confirm("此操作将永久删除该数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
if(!this.$clickThrottle()) { return }//防止重复点击
basicApi.deleteTemplateById({ id: scope.row.id }).then((res) => {
this.$message.success("成功");
this.getMediateDataList(1)
});
}).catch(() => {});
},
}
}
</script>