Browse Source

关系转移流程

Wang Zi Wen 2 years ago
parent
commit
b130a6fe35

+ 18 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/branch/TBranchMemberController.java

@@ -39,6 +39,19 @@ public class TBranchMemberController extends BaseController
     @Autowired
     private ISysUserService userService;
 
+    /**
+     * 转移申请
+     */
+    @PreAuthorize("@ss.hasPermi('branch:member:edit')")
+    @Log(title = "支部成员管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/apply")
+    public AjaxResult apply(@RequestBody TBranchMember tBranchMember)
+    {
+        // TODO: 开启工作流
+        return null;
+    }
+
+
     /**
      * 查询支部成员政治生日列表
      */
@@ -54,11 +67,12 @@ public class TBranchMemberController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('branch:member:list')")
     @GetMapping("/list")
-    public TableDataInfo list(TBranchMember tBranchMember)
+    public AjaxResult list(TBranchMember tBranchMember)
     {
-        startPage();
-        List<TBranchMember> list = tBranchMemberService.selectTBranchMemberList(tBranchMember);
-        return getDataTable(list);
+//        startPage();
+//        List<TBranchMember> list = tBranchMemberService.selectTBranchMemberList(tBranchMember);
+//        return getDataTable(list);
+        return AjaxResult.success(tBranchMemberService.selectTBranchMemberList(tBranchMember));
     }
 
     /**

+ 106 - 0
ruoyi-common/src/main/resources/processes/apply.bpmn

@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
+  <process id="myProcess" name="My process" isExecutable="true">
+    <startEvent id="startevent" name="开始"></startEvent>
+    <endEvent id="endevent" name="结束"></endEvent>
+    <userTask id="dzzpz" name="党总支批准"></userTask>
+    <sequenceFlow id="flow1" name="提交申请" sourceRef="startevent" targetRef="dzzpz"></sequenceFlow>
+    <serviceTask id="bgdzz" name="报告党总支" activiti:type="mail"></serviceTask>
+    <serviceTask id="gs" name="公示" activiti:type="mail"></serviceTask>
+    <parallelGateway id="parallelgateway1" name="Parallel Gateway"></parallelGateway>
+    <exclusiveGateway id="exclusivegateway2" name="Exclusive Gateway"></exclusiveGateway>
+    <sequenceFlow id="flow3" name="是" sourceRef="exclusivegateway2" targetRef="parallelgateway1">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow2" sourceRef="dzzpz" targetRef="exclusivegateway2"></sequenceFlow>
+    <sequenceFlow id="flow4" name="否" sourceRef="exclusivegateway2" targetRef="endevent">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
+    </sequenceFlow>
+    <parallelGateway id="parallelgateway2" name="Parallel Gateway"></parallelGateway>
+    <sequenceFlow id="flow9" sourceRef="parallelgateway2" targetRef="endevent"></sequenceFlow>
+    <sequenceFlow id="flow5" sourceRef="parallelgateway1" targetRef="bgdzz"></sequenceFlow>
+    <sequenceFlow id="flow6" sourceRef="parallelgateway1" targetRef="gs"></sequenceFlow>
+    <sequenceFlow id="flow7" sourceRef="bgdzz" targetRef="parallelgateway2"></sequenceFlow>
+    <sequenceFlow id="flow8" sourceRef="gs" targetRef="parallelgateway2"></sequenceFlow>
+  </process>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_myProcess">
+    <bpmndi:BPMNPlane bpmnElement="myProcess" id="BPMNPlane_myProcess">
+      <bpmndi:BPMNShape bpmnElement="startevent" id="BPMNShape_startevent">
+        <omgdc:Bounds height="35.0" width="35.0" x="120.0" y="250.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="endevent" id="BPMNShape_endevent">
+        <omgdc:Bounds height="35.0" width="35.0" x="810.0" y="253.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="dzzpz" id="BPMNShape_dzzpz">
+        <omgdc:Bounds height="72.0" width="105.0" x="230.0" y="231.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="bgdzz" id="BPMNShape_bgdzz">
+        <omgdc:Bounds height="55.0" width="105.0" x="562.0" y="199.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="gs" id="BPMNShape_gs">
+        <omgdc:Bounds height="55.0" width="105.0" x="562.0" y="284.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="parallelgateway1" id="BPMNShape_parallelgateway1">
+        <omgdc:Bounds height="40.0" width="40.0" x="470.0" y="246.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="exclusivegateway2" id="BPMNShape_exclusivegateway2">
+        <omgdc:Bounds height="40.0" width="40.0" x="380.0" y="247.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="parallelgateway2" id="BPMNShape_parallelgateway2">
+        <omgdc:Bounds height="40.0" width="40.0" x="710.0" y="250.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
+        <omgdi:waypoint x="155.0" y="267.0"></omgdi:waypoint>
+        <omgdi:waypoint x="230.0" y="267.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="16.0" width="100.0" x="159.0" y="250.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
+        <omgdi:waypoint x="420.0" y="267.0"></omgdi:waypoint>
+        <omgdi:waypoint x="470.0" y="266.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="16.0" width="100.0" x="419.0" y="251.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
+        <omgdi:waypoint x="335.0" y="267.0"></omgdi:waypoint>
+        <omgdi:waypoint x="380.0" y="267.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
+        <omgdi:waypoint x="400.0" y="287.0"></omgdi:waypoint>
+        <omgdi:waypoint x="400.0" y="374.0"></omgdi:waypoint>
+        <omgdi:waypoint x="611.0" y="374.0"></omgdi:waypoint>
+        <omgdi:waypoint x="827.0" y="374.0"></omgdi:waypoint>
+        <omgdi:waypoint x="827.0" y="288.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="16.0" width="100.0" x="420.0" y="337.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9">
+        <omgdi:waypoint x="750.0" y="270.0"></omgdi:waypoint>
+        <omgdi:waypoint x="810.0" y="270.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
+        <omgdi:waypoint x="490.0" y="246.0"></omgdi:waypoint>
+        <omgdi:waypoint x="490.0" y="226.0"></omgdi:waypoint>
+        <omgdi:waypoint x="562.0" y="226.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
+        <omgdi:waypoint x="490.0" y="286.0"></omgdi:waypoint>
+        <omgdi:waypoint x="490.0" y="311.0"></omgdi:waypoint>
+        <omgdi:waypoint x="562.0" y="311.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow7" id="BPMNEdge_flow7">
+        <omgdi:waypoint x="667.0" y="226.0"></omgdi:waypoint>
+        <omgdi:waypoint x="730.0" y="226.0"></omgdi:waypoint>
+        <omgdi:waypoint x="730.0" y="250.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8">
+        <omgdi:waypoint x="667.0" y="311.0"></omgdi:waypoint>
+        <omgdi:waypoint x="730.0" y="311.0"></omgdi:waypoint>
+        <omgdi:waypoint x="730.0" y="290.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</definitions>

+ 22 - 0
ruoyi-system/src/main/java/com/ruoyi/branch/domain/TBranchMember.java

@@ -115,6 +115,12 @@ public class TBranchMember extends BaseEntity
     @Excel(name = "部门id")
     private Long deptId;
 
+    /** 原支部id */
+    private Long oldDeptId;
+
+    /** 转入支部id */
+    private Long newDeptId;
+
     /** 用户昵称 */
     @Excel(name = "用户名称")
     private String nickName;
@@ -141,6 +147,22 @@ public class TBranchMember extends BaseEntity
     @Excel(name = "工号")
     private String staffId;
 
+    public Long getOldDeptId() {
+        return oldDeptId;
+    }
+
+    public void setOldDeptId(Long oldDeptId) {
+        this.oldDeptId = oldDeptId;
+    }
+
+    public Long getNewDeptId() {
+        return newDeptId;
+    }
+
+    public void setNewDeptId(Long newDeptId) {
+        this.newDeptId = newDeptId;
+    }
+
     public String getStaffId() {
         return staffId;
     }

+ 9 - 0
ruoyi-ui/src/api/branch/member.js

@@ -1,5 +1,14 @@
 import request from '@/utils/request'
 
+// 转移申请
+export function applyMember(data) {
+  return request({
+    url: '/branch/member/apply',
+    method: 'put',
+    data: data
+  })
+}
+
 // 查询支部成员管理列表
 export function listPoliticalBirthday(query) {
   return request({

+ 127 - 127
ruoyi-ui/src/views/branch/approve/pending/index.vue

@@ -1,137 +1,137 @@
 <template >
   <div class="app-container">
     <!-- 顶部工具栏 -->
-    <el-row :gutter="10">
-      <div class="top-right-btn">
-        <el-row>
-          <el-tooltip  effect="dark" :content="$t('tagsView.refresh')" placement="top">
-            <el-button size="mini" circle icon="el-icon-refresh" @click="getList()" />
-          </el-tooltip>
-        </el-row>
-      </div>
-    </el-row>
+    <!--<el-row :gutter="10">-->
+      <!--<div class="top-right-btn">-->
+        <!--<el-row>-->
+          <!--<el-tooltip  effect="dark" :content="tagsView.refresh" placement="top">-->
+            <!--<el-button size="mini" circle icon="el-icon-refresh" @click="getList()" />-->
+          <!--</el-tooltip>-->
+        <!--</el-row>-->
+      <!--</div>-->
+    <!--</el-row>-->
     <el-table v-loading="loading" :data="approvedangerList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column :label="$t('流程')+' '+ $t('ID')" align="center" prop="processId" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('流程')+' ' + $t('名称')" align="center" prop="processName" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('流程')+' ' + $t('创建时间')" align="center" prop="processCreateTime" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('待办任务')+' ' + $t('名称')" align="center" prop="taskName" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('待办任务')+' ' + $t('创建时间')" align="center" prop="taskCreateTime" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('申请编号')" align="center" prop="apNo" :show-overflow-tooltip="true">
+      <el-table-column label="流程ID" align="center" prop="processId" :show-overflow-tooltip="true"/>
+      <el-table-column label="流程名称" align="center" prop="processName" :show-overflow-tooltip="true"/>
+      <el-table-column label="流程创建时间" align="center" prop="processCreateTime" :show-overflow-tooltip="true"/>
+      <el-table-column label="待办任务名称" align="center" prop="taskName" :show-overflow-tooltip="true"/>
+      <el-table-column label="待办任务创建时间" align="center" prop="taskCreateTime" :show-overflow-tooltip="true"/>
+      <el-table-column label="申请编号" align="center" prop="apNo" :show-overflow-tooltip="true">
 <!--        <template slot-scope="scope">-->
 <!--          <span v-if="scope.row.processName === ($t('事件') + $t('审批流程')) ">{{scope.row.tApproveAccident.approveNo}}</span>-->
 <!--          <span v-if="scope.row.processName === ($t('重大隐患') + $t('审批流程') )|| scope.row.processName === ($t('普通隐患') + $t('审批流程') )">{{scope.row.tApprove.approveNo}}</span>-->
 <!--        </template>-->
       </el-table-column>
-      <el-table-column :label="$t('操作')" align="center" width="120" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
             size="mini"
             type="text"
             icon="el-icon-edit"
             @click="addOrUpdateHandle(scope.row)"
-          >{{ $t('处理') }}</el-button>
+          >处理</el-button>
           <el-button
             size="mini"
             type="text"
             @click="processImg(scope.row.processId)"
-          >{{ $t('流程图') }}</el-button>
+          >流程图</el-button>
         </template>
       </el-table-column>
     </el-table>
 
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
+    <!--<pagination-->
+      <!--v-show="total>0"-->
+      <!--:total="total"-->
+      <!--:page.sync="queryParams.pageNum"-->
+      <!--:limit.sync="queryParams.pageSize"-->
+      <!--@pagination="getList"-->
+    <!--/>-->
 
-    <!-- 弹窗, 新增 / 修改 -->
-    <div v-if="addOrUpdateVisible">
-      <el-dialog  :close-on-click-modal="false" v-dialogDrag :visible.sync="addOrUpdateVisible" :destroy-on-close="true">
-        <add-or-update v-if="this.infoprocessName === ($t('重大隐患')+' '+ $t('审批流程') )|| this.infoprocessName === ($t('普通隐患')+' ' + $t('审批流程') )" :info="approveInfo"></add-or-update>
-        <accident v-if="this.infoprocessName === ($t('事件')+ $t('审批流程'))" :info="approveInfo" @recordInfo="approveChange($event)"></accident>
-        <el-form>
-          <el-form-item :label="$t('上传措施前照片')" prop="before" v-if="this.infoTaskName === '执行人'">
-            <el-upload
-              ref="uploadbefore"
-              :limit="1"
-              :headers="uploadbefore.headers"
-              :action="uploadbefore.url"
-              :disabled="uploadbefore.isUploading"
-              :on-progress="handleFileUploadProgressBefore"
-              :on-success="handleFileSuccessBefore"
-              :auto-upload="true"
-              drag
-            >
-              <i class="el-icon-upload"></i>
-              <div class="el-upload__text">
-                {{ $t('将文件拖到此处,或') }}
-                <em>{{ $t('点击上传') }}</em>
-              </div>
-            </el-upload>
-          </el-form-item>
-          <el-form-item :label="$t('上传措施后照片')" prop="after" v-if="this.infoTaskName === $t('执行人')">
-            <el-upload
-              ref="uploadafter"
-              :limit="1"
-              :headers="uploadafter.headers"
-              :action="uploadafter.url"
-              :disabled="uploadafter.isUploading"
-              :on-progress="handleFileUploadProgressAfter"
-              :on-success="handleFileSuccessAfter"
-              drag
-            >
-              <i class="el-icon-upload"></i>
-              <div class="el-upload__text">
-                {{ $t('将文件拖到此处,或') }}
-                <em>{{ $t('点击上传') }}</em>
-              </div>
-            </el-upload>
-          </el-form-item>
-          <el-form-item :label="$t('审批意见')" prop="comment">
-            <el-input v-model="comment" :placeholder="$t('请输入') + $t('审批意见')" maxlength="100" show-word-limit></el-input>
-          </el-form-item>
-        </el-form>
-        <span v-if="this.infoprocessName ===  ($t('重大隐患')+' ' + $t('审批流程') ) || this.infoprocessName === ($t('普通隐患')+' '  + $t('审批流程') )" slot="footer">
-          <span v-if="this.infoTaskName === $t('执行人')" class="dialog-footer">
-            <el-button type="primary" @click="dataFormSubmit(1)">{{ $t('已完成') }}</el-button>
-            <el-button type="danger" @click="dataFormSubmit(0)">{{ $t('无法执行') }}</el-button>
-          </span>
-          <span v-if="this.infoTaskName === $t('验证人')" class="dialog-footer">
-            <el-button type="primary" @click="dataFormSubmit(1)">{{ $t('通过') }}</el-button>
-            <el-button type="danger" @click="dataFormSubmit(0)">{{ $t('无效') }}</el-button>
-            <el-button type="warning" @click="dataFormSubmit(2)">{{ $t('未达标') }}</el-button>
-          </span>
-          <span v-if="this.infoTaskName === $t('记录人')" class="dialog-footer">
-            <el-button type="primary" @click="dataFormSubmit(1)">{{ $t('重新提交') }}</el-button>
-          </span>
-          <span v-if="this.infoTaskName === $t('确认')" class="dialog-footer">
-            <el-button type="primary" @click="dataFormSubmit(1)">{{ $t('确认') }}</el-button>
-            <el-button type="danger" @click="dataFormSubmit(0)">{{ $t('确认')+' ' + $t('不通过') }}</el-button>
-          </span>
-        </span>
-        <span v-if="this.infoprocessName === ($t('事件') + $t('审批流程'))" slot="footer">
-          <span v-if="this.infoTaskName === $t('记录人')" class="dialog-footer">
-            <el-button type="primary" @click="dataFormSubmit(1)">{{ $t('提交') }}</el-button>
-          </span>
-        </span>
-      </el-dialog>
-    </div>
+    <!--&lt;!&ndash; 弹窗, 新增 / 修改 &ndash;&gt;-->
+    <!--<div v-if="addOrUpdateVisible">-->
+      <!--<el-dialog  :close-on-click-modal="false" v-dialogDrag :visible.sync="addOrUpdateVisible" :destroy-on-close="true">-->
+        <!--<add-or-update v-if="this.infoprocessName === ($t('重大隐患')+' '+ $t('审批流程') )|| this.infoprocessName === ($t('普通隐患')+' ' + $t('审批流程') )" :info="approveInfo"></add-or-update>-->
+        <!--<accident v-if="this.infoprocessName === ($t('事件')+ $t('审批流程'))" :info="approveInfo" @recordInfo="approveChange($event)"></accident>-->
+        <!--<el-form>-->
+          <!--<el-form-item :label="$t('上传措施前照片')" prop="before" v-if="this.infoTaskName === '执行人'">-->
+            <!--<el-upload-->
+              <!--ref="uploadbefore"-->
+              <!--:limit="1"-->
+              <!--:headers="uploadbefore.headers"-->
+              <!--:action="uploadbefore.url"-->
+              <!--:disabled="uploadbefore.isUploading"-->
+              <!--:on-progress="handleFileUploadProgressBefore"-->
+              <!--:on-success="handleFileSuccessBefore"-->
+              <!--:auto-upload="true"-->
+              <!--drag-->
+            <!--&gt;-->
+              <!--<i class="el-icon-upload"></i>-->
+              <!--<div class="el-upload__text">-->
+                <!--{{ $t('将文件拖到此处,或') }}-->
+                <!--<em>{{ $t('点击上传') }}</em>-->
+              <!--</div>-->
+            <!--</el-upload>-->
+          <!--</el-form-item>-->
+          <!--<el-form-item :label="$t('上传措施后照片')" prop="after" v-if="this.infoTaskName === $t('执行人')">-->
+            <!--<el-upload-->
+              <!--ref="uploadafter"-->
+              <!--:limit="1"-->
+              <!--:headers="uploadafter.headers"-->
+              <!--:action="uploadafter.url"-->
+              <!--:disabled="uploadafter.isUploading"-->
+              <!--:on-progress="handleFileUploadProgressAfter"-->
+              <!--:on-success="handleFileSuccessAfter"-->
+              <!--drag-->
+            <!--&gt;-->
+              <!--<i class="el-icon-upload"></i>-->
+              <!--<div class="el-upload__text">-->
+                <!--{{ $t('将文件拖到此处,或') }}-->
+                <!--<em>{{ $t('点击上传') }}</em>-->
+              <!--</div>-->
+            <!--</el-upload>-->
+          <!--</el-form-item>-->
+          <!--<el-form-item :label="$t('审批意见')" prop="comment">-->
+            <!--<el-input v-model="comment" :placeholder="$t('请输入') + $t('审批意见')" maxlength="100" show-word-limit></el-input>-->
+          <!--</el-form-item>-->
+        <!--</el-form>-->
+        <!--<span v-if="this.infoprocessName ===  ($t('重大隐患')+' ' + $t('审批流程') ) || this.infoprocessName === ($t('普通隐患')+' '  + $t('审批流程') )" slot="footer">-->
+          <!--<span v-if="this.infoTaskName === $t('执行人')" class="dialog-footer">-->
+            <!--<el-button type="primary" @click="dataFormSubmit(1)">{{ $t('已完成') }}</el-button>-->
+            <!--<el-button type="danger" @click="dataFormSubmit(0)">{{ $t('无法执行') }}</el-button>-->
+          <!--</span>-->
+          <!--<span v-if="this.infoTaskName === $t('验证人')" class="dialog-footer">-->
+            <!--<el-button type="primary" @click="dataFormSubmit(1)">{{ $t('通过') }}</el-button>-->
+            <!--<el-button type="danger" @click="dataFormSubmit(0)">{{ $t('无效') }}</el-button>-->
+            <!--<el-button type="warning" @click="dataFormSubmit(2)">{{ $t('未达标') }}</el-button>-->
+          <!--</span>-->
+          <!--<span v-if="this.infoTaskName === $t('记录人')" class="dialog-footer">-->
+            <!--<el-button type="primary" @click="dataFormSubmit(1)">{{ $t('重新提交') }}</el-button>-->
+          <!--</span>-->
+          <!--<span v-if="this.infoTaskName === $t('确认')" class="dialog-footer">-->
+            <!--<el-button type="primary" @click="dataFormSubmit(1)">{{ $t('确认') }}</el-button>-->
+            <!--<el-button type="danger" @click="dataFormSubmit(0)">{{ $t('确认')+' ' + $t('不通过') }}</el-button>-->
+          <!--</span>-->
+        <!--</span>-->
+        <!--<span v-if="this.infoprocessName === ($t('事件') + $t('审批流程'))" slot="footer">-->
+          <!--<span v-if="this.infoTaskName === $t('记录人')" class="dialog-footer">-->
+            <!--<el-button type="primary" @click="dataFormSubmit(1)">{{ $t('提交') }}</el-button>-->
+          <!--</span>-->
+        <!--</span>-->
+      <!--</el-dialog>-->
+    <!--</div>-->
 
-    <add-or-update v-if="specDealVisible" ref="specDeal" @refreshDataList="getList"></add-or-update>
-    <spec-modify v-if="specModifyDealVisible" ref="specModifyDeal" @refreshDataList="getList"></spec-modify>
-    <spec-training-plan v-if="specTrainingPlanDealVisible" ref="specTrainingPlanDeal" @refreshDataList="getList"></spec-training-plan>
-    <process-img v-if="processImgVisible" ref="processImg" @refreshDataList="getList"></process-img>
-    <intact-resolve v-if="intactResolveVisible" ref="intactResolveDeal" @refreshDataList="getList"></intact-resolve>
-    <kekao-resolve v-if="kekaoResolveVisible" ref="kekaoResolveDeal" @refreshDataList="getList"></kekao-resolve>
-    <spec-maintenance v-if="specMaintenanceVisible" ref="specMaintenance" @refreshDataList="getList"></spec-maintenance>
-    <invoice-detail v-if="invoiceDetailVisible" ref="invoiceDetail" @refreshDataList="getList"></invoice-detail>
-    <offlinevalve-detail v-if="offlinevalveDetailVisible" ref="offlinevalveDetail" @refreshDataList="getList"></offlinevalve-detail>
-    <safetychange-detail v-if="safetychangeDetailVisible" ref="safetychangeDetail" @refreshDataList="getList"></safetychange-detail>
-    <sai-apply-detail v-if="saiApplyVisible" ref="saiApplyDetail" @refreshDataList="getList"></sai-apply-detail>
+    <!--<add-or-update v-if="specDealVisible" ref="specDeal" @refreshDataList="getList"></add-or-update>-->
+    <!--<spec-modify v-if="specModifyDealVisible" ref="specModifyDeal" @refreshDataList="getList"></spec-modify>-->
+    <!--<spec-training-plan v-if="specTrainingPlanDealVisible" ref="specTrainingPlanDeal" @refreshDataList="getList"></spec-training-plan>-->
+    <!--<process-img v-if="processImgVisible" ref="processImg" @refreshDataList="getList"></process-img>-->
+    <!--<intact-resolve v-if="intactResolveVisible" ref="intactResolveDeal" @refreshDataList="getList"></intact-resolve>-->
+    <!--<kekao-resolve v-if="kekaoResolveVisible" ref="kekaoResolveDeal" @refreshDataList="getList"></kekao-resolve>-->
+    <!--<spec-maintenance v-if="specMaintenanceVisible" ref="specMaintenance" @refreshDataList="getList"></spec-maintenance>-->
+    <!--<invoice-detail v-if="invoiceDetailVisible" ref="invoiceDetail" @refreshDataList="getList"></invoice-detail>-->
+    <!--<offlinevalve-detail v-if="offlinevalveDetailVisible" ref="offlinevalveDetail" @refreshDataList="getList"></offlinevalve-detail>-->
+    <!--<safetychange-detail v-if="safetychangeDetailVisible" ref="safetychangeDetail" @refreshDataList="getList"></safetychange-detail>-->
+    <!--<sai-apply-detail v-if="saiApplyVisible" ref="saiApplyDetail" @refreshDataList="getList"></sai-apply-detail>-->
   </div>
 </template>
 
@@ -156,21 +156,21 @@
 
   export default {
     name: "Pending",
-    components: {
-      SaiApplyDetail,
-      SafetychangeDetail,
-      OfflinevalveDetail,
-      Treeselect,
-      AddOrUpdate,
-      SpecModify,
-      Accident,
-      SpecTrainingPlan,
-      ProcessImg,
-      IntactResolve,
-      SpecMaintenance,
-      KekaoResolve,
-      InvoiceDetail
-    },
+    // components: {
+    //   SaiApplyDetail,
+    //   SafetychangeDetail,
+    //   OfflinevalveDetail,
+    //   Treeselect,
+    //   AddOrUpdate,
+    //   SpecModify,
+    //   Accident,
+    //   SpecTrainingPlan,
+    //   ProcessImg,
+    //   IntactResolve,
+    //   SpecMaintenance,
+    //   KekaoResolve,
+    //   InvoiceDetail
+    // },
     data() {
       return {
         // 遮罩层
@@ -295,11 +295,11 @@
       /** 查询隐患申请列表 */
       getList() {
         this.loading = true;
-        getPendinglist(this.queryParams).then(response => {
-          this.approvedangerList = response.rows;
-          this.total = response.total;
+        // getPendinglist(this.queryParams).then(response => {
+        //   this.approvedangerList = response.rows;
+        //   this.total = response.total;
           this.loading = false;
-        });
+        // });
       },
       /** 查询部门下拉树结构 */
       getTreeselect() {

+ 38 - 38
ruoyi-ui/src/views/branch/approve/taskdone/index.vue

@@ -2,47 +2,47 @@
   <div class="app-container">
     <el-table v-loading="loading" :data="approvedangerList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column :label="$t('流程') + $t('ID')" align="center" prop="processId" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('流程') + $t('名称')" align="center" prop="processName" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('流程') + $t('创建时间')" align="center" prop="processCreateTime" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('申请人') + $t('姓名')" align="center" prop="apName" :show-overflow-tooltip="true"/>
+      <el-table-column label="流程ID" align="center" prop="processId" :show-overflow-tooltip="true"/>
+      <el-table-column label="流程名称" align="center" prop="processName" :show-overflow-tooltip="true"/>
+      <el-table-column label="流程创建时间" align="center" prop="processCreateTime" :show-overflow-tooltip="true"/>
+      <el-table-column label="申请人姓名" align="center" prop="apName" :show-overflow-tooltip="true"/>
 <!--      <el-table-column :label="$t('隐患级别')" align="center" prop="tApprove.hiddendangerLevel" :show-overflow-tooltip="true"/>-->
-      <el-table-column :label="$t('申请编号')" align="center" prop="apNo" :show-overflow-tooltip="true"/>
+      <el-table-column label="申请编号" align="center" prop="apNo" :show-overflow-tooltip="true"/>
       <el-table-column
         prop="isEnd"
         header-align="center"
         align="center"
-        :label="$t('是否结束')">
+        label="是否结束">
         <template slot-scope="scope">
           <el-tag
             :type="scope.row.end? 'success' : 'danger'"
-            disable-transitions>{{scope.row.end? $t('是') : $t('否')}}</el-tag>
+            disable-transitions>{{scope.row.end? '是' : '否'}}</el-tag>
         </template>
       </el-table-column>
-      <el-table-column :label="$t('操作')" align="center" width="120" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
             size="mini"
             type="text"
             icon="el-icon-view"
             @click="handleView(scope.row)"
-          >{{ $t('查看') }}</el-button>
+          >查看</el-button>
           <el-button
             size="mini"
             type="text"
             @click="processImg(scope.row.processId)"
-          >{{ $t('流程图') }}</el-button>
+          >流程图</el-button>
         </template>
       </el-table-column>
       </el-table>
 
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
+    <!--<pagination-->
+      <!--v-show="total>0"-->
+      <!--:total="total"-->
+      <!--:page.sync="queryParams.pageNum"-->
+      <!--:limit.sync="queryParams.pageSize"-->
+      <!--@pagination="getList"-->
+    <!--/>-->
 
     <!-- 弹窗, 查看 -->
 <!--    <div v-if="addOrUpdateVisible">-->
@@ -50,17 +50,17 @@
 <!--        <add-or-update :info="approveInfo"></add-or-update>-->
 <!--      </el-dialog>-->
 <!--    </div>-->
-    <process-img v-if="processImgVisible" ref="processImg" @refreshDataList="getList"></process-img>
-    <add-or-update v-if="specDealVisible" ref="specDeal" @refreshDataList="getList"></add-or-update>
-    <spec-modify v-if="specModifyDealVisible" ref="specModifyDeal" @refreshDataList="getList"></spec-modify>
-    <spec-training-plan v-if="specTrainingPlanVisible" ref="specTrainingPlan" @refreshDataList="getList"></spec-training-plan>
-    <spec-maintenance v-if="specMaintenanceVisible" ref="specMaintenance" @refreshDataList="getList"></spec-maintenance>
-    <intact-detail v-if="intactDetailVisible" ref="intactDetail" @refreshDataList="getList"></intact-detail>
-    <kekao-detail v-if="kekaoDetailVisible" ref="kekaoDetail" @refreshDataList="getList"></kekao-detail>
-    <invoice-detail v-if="invoiceDetailVisible" ref="invoiceDetail" @refreshDataList="getList"></invoice-detail>
-    <offlinevalve-detail v-if="offlinevalveDetailVisible" ref="offlinevalveDetail" @refreshDataList="getList"></offlinevalve-detail>
-    <safetychange-detail v-if="safetychangeDetailVisible" ref="safetychangeDetail" @refreshDataList="getList"></safetychange-detail>
-    <sai-apply-detail v-if="saiApplyVisible" ref="saiApplyDetail" @refreshDataList="getList"></sai-apply-detail>
+    <!--<process-img v-if="processImgVisible" ref="processImg" @refreshDataList="getList"></process-img>-->
+    <!--<add-or-update v-if="specDealVisible" ref="specDeal" @refreshDataList="getList"></add-or-update>-->
+    <!--<spec-modify v-if="specModifyDealVisible" ref="specModifyDeal" @refreshDataList="getList"></spec-modify>-->
+    <!--<spec-training-plan v-if="specTrainingPlanVisible" ref="specTrainingPlan" @refreshDataList="getList"></spec-training-plan>-->
+    <!--<spec-maintenance v-if="specMaintenanceVisible" ref="specMaintenance" @refreshDataList="getList"></spec-maintenance>-->
+    <!--<intact-detail v-if="intactDetailVisible" ref="intactDetail" @refreshDataList="getList"></intact-detail>-->
+    <!--<kekao-detail v-if="kekaoDetailVisible" ref="kekaoDetail" @refreshDataList="getList"></kekao-detail>-->
+    <!--<invoice-detail v-if="invoiceDetailVisible" ref="invoiceDetail" @refreshDataList="getList"></invoice-detail>-->
+    <!--<offlinevalve-detail v-if="offlinevalveDetailVisible" ref="offlinevalveDetail" @refreshDataList="getList"></offlinevalve-detail>-->
+    <!--<safetychange-detail v-if="safetychangeDetailVisible" ref="safetychangeDetail" @refreshDataList="getList"></safetychange-detail>-->
+    <!--<sai-apply-detail v-if="saiApplyVisible" ref="saiApplyDetail" @refreshDataList="getList"></sai-apply-detail>-->
   </div>
 </template>
 
@@ -84,12 +84,12 @@
 
   export default {
     name: "Taskdone",
-    components: {
-      SaiApplyDetail,
-      SafetychangeDetail,
-      OfflinevalveDetail,
-      Treeselect, AddOrUpdate,ProcessImg,SpecModify,SpecTrainingPlan,SpecMaintenance,IntactDetail,KekaoDetail,InvoiceDetail
-    },
+    // components: {
+    //   SaiApplyDetail,
+    //   SafetychangeDetail,
+    //   OfflinevalveDetail,
+    //   Treeselect, AddOrUpdate,ProcessImg,SpecModify,SpecTrainingPlan,SpecMaintenance,IntactDetail,KekaoDetail,InvoiceDetail
+    // },
     data() {
       return {
         // 遮罩层
@@ -172,11 +172,11 @@
       /** 查询隐患申请列表 */
       getList() {
         this.loading = true;
-        getTaskdonelist(this.queryParams).then(response => {
-          this.approvedangerList = response.rows;
-          this.total = response.total;
+        // getTaskdonelist(this.queryParams).then(response => {
+        //   this.approvedangerList = response.rows;
+        //   this.total = response.total;
           this.loading = false;
-        });
+        // });
       },
       /** 查询部门下拉树结构 */
       getTreeselect() {

+ 69 - 16
ruoyi-ui/src/views/branch/zbjs/dymc/index.vue

@@ -130,39 +130,45 @@
     </el-row>
 
     <el-table v-loading="loading" :data="memberList" @selection-change="handleSelectionChange" :height="clientHeight" border>
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="党支部" align="center" prop="deptId" :formatter="deptListFormat"/>
-      <el-table-column label="姓名" align="center" prop="nickName"/>
-      <el-table-column label="性别" align="center" prop="sex" :formatter="sysUserSexFormat"/>
-      <el-table-column label="出生年月" align="center" prop="birthday">
+      <el-table-column type="selection" :width="55" align="center"/>
+      <el-table-column label="党支部" align="center" prop="deptId" :formatter="deptListFormat" :width="120"/>
+      <el-table-column label="姓名" align="center" prop="nickName" :width="100"/>
+      <el-table-column label="性别" align="center" prop="sex" :formatter="sysUserSexFormat" :width="80"/>
+      <el-table-column label="出生年月" align="center" prop="birthday" :width="120">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.birthday, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="学历" align="center" prop="educationLevel" :formatter="educationLevelFormat"/>
-      <el-table-column label="参加工作时间" align="center" prop="workJoinTime">
+      <el-table-column label="学历" align="center" prop="educationLevel" :formatter="educationLevelFormat" :width="100"/>
+      <el-table-column label="参加工作时间" align="center" prop="workJoinTime" :width="120">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.workJoinTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="入党时间" align="center" prop="partyEntryTime">
+      <el-table-column label="入党时间" align="center" prop="partyEntryTime" :width="120">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.partyEntryTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="联系方式" align="center" prop="phonenumber"/>
-      <el-table-column label="调进时间" align="center" prop="entryTime">
+      <el-table-column label="联系方式" align="center" prop="phonenumber" :width="120"/>
+      <el-table-column label="调进时间" align="center" prop="entryTime" :width="120">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.entryTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="调出时间" align="center" prop="leaveTime">
+      <el-table-column label="调出时间" align="center" prop="leaveTime" :width="120">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.leaveTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" fixed="right" :width="240" class-name="small-padding fixed-width">
         <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            @click="handleApply(scope.row)"
+            v-hasPermi="['branch:member:edit']"
+          >转移申请</el-button>
           <el-button
             size="mini"
             type="text"
@@ -291,6 +297,21 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+    <!-- 转移申请对话框 -->
+    <el-dialog :title="titleApply" :visible.sync="openApply" width="400px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="原支部" prop="oldDeptId">
+          <treeselect v-model="form.oldDeptId" :options="deptOptions" :show-count="true" placeholder="请选择原支部" disabled="true" />
+        </el-form-item>
+        <el-form-item label="转入支部" prop="newDeptId">
+          <treeselect v-model="form.newDeptId" :options="deptOptions" :show-count="true" placeholder="请选择转入支部" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFormApply">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
     <!-- 用户导入对话框 -->
     <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
       <el-upload
@@ -325,7 +346,7 @@
 </template>
 
 <script>
-  import { listMember, getMember, delMember, addMember, updateMember, exportMember, importTemplate} from "@/api/branch/member";
+  import { applyMember, listMember, getMember, delMember, addMember, updateMember, exportMember, importTemplate} from "@/api/branch/member";
   import { treeselect } from "@/api/system/dept";
   import { getToken } from "@/utils/auth";
   import Treeselect from "@riophae/vue-treeselect";
@@ -354,11 +375,13 @@
         memberList: [],
         // 弹出层标题
         title: "",
+        titleApply: "",
         // 部门树选项
         deptOptions: [],
         clientHeight:300,
         // 是否显示弹出层
         open: false,
+        openApply: false,
         // 成员类型字典
         memberTypeOptions: [],
         // 学历字典
@@ -426,7 +449,13 @@
           deptId: [
             { required: true, message: "归属部门不能为空", trigger: "blur" }
           ],
-        }
+          oldDeptId: [
+            { required: true, message: "原支部不能为空", trigger: "blur" }
+          ],
+          newDeptId: [
+            { required: true, message: "转入支部不能为空", trigger: "blur" }
+          ],
+        },
       };
     },
     watch: {
@@ -440,7 +469,7 @@
       this.getDeptList();
       //设置表格高度对应屏幕高度
       this.$nextTick(() => {
-        this.clientHeight = document.body.clientHeight -250
+        this.clientHeight = document.body.clientHeight -200
       })
       this.getList();
       this.getTreeselect();
@@ -497,7 +526,7 @@
           //   }
           // }
           // this.memberList = memberList;
-          this.memberList = response.rows;
+          this.memberList = response.data;
           for (let i = 0; i < this.memberList.length; i++) {
             let posts = Array.from(this.memberList[i].posts);
             let roles = Array.from(this.memberList[i].roles);
@@ -561,6 +590,7 @@
       // 取消按钮
       cancel() {
         this.open = false;
+        this.openApply = false;
         this.reset();
       },
       // 表单重置
@@ -619,6 +649,17 @@
         this.open = true;
         this.title = "添加党员信息";
       },
+      /** 转移申请按钮操作 */
+      handleApply(row) {
+        this.reset();
+        const memberId = row.memberId || this.ids
+        getMember(row.memberId).then(response => {
+          this.form = response.data;
+          this.form.oldDeptId = this.form.deptId;
+          this.openApply = true;
+          this.titleApply = "转移申请信息";
+        });
+      },
       /** 修改按钮操作 */
       handleUpdate(row) {
         this.reset();
@@ -650,6 +691,18 @@
           }
         });
       },
+      /** 提交转移申请按钮 */
+      submitFormApply() {
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+            applyMember(this.form).then(response => {
+              this.$modal.msgSuccess("提交成功");
+              this.openApply = false;
+              this.getList();
+            });
+          }
+        });
+      },
       /** 删除按钮操作 */
       handleDelete(row) {
         const memberIds = row.memberId || this.ids;

+ 2 - 2
ruoyi-ui/src/views/branch/zbjs/sqrjjfzmc/index.vue

@@ -565,7 +565,7 @@
       this.getDeptList();
       //设置表格高度对应屏幕高度
       this.$nextTick(() => {
-        this.clientHeight = document.body.clientHeight -250
+        this.clientHeight = document.body.clientHeight -200
       })
       this.getList();
       this.getTreeselect();
@@ -632,7 +632,7 @@
             //   }
             // }
             // this.memberList = memberList;
-            this.memberList = response.rows;
+            this.memberList = response.data;
             for (let i = 0; i < this.memberList.length; i++) {
               let posts = Array.from(this.memberList[i].posts);
               let roles = Array.from(this.memberList[i].roles);

+ 2 - 2
ruoyi-ui/src/views/branch/zbjs/wyhmc/index.vue

@@ -442,7 +442,7 @@
       this.getDeptList();
       //设置表格高度对应屏幕高度
       this.$nextTick(() => {
-        this.clientHeight = document.body.clientHeight -250
+        this.clientHeight = document.body.clientHeight -200
       })
       this.getList();
       this.getTreeselect();
@@ -499,7 +499,7 @@
           //   }
           // }
           // this.memberList = memberList;
-          this.memberList = response.rows;
+          this.memberList = response.data;
           for (let i = 0; i < this.memberList.length; i++) {
             let posts = Array.from(this.memberList[i].posts);
             let roles = Array.from(this.memberList[i].roles);