7 changed files with 158 additions and 1 deletions
@ -1,4 +1,6 @@ |
|||||||
import WkbTag from './tag'; |
import WkbTag from './tag'; |
||||||
import ListTable from './list-table'; |
import ListTable from './list-table'; |
||||||
|
import SearchRow from './search-row'; |
||||||
|
import ModifyForm from './modify-form'; |
||||||
|
|
||||||
export { WkbTag, ListTable }; |
export { WkbTag, ListTable, SearchRow }; |
||||||
|
@ -0,0 +1,2 @@ |
|||||||
|
import ModifyForm from "./src/modifyForm.vue" |
||||||
|
export default ModifyForm; |
@ -0,0 +1,66 @@ |
|||||||
|
<template> |
||||||
|
<div class="modify-form"> |
||||||
|
<el-form label-position="right" :class="class" :label-width="width ? width + 'px' : ''" :model="param" |
||||||
|
ref="modifyForm" :rules="rules"> |
||||||
|
<slot></slot> |
||||||
|
<el-form-item class="form-btns"> |
||||||
|
<el-button type="info" @click="formConfirm">确定</el-button> |
||||||
|
<el-button type="info" @click="emit('cancel')">取消</el-button> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script lang="ts" setup> |
||||||
|
import { onMounted, ref, watch } from "vue"; |
||||||
|
import { FormInstance } from "element-plus"; |
||||||
|
|
||||||
|
const prop = defineProps({ |
||||||
|
width: { |
||||||
|
type: Number, |
||||||
|
default: 80, |
||||||
|
}, |
||||||
|
param: { |
||||||
|
type: Object, |
||||||
|
default: {}, |
||||||
|
}, |
||||||
|
rules: { |
||||||
|
type: Object, |
||||||
|
default: {}, |
||||||
|
}, |
||||||
|
class: { |
||||||
|
type: String, |
||||||
|
default: '', |
||||||
|
}, |
||||||
|
}); |
||||||
|
const emit = defineEmits(["confirm", "cancel"]); |
||||||
|
const modifyForm = ref<FormInstance>(); |
||||||
|
|
||||||
|
const formConfirm = () => { |
||||||
|
if (!modifyForm.value) return; |
||||||
|
modifyForm.value?.validate((valid, fields) => { |
||||||
|
if (valid) { |
||||||
|
emit("confirm"); |
||||||
|
} |
||||||
|
}); |
||||||
|
}; |
||||||
|
|
||||||
|
const clearValidate = () => { |
||||||
|
modifyForm.value?.clearValidate(); |
||||||
|
} |
||||||
|
|
||||||
|
watch(() => prop.param, () => { |
||||||
|
modifyForm.value?.clearValidate(); |
||||||
|
}); |
||||||
|
|
||||||
|
onMounted(() => { |
||||||
|
}); |
||||||
|
</script> |
||||||
|
<style lang="scss" scoped> |
||||||
|
//@import url(); 引入公共css类 |
||||||
|
.modify-form { |
||||||
|
.el-select { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,2 @@ |
|||||||
|
import SearchRow from "./src/searchRow.vue" |
||||||
|
export default SearchRow; |
@ -0,0 +1,63 @@ |
|||||||
|
<template> |
||||||
|
<div class="search-row"> |
||||||
|
<div class="left"> |
||||||
|
<span class="title" v-if="title">{{ title }}</span> |
||||||
|
<el-button v-if="fresh" type="info" icon="Refresh" @click="emit('query')"> </el-button> |
||||||
|
<el-button v-if="add" type="primary" icon="Plus" @click="emit('add')"> 添加 </el-button> |
||||||
|
<el-button v-if="del" type="danger" icon="Delete" @click="emit('delete')"> 删除 </el-button> |
||||||
|
<slot name="left"></slot> |
||||||
|
</div> |
||||||
|
<div class="query"> |
||||||
|
<slot></slot> |
||||||
|
<el-button v-if="query" type="primary" icon="Search" @click="emit('query')"> 查询 </el-button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script lang="ts" setup> |
||||||
|
import { onMounted, defineProps, defineEmits } from "vue"; |
||||||
|
const prop = defineProps({ |
||||||
|
title: { |
||||||
|
type: String, |
||||||
|
default: null |
||||||
|
}, |
||||||
|
fresh: { |
||||||
|
type: Boolean, |
||||||
|
default: true, |
||||||
|
}, |
||||||
|
add: { |
||||||
|
type: Boolean, |
||||||
|
default: true, |
||||||
|
}, |
||||||
|
del: { |
||||||
|
type: Boolean, |
||||||
|
default: true, |
||||||
|
}, |
||||||
|
query: { |
||||||
|
type: Boolean, |
||||||
|
default: true, |
||||||
|
}, |
||||||
|
}); |
||||||
|
|
||||||
|
const emit = defineEmits(["query", "add", "delete"]); |
||||||
|
|
||||||
|
onMounted(() => { }); |
||||||
|
</script> |
||||||
|
<style lang="scss" scoped> |
||||||
|
//@import url(); 引入公共css类 |
||||||
|
.query { |
||||||
|
text-align: right; |
||||||
|
float: right; |
||||||
|
} |
||||||
|
|
||||||
|
.left { |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
.title { |
||||||
|
font-weight: bold; |
||||||
|
padding-right: 15px; |
||||||
|
font-size: 20px; |
||||||
|
min-width: 20px; |
||||||
|
} |
||||||
|
</style> |
Loading…
Reference in new issue