Bladeren bron

修改组件

ymy 2 jaren geleden
bovenliggende
commit
0ad3d4b6fc

+ 6 - 0
src/benyun/components/byDatePicker/byDatePicker.vue

@@ -42,6 +42,9 @@ export default class ByDatePicker extends Vue {
   @Prop()
   propConfig: any
 
+  @Prop()
+  propValue:any
+
   get attrs(){
     return this.config?.attr ? this.config.attr : {};
   }
@@ -50,6 +53,9 @@ export default class ByDatePicker extends Vue {
     if(this.propConfig){
       this.setConfig(this.propConfig)
     }
+    if(this.propValue){
+      this.setValue(this.propConfig)
+    }
   }
   mounted(){
     

+ 2 - 4
src/benyun/components/byForm/byForm.vue

@@ -42,7 +42,7 @@
   基础配置
   config:{
     attr:{
-      size:medium / small / mini, //尺寸
+      size:medium / small / mini, //表单域下组件的尺寸,
       height:'',  //高度
       labelPosition: right/left/top //标签位置
       labelWidth:  '' //标签的宽度
@@ -112,7 +112,6 @@ export default class ByForm extends Vue {
     if(this.propConfig){
       this.setConfig(this.propConfig)
     }
-    console.log('表单配置:',this.config)
   }
   mounted(){}
 
@@ -137,7 +136,6 @@ export default class ByForm extends Vue {
     }else{
       this.value = {};
     }
-    console.log('')
   }
 
   //获取数据
@@ -206,6 +204,6 @@ export default class ByForm extends Vue {
 
 <style lang="scss">
 .by-form-item{
-  margin-bottom: 10px;
+  margin-bottom: 10px !important;
 }
 </style>

+ 6 - 0
src/benyun/components/byInput/byInput.vue

@@ -28,6 +28,9 @@ export default class ByInput extends Vue {
   @Prop()
   propConfig: any
 
+  @Prop()
+  propValue:any
+
   get attrs(){
     return this.config?.attr ? this.config.attr : {};
   }
@@ -36,6 +39,9 @@ export default class ByInput extends Vue {
     if(this.propConfig){
       this.setConfig(this.propConfig)
     }
+    if(this.propValue){
+      this.setValue(this.propConfig)
+    }
   }
   mounted(){
     

+ 6 - 0
src/benyun/components/bySelect/bySelect.vue

@@ -43,6 +43,9 @@ export default class BySelect extends Vue {
   @Prop()
   propConfig: any
 
+  @Prop()
+  propValue:any
+
   get attrs(){
     return this.config?.attr ? this.config.attr : {};
   }
@@ -71,6 +74,9 @@ export default class BySelect extends Vue {
     if(this.propConfig){
       this.setConfig(this.propConfig)
     }
+    if(this.propValue){
+      this.setValue(this.propConfig)
+    }
   }
 
   mounted(){

+ 14 - 1
src/benyun/components/byTool/byTool.vue

@@ -15,11 +15,15 @@ export default class GmTools extends Vue {
   @Prop()
   propConfig:any
 
+  @Prop()
+  customTools:any;
+
   tools:Array<any>=[
     { name: '新增', icon: 'el-icon-plus', clickName: 'onAdd', _class: 'onAdd' },
     { name: '修改', icon: 'el-icon-edit', clickName: 'onUpdate', _class: 'onUpdate' },
     { name: '删除', icon: 'el-icon-delete', clickName: 'onDelete', _class: 'onDelete' },
-    { name: '导出', icon: 'el-icon-download', clickName: 'onExport', _class: 'onExport' }
+    { name: '导出', icon: 'el-icon-download', clickName: 'onExport', _class: 'onExport' },
+    { name: '刷新', icon: 'el-icon-refresh', clickName: 'onRefresh', _class: 'onRefresh' }
   ]
   showTools:Array<any>=[]
 
@@ -27,6 +31,9 @@ export default class GmTools extends Vue {
     if(this.propConfig?.tools){
       this.setTool(this.propConfig?.tools)
     }
+    if(this.customTools && this.customTools.length > 0){
+      this.setCustomTools(this.customTools)
+    }
   }
 
   setTool(data:any){
@@ -38,6 +45,12 @@ export default class GmTools extends Vue {
     }
   }
 
+  setCustomTools(tools:Array<any>){
+    for(const item of tools){
+      this.showTools.push(item)
+    }
+  }
+
   clickBtn(item:any){
     if(item?.event?.click){
       item.event.click()

+ 3 - 0
src/views/demo/a.vue

@@ -0,0 +1,3 @@
+<template>
+  <div>组件测试</div>
+</template>

+ 18 - 5
src/views/demo/form.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="form" >
-    <by-tool :propConfig="toolConfig" @onAdd="onAdd" />
+    <by-tool :propConfig="toolConfig" @onAdd="onAdd" :customTools="customTools" />
     <by-form :propConfig="config" ref="form" />
     <el-button type="primary" @click="getFormData">获取数据</el-button>
     <el-button type="primary" @click="getFormVali">获取表单验证</el-button>
@@ -9,6 +9,7 @@
 
 <script lang="ts">
 import { Component, Prop, Vue, Watch } from "vue-property-decorator";
+import a from './a.vue'
 @Component
 export default class DemoForm extends Vue {
   config={
@@ -26,8 +27,6 @@ export default class DemoForm extends Vue {
         span:6,
         label:'名称',
         prop:'name',
-        // required:true,
-        // error:'验证出错啦!',
         component:'by-input',
         compConfig:{
           attr:{
@@ -39,7 +38,6 @@ export default class DemoForm extends Vue {
         span:6,
         label:'名称2',
         prop:'name2',
-        // required:true,
         component:'by-input',
         compConfig:{
           attr:{
@@ -47,6 +45,11 @@ export default class DemoForm extends Vue {
             clearable:true
           }
         }
+      },{
+        label:'测试',
+        prop:'name3',
+        // required:true,
+        component:a
       }],
       [{
         span:6,
@@ -99,9 +102,19 @@ export default class DemoForm extends Vue {
       onAdd:true,
       onUpdate:true,
       onDelete:true,
-      onExport:true
+      onExport:true,
+      onRefresh:true
     }
   }
+  customTools:Array<any>=[
+    {
+      name: '新增123', icon: 'el-icon-plus', event:{
+        click:()=>{
+          console.log('新增123')
+        }
+      }
+    }
+  ]
   onAdd(){
     console.log('点击新增')
   }