当前位置: 首页 > news >正文

东莞官方网站建设网站备案号填写

东莞官方网站建设,网站备案号填写,2022年热点营销案例,厦门本地企业网站建设我是歌谣 放弃很容易 但是坚持一定很酷 微信公众号关注前端小歌谣 获取前端学习知识 1设计需求 封装一个弹框组件 直接调用接口 2技术栈 ant designreact 设计第一步 绘制样式 ModalmaskClosable{false}visible{visible}title{签收协议}onOk{this.handleSignFor}onCancel… 我是歌谣 放弃很容易 但是坚持一定很酷 微信公众号关注前端小歌谣 获取前端学习知识 1设计需求 封装一个弹框组件 直接调用接口 2技术栈 ant designreact 设计第一步 绘制样式 ModalmaskClosable{false}visible{visible}title{签收协议}onOk{this.handleSignFor}onCancel{() this.onOpenOrClose(false)}width{800}destroyOnCloseForm{...formItemLayout}// className{styles}style{{ paddingTop: 0px }}wrapperCol{{ span: 16 }}Form.Item label签收结果{getFieldDecorator(signInResult, {initialValue: ResultQsList.length 0 ?ResultQsList[1].key : ,rules: [{ required: true, message: 请选择签收结果 }],})(Radio.Group{ResultQsList.map((item) {return (Radio value{item.key} key{item.key}{item.value}/Radio);})}/Radio.Group)}/Form.ItemForm.Item label甲方名称{getFieldDecorator(firstPartyName, {rules: [{ required: true, message: 甲方名称不能为空 }],})(Select style{{ width: 100% }}{test.map((item) (Select.Option key{item.key} value{item.key}{item.value}/Select.Option))}/Select)}/Form.ItemForm.Item label乙方名称{getFieldDecorator(secondPartyName, {rules: [{ required: true, message: 乙方名称不能为空 }],})(Select style{{ width: 100% }}{test.map((item) (Select.Option key{item.key} value{item.key}{item.value}/Select.Option))}/Select)}/Form.ItemForm.Item label归档编号{getFieldDecorator(archivedEncode, {initialValue: 1,rules: [{ required: true, message: 请输入归档编号 }],})(InputNumberformatter{(value) HZ ${value}}style{{ width: 100% }}placeholder请输入onChange{this.handleArchivedEncode}/)}/Form.Item{/* 控制验证的规则 */}Form.Item label原因{getFieldDecorator(signInResson,form.getFieldsValue().signStatus QS_TESHU ||form.getFieldsValue().signStatus JS_TESHU? {initialValue: ,rules: [{ required: true, message: 请填写原因 }],}: { rules: [{ message: 请填写原因 }] })(Select style{{ width: 100% }}{ResultYyList.map((item) (Select.Option key{item.key} value{item.key}{item.value}/Select.Option))}/Select)}/Form.ItemForm.Item label备注div{getFieldDecorator(signInRemark, { rules: [{ message: 请填写备注}] })(TextArea allowClear placeholder请填写备注 autoSize{{ minRows: 3}} /)}/div/Form.Item/Form/Modal 这样就渲染了如图所示的样式 设计点二 当正常签收的时候原因为非必填 其他两种情况为必填 形成效果正常签收的时候原因为非必填 其他两种情况为必填 3设计思路 这样就形成了判断 这个时候 后台接口是要传code handleSignFor () {//获取到所有的form表单的值const formData this.props.form.getFieldsValue();console.log(formData, formData);//参数拼接const param {...formData,code: this.state.code,archivedEncode: HZ${formData.archivedEncode},};console.log(param);this.props.dispatch({type: agreement/signIn,payload: param,callback: (res) {if (res.returnCode 0) {message.success(协议签收成功);this.onOpenOrClose(false);this.props.getContractList(); //重新获取数据}},});}; 这段代码 进行接口调用 4设计思路 父子组件调用 SignForModalonRef{(ref) {this.SignForModal ref;}}getContractList{this.getCourseList}/ 签收的时候直接onref调用子组件的方法 //签收handleSignFor (row, isBatch) {this.SignForModal.onOpenOrClose(true, row);}; 所以 封装总代码 import React, { Component } from react; import { connect } from dva; import { Modal, Form, Input, Row, Col, Radio, Button,message, InputNumber, Select } from antd; import { formItemLayout } from /common/config; import { QS_TESHU, JS_TESHU } from ./data.js; // import styles from ./../../index.less; import { CONTRACT_CHECKPASS, CONTRACT_CHECKNOT } from /utils/dictionaryInterface; const { TextArea } Input; //修改数据请求 接口调用请求 Form.create() connect(({ agreement, menu, loading }) ({menu,agreement, })) class SignForModal extends Component {//控制弹窗的开启state { visible: false, code: };componentDidMount() {this.props.onRef this.props.onRef(this);//父组件通过onRef访问子组件的方法这里要写上这句话否则无法访问}//显示或隐藏modalonOpenOrClose (show, row) {this.setState({ visible: show });show this.setState({ code: row.code });};handleArchivedEncode (value) {};//点击确定handleSignFor () {//获取到所有的form表单的值const formData this.props.form.getFieldsValue();console.log(formData, formData);//参数拼接const param {...formData,code: this.state.code,archivedEncode: HZ${formData.archivedEncode},};console.log(param);this.props.dispatch({type: agreement/signIn,payload: param,callback: (res) {if (res.returnCode 0) {message.success(协议签收成功);this.onOpenOrClose(false);this.props.getContractList(); //重新获取数据}},});};render() {const test [{ key: 1, value: 公司 }];const { visible } this.state;const {agreement: { ResultQsList [], ResultYyList [] },// contractList: { contractCollectionStatusList, contractSettlementStatusList, checkStatusList },form,form: { getFieldDecorator },} this.props;return (ModalmaskClosable{false}visible{visible}title{签收协议}onOk{this.handleSignFor}onCancel{() this.onOpenOrClose(false)}width{800}destroyOnCloseForm{...formItemLayout}// className{styles}style{{ paddingTop: 0px }}wrapperCol{{ span: 16 }}Form.Item label签收结果{getFieldDecorator(signInResult, {initialValue: ResultQsList.length 0 ? ResultQsList[1].key : ,rules: [{ required: true, message: 请选择签收结果 }],})(Radio.Group{ResultQsList.map((item) {return (Radio value{item.key} key{item.key}{item.value}/Radio);})}/Radio.Group)}/Form.ItemForm.Item label甲方名称{getFieldDecorator(firstPartyName, {rules: [{ required: true, message: 甲方名称不能为空 }],})(Select style{{ width: 100% }}{test.map((item) (Select.Option key{item.key} value{item.key}{item.value}/Select.Option))}/Select)}/Form.ItemForm.Item label乙方名称{getFieldDecorator(secondPartyName, {rules: [{ required: true, message: 乙方名称不能为空 }],})(Select style{{ width: 100% }}{test.map((item) (Select.Option key{item.key} value{item.key}{item.value}/Select.Option))}/Select)}/Form.ItemForm.Item label归档编号{getFieldDecorator(archivedEncode, {initialValue: 1,rules: [{ required: true, message: 请输入归档编号 }],})(InputNumberformatter{(value) HZ ${value}}style{{ width: 100% }}placeholder请输入onChange{this.handleArchivedEncode}/)}/Form.Item{/* 控制验证的规则 */}Form.Item label原因{getFieldDecorator(signInResson,form.getFieldsValue().signInResult QS_TESHU ||form.getFieldsValue().signInResult JS_TESHU? {initialValue: ,rules: [{ required: true, message: 请填写原因 }],}: { rules: [{ message: 请填写原因 }] })(Select style{{ width: 100% }}{ResultYyList.map((item) (Select.Option key{item.key} value{item.key}{item.value}/Select.Option))}/Select)}/Form.ItemForm.Item label备注div{getFieldDecorator(signInRemark,{ rules: [{ message: 请填写备注 }] })(TextArea allowClear placeholder 请填写备注 autoSize{{ minRows: 3 }} /)}/div/Form.Item/Form/Modal);} }export default SignForModal;我是歌谣 所以总的实现了一个父子传值 子组件给个方法回调给父getContractList 回调用来重新刷新列表 直接onref调用组件的方法进行处理数据 状态判断外部定义一个data.js引入 控制是否必填 接口调用参数直接拼接使用 秒呀
http://www.zqtcl.cn/news/191032/

相关文章:

  • 个人网站建设与实现建立个公司网站
  • 南昌招商网站建设临沂兰山建设局网站
  • 母婴网站建设怎么样可以做网站
  • 二手车 网站开发wordpress 定时 检查
  • 淮南官网济南seo优化外包
  • 沈阳网站建设莫道网络网站建设常用六大布局
  • 网站建设外文版要求网站关键字优化销售
  • 马来西亚做公路投标网站设计网页多少钱
  • 织梦网站多少钱广告多的网站
  • 济南网站建站模板深圳南园网站建设
  • 国家免费技能培训官网白杨seo博客
  • 福州seo网站建设微服务网站
  • 网站宽度 像素长沙电商运营培训
  • 备案上个人网站和企业网站的区别app开发多少钱一个
  • 有限公司网站建设 中企动力佛山培训机构招生方案
  • 扫黄打非网站建设专业的高端网站制作公司
  • 做自媒体发视频用哪些网站江西网站建设哪家好
  • wordpress用户列表南宁百度seo排名优化
  • 做网站时如何写接口文档上海网站设计建设公司
  • 网站小图标怎么制作平面设计素材网站推荐
  • 多元网络兰州网站建设惠州网页建站模板
  • 网站建设中首页模板下载网页制作模板保存
  • 宁夏做网站的江苏网站建设的案例展示
  • 网站功能需求文档如何免费域名注册
  • 推广网站的软件包头移动的网站建设
  • 自己制作音乐的软件免费上海seo怎么优化
  • 学vue可以做pc网站网站站长统计怎么弄
  • 做物流的可以在那些网站找客户大淘客网站建设app
  • 石家庄兼职做网站dedecms做视频网站
  • 优化公司怎么优化网站的网站 意义