国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

react-鼠標滑過顯示編輯按鈕點擊顯示輸入框編輯內容

ymyang / 3307人閱讀

摘要:頁面顯示效果點擊編輯顯示效果由于項目頻繁修改相關信息,并多帶帶提交,為了方便,封裝了一個簡單的組件組件依賴用到了圖標和組件這不用可以省略組件寬高顯示為自適應控制父級大小即可,類型可無限擴展輸入框修改組件接收參數展示內容展示字體大小圖標顏色輸入

頁面顯示效果

點擊編輯顯示效果

由于項目頻繁修改相關信息,并多帶帶提交,為了方便,封裝了一個簡單的組件組件依賴antd(用到了圖標和Input組件這不用可以省略)組件寬高顯示為自適應控制父級大小即可,類型可無限擴展

/**

輸入框修改組件接收參數:

value: 展示內容

fontSize: 展示字體大小

iconColor: 圖標顏色

inputWidth: 輸入框寬度 默認100px

showSize: 最多顯示的字數

type: (string) number、url、可不傳不做限制

required: true為必填

amount: 字數最大限制

name: 為字段名

id: 需要的id

idName: id的字段名

handleDelete(): 刪除回調

handleOk(): 點擊對號回調

**/

調用代碼

fontSize="14px"            //顯示字體大小
iconColor="#5f68ea"        //鼠標滑過icon圖標顏色
inputWidth="400px"         //輸入框寬度,高度自適應
showSize="30"              //可展示字數,溢出隱藏,滑過展示全部
amount="30"                //字數限制長度
type="number"              //可輸入類型
handleOk={this.handleOk}   //點擊對號回調
value="17600381667"        //傳入內容
name="firmFax"             //地段名

/>

組件代碼

import React from "react";
import {Icon, Input, message, Tooltip} from "antd";

export default class ChangeInput extends React.Component {

constructor(props) {
    super(props);
    this.state = {
        showInput:false,     //輸入框顯示隱藏
        valueCon:"",         //input框回顯字段
    }
}
//點擊展示輸入框
handleChangeClick = () => {
  this.setState({
      showInput:true
  })
};
//點擊關閉輸入框
handleCloseClick = () => {
    this.setState({
        showInput:!this.state.showInput
    })
};
//去空格
trim = (str) => {
    return str.replace(/^(s|u00A0)+/,"").replace(/(s|u00A0)+$/,"");
};
//點擊確定按鈕
handleAffirmClick = () => {

    //判斷不為空
    if(this.props.required&&this.trim(this.state.valueCon)===""||this.props.required&&this.trim(this.state.valueCon)==="-") {
        message.error(`此字段不能為空及特殊字符"-"`);
        return false
    }

    //判斷為數字
    if(this.props.type&&this.props.type==="number"&&isNaN(this.trim(this.state.valueCon))) {
        message.error(`請輸入數字`);
        return false
    }

    //判斷網址
    let reg=/^{2}[w-]+(([w-][w-s]*[w-]+[$$]?$)|([w-][$$]?$))/;
    if(this.props.type&&this.props.type==="url"&&!reg.test(this.props.valueCon)){
        message.error("這網址不是以http://https://開頭,或者不是網址!");
        return false
    }

    //判斷字數長度
    if(this.trim(this.state.valueCon).length>this.props.amount){
        message.error(`字數不得超過${this.props.amount}個字`);
        return false
    }



    //回調確定方法
    let obj = {};
    // obj.value = this.state.valueCon;
    // obj.label = this.props.name;
    obj[ this.props.name] = this.state.valueCon;
    //判斷是否需要id
    if(this.props.idName){
        obj[this.props.idName] = this.props.id;
    }
    this.props.handleOk(obj);

    //關閉輸入框
    this.setState({
        showInput:this.props.isShow
    })
};
//input改變
handleChange = (e) => {
    console.log(e.target.value);
    this.setState({
        valueCon:e.target.value
    })
};
componentDidMount() {
    this.setState({
        valueCon:this.props.value,
    })
}
handleDeleteClick = () =>{
    let obj = {};
    // obj.value = this.state.valueCon;
    // obj.label = this.props.name;
    obj[ this.props.name] = this.state.valueCon;
    //判斷是否需要id
    if(this.props.idName){
        obj[this.props.idName] = this.props.id;
    }
    this.props.handleDelete(obj);
};

render() {
    const {value,fontSize,iconColor,inputWidth,showSize} = this.props;

    console.log(value)

    return (
        
{!this.state.showInput?
{showSize&&value.length>showSize? {value.slice(0,showSize)+"..."} :value } {this.props.handleDelete&& }
:
}
) }

}

css代碼

.change_input{
width: 100%;
//background: slateblue;
height: 100%;
overflow: hidden;
word-break: break-all;
.change_input_name{

//float: left;
.change_input_hide_change{
  margin-left: 5px;
  cursor: pointer;
  display: none;
}

}
&:hover{

.change_input_name{
  .change_input_hide_change{
    display: inline-block;
  }
}

}
}
.write_input{
height: 100%;
overflow: hidden;
.write_input_name{

//height: 98%;
float: left;

}
.write_input_hide{

height: 100%;
float: left;
//background: seagreen;
.write_input_hide_yes{
  margin-left: 5px;
}
.write_input_hide_no{
  margin-left: 5px;
}
//width: 100px;

}
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/114597.html

相關文章

  • react-鼠標滑過顯示編輯按鈕點擊顯示輸入編輯內容

    摘要:頁面顯示效果點擊編輯顯示效果由于項目頻繁修改相關信息,并單獨提交,為了方便,封裝了一個簡單的組件組件依賴用到了圖標和組件這不用可以省略組件寬高顯示為自適應控制父級大小即可,類型可無限擴展輸入框修改組件接收參數展示內容展示字體大小圖標顏色輸入 頁面顯示效果showImg(https://segmentfault.com/img/bVbspoH?w=300&h=222); 點擊編輯顯示效果...

    MartinHan 評論0 收藏0
  • Python Qt GUI設計:UI界面可視化組件、屬性概述(基礎篇—3)

    摘要:屬性配置界面的定義了組件的初始大小,其他屬性都與組件大小調整時控制組件的大小相關。屬性由四個值組成,分別是水平策略垂直策略水平伸展和垂直伸展。屬性缺省值為空字符串。此屬性默認為空。是對屬性的補充說明。 目錄 1、界面組件 1.1、布局組件(Layouts) 1.2、分隔組件(Spacers)...

    SexySix 評論0 收藏0
  • DIV+CSS學習筆記總結篇

    摘要:每個列表項始于標簽。由動作屬性定義的這個文件通常會對接收到的輸入數據進行相關的處理。標簽的屬性應當與相關元素的屬性相同。姓名性別姓名性別單元格標簽可以定義表格中的一個單元格,表示一個單元格。 第一部分 HTML 第一章 職業規劃和前景 職業方向規劃定位: web前端開發工程師 web網站架構師 自己創業 轉崗管理或其他 web前端開發的前景展望: 未來IT行業企業需求...

    iOS122 評論0 收藏0

發表評論

0條評論

ymyang

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<