Эх сурвалжийг харах

智慧党建管理系统:
1、后台管理系统-组织关系变更前端研发完成60%
2、后台管理系统-情况说明管理前端研发完成70%
3、后台管理系统-党员发展管理前端研发完成60%
4、后台管理系统-正式党员管理前端研发完成90%
5、【High】党员信息新增录入信息功能前端研发完成100%
6、【High】党员信息完善更新功能前端研发完成100%
7、党员信息展示功能前端待研发

Rockery 3 жил өмнө
parent
commit
0d3c82d93b

+ 10 - 1
src/api/PartyBuildingMgr/FullPartyMember.js

@@ -56,12 +56,21 @@ export function viewDetailFullPartyMember(query) {
   });
 }
 
+// 重新激活
+export function reactivateFullPartyMember(query) {
+  return request({
+    url: '/town/partymember/active',
+    method: 'get',
+    params: query
+  });
+}
+
 // 删除
 export function delFullPartyMember(ids) {
   return request({
     url: '/town/partymember/' + ids,
     method: 'delete'
-  })
+  });
 }
 
 // 查询所有党员选项列表

+ 30 - 0
src/api/PartyBuildingMgr/OrgRelationship.js

@@ -0,0 +1,30 @@
+import request from '@/utils/request';
+import { praseStrEmpty } from "@/utils/ruoyi";
+
+/**
+ * 查询列表
+ */
+export function listOrgRelationship(query) {
+  return request({
+    url: '/town/partymemberpartmodifylog/list',
+    method: 'get',
+    params: query
+  });
+}
+
+// 查询详细
+export function viewOrgRelationship(id) {
+  return request({
+    url: '/town/partymemberpartmodifylog/' + id,
+    method: 'get'
+  });
+}
+
+// 新增
+export function addOrgRelationship(data) {
+  return request({
+    url: '/town/partymemberpartmodifylog',
+    method: 'post',
+    data: data
+  });
+}

+ 40 - 0
src/assets/styles/cust-global.scss

@@ -604,3 +604,43 @@
     }
   }
 }
+
+.toptitlepage {
+  &-head {
+    margin-bottom: 20px;
+    width: 100%;
+    padding: 15px 20px;
+    background: url("../../assets/images/home-head-img.png"), #ffffff;
+    background-size: 67px 67px, cover;
+    background-position: right 5px bottom 0px, center;
+    background-repeat: no-repeat, no-repeat;
+    border-radius: 10px;
+
+    &-title {
+      display: flex;
+      align-items: center;
+
+      div {
+        &:first-child {
+          height: 37px;
+          line-height: 37px;
+        }
+
+        &:last-child {
+          margin-left: 15px;
+          height: 37px;
+          font-size: 26px;
+          font-weight: 400;
+          color: #4f4f4f;
+          line-height: 37px;
+          letter-spacing: 1px;
+        }
+
+        img {
+          width: 34px;
+          height: 34px;
+        }
+      }
+    }
+  }
+}

+ 3 - 3
src/components/RocPdfFileUpload/index.vue

@@ -3,7 +3,7 @@
  * @Author: Rockery
  * @Date: 2021-12-20 09:16:41
  * @LastEditors: Rockery
- * @LastEditTime: 2021-12-31 14:09:07
+ * @LastEditTime: 2022-01-17 14:50:52
  * @FilePath: \party_construct_web\src\components\RocPdfFileUpload\index.vue
  * @Copyright: Copyright (c) 2016~2021 Rockery(1113269755@qq.com)
 -->
@@ -190,13 +190,13 @@ export default {
         }
         this.isSelect = true;
         this.isUploadSuccess = false;
-        this.$emit('input', 'ROCPDFUPLOADSELECT');
+        // this.$emit('input', 'ROCPDFUPLOADSELECT');
       } else if (file.status === 'success') {
         this.isUploadSuccess = true;
       } else {
         this.isUploadSuccess = false;
         this.isSelect = false;
-        this.$emit('input', 'ROCPDFUPLOADSELECT');
+        // this.$emit('input', 'ROCPDFUPLOADSELECT');
       }
     },
     /**

+ 2 - 2
src/components/RocVuePdfDialog/index.vue

@@ -3,7 +3,7 @@
  * @Author: Rockery
  * @Date: 2021-12-13 17:40:22
  * @LastEditors: Rockery
- * @LastEditTime: 2022-01-06 10:46:29
+ * @LastEditTime: 2022-01-18 14:28:01
  * @FilePath: \party_construct_web\src\components\RocVuePdfDialog\index.vue
  * @Copyright: Copyright (c) 2016~2021 Rockery(1113269755@qq.com)
 -->
@@ -75,7 +75,7 @@ export default {
     // 对话框标题
     dialogTitle: {
       type: String,
-      required: true,
+      required: false,
       default: 'PDF文件预览'
     },
     // PDF 文件访问路径

+ 258 - 83
src/components/UpdatePartyDevelop/index.vue

@@ -3,7 +3,7 @@
  * @Author: Rockery
  * @Date: 2021-12-15 17:54:05
  * @LastEditors: Rockery
- * @LastEditTime: 2022-01-14 18:27:17
+ * @LastEditTime: 2022-01-18 18:00:45
  * @FilePath: \party_construct_web\src\components\UpdatePartyDevelop\index.vue
  * @Copyright: Copyright (c) 2016~2021 Rockery(1113269755@qq.com)
 -->
@@ -348,7 +348,7 @@
                                           >
                                             <el-date-picker
                                               v-model="formObj.formModel.submitAddPartyPageTime"
-                                              :disabled="(currentOperateType === 'EDIT') || getEleIsDisabled(disabledDataObj['submitAddPartyPageTime'])"
+                                              :disabled="((currentOperateType === 'EDIT') && !(!viewFullPartyInfoObj.submitAddPartyPageTime)) || getEleIsDisabled(disabledDataObj['submitAddPartyPageTime'])"
                                               type="date"
                                               clearable
                                               format="yyyy年MM月dd日"
@@ -467,7 +467,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [ formObj.formModel.talkPageFile ], {defaultHeight: (currentOperateType === 'EDIT') ? 54 : 64, noDefaultHeight: (currentOperateType === 'EDIT') ? 112 : 122,defaultMarginTop: (currentOperateType === 'EDIT') ? 54 : 64, noDefaultMarginTop: (currentOperateType === 'EDIT') ? 112 : 122}, '','', 'talkPageFile', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [ formObj.formModel.talkPageFile ], (currentOperateType === 'EDIT') ? {defaultHeight: 54, noDefaultHeight: 112, defaultMarginTop: 54, noDefaultMarginTop: 112} : {defaultHeight: 64, noDefaultHeight: 122,defaultMarginTop: 64, noDefaultMarginTop: 122}, '','', 'talkPageFile', innerWidth > 1200 ? 1 : 2)"
                             ></div>
                           </el-col>
 
@@ -518,7 +518,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [ formObj.formModel.cardOrRegisterBookFile ], (currentOperateType === 'EDIT') ? {defaultHeight: 195, noDefaultHeight: 185,defaultMarginTop: 54, noDefaultMarginTop: 54} : {defaultHeight: 165, noDefaultHeight: 165,defaultMarginTop: 65, noDefaultMarginTop: 65}, '','', 'cardOrRegisterBookFile', 1)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [ formObj.formModel.cardOrRegisterBookFile ], (currentOperateType === 'EDIT') ? {defaultHeight: 195, noDefaultHeight: 185,defaultMarginTop: 54, noDefaultMarginTop: 54} : {defaultHeight: 165, noDefaultHeight: 165,defaultMarginTop: 65, noDefaultMarginTop: 65}, '3','', 'cardOrRegisterBookFile', 1)"
                             ></div>
                           </el-col>
                         </el-row>
@@ -633,7 +633,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.referrePageFile], (currentOperateType === 'EDIT') ? {defaultHeight: 88, noDefaultHeight: 134,defaultMarginTop: 88, noDefaultMarginTop: 134} : {defaultHeight: 98, noDefaultHeight: 145,defaultMarginTop: 98, noDefaultMarginTop: 145}, '','', 'referrePageFile', innerWidth > 1200 ? 2 : 3)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.referrePageFile], (currentOperateType === 'EDIT') ? {defaultHeight: 88, noDefaultHeight: 134,defaultMarginTop: 88, noDefaultMarginTop: 134} : {defaultHeight: 122, noDefaultHeight: 181,defaultMarginTop: 122, noDefaultMarginTop: 181}, '','', 'referrePageFile', innerWidth > 1200 ? 2 : 3)"
                             ></div>
                           </el-col>
 
@@ -656,7 +656,7 @@
                                           >
                                             <el-radio-group
                                               v-model="formObj.formModel.meetingResult"
-                                              :disabled="(currentOperateType === 'EDIT' && !(!(viewFullPartyInfoObj.meetingResult + ''))) || getEleIsDisabled(disabledDataObj['meetingResult'])"
+                                              :disabled="((currentOperateType === 'EDIT') && (viewFullPartyInfoObj.meetingResult === 1) || (viewFullPartyInfoObj.meetingResult === 2)) || getEleIsDisabled(disabledDataObj['meetingResult'])"
                                             >
                                               <el-radio :label="1">通过</el-radio>
                                               <el-radio :label="0">未通过</el-radio>
@@ -769,7 +769,7 @@
                                           >
                                             <el-radio-group
                                               v-model="formObj.formModel.replyResult"
-                                              :disabled="(currentOperateType === 'EDIT' && !(!(viewFullPartyInfoObj.replyResult + ''))) || getEleIsDisabled(disabledDataObj['replyResult'])"
+                                              :disabled="(currentOperateType === 'EDIT'  && (viewFullPartyInfoObj.replyResult === 1) || (viewFullPartyInfoObj.replyResult === 2)) || getEleIsDisabled(disabledDataObj['replyResult'])"
                                             >
                                               <el-radio :label="1">通过</el-radio>
                                               <el-radio :label="0">未通过</el-radio>
@@ -834,7 +834,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [ formObj.formModel.branchPartyMeetingFile, formObj.formModel.submitRecordRequestFile, formObj.formModel.replyFile], (currentOperateType === 'EDIT') ? {defaultHeight: 224, noDefaultHeight: 362,defaultMarginTop: 224, noDefaultMarginTop: 362} : {defaultHeight: 259, noDefaultHeight: 397,defaultMarginTop: 259, noDefaultMarginTop: 397}, 2,'', 'branchPartyMeetingFile,submitRecordRequestFile,replyFile', innerWidth > 1200 ? 5 : 8)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [ formObj.formModel.branchPartyMeetingFile, formObj.formModel.submitRecordRequestFile, formObj.formModel.replyFile], (currentOperateType === 'EDIT') ? {defaultHeight: 224, noDefaultHeight: 362,defaultMarginTop: 224, noDefaultMarginTop: 362} : {defaultHeight: 319, noDefaultHeight: 493,defaultMarginTop: 319, noDefaultMarginTop: 493}, '5','', 'branchPartyMeetingFile,submitRecordRequestFile,replyFile', innerWidth > 1200 ? 5 : 8)"
                             ></div>
                           </el-col>
 
@@ -905,7 +905,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [ formObj.formModel.cultivateEducationRecordFile], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 52, noDefaultHeight: 98,defaultMarginTop: 52, noDefaultMarginTop: 98}, '', '', 'cultivateEducationRecordFile', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [ formObj.formModel.cultivateEducationRecordFile], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 64, noDefaultHeight: 123,defaultMarginTop: 64, noDefaultMarginTop: 123}, '', '', 'cultivateEducationRecordFile', innerWidth > 1200 ? 1 : 2)"
                             ></div>
                           </el-col>
 
@@ -999,7 +999,7 @@
                                                 label-width="106px"
                                               >
                                                 <div
-                                                  v-if="(currentOperateType === 'EDIT') && viewFullPartyInfoObj.thoughtReportRecordList.length > 0 && viewFullPartyInfoObj.thoughtReportRecordList[index] && viewFullPartyInfoObj.thoughtReportRecordList[index].filePath"
+                                                  v-if="(currentOperateType === 'EDIT') && disabledSubmitTime(index,'filePath')"
                                                   class="updatepartydevelop-viewuploadpdffile"
                                                 >
                                                   <div
@@ -1051,7 +1051,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.courseCompletionFile], (currentOperateType === 'EDIT') ? {defaultHeight: 105, noDefaultHeight: 155 +  + formObj.formModel.thoughtReportRecordList.length * 44,defaultMarginTop: 85, noDefaultMarginTop: 135 +  + formObj.formModel.thoughtReportRecordList.length * 44} : {defaultHeight: 116 + formObj.formModel.thoughtReportRecordList.length * 57, noDefaultHeight: 162 + formObj.formModel.thoughtReportRecordList.length * 103,defaultMarginTop: 96 + formObj.formModel.thoughtReportRecordList.length * 57, noDefaultMarginTop: 142 + formObj.formModel.thoughtReportRecordList.length * 103}, '7', formObj.formModel.thoughtReportRecordList, 'courseCompletionFile', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.courseCompletionFile], (currentOperateType === 'EDIT') ? {defaultHeight: 105, noDefaultHeight: 155 +  + formObj.formModel.thoughtReportRecordList.length * 44,defaultMarginTop: 85, noDefaultMarginTop: 135 +  + formObj.formModel.thoughtReportRecordList.length * 44} : {defaultHeight: 140 + formObj.formModel.thoughtReportRecordList.length * 69, noDefaultHeight: 198 + formObj.formModel.thoughtReportRecordList.length * 127,defaultMarginTop: 120 + formObj.formModel.thoughtReportRecordList.length * 69, noDefaultMarginTop: 178 + formObj.formModel.thoughtReportRecordList.length * 127}, '7', formObj.formModel.thoughtReportRecordList, 'courseCompletionFile,thoughtReportRecordList', innerWidth > 1200 ? (1 + formObj.formModel.thoughtReportRecordList.length) : (2 + formObj.formModel.thoughtReportRecordList.length * 2))"
                             ></div>
                           </el-col>
                         </el-row>
@@ -1169,7 +1169,7 @@
                                           >
                                             <el-radio-group
                                               v-model="formObj.formModel.branchPartyMeetingResult1"
-                                              :disabled="(currentOperateType === 'EDIT' && !(!(viewFullPartyInfoObj.branchPartyMeetingResult1 + ''))) || getEleIsDisabled(disabledDataObj['branchPartyMeetingResult1'])"
+                                              :disabled="(currentOperateType === 'EDIT' && (viewFullPartyInfoObj.branchPartyMeetingResult1 === 1) || (viewFullPartyInfoObj.branchPartyMeetingResult1 === 2)) ||  getEleIsDisabled(disabledDataObj['branchPartyMeetingResult1'])"
                                             >
                                               <el-radio :label="1">通过</el-radio>
                                               <el-radio :label="0">未通过</el-radio>
@@ -1234,7 +1234,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.branchPartyMeetingFile1], (currentOperateType === 'EDIT') ? {defaultHeight: 88, noDefaultHeight: 134,defaultMarginTop: 88, noDefaultMarginTop: 134} : {defaultHeight: 98, noDefaultHeight: 144,defaultMarginTop: 98, noDefaultMarginTop: 144}, '', '', 'branchPartyMeetingFile1', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.branchPartyMeetingFile1], (currentOperateType === 'EDIT') ? {defaultHeight: 88, noDefaultHeight: 134,defaultMarginTop: 88, noDefaultMarginTop: 134} : {defaultHeight: 122, noDefaultHeight: 182, defaultMarginTop: 122, noDefaultMarginTop: 182}, '', '', 'branchPartyMeetingFile1', innerWidth > 1200 ? 2 : 3)"
                             ></div>
                           </el-col>
 
@@ -1355,7 +1355,7 @@
                                           >
                                             <el-radio-group
                                               v-model="formObj.formModel.recordsReplyResult"
-                                              :disabled="(currentOperateType === 'EDIT' && !(!(viewFullPartyInfoObj.recordsReplyResult + ''))) ||getEleIsDisabled(disabledDataObj['recordsReplyResult'])"
+                                              :disabled="(currentOperateType === 'EDIT' && (viewFullPartyInfoObj.recordsReplyResult === 1) || (viewFullPartyInfoObj.recordsReplyResult === 2)) || getEleIsDisabled(disabledDataObj['recordsReplyResult'])"
                                             >
                                               <el-radio :label="1">通过</el-radio>
                                               <el-radio :label="0">未通过</el-radio>
@@ -1420,7 +1420,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.publicMaterialsFile, formObj.formModel.recordsRequestFile, formObj.formModel.recordsReplyFile], (currentOperateType === 'EDIT') ? {defaultHeight: 178, noDefaultHeight: 316,defaultMarginTop: 178, noDefaultMarginTop: 316} : {defaultHeight: 213, noDefaultHeight: 351,defaultMarginTop: 213, noDefaultMarginTop: 351}, 2, '', 'publicMaterialsFile,recordsRequestFile,recordsReplyFile', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.publicMaterialsFile, formObj.formModel.recordsRequestFile, formObj.formModel.recordsReplyFile], (currentOperateType === 'EDIT') ? {defaultHeight: 178, noDefaultHeight: 316,defaultMarginTop: 178, noDefaultMarginTop: 316} : {defaultHeight: 261, noDefaultHeight: 435,defaultMarginTop: 261, noDefaultMarginTop: 435}, '10', '', 'publicMaterialsFile,recordsRequestFile,recordsReplyFile', innerWidth > 1200 ? 4 : 7)"
                             ></div>
                           </el-col>
 
@@ -1536,7 +1536,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.syntheticalPoliticalReportFile, formObj.formModel.politicalCheckFile], (currentOperateType === 'EDIT') ? {defaultHeight: 88, noDefaultHeight: 180,defaultMarginTop: 88, noDefaultMarginTop: 180} : {defaultHeight: 110, noDefaultHeight: 202,defaultMarginTop: 110, noDefaultMarginTop: 202}, '', '', 'syntheticalPoliticalReportFile,politicalCheckFile', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.syntheticalPoliticalReportFile, formObj.formModel.politicalCheckFile], (currentOperateType === 'EDIT') ? {defaultHeight: 88, noDefaultHeight: 180,defaultMarginTop: 88, noDefaultMarginTop: 180} : {defaultHeight: 134, noDefaultHeight: 250, defaultMarginTop: 134, noDefaultMarginTop: 250}, '', '', 'syntheticalPoliticalReportFile,politicalCheckFile', innerWidth > 1200 ? 2 : 4)"
                             ></div>
                           </el-col>
 
@@ -1607,7 +1607,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.courseCompletionFile1], (currentOperateType === 'EDIT') ? {defaultHeight: 62, noDefaultHeight: 108,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 72, noDefaultHeight: 118,defaultMarginTop: 52, noDefaultMarginTop: 98}, '', '', 'courseCompletionFile1', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.courseCompletionFile1], (currentOperateType === 'EDIT') ? {defaultHeight: 62, noDefaultHeight: 108,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 85, noDefaultHeight: 143, defaultMarginTop: 65, noDefaultMarginTop: 123}, '12', '', 'courseCompletionFile1', innerWidth > 1200 ? 1 : 2)"
                             ></div>
                           </el-col>
                         </el-row>
@@ -1654,7 +1654,7 @@
                                           >
                                             <el-radio-group
                                               v-model="formObj.formModel.checkResult"
-                                              :disabled="(currentOperateType === 'EDIT' && !(!(viewFullPartyInfoObj.checkResult + ''))) || getEleIsDisabled(disabledDataObj['checkResult'])"
+                                              :disabled="(currentOperateType === 'EDIT' && (viewFullPartyInfoObj.checkResult === 1) || (viewFullPartyInfoObj.checkResult === 2)) || getEleIsDisabled(disabledDataObj['checkResult'])"
                                             >
                                               <el-radio :label="1">通过</el-radio>
                                               <el-radio :label="0">未通过</el-radio>
@@ -1767,7 +1767,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.checkMeetingFile, formObj.formModel.reportRequestFile], (currentOperateType === 'EDIT') ? {defaultHeight: 132, noDefaultHeight: 224,defaultMarginTop: 132, noDefaultMarginTop: 224} : {defaultHeight: 156, noDefaultHeight: 248,defaultMarginTop: 156, noDefaultMarginTop: 248}, '', '', 'checkMeetingFile,reportRequestFile', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.checkMeetingFile, formObj.formModel.reportRequestFile], (currentOperateType === 'EDIT') ? {defaultHeight: 132, noDefaultHeight: 224,defaultMarginTop: 132, noDefaultMarginTop: 224} : {defaultHeight: 192, noDefaultHeight: 308,defaultMarginTop: 192, noDefaultMarginTop: 308}, '', '', 'checkMeetingFile,reportRequestFile', innerWidth > 1200 ? 3 : 5)"
                             ></div>
                           </el-col>
 
@@ -1790,7 +1790,7 @@
                                           >
                                             <el-radio-group
                                               v-model="formObj.formModel.readyCheckReplyResult"
-                                              :disabled="(currentOperateType === 'EDIT' && !(!(viewFullPartyInfoObj.readyCheckReplyResult + ''))) || getEleIsDisabled(disabledDataObj['readyCheckReplyResult'])"
+                                              :disabled="(currentOperateType === 'EDIT' && (viewFullPartyInfoObj.readyCheckReplyResult === 1) || (viewFullPartyInfoObj.readyCheckReplyResult === 2)) || getEleIsDisabled(disabledDataObj['readyCheckReplyResult'])"
                                             >
                                               <el-radio :label="1">通过</el-radio>
                                               <el-radio :label="0">未通过</el-radio>
@@ -1855,7 +1855,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.basicReadyCheckMeetingFile], (currentOperateType === 'EDIT') ? {defaultHeight: 88, noDefaultHeight: 134,defaultMarginTop: 88, noDefaultMarginTop: 134} : {defaultHeight: 98, noDefaultHeight: 144,defaultMarginTop: 98, noDefaultMarginTop: 144}, '', '', 'basicReadyCheckMeetingFile', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.basicReadyCheckMeetingFile], (currentOperateType === 'EDIT') ? {defaultHeight: 88, noDefaultHeight: 134,defaultMarginTop: 88, noDefaultMarginTop: 134} : {defaultHeight: 123, noDefaultHeight: 181,defaultMarginTop: 123, noDefaultMarginTop: 181}, '', '', 'basicReadyCheckMeetingFile', innerWidth > 1200 ? 2 : 3)"
                             ></div>
                           </el-col>
 
@@ -1926,7 +1926,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.consultationConditionFile], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 52, noDefaultHeight: 98,defaultMarginTop: 52, noDefaultMarginTop: 98}, '', '', 'consultationConditionFile', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.consultationConditionFile], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 64, noDefaultHeight: 123,defaultMarginTop: 64, noDefaultMarginTop: 123}, '', '', 'consultationConditionFile', innerWidth > 1200 ? 1 : 2)"
                             ></div>
                           </el-col>
 
@@ -2103,7 +2103,7 @@
                                           >
                                             <el-radio-group
                                               v-model="formObj.formModel.isPostponeConfirmMember"
-                                              :disabled="(currentOperateType === 'EDIT' && !(!(viewFullPartyInfoObj.isPostponeConfirmMember + ''))) || getEleIsDisabled(disabledDataObj['isPostponeConfirmMember'])"
+                                              :disabled="((currentOperateType === 'EDIT') && (viewFullPartyInfoObj.isPostponeConfirmMember === 1) || (viewFullPartyInfoObj.isPostponeConfirmMember === 2)) || getEleIsDisabled(disabledDataObj['isPostponeConfirmMember'])"
                                             >
                                               <el-radio :label="1">是</el-radio>
                                               <el-radio :label="0">否</el-radio>
@@ -2143,7 +2143,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.submitVolunteerBookFile], (currentOperateType === 'EDIT') ? {defaultHeight: 244, noDefaultHeight: 430,defaultMarginTop: 224, noDefaultMarginTop: (formObj.formModel.isPostponeConfirmMember === 1) ? 410 : 364} : {defaultHeight: 256, noDefaultHeight: 440,defaultMarginTop: 236, noDefaultMarginTop: (formObj.formModel.isPostponeConfirmMember === 1) ? 420 : 375}, '', '', 'submitVolunteerBookFile', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.submitVolunteerBookFile], (currentOperateType === 'EDIT') ? {defaultHeight: 244, noDefaultHeight: 430,defaultMarginTop: 224, noDefaultMarginTop: (formObj.formModel.isPostponeConfirmMember === 1) ? 410 : 364} : {defaultHeight: 316, noDefaultHeight: 549, defaultMarginTop: 296, noDefaultMarginTop: (formObj.formModel.isPostponeConfirmMember === 1) ? 529 : 471}, '16', '', 'submitVolunteerBookFile', innerWidth > 1200 ? 5 : 8)"
                             ></div>
                           </el-col>
                         </el-row>
@@ -2238,7 +2238,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.branchPartyBigMeetingRecordFile], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 52, noDefaultHeight: 98,defaultMarginTop: 52, noDefaultMarginTop: 98}, '', '', 'branchPartyBigMeetingRecordFile', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.branchPartyBigMeetingRecordFile], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 64, noDefaultHeight: 123,defaultMarginTop: 64, noDefaultMarginTop: 123}, '', '', 'branchPartyBigMeetingRecordFile', innerWidth > 1200 ? 1 : 2)"
                             ></div>
                           </el-col>
 
@@ -2309,7 +2309,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.checkRequestFile], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 52, noDefaultHeight: 98,defaultMarginTop: 52, noDefaultMarginTop: 98}, '', '', 'checkRequestFile', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.checkRequestFile], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 64, noDefaultHeight: 123, defaultMarginTop: 64, noDefaultMarginTop: 123}, '', '', 'checkRequestFile', innerWidth > 1200 ? 1 : 2)"
                             ></div>
                           </el-col>
 
@@ -2332,7 +2332,7 @@
                                           >
                                             <el-radio-group
                                               v-model="formObj.formModel.replyResult1"
-                                              :disabled="(currentOperateType === 'EDIT' && !(!(viewFullPartyInfoObj.replyResult1 + ''))) || getEleIsDisabled(disabledDataObj['replyResult1'])"
+                                              :disabled="(currentOperateType === 'EDIT' && (viewFullPartyInfoObj.replyResult1 === 1) || (viewFullPartyInfoObj.replyResult1 === 2)) || getEleIsDisabled(disabledDataObj['replyResult1'])"
                                             >
                                               <el-radio :label="1">通过</el-radio>
                                               <el-radio :label="0">未通过</el-radio>
@@ -2445,7 +2445,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.basicPartyCheckMeetingRecordFile, formObj.formModel.replyMaterialsFile1], (currentOperateType === 'EDIT') ? {defaultHeight: 132, noDefaultHeight: 224,defaultMarginTop: 132, noDefaultMarginTop: 224} : {defaultHeight: 156, noDefaultHeight: 248,defaultMarginTop: 156, noDefaultMarginTop: 248}, '19', '', 'basicPartyCheckMeetingRecordFile,replyMaterialsFile1', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.basicPartyCheckMeetingRecordFile, formObj.formModel.replyMaterialsFile1], (currentOperateType === 'EDIT') ? {defaultHeight: 132, noDefaultHeight: 224,defaultMarginTop: 132, noDefaultMarginTop: 224} : {defaultHeight: 192, noDefaultHeight: 308, defaultMarginTop: 192, noDefaultMarginTop: 308}, '19', '', 'basicPartyCheckMeetingRecordFile,replyMaterialsFile1', innerWidth > 1200 ? 3 : 5)"
                             ></div>
                           </el-col>
 
@@ -2468,7 +2468,7 @@
                                           >
                                             <el-radio-group
                                               v-model="formObj.formModel.replyResult2"
-                                              :disabled="(currentOperateType === 'EDIT' && !(!(viewFullPartyInfoObj.replyResult2 + ''))) || getEleIsDisabled(disabledDataObj['replyResult2'])"
+                                              :disabled="(currentOperateType === 'EDIT' && (viewFullPartyInfoObj.replyResult2 === 1) || (viewFullPartyInfoObj.replyResult2 === 2)) || getEleIsDisabled(disabledDataObj['replyResult2'])"
                                             >
                                               <el-radio :label="1">通过</el-radio>
                                               <el-radio :label="0">未通过</el-radio>
@@ -2485,7 +2485,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [], (currentOperateType === 'EDIT') ? {defaultHeight: 62, noDefaultHeight: 62,defaultMarginTop: 42, noDefaultMarginTop: 42} : {defaultHeight: 62, noDefaultHeight: 62,defaultMarginTop: 42, noDefaultMarginTop: 42}, '', '', '', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [], (currentOperateType === 'EDIT') ? {defaultHeight: 74, noDefaultHeight: 74,defaultMarginTop: 54, noDefaultMarginTop: 54} : {defaultHeight: 74, noDefaultHeight: 74, defaultMarginTop: 54, noDefaultMarginTop: 54}, '20', '', '', 1)"
                             ></div>
                           </el-col>
                         </el-row>
@@ -2582,7 +2582,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.readyMemberTeachRecordFile], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 52, noDefaultHeight: 98,defaultMarginTop: 52, noDefaultMarginTop: 98}, '', '', 'readyMemberTeachRecordFile', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.readyMemberTeachRecordFile], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 64, noDefaultHeight: 123,defaultMarginTop: 64, noDefaultMarginTop: 123}, '', '', 'readyMemberTeachRecordFile', innerWidth > 1200 ? 1 : 2)"
                             ></div>
                           </el-col>
 
@@ -2653,7 +2653,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.submitConfirmBookFile], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 52, noDefaultHeight: 98,defaultMarginTop: 52, noDefaultMarginTop: 98}, '', '', 'submitConfirmBookFile', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.submitConfirmBookFile], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 64, noDefaultHeight: 123,defaultMarginTop: 64, noDefaultMarginTop: 123}, '', '', 'submitConfirmBookFile', innerWidth > 1200 ? 1 : 2)"
                             ></div>
                           </el-col>
 
@@ -2682,7 +2682,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="{height: ((innerWidth > 1200) ? '38px' : '38px'), marginTop: ((innerWidth > 1200) ? '-38px' : '-38px')}"
+                              :style="{height: ((innerWidth > 1200) ? '50px' : '50px'), marginTop: ((innerWidth > 1200) ? '-50px' : '-50px')}"
                             ></div>
                           </el-col>
 
@@ -2753,7 +2753,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.consultationTalkRecordFile], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 53, noDefaultHeight: 99,defaultMarginTop: 53, noDefaultMarginTop: 99}, '', '', 'consultationTalkRecordFile', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.consultationTalkRecordFile], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 65, noDefaultHeight: 123, defaultMarginTop: 65, noDefaultMarginTop: 123}, '', '', 'consultationTalkRecordFile', innerWidth > 1200 ? 1 : 2)"
                             ></div>
                           </el-col>
 
@@ -2874,7 +2874,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.branchPartyBigMeetingRecordFile1, formObj.formModel.publicMaterialsFile1], (currentOperateType === 'EDIT') ? {defaultHeight: 88, noDefaultHeight: 180,defaultMarginTop: 88, noDefaultMarginTop: 180} : {defaultHeight: 110, noDefaultHeight: 202,defaultMarginTop: 110, noDefaultMarginTop: 202}, '', '', 'branchPartyBigMeetingRecordFile1,publicMaterialsFile1', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.branchPartyBigMeetingRecordFile1, formObj.formModel.publicMaterialsFile1], (currentOperateType === 'EDIT') ? {defaultHeight: 88, noDefaultHeight: 180,defaultMarginTop: 88, noDefaultMarginTop: 180} : {defaultHeight: 134, noDefaultHeight: 250, defaultMarginTop: 134, noDefaultMarginTop: 250}, '', '', 'branchPartyBigMeetingRecordFile1,publicMaterialsFile1', innerWidth > 1200 ? 2 : 4)"
                             ></div>
                           </el-col>
 
@@ -2945,7 +2945,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.checkRequestMaterialsFile1], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 52, noDefaultHeight: 98,defaultMarginTop: 52, noDefaultMarginTop: 98}, '', '', 'checkRequestMaterialsFile1', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.checkRequestMaterialsFile1], (currentOperateType === 'EDIT') ? {defaultHeight: 42, noDefaultHeight: 88,defaultMarginTop: 42, noDefaultMarginTop: 88} : {defaultHeight: 64, noDefaultHeight: 123, defaultMarginTop: 64, noDefaultMarginTop: 123}, '', '', 'checkRequestMaterialsFile1', innerWidth > 1200 ? 1 : 2)"
                             ></div>
                           </el-col>
 
@@ -2968,7 +2968,7 @@
                                           >
                                             <el-radio-group
                                               v-model="formObj.formModel.replyResult3"
-                                              :disabled="(currentOperateType === 'EDIT' && !(!(viewFullPartyInfoObj.replyResult3 + ''))) || getEleIsDisabled(disabledDataObj['replyResult3'])"
+                                              :disabled="(currentOperateType === 'EDIT' && (viewFullPartyInfoObj.replyResult3 === 1) || (viewFullPartyInfoObj.replyResult3 === 2)) || getEleIsDisabled(disabledDataObj['replyResult3'])"
                                             >
                                               <el-radio :label="1">通过</el-radio>
                                               <el-radio :label="0">未通过</el-radio>
@@ -3081,7 +3081,7 @@
                           <el-col :span="24">
                             <div
                               class="roc-tabpane-step-tail"
-                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.basicPartyCheckMeetingRecordFile1, formObj.formModel.replyMaterialsFile], (currentOperateType === 'EDIT') ? {defaultHeight: 152, noDefaultHeight: 254,defaultMarginTop: 132, noDefaultMarginTop: 224} : {defaultHeight: 176, noDefaultHeight: 268,defaultMarginTop: 156, noDefaultMarginTop: 248}, '27', '', 'basicPartyCheckMeetingRecordFile1,replyMaterialsFile', innerWidth > 1200 ? 1 : 2)"
+                              :style="getNodeTabpaneStepTailStyle(innerWidth, [formObj.formModel.basicPartyCheckMeetingRecordFile1, formObj.formModel.replyMaterialsFile], (currentOperateType === 'EDIT') ? {defaultHeight: 152, noDefaultHeight: 254,defaultMarginTop: 132, noDefaultMarginTop: 224} : {defaultHeight: 242, noDefaultHeight: 358, defaultMarginTop: 192, noDefaultMarginTop: 308}, '27', '', 'basicPartyCheckMeetingRecordFile1,replyMaterialsFile', innerWidth > 1200 ? 3 : 5)"
                             ></div>
                           </el-col>
                         </el-row>
@@ -3173,7 +3173,8 @@ import {
   updateFullPartyMemberBasicInfo,
   viewDetailFullPartyMember,
   checkProgressAndCompletion,
-  changeOfficialFullPartyMember
+  changeOfficialFullPartyMember,
+  reactivateFullPartyMember
 } from "@/api/PartyBuildingMgr/FullPartyMember";
 import { regularDownloadPdfFile } from "@/utils/rockeryutil";
 
@@ -3185,10 +3186,17 @@ export default {
     'roc-vue-pdf-dialog': () => import('@/components/RocVuePdfDialog')
   },
   props: {
+    // 操作类型
     operateType: {
       type: String,
       required: true
     },
+    // 编辑类型
+    updateType: {
+      type: String,
+      required: false,
+      default: ''
+    },
     id: {
       type: [String, Number],
       default: null
@@ -3200,6 +3208,11 @@ export default {
       educationOptions: [],
       formObj: {
         formModel: {
+          confirmActiveMemberTime: undefined,
+          branchPartyBigMeetingTime: undefined,
+          basicPartyCheckMeetingTime: undefined,
+          readyDeadline1Range: undefined,
+          basicPartyCheckMeetingTime1: undefined,
           thoughtReportRecordList: [
             {
               submitTime: null,
@@ -3261,26 +3274,39 @@ export default {
     },
     // 第6步 确定为积极分子的时间
     'formObj.formModel.confirmActiveMemberTime'(newValue, oldValue) {
-      (newValue !== this.formObj.formModel.branchPartyMeetingTime) && this.$alert('第6步确定为积极分子的时间与第5步支委会会议时间不相同!', '温馨提示', { type: 'warning' });
+      if (newValue && (newValue !== oldValue) && (newValue !== this.formObj.formModel.branchPartyMeetingTime) && (this.currentOperateType !== 'EDIT' || (this.currentOperateType === 'EDIT' && oldValue !== undefined))) {
+        this.$alert('第6步确定为积极分子的时间与第5步支委会会议时间不相同!', '温馨提示', { type: 'warning' });
+      }
     },
     // 第17步 支部大会的会议时间
     'formObj.formModel.branchPartyBigMeetingTime'(newValue, oldValue) {
-      (newValue !== this.formObj.formModel.branchPartyAcceptReadyMemberTime) && this.$alert('第17步支部大会的会议时间与第16步支委会接收预备党员的时间不相同!', '温馨提示', { type: 'warning' });
+      if (newValue && (newValue !== oldValue) && (newValue !== this.formObj.formModel.branchPartyAcceptReadyMemberTime) && (this.currentOperateType !== 'EDIT' || (this.currentOperateType === 'EDIT' && oldValue !== undefined))) {
+        this.$alert('第17步支部大会的会议时间与第16步支委会接收预备党员的时间不相同!', '温馨提示', { type: 'warning' });
+      }
     },
     // 第19步 基层党委审批会议时间
     'formObj.formModel.basicPartyCheckMeetingTime'(newValue, oldValue) {
-      (newValue !== this.formObj.formModel.branchPartyAcceptReadyMemberTime) && this.$alert('第19步基层党委审批会议时间与第16步关于预备党员基层党委审批意见的时间不相同!', '温馨提示', { type: 'warning' });
+      if (newValue && (newValue !== oldValue) && (newValue !== this.formObj.formModel.branchPartyAcceptReadyMemberTime) && (this.currentOperateType !== 'EDIT' || (this.currentOperateType === 'EDIT' && oldValue !== undefined))) {
+        this.$alert('第19步基层党委审批会议时间与第16步关于预备党员基层党委审批意见的时间不相同!', '温馨提示', { type: 'warning' });
+      }
     },
     // 第21步 预备期
     'formObj.formModel.readyDeadline1Range'(newValue, oldValue) {
-      let comparedArr = this.formObj.formModel.readyDeadlineRange;
-      let newValueStr = (newValue && newValue.length === 2) ? newValue.join(',') : '';
-      let comparedStr = (comparedArr && comparedArr.length === 2) ? comparedArr.join(',') : '';
-      (newValueStr != comparedStr) && this.$alert('第21步预备期与第16步预备期的时间不相同!', '温馨提示', { type: 'warning' });
+      if (newValue) {
+        // 初始化数据
+        const [comparedArr, newValueStr, oldValueStr] = [this.formObj.formModel.readyDeadlineRange, (newValue && newValue.length === 2) ? newValue.join(',') : '', (oldValue && oldValue.length === 2) ? oldValue.join(',') : ''];
+        let comparedStr = (comparedArr && comparedArr.length === 2) ? comparedArr.join(',') : '';
+
+        if ((newValueStr !== oldValueStr) && (newValueStr != comparedStr) && (this.currentOperateType !== 'EDIT' || (this.currentOperateType === 'EDIT' && oldValue !== undefined))) {
+          this.$alert('第21步预备期与第16步预备期的时间不相同!', '温馨提示', { type: 'warning' });
+        }
+      }
     },
     // 第27步 基层党委审批会议时间
     'formObj.formModel.basicPartyCheckMeetingTime1'(newValue, oldValue) {
-      (newValue != this.formObj.formModel.confirmBasicPartyCheckIdeaTime) && this.$alert('第27步基层党委审批会议时间与第16步转正基层党委审批意见的时间不相同!', '温馨提示', { type: 'warning' });
+      if (newValue && (newValue !== oldValue) && (newValue != this.formObj.formModel.confirmBasicPartyCheckIdeaTime) && (this.currentOperateType !== 'EDIT' || (this.currentOperateType === 'EDIT' && oldValue !== undefined))) {
+        this.$alert('第27步基层党委审批会议时间与第16步转正基层党委审批意见的时间不相同!', '温馨提示', { type: 'warning' });
+      }
     }
   },
   computed: {
@@ -3292,6 +3318,14 @@ export default {
         this.$emit('update:operateType', val);
       }
     },
+    currentUpdateType: {
+      get() {
+        return this.updateType;
+      },
+      set(val) {
+        this.$emit('update:updateType', val);
+      }
+    },
     currentId() {
       return this.id;
     }
@@ -3356,8 +3390,11 @@ export default {
             filePath: null
           }
         ];
-        if (thoughtReportRecord || thoughtReportRecord?.length > 0) {
+        if (thoughtReportRecord && thoughtReportRecord?.length > 0) {
           thoughtReportRecordList = [...thoughtReportRecord];
+          this.viewFullPartyInfoObj.thoughtReportRecordList = [...thoughtReportRecord];
+        } else {
+          this.viewFullPartyInfoObj.thoughtReportRecordList = null;
         }
 
         // 第10步 公示时间数据
@@ -3395,15 +3432,45 @@ export default {
           ((tempFormModel[item] !== 0) && (!tempFormModel[item] || JSON.stringify(tempFormModel[item]) === '{}' || JSON.stringify(tempFormModel[item]) === '[]')) && (delete tempFormModel[item]);
         });
 
-        console.log('tempFormModel===', tempFormModel);
-
         this.viewFullPartyInfoObj = {
-          ...tempFormModel,
-          thoughtReportRecordList: [...thoughtReportRecordList]
+          ...this.viewFullPartyInfoObj,
+          ...tempFormModel
         };
 
+        const { confirmActiveMemberTime, branchPartyBigMeetingTime, basicPartyCheckMeetingTime, basicPartyCheckMeetingTime1, readyDeadline1Range, ...tempEditFormModel } = tempFormModel;
+
+        // 重激活编辑操作改变当前步骤未通过的结果为通过
+        if (this.currentUpdateType === 'REACTIVATE') {
+          if (tempEditFormModel.flowStatus === 27) { // 27
+            tempEditFormModel.replyResult3 = undefined;
+          } else if (tempEditFormModel.flowStatus === 20) { // 20 
+            tempEditFormModel.replyResult2 = undefined;
+          } else if (tempEditFormModel.flowStatus === 19) { // 19
+            tempEditFormModel.replyResult1 = undefined;
+          } else if (tempEditFormModel.flowStatus === 14) { // 14
+            tempEditFormModel.readyCheckReplyResult = undefined;
+          } else if (tempEditFormModel.flowStatus === 13) { // 13
+            tempEditFormModel.checkResult = undefined;
+          } else if (tempEditFormModel.flowStatus === 10) { // 10
+            tempEditFormModel.recordsReplyResult = undefined;
+          } else if (tempEditFormModel.flowStatus === 9) { // 9
+            tempEditFormModel.branchPartyMeetingResult1 = undefined;
+          } else if (tempEditFormModel.flowStatus === 5) { // 5
+            if (tempEditFormModel.replyResult === 0) { // 批复结果
+              tempEditFormModel.replyResult = undefined;
+            } else if (tempEditFormModel.meetingResult === 0) { // 会议结果
+              tempEditFormModel.meetingResult = undefined;
+            } else { }
+          } else { }
+        }
+
         this.formObj.formModel = {
-          ...tempFormModel,
+          confirmActiveMemberTime: confirmActiveMemberTime || null,
+          branchPartyBigMeetingTime: branchPartyBigMeetingTime || null,
+          basicPartyCheckMeetingTime: basicPartyCheckMeetingTime || null,
+          basicPartyCheckMeetingTime1: basicPartyCheckMeetingTime1 || null,
+          readyDeadline1Range: readyDeadline1Range || null,
+          ...tempEditFormModel,
           thoughtReportRecordList: [...thoughtReportRecordList]
         };
       });
@@ -3563,8 +3630,6 @@ export default {
             ...basicInfoReq
           };
 
-          console.log('basicInfoReq===', basicInfoReq);
-
           // 移除basicInfoReq对象的属性没有值的元素
           Object.keys(basicInfoReq).forEach(item => {
             ((basicInfoReq[item] !== 0) && (!basicInfoReq[item] || JSON.stringify(basicInfoReq[item]) === '{}' || JSON.stringify(basicInfoReq[item]) === '[]')) && (delete basicInfoReq[item]);
@@ -3624,8 +3689,6 @@ export default {
                     ...this.getProgressInfoReqData({ ...reqData })
                   };
 
-                  console.log('progressInfoReq===', progressInfoReq);
-
                   // 移除progressInfoReq对象的属性没有值的元素
                   Object.keys(progressInfoReq).forEach(item => {
                     ((progressInfoReq[item] !== 0) && (!progressInfoReq[item] || JSON.stringify(progressInfoReq[item]) === '{}' || JSON.stringify(progressInfoReq[item]) === '[]')) && (delete progressInfoReq[item]);
@@ -3827,30 +3890,134 @@ export default {
     getNodeTabpaneStepTailStyle(innerWidth, stepitemObj, defaultValueObj, baseNum, list = [], checkFieldStr, dataViewNum) {
       // 判断操作模式
       if (this.currentOperateType === 'EDIT') { // 编辑模式
+
         // 校验当前节点数据是否保存
         if (checkFieldStr) {
-          let [hasValueFlag, noHasValueFlag, checkFieldStrArr] = [0, 0, checkFieldStr.split(',')];
+
+          // 初始化编辑模式的数据变量
+          let [hasValueFlag, noHasValueFlag, checkFieldStrArr, uploadNotEnableFlag, uploadEnableFlag, incrementBase, heightBase, thoughtEmptyValueFlag, thoughtHasValueFlag, thoughtNoHasValueFlag, viewThoughtHasValueFlag, viewThoughtNoHasValueFlag] = [0, 0, checkFieldStr.split(','), 0, 0, 0, 0, 0, 0, 0, 0, 0];
+
+          // 校验是否是已保存数据
           for (let checkItem of checkFieldStrArr) {
-            if (!this.viewFullPartyInfoObj[checkItem]) {
-              noHasValueFlag += 1;
+            if (checkItem === 'thoughtReportRecordList') {
+              const thoughtReportItem = this.viewFullPartyInfoObj[checkItem];
+              if (thoughtReportItem) {
+                for (let thoughtIndex = 0; thoughtIndex < thoughtReportItem.length; thoughtIndex++) {
+                  if (thoughtReportItem[thoughtIndex]) {
+                    if (thoughtReportItem[thoughtIndex].filePath) {
+                      viewThoughtHasValueFlag += 1;
+                    } else {
+                      viewThoughtNoHasValueFlag += 1;
+                    }
+                  } else {
+                    continue;
+                  }
+                }
+              } else {
+                continue;
+              }
+            } else {
+              if (!this.viewFullPartyInfoObj[checkItem]) {
+                noHasValueFlag += 1;
+                continue;
+              }
+
+              hasValueFlag += 1;
+            }
+          }
+
+          // 过滤上传控件存在值或不存在值的字段个数
+          for (let field of stepitemObj) {
+            if (!field) {
               continue;
+            } else if (field === 'ROCPDFUPLOADSELECT') {
+              uploadNotEnableFlag += 1;
+            } else {
+              uploadEnableFlag += 1;
             }
+          }
 
-            hasValueFlag += 1;
+          // 排除已保存上传控件字段数据
+          uploadEnableFlag -= hasValueFlag;
+
+          // 第3步增加高度基数
+          if (baseNum === '3') {
+            if (uploadEnableFlag === 1) {
+              heightBase += 30;
+            } else {
+              if (hasValueFlag === 1) {
+                heightBase += 150;
+              } else {
+                heightBase += 120;
+              }
+            }
+          }
+
+          // 第5、10步增加增量基数
+          if (['5', '10'].includes(baseNum)) {
+            incrementBase += (uploadNotEnableFlag + uploadEnableFlag);
+          }
+
+          // 第5步增加增量基数
+          if (baseNum === '7') {
+            incrementBase += 55;
+            heightBase += 20;
+
+            // 校验思想汇报表单
+            const thoughtFromArr = this.formObj.formModel.thoughtReportRecordList || [];
+            for (let t = 0; t < thoughtFromArr.length; t++) {
+              if (thoughtFromArr[t]) {
+                if (!thoughtFromArr[t].filePath) {
+                  thoughtEmptyValueFlag += 1;
+                } else if (thoughtFromArr[t].filePath === 'ROCPDFUPLOADSELECT') {
+                  thoughtNoHasValueFlag += 1;
+                } else {
+                  thoughtHasValueFlag += 1;
+                }
+              } else {
+                continue;
+              }
+            }
+
+            // 排除已保存思想汇报内容上传控件字段数据
+            thoughtHasValueFlag -= viewThoughtHasValueFlag;
+          }
+
+          // 第12步增加高度基数
+          if (baseNum === '12') {
+            if (uploadEnableFlag === 1) {
+              heightBase += 30;
+            } else {
+              if (hasValueFlag === 1) {
+                heightBase += 60;
+              } else {
+                heightBase += 40;
+              }
+            }
+          }
+
+          // 第16、27步增加高度基数
+          if (['16', '27'].includes(baseNum)) {
+            heightBase += 50;
+          }
+
+          // 第19步增加增量基数
+          if (baseNum === '19' && (uploadNotEnableFlag + uploadEnableFlag) === 2) {
+            incrementBase += 2;
           }
 
           // 浏览器可视化宽度大于1200
           if (innerWidth > 1200) {
             return {
-              height: `${46 + hasValueFlag * 58 + noHasValueFlag * 69 - 50 + (dataViewNum - hasValueFlag - noHasValueFlag) * 46}px`,
-              marginTop: `-${46 + hasValueFlag * 58 + noHasValueFlag * 69 - 50 + (dataViewNum - hasValueFlag - noHasValueFlag) * 46}px`
+              height: `${46 + hasValueFlag * 58 + noHasValueFlag * 69 - 50 + (thoughtEmptyValueFlag + thoughtHasValueFlag) * 69 + (dataViewNum - hasValueFlag - noHasValueFlag - thoughtEmptyValueFlag - thoughtHasValueFlag) * 58 + uploadNotEnableFlag * 60 + (uploadEnableFlag + thoughtHasValueFlag) * 115 + incrementBase + heightBase}px`,
+              marginTop: `-${46 + hasValueFlag * 58 + noHasValueFlag * 69 - 50 + (thoughtEmptyValueFlag + thoughtHasValueFlag) * 69 + (dataViewNum - hasValueFlag - noHasValueFlag - thoughtEmptyValueFlag - thoughtHasValueFlag) * 58 + uploadNotEnableFlag * 60 + (uploadEnableFlag + thoughtHasValueFlag) * 115 + incrementBase}px`
             };
           }
 
           // 浏览器可视化宽小于等于1200
           return {
-            height: `${46 + hasValueFlag * 58 + noHasValueFlag * 69 + (dataViewNum - hasValueFlag - noHasValueFlag) * 46}px`,
-            marginTop: `-${46 + hasValueFlag * 46 + noHasValueFlag * 57 + (dataViewNum - hasValueFlag - noHasValueFlag) * 46}px`
+            height: `${46 + (dataViewNum - noHasValueFlag) * 58 + noHasValueFlag * 69 - 50 + uploadEnableFlag * 115 + incrementBase + heightBase}px`,
+            marginTop: `-${46 + (dataViewNum - noHasValueFlag) * 58 + noHasValueFlag * 69 - 50 + uploadEnableFlag * 115 + incrementBase}px`
           };
         }
 
@@ -3868,7 +4035,7 @@ export default {
           marginTop: `-${defaultValueObj['noDefaultMarginTop']}px`
         };
       } else { // 非编辑模式
-      console.log('Object===', 'sjhsjhsgs');
+
         // 初始化变量数据
         let [
           emptyBase, // 上传控件未上传的基数
@@ -3882,7 +4049,8 @@ export default {
         // 过滤上传控件存在值或不存在值的字段个数
         for (let field of stepitemObj) {
           if (!field) {
-            emptyBase += 1;
+            // emptyBase += 1;
+            continue;
           } else if (field === 'ROCPDFUPLOADSELECT') {
             notEnableFlag += 1;
           } else {
@@ -3890,17 +4058,24 @@ export default {
           }
         }
 
-        if (baseNum && (enableFlag + notEnableFlag) === 3) {
+        if (['5', '10'].includes(baseNum)) {
+          if ((enableFlag + notEnableFlag) === 3) {
+            incrementBase += 3;
+          } else if ((enableFlag + notEnableFlag) === 2) {
+            incrementBase += 2;
+          } else { }
+        } else if (baseNum === '27') {
+          if (enableFlag === 2) {
+            incrementBase += 2;
+          }
+        } else if (baseNum && (enableFlag + notEnableFlag) === 3) {
           incrementBase += baseNum;
-        }
+        } else { }
 
         // 校验:在第7步,思想汇报内容动态变动
         if (baseNum === '7' && list.length > 0) {
           for (let baseItem of list) {
             if (!baseItem.filePath) {
-              if (this.currentOperateType === 'EDIT') {
-                emptyBase += 1;
-              }
               continue;
             } else if (baseItem.filePath === 'ROCPDFUPLOADSELECT') {
               notEnableFlag += 1;
@@ -3931,8 +4106,8 @@ export default {
           }
 
           return {
-            height: `${46 + emptyBase * 69 + notEnableFlag * notEnableBase + enableFlag * enableBase + incrementBase - 50 + (dataViewNum - emptyBase - notEnableFlag - enableFlag) * 58}px`,
-            marginTop: `-${46 + emptyBase * 69 + notEnableFlag * notEnableBase + enableFlag * enableBase + incrementBase - 50 + (dataViewNum - emptyBase - notEnableFlag - enableFlag) * 58}px`
+            height: `${defaultValueObj['defaultHeight'] + notEnableFlag * notEnableBase + enableFlag * enableBase + incrementBase}px`,
+            marginTop: `-${defaultValueObj['defaultMarginTop'] + notEnableFlag * notEnableBase + enableFlag * enableBase + incrementBase}px`
           };
         }
 
@@ -4060,7 +4235,7 @@ export default {
      * 判断当前流程属于第几步
      */
     getProgressNum(name, reqData, progressInfoReq) {
-      if (reqData.checkRequestMaterialsFile1 && reqData.replyResult3) { // 27
+      if (reqData.checkRequestMaterialsFile1 && ((reqData.replyResult3 === 0) || (reqData.replyResult3 === 1))) { // 27
         return 27;
       } else if (reqData.publicMaterialsFile1 && reqData.checkRequestTime1) { // 26
         return 26;
@@ -4070,11 +4245,11 @@ export default {
         return 24;
       } else if (reqData.readyMemberTeachRecordFile && reqData.submitConfirmBookTime) { // 22
         return 22;
-      } else if (reqData.replyResult2 && progressInfoReq.readyDeadline1) { // 21
+      } else if (((reqData.replyResult2 === 0) || (reqData.replyResult2 === 1)) && progressInfoReq.readyDeadline1) { // 21
         return 21;
-      } else if (reqData.replyMaterialsFile1 && reqData.replyResult2) { // 20
+      } else if (reqData.replyMaterialsFile1 && ((reqData.replyResult2 === 0) || (reqData.replyResult2 === 1))) { // 20
         return 20;
-      } else if (reqData.checkRequestFile && reqData.replyResult1) { // 19
+      } else if (reqData.checkRequestFile && ((reqData.replyResult1 === 0) || (reqData.replyResult1 === 1))) { // 19
         return 19;
       } else if (reqData.branchPartyBigMeetingRecordFile && reqData.checkRequestTime) { // 18
         return 18;
@@ -4084,9 +4259,9 @@ export default {
         return 16;
       } else if (reqData.basicReadyCheckMeetingFile && reqData.consultationTime) { // 15
         return 15;
-      } else if (reqData.reportRequestFile && reqData.readyCheckReplyResult) { // 14
+      } else if (reqData.reportRequestFile && ((reqData.readyCheckReplyResult === 0) || (reqData.readyCheckReplyResult === 1))) { // 14
         return 14;
-      } else if (reqData.courseCompletionFile1 && reqData.checkResult) { // 13
+      } else if (reqData.courseCompletionFile1 && ((reqData.checkResult === 0) || (reqData.checkResult === 1))) { // 13
         return 13;
       } else if (reqData.politicalCheckFile && reqData.courseCompletionTime1) { // 12
         return 12;
@@ -4094,7 +4269,7 @@ export default {
         return 11;
       } else if (reqData.branchPartyMeetingFile1 && progressInfoReq.publicTime) { // 10
         return 10;
-      } else if (reqData.listenToFile && reqData.branchPartyMeetingResult1) { // 9
+      } else if (reqData.listenToFile && ((reqData.branchPartyMeetingResult1 === 0) || (reqData.branchPartyMeetingResult1 === 1))) { // 9
         return 9;
       } else if (progressInfoReq.thoughtReportRecord && progressInfoReq.thoughtReportRecord.length > 0 && reqData.listenToTime) { // 8
         return 8;
@@ -4102,7 +4277,7 @@ export default {
         return 7;
       } else if (reqData.replyFile && reqData.confirmActiveMemberTime) { // 6
         return 6;
-      } else if (reqData.referrePageFile && reqData.meetingResult) { // 5
+      } else if (reqData.referrePageFile && ((reqData.meetingResult === 0 || reqData.meetingResult === 1))) { // 5
         return 5;
       } else if (reqData.cardOrRegisterBookFile && reqData.referrer) { // 4
         return 4;
@@ -4226,7 +4401,7 @@ export default {
       // 编辑模式
       if (this.currentOperateType === 'EDIT') {
         // 获取保存的思想汇报内容
-        const thoughtReportRecordList = this.viewFullPartyInfoObj.thoughtReportRecordList;
+        let thoughtReportRecordList = this.viewFullPartyInfoObj.thoughtReportRecordList;
 
         // 此项数据后端已保存
         if (thoughtReportRecordList && thoughtReportRecordList.length >= 1 && thoughtReportRecordList[index] && thoughtReportRecordList[index][fieldStr]) {

+ 32 - 11
src/views/PartyBuildingMgr/FullPartyMember/FullPartyMemberIndex.vue

@@ -3,7 +3,7 @@
  * @Author: Rockery
  * @Date: 2021-12-10 10:39:07
  * @LastEditors: Rockery
- * @LastEditTime: 2022-01-05 11:58:45
+ * @LastEditTime: 2022-01-18 16:28:42
  * @FilePath: \party_construct_web\src\views\PartyBuildingMgr\FullPartyMember\FullPartyMemberIndex.vue
  * @Copyright: Copyright (c) 2016~2021 Rockery(1113269755@qq.com)
 -->
@@ -123,7 +123,7 @@
                       >
                         <div class="list-cell-img">
                           <img
-                            :src="item.personPhoto ||  require('@/assets/images/empty_img.png')"
+                            :src="item.personPhoto ? (viewPdfFileUrlPrefix + item.personPhoto) : require('@/assets/images/empty_img.png')"
                             @error="imgViewerOnerror"
                           />
                           <div class="list-cell-shield">
@@ -274,6 +274,9 @@
         />
       </div>
     </template>
+    <template v-else-if="pageType == 'VIEW'">
+      <party-member-details :id="currentRow.id" @page-close="handleViewPageCloseClick" />
+    </template>
     <template v-else>
       <div>&nbsp;</div>
     </template>
@@ -374,7 +377,7 @@
           :disabled="!orgRelationChangeObj.form.modifyTime || !orgRelationChangeObj.form.memberName || !orgRelationChangeObj.form.cardNo || !orgRelationChangeObj.form.modifyType"
           type="rocpartyprimarybtn"
           @click="orgRelationChangeSubmitForm"
-        >下一步</el-button>
+        >确定</el-button>
       </div>
     </el-dialog>
   </div>
@@ -388,7 +391,8 @@ export default {
   name: "Fullpartymember",
   components: {
     'roc-pdf-file-upload': () => import('@/components/RocPdfFileUpload'),
-    'update-party-develop': () => import('@/components/UpdatePartyDevelop')
+    'update-party-develop': () => import('@/components/UpdatePartyDevelop'),
+    'party-member-details': () => import('@/components/PartyMemberDetails')
   },
   data() {
     return {
@@ -403,7 +407,9 @@ export default {
       // 查询条件
       queryParams: {
         pageNum: 1,
-        pageSize: 14
+        pageSize: 14,
+        orderByColumn: 'id',
+        isAsc: 'desc'
       },
       // 数据总条数
       total: 10,
@@ -433,7 +439,8 @@ export default {
         },
         currentRow: {}
       },
-      orgRelationChangeTypeOptions: []
+      orgRelationChangeTypeOptions: [],
+      viewPdfFileUrlPrefix: `${window.origin}${process.env.VUE_APP_FILE_VIEW_API}`
     };
   },
   created() {
@@ -468,7 +475,10 @@ export default {
     async getSubOptions() {
       // 组织关系变更类型列表
       await this.getDicts('org_relation_change_type').then(response => {
-        this.orgRelationChangeTypeOptions = response?.data || [];
+        const orgRelationOptions = response?.data || [];
+        this.orgRelationChangeTypeOptions = orgRelationOptions.filter((item) => {
+          return item.dictValue !== '0';
+        });
       });
     },
     /**
@@ -501,7 +511,9 @@ export default {
      * 查看详情按钮事件
      */
     handleViewClick(row) {
-
+      if (!row?.id) return;
+      this.pageType = 'VIEW';
+      this.currentRow = row;
     },
     /**
      * 组织关系变更事件
@@ -524,18 +536,20 @@ export default {
       this.orgRelationChangeObj.open = true;
     },
     /**
-     * 组织关系变更对话框下一步按钮事件
+     * 组织关系变更对话框确定按钮事件
      */
     orgRelationChangeSubmitForm() {
       this.$refs["orgRelationChangeFormRef"].validate(valid => {
         if (valid) {
-          this.$confirm('是否确认当前【下一步】操作?', "警告", {
+          this.$confirm('是否确认当前操作?', "警告", {
             confirmButtonText: "确定",
             cancelButtonText: "取消",
             type: "warning"
           }).then(() => {
             addOrgRelationship(this.orgRelationChangeObj.form).then(
-              response => {
+              () => {
+                this.msgSuccess("组织关系变更成功!");
+                this.orgRelationChangeCancelClick();
                 this.pageType = 'LIST';
               }
             );
@@ -566,6 +580,13 @@ export default {
       this.pageType = param;
       this.refreshData();
     },
+    /**
+     * 详情页面关闭按钮事件
+     */
+    handleViewPageCloseClick(param) {
+      this.pageType = param;
+      this.refreshData();
+    },
     /**
      * 根据两个指定日期计算党龄
      * @applyAddPartyDate [String] 出生日期,格式为"1990-01-01"

+ 309 - 53
src/views/PartyBuildingMgr/OrgRelationship/OrgRelationshipIndex.vue

@@ -3,7 +3,7 @@
  * @Author: Rockery
  * @Date: 2021-12-10 10:45:41
  * @LastEditors: Rockery
- * @LastEditTime: 2021-12-28 17:55:31
+ * @LastEditTime: 2022-01-18 16:33:57
  * @FilePath: \party_construct_web\src\views\PartyBuildingMgr\OrgRelationship\OrgRelationshipIndex.vue
  * @Copyright: Copyright (c) 2016~2021 Rockery(1113269755@qq.com)
 -->
@@ -36,6 +36,7 @@
                     type="date"
                     size="small"
                     clearable
+                    format="yyyy年MM月dd日"
                     value-format="yyyy-MM-dd"
                     style="width: 100%;"
                     placeholder="请选择开始时间"
@@ -47,6 +48,7 @@
                     type="date"
                     size="small"
                     clearable
+                    format="yyyy年MM月dd日"
                     value-format="yyyy-MM-dd"
                     style="width: 100%;"
                     placeholder="请选择结束时间"
@@ -77,6 +79,15 @@
                 </el-form-item>
               </el-form>
             </el-col>
+            <el-col :span="24">
+              <el-button
+                v-hasPermi="['partybuildingmgr:partymemberdevelop:add']"
+                type="rocpartyprimarybtn"
+                icon="el-icon-circle-plus-outline"
+                class="fr mb10"
+                @click="handleReactivateClick"
+              >转入</el-button>
+            </el-col>
             <el-col :span="24">
               <el-table
                 :data="list"
@@ -88,16 +99,37 @@
                 style="width: 100%;"
               >
                 <el-table-column label="姓名" prop="name" :show-overflow-tooltip="true" />
-                <el-table-column label="身份证号" prop="name" :show-overflow-tooltip="true" />
-                <el-table-column label="类型" prop="conditionPoint" :show-overflow-tooltip="true" />
-                <el-table-column label="备注" prop="conditionPoint" :show-overflow-tooltip="true" />
+                <el-table-column label="身份证号" prop="cardNo" :show-overflow-tooltip="true">
+                  <template slot-scope="scope">
+                    <span>{{ scope.row.cardNo || '—' }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  label="类型"
+                  prop="modifyType"
+                  align="center"
+                  :show-overflow-tooltip="true"
+                >
+                  <template slot-scope="scope">
+                    <span>{{ orgRelationChangeTypeFormat(scope.row) || '—' }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column label="备注" prop="remark" :show-overflow-tooltip="true">
+                  <template slot-scope="scope">
+                    <span>{{ scope.row.remark || '—' }}</span>
+                  </template>
+                </el-table-column>
                 <el-table-column
                   label="时间"
                   align="center"
-                  prop="conditionTime"
+                  prop="modifyTime"
                   width="180"
                   :show-overflow-tooltip="true"
-                />
+                >
+                  <template slot-scope="scope">
+                    <span>{{ parseTime(scope.row.modifyTime, '{y}年{m}月{d}日') || '—' }}</span>
+                  </template>
+                </el-table-column>
                 <el-table-column
                   label="操作"
                   align="center"
@@ -107,6 +139,7 @@
                 >
                   <template slot-scope="scope">
                     <el-button
+                      v-if="scope.row.modifyType === 0"
                       v-hasPermi="['partybuildingmgr:orgrelationship:edit']"
                       size="mini"
                       type="text"
@@ -165,52 +198,48 @@
             >
               <el-row>
                 <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-                  <el-form-item label prop="beginTime">
+                  <el-form-item label prop="modifyTime">
                     <div slot="label" class="roc-form-item-label">变更时间:</div>
                     <div
                       class="roc-form-item-input"
-                    >{{ viewPageFormObj.formModel.beginTime || '2021年10月16日' }}</div>
+                    >{{ parseTime(viewPageFormObj.formModel.modifyTime, '{y}年{m}月{d}日') || '—' }}</div>
                   </el-form-item>
                 </el-col>
                 <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-                  <el-form-item label="姓名:" prop="explainer">
+                  <el-form-item label="姓名:" prop="memberName">
                     <div slot="label" class="roc-form-item-label">姓名:</div>
                     <div
                       class="roc-form-item-input"
-                    >{{ viewPageFormObj.formModel.explainer || '章姗姗' }}</div>
+                    >{{ viewPageFormObj.formModel.name || viewPageFormObj.formModel.memberName || '—' }}</div>
                   </el-form-item>
                 </el-col>
                 <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-                  <el-form-item label="身份证号:" prop="explainer">
+                  <el-form-item label="身份证号:" prop="cardNo">
                     <div slot="label" class="roc-form-item-label">身份证号:</div>
-                    <div
-                      class="roc-form-item-input"
-                    >{{ viewPageFormObj.formModel.explainer || '520102198605081139' }}</div>
+                    <div class="roc-form-item-input">{{ viewPageFormObj.formModel.cardNo || '—' }}</div>
                   </el-form-item>
                 </el-col>
                 <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-                  <el-form-item label="类型:" prop="explainer">
+                  <el-form-item label="类型:" prop="modifyType">
                     <div slot="label" class="roc-form-item-label">类型:</div>
                     <div
                       class="roc-form-item-input"
-                    >{{ viewPageFormObj.formModel.explainer || '转出' }}</div>
+                    >{{ orgRelationChangeTypeFormat(viewPageFormObj.formModel) || '—' }}</div>
                   </el-form-item>
                 </el-col>
                 <el-col :span="24">
-                  <el-form-item label="相关材料:" prop="phone">
+                  <el-form-item label="相关材料:" prop="relatedFile">
                     <div slot="label" class="roc-form-item-label">相关材料:</div>
                     <div class="orgrelationship-viewpage-form-desc">
-                      <div @click="handleViewPageCheckClick">查看</div>
-                      <div @click="handleViewPageDownloadClick">下载</div>
+                      <div @click="handleViewPageCheckClick(viewPageFormObj.formModel)">查看</div>
+                      <div @click="handleViewPageDownloadClick(viewPageFormObj.formModel)">下载</div>
                     </div>
                   </el-form-item>
                 </el-col>
                 <el-col :span="24">
-                  <el-form-item label="说明:" prop="explainer">
+                  <el-form-item label="说明:" prop="remark">
                     <div slot="label" class="roc-form-item-label">说明:</div>
-                    <div
-                      class="roc-form-item-input"
-                    >{{ viewPageFormObj.formModel.explainer || '该同志由于XXXX原因,从我支部转出到XXXX支部' }}</div>
+                    <div class="roc-form-item-input">{{ viewPageFormObj.formModel.remark || '—' }}</div>
                   </el-form-item>
                 </el-col>
               </el-row>
@@ -226,27 +255,142 @@
         </div>
       </div>
     </template>
-    <template v-else-if="pageType === 'VIEWPDF'">
-      <div class="orgrelationship-viewpdfpage">
-        <roc-vue-pdf-page
-          pdf-url="/file-api/statics/2021/12/13/6085efe9-74e1-4444-b47a-5c3533ec6901.pdf"
-          @close="handleViewPdfPageCloseClick"
-        ></roc-vue-pdf-page>
+    <template v-else-if="pageType === 'COMPLETEINFO'">
+      <div class="toptitlepage">
+        <div class="toptitlepage-head">
+          <div class="toptitlepage-head-title">
+            <div>
+              <img
+                :src="require('@/assets/logo/home-main-title-logo.png')"
+                @error="imgViewerOnerror"
+              />
+            </div>
+            <div>组织关系变更(完善资料)</div>
+          </div>
+        </div>
+        <update-party-develop
+          :id="currentRow.memberId"
+          operate-type="EDIT"
+          @page-submit="handleAddPageSubmitClick"
+          @page-close="handleAddPageCloseClick"
+        />
       </div>
     </template>
     <template v-else>
       <div>&nbsp;</div>
     </template>
+
+    <roc-vue-pdf-dialog
+      v-if="pdfDialogVisible"
+      :visible.sync="pdfDialogVisible"
+      :pdfUrl="viewPdfFileUrlPrefix + viewPageFormObj.formModel.relatedFile"
+    ></roc-vue-pdf-dialog>
+
+    <!-- 组织关系变更对话框 -->
+    <el-dialog
+      title="组织关系变更"
+      :visible.sync="orgRelationChangeObj.open"
+      width="700px"
+      append-to-body
+      :destroy-on-close="true"
+      :close-on-click-modal="false"
+      class="orgrelationchange-dialog"
+    >
+      <el-form
+        ref="orgRelationChangeFormRef"
+        :model="orgRelationChangeObj.form"
+        :rules="orgRelationChangeObj.rules"
+        label-width="100px"
+      >
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="变更时间:" prop="modifyTime">
+              <el-date-picker
+                v-model="orgRelationChangeObj.form.modifyTime"
+                type="date"
+                clearable
+                format="yyyy年MM月dd日"
+                value-format="yyyy-MM-dd"
+                style="width: 100%;"
+                placeholder="请选择变更时间"
+              ></el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="姓名:" prop="memberName">
+              <el-input
+                v-model="orgRelationChangeObj.form.memberName"
+                clearable
+                placeholder="请输入姓名"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="身份证号:" prop="cardNo">
+              <el-input v-model="orgRelationChangeObj.form.cardNo" clearable placeholder="请输入身份证号" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="类型:" prop="modifyType">
+              <el-select
+                v-model="orgRelationChangeObj.form.modifyType"
+                placeholder="请选择类型"
+                clearable
+                size="small"
+                style="width: 100%;"
+                disabled
+              >
+                <el-option label="转入" value="0" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="相关材料:" prop="relatedFile">
+              <roc-pdf-file-upload
+                key="ROCPDFFILEUPLOADFULLPARTYMEMBERATTACHMENTKEY"
+                v-model="orgRelationChangeObj.form.relatedFile"
+                upload-file-title="相关材料"
+              ></roc-pdf-file-upload>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="说明:" prop="remark">
+              <el-input
+                v-model="orgRelationChangeObj.form.remark"
+                type="textarea"
+                :autosize="{ minRows: 4}"
+                placeholder="请输入说明"
+                clearable
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="rocpartyprimaryplainbtn" @click="orgRelationChangeCancelClick">取 消</el-button>
+        <el-button
+          :disabled="!orgRelationChangeObj.form.modifyTime || !orgRelationChangeObj.form.memberName || !orgRelationChangeObj.form.cardNo || !orgRelationChangeObj.form.modifyType"
+          type="rocpartyprimarybtn"
+          @click="orgRelationChangeSubmitForm"
+        >下一步</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import { } from "@/api/PartyBuildingMgr/OrgRelationship";
+import {
+  listOrgRelationship,
+  addOrgRelationship,
+  viewOrgRelationship,
+} from "@/api/PartyBuildingMgr/OrgRelationship";
 
 export default {
   name: "Orgrelationship",
   components: {
-    'roc-vue-pdf-page': () => import('@/components/RocVuePdfPage')
+    'roc-vue-pdf-dialog': () => import('@/components/RocVuePdfDialog'),
+    'roc-pdf-file-upload': () => import('@/components/RocPdfFileUpload'),
+    'update-party-develop': () => import('@/components/UpdatePartyDevelop')
   },
   data() {
     return {
@@ -255,25 +399,45 @@ export default {
       pageType: 'LIST',
       // 情况说明人选项列表
       situationExplainerOptions: [],
-      total: 10,
+      total: 0,
       queryParams: {
-        pageNum: 0,
+        beginTime: undefined,
+        endTime: undefined,
+        name: undefined,
+        pageNum: 1,
         pageSize: 10
       },
-      list: [
-        {
-          name: '张三'
-        },
-        {
-          name: '李四'
-        }
-      ],
+      list: [],
       viewPageFormObj: {
-        formModel: {
-          checkList: []
+        formModel: {}
+      },
+      orgRelationChangeObj: {
+        open: false,
+        form: {},
+        rules: {
+          modifyTime: [
+            { required: true, message: "变更时间不能为空", trigger: ['change', 'blur'] }
+          ],
+          memberName: [
+            { required: true, message: "姓名不能为空", trigger: 'blur' }
+          ],
+          cardNo: [
+            { required: true, message: "身份证号不能为空", trigger: 'blur' },
+            {
+              pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
+              message: "请输入正确身份证号",
+              trigger: 'blur'
+            }
+          ],
+          modifyType: [
+            { required: true, message: "类型不能为空", trigger: ['change', 'blur'] }
+          ]
         }
       },
-      pdfDialogVisible: false
+      currentRow: {},
+      orgRelationChangeTypeOptions: [],
+      pdfDialogVisible: false,
+      viewPdfFileUrlPrefix: `${window.origin}${process.env.VUE_APP_FILE_VIEW_API}`
     };
   },
   created() {
@@ -283,46 +447,78 @@ export default {
     /**
     * 初始化数据
     */
-    initData() {
+    async initData() {
+      await this.getSubOptions();
       this.getList();
     },
     /**
     * 获取表格数据
     */
     getList() {
-      this.loading = false;
+      this.loading = true;
+      listOrgRelationship(this.queryParams).then(
+        response => {
+          this.list = response.rows || [];
+          this.total = response.total ?? 0;
+          this.loading = false;
+          this.pageType = 'LIST';
+        }
+      );
+    },
+    /**
+     * 获取次要选项列表
+     */
+    async getSubOptions() {
+      // 组织关系变更类型列表
+      await this.getDicts('org_relation_change_type').then(response => {
+        this.orgRelationChangeTypeOptions = response?.data || [];
+      });
+    },
+    /** 组织关系变更类型格式化 */
+    orgRelationChangeTypeFormat(row) {
+      return this.selectDictLabel(this.orgRelationChangeTypeOptions, row?.modifyType);
     },
     /**
     * 搜索按钮事件
     */
     handleQueryClick() {
-
+      this.queryParams.pageNum = 1;
+      this.initData();
     },
     /**
     * 重置按钮事件
     */
     resetQueryClick() {
-
+      this.resetForm("queryForm");
+      this.handleQueryClick();
     },
     /**
     * 完善资料按钮事件
     */
     handleEditClick(row) {
-      this.pageType = 'VIEW';
+      if (!row?.memberId) return;
+      this.currentRow = row;
+      this.pageType = 'COMPLETEINFO';
     },
     /**
     * 详情按钮事件
     */
     handleViewClick(row) {
-      this.pageType = 'VIEW';
+      if (!row.id) return;
+
+      // 获取数据
+      viewOrgRelationship(row.id).then(
+        viewResp => {
+          this.viewPageFormObj.formModel = viewResp.data || {};
+          this.pageType = 'VIEW';
+        }
+      );
     },
     /**
      * 详情页面查看按钮事件
      */
     handleViewPageCheckClick() {
-      viewPdfFile({ filename: '1f30fcfd-0d34-4127-a1cc-fad68fc27c7d.pdf' }).then(response => {
-        this.pageType = 'VIEWPDF';
-      });
+      this.pdfDialogVisible = true;
     },
     /**
      * 详情页面下载按钮事件
@@ -340,6 +536,66 @@ export default {
      */
     handleViewPdfPageCloseClick() {
       this.pageType = 'VIEW';
+    },
+    /**
+     * 组织关系变更事件
+     */
+    async handleReactivateClick() {
+      // 初始化数据
+      this.orgRelationChangeObj.form = {};
+      this.resetForm("orgRelationChangeFormRef");
+      await this.getSubOptions();
+      this.orgRelationChangeObj.form = {
+        modifyType: '0'
+      };
+      this.orgRelationChangeObj.open = true;
+    },
+    /**
+     * 组织关系变更对话框下一步按钮事件
+     */
+    orgRelationChangeSubmitForm() {
+      this.$refs["orgRelationChangeFormRef"].validate(valid => {
+        if (valid) {
+          this.$confirm('是否确认当前【下一步】操作?', "警告", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          }).then(() => {
+            addOrgRelationship(this.orgRelationChangeObj.form).then(
+              () => {
+                this.orgRelationChangeCancelClick();
+                this.msgSuccess("组织关系转入成功!稍后自动跳转完善资料页面!");
+                this.handleQueryClick();
+                this.$nextTick(() => {
+                  this.pageType = 'COMPLETEINFO';
+                });
+              }
+            );
+          }).catch(() => { });
+        }
+      });
+    },
+    /**
+     * 组织关系变更对话框取消按钮事件
+     */
+    orgRelationChangeCancelClick() {
+      this.orgRelationChangeObj.open = false;
+      this.orgRelationChangeObj.form = {};
+      this.resetForm("orgRelationChangeFormRef");
+    },
+    /**
+     * 信息录入页面保存按钮事件
+     */
+    handleAddPageSubmitClick(param) {
+      this.pageType = param;
+      this.initData();
+    },
+    /**
+     * 信息录入页面取消按钮事件
+     */
+    handleAddPageCloseClick(param) {
+      this.pageType = param;
+      this.initData();
     }
   }
 };

+ 92 - 60
src/views/PartyBuildingMgr/PartyMemberDevelop/PartyMemberDevelopIndex.vue

@@ -3,7 +3,7 @@
  * @Author: Rockery
  * @Date: 2021-12-10 10:37:47
  * @LastEditors: Rockery
- * @LastEditTime: 2022-01-07 14:43:25
+ * @LastEditTime: 2022-01-18 17:59:35
  * @FilePath: \party_construct_web\src\views\PartyBuildingMgr\PartyMemberDevelop\PartyMemberDevelopIndex.vue
  * @Copyright: Copyright (c) 2016~2021 Rockery(1113269755@qq.com)
 -->
@@ -146,7 +146,7 @@
                 >
                   <template slot-scope="scope">
                     <el-button
-                      v-if="tabsModel === '7'"
+                      v-show="tabsModel === '7'"
                       v-hasPermi="['partybuildingmgr:partymemberdevelop:reactivate']"
                       size="mini"
                       type="text"
@@ -155,6 +155,7 @@
                       @click="handleReactivateClick(scope.row)"
                     >重新激活</el-button>
                     <el-button
+                      v-show="tabsModel !== '7'"
                       v-hasPermi="['partybuildingmgr:partymemberdevelop:edit']"
                       size="mini"
                       type="text"
@@ -170,6 +171,15 @@
                       style="color: #909399;"
                       @click="handleViewClick(scope.row)"
                     >详情</el-button>
+                    <el-button
+                      v-show="tabsModel === '7'"
+                      v-hasPermi="['partybuildingmgr:partymemberdevelop:delete']"
+                      size="mini"
+                      type="text"
+                      icon="el-icon-delete"
+                      style="color: #e6a23c;"
+                      @click="handleDeleteClick(scope.row)"
+                    >删除</el-button>
                   </template>
                 </el-table-column>
               </el-table>
@@ -188,30 +198,31 @@
       </div>
     </template>
     <template v-else-if="pageType == 'ADD'">
-      <div class="partymemberdevelop-addpage">
-        <div class="partymemberdevelop-addpage-head">
-          <div class="partymemberdevelop-addpage-head-title">
+      <div class="toptitlepage">
+        <div class="toptitlepage-head">
+          <div class="toptitlepage-head-title">
             <div>
               <img
                 :src="require('@/assets/logo/home-main-title-logo.png')"
                 @error="imgViewerOnerror"
               />
             </div>
-            <div>党员发展管理</div>
+            <div>党员发展管理({{ updateTypeObj[updateType] }})</div>
           </div>
         </div>
         <update-party-develop
           :id="currentRow.id"
           :operate-type.sync="operateType"
+          :update-type="updateType"
           @page-submit="handleAddPageSubmitClick"
           @page-close="handleAddPageCloseClick"
         />
       </div>
     </template>
     <template v-else-if="pageType == 'VIEW'">
-      <div class="partymemberdevelop-addpage">
-        <div class="partymemberdevelop-addpage-head">
-          <div class="partymemberdevelop-addpage-head-title">
+      <div class="toptitlepage">
+        <div class="toptitlepage-head">
+          <div class="toptitlepage-head-title">
             <div>
               <img
                 :src="require('@/assets/logo/home-main-title-logo.png')"
@@ -240,6 +251,10 @@ import NodeDataObj from './JsonData/NodeDataObj';
 import {
   listPartyMemberDevelop
 } from "@/api/PartyBuildingMgr/PartyMemberDevelop";
+import {
+  delFullPartyMember,
+  reactivateFullPartyMember
+} from "@/api/PartyBuildingMgr/FullPartyMember";
 
 export default {
   name: "Partymemberdevelop",
@@ -277,6 +292,13 @@ export default {
         }
       ],
       operateType: 'ADD',
+      updateType: '',
+      updateTypeObj: {
+        'ADD': '新增',
+        'TRANSFERIN': '预备党员转入',
+        'REACTIVATE': '重新激活',
+        'EDIT': '更新'
+      },
       currentRow: {},
       minTypeOptionObj: { ...MinTypeOptionObj },
       nodeDataObj: { ...NodeDataObj }
@@ -287,11 +309,15 @@ export default {
     this.initData();
   },
   methods: {
-    /** 初始化数据 */
+    /**
+     * 初始化数据
+     */
     initData() {
       this.getList();
     },
-    /** 获取表格数据 */
+    /**
+     * 获取表格数据
+     */
     getList() {
       this.loading = true;
       listPartyMemberDevelop(this.queryParams).then(
@@ -302,7 +328,9 @@ export default {
         }
       );
     },
-    /** 标签页点击事件 */
+    /**
+     * 标签页点击事件
+     */
     handleTabsClick(targetName) {
       (targetName.name !== '7') && (this.minTypeOptions = this.minTypeOptionObj[targetName.name]);
       this.queryParams = {
@@ -316,40 +344,84 @@ export default {
       };
       this.getList();
     },
-    /** 搜索按钮事件 */
+    /**
+     * 搜索按钮事件
+     */
     handleQueryClick() {
       this.queryParams.pageNum = 1;
       this.initData();
     },
-    /** 重置按钮事件 */
+    /**
+     * 重置按钮事件
+     */
     resetQueryClick() {
       this.resetForm("queryForm");
       this.handleQueryClick();
     },
-    /** 新增按钮事件 */
+    /**
+     * 新增按钮事件
+     */
     handleAddClick() {
       this.pageType = 'ADD';
       this.operateType = 'ADD';
+      this.updateType = 'ADD';
     },
-    /** 预备党员转入按钮事件 */
+    /**
+     * 预备党员转入按钮事件
+     */
     handleTransferInClick() {
-
+      this.pageType = 'ADD';
+      this.operateType = 'ADD';
+      this.updateType = 'TRANSFERIN';
     },
-    /** 重新激活按钮事件 */
+    /**
+     * 重新激活按钮事件
+     */
     handleReactivateClick(row) {
+      if (!row.id) return;
+      // this.pageType = 'ADD';
+      // this.operateType = 'EDIT';
+      // this.updateType = 'REACTIVATE';
+      // this.currentRow = row;
 
+      reactivateFullPartyMember({ memberId: row.id }).then(() => {
+      });
     },
-    /** 更新按钮事件 */
+    /**
+     * 更新按钮事件
+     */
     handleUpdateClick(row) {
       if (!row.id) return;
       this.pageType = 'ADD';
       this.operateType = 'EDIT';
+      this.updateType = 'EDIT';
       this.currentRow = row;
     },
-    /** 详情按钮事件 */
+    /**
+     * 详情按钮事件
+     */
     handleViewClick(row) {
       this.pageType = 'VIEW';
     },
+    /**
+     * 删除按钮操作
+     */
+    handleDeleteClick(row) {
+      if (!row.id) return;
+
+      this.$confirm(`是否确认删除【姓名:${row.name}】的数据项?`, "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        delFullPartyMember(row.id).then(
+          () => {
+            this.initData();
+            this.msgSuccess("删除成功");
+          }
+        );
+      }).catch(() => { });
+    },
     /**
      * 新增页面保存按钮事件
      */
@@ -444,45 +516,5 @@ export default {
       }
     }
   }
-
-  &-addpage {
-    &-head {
-      margin-bottom: 20px;
-      width: 100%;
-      padding: 15px 20px;
-      background: url("../../../assets/images/home-head-img.png"), #ffffff;
-      background-size: 67px 67px, cover;
-      background-position: right 5px bottom 0px, center;
-      background-repeat: no-repeat, no-repeat;
-      border-radius: 10px;
-
-      &-title {
-        display: flex;
-        align-items: center;
-
-        div {
-          &:first-child {
-            height: 37px;
-            line-height: 37px;
-          }
-
-          &:last-child {
-            margin-left: 15px;
-            height: 37px;
-            font-size: 26px;
-            font-weight: 400;
-            color: #4f4f4f;
-            line-height: 37px;
-            letter-spacing: 1px;
-          }
-
-          img {
-            width: 34px;
-            height: 34px;
-          }
-        }
-      }
-    }
-  }
 }
 </style>