中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

element-ui如何直接在表格中點擊單元格編輯

發布時間:2021-12-07 11:30:51 來源:億速云 閱讀:839 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“element-ui如何直接在表格中點擊單元格編輯”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“element-ui如何直接在表格中點擊單元格編輯”這篇文章吧。

實現效果

element-ui如何直接在表格中點擊單元格編輯

編輯之后對應表格數據該字段值也就發生了變化,控制臺輸出所有數據即可查看變化

實現代碼

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 />
      </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
    },
    /**
     * 格式化函數
     */
    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: {
    /**
     * 單擊開始編輯
     */
    beginEdit() {
      this.editStatus = true;
      setTimeout(() => {
        this.$refs.input.focus();
      }, 1);
    },

    /**
     * @param {event} event
     * 丟失焦點關閉編輯狀態,并保存數據
     */
    loseFocus(event) {
      let value = this.formatData(event.target.value);
      this.editData(value);
      this.closeEditStatus(value);
      this.afterEdit(value);
    },

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

    /**
     * 關閉編輯狀態
     * @param value
     */
    closeEditStatus(value) {
      this.editStatus = false;
    },
    /**
     * 初始格式化數據
     */
    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>

頁面調用

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"
  >
  	  //此處調用自定義組件(dataIndex 為表頭數據中字段,相當于 展示表頭 老師對應的 teacher名稱)
      <template slot-scope="scope">
          <span v-if="item.dataIndex !== 'batchInvest' && item.dataIndex !== 'remark'">{{scope.row[item.dataIndex]}}</span>
          // 若需要格式化數據 可設置 :format-data="formatFun" formatFun此方法在當前頁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>

以上是“element-ui如何直接在表格中點擊單元格編輯”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

图木舒克市| 开江县| 新河县| 荣昌县| 安化县| 三门峡市| 如东县| 罗源县| 南和县| 龙陵县| 大埔县| 鄂伦春自治旗| 兰西县| 金阳县| 万载县| 酒泉市| 黄山市| 阿图什市| 虹口区| 广水市| 涡阳县| 电白县| 陆丰市| 来凤县| 堆龙德庆县| 石景山区| 满城县| 元江| 辽源市| 包头市| 西城区| 镇江市| 涞水县| 开鲁县| 台东县| 武定县| 遵义县| 尼玛县| 萍乡市| 疏勒县| 孙吴县|