xw_admin/src/views/service/queryRecord.vue
2024-12-02 20:56:41 +08:00

112 lines
3.0 KiB
Vue

<template>
<el-container class="mainBox mainBoxHeaderNoBorder">
<el-main class="nopadding">
<div class="searchMain">
<scSearch ref="scSearch" :searchList="searchList" @fetchSelectData="getSelectData"></scSearch>
<div class="searchItem searchBtn">
<el-button :size="size" type="primary" icon="el-icon-search" @click="upSearch">查询</el-button>
<el-button :size="size" type="info" icon="el-icon-RefreshRight" @click="reset">重置</el-button>
</div>
</div>
<scTable ref="table" :apiObj="list.apiObj" :column="list.column" row-key="id" stripe :size="size" @selection-change="selectionChange">
<el-table-column type="selection" align="center" width="40"></el-table-column>
<sc-table-column label="序号" align="center" type="index"></sc-table-column>
<template #type="scope">
<span v-for="(item,index) in setMap.typeList" :key="index">
<span v-if="item.value == scope.row.type">{{item.label}}</span>
</span>
</template>
</scTable>
</el-main>
</el-container>
</template>
<script>
export default {
name: "queryRecord",
data(){
return{
size:'small',
setMap:{
typeList:[]
},
list: {
apiObj: this.$API.customer.queryRecordList,
column: [],
},
selection: [],
exportShow:false,
searchShow:false,
searchList:[
{name:'查询时间',type:'date',code:'created_at',show: true},
{name:'查询类型',type:'select',code:['type'],data:[],placeholder:"请选择类型", show: true},
{name:'查询内容',type:'text',code:'content',placeholder:"请输入内容",show:true},
{name:'用户名',type:'text',code:"creator_name",placeholder:"请输入用户名",show:true},
],
params: {},
}
},
mounted() {
this.getTypeList();
},
methods:{
async getTypeList() {
const res = await this.$API.customer.searchTypeList.post(this.params);
if (res.code == 200) {
this.setMap.typeList = res.data;
}
},
async getStatusList(data,params) {
const res = await this.$API.customer.searchTypeList.post(params);
if(res.code == 200){
if(res.data && res.data.length>0){
res.data.forEach(item=>{
item.type = item.value;
})
}
this.searchList.forEach(item=>{
if(item.code == data.code){
item.data = res.data;
}
})
}
},
getSelectData(item){
let {data,params} = item;
this.params = params;
let searchParams = this.$TOOL.objCopy(params);
searchParams.field = ""
if (typeof data.code === 'string') {
searchParams.field = data.code;
} else {
searchParams.field = data.code[0];
}
if(data.type == 'select' || data.type == 'multiple'){
if(data.code == 'type'){
this.getStatusList(data,params);
}
}
},
//表格选择后回调事件
selectionChange(selection){
this.selection = selection;
},
upSearch(){
this.$refs.table.upData(this.params);
},
reset(){
this.params = {};
this.$refs.scSearch.reload();
this.$refs.table.reload();
},
handleSaveSuccess(){
this.$refs.table.refresh();
},
}
}
</script>
<style scoped lang="scss">
</style>