• elementUI公共输入框传值


    elementUI公共输入框传值

     公共组件:

    <template>
      <div class="bigDiv">
        <Layout>
          <Header>
            <!-- 搜索框 -->
            <div class="headerCon">
              <div class="left_Div">
                <span
                  v-for="(item, index) in formInline.formInlineList"
                  :key="index"
                >
                  <b>{{ item.label }}</b>
                  <Input
                    search
                    class="headerInput"
                    v-model.trim="item.formInlineVal"
                    :placeholder="item.placeHolder"
                    @input="handlChange()"
                  />
                </span>
              </div>
              <div class="right_Btn">
                <!--按钮 -->
                <Button
                  v-for="(items, indexs) in formInline.formBtn"
                  :key="indexs"
                  class="search_reset"
                  @click="handel(indexs)"
                  >{{ items.btnLabel }}</Button
                >
              </div>
            </div>
          </Header>
        </Layout>
      </div>
    </template>
    
    <script>
    import "element-ui/lib/theme-chalk/index.css";
    import "iview/dist/styles/iview.css";
    export default {
      components: {},
      watch: {},
      props: {
        labelVal: Object
      },
      data() {
        return {
          formInline: {
            formInlineList: [
              {
                index: 1,
                formInlineVal: "",
                label: this.labelVal.code,
                placeHolder: "请输入场馆编号"
              },
              {
                index: 2,
                formInlineVal: "",
                label: this.labelVal.name,
                placeHolder: "请输入场馆名称"
              },
              {
                index: 3,
                formInlineVal: "",
                label: this.labelVal.address,
                placeHolder: "请输入场馆地址"
              }
            ],
            formBtn: [
              {
                index: 1,
                btnLabel: "重置"
              },
              {
                index: 2,
                btnLabel: "搜索"
              }
            ]
          }
        };
      },
      computed: {},
      methods: {
        //   按钮
        handel(indexs) {
          if (indexs == 0) {
            this.$emit("reset", this.emptyVal());
            this.emptyVal();
          } else if (indexs == 1) {
            this.$emit("search", this.setVal());
          } else {
            return false;
          }
        },
        //     输入框
        handlChange() {
          if (
            this.formInline.formInlineList[0].formInlineVal == "" &&
            this.formInline.formInlineList[1].formInlineVal == "" &&
            this.formInline.formInlineList[2].formInlineVal == ""
          ) {
            this.$emit("InputChange", this.setVal());
          } else {
            return false;
          }
        },
        //     localStorage
        setVal() {
          const Val = {
            codeVal: this.formInline.formInlineList[0].formInlineVal,
            nameVal: this.formInline.formInlineList[1].formInlineVal,
            addressVal: this.formInline.formInlineList[2].formInlineVal
          };
          return Val;
        },
        emptyVal() {
          this.formInline.formInlineList[0].formInlineVal = "";
          this.formInline.formInlineList[1].formInlineVal = "";
          this.formInline.formInlineList[2].formInlineVal = "";
        }
      },
      created() {},
      mounted() {}
    };
    </script>
    <style lang="scss" type="text/css" scoped>
    .bigDiv {
      .ivu-layout-header {
        height: 132px;
        background: #fff;
        padding-top: 44px;
        padding-bottom: 44px;
        .headerCon {
          width: 100%;
          height: 100%;
          line-height: 44px;
          text-align: left;
          display: flex;
          .left_Div {
            float: left;
            height: 100%;
            flex: 1;
            display: flex;
            align-items: center;
            justify-content: space-between;
            span {
              display: block;
              height: 100%;
            }
          }
          .right_Btn {
            width: 220px;
            height: 100%;
            float: right;
            .search_reset {
              height: 100%;
              margin-top: -6px;
              width: 97px;
            }
            .search_reset:nth-child(1) {
              margin-right: 24px;
            }
            .search_reset:nth-child(2) {
              background: #688ef7;
              color: #fff;
            }
          }
          b {
            font-size: 15px;
            font-family: "PingFangSC";
            font-weight: 500;
            color: rgba(85, 85, 85, 1);
            margin-right: 28px;
          }
          /* 输入框 */
          .ivu-input-wrapper/deep/ {
            height: 111%;
            width: 270px;
            margin-right: 28px;
            .ivu-input {
              height: 90%;
            }
            .ivu-input-icon {
              line-height: 46px;
              font-size: 20px;
            }
          }
        }
      }
    }
    </style>

    父组件:

    结构:
    <HeaderSearch
          :labelVal="labelVal"
          @reset="resetA"
          @InputChange="InputChange"
          @search="search"
    ></HeaderSearch>
    
    js:
    data中:
    submitVal: {
         code: "",
         name: "",
         address: ""
    }
    
    事件:
    // 模糊搜索
    // 子组件自定义事件
        search(Val) {
          this.byValue(Val);
          this.getList();
        },
        resetA(Val) {
          this.byValueTwo(Val);
          this.getList();
        },
        sey() {
          setTimeout(() => {
            this.getList();
          }, 1);
        },
        InputChange(Val) {
          this.byValue(Val);
          this.getList();
        },
        byValue(Val) {
          this.submitVal.code = Val.codeVal;
          this.submitVal.name = Val.nameVal;
          this.submitVal.address = Val.addressVal;
        },
        byValueTwo(Val) {
          this.submitVal.code = Val;
          this.submitVal.name = Val;
          this.submitVal.address = Val;
        }
    
    
  • 相关阅读:
    2017暑期集训Day 1
    17-06-28模拟赛
    17-06-26模拟赛
    平衡树学习笔记
    指针学习笔记
    17-06-14模拟赛
    17-06-11模拟赛
    17-06-02模拟赛
    17-05-31模拟赛
    培训补坑(day1:最短路&two-sat)
  • 原文地址:https://www.cnblogs.com/home-/p/11818646.html
Copyright © 2020-2023  润新知