Browse Source

是否类型调整

RaoMeng 4 years ago
parent
commit
64b94b1797

+ 270 - 265
uas-office-web/uas-mobile/src/pages/private/approval/components/tableItem/TableItem.jsx

@@ -1,265 +1,270 @@
-import React, { Component } from 'react'
-import './tableItem.css'
-import { Input, Modal } from 'semantic-ui-react'
-import { DatePicker, Radio } from 'antd'
-import locale from 'antd/lib/date-picker/locale/zh_CN'
-import { isObjEmpty, numFormat, strContain } from '../../../../../utils/common/common.util'
-import ApprovalBean from '../../model/ApprovalBean'
-import moment from 'moment'
-
-const RadioGroup = Radio.Group
-
-export default class TableItem extends Component {
-
-  componentDidMount () {
-    let { mApproval } = this.state
-
-    this.setState({
-      mApproval: this.props.approval,
-      approvalAble: this.props.approvalAble,
-    })
-    let options = []
-    let datas = mApproval.datas
-    if (!isObjEmpty(datas)) {
-      for (let i = 0; i < datas.length; i++) {
-        options.push(datas[i].display)
-      }
-    }
-    this.setState({
-      selectList: options,
-      inputValue: mApproval.values,
-    })
-    let values = mApproval.values
-    if (values == ApprovalBean.VALUES_YES
-      || values == '0') {
-      this.setState({
-        radioValue: 1,
-      })
-    } else if (values == ApprovalBean.VALUES_NO) {
-      this.setState({
-        radioValue: 2,
-      })
-    }
-  }
-
-  componentWillReceiveProps () {
-    this.componentDidMount()
-  }
-
-  constructor () {
-    super()
-
-    this.state = {
-      modalOpen: false,
-      selectList: [],
-      inputValue: '',
-      radioValue: 1,
-      mApproval: new ApprovalBean(),
-      approvalAble: true,//审批状态
-    }
-  }
-
-  render () {
-    let valueItem = ''
-    const dateFormat = 'YYYY-MM-DD'
-    const { inputValue, radioValue, selectList, mApproval, approvalAble } = this.state
-
-    if (approvalAble == false) {
-      if (mApproval.dfType == 'N'
-        || mApproval.dfType == 'floatcolumn8'
-        || mApproval.dfType == 'SN'
-        || strContain(mApproval.dfType, 'floatcolumn')) {
-        valueItem =
-          <div>{numFormat(mApproval.values)}</div>
-      } else {
-        valueItem =
-          <div dangerouslySetInnerHTML={{ __html: mApproval.values }}></div>
-      }
-    } else if (mApproval.neerInput) {
-      let placeHolder = ''
-      if (mApproval.mustInput) {
-        if (mApproval.inputType() == 2 || mApproval.inputType() == 3 ||
-          mApproval.inputType() == 4) {
-          placeHolder = '请选择(必选)'
-        } else {
-          placeHolder = '请输入(必填)'
-        }
-      } else {
-        if (mApproval.inputType() == 2 || mApproval.inputType() == 3 ||
-          mApproval.inputType() == 4) {
-          placeHolder = '请选择(非必选)'
-        } else {
-          placeHolder = '请输入(非必填)'
-        }
-      }
-      switch (mApproval.inputType()) {
-        case 0:
-          //字符输入
-          valueItem = <Input className='value-input' placeholder={placeHolder}
-                             value={inputValue} onChange={this.inputChange}/>
-          break
-        case 1:
-          //数字输入
-          valueItem = <Input type='number' onKeyPress={this.numKeyPress}
-                             className='value-input' placeholder={placeHolder}
-                             value={inputValue} onChange={this.inputChange}/>
-          break
-        case 2:
-          //日期选择框
-          let defaultDate = inputValue
-          if (!isObjEmpty(inputValue)) {
-            defaultDate = ''
-          } else {
-            defaultDate = moment(defaultDate, 'YYYY-MM-DD')
-            if (!defaultDate._isValid) {
-              defaultDate = ''
-            }
-          }
-          valueItem = <DatePicker locale={locale} className='value-input'
-                                  defaultValue={defaultDate}
-                                  placeholder={placeHolder}
-                                  format={dateFormat} size='small'
-                                  onChange={this.onDatePicker}/>
-          break
-        case 3:
-          //弹框选择
-          const { modalOpen } = this.state
-          let modalItems = []
-          for (let i = 0; i < selectList.length; i++) {
-            modalItems.push(<div className='selectItem' onClick={
-              this.modalSelect.bind(this, i)
-            }>{selectList[i]}</div>)
-          }
-          valueItem = <Modal trigger={<Input className='value-input'
-                                             readOnly unselectable='on'
-                                             placeholder={placeHolder}
-                                             onClick={this.onSelectClick}
-                                             value={inputValue}/>}
-                             open={modalOpen}
-                             onClose={this.modalClose}
-                             size='small'>
-            <Modal.Content image>
-              <Modal.Description>
-                {modalItems}
-              </Modal.Description>
-            </Modal.Content>
-          </Modal>
-
-          break
-        case 4:
-          //dbfind
-          valueItem = <Input className='value-input'
-                             readOnly unselectable='on'
-                             placeholder={placeHolder}
-                             onClick={this.onDbfindClick}
-                             value={inputValue}/>
-          break
-        case 5:
-          valueItem =
-            <RadioGroup onChange={this.onRadioChange} value={radioValue}>
-              <Radio value={1}>是</Radio>
-              <Radio value={2}>否</Radio>
-            </RadioGroup>
-          break
-        default:
-          valueItem = <div></div>
-          break
-      }
-    } else {
-      let oldValues = mApproval.oldValues
-      if (!isObjEmpty(oldValues)) {
-        valueItem = <div className='oldNewLayout'>
-          <span style={{ textDecoration: 'line-through' }}>{oldValues}</span>
-          <span style={{ color: '#f10813' }}>{mApproval.values}</span>
-        </div>
-      } else {
-        if (mApproval.dfType == 'N'
-          || mApproval.dfType == 'floatcolumn8'
-          || mApproval.dfType == 'SN'
-          || strContain(mApproval.dfType, 'floatcolumn')) {
-          valueItem =
-            <div>{numFormat(mApproval.values)}</div>
-        } else {
-          valueItem =
-            <div dangerouslySetInnerHTML={{ __html: mApproval.values }}></div>
-        }
-      }
-    }
-
-    return <div className='table-parent'>
-      <div className='table-caption'>{mApproval.caption}</div>
-      <div className='table-value'>
-        {valueItem}
-      </div>
-    </div>
-  }
-
-  onRadioChange = (e) => {
-    let value = e.target.value
-    this.setState({
-      radioValue: value,
-    })
-    if (value == 1) {
-      this.props.valueListener(this.props.approval.type, this.props.index,
-        ApprovalBean.VALUES_YES, false)
-    } else {
-      this.props.valueListener(this.props.approval.type, this.props.index,
-        ApprovalBean.VALUES_NO, false)
-    }
-  }
-
-  numKeyPress = (event) => {
-    const invalidChars = ['-', '+', 'e', '.', 'E']
-    if (invalidChars.indexOf(event.key) !== -1) {
-      event.preventDefault()
-    }
-  }
-
-  modalClose = () => {
-    this.setState({
-      modalOpen: false,
-    })
-  }
-
-  modalSelect = (index) => {
-    const { selectList } = this.state
-    this.setState({
-      inputValue: selectList[index],
-      modalOpen: false,
-    }, () => {
-      this.props.valueListener(this.props.approval.type, this.props.index,
-        this.state.inputValue, false)
-    })
-  }
-
-  inputChange = (e) => {
-    this.setState({
-      inputValue: e.target.value,
-    }, () => {
-      this.props.valueListener(this.props.approval.type, this.props.index,
-        this.state.inputValue, false)
-    })
-
-  }
-
-  onDatePicker = (e, dateString) => {
-    this.setState({
-      inputValue: dateString,
-    }, () => {
-      this.props.valueListener(this.props.approval.type, this.props.index,
-        this.state.inputValue, false)
-    })
-  }
-
-  onSelectClick = () => {
-    this.setState({
-      modalOpen: true,
-    })
-  }
-
-  onDbfindClick = () => {
-    if (this.props.onDbfindClick) {
-      this.props.onDbfindClick(this.props.approval.type, this.props.index)
-    }
-  }
-}
+import React, { Component } from 'react'
+import './tableItem.css'
+import { Input, Modal } from 'semantic-ui-react'
+import { DatePicker, Radio } from 'antd'
+import locale from 'antd/lib/date-picker/locale/zh_CN'
+import {
+  isObjEmpty,
+  numFormat,
+  strContain,
+} from '../../../../../utils/common/common.util'
+import ApprovalBean from '../../model/ApprovalBean'
+import moment from 'moment'
+
+const RadioGroup = Radio.Group
+
+export default class TableItem extends Component {
+
+  componentDidMount () {
+    let { mApproval } = this.state
+
+    this.setState({
+      mApproval: this.props.approval,
+      approvalAble: this.props.approvalAble,
+    })
+    let options = []
+    let datas = mApproval.datas
+    if (!isObjEmpty(datas)) {
+      for (let i = 0; i < datas.length; i++) {
+        options.push(datas[i].display)
+      }
+    }
+    this.setState({
+      selectList: options,
+      inputValue: mApproval.values,
+    })
+    let values = mApproval.values
+    if (values == ApprovalBean.VALUES_YES
+      || values == '-1') {
+      this.setState({
+        radioValue: 1,
+      })
+    } else if (values == ApprovalBean.VALUES_NO
+      || values == '0') {
+      this.setState({
+        radioValue: 2,
+      })
+    }
+  }
+
+  componentWillReceiveProps () {
+    this.componentDidMount()
+  }
+
+  constructor () {
+    super()
+
+    this.state = {
+      modalOpen: false,
+      selectList: [],
+      inputValue: '',
+      radioValue: 1,
+      mApproval: new ApprovalBean(),
+      approvalAble: true,//审批状态
+    }
+  }
+
+  render () {
+    let valueItem = ''
+    const dateFormat = 'YYYY-MM-DD'
+    const { inputValue, radioValue, selectList, mApproval, approvalAble } = this.state
+
+    if (approvalAble == false) {
+      if (mApproval.dfType == 'N'
+        || mApproval.dfType == 'floatcolumn8'
+        || mApproval.dfType == 'SN'
+        || strContain(mApproval.dfType, 'floatcolumn')) {
+        valueItem =
+          <div>{numFormat(mApproval.values)}</div>
+      } else {
+        valueItem =
+          <div dangerouslySetInnerHTML={{ __html: mApproval.values }}></div>
+      }
+    } else if (mApproval.neerInput) {
+      let placeHolder = ''
+      if (mApproval.mustInput) {
+        if (mApproval.inputType() == 2 || mApproval.inputType() == 3 ||
+          mApproval.inputType() == 4) {
+          placeHolder = '请选择(必选)'
+        } else {
+          placeHolder = '请输入(必填)'
+        }
+      } else {
+        if (mApproval.inputType() == 2 || mApproval.inputType() == 3 ||
+          mApproval.inputType() == 4) {
+          placeHolder = '请选择(非必选)'
+        } else {
+          placeHolder = '请输入(非必填)'
+        }
+      }
+      switch (mApproval.inputType()) {
+        case 0:
+          //字符输入
+          valueItem = <Input className='value-input' placeholder={placeHolder}
+                             value={inputValue} onChange={this.inputChange}/>
+          break
+        case 1:
+          //数字输入
+          valueItem = <Input type='number' onKeyPress={this.numKeyPress}
+                             className='value-input' placeholder={placeHolder}
+                             value={inputValue} onChange={this.inputChange}/>
+          break
+        case 2:
+          //日期选择框
+          let defaultDate = inputValue
+          if (!isObjEmpty(inputValue)) {
+            defaultDate = ''
+          } else {
+            defaultDate = moment(defaultDate, 'YYYY-MM-DD')
+            if (!defaultDate._isValid) {
+              defaultDate = ''
+            }
+          }
+          valueItem = <DatePicker locale={locale} className='value-input'
+                                  defaultValue={defaultDate}
+                                  placeholder={placeHolder}
+                                  format={dateFormat} size='small'
+                                  onChange={this.onDatePicker}/>
+          break
+        case 3:
+          //弹框选择
+          const { modalOpen } = this.state
+          let modalItems = []
+          for (let i = 0; i < selectList.length; i++) {
+            modalItems.push(<div className='selectItem' onClick={
+              this.modalSelect.bind(this, i)
+            }>{selectList[i]}</div>)
+          }
+          valueItem = <Modal trigger={<Input className='value-input'
+                                             readOnly unselectable='on'
+                                             placeholder={placeHolder}
+                                             onClick={this.onSelectClick}
+                                             value={inputValue}/>}
+                             open={modalOpen}
+                             onClose={this.modalClose}
+                             size='small'>
+            <Modal.Content image>
+              <Modal.Description>
+                {modalItems}
+              </Modal.Description>
+            </Modal.Content>
+          </Modal>
+
+          break
+        case 4:
+          //dbfind
+          valueItem = <Input className='value-input'
+                             readOnly unselectable='on'
+                             placeholder={placeHolder}
+                             onClick={this.onDbfindClick}
+                             value={inputValue}/>
+          break
+        case 5:
+          valueItem =
+            <RadioGroup onChange={this.onRadioChange} value={radioValue}>
+              <Radio value={1}>是</Radio>
+              <Radio value={2}>否</Radio>
+            </RadioGroup>
+          break
+        default:
+          valueItem = <div></div>
+          break
+      }
+    } else {
+      let oldValues = mApproval.oldValues
+      if (!isObjEmpty(oldValues)) {
+        valueItem = <div className='oldNewLayout'>
+          <span style={{ textDecoration: 'line-through' }}>{oldValues}</span>
+          <span style={{ color: '#f10813' }}>{mApproval.values}</span>
+        </div>
+      } else {
+        if (mApproval.dfType == 'N'
+          || mApproval.dfType == 'floatcolumn8'
+          || mApproval.dfType == 'SN'
+          || strContain(mApproval.dfType, 'floatcolumn')) {
+          valueItem =
+            <div>{numFormat(mApproval.values)}</div>
+        } else {
+          valueItem =
+            <div dangerouslySetInnerHTML={{ __html: mApproval.values }}></div>
+        }
+      }
+    }
+
+    return <div className='table-parent'>
+      <div className='table-caption'>{mApproval.caption}</div>
+      <div className='table-value'>
+        {valueItem}
+      </div>
+    </div>
+  }
+
+  onRadioChange = (e) => {
+    let value = e.target.value
+    this.setState({
+      radioValue: value,
+    })
+    if (value == 1) {
+      this.props.valueListener(this.props.approval.type, this.props.index,
+        ApprovalBean.VALUES_YES, false)
+    } else {
+      this.props.valueListener(this.props.approval.type, this.props.index,
+        ApprovalBean.VALUES_NO, false)
+    }
+  }
+
+  numKeyPress = (event) => {
+    const invalidChars = ['-', '+', 'e', '.', 'E']
+    if (invalidChars.indexOf(event.key) !== -1) {
+      event.preventDefault()
+    }
+  }
+
+  modalClose = () => {
+    this.setState({
+      modalOpen: false,
+    })
+  }
+
+  modalSelect = (index) => {
+    const { selectList } = this.state
+    this.setState({
+      inputValue: selectList[index],
+      modalOpen: false,
+    }, () => {
+      this.props.valueListener(this.props.approval.type, this.props.index,
+        this.state.inputValue, false)
+    })
+  }
+
+  inputChange = (e) => {
+    this.setState({
+      inputValue: e.target.value,
+    }, () => {
+      this.props.valueListener(this.props.approval.type, this.props.index,
+        this.state.inputValue, false)
+    })
+
+  }
+
+  onDatePicker = (e, dateString) => {
+    this.setState({
+      inputValue: dateString,
+    }, () => {
+      this.props.valueListener(this.props.approval.type, this.props.index,
+        this.state.inputValue, false)
+    })
+  }
+
+  onSelectClick = () => {
+    this.setState({
+      modalOpen: true,
+    })
+  }
+
+  onDbfindClick = () => {
+    if (this.props.onDbfindClick) {
+      this.props.onDbfindClick(this.props.approval.type, this.props.index)
+    }
+  }
+}