From ca660aed7dcdf63668c7fae2ae3dbc3f13ec1529 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 31 五月 2022 22:30:31 +0800
Subject: [PATCH] 2022-05-31

---
 src/tabviews/custom/components/form/normal-form/index.jsx |   28 +++++++++++++++++++++-------
 1 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/src/tabviews/custom/components/form/normal-form/index.jsx b/src/tabviews/custom/components/form/normal-form/index.jsx
index 9f935b5..08194e1 100644
--- a/src/tabviews/custom/components/form/normal-form/index.jsx
+++ b/src/tabviews/custom/components/form/normal-form/index.jsx
@@ -68,7 +68,14 @@
 
     let roleId = sessionStorage.getItem('role_id') || ''
 
-    config.subcards = config.subcards.map(group => {
+    config.subcards = config.subcards.map((group, i) => {
+      if (i === 0) {
+        group.prevButton.enable = 'false'
+      }
+      if (i + 1 === config.subcards.length) {
+        group.nextButton.enable = 'false'
+      }
+
       group.subButton.uuid = group.uuid
       group.subButton.$menuId = group.uuid
       group.subButton.Ot = config.wrap.datatype === 'static' ? 'notRequired' : 'requiredSgl'
@@ -268,7 +275,7 @@
 
   async loadData (type) {
     const { mainSearch, menuType } = this.props
-    const { config, arr_field, BID, group } = this.state
+    const { config, arr_field, BID } = this.state
 
     if (config.wrap.datatype === 'static' || (config.setting.supModule && !BID)) {
       this.setState({
@@ -294,7 +301,7 @@
     let result = await Api.genericInterface(param)
     if (result.status) {
       let _data = result.data && result.data[0] ? result.data[0] : {$$empty: true}
-      let _group = group
+      let _group = this.state.group
 
       if (type === 'refresh') {
         _group = config.subcards[0]
@@ -305,10 +312,17 @@
         let _groups = config.subcards.filter(item => item.setting.status === _status)[0]
         _group = _groups || _group
       }
+
+      let step = this.state.step
+
+      if (config.subcards.length !== _group.sort || config.subcards.length !== step) {
+        step = _group.sort - 1
+      }
+
       this.setState({
         group: null,
-        step: _group.sort - 1,
-        data: _data || {$$empty: true},
+        step: step,
+        data: _data,
         loading: false
       }, () => {
         this.setState({group: _group})
@@ -385,7 +399,7 @@
           wrappedComponentRef={(inst) => this.formRef = inst}
         /> : null}
         {group && data ? <div className={'mk-form-action ' + (group.$button || '')}>
-          {group.sort !== 1 && group.prevButton.enable !== 'false' ? <Button type="link" className="prev" onClick={this.prevStep} style={group.prevButton.style}>{group.prevButton.label}</Button> : null}
+          {group.prevButton.enable === 'true' ? <Button type="link" className="prev" onClick={this.prevStep} style={group.prevButton.style}>{group.prevButton.label}</Button> : null}
           <NormalButton
             BID={BID}
             btn={group.subButton}
@@ -393,7 +407,7 @@
             columns={config.columns}
             selectedData={data.$$empty ? [] : [data]}
           />
-          {group.nextButton.enable === 'true' && group.sort !== config.subcards.length ? <Button type="link" className="skip" onClick={this.nextStep} style={group.nextButton.style}>{group.nextButton.label}</Button> : null}
+          {group.nextButton.enable === 'true' ? <Button type="link" className="skip" onClick={this.nextStep} style={group.nextButton.style}>{group.nextButton.label}</Button> : null}
         </div> : null}
       </div>
     )

--
Gitblit v1.8.0