소스 검색

添加列表查询slot

lincl 3 년 전
부모
커밋
642ed528e1
1개의 변경된 파일62개의 추가작업 그리고 59개의 파일을 삭제
  1. 62 59
      src/components/TablePage/index.vue

+ 62 - 59
src/components/TablePage/index.vue

@ -5,65 +5,68 @@
			<el-form :inline="true">
				<template v-for="(item, i) in configs.columns">
					<el-form-item :label="item.label" :key="i" v-if="item.isSearch" :class="{'radioGroup-item':item.type=='radioGroup'}">
						<el-input v-if="item.type=='text'" v-model="searchForm[item.id]" :placeholder="item.placeholder||item.label" clearable/>
						<el-date-picker
							:key="i"
							v-else-if="item.type=='daterange'"
							v-model="searchForm[item.id]"
							:start-placeholder="item.label+ '起'"
							:end-placeholder="item.label+ '至'"
							type="daterange"
							align="right"
							unlink-panels
							value-format="yyyy-MM-dd"
							range-separator="至"
							:picker-options="pickerOptions">
						</el-date-picker>
						<el-date-picker
							clearable
							:key="i"
							v-else-if="item.type=='date'"
							v-model="searchForm[item.id]"
							value-format="yyyy-MM-dd"
							type="date"
							:placeholder="item.label">
						</el-date-picker>
						<el-date-picker
							:key="i"
							v-else-if="item.type=='datetimerange'"
							v-model="searchForm[item.id]"
							:start-placeholder="'开始时间'"
							:end-placeholder="'结束时间'"
							type="datetimerange"
							align="right"
							unlink-panels
							value-format="yyyy-MM-dd hh:mm"
							range-separator="至"
							:picker-options="pickerOptions">
						</el-date-picker>
						<el-select 
							v-else-if="item.type=='select'"
							:key="i"
							:placeholder="item.label"
							v-model="searchForm[item.id]"
							:clearable="item.clearable===false? false : true"  >
							<el-option
								v-for="item in item.optionList"
								:key="item.value"
								:label="item.label"
								:value="item.value">
							</el-option>
						</el-select>
						<el-radio-group v-else-if="item.type=='radioGroup'" v-model="searchForm[item.id]">
							<el-radio-button v-for="item in item.optionList" :label="item.value" :key="item.value">{{item.label}}</el-radio-button>
						</el-radio-group>
						<el-cascader
							v-else-if="item.type=='cascader'"
							clearable
							:props="item.cascaderProps || cascaderProps"
							v-model="searchForm[item.id]"
							:options="item.optionList">
						</el-cascader>	
						<slot v-if="$scopedSlots[item.id+'Search']" :name="item.id+'Search'"/>
						<template v-else>
							<el-input v-if="item.type=='text'" v-model="searchForm[item.id]" :placeholder="item.placeholder||item.label" clearable/>
							<el-date-picker
								:key="i"
								v-else-if="item.type=='daterange'"
								v-model="searchForm[item.id]"
								:start-placeholder="item.label+ '起'"
								:end-placeholder="item.label+ '至'"
								type="daterange"
								align="right"
								unlink-panels
								value-format="yyyy-MM-dd"
								range-separator="至"
								:picker-options="pickerOptions">
							</el-date-picker>
							<el-date-picker
								clearable
								:key="i"
								v-else-if="item.type=='date'"
								v-model="searchForm[item.id]"
								value-format="yyyy-MM-dd"
								type="date"
								:placeholder="item.label">
							</el-date-picker>
							<el-date-picker
								:key="i"
								v-else-if="item.type=='datetimerange'"
								v-model="searchForm[item.id]"
								:start-placeholder="'开始时间'"
								:end-placeholder="'结束时间'"
								type="datetimerange"
								align="right"
								unlink-panels
								value-format="yyyy-MM-dd hh:mm"
								range-separator="至"
								:picker-options="pickerOptions">
							</el-date-picker>
							<el-select 
								v-else-if="item.type=='select'"
								:key="i"
								:placeholder="item.label"
								v-model="searchForm[item.id]"
								:clearable="item.clearable===false? false : true"  >
								<el-option
									v-for="item in item.optionList"
									:key="item.value"
									:label="item.label"
									:value="item.value">
								</el-option>
							</el-select>
							<el-radio-group v-else-if="item.type=='radioGroup'" v-model="searchForm[item.id]">
								<el-radio-button v-for="item in item.optionList" :label="item.value" :key="item.value">{{item.label}}</el-radio-button>
							</el-radio-group>
							<el-cascader
								v-else-if="item.type=='cascader'"
								clearable
								:props="item.cascaderProps || cascaderProps"
								v-model="searchForm[item.id]"
								:options="item.optionList">
							</el-cascader>	
						</template>
					</el-form-item>
				</template>
				<el-form-item class="mb22">