Browse Source

扩展功能

lincl 4 years ago
parent
commit
281594231a

+ 2 - 2
src/components/Dialog/index.vue

@ -11,8 +11,8 @@
				</el-scrollbar>
				<div v-if="hasFooter" class="dialog-com-dialog-footer pt10 pr10" >
						<div slot="footer" v-if="!$scopedSlots['footer']">
							<el-button @click="$emit('update:visible', false);">{{cancelButtonText}}</el-button>
							<el-button @click="$emit('onSubmit');" type="primary">{{confirmButtonText}}</el-button>
							<el-button v-if="showCancelButton" @click="$emit('update:visible', false);">{{cancelButtonText}}</el-button>
							<el-button v-if="showConfirmButton" @click="$emit('onSubmit');" type="primary">{{confirmButtonText}}</el-button>
						</div>
					<div slot="footer" v-else>
						<slot name="footer"></slot>

+ 32 - 0
src/components/Form/form.vue

@ -48,6 +48,7 @@
							v-model="form[item.id]"
							clearable 
							v-bind="item"
							@change="onSelChange($event, item)"
							>
							<el-option
								v-for="opt in item.optionList"
@ -68,6 +69,18 @@
								v-model="form[item.id]" 
								:label="opt.value">{{opt.label}}</el-radio>
						</template>
						<template v-else-if="item.type=='checkbox'">
							<el-checkbox-group 
								@change="onCheckboxChange($event, item)"
								v-model="form[item.id]">
								 <el-checkbox 
									v-for="opt in item.optionList" 
									:key="opt.value" 
									:label="opt.value">
									{{opt.label}}
								</el-checkbox>
							</el-checkbox-group>
						</template>
						<el-input-number v-else-if="item.type=='inputNumber'" v-model="form[item.id]" :controls-position="item.controlsPosition||''" :placeholder="item.placeholder" :min="item.min||''" :max="item.max"></el-input-number>
					</template>
				</el-form-item>
@ -129,6 +142,25 @@ export default {
				item.optionList = res
			})
		},
		onSelChange(value, item){
			if(item.onChange){
				var exist = _.filter(item.optionList, (v)=>{
					return v.value == value
				})
				item.onChange(exist)
			}
		},
		onCheckboxChange(values, item){
			if(item.onChange){
				var exist = []
				values.forEach(m=>{
					exist = exist.concat(_.filter(item.optionList, (v)=>{
						return v.value == m
					})) 
				})
				item.onChange(exist)
			}
		},
	}
}
</script>

+ 17 - 2
src/components/Form/index.vue

@ -98,11 +98,11 @@ export default {
		this.configs.fields.forEach((v, i) => {
			if(v.groupTitle){
				v.children.forEach((m, n)=>{
					form[m.id] = m.value||m.value===0||m.value===false? m.value : ""
					form[m.id] = m.value||m.value===0||m.value===false? m.value : m.type=='checkbox'? [] :""
					rules[m.id] = this.setRule(m)
				})
			} else {
				form[v.id] = v.value||v.value===0||v.value===false? v.value : ""
				form[v.id] = v.value||v.value===0||v.value===false? v.value :  v.type=='checkbox'? [] :""
				rules[v.id] = this.setRule(v)
			}
		});
@ -182,6 +182,21 @@ export default {
				}
			}
			return false
		},
		setOptions(configs, key, options){
			configs.fields.forEach(v=>{
				if(v.children){
					v.children.forEach(m=>{
						if(m.id == key){
							m.optionList = options
						}
					})
				} else {
					if(v.id == key){
						v.optionList = options
					}
				}
			})
		}
	}
}

+ 11 - 1
src/components/TablePage/index.vue

@ -98,7 +98,7 @@
		</div>
		<!-- 分页 -->
		<div class="bot-pagination">
		<div class="bot-pagination" v-if="configs.pagination!==false">
			<el-pagination
				:current-page="page"
				:page-sizes="[20, 50, 100, 150, 200]"
@ -226,6 +226,16 @@ export default {
		},
		refresh(){
			this.emitLoad()
		},
		setSearchValue(key, value){
			this.searchForm[key] = value
		},
		setOptions(configs, key, options){
			configs.columns.forEach(v=>{
				if(v.id == key){
					v.optionList = options
				}
			})
		}
	}
}