Selaa lähdekoodia

1.优化资产批量提交装订盖章节点
2.个贷、大中型批量提交装订盖章节点

GouGengquan 10 kuukautta sitten
vanhempi
commit
88bc683747

+ 4 - 6
src/views/assets/todoList.vue

@@ -218,8 +218,7 @@ export default {
                 // 关键字
                 keyWord: null,
                 // 处理人id
-                handlerId: this.$store.getters.userInfo.id,
-                getNodeIsBookbindingStamp: false
+                handlerId: this.$store.getters.userInfo.id
             },
             // 用户下拉列表
             allUsers: [],
@@ -259,7 +258,8 @@ export default {
                 size: 10,
                 current: 1,
                 keyWord: null,
-                handlerId: this.$store.getters.userInfo.id
+                handlerId: this.$store.getters.userInfo.id,
+                getNodeIsBookbindingStamp: false
             },
             batchCommitPageData: { records: [] }
         }
@@ -401,7 +401,7 @@ export default {
             this.recordId = recordId;
         },
         openBatchCommitDialog() {
-            this.listQuery.getNodeIsBookbindingStamp = true;
+            this.batchCommitListQuery.getNodeIsBookbindingStamp = true;
             this.selectBatchCommitPage();
             this.batchCommitDialog = true;
         },
@@ -416,9 +416,7 @@ export default {
                 commit.businessMinId = val[i].reportNo;
                 pickedCommits.push(commit);
             }
-            console.log(pickedCommits);
             this.workNodeCommits = pickedCommits;
-            console.log(this.workNodeCommits);
         },
         // 批量提交流程节点
         batchCommitNode() {

+ 1 - 1
src/views/major/todoDetail.vue

@@ -1730,7 +1730,7 @@
         <el-row>
           <el-col :xs="24" :sm="12" :lg="24" :span="6">
             <el-form-item label="不备案原因:" prop="notRecordReason" label-width="140px" :class="['postInfo-container-item']">
-              <el-input  type="textarea":value="notRecordRemind.notRecordReason" :class="['filter-item']"  readonly style=" width: 100%" />
+              <el-input  type="textarea" :value="notRecordRemind.notRecordReason" :class="['filter-item']"  readonly style=" width: 100%" />
             </el-form-item>
           </el-col>
         </el-row>

+ 300 - 120
src/views/major/todoList.vue

@@ -5,36 +5,48 @@
     </div>
     <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getPage">
       <template slot="left">
-        <MoreSearchBar business="MAJOR_BUSINESS" @fliterSearch="fliterSearch" @resetParams="resetParams" :listQuery="listQuery" :nodes="majorNodes">
+        <MoreSearchBar business="MAJOR_BUSINESS" @fliterSearch="fliterSearch" @resetParams="resetParams"
+          :listQuery="listQuery" :nodes="majorNodes">
           <template v-slot:otherButton>
             <el-button class="filter-item" round @click="showAllLabel()">显示全部列</el-button>
+            <PermissionButton menu-code="_views_major_batch_commit_bookbinding_stamp" class-name="filter-item"
+                    type="danger" icon="el-icon-paperclip" :page-jump="false" round @click="openBatchCommitDialog()" />
           </template>
         </MoreSearchBar>
       </template>
-      <parentTable  :data="pageData.records" slot="table" style="width: 100%;" @sortTable="sortTable" @headerClick="switchHeader">
-        <el-table-column label="项目名称" align="center" width="250" v-if="!hiddenLabels.includes('productionName')" prop="productionName" show-overflow-tooltip>
+      <parentTable :data="pageData.records" slot="table" style="width: 100%;" @sortTable="sortTable"
+        @headerClick="switchHeader">
+        <el-table-column label="项目名称" align="center" width="250" v-if="!hiddenLabels.includes('productionName')"
+          prop="productionName" show-overflow-tooltip>
           <template slot-scope="{row}">
-            <span class="enableClick" @click="toDetail(row)">{{ row.productionName==null?row.orderName: row.productionName }}</span>
+            <span class="enableClick" @click="toDetail(row)">{{ row.productionName == null ? row.orderName :
+              row.productionName
+            }}</span>
           </template>
         </el-table-column>
         <el-table-column label="订单号" align="center" width="150" v-if="!hiddenLabels.includes('orderId')" prop="orderId">
           <template slot-scope="{row}">
-            <span class="enableClick" @click="toDetail(row)" @contextmenu.prevent="$doCopy(row.orderId)">{{ row.orderId }}</span>
+            <span class="enableClick" @click="toDetail(row)" @contextmenu.prevent="$doCopy(row.orderId)">{{ row.orderId
+            }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="价值意见书号" align="center" width="200" v-if="!hiddenLabels.includes('statementNo')" prop="statementNo" sortable>
+        <el-table-column label="价值意见书号" align="center" width="200" v-if="!hiddenLabels.includes('statementNo')"
+          prop="statementNo" sortable>
           <template slot-scope="{row}">
-            <span @contextmenu.prevent="$doCopy(row.statementNo)">{{ row.statementNo==null?'-': row.statementNo }}</span>
+            <span @contextmenu.prevent="$doCopy(row.statementNo)">{{ row.statementNo == null ? '-' : row.statementNo
+            }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="报告号/复评函号" align="center" width="200" v-if="!hiddenLabels.includes('reportNo')" prop="reportNo" sortable>
+        <el-table-column label="报告号/复评函号" align="center" width="200" v-if="!hiddenLabels.includes('reportNo')"
+          prop="reportNo" sortable>
           <template slot-scope="{row}">
-            <span @contextmenu.prevent="$doCopy(row.reportNo)">{{ row.reportNo==null?'-': row.reportNo }}</span>
+            <span @contextmenu.prevent="$doCopy(row.reportNo)">{{ row.reportNo == null ? '-' : row.reportNo }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="评估对象类型" align="center" width="120" v-if="!hiddenLabels.includes('businessObjectType')" prop="businessObjectType">
+        <el-table-column label="评估对象类型" align="center" width="120" v-if="!hiddenLabels.includes('businessObjectType')"
+          prop="businessObjectType">
           <template slot-scope="{row}">
-            <span>{{ row.businessObjectType}}</span>
+            <span>{{ row.businessObjectType }}</span>
           </template>
         </el-table-column>
         <el-table-column label="待办人" align="center" v-if="!hiddenLabels.includes('handler')" prop="handler">
@@ -42,7 +54,8 @@
             <span>{{ row.handler }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="当前节点" align="center" width="140" v-if="!hiddenLabels.includes('nodeName')" prop="nodeName" sortable>
+        <el-table-column label="当前节点" align="center" width="140" v-if="!hiddenLabels.includes('nodeName')" prop="nodeName"
+          sortable>
           <template slot-scope="{row}">
             <span>{{ row.nodeName }}</span>
           </template>
@@ -54,30 +67,35 @@
         </el-table-column>
         <el-table-column label="负责人" align="center" v-if="!hiddenLabels.includes('principal')" prop="principal">
           <template slot-scope="{row}">
-            <span>{{ row.principal==null?'-': row.principal }}</span>
+            <span>{{ row.principal == null ? '-' : row.principal }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="评估对象类型" align="center" width="130" v-if="!hiddenLabels.includes('businessObjectType')" prop="businessObjectType">
+        <el-table-column label="评估对象类型" align="center" width="130" v-if="!hiddenLabels.includes('businessObjectType')"
+          prop="businessObjectType">
           <template slot-scope="{row}">
             <span>{{ row.businessObjectType }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="客户名称" align="center" width="130" v-if="!hiddenLabels.includes('cclienteleName')" prop="cclienteleName">
+        <el-table-column label="客户名称" align="center" width="130" v-if="!hiddenLabels.includes('cclienteleName')"
+          prop="cclienteleName">
           <template slot-scope="{row}">
             <span>{{ row.cclienteleName }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="业务来源" align="center" width="130" v-if="!hiddenLabels.includes('cclienteleSubName')" prop="cclienteleSubName">
+        <el-table-column label="业务来源" align="center" width="130" v-if="!hiddenLabels.includes('cclienteleSubName')"
+          prop="cclienteleSubName">
           <template slot-scope="{row}">
             <span>{{ row.cclienteleSubName }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="客户联系人" align="center" width="130" v-if="!hiddenLabels.includes('cclienteleContactName')" prop="cclienteleContactName">
+        <el-table-column label="客户联系人" align="center" width="130" v-if="!hiddenLabels.includes('cclienteleContactName')"
+          prop="cclienteleContactName">
           <template slot-scope="{row}">
             <span>{{ row.cclienteleContactName }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="客户联系人电话" align="center" width="130" v-if="!hiddenLabels.includes('cmobile')" prop="cmobile">
+        <el-table-column label="客户联系人电话" align="center" width="130" v-if="!hiddenLabels.includes('cmobile')"
+          prop="cmobile">
           <template slot-scope="{row}">
             {{ row.cmobile }}
           </template>
@@ -87,27 +105,105 @@
             <span>{{ row.created }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="任务创建时间" align="center" width="160" v-if="!hiddenLabels.includes('taskCreated')" prop="taskCreated" sortable>
+        <el-table-column label="任务创建时间" align="center" width="160" v-if="!hiddenLabels.includes('taskCreated')"
+          prop="taskCreated" sortable>
           <template slot-scope="{row}">
             <span>{{ row.taskCreated }}</span>
           </template>
         </el-table-column>
         <el-table-column label="操作" align="center" width="100" fixed="right">
           <template slot-scope="{row}">
-            <el-button type="text"  @click="toDetail(row)">办理</el-button>
-            <el-button  type="text" @click="transfer(row.taskId)">转交</el-button>
+            <el-button type="text" @click="toDetail(row)">办理</el-button>
+            <el-button type="text" @click="transfer(row.taskId)">转交</el-button>
           </template>
         </el-table-column>
       </parentTable>
     </y-page-list-layout>
-    <TransferDialog :transferDialogVisible="visible" @parentFalse="parentFalse()" @getPage="getPage()" :recordId="recordId"></TransferDialog>
+    <TransferDialog :transferDialogVisible="visible" @parentFalse="parentFalse()" @getPage="getPage()"
+      :recordId="recordId"></TransferDialog>
+    <el-dialog :visible.sync="batchCommitDialog" width="70%">
+      <y-page-list-layout :page-list="batchCommitPageData" :page-para="batchCommitListQuery"
+        :get-page-list="selectBatchCommitPage">
+        <template slot="left">
+          <el-input style="margin-left: 20px;width: 300px;float: left;" class="filter-item"
+            v-model="batchCommitListQuery.keyWord" placeholder="项目编号/报告号/项目名称/业务来源" clearable>
+          </el-input>
+          <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary"
+            @click="searchBatchCommitList()" round>搜索
+          </el-button>
+          <el-button class="filter-item" style="margin-left: 10px;float: left;" type="danger" @click="batchCommitNode()"
+            round>提交选中流程
+          </el-button>
+        </template>
+        <parentTable :clickRowToPick="true" ref="table" :data="batchCommitPageData.records"
+          slot="table" style="width: 100%;height: 800px;" :selectionChange="handleSelectionChange">
+          <el-table-column align="center" type="selection" claimOrders width="50" border="true">
+          </el-table-column>
+          <el-table-column label="项目名称" align="center" width="250" v-if="!hiddenLabels.includes('productionName')"
+            prop="productionName" show-overflow-tooltip>
+            <template slot-scope="{row}">
+              <span class="enableClick" @click="toDetail(row)">{{ row.productionName == null ? row.orderName :
+                row.productionName
+              }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="订单号" align="center" width="150" v-if="!hiddenLabels.includes('orderId')" prop="orderId">
+            <template slot-scope="{row}">
+              <span class="enableClick" @click="toDetail(row)" @contextmenu.prevent="$doCopy(row.orderId)">{{ row.orderId
+              }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="价值意见书号" align="center" width="200" v-if="!hiddenLabels.includes('statementNo')"
+            prop="statementNo" sortable>
+            <template slot-scope="{row}">
+              <span @contextmenu.prevent="$doCopy(row.statementNo)">{{ row.statementNo == null ? '-' : row.statementNo
+              }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="报告号/复评函号" align="center" width="200" v-if="!hiddenLabels.includes('reportNo')"
+            prop="reportNo" sortable>
+            <template slot-scope="{row}">
+              <span @contextmenu.prevent="$doCopy(row.reportNo)">{{ row.reportNo == null ? '-' : row.reportNo }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="评估对象类型" align="center" width="120" v-if="!hiddenLabels.includes('businessObjectType')"
+            prop="businessObjectType">
+            <template slot-scope="{row}">
+              <span>{{ row.businessObjectType }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="待办人" align="center" v-if="!hiddenLabels.includes('handler')" prop="handler">
+            <template slot-scope="{row}">
+              <span>{{ row.handler }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="当前节点" align="center" width="140" v-if="!hiddenLabels.includes('nodeName')"
+            prop="nodeName" sortable>
+            <template slot-scope="{row}">
+              <span>{{ row.nodeName }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="客户经理" align="center" v-if="!hiddenLabels.includes('clientManager')"
+            prop="clientManager">
+            <template slot-scope="{row}">
+              <span>{{ row.clientManager }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="负责人" align="center" v-if="!hiddenLabels.includes('principal')" prop="principal">
+            <template slot-scope="{row}">
+              <span>{{ row.principal == null ? '-' : row.principal }}</span>
+            </template>
+          </el-table-column>
+        </parentTable>
+      </y-page-list-layout>
+    </el-dialog>
   </div>
 </template>
 <script>
 import YPageListLayout from '@/components/YPageListLayout'
 import Breadcrumb from '@/components/Breadcrumb'
 import TransferDialog from '@/components/TaskTransferDialog'
-import { getCookie,setCookie,removeCookie } from '@/utils/auth'
+import { getCookie, setCookie, removeCookie } from '@/utils/auth'
 import MoreSearchBar from '@/components/MoreSearchBar'
 
 export default {
@@ -125,53 +221,64 @@ export default {
       listQuery: {
         page: 1,
         size: 10,
-        keyword:null,
+        keyword: null,
         descs: null,
-        ascs:null
+        ascs: null
       },
-      majorNodes:[],
-      orderDate:'',
+      majorNodes: [],
+      orderDate: '',
       pickerOptions: {
-          shortcuts: [{
-            text: '最近一周',
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
-              picker.$emit('pick', [start, end]);
-            }
-          }, {
-            text: '最近一个月',
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
-              picker.$emit('pick', [start, end]);
-            }
-          }, {
-            text: '最近三个月',
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
-              picker.$emit('pick', [start, end]);
-            }
-          }]
+        shortcuts: [{
+          text: '最近一周',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+            picker.$emit('pick', [start, end]);
+          }
+        }, {
+          text: '最近一个月',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+            picker.$emit('pick', [start, end]);
+          }
+        }, {
+          text: '最近三个月',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+            picker.$emit('pick', [start, end]);
+          }
+        }]
+      },
+      visible: false,
+      recordId: null,
+      hiddenLabels: [],
+      batchCommitDialog: false,
+      workNodeCommits: [],
+      batchCommitListQuery: {
+        page: 1,
+        size: 10,
+        current: 1,
+        keyWord: null,
+        handlerId: this.$store.getters.userInfo.id,
+        getNodeIsBookbindingStamp: false
       },
-      visible:false,
-      recordId:null,
-      hiddenLabels:[]
+      batchCommitPageData: { records: [] }
     }
   },
   created() {
-    if (getCookie("MajorTodoList-hiddenLabels")!=undefined){
+    if (getCookie("MajorTodoList-hiddenLabels") != undefined) {
       this.hiddenLabels = JSON.parse(getCookie("MajorTodoList-hiddenLabels"))
     }
     this.getPage();
     this.getMajorNodes();
   },
   methods: {
-  
+
     resetSearch() {
       this.$router.push({ query: {} });
       this.orderDate = '';
@@ -182,14 +289,14 @@ export default {
       }
       this.getPage()
     },
-   
+
     removeHandle(row) {
       // console.log(data)
       this.$confirm('确认删除当前记录吗?', '警告', {
-          confirmButtonText: '确认',
-          cancelButtonText: '取消',
-          type: 'warning',
-        })
+        confirmButtonText: '确认',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
         .then(async () => {
           this.$api.term.delete(row.id).then((res) => {
             if (res.code === 200) {
@@ -209,20 +316,53 @@ export default {
       // 重置分页
       this.listQuery.page = 1
       this.listQuery.size = 10
-      if (this.orderDate){
-        this.listQuery.startDate = this.orderDate[0]+' 00:00:00';
-        this.listQuery.endDate = this.orderDate[1]+ ' 23:59:59';
+      if (this.orderDate) {
+        this.listQuery.startDate = this.orderDate[0] + ' 00:00:00';
+        this.listQuery.endDate = this.orderDate[1] + ' 23:59:59';
       }
       this.getPage()
     },
     getPage() {
 
-      this.$api.workNodeTaskRecord.majorTaskTodoList(this.listQuery).then(res=>{
-        if (res.code ===200){
-            this.pageData = res.data;
+      this.$api.workNodeTaskRecord.majorTaskTodoList(this.listQuery).then(res => {
+        if (res.code === 200) {
+          this.pageData = res.data;
+        }
+      })
+    },
+    // 当前用户待办分页查询
+    selectBatchCommitPage() {
+      this.$api.workNodeTaskRecord.majorTaskTodoList(this.batchCommitListQuery).then(res => {
+        if (res.code === 200) {
+          this.batchCommitPageData = res.data;
         }
       })
     },
+    // 条件查询
+    searchBatchCommitList() {
+      // 重置分页
+      this.batchCommitListQuery.page = 1
+      this.batchCommitListQuery.size = 10
+      this.selectBatchCommitPage()
+    },
+    openBatchCommitDialog() {
+      this.batchCommitListQuery.getNodeIsBookbindingStamp = true;
+      this.selectBatchCommitPage();
+      this.batchCommitDialog = true;
+    },
+    handleSelectionChange(val) {
+      let pickedCommits = [];
+      for (let i in val) {
+        let commit = new Object();
+        commit.instanceNodeId = val[i].currentNodeId;
+        commit.state = "PASS";
+        commit.comments = "批量提交装订盖章节点";
+        commit.businessSubId = val[i].statementNo;
+        commit.businessMinId = val[i].reportNo;
+        pickedCommits.push(commit);
+      }
+      this.workNodeCommits = pickedCommits;
+    },
     deleteInfo(id) {
       const that = this
       that.$confirm('请确认是否删除该数据?', '提示', {
@@ -245,99 +385,139 @@ export default {
       }).catch(() => {
       })
     },
-    getMajorNodes(){
-        this.$api.workNode.nodesByBusiness('MAJOR_BUSINESS').then(res=>{
-          if (res.code === 200){
-              this.majorNodes = res.data
-          }
-        })
+    getMajorNodes() {
+      this.$api.workNode.nodesByBusiness('MAJOR_BUSINESS').then(res => {
+        if (res.code === 200) {
+          this.majorNodes = res.data
+        }
+      })
     },
-    parentFalse(){
+    parentFalse() {
       this.visible = false;
     },
-    transfer(recordId){
+    transfer(recordId) {
       this.visible = true;
       this.recordId = recordId;
     },
-    toDetail(row){
+    toDetail(row) {
       let reportNo = row.reportNo;
       let statementNo = row.statementNo;
-      if (row.nodeCode === 'REPORT_OUT_APPLY' || row.nodeCode === 'LETTER_OUT_APPLY'){
-         this.$router.push(`/major/my/order?todoBusinessId=${row.businessId}&sNo=${statementNo}&rNo=${reportNo}&tId=${row.taskId}&cId=${row.currentNodeId}`)
-         return;
+      if (row.nodeCode === 'REPORT_OUT_APPLY' || row.nodeCode === 'LETTER_OUT_APPLY') {
+        this.$router.push(`/major/my/order?todoBusinessId=${row.businessId}&sNo=${statementNo}&rNo=${reportNo}&tId=${row.taskId}&cId=${row.currentNodeId}`)
+        return;
       }
-      if (row.nodeCode === 'REPORT_OUT_FINANCE_CHECK' || row.nodeCode === 'REPORT_OUT_DEPARTMENT_CHECK' || row.nodeCode === 'LETTER_OUT_FINANCE_CHECK' || row.nodeCode === 'LETTER_OUT_DEPARTMENT_CHECK'){
-         this.$router.push(`/out/warehouse/check?todoBusinessId=${row.businessId}&sNo=${statementNo}&rNo=${reportNo}&tId=${row.taskId}&cId=${row.currentNodeId}&nCode=${row.nodeCode}&businessType=MAJOR_BUSINESS`)
-         return;
+      if (row.nodeCode === 'REPORT_OUT_FINANCE_CHECK' || row.nodeCode === 'REPORT_OUT_DEPARTMENT_CHECK' || row.nodeCode === 'LETTER_OUT_FINANCE_CHECK' || row.nodeCode === 'LETTER_OUT_DEPARTMENT_CHECK') {
+        this.$router.push(`/out/warehouse/check?todoBusinessId=${row.businessId}&sNo=${statementNo}&rNo=${reportNo}&tId=${row.taskId}&cId=${row.currentNodeId}&nCode=${row.nodeCode}&businessType=MAJOR_BUSINESS`)
+        return;
       }
-      if (row.nodeCode === 'BUSINESS_ARCHIVING'){
-          this.$router.push(`/major/saveFile/waiting`)
-         return;
+      if (row.nodeCode === 'BUSINESS_ARCHIVING') {
+        this.$router.push(`/major/saveFile/waiting`)
+        return;
       }
-      if (row.nodeCode === 'STATEMENT_DELIVERY'){
-          this.$router.push(`/major/my/order?todoBusinessId=${row.businessId}&sNo=${statementNo}&tId=${row.taskId}&cId=${row.currentNodeId}`)
-         return;
+      if (row.nodeCode === 'STATEMENT_DELIVERY') {
+        this.$router.push(`/major/my/order?todoBusinessId=${row.businessId}&sNo=${statementNo}&tId=${row.taskId}&cId=${row.currentNodeId}`)
+        return;
       }
-      if (row.nodeCode==='STATEMENT_IN' || row.nodeCode==='STATEMENT_OUT' ||
-          row.nodeCode==='REPORT_IN'|| row.nodeCode==='REPORT_OUT' ||
-          row.nodeCode==='LETTER_IN' || row.nodeCode==='LETTER_OUT'){
-          this.$router.push(`/major/production/in?openDialog=${true}`)
-          return;
+      if (row.nodeCode === 'STATEMENT_IN' || row.nodeCode === 'STATEMENT_OUT' ||
+        row.nodeCode === 'REPORT_IN' || row.nodeCode === 'REPORT_OUT' ||
+        row.nodeCode === 'LETTER_IN' || row.nodeCode === 'LETTER_OUT') {
+        this.$router.push(`/major/production/in?openDialog=${true}`)
+        return;
       }
-      if (reportNo && statementNo){
+      if (reportNo && statementNo) {
         this.$router.push(`/major/todo/detail?id=${row.businessId}&orderId=${row.orderId}&reportNo=${reportNo}&statementNo=${row.statementNo}&doWorkflow=${true}&currentNodeId=${row.currentNodeId}&currentNodeCode=${row.nodeCode}&back=${'/major/todo'}`)
-      }else if (!reportNo && statementNo){
+      } else if (!reportNo && statementNo) {
         this.$router.push(`/major/todo/detail?id=${row.businessId}&orderId=${row.orderId}&statementNo=${row.statementNo}&doWorkflow=${true}&currentNodeId=${row.currentNodeId}&currentNodeCode=${row.nodeCode}&back=${'/major/todo'}`)
-      }else if (reportNo && !statementNo){
+      } else if (reportNo && !statementNo) {
         this.$router.push(`/major/todo/detail?id=${row.businessId}&orderId=${row.orderId}&reportNo=${reportNo}&doWorkflow=${true}&currentNodeId=${row.currentNodeId}&currentNodeCode=${row.nodeCode}&back=${'/major/todo'}`)
-      }else{
+      } else {
         this.$router.push(`/major/todo/detail?id=${row.businessId}&orderId=${row.orderId}&doWorkflow=${true}&currentNodeId=${row.currentNodeId}&currentNodeCode=${row.nodeCode}&back=${'/major/todo'}`)
       }
     },
 
-    sortTable(sortParams){
-       this.listQuery.ascs = sortParams.ascs;
-       this.listQuery.descs = sortParams.descs;
-       this.$api.workNodeTaskRecord.majorTaskTodoList(this.listQuery).then(res=>{
-        if (res.code ===200){
-            this.pageData = res.data;
+    sortTable(sortParams) {
+      this.listQuery.ascs = sortParams.ascs;
+      this.listQuery.descs = sortParams.descs;
+      this.$api.workNodeTaskRecord.majorTaskTodoList(this.listQuery).then(res => {
+        if (res.code === 200) {
+          this.pageData = res.data;
         }
       })
     },
-    switchHeader(data){
+    switchHeader(data) {
       this.hiddenLabels.push(data);
-      setCookie("MajorTodoList-hiddenLabels",this.hiddenLabels);
+      setCookie("MajorTodoList-hiddenLabels", this.hiddenLabels);
     },
-    showAllLabel(){
+    showAllLabel() {
       removeCookie("MajorTodoList-hiddenLabels");
       location.reload();
     },
-    fliterSearch(params){
-      this.$api.workNodeTaskRecord.majorTaskTodoList(this.listQuery).then(res=>{
-        if (res.code ===200){
-            this.pageData = res.data;
+    fliterSearch(params) {
+      this.$api.workNodeTaskRecord.majorTaskTodoList(this.listQuery).then(res => {
+        if (res.code === 200) {
+          this.pageData = res.data;
         }
       })
     },
-    resetParams(){
+    resetParams() {
       this.$router.push({ query: {} });
       this.listQuery = {
-          current: 1,
-          size: 10,
-          descs: 'created',
+        current: 1,
+        size: 10,
+        descs: 'created',
       }
       this.getPage();
     },
+    // 批量提交流程节点
+    batchCommitNode() {
+      if (this.workNodeCommits.length > 0) {
+        this.$confirm('确认批量提交已选中流程?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.$api.workflow.batchCommit(this.workNodeCommits).then(res => {
+            if (res.code === 200 && res.data) {
+              this.$notify({
+                title: '成功',
+                message: '工作流节点批量提交成功。',
+                type: 'success',
+                duration: 2000
+              });
+              this.getPage();
+              this.selectBatchCommitPage();
+            } else {
+              this.$notify({
+                title: '失败',
+                message: res.message,
+                type: 'error',
+                duration: 2000
+              });
+            }
+          })
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消批量提交'
+          });
+        });
+      } else {
+        this.$notify.error({
+          title: '错误',
+          message: '请选择至少一条流程再提交!'
+        });
+      }
+    }
   },
-  
+
 }
 
 
 
 </script>
 <style lang="scss" scoped>
- .enableClick:hover{
-    color:#1890ff;
-    cursor: pointer;
- }
+.enableClick:hover {
+  color: #1890ff;
+  cursor: pointer;
+}
 </style>

+ 358 - 186
src/views/personal/todoList.vue

@@ -5,19 +5,23 @@
     </div>
     <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getPage">
       <template slot="left">
-        <MoreSearchBar business="PERSONAL_BUSINESS" :nodes="personalNodes" :handlerName="false" @fliterSearch="fliterSearch" 
-        @resetParams="resetParams" :listQuery="listQuery">
+        <MoreSearchBar business="PERSONAL_BUSINESS" :nodes="personalNodes" :handlerName="false"
+          @fliterSearch="fliterSearch" @resetParams="resetParams" :listQuery="listQuery">
           <template v-slot:otherButton>
-              <el-button class="filter-item" round @click="showAllLabel()">显示全部列</el-button>
-              <PermissionButton menu-code="_views_personal_batch_allot" class-name="filter-item" type="danger" icon="el-icon-paperclip"
-              :page-jump="false" round  @click="openBatchAllotDialog()"/>
+            <el-button class="filter-item" round @click="showAllLabel()">显示全部列</el-button>
+            <PermissionButton menu-code="_views_personal_batch_allot" class-name="filter-item" type="danger"
+              icon="el-icon-paperclip" :page-jump="false" round @click="openBatchAllotDialog()" />
+            <PermissionButton menu-code="_views_personal_batch_commit_bookbinding_stamp" class-name="filter-item"
+              type="danger" icon="el-icon-paperclip" :page-jump="false" round @click="openBatchCommitDialog()" />
           </template>
         </MoreSearchBar>
       </template>
-      <parentTable ref="table" v-loading="listLoading" :data="pageData.records" slot="table" style="width: 100%;" @headerClick="switchHeader">
-        <el-table-column label="项目编号" align="center" width="150" v-if="!hiddenLabels.includes('orderId')" prop="orderId" >
+      <parentTable ref="table" v-loading="listLoading" :data="pageData.records" slot="table" style="width: 100%;"
+        @headerClick="switchHeader">
+        <el-table-column label="项目编号" align="center" width="150" v-if="!hiddenLabels.includes('orderId')" prop="orderId">
           <template slot-scope="{row}">
-            <span class="enableClick" @click="toDetail(row)" @contextmenu.prevent="$doCopy(row.orderId)">{{ row.orderId }}</span>
+            <span class="enableClick" @click="toDetail(row)" @contextmenu.prevent="$doCopy(row.orderId)">{{ row.orderId
+            }}</span>
           </template>
         </el-table-column>
         <el-table-column label="坐落" align="center" width="300" v-if="!hiddenLabels.includes('location')" prop="location">
@@ -25,64 +29,71 @@
             <span class="enableClick" @click="toDetail(row)">{{ row.location }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="当前节点" align="center" width="130"  v-if="!hiddenLabels.includes('currentNodeName')" prop="currentNodeName">
+        <el-table-column label="当前节点" align="center" width="130" v-if="!hiddenLabels.includes('currentNodeName')"
+          prop="currentNodeName">
           <template slot-scope="{row}">
             <span>{{ row.nodeName }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="处理人" align="center" width="130" v-if="!hiddenLabels.includes('handlerName')" prop="handlerName">
+        <el-table-column label="处理人" align="center" width="130" v-if="!hiddenLabels.includes('handlerName')"
+          prop="handlerName">
           <template slot-scope="{row}">
             <span>{{ row.handlerName }}</span>
           </template>
         </el-table-column>
         <el-table-column label="面积" align="center" width="130" v-if="!hiddenLabels.includes('acreage')" prop="acreage">
           <template slot-scope="{row}">
-            <span>{{ row.acreage? row.acreage+'平': '-' }}</span>
+            <span>{{ row.acreage ? row.acreage + '平' : '-' }}</span>
           </template>
         </el-table-column>
         <el-table-column label="单价" align="center" width="130" v-if="!hiddenLabels.includes('price')" prop="price">
           <template slot-scope="{row}">
-            <span>{{ row.price? row.price+'元': '-' }}</span>
+            <span>{{ row.price ? row.price + '元' : '-' }}</span>
           </template>
         </el-table-column>
         <el-table-column label="总价" align="center" width="130" v-if="!hiddenLabels.includes('amount')" prop="amount">
           <template slot-scope="{row}">
-            <span>{{ row.amount? (row.amount/10000).toFixed(2)+'万': '-' }}</span>
+            <span>{{ row.amount ? (row.amount / 10000).toFixed(2) + '万' : '-' }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="客户名称" align="center" width="130" v-if="!hiddenLabels.includes('clientName')" prop="clientName">
+        <el-table-column label="客户名称" align="center" width="130" v-if="!hiddenLabels.includes('clientName')"
+          prop="clientName">
           <template slot-scope="{row}">
-            <span>{{ row.clientName?row.clientName:'-' }}</span>
+            <span>{{ row.clientName ? row.clientName : '-' }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="业务来源" align="center" width="130" v-if="!hiddenLabels.includes('clientSubName')" prop="clientSubName">
+        <el-table-column label="业务来源" align="center" width="130" v-if="!hiddenLabels.includes('clientSubName')"
+          prop="clientSubName">
           <template slot-scope="{row}">
-            <span>{{ row.clientSubName?row.clientSubName:'-' }}</span>
+            <span>{{ row.clientSubName ? row.clientSubName : '-' }}</span>
           </template>
         </el-table-column>
         <el-table-column label="中介" align="center" width="130" v-if="!hiddenLabels.includes('agent')" prop="agent">
           <template slot-scope="{row}">
-            <span>{{ row.agent?row.agent:'-' }}</span>
+            <span>{{ row.agent ? row.agent : '-' }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="联系人" align="center" width="130" v-if="!hiddenLabels.includes('contactName')" prop="contactName">
+        <el-table-column label="联系人" align="center" width="130" v-if="!hiddenLabels.includes('contactName')"
+          prop="contactName">
           <template slot-scope="{row}">
-            <span>{{ row.contactName?row.contactName:'-'}}</span>
+            <span>{{ row.contactName ? row.contactName : '-' }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="联系人电话" align="center" width="130" v-if="!hiddenLabels.includes('contactTel')" prop="contactTel">
+        <el-table-column label="联系人电话" align="center" width="130" v-if="!hiddenLabels.includes('contactTel')"
+          prop="contactTel">
           <template slot-scope="{row}">
-            <span>{{ row.contactTel?row.contactTel:'-' }}</span>
+            <span>{{ row.contactTel ? row.contactTel : '-' }}</span>
           </template>
         </el-table-column>
         <el-table-column label="委托人" align="center" v-if="!hiddenLabels.includes('bailorA')" prop="bailorA">
           <template slot-scope="{row}">
-            <span>{{ row.bailorA ==null?(row.bailorB?row.bailorB:'-'):row.bailorA}}</span>
+            <span>{{ row.bailorA == null ? (row.bailorB ? row.bailorB : '-') : row.bailorA }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="委托人电话" align="center" width="130" v-if="!hiddenLabels.includes('bailoraTel')" prop="bailoraTel">
+        <el-table-column label="委托人电话" align="center" width="130" v-if="!hiddenLabels.includes('bailoraTel')"
+          prop="bailoraTel">
           <template slot-scope="{row}">
-            <span>{{ row.bailorATel==null?(row.bailorBTel?row.bailorBTel:'-'):row.bailorATel }}</span>
+            <span>{{ row.bailorATel == null ? (row.bailorBTel ? row.bailorBTel : '-') : row.bailorATel }}</span>
           </template>
         </el-table-column>
         <el-table-column label="客户经理" align="center" v-if="!hiddenLabels.includes('clientManager')" prop="clientManager">
@@ -90,19 +101,22 @@
             <span>{{ row.clientManager }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="实勘人" align="center" width="130" v-if="!hiddenLabels.includes('outwardStaffName')" prop="outwardStaffName">
+        <el-table-column label="实勘人" align="center" width="130" v-if="!hiddenLabels.includes('outwardStaffName')"
+          prop="outwardStaffName">
           <template slot-scope="{row}">
-            <span>{{ row.outwardStaffName? row.outwardStaffName: '-' }}</span>
+            <span>{{ row.outwardStaffName ? row.outwardStaffName : '-' }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="内业人员" align="center" width="130" v-if="!hiddenLabels.includes('inwardStaffName')" prop="inwardStaffName">
+        <el-table-column label="内业人员" align="center" width="130" v-if="!hiddenLabels.includes('inwardStaffName')"
+          prop="inwardStaffName">
           <template slot-scope="{row}">
-            <span>{{ row.inwardStaffName?row.inwardStaffName:'-' }}</span>
+            <span>{{ row.inwardStaffName ? row.inwardStaffName : '-' }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="定价人员" align="center" width="130" v-if="!hiddenLabels.includes('pricingStaffName')" prop="pricingStaffName">
+        <el-table-column label="定价人员" align="center" width="130" v-if="!hiddenLabels.includes('pricingStaffName')"
+          prop="pricingStaffName">
           <template slot-scope="{row}">
-            <span>{{ row.pricingStaffName?row.pricingStaffName:'-' }}</span>
+            <span>{{ row.pricingStaffName ? row.pricingStaffName : '-' }}</span>
           </template>
         </el-table-column>
         <el-table-column label="下单时间" align="center" width="110" v-if="!hiddenLabels.includes('created')" prop="created">
@@ -110,96 +124,172 @@
             {{ row.created }}
           </template>
         </el-table-column>
-        <el-table-column label="节点生成时间" align="center" width="110" v-if="!hiddenLabels.includes('nodeCreated')" prop="nodeCreated" >
+        <el-table-column label="节点生成时间" align="center" width="110" v-if="!hiddenLabels.includes('nodeCreated')"
+          prop="nodeCreated">
           <template slot-scope="{row}">
             {{ row.nodeCreated }}
           </template>
         </el-table-column>
-        <el-table-column label="最新备注" align="center" width="150" v-if="!hiddenLabels.includes('comments')" prop="comments">
+        <el-table-column label="最新备注" align="center" width="150" v-if="!hiddenLabels.includes('comments')"
+          prop="comments">
           <template slot-scope="{row}">
-            <span>{{ row.comments?row.comments:'-' }}</span>
+            <span>{{ row.comments ? row.comments : '-' }}</span>
           </template>
         </el-table-column>
         <el-table-column label="操作" align="center" width="140" fixed="right">
           <template slot-scope="{row}">
-            <el-button  type="text" @click="toDetail(row)">办理</el-button>
-            <el-button  type="text" @click="transfer(row.taskId)">转交</el-button>
+            <el-button type="text" @click="toDetail(row)">办理</el-button>
+            <el-button type="text" @click="transfer(row.taskId)">转交</el-button>
           </template>
         </el-table-column>
       </parentTable>
     </y-page-list-layout>
-    <el-dialog :visible.sync="batchAllotDialogVisible" width="90%" center top="10vh" custom-class="doWarehouseClass" @closed="getPage">
+    <el-dialog :visible.sync="batchAllotDialogVisible" width="90%" center top="10vh" custom-class="doWarehouseClass"
+      @closed="getPage">
       <div>
-          <el-divider content-position="left">
-              <span>订单关键字搜索:
-                <el-input v-model="orderKeyword" placeholder="关键字..." clearable style="width: 270px;" />
-              </span>
-          </el-divider>
+        <el-divider content-position="left">
+          <span>订单关键字搜索:
+            <el-input v-model="orderKeyword" placeholder="关键字..." clearable style="width: 270px;" />
+          </span>
+        </el-divider>
         <div class="outwardStaff-div">
-          <el-button style="margin-top: 10px;margin-left: 2px;" type="info" size="mini" plain v-for="(user,index) in outwardUsers" :key="index" @click="batchAllot(user)">{{ user.name }}</el-button>
+          <el-button style="margin-top: 10px;margin-left: 2px;" type="info" size="mini" plain
+            v-for="(user, index) in outwardUsers" :key="index" @click="batchAllot(user)">{{ user.name }}</el-button>
         </div>
-      </div>  
+      </div>
       <y-page-list-layout :page-list="allotOrderData" :page-para="allotOrderQuery" :get-page-list="getAllotOrderList">
         <template slot="left">
         </template>
-        <parentTable ref="table" :clickRowToPick="true" :data="allotOrderData.records" slot="table"
-          style="width: 100%;" :selectionChange="handleSelectionChange" >
+        <parentTable ref="table" :clickRowToPick="true" :data="allotOrderData.records" slot="table" style="width: 100%;"
+          :selectionChange="handleSelectionChange">
           <el-table-column align="center" type="selection" claimOrders width="100" border="true">
           </el-table-column>
           <el-table-column label="坐落" align="center" width="400">
-          <template slot-scope="{row}">
-            <span>{{ row.location }}</span>
-          </template>
+            <template slot-scope="{row}">
+              <span>{{ row.location }}</span>
+            </template>
           </el-table-column>
-          <el-table-column label="项目编号" align="center"  >
+          <el-table-column label="项目编号" align="center">
             <template slot-scope="{row}">
               <span>{{ row.orderId }}</span>
             </template>
           </el-table-column>
-          <el-table-column label="客户名称" align="center" >
-          <template slot-scope="{row}">
-            <span>{{ row.clientName==null?'-': row.clientName }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="业务来源" align="center" >
-          <template slot-scope="{row}">
-            <span>{{ row.clientSubName }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="联系人" align="center">
-          <template slot-scope="{row}">
-            <span>{{ row.contactName}}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="联系人电话" align="center" >
-          <template slot-scope="{row}">
-            <span>{{ row.contactTel }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="委托人1" align="center">
-          <template slot-scope="{row}">
-            <span>{{ row.bailorA? row.bailorA: '-' }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="委托人2" align="center">
-          <template slot-scope="{row}">
-            <span>{{ row.bailorB? row.bailorB: '-' }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="客户经理" align="center">
-          <template slot-scope="{row}">
-            <span>{{ row.clientManager==null?'-': row.clientManager }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="中介" align="center">
-          <template slot-scope="{row}">
-            <span>{{ row.agent==null?'-': row.agent }}</span>
-          </template>
-        </el-table-column>
+          <el-table-column label="客户名称" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.clientName == null ? '-' : row.clientName }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="业务来源" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.clientSubName }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="联系人" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.contactName }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="联系人电话" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.contactTel }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="委托人1" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.bailorA ? row.bailorA : '-' }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="委托人2" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.bailorB ? row.bailorB : '-' }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="客户经理" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.clientManager == null ? '-' : row.clientManager }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="中介" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.agent == null ? '-' : row.agent }}</span>
+            </template>
+          </el-table-column>
+        </parentTable>
+      </y-page-list-layout>
+    </el-dialog>
+    <TransferDialog :transferDialogVisible="visible" @parentFalse="parentFalse()" @getPage="getPage()"
+      :recordId="recordId"></TransferDialog>
+    <el-dialog :visible.sync="batchCommitDialog" width="70%">
+      <y-page-list-layout :page-list="batchCommitPageData" :page-para="batchCommitListQuery"
+        :get-page-list="selectBatchCommitPage">
+        <template slot="left">
+          <el-input style="margin-left: 20px;width: 300px;float: left;" class="filter-item"
+            v-model="batchCommitListQuery.keyWord" placeholder="项目编号/报告号/项目名称/业务来源" clearable>
+          </el-input>
+          <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary"
+            @click="searchBatchCommitList()" round>搜索
+          </el-button>
+          <el-button class="filter-item" style="margin-left: 10px;float: left;" type="danger" @click="batchCommitNode()"
+            round>提交选中流程
+          </el-button>
+        </template>
+        <parentTable :clickRowToPick="true" ref="table" v-loading="listLoading" :data="batchCommitPageData.records"
+          slot="table" style="width: 100%;height: 800px;" :selectionChange="handleSelectionChangeBatchCommit">
+          <el-table-column align="center" type="selection" claimOrders width="50" border="true">
+          </el-table-column>
+          <el-table-column label="坐落" align="center" width="400">
+            <template slot-scope="{row}">
+              <span>{{ row.location }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="项目编号" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.orderId }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="客户名称" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.clientName == null ? '-' : row.clientName }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="业务来源" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.clientSubName }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="联系人" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.contactName }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="联系人电话" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.contactTel }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="委托人1" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.bailorA ? row.bailorA : '-' }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="委托人2" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.bailorB ? row.bailorB : '-' }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="客户经理" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.clientManager == null ? '-' : row.clientManager }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="中介" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.agent == null ? '-' : row.agent }}</span>
+            </template>
+          </el-table-column>
         </parentTable>
       </y-page-list-layout>
     </el-dialog>
-    <TransferDialog :transferDialogVisible="visible" @parentFalse="parentFalse()"  @getPage="getPage()"  :recordId="recordId"></TransferDialog>
   </div>
 </template>
 <script>
@@ -208,7 +298,7 @@ import Breadcrumb from '@/components/Breadcrumb'
 import PermissionButton from '@/components/PermissionButton/PermissionButton'
 import MoreSearchBar from '@/components/MoreSearchBar'
 import TransferDialog from '@/components/TaskTransferDialog'
-import { getCookie,setCookie,removeCookie } from '@/utils/auth'
+import { getCookie, setCookie, removeCookie } from '@/utils/auth'
 
 export default {
   name: 'personalTodoList',
@@ -229,42 +319,52 @@ export default {
         size: 10,
         current: 1,
         descs: null,
-        ascs:null,
-        keyword:null,
-        startDate:null,
-        endDate:null,
+        ascs: null,
+        keyword: null,
+        startDate: null,
+        endDate: null,
       },
-      personalNodes:[],
-      visible:false,
-      recordId:null,
-      batchAllotDialogVisible:false,
+      personalNodes: [],
+      visible: false,
+      recordId: null,
+      batchAllotDialogVisible: false,
       allotOrderQuery: {
         page: 1,
         size: 10,
         descs: 'id',
-        keyword:null
+        keyword: null
       },
       allotOrderData: { records: [] },
-      outwardUsers:[],
-      batchOrders:[],
-      orderKeyword:null,
-      hiddenLabels:[]
+      outwardUsers: [],
+      batchOrders: [],
+      orderKeyword: null,
+      hiddenLabels: [],
+      batchCommitDialog: false,
+      workNodeCommits: [],
+      batchCommitListQuery: {
+        page: 1,
+        size: 10,
+        current: 1,
+        keyWord: null,
+        getNodeIsBookbindingStamp: false
+      },
+      batchCommitPageData: { records: [] }
     }
 
   },
-  watch:{
-    orderKeyword:{
-        handler(nv,ov){
-            console.log(nv)
-            this.allotOrderQuery.keyword = nv;
-            this.getAllotOrderList();
-        },
-        deep:true
-      
+  watch: {
+    orderKeyword: {
+      handler(nv, ov) {
+        console.log(nv)
+        this.allotOrderQuery.keyword = nv;
+        this.getAllotOrderList();
+      },
+      deep: true
+
     }
   },
   created() {
-    if (getCookie("personalTodoList-hiddenLabels")!=undefined){
+    if (getCookie("personalTodoList-hiddenLabels") != undefined) {
       this.hiddenLabels = JSON.parse(getCookie("personalTodoList-hiddenLabels"))
     }
     this.getPage();
@@ -272,38 +372,58 @@ export default {
   },
   methods: {
     getPage() {
-      if (getCookie('personalTodoList')!= undefined){
+      if (getCookie('personalTodoList') != undefined) {
         this.listQuery.size = parseInt(getCookie('personalTodoList'));
       }
-      this.$api.workNodeTaskRecord.personalTaskTodoList(this.listQuery).then(res=>{
-        if (res.code ===200){
-            this.pageData = res.data;
+      this.$api.workNodeTaskRecord.personalTaskTodoList(this.listQuery).then(res => {
+        if (res.code === 200) {
+          this.pageData = res.data;
         }
       })
     },
+    // 当前用户待办分页查询
+    selectBatchCommitPage() {
+      this.$api.workNodeTaskRecord.personalTaskTodoList(this.batchCommitListQuery).then(res => {
+        if (res.code === 200) {
+          this.batchCommitPageData = res.data;
+        }
+      })
+    },
+    // 条件查询
+    searchBatchCommitList() {
+      // 重置分页
+      this.batchCommitListQuery.page = 1
+      this.batchCommitListQuery.size = 10
+      this.selectBatchCommitPage()
+    },
+    openBatchCommitDialog() {
+      this.batchCommitListQuery.getNodeIsBookbindingStamp = true;
+      this.selectBatchCommitPage();
+      this.batchCommitDialog = true;
+    },
 
     getNodeEnum() {
       this.$api.workNode.nodesByBusiness("PERSONAL_BUSINESS").then(res => {
-                if (res.code === 200) {
-                    this.personalNodes = res.data;
-                }
-            })
-        },
+        if (res.code === 200) {
+          this.personalNodes = res.data;
+        }
+      })
+    },
 
-    fliterSearch(params){
-      this.$api.workNodeTaskRecord.personalTaskTodoList(params).then(res=>{
-        if (res.code ===200){
-            this.pageData = res.data;
+    fliterSearch(params) {
+      this.$api.workNodeTaskRecord.personalTaskTodoList(params).then(res => {
+        if (res.code === 200) {
+          this.pageData = res.data;
         }
       })
     },
 
-    resetParams(){
+    resetParams() {
       this.$router.push({ query: {} });
       this.listQuery = {
-          current: 1,
-          size: 10,
-          descs: 'created',
+        current: 1,
+        size: 10,
+        descs: 'created',
       }
       this.getPage();
     },
@@ -314,49 +434,49 @@ export default {
       this.getPage()
     },
 
-    toDetail(row){
+    toDetail(row) {
       const nodeCode = row.nodeCode;
-      if (nodeCode==='REPORT_OUT_APPLY' || nodeCode==='LETTER_OUT_APPLY' ){
+      if (nodeCode === 'REPORT_OUT_APPLY' || nodeCode === 'LETTER_OUT_APPLY') {
         this.$router.push(`/personal/my/order?todoBusinessId=${row.businessId}&orderId=${row.orderId}&tId=${row.taskId}&cId=${row.currentNodeId}`)
       }
-      else if(nodeCode==='REPORT_OUT_DEPARTMENT_CHECK' || nodeCode==='LETTER_OUT_DEPARTMENT_CHECK'){
+      else if (nodeCode === 'REPORT_OUT_DEPARTMENT_CHECK' || nodeCode === 'LETTER_OUT_DEPARTMENT_CHECK') {
         this.$router.push(`/out/warehouse/check?todoBusinessId=${row.businessId}&sNo=${row.orderId}&tId=${row.taskId}&cId=${row.currentNodeId}&nCode=${row.nodeCode}&businessType=PERSONAL_BUSINESS`)
       }
-      else if (row.nodeCode === 'BUSINESS_ARCHIVING'){
-          this.$router.push(`/personal/toSaveFile`)
-         return;
-      }else if (row.nodeCode==='STATEMENT_IN' || row.nodeCode==='STATEMENT_OUT' ||
-          row.nodeCode==='REPORT_IN'|| row.nodeCode==='REPORT_OUT' ||
-          row.nodeCode==='LETTER_IN' || row.nodeCode==='LETTER_OUT'){
-            this.$router.push(`/major/production/in?openDialog=${true}`)
-          }
-      else{
+      else if (row.nodeCode === 'BUSINESS_ARCHIVING') {
+        this.$router.push(`/personal/toSaveFile`)
+        return;
+      } else if (row.nodeCode === 'STATEMENT_IN' || row.nodeCode === 'STATEMENT_OUT' ||
+        row.nodeCode === 'REPORT_IN' || row.nodeCode === 'REPORT_OUT' ||
+        row.nodeCode === 'LETTER_IN' || row.nodeCode === 'LETTER_OUT') {
+        this.$router.push(`/major/production/in?openDialog=${true}`)
+      }
+      else {
         this.$router.push(`/personal/todo?id=${row.businessId}&currentNodeCode=${row.nodeCode}&orderId=${row.orderId}&doWorkflow=${true}&isOnline=${row.isOnline}&back=${'/personal/todo/list'}`)
         // window.open(this.$router.resolve(`/personal/todo?id=${row.businessId}&currentNodeCode=${row.nodeCode}&orderId=${row.orderId}&doWorkflow=${true}&isOnline=${row.isOnline}&back=${'/personal/todo/list'}`).href,
         // '_blank');
       }
     },
 
-    parentFalse(){
+    parentFalse() {
       this.visible = false;
     },
-    transfer(recordId){
+    transfer(recordId) {
       this.visible = true;
       this.recordId = recordId;
     },
-    openBatchAllotDialog(){
+    openBatchAllotDialog() {
       this.batchAllotDialogVisible = true;
       this.getAllotOrderList();
       this.getOutWardUsers();
     },
-    getOutWardUsers(){
-        this.$api.user.postUser("个贷外业岗").then(res=>{
-          if (res.code === 200){
-              this.outwardUsers = res.data;
-          }
-        })
+    getOutWardUsers() {
+      this.$api.user.postUser("个贷外业岗").then(res => {
+        if (res.code === 200) {
+          this.outwardUsers = res.data;
+        }
+      })
     },
-    handleSelectionChange(val){
+    handleSelectionChange(val) {
       let pickeds = [];
       for (let i in val) {
         let picked = new Object();
@@ -368,51 +488,103 @@ export default {
       }
       this.batchOrders = pickeds;
     },
-    getAllotOrderList(){
-        this.$api.personal.waitingAllotOrder(this.allotOrderQuery).then(res => {
-            if (res.code === 200) {
-                this.allotOrderData = res.data;
-            }
-        })
+    getAllotOrderList() {
+      this.$api.personal.waitingAllotOrder(this.allotOrderQuery).then(res => {
+        if (res.code === 200) {
+          this.allotOrderData = res.data;
+        }
+      })
     },
-    batchAllot(user){
-      if (!user ||this.batchOrders.length === 0){
-           this.$message.error('请先勾选订单后再指定外业人员');
-           return;
+    batchAllot(user) {
+      if (!user || this.batchOrders.length === 0) {
+        this.$message.error('请先勾选订单后再指定外业人员');
+        return;
       }
-      this.$confirm('确定将所选订单分配给【'+user.name+'】?').then(() => {
+      this.$confirm('确定将所选订单分配给【' + user.name + '】?').then(() => {
         let param = new Object();
         param.id = user.id;
         param.orders = this.batchOrders
         this.$api.personal.batchAllotOrder(param).then(res => {
-            if (res.code === 200) {
-              this.$notify({
-                title: '提示',
-                message: '分单成功!',
-                type: 'success',
-                duration: 1000
-              });
+          if (res.code === 200) {
+            this.$notify({
+              title: '提示',
+              message: '分单成功!',
+              type: 'success',
+              duration: 1000
+            });
+
+            this.batchOrders = [];
+            this.getAllotOrderList();
+          }
 
-                this.batchOrders = [];
-                this.getAllotOrderList();
-            }
-            
         })
       }).catch(() => {
         this.$message.error('取消分单');
       });
-      
+
     },
-    switchHeader(data){
+    switchHeader(data) {
       this.hiddenLabels.push(data);
-      setCookie("personalTodoList-hiddenLabels",this.hiddenLabels);
+      setCookie("personalTodoList-hiddenLabels", this.hiddenLabels);
     },
-    showAllLabel(){
+    showAllLabel() {
       removeCookie("personalTodoList-hiddenLabels");
       location.reload();
+    },
+    // 批量提交流程节点
+    batchCommitNode() {
+      if (this.workNodeCommits.length > 0) {
+        this.$confirm('确认批量提交已选中流程?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.$api.workflow.batchCommit(this.workNodeCommits).then(res => {
+            if (res.code === 200 && res.data) {
+              this.$notify({
+                title: '成功',
+                message: '工作流节点批量提交成功。',
+                type: 'success',
+                duration: 2000
+              });
+              this.getPage();
+              this.selectBatchCommitPage();
+            } else {
+              this.$notify({
+                title: '失败',
+                message: res.message,
+                type: 'error',
+                duration: 2000
+              });
+            }
+          })
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消批量提交'
+          });
+        });
+      } else {
+        this.$notify.error({
+          title: '错误',
+          message: '请选择至少一条流程再提交!'
+        });
+      }
+    },
+    handleSelectionChangeBatchCommit(val) {
+      let pickedCommits = [];
+      for (let i in val) {
+        let commit = new Object();
+        commit.instanceNodeId = val[i].currentNodeId;
+        commit.state = "PASS";
+        commit.comments = "批量提交装订盖章节点";
+        commit.businessSubId = val[i].orderId;
+        pickedCommits.push(commit);
+      }
+      this.workNodeCommits = pickedCommits;
     }
   },
-  
+
 }
 </script>
 <style lang="scss" scoped>
@@ -420,13 +592,13 @@ export default {
   border-radius: 10px;
 }
 
-.outwardStaff-div{
+.outwardStaff-div {
   width: 100%;
   padding-left: 17px;
 }
 
-.enableClick:hover{
-    color:#1890ff;
-    cursor: pointer;
- }
+.enableClick:hover {
+  color: #1890ff;
+  cursor: pointer;
+}
 </style>