Browse Source

uas手机版
新通用表单备份

RaoMeng 5 years ago
parent
commit
2589d9c756

+ 76 - 46
uas-office-web/uas-mobile/src/pages/common/currencyForm/BillAdd.jsx → uas-office-web/uas-mobile/src/components/common/currencyDetail/BillAdd.jsx

@@ -20,7 +20,11 @@ import {
   ListView,
   SearchBar,
 } from 'antd-mobile'
-import { fetchGet, fetchPostForm } from '../../../utils/common/fetchRequest'
+import {
+  fetchGet,
+  fetchPostForm,
+  fetchPostObj,
+} from '../../../utils/common/fetchRequest'
 import BillModel, {
   TYPE_ADD,
   TYPE_TAB,
@@ -28,11 +32,13 @@ import BillModel, {
 } from '../../../model/common/BillModel'
 import LocalData from '../../../model/common/LocalData'
 import BillGroupModel from '../../../model/common/BillGroupModel'
-import FormInput from '../../../components/common/formNew/FormInput'
-import FormTitle from '../../../components/common/formNew/FormTitle'
-import FormAdd from '../../../components/common/formNew/FormAdd'
-import EmployeeItem from '../../../components/private/employeeItem/EmployeeItem'
-import { _baseURL } from '../../../configs/api.config'
+import FormInput from '../formNew/FormInput'
+import FormTitle from '../formNew/FormTitle'
+import FormAdd from '../formNew/FormAdd'
+import EmployeeItem from '../../private/employeeItem/EmployeeItem'
+import { _baseURL, API } from '../../../configs/api.config'
+import { analysisFormData } from '../../../utils/common/form.request'
+import { connect } from 'react-redux'
 
 const alert = Modal.alert
 const CheckboxItem = Checkbox.CheckboxItem
@@ -53,7 +59,7 @@ let mModalList = []
 
 let mShowBillModels, mFormBillModels, mUpdateBillModels, mAllBillModels
 
-export default class BillAdd extends Component {
+class BillAdd extends Component {
 
   constructor () {
     super()
@@ -71,9 +77,11 @@ export default class BillAdd extends Component {
 
   componentDidMount () {
     document.title = '新增单据'
-    mCaller = this.props.match.params.caller
-    mMaster = this.props.match.params.master
-    mId = this.props.match.params.id
+    const { userState, match, master, caller, id } = this.props
+    mMaster = match ? match.params.master :
+      master ? master : userState.accountCode
+    mCaller = match ? match.params.caller : caller
+    mId = match ? match.params.id : id
     if (isObjEmpty(mId)) {
       mId = 0
     }
@@ -95,6 +103,33 @@ export default class BillAdd extends Component {
   }
 
   render () {
+    let formItems = this.getFormItems()
+
+    return (
+      <div className='approval-add-root'>
+        <Prompt message={this.handlePrompt}
+                when={this.state.promptAble}/>
+        <div className='approval-add-root' style={{ flex: 1 }}>
+          <List>
+            {formItems}
+          </List>
+        </div>
+        {/*{formItems.length > 0 &&*/}
+        {/*<Button type={'primary'}*/}
+        {/*        style={{*/}
+        {/*          margin: '18px 26px',*/}
+        {/*          height: '36px',*/}
+        {/*          lineHeight: '36px',*/}
+        {/*          fontSize: '16px',*/}
+        {/*        }}*/}
+        {/*        onClick={this.onSubmitClick}>提交</Button>}*/}
+
+        {this.getDbfindModal()}
+      </div>
+    )
+  }
+
+  getFormItems = () => {
     const { billGroupModelList } = this.state
     let formItems = []
     if (!isObjEmpty(billGroupModelList)) {
@@ -143,7 +178,7 @@ export default class BillAdd extends Component {
             if (billGroup.isForm == false && billGroup.lastInType == true) {
               //如果是最后一个从表,则添加【新增】按钮
               formItems.push(
-                <BillAdd billModel={this.getAddModel(g)} groupIndex={g}
+                <FormAdd billModel={this.getAddModel(g)} groupIndex={g}
                          onAddClick={this.onAddClick.bind(this)}/>,
               )
             }
@@ -151,28 +186,8 @@ export default class BillAdd extends Component {
         }
       }
     }
-    return (
-      <div className='approval-add-root'>
-        <Prompt message={this.handlePrompt}
-                when={this.state.promptAble}/>
-        <div className='approval-add-root' style={{ flex: 1 }}>
-          <List>
-            {formItems}
-          </List>
-        </div>
-        {formItems.length > 0 &&
-        <Button type={'primary'}
-                style={{
-                  margin: '18px 26px',
-                  height: '36px',
-                  lineHeight: '36px',
-                  fontSize: '16px',
-                }}
-                onClick={this.onSubmitClick}>提交</Button>}
 
-        {this.getDbfindModal()}
-      </div>
-    )
+    return formItems
   }
 
   /**
@@ -343,8 +358,8 @@ export default class BillAdd extends Component {
       if (!isObjEmpty(billGroupModelList) &&
         !isObjNull(billGroupModelList[groupIndex])) {
         let billGroup = billGroupModelList[groupIndex]
-        billGroup[childIndex].value = selectData.value
-        billGroup[childIndex].display = selectData.display
+        billGroup.showBillFields[childIndex].value = selectData.value
+        billGroup.showBillFields[childIndex].display = selectData.display
       }
       this.setState({
         billGroupModelList,
@@ -933,7 +948,8 @@ export default class BillAdd extends Component {
         if (isObjNull(billModel)) {
           continue
         }
-        if (isObjEmpty(billModel.getValue()) && billModel.isdefault === -1 &&
+        if (isObjEmpty(this.getValue(billModel)) && billModel.isdefault ===
+          -1 &&
           (billModel.allowBlank === 'necessaryField'
             || billModel.allowBlank === 'F')) {
           message.error(`${billModel.caption}为必填项`)
@@ -941,7 +957,7 @@ export default class BillAdd extends Component {
         }
         //Todo 附件上传
 
-        formStore[billModel.field] = billModel.getDisplay()
+        formStore[billModel.field] = this.getDisplay(billModel)
       }
       return formStore
     } else {
@@ -958,7 +974,7 @@ export default class BillAdd extends Component {
           let gridStore = {}
           for (let j = 0; j < gridFields.length; j++) {
             let billModel = gridFields[j]
-            if (isObjEmpty(billModel.getValue())
+            if (isObjEmpty(this.getValue(billModel))
               && billModel.isdefault === -1
               && (billModel.allowBlank === 'necessaryField'
                 || billModel.allowBlank === 'F')) {
@@ -967,7 +983,7 @@ export default class BillAdd extends Component {
             }
             //Todo 附件上传
 
-            gridStore[billModel.field] = billModel.getDisplay()
+            gridStore[billModel.field] = this.getDisplay(billModel)
           }
           gridStoreList.push(gridStore)
         }
@@ -980,19 +996,19 @@ export default class BillAdd extends Component {
    * 获取主从表数据
    */
   loadFormandGridDetail () {
-    fetchPostForm(_baseURL + (mId <= 0
-      ? '/mobile/uapproval/getformandgriddetail.action'
-      : '/mobile/getformandgriddetail_uapproval.action'), {
-      condition: '1=1',
+    const { isDetail } = this.props
+    fetchPostObj(API.SETVICES_GETORDER, {
       caller: mCaller,
       id: mId,
     }).then(response => {
       Toast.hide()
-      let billGroupModels = this.handlerBill(response)
-      // this.changeBillModel(billGroupModels)
-      // console.log('raomeng', billGroupModels)
+      // let billGroupModels = this.handlerBill(response)
+      // this.setState({
+      //   billGroupModelList: billGroupModels,
+      // })
+      const billGroupList = analysisFormData(response.data, isDetail)
       this.setState({
-        billGroupModelList: billGroupModels,
+        billGroupModelList: billGroupList,
       })
     }).catch(error => {
       Toast.hide()
@@ -1412,4 +1428,18 @@ export default class BillAdd extends Component {
         return 1
     }
   }
+
+  getValue = (billModel) => (
+    billModel.value || billModel.defValue || ''
+  )
+
+  getDisplay = (billModel) => {
+    return billModel.display || this.getValue(billModel)
+  }
 }
+
+let mapStateToProps = (state) => ({
+  userState: state.userState,
+})
+
+export default connect(mapStateToProps)(BillAdd)

+ 12 - 4
uas-office-web/uas-mobile/src/components/common/currencyList/CurrencyList.jsx

@@ -30,6 +30,7 @@ import { CURRENCY_DETAIL_DATA_REFRESH } from '../../../utils/common/eventbus/eve
 import { refreshFormState } from '../../../redux/actions/formState'
 import { FILTER_STATE } from '../../../redux/constants/actionTypes'
 import CurrencyDetail from '../currencyDetail/CurrencyDetail'
+import BillAdd from '../currencyDetail/BillAdd'
 
 class CurrencyList extends Component {
 
@@ -190,10 +191,16 @@ class CurrencyList extends Component {
   }
 
   getFilterLayout = () => {
+    const { params } = this.props
     return (
       <div
         className='currency-list-content-filter-content'>
-        <CurrencyDetail dataType={FILTER_STATE}/>
+        {/*<CurrencyDetail dataType={FILTER_STATE}/>*/}
+        <BillAdd
+          ref={el => this.flayout = el}
+          caller={params.caller}
+          id={params.id}
+        />
         <div className='currency-list-content-filter-func'>
           <Button
             className='currency-list-content-filter-func-button'
@@ -273,9 +280,10 @@ class CurrencyList extends Component {
   }
 
   onFilterCommit = () => {
-    const { formState: { filterGroupList } } = this.props
-    let formAndGrid = getFormAndGrid(filterGroupList)
-    console.log(formAndGrid)
+    // const { formState: { filterGroupList } } = this.props
+    // let formAndGrid = getFormAndGrid(filterGroupList)
+    // console.log(formAndGrid)
+    console.log(this.flayout.state)
   }
 }
 

+ 3 - 3
uas-office-web/uas-mobile/src/configs/api.config.js

@@ -4,9 +4,9 @@
  */
 
 export const _host = window.location.origin
-  // && 'http://10.1.7.104:8090/ERP'//吴炳
-  // && 'http://10.1.7.44:8081/erp'//吴雨骁
-  // && 'http://usoft.f3322.net:10007/uas'
+  && 'http://10.1.7.104:8090/ERP'//吴炳
+  && 'http://10.1.7.44:8081/erp'//吴雨骁
+  && 'http://usoft.f3322.net:10007/uas'
 
 export const _baseURL = _host + (process.env.REACT_APP_ROUTER_BASE_NAME || '')
 

+ 3 - 0
uas-office-web/uas-mobile/src/configs/router.config.js

@@ -8,6 +8,7 @@ import {
 import { Modal } from 'antd-mobile'
 import { connect } from 'react-redux'
 import PageLoadable from '../components/common/pageLoad/PageLoadable'
+import BillAdd from '../components/common/currencyDetail/BillAdd'
 
 /**
  * Created by RaoMeng on 2020/10/20
@@ -140,6 +141,8 @@ class Routes extends React.Component {
           {/*应用单据新增*/}
           <Route path='/serviceAdd/:id/:caller/:title?'
                  component={ServiceAdd}/>
+          <Route path='/billAdd/:id/:caller/:master'
+                 component={BillAdd}/>
 
           {/*************************************切换账套*****************************************/}
           {/*切换账套列表*/}

+ 2 - 0
uas-office-web/uas-mobile/src/model/common/BillModel.js

@@ -4,6 +4,7 @@ export default function BillModel (billModel) {
   if (isObjNull(billModel)) {
     this.id = 0//id
     this.groupIndex = 0//所在组索引
+    this.childIndex = 0//组内索引
     this.detno = 1000000//序号
     this.length = 0//字符长度
     this.appwidth = 0//宽度
@@ -30,6 +31,7 @@ export default function BillModel (billModel) {
   } else {
     this.id = billModel.id
     this.groupIndex = billModel.groupIndex + 1
+    this.childIndex = billModel.childIndex
     this.length = billModel.length
     this.detno = billModel.detno
     this.appwidth = billModel.appwidth

+ 21 - 21
uas-office-web/uas-mobile/src/pages/private/service/ServiceAdd.jsx

@@ -33,11 +33,11 @@ class ServiceAdd extends Component {
     const title = this.props.match.params.title
     document.title = title || '单据新增'
 
-    //将标识设置为BILL_STATE,保证数据不错乱
+    /*//将标识设置为BILL_STATE,保证数据不错乱
     refreshFormState({
       stateType: BILL_STATE,
     })
-    this.requestFormData()
+    this.requestFormData()*/
   }
 
   componentWillUnmount () {
@@ -63,30 +63,30 @@ class ServiceAdd extends Component {
     )
   }
 
-  requestFormData = () => {
-    Toast.loading('单据获取中', 0)
-    fetchPostObj(API.SETVICES_GETORDER, {
-      id: this.id,
-      caller: this.caller,
-    }).then(response => {
-      Toast.hide()
-      const billGroupList = analysisFormData(response.data)
-      refreshFormState({ billGroupList })
-    }).catch(error => {
-      Toast.hide()
-      if (typeof error === 'string') {
-        message.error(error)
-      } else {
-        message.error('单据获取异常')
-      }
-    })
-  }
+  /*  requestFormData = () => {
+      Toast.loading('单据获取中', 0)
+      fetchPostObj(API.SETVICES_GETORDER, {
+        id: this.id,
+        caller: this.caller,
+      }).then(response => {
+        Toast.hide()
+        const billGroupList = analysisFormData(response.data)
+        refreshFormState({ billGroupList })
+      }).catch(error => {
+        Toast.hide()
+        if (typeof error === 'string') {
+          message.error(error)
+        } else {
+          message.error('单据获取异常')
+        }
+      })
+    }*/
 
   /**
    * 单据提交
    */
   onSubmitClick = () => {
-    const { billGroupList } = this.state
+    const { formState: { billGroupList } } = this.props
     let formAndGrid = getFormAndGrid(billGroupList)
     console.log(formAndGrid)
   }

+ 6 - 1
uas-office-web/uas-mobile/src/pages/private/service/ServiceList.jsx

@@ -43,6 +43,11 @@ class ServiceList extends Component {
           requestSearchConfig={this.requestSearchConfig.bind(this)}
           onItemClick={this.onItemClick.bind(this)}
           onDocAdd={this.onDocAdd.bind(this)}
+          params={{
+            caller: this.props.match.params.caller,
+            id: 0,
+            master: 'UAS',
+          }}
           addAble
         />
       </div>
@@ -143,7 +148,7 @@ class ServiceList extends Component {
    */
   onDocAdd = () => {
     this.props.history.push(
-      '/serviceAdd/' + 0 + '/' + this.caller + '/' + this.title)
+      '/billAdd/' + 0 + '/' + this.caller + '/UAS')
   }
 }
 

+ 1 - 0
uas-office-web/uas-mobile/src/utils/common/form.request.js

@@ -67,6 +67,7 @@ export function getBillGroup (groupItem, groupIndex, isDetail) {
       let billModel = new BillModel()
 
       billModel.groupIndex = groupIndex
+      // billModel.childIndex = filedIndex
       billModel.appwidth = fieldItem.appwidth
       billModel.length = fieldItem.length
       billModel.isdefault = fieldItem.isdefault

+ 15 - 16
uas-office-web/uas-mobile/src/utils/common/form.util.js

@@ -14,7 +14,7 @@ import BillModel, {
 import FormTitle from '../../components/common/formNew/FormTitle'
 import BillGroupModel from '../../model/common/BillGroupModel'
 import { _baseURL } from '../../configs/api.config'
-import { Modal } from 'antd-mobile'
+import { Modal, Toast } from 'antd-mobile'
 import { refreshFormState } from '../../redux/actions/formState'
 import store from '../../redux/store/store'
 import { BILL_STATE, FILTER_STATE } from '../../redux/constants/actionTypes'
@@ -276,8 +276,7 @@ function onTextChange (
 }
 
 function onInputClick (billGroupModelList, groupIndex, childIndex) {
-  /*if (!isObjNull(billGroupModelList) &&
-    !isObjNull(billGroupModelList[groupIndex])) {
+  if (!isObjEmpty(billGroupModelList,billGroupModelList[groupIndex])) {
     let billGroup = billGroupModelList[groupIndex]
     if (!isObjNull(billGroup.showBillFields) &&
       !isObjNull(billGroup.showBillFields[childIndex])) {
@@ -302,7 +301,7 @@ function onInputClick (billGroupModelList, groupIndex, childIndex) {
 
       }
     }
-  }*/
+  }
 }
 
 export function getFormAndGrid (billGroupModelList) {
@@ -358,12 +357,12 @@ function analysisForm (formFields) {
       if (isObjNull(billModel)) {
         continue
       }
-      if (isObjEmpty(getValue(billModel)) &&
-        (billModel.allowBlank === 'necessaryField'
-          || billModel.allowBlank === 'F')) {
-        message.error(`${billModel.caption}为必填项`)
-        return null
-      }
+      // if (isObjEmpty(getValue(billModel)) &&
+      //   (billModel.allowBlank === 'necessaryField'
+      //     || billModel.allowBlank === 'F')) {
+      //   message.error(`${billModel.caption}为必填项`)
+      //   return null
+      // }
       //Todo 附件上传
 
       formStore[billModel.field] = getDisplay(billModel)
@@ -383,12 +382,12 @@ function analysisGrid (gridBillMap) {
         let gridStore = {}
         for (let j = 0; j < gridFields.length; j++) {
           let billModel = gridFields[j]
-          if (isObjEmpty(getValue(billModel))
-            && (billModel.allowBlank === 'necessaryField'
-              || billModel.allowBlank === 'F')) {
-            message.error(`${billModel.caption}为必填项`)
-            return null
-          }
+          // if (isObjEmpty(getValue(billModel))
+          //   && (billModel.allowBlank === 'necessaryField'
+          //     || billModel.allowBlank === 'F')) {
+          //   message.error(`${billModel.caption}为必填项`)
+          //   return null
+          // }
           //Todo 附件上传
 
           gridStore[billModel.field] = getDisplay(billModel)