增加批量检索

This commit is contained in:
龙运模 2025-06-14 16:08:17 +08:00
parent 21490722fa
commit e83d210e0f
12 changed files with 340 additions and 12 deletions

View File

@ -0,0 +1,15 @@
<template>
<svg width="14" height="14" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg">
<path d="M0.65465 5.2335H13.0922C13.359 5.2335 13.599 5.07663 13.7003 4.82788C13.75 4.70924 13.7635 4.5785 13.7389 4.45222C13.7143 4.32594 13.6528 4.2098 13.5622 4.1185L9.63715 0.193503C9.5771 0.132237 9.50543 0.0835662 9.42634 0.05034C9.34724 0.0171138 9.26231 0 9.17653 0C9.09074 0 9.00581 0.0171138 8.92672 0.05034C8.84762 0.0835662 8.77595 0.132237 8.7159 0.193503C8.65463 0.253555 8.60596 0.325225 8.57274 0.404319C8.53951 0.483412 8.5224 0.568339 8.5224 0.654128C8.5224 0.739917 8.53951 0.824844 8.57274 0.903937C8.60596 0.983031 8.65463 1.0547 8.7159 1.11475L11.5259 3.92475H0.6634C0.304025 3.92475 0.00902528 4.21975 0.00902528 4.57913C0.0076121 4.66471 0.0232818 4.74972 0.0551176 4.82918C0.0869533 4.90864 0.134316 4.98095 0.194434 5.04188C0.254552 5.10281 0.326219 5.15115 0.405241 5.18405C0.484262 5.21695 0.569053 5.23376 0.65465 5.2335ZM13.0922 9.296H0.65465C0.387775 9.296 0.147775 9.45288 0.0465252 9.70163C0.0134536 9.78027 -0.00231958 9.8651 0.000275319 9.95038C0.000275319 10.116 0.0646503 10.291 0.194025 10.411L3.46465 13.691C3.5247 13.7523 3.59637 13.8009 3.67547 13.8342C3.75456 13.8674 3.83949 13.8845 3.92528 13.8845C4.01106 13.8845 4.09599 13.8674 4.17509 13.8342C4.25418 13.8009 4.32585 13.7523 4.3859 13.691C4.44717 13.631 4.49584 13.5593 4.52906 13.4802C4.56229 13.4011 4.5794 13.3162 4.5794 13.2304C4.5794 13.1446 4.56229 13.0597 4.52906 12.9806C4.49584 12.9015 4.44717 12.8298 4.3859 12.7698L2.23028 10.6141H13.0922C13.4515 10.6141 13.7465 10.3191 13.7465 9.95975C13.7459 9.60038 13.4515 9.296 13.0922 9.296Z" fill=""/>
</svg>
</template>
<script>
export default {
name: "SwitchQuery"
}
</script>
<style scoped>
</style>

View File

@ -58,6 +58,7 @@ export { default as ComponentQuery } from './ComponentQuery.vue'
export { default as TermQuery } from './TermQuery.vue' export { default as TermQuery } from './TermQuery.vue'
export { default as Feedback } from './Feedback.vue' export { default as Feedback } from './Feedback.vue'
export { default as PartsMag } from './PartsMag.vue' export { default as PartsMag } from './PartsMag.vue'
export { default as SwitchQuery } from './SwitchQuery.vue'
export { default as File7z } from './file/7z.vue' export { default as File7z } from './file/7z.vue'
export { default as FileBmp } from './file/Bmp.vue' export { default as FileBmp } from './file/Bmp.vue'

View File

@ -26,7 +26,7 @@ export default {
watch:{ watch:{
activation_text:{ activation_text:{
handler(val){ handler(val){
if(val){ if(val && typeof val.value === 'string'){
this.localText = val.value.replace(/%/g, ""); this.localText = val.value.replace(/%/g, "");
} }
}, },

View File

@ -0,0 +1,162 @@
<template>
<div class="scTableSearch" v-if="fieldsShow">
<div class="searchBody">
<div class="searchBox searchConditionItem">
<div class="leftBox">
<el-radio-group v-model="params.type">
<el-radio :label="item.prop" :size="size" v-for="(item,index) in fieldsList" :key="index">{{item.label}}</el-radio>
</el-radio-group>
</div>
<div class="rightBox" @click="fieldsSwitch">
<el-icon class="icon"><sc-icon-SwitchQuery /></el-icon>
<span class="name">切换查询方式</span>
</div>
</div>
<div class="searchBox searchTextItem">
<el-input class="text" v-model="params.message" type="textarea" placeholder="请输入检索条件,用空格、换行区分"></el-input>
<div class="operateBox">
<el-button type="primary" :size="size" @click="save">批量查询</el-button>
<el-button type="info" :size="size" @click="reset">重置</el-button>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "herderMultipleInput",
props:{
searchList:{
type:[Object,Array],
},
fieldsShow:{
type:Boolean,
default:false
}
},
watch:{
searchList:{
handler(val){
let list = [];
for(let i in val){
list.push({prop:i,label:val[i]})
}
this.fieldsList = list;
if(this.fieldsList && this.fieldsList.length>0){
this.params.type = this.fieldsList[0].prop;
}
},
immediate:true,
deep:true
},
},
data(){
return{
size:"small",
fieldsList:[],
params:{
type:"",
message:""
},
fieldsData:{}
}
},
mounted() {
},
methods:{
fieldsSwitch(){
this.$emit('fieldsSwitch',false);
},
setData(){
const str = this.params.message;
if(str === ""){
return []
}
const list = str.split(/\s+/);
return list.filter(em=>em!=="");
},
save(){
this.fieldsData[this.params.type] = {
operator:"in",
value:this.setData()
}
this.$emit('fieldsSearch',this.fieldsData)
},
reset(){
this.params.message = "";
if(this.fieldsList && this.fieldsList.length>0){
this.fieldsList.forEach(item=>{
if(this.fieldsData[item.prop]){
this.fieldsData[item.prop].value = []
}
})
}
if(this.fieldsData[this.params.type]){
this.fieldsData[this.params.type].value = [];
}
this.$emit('fieldsSearch',this.fieldsData);
}
}
}
</script>
<style scoped lang="scss">
.scTableSearch{
width: 100%;
margin-top: 0;
.searchBody{
width: 100%;
padding: 5px 10px 10px 10px;
display: flex;
flex-direction: column;
align-items: center;
.searchBox{
width: 100%;
}
.searchConditionItem{
display: flex;
align-items: center;
margin-bottom: 5px;
.leftBox{
flex: 1;
}
.rightBox{
flex-basis: 100px;
display: flex;
align-items: center;
justify-content: flex-end;
cursor: pointer;
.icon{
color: var(--el-color-primary);
}
.name{
color: var(--el-color-primary);
margin-left: 6px;
}
}
}
.searchTextItem{
flex: 1;
display: flex;
align-items: center;
border-radius: 4px;
box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
padding: 1px;
background: var(--el-color-white);
.text{
font-size: 12px;
::v-deep .el-textarea__inner{
box-shadow: none;
}
}
.operateBox{
padding: 10px;
display: flex;
align-items: center;
}
}
}
}
</style>

View File

@ -262,7 +262,8 @@
} }
if(response.data.columnConfig){ if(response.data.columnConfig){
this.userColumn = response.data.columnConfig; // this.userColumn = response.data.columnConfig; //
this.$emit('columnBack',this.userColumn); const fieldsData = response.data.bachSelectFields;
this.$emit('columnBack',this.userColumn, fieldsData);
} }
if(response.data.tableConfig && response.data.tableConfig.size){ if(response.data.tableConfig && response.data.tableConfig.size){
this.config = response.data.tableConfig; this.config = response.data.tableConfig;

View File

@ -27,6 +27,7 @@ import scInput from "./components/scInput";
import scVgInput from "./components/scInput/inputVague"; import scVgInput from "./components/scInput/inputVague";
import scSearch from "./components/scSearch"; import scSearch from "./components/scSearch";
import scTableSearch from "./components/scTable/components/headerSearch"; import scTableSearch from "./components/scTable/components/headerSearch";
import herderMultipleSearch from "./components/scTable/components/herderMultipleInput";
import scExport from "./components/scExport"; import scExport from "./components/scExport";
import scExportList from "./components/scExport/exportList"; import scExportList from "./components/scExport/exportList";
import scImport from "./components/scImport"; import scImport from "./components/scImport";
@ -88,6 +89,7 @@ export default {
app.component('scVgInput', scVgInput); app.component('scVgInput', scVgInput);
app.component('scSearch', scSearch); app.component('scSearch', scSearch);
app.component('scTableSearch', scTableSearch); app.component('scTableSearch', scTableSearch);
app.component('herderMultipleSearch', herderMultipleSearch);
app.component('scExport', scExport); app.component('scExport', scExport);
app.component('scExportList', scExportList); app.component('scExportList', scExportList);
app.component('scImport', scImport); app.component('scImport', scImport);

View File

@ -114,9 +114,13 @@
/** 列表上面的检索 */ /** 列表上面的检索 */
.el-main.nopadding .searchMain{position: relative;display: flex;flex-wrap: wrap;align-items: self-end;padding-bottom: 10px;margin: 15px 0 0 0; border-bottom: 1px solid var(--el-border-color-light);} .el-main.nopadding .searchMain{position: relative;display: flex;flex-wrap: wrap;align-items: self-end;padding-bottom: 10px;margin: 15px 0 0 0; border-bottom: 1px solid var(--el-border-color-light);}
.el-main.nopadding .searchMain.searchMainMarginNone{margin-top: 5px;}
.el-main.nopadding .searchMain.logSearchMain{min-height: 50px;} .el-main.nopadding .searchMain.logSearchMain{min-height: 50px;}
.el-main.nopadding .searchMain.emptySearchMain{margin: 0;padding-bottom: 0;border-bottom: 0;} .el-main.nopadding .searchMain.emptySearchMain{margin: 0;padding-bottom: 0;border-bottom: 0;}
.el-main.nopadding .fieldsSwitchBox{margin: 0 10px;}
.el-main.nopadding .searchMainNoTop{margin-top: 0;} .el-main.nopadding .searchMainNoTop{margin-top: 0;}
.el-main.nopadding .searchMainNoTop.searchMainMarginNone{margin: 0;}
.el-main.nopadding .searchMainNoTop.searchMainBodyMarginNone .scTableSearch .searchBody{padding-left: 0 !important;padding-right: 0 !important;}
.el-main.nopadding .searchMain .searchItem{display: flex;flex-direction: column;align-items: flex-start;margin-right: 20px;margin-bottom: 10px;} .el-main.nopadding .searchMain .searchItem{display: flex;flex-direction: column;align-items: flex-start;margin-right: 20px;margin-bottom: 10px;}
.el-main.nopadding .searchMain .searchItem .name{white-space: nowrap;overflow: hidden;text-overflow: ellipsis;color: #303133;padding-bottom: 5px;text-align: right;} .el-main.nopadding .searchMain .searchItem .name{white-space: nowrap;overflow: hidden;text-overflow: ellipsis;color: #303133;padding-bottom: 5px;text-align: right;}
.el-main.nopadding .searchMain .searchItem .input{width: 230px;height: 28px;} .el-main.nopadding .searchMain .searchItem .input{width: 230px;height: 28px;}
@ -124,6 +128,29 @@
.el-main.nopadding .searchMain .searchItem.searchBtn{display: flex;flex-direction: row;} .el-main.nopadding .searchMain .searchItem.searchBtn{display: flex;flex-direction: row;}
.el-main.nopadding .searchMain .exportBtn{position: absolute;bottom: 20px;right: 0;} .el-main.nopadding .searchMain .exportBtn{position: absolute;bottom: 20px;right: 0;}
.searchConditionItem{
display: flex;
align-items: center;
margin-bottom: 5px;
.leftBox{
flex: 1;
}
.rightBox{
flex-basis: 100px;
display: flex;
align-items: center;
justify-content: flex-end;
cursor: pointer;
.icon{
color: var(--el-color-primary);
}
.name{
color: var(--el-color-primary);
margin-left: 6px;
}
}
}
.el-drawer__body {overflow: auto;padding:0;} .el-drawer__body {overflow: auto;padding:0;}
.el-popconfirm__main {margin: 14px 0;} .el-popconfirm__main {margin: 14px 0;}
.el-card__header {border-bottom: 0;font-size: 17px;font-weight: bold;padding:15px 20px 0px 20px;} .el-card__header {border-bottom: 0;font-size: 17px;font-weight: bold;padding:15px 20px 0px 20px;}

View File

@ -25,7 +25,14 @@
<div class="flowPath"> <div class="flowPath">
<flow :list="flowList"/> <flow :list="flowList"/>
</div> </div>
<div class="searchMain searchMainNoTop"> <div class="fieldsSwitchBox searchConditionItem" v-if="!fieldsShow">
<div class="leftBox"></div>
<div class="rightBox" @click="searchClick">
<el-icon class="icon"><sc-icon-SwitchQuery /></el-icon>
<span class="name">切换查询方式</span>
</div>
</div>
<div class="searchMain searchMainNoTop" v-if="!fieldsShow">
<scTableSearch ref="scSearch" :searchList="list.column" :paramsData="params" :searchShow="searchShow" @fetchSelectData="getSelectData" @changeHeaderData="getHeaderData"></scTableSearch> <scTableSearch ref="scSearch" :searchList="list.column" :paramsData="params" :searchShow="searchShow" @fetchSelectData="getSelectData" @changeHeaderData="getHeaderData"></scTableSearch>
<div class="searchItem searchBtn" v-if="searchHeaderShow"> <div class="searchItem searchBtn" v-if="searchHeaderShow">
@ -34,6 +41,9 @@
<el-button :size="size" type="info" icon="el-icon-RefreshRight" @click="reset">重置</el-button> <el-button :size="size" type="info" icon="el-icon-RefreshRight" @click="reset">重置</el-button>
</div> </div>
</div> </div>
<div class="searchMain searchMainMarginNone searchMainNoTop" v-if="fieldsShow">
<herderMultipleSearch @fieldsSwitch="fieldsSwitch" @fieldsSearch="fieldsSearch" :fieldsShow="fieldsShow" :searchList="list.fields"></herderMultipleSearch>
</div>
<scTable ref="table" :apiObj="list.apiObj" :column="list.column" row-key="id" stripe :size="size" border highlightCurrentRow :hideTotal="false" @selection-change="selectionChange" @columnBack="columnBack"> <scTable ref="table" :apiObj="list.apiObj" :column="list.column" row-key="id" stripe :size="size" border highlightCurrentRow :hideTotal="false" @selection-change="selectionChange" @columnBack="columnBack">
<el-table-column type="selection" align="center" width="40"></el-table-column> <el-table-column type="selection" align="center" width="40"></el-table-column>
<template #business_status="scope"> <template #business_status="scope">
@ -99,6 +109,7 @@ export default {
}, },
data() { data() {
return { return {
fieldsShow:false,
size:'small', size:'small',
httpDisabled:false, httpDisabled:false,
flowList:[ flowList:[
@ -117,6 +128,7 @@ export default {
list: { list: {
apiObj: this.$API.orders.order.maintenance.list, apiObj: this.$API.orders.order.maintenance.list,
column: [], column: [],
fields:{}
}, },
selection: [], selection: [],
exportShow:false, exportShow:false,
@ -170,13 +182,25 @@ export default {
/** /**
* 表格检索开始 * 表格检索开始
* */ * */
columnBack(val){ searchClick(){
this.fieldsShow = true;
},
fieldsSwitch(val){
this.fieldsShow = val;
},
fieldsSearch(params){
this.params = params;
this.upSearch();
},
columnBack(val,fieldsData){
val.forEach(item=>{ val.forEach(item=>{
if(item.prop === "business_status"){ if(item.prop === "business_status"){
item.data = this.setMap.statusList; item.data = this.setMap.statusList;
} }
}) })
this.list.column = val; this.list.column = val;
this.list.fields = fieldsData;
}, },
async filterClick(item) { async filterClick(item) {
let {data, params} = item; let {data, params} = item;

View File

@ -9,7 +9,14 @@
<div class="flowPath"> <div class="flowPath">
<flow :list="flowList"/> <flow :list="flowList"/>
</div> </div>
<div class="searchMain searchMainNoTop"> <div class="fieldsSwitchBox searchConditionItem" v-if="!fieldsShow">
<div class="leftBox"></div>
<div class="rightBox" @click="searchClick">
<el-icon class="icon"><sc-icon-SwitchQuery /></el-icon>
<span class="name">切换查询方式</span>
</div>
</div>
<div class="searchMain searchMainNoTop" v-if="!fieldsShow">
<scTableSearch ref="scSearch" :searchList="list.column" :paramsData="params" :searchShow="searchShow" @fetchSelectData="getSelectData" @changeHeaderData="getHeaderData"></scTableSearch> <scTableSearch ref="scSearch" :searchList="list.column" :paramsData="params" :searchShow="searchShow" @fetchSelectData="getSelectData" @changeHeaderData="getHeaderData"></scTableSearch>
<div class="searchItem searchBtn" v-if="searchHeaderShow"> <div class="searchItem searchBtn" v-if="searchHeaderShow">
@ -18,6 +25,9 @@
<el-button :size="size" type="info" icon="el-icon-RefreshRight" @click="reset">重置</el-button> <el-button :size="size" type="info" icon="el-icon-RefreshRight" @click="reset">重置</el-button>
</div> </div>
</div> </div>
<div class="searchMain searchMainMarginNone searchMainNoTop" v-if="fieldsShow">
<herderMultipleSearch @fieldsSwitch="fieldsSwitch" @fieldsSearch="fieldsSearch" :fieldsShow="fieldsShow" :searchList="list.fields"></herderMultipleSearch>
</div>
<scTable ref="table" :apiObj="list.apiObj" :column="list.column" :params="params" row-key="id" stripe border :size="size" @selection-change="selectionChange" @columnBack="columnBack"> <scTable ref="table" :apiObj="list.apiObj" :column="list.column" :params="params" row-key="id" stripe border :size="size" @selection-change="selectionChange" @columnBack="columnBack">
<el-table-column type="selection" align="center" width="40"></el-table-column> <el-table-column type="selection" align="center" width="40"></el-table-column>
<template #repair_date="scope">{{scope.row.repair_order && scope.row.repair_order.repair_date?scope.row.repair_order.repair_date:''}}</template> <template #repair_date="scope">{{scope.row.repair_order && scope.row.repair_order.repair_date?scope.row.repair_order.repair_date:''}}</template>
@ -69,6 +79,7 @@ export default {
}, },
data() { data() {
return { return {
fieldsShow:false,
size:'small', size:'small',
flowList:[ flowList:[
{name:'确认工单',left:false,right:true}, {name:'确认工单',left:false,right:true},
@ -84,6 +95,7 @@ export default {
list: { list: {
apiObj: this.$API.orders.order.plan.list, apiObj: this.$API.orders.order.plan.list,
column: [], column: [],
fields:{}
}, },
selection: [], selection: [],
exportShow:false, exportShow:false,
@ -133,13 +145,25 @@ export default {
} }
}, },
/** 检索开始 */ /** 检索开始 */
columnBack(val){ searchClick(){
this.fieldsShow = true;
},
fieldsSwitch(val){
this.fieldsShow = val;
},
fieldsSearch(params){
this.params = params;
this.upSearch();
},
columnBack(val,fieldsData){
val.forEach(item=>{ val.forEach(item=>{
if(item.prop === "business_status"){ if(item.prop === "business_status"){
item.data = this.setMap.statusList; item.data = this.setMap.statusList;
} }
}) })
this.list.column = val; this.list.column = val;
this.list.fields = fieldsData;
}, },
async filterClick(item) { async filterClick(item) {
let {data, params} = item; let {data, params} = item;

View File

@ -20,7 +20,14 @@
<div class="flowPath"> <div class="flowPath">
<flow :list="flowList"/> <flow :list="flowList"/>
</div> </div>
<div class="searchMain searchMainNoTop"> <div class="fieldsSwitchBox searchConditionItem" v-if="!fieldsShow">
<div class="leftBox"></div>
<div class="rightBox" @click="searchClick">
<el-icon class="icon"><sc-icon-SwitchQuery /></el-icon>
<span class="name">切换查询方式</span>
</div>
</div>
<div class="searchMain searchMainNoTop" v-if="!fieldsShow">
<scTableSearch ref="scSearch" :searchList="list.column" :paramsData="params" :searchShow="searchShow" @fetchSelectData="getSelectData" @changeHeaderData="getHeaderData"></scTableSearch> <scTableSearch ref="scSearch" :searchList="list.column" :paramsData="params" :searchShow="searchShow" @fetchSelectData="getSelectData" @changeHeaderData="getHeaderData"></scTableSearch>
<div class="searchItem searchBtn" v-if="searchHeaderShow"> <div class="searchItem searchBtn" v-if="searchHeaderShow">
@ -29,6 +36,9 @@
<el-button :size="size" type="info" icon="el-icon-RefreshRight" @click="reset">重置</el-button> <el-button :size="size" type="info" icon="el-icon-RefreshRight" @click="reset">重置</el-button>
</div> </div>
</div> </div>
<div class="searchMain searchMainMarginNone searchMainNoTop" v-if="fieldsShow">
<herderMultipleSearch @fieldsSwitch="fieldsSwitch" @fieldsSearch="fieldsSearch" :fieldsShow="fieldsShow" :searchList="list.fields"></herderMultipleSearch>
</div>
<scTable ref="table" :apiObj="list.apiObj" :column="list.column" :params="params" row-key="id" stripe border :size="size" :hideTotal="false" @selection-change="selectionChange" @columnBack="columnBack"> <scTable ref="table" :apiObj="list.apiObj" :column="list.column" :params="params" row-key="id" stripe border :size="size" :hideTotal="false" @selection-change="selectionChange" @columnBack="columnBack">
<el-table-column type="selection" align="center" width="40"></el-table-column> <el-table-column type="selection" align="center" width="40"></el-table-column>
<template #repair_status="scope"> <template #repair_status="scope">
@ -76,6 +86,7 @@ export default {
}, },
data() { data() {
return { return {
fieldsShow:false,
size:'small', size:'small',
httpDisabled:false, httpDisabled:false,
flowList:[ flowList:[
@ -93,6 +104,7 @@ export default {
list: { list: {
apiObj: this.$API.orders.order.repair.list, apiObj: this.$API.orders.order.repair.list,
column: [], column: [],
fields:{}
}, },
selection: [], selection: [],
exportShow:false, exportShow:false,
@ -159,12 +171,24 @@ export default {
/** /**
* 表格检索开始 * 表格检索开始
* */ * */
columnBack(val){ searchClick(){
this.fieldsShow = true;
},
fieldsSwitch(val){
this.fieldsShow = val;
},
fieldsSearch(params){
this.params = params;
this.upSearch();
},
columnBack(val, fieldsData){
val.forEach(item=>{ val.forEach(item=>{
if(item.prop === "repair_status"){ if(item.prop === "repair_status"){
item.data = this.setMap.statusList; item.data = this.setMap.statusList;
} }
}) })
this.list.fields = fieldsData;
this.list.column = val; this.list.column = val;
}, },
async filterClick(item) { async filterClick(item) {

View File

@ -12,7 +12,14 @@
<div class="flowPath"> <div class="flowPath">
<flow :list="flowList"/> <flow :list="flowList"/>
</div> </div>
<div class="searchMain searchMainNoTop"> <div class="fieldsSwitchBox searchConditionItem" v-if="!fieldsShow">
<div class="leftBox"></div>
<div class="rightBox" @click="searchClick">
<el-icon class="icon"><sc-icon-SwitchQuery /></el-icon>
<span class="name">切换查询方式</span>
</div>
</div>
<div class="searchMain searchMainNoTop" v-if="!fieldsShow">
<scTableSearch ref="scSearch" :searchList="list.column" :paramsData="params" :searchShow="searchShow" @fetchSelectData="getSelectData" @changeHeaderData="getHeaderData"></scTableSearch> <scTableSearch ref="scSearch" :searchList="list.column" :paramsData="params" :searchShow="searchShow" @fetchSelectData="getSelectData" @changeHeaderData="getHeaderData"></scTableSearch>
<div class="searchItem searchBtn" v-if="searchHeaderShow"> <div class="searchItem searchBtn" v-if="searchHeaderShow">
@ -21,6 +28,9 @@
<el-button :size="size" type="info" icon="el-icon-RefreshRight" @click="reset">重置</el-button> <el-button :size="size" type="info" icon="el-icon-RefreshRight" @click="reset">重置</el-button>
</div> </div>
</div> </div>
<div class="searchMain searchMainMarginNone searchMainNoTop" v-if="fieldsShow">
<herderMultipleSearch @fieldsSwitch="fieldsSwitch" @fieldsSearch="fieldsSearch" :fieldsShow="fieldsShow" :searchList="list.fields"></herderMultipleSearch>
</div>
<scTable ref="table" :apiObj="list.apiObj" :column="list.column" :params="params" row-key="id" stripe border :size="size" @selection-change="selectionChange" @columnBack="columnBack"> <scTable ref="table" :apiObj="list.apiObj" :column="list.column" :params="params" row-key="id" stripe border :size="size" @selection-change="selectionChange" @columnBack="columnBack">
<!-- <el-table-column type="selection" align="center" width="40"></el-table-column>--> <!-- <el-table-column type="selection" align="center" width="40"></el-table-column>-->
<template #repair_status="scope"> <template #repair_status="scope">
@ -60,6 +70,7 @@ export default {
}, },
data() { data() {
return { return {
fieldsShow:false,
size:'small', size:'small',
flowList:[ flowList:[
{name:'维修确认',left:false,right:true}, {name:'维修确认',left:false,right:true},
@ -76,6 +87,7 @@ export default {
list: { list: {
apiObj: this.$API.orders.order.repair.list, apiObj: this.$API.orders.order.repair.list,
column: [], column: [],
fields:{}
}, },
selection: [], selection: [],
exportShow:false, exportShow:false,
@ -142,12 +154,24 @@ export default {
/** /**
* 表格检索开始 * 表格检索开始
* */ * */
columnBack(val){ searchClick(){
this.fieldsShow = true;
},
fieldsSwitch(val){
this.fieldsShow = val;
},
fieldsSearch(params){
this.params = params;
this.upSearch();
},
columnBack(val, fieldsData){
val.forEach(item=>{ val.forEach(item=>{
if(item.prop === "repair_status"){ if(item.prop === "repair_status"){
item.data = this.setMap.statusList; item.data = this.setMap.statusList;
} }
}) })
this.list.fields = fieldsData;
this.list.column = val; this.list.column = val;
}, },
async filterClick(item) { async filterClick(item) {

View File

@ -1,7 +1,14 @@
<template> <template>
<el-container class="mainBox mainBoxHeaderNoBorder"> <el-container class="mainBox mainBoxHeaderNoBorder">
<el-main class="nopadding"> <el-main class="nopadding">
<div class="searchMain"> <div class="fieldsSwitchBox searchConditionItem" style="margin-top: 10px" v-if="!fieldsShow">
<div class="leftBox"></div>
<div class="rightBox" @click="searchClick">
<el-icon class="icon"><sc-icon-SwitchQuery /></el-icon>
<span class="name">切换查询方式</span>
</div>
</div>
<div class="searchMain searchMainMarginNone" v-if="!fieldsShow">
<scTableSearch ref="scSearch" :searchList="list.column" :paramsData="params" :searchShow="searchShow" @fetchSelectData="getSelectData" @changeHeaderData="getHeaderData"></scTableSearch> <scTableSearch ref="scSearch" :searchList="list.column" :paramsData="params" :searchShow="searchShow" @fetchSelectData="getSelectData" @changeHeaderData="getHeaderData"></scTableSearch>
<div class="searchItem searchBtn" v-if="searchHeaderShow"> <div class="searchItem searchBtn" v-if="searchHeaderShow">
@ -25,6 +32,9 @@
</scExport> </scExport>
</div> </div>
</div> </div>
<div class="searchMain searchMainMarginNone searchMainBodyMarginNone searchMainNoTop" v-if="fieldsShow">
<herderMultipleSearch @fieldsSwitch="fieldsSwitch" @fieldsSearch="fieldsSearch" :fieldsShow="fieldsShow" :searchList="list.fields"></herderMultipleSearch>
</div>
<scTable ref="table" :apiObj="list.apiObj" :column="list.column" row-key="id" stripe border :size="size" @selection-change="selectionChange" @columnBack="columnBack"> <scTable ref="table" :apiObj="list.apiObj" :column="list.column" row-key="id" stripe border :size="size" @selection-change="selectionChange" @columnBack="columnBack">
<el-table-column type="selection" align="center" width="40"></el-table-column> <el-table-column type="selection" align="center" width="40"></el-table-column>
<template #logo="scope"> <template #logo="scope">
@ -53,6 +63,7 @@ export default {
}, },
data() { data() {
return { return {
fieldsShow:false,
size:'small', size:'small',
httpDisabled:false, httpDisabled:false,
dialog: { dialog: {
@ -62,6 +73,7 @@ export default {
list: { list: {
apiObj: this.$API.shipment.out.stockImport, apiObj: this.$API.shipment.out.stockImport,
column: [], column: [],
fields:{}
}, },
selection: [], selection: [],
exportShow:false, exportShow:false,
@ -100,8 +112,20 @@ export default {
}, },
methods: { methods: {
/** 检索开始 */ /** 检索开始 */
columnBack(val){ searchClick(){
this.fieldsShow = true;
},
fieldsSwitch(val){
this.fieldsShow = val;
},
fieldsSearch(params){
this.params = params;
this.upSearch();
},
columnBack(val, fieldsData){
this.list.column = val; this.list.column = val;
this.list.fields = fieldsData;
}, },
async filterClick(item) { async filterClick(item) {
let {data, params} = item; let {data, params} = item;