成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

react-鼠標(biāo)滑過顯示編輯按鈕點(diǎn)擊顯示輸入框編輯內(nèi)容

MartinHan / 3225人閱讀

摘要:頁面顯示效果點(diǎn)擊編輯顯示效果由于項(xiàng)目頻繁修改相關(guān)信息,并多帶帶提交,為了方便,封裝了一個(gè)簡單的組件組件依賴用到了圖標(biāo)和組件這不用可以省略組件寬高顯示為自適應(yīng)控制父級(jí)大小即可,類型可無限擴(kuò)展輸入框修改組件接收參數(shù)展示內(nèi)容展示字體大小圖標(biāo)顏色輸入

頁面顯示效果

點(diǎn)擊編輯顯示效果

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

/**

輸入框修改組件接收參數(shù):

value: 展示內(nèi)容

fontSize: 展示字體大小

iconColor: 圖標(biāo)顏色

inputWidth: 輸入框?qū)挾?默認(rèn)100px

showSize: 最多顯示的字?jǐn)?shù)

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

required: true為必填

amount: 字?jǐn)?shù)最大限制

name: 為字段名

id: 需要的id

idName: id的字段名

handleDelete(): 刪除回調(diào)

handleOk(): 點(diǎn)擊對(duì)號(hào)回調(diào)

**/

調(diào)用代碼

fontSize="14px"            //顯示字體大小
iconColor="#5f68ea"        //鼠標(biāo)滑過icon圖標(biāo)顏色
inputWidth="400px"         //輸入框?qū)挾?,高度自適應(yīng)
showSize="30"              //可展示字?jǐn)?shù),溢出隱藏,滑過展示全部
amount="30"                //字?jǐn)?shù)限制長度
type="number"              //可輸入類型
handleOk={this.handleOk}   //點(diǎn)擊對(duì)號(hào)回調(diào)
value="17600381667"        //傳入內(nèi)容
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框回顯字段
    }
}
//點(diǎn)擊展示輸入框
handleChangeClick = () => {
  this.setState({
      showInput:true
  })
};
//點(diǎn)擊關(guān)閉輸入框
handleCloseClick = () => {
    this.setState({
        showInput:!this.state.showInput
    })
};
//去空格
trim = (str) => {
    return str.replace(/^(s|u00A0)+/,"").replace(/(s|u00A0)+$/,"");
};
//點(diǎn)擊確定按鈕
handleAffirmClick = () => {

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

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

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

    //判斷字?jǐn)?shù)長度
    if(this.trim(this.state.valueCon).length>this.props.amount){
        message.error(`字?jǐn)?shù)不得超過${this.props.amount}個(gè)字`);
        return false
    }



    //回調(diào)確定方法
    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);

    //關(guān)閉輸入框
    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;

}
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/110187.html

相關(guān)文章

  • react-鼠標(biāo)滑過顯示編輯按鈕點(diǎn)擊顯示輸入編輯內(nèi)容

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

    ymyang 評(píng)論0 收藏0
  • Python Qt GUI設(shè)計(jì):UI界面可視化組件、屬性概述(基礎(chǔ)篇—3)

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

    SexySix 評(píng)論0 收藏0
  • DIV+CSS學(xué)習(xí)筆記總結(jié)篇

    摘要:每個(gè)列表項(xiàng)始于標(biāo)簽。由動(dòng)作屬性定義的這個(gè)文件通常會(huì)對(duì)接收到的輸入數(shù)據(jù)進(jìn)行相關(guān)的處理。標(biāo)簽的屬性應(yīng)當(dāng)與相關(guān)元素的屬性相同。姓名性別姓名性別單元格標(biāo)簽可以定義表格中的一個(gè)單元格,表示一個(gè)單元格。 第一部分 HTML 第一章 職業(yè)規(guī)劃和前景 職業(yè)方向規(guī)劃定位: web前端開發(fā)工程師 web網(wǎng)站架構(gòu)師 自己創(chuàng)業(yè) 轉(zhuǎn)崗管理或其他 web前端開發(fā)的前景展望: 未來IT行業(yè)企業(yè)需求...

    iOS122 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

MartinHan

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<