欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

element-ui直接在表格中點(diǎn)擊單元格編輯

 更新時(shí)間:2021年12月07日 09:59:19   作者:阿雷前進(jìn)中...  
最近通過(guò)在網(wǎng)上查找資料,自己整合研究了一個(gè)可以直接在表格中操作數(shù)據(jù)的基于element-ui的前端模板。可以讓增改數(shù)據(jù)的操作顯得方便一點(diǎn),感興趣的可以了解一下

最近由于公司開(kāi)始使用elementUI,開(kāi)發(fā)的過(guò)程中需要用到對(duì)表格的單元格進(jìn)行編輯,下面是我自己實(shí)現(xiàn)表格可編輯的方式,感興趣的可以了解一下

實(shí)現(xiàn)效果

在這里插入圖片描述

編輯之后對(duì)應(yīng)表格數(shù)據(jù)該字段值也就發(fā)生了變化,控制臺(tái)輸出所有數(shù)據(jù)即可查看變化

實(shí)現(xiàn)代碼

1、自定義編輯組件

<template>
  <div class="editCell">
    <div class="canEdit" v-if="CanEdit" @click="beginEdit">
      <label v-show="!editStatus">
        <span v-if="this.value!== null && this.value !== undefined && this.value !== ''">{{ value }}{{this.suffix}}</span>
        <span v-else style="padding-left: 100%;padding-top: 100%;"/>
      </label>
      <label v-show="editStatus">
        <input
          type="text"
          class="inputClass"
          ref="input"
          v-on:keyup.13="loseFocus"
          :value="value"
          @blur="loseFocus"
        />
      </label>
    </div>

    <label class="cannotEdit" v-else>
      <span>{{ value }}{{ suffix }}</span>
    </label>
  </div>
</template>

<script>
export default {
  name: "EditCell",
  props: {
    /**
     * 綁定值
     */
    value: {
      required: true
    },
    /**
     * 是否可編輯
     */
    CanEdit: {
      type: Boolean,
      default: true
    },
    /**
     * 格式化函數(shù)
     */
    formatData: {
      type: Function,
      default: value => {
        return value;
      }
    },
    /**
     * 編輯后事件
     */
    afterEdit: {
      type: Function,
      default: () => {}
    },
    /**
     * 是否初始格式化
     */
    initFormat: {
      type: Boolean,
      default: false
    },
    suffix: {
      default: ""
    }
  },
  data() {
    return {
      editStatus: false,
      showData: "",
      defaultData: "",
      timeout: null
    };
  },
  methods: {
    /**
     * 單擊開(kāi)始編輯
     */
    beginEdit() {
      this.editStatus = true;
      setTimeout(() => {
        this.$refs.input.focus();
      }, 1);
    },

    /**
     * @param {event} event
     * 丟失焦點(diǎn)關(guān)閉編輯狀態(tài),并保存數(shù)據(jù)
     */
    loseFocus(event) {
      let value = this.formatData(event.target.value);
      this.editData(value);
      this.closeEditStatus(value);
      this.afterEdit(value);
    },

    /**
     * 發(fā)布input事件修改數(shù)據(jù)
     * @param value
     */
    editData(value) {
      this.$emit("input", value);
    },

    /**
     * 關(guān)閉編輯狀態(tài)
     * @param value
     */
    closeEditStatus(value) {
      this.editStatus = false;
    },
    /**
     * 初始格式化數(shù)據(jù)
     */
    initData() {
      let newValue = this.formatData(this.value);
      this.$emit("input", newValue);
    }
  },
  mounted() {
    if (this.initFormat) {
      this.initData();
    }
  },
  watch: {
    'value': function(newVal){
      this.$emit("input", this.formatData(newVal));
    }
  }
};
</script>

<style scoped>
.editCell {
  height: 100%;
  width: 100%;
}
.inputClass {
  height: 30px;
  width: 100%;
  background-color: #fff;
  border-radius: 4px;
  border: 1px solid #dcdfe6;
  color: #606266;
  display: inline-block;
  font-size: inherit;
  line-height: 30px;
  outline: 0;
  padding: 0 15px;
  transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
  overflow: visible;
  touch-action: manipulation;
  margin: 0;
}
</style>

頁(yè)面調(diào)用

import EditCell from "@/components/EditCell/EditCell";
components: { EditCell},

 <el-table-column
    v-for="item in tableColumn"
      :prop="item.dataIndex"
      :label="item.title"
      :width="item.width"
      :align="item.align"
      :key="item.id"
      :fixed="item.fixed"
  >
  	  //此處調(diào)用自定義組件(dataIndex 為表頭數(shù)據(jù)中字段,相當(dāng)于 展示表頭 老師對(duì)應(yīng)的 teacher名稱)
      <template slot-scope="scope">
          <span v-if="item.dataIndex !== 'batchInvest' && item.dataIndex !== 'remark'">{{scope.row[item.dataIndex]}}</span>
          // 若需要格式化數(shù)據(jù) 可設(shè)置 :format-data="formatFun" formatFun此方法在當(dāng)前頁(yè)methods中定義即可
          <edit-cell v-else v-model="scope.row[item.dataIndex]" :can-edit="true"/>
      </template>
      <el-table-column
          v-for="item2 in item.children"
          :prop="item2.dataIndex"
          :label="item2.title"
          :width="item2.width"
          :align="item2.align"
          :key="item2.id"
          :fixed="item2.fixed"
      >
      </el-table-column>
  </el-table-column>

到此這篇關(guān)于element-ui直接在表格中點(diǎn)擊單元格編輯的文章就介紹到這了,更多相關(guān)element 單元格編輯內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue快速入門基礎(chǔ)知識(shí)教程

    vue快速入門基礎(chǔ)知識(shí)教程

    VUE是一套前端框架,免除了原生JavaScript中的DOM操作,簡(jiǎn)化書(shū)寫(xiě)。VUE基于MVVM(Model-View_ViewModel)思想,實(shí)現(xiàn)數(shù)據(jù)雙向綁定。Vue的核心庫(kù)只關(guān)注圖層.響應(yīng)式數(shù)據(jù)綁定和組件化開(kāi)發(fā)是其兩大特點(diǎn)。
    2023-01-01
  • Vue實(shí)現(xiàn)上拉加載下一頁(yè)效果的示例代碼

    Vue實(shí)現(xiàn)上拉加載下一頁(yè)效果的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Vue實(shí)現(xiàn)上拉加載下一頁(yè)效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Vue有一定幫助,需要的可以參考一下
    2022-08-08
  • 詳細(xì)聊聊Vue.js中的MVVM

    詳細(xì)聊聊Vue.js中的MVVM

    MVVM旨在利用WPF中的數(shù)據(jù)綁定函數(shù),通過(guò)從視圖層中幾乎刪除所有GUI代碼(代碼隱藏),更好地促進(jìn)視圖層開(kāi)發(fā)與模式其余部分的分離,這篇文章主要給大家介紹了關(guān)于Vue.js中MVVM的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • vue如何查找數(shù)組中符合條件的對(duì)象

    vue如何查找數(shù)組中符合條件的對(duì)象

    這篇文章主要介紹了vue如何查找數(shù)組中符合條件的對(duì)象,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 詳解vue.js移動(dòng)端配置flexible.js及注意事項(xiàng)

    詳解vue.js移動(dòng)端配置flexible.js及注意事項(xiàng)

    最近在用vue做移動(dòng)端項(xiàng)目,網(wǎng)上找了一些移動(dòng)端適配的方案,個(gè)人覺(jué)得手淘團(tuán)隊(duì)flexible.js還是比較容易上手,在這里做下總結(jié)。對(duì)vue.js移動(dòng)端配置flexible.js 相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧
    2019-04-04
  • 全面詳解vue種數(shù)組去重的12種方法示例

    全面詳解vue種數(shù)組去重的12種方法示例

    這篇文章主要介紹了vue數(shù)組去重的12種方法示例全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 解決vue偵聽(tīng)器watch,調(diào)用this時(shí)出現(xiàn)undefined的問(wèn)題

    解決vue偵聽(tīng)器watch,調(diào)用this時(shí)出現(xiàn)undefined的問(wèn)題

    這篇文章主要介紹了解決vue偵聽(tīng)器watch,調(diào)用this時(shí)出現(xiàn)undefined的問(wèn)題,具有很好的參考
    2020-10-10
  • Vue設(shè)置別名聯(lián)想路徑即@/生效的方法

    Vue設(shè)置別名聯(lián)想路徑即@/生效的方法

    這篇文章主要給大家介紹了Vue設(shè)置別名聯(lián)想路徑即@/生效的方法,文中有詳細(xì)的代碼示例和圖文講解,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-11-11
  • 淺析在Vue中watch使用的必要性及其優(yōu)化

    淺析在Vue中watch使用的必要性及其優(yōu)化

    這篇文章主要來(lái)和大家深入討論一下在Vue開(kāi)發(fā)中是否有必要一定用watch,如果換成watcheffect會(huì)如何,文中的示例代碼講解詳細(xì),需要的可以參考下
    2023-12-12
  • vue獲取驗(yàn)證碼倒計(jì)時(shí)組件

    vue獲取驗(yàn)證碼倒計(jì)時(shí)組件

    這篇文章主要為大家詳細(xì)介紹了vue獲取驗(yàn)證碼倒計(jì)時(shí)組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評(píng)論