Преглед на файлове

1.大中型业务待办处理开发
2.修复弹出框报错

GouGengquan преди 1 месец
родител
ревизия
90945edc26
променени са 6 файла, в които са добавени 225 реда и са изтрити 3 реда
  1. 5 0
      src/api/major.js
  2. 20 0
      src/router/index.js
  3. 63 2
      src/views/home/todo.vue
  4. 29 0
      src/views/major/index.vue
  5. 107 0
      src/views/major/todoDetail.vue
  6. 1 1
      src/views/personal/todoDetail.vue

+ 5 - 0
src/api/major.js

@@ -3,4 +3,9 @@ import request from '@/utils/request'
 // 获取大中型待办任务
 export function getMajorTodoList(params) {
     return request.get('workTaskRecord/major/todo', {params: params})
+}
+
+// 获取大中型待办任务
+export function getMajorTodoDetail(params) {
+    return request.get(`major/${params}`)
 }

+ 20 - 0
src/router/index.js

@@ -18,6 +18,10 @@ import AssetsView from '@/views/assets/index.vue'
 import PersonalIndex from '@/views/personal/index.vue'
 import PersonalTodoDetailView from '@/views/personal/todoDetail.vue'
 
+// 个贷业务
+import MajorIndex from '@/views/major/index.vue'
+import MajorTodoDetailView from '@/views/major/todoDetail.vue'
+
 const routes = [
   // 重定向到首页的路由
   {
@@ -100,6 +104,22 @@ const routes = [
             },
           },
         ]
+      },
+      // 大中型业务
+      {
+        path: 'major',
+        component: MajorIndex,
+        name: 'majorView',
+        children: [
+          {
+            path: 'todoDetail',
+            component: MajorTodoDetailView,
+            name: 'todoDetailView',
+            meta: {
+              title: '待办处理-大中型'
+            },
+          },
+        ]
       }
     ]
   },

+ 63 - 2
src/views/home/todo.vue

@@ -31,7 +31,7 @@
       <van-search v-model="majorListQuery.keyword" placeholder="请输入搜索关键词" @search="onMajorSearch()" />
       <van-pull-refresh v-model="loading" @refresh="onMajorRefresh()">
         <van-list v-model:loading="loading" :finished="majorFinished" finished-text="没有待办了" @load="majorTodoList()">
-          <div class="card" v-for="item in majorListData" :key="item.id">
+          <div class="card" v-for="item in majorListData" :key="item.id" @click="toMajorDetail(item)">
             <h3>
               <van-icon name="link-o" />
               &nbsp;{{ item.orderId }}
@@ -93,6 +93,7 @@
 </template>
 
 <script>
+import { showDialog } from 'vant';
 import { getPersonalTodoList } from '@/api/personal';
 import { getMajorTodoList } from '@/api/major';
 import { getAssetsTodoList } from '@/api/assets';
@@ -276,7 +277,67 @@ export default {
           });
           break;
         default:
-          this.$router.push(`/index/personal/todoDetail?id=${row.businessId}&currentNodeCode=${row.nodeCode}&orderId=${row.orderId}&doWorkflow=${true}&isOnline=${row.isOnline}&handlerName=${row.handlerName}&nodeTime=${row.nodeCreated}`);
+          this.$router.push(
+            `/index/personal/todoDetail?id=${row.businessId}&currentNodeCode=${row.nodeCode}&orderId=${row.orderId}&doWorkflow=${true}&isOnline=${row.isOnline}&handlerName=${
+              row.handlerName
+            }&nodeTime=${row.nodeCreated}`
+          );
+          break;
+      }
+    },
+    // 大中型前往待办详情页
+    toMajorDetail(row) {
+      let reportNo = row.reportNo;
+      let statementNo = row.statementNo;
+      const nodeCode = row.nodeCode;
+      switch (nodeCode) {
+        case 'REPORT_OUT_APPLY':
+        case 'LETTER_OUT_APPLY':
+        case 'REPORT_OUT_FINANCE_CHECK':
+        case 'REPORT_OUT_DEPARTMENT_CHECK':
+        case 'LETTER_OUT_FINANCE_CHECK':
+        case 'LETTER_OUT_DEPARTMENT_CHECK':
+        case 'BUSINESS_ARCHIVING':
+        case 'STATEMENT_DELIVERY':
+        case 'STATEMENT_IN':
+        case 'STATEMENT_OUT':
+        case 'REPORT_IN':
+        case 'REPORT_OUT':
+        case 'LETTER_IN':
+        case 'LETTER_OUT':
+        case 'LEADER_ALLOCATION':
+          showDialog({
+            message: '当前节点需要业务操作, 请在电脑端处理节点',
+          }).then(() => {
+            // on close
+          });
+          break;
+        default:
+          if (reportNo && statementNo) {
+            this.$router.push(
+              `/index/major/todoDetail?id=${row.businessId}&orderId=${row.orderId}&reportNo=${reportNo}&statementNo=${row.statementNo}&doWorkflow=${true}&currentNodeId=${
+                row.currentNodeId
+              }&currentNodeCode=${row.nodeCode}&taskCreated=${row.taskCreated}&projectName=${row.productionName == null ? row.orderName : row.productionName}&principal=${row.principal}`
+            );
+          } else if (!reportNo && statementNo) {
+            this.$router.push(
+              `/index/major/todoDetail?id=${row.businessId}&orderId=${row.orderId}&statementNo=${row.statementNo}&doWorkflow=${true}&currentNodeId=${row.currentNodeId}&currentNodeCode=${
+                row.nodeCode
+              }&taskCreated=${row.taskCreated}&projectName=${row.productionName == null ? row.orderName : row.productionName}&principal=${row.principal}`
+            );
+          } else if (reportNo && !statementNo) {
+            this.$router.push(
+              `/index/major/todoDetail?id=${row.businessId}&orderId=${row.orderId}&reportNo=${reportNo}&doWorkflow=${true}&currentNodeId=${row.currentNodeId}&currentNodeCode=${
+                row.nodeCode
+              }&taskCreated=${row.taskCreated}&projectName=${row.productionName == null ? row.orderName : row.productionName}&principal=${row.principal}`
+            );
+          } else {
+            this.$router.push(
+              `/index/major/todoDetail?id=${row.businessId}&orderId=${row.orderId}&doWorkflow=${true}&currentNodeId=${row.currentNodeId}&currentNodeCode=${row.nodeCode}&taskCreated=${
+                row.taskCreated
+              }&projectName=${row.productionName == null ? row.orderName : row.productionName}&principal=${row.principal}`
+            );
+          }
           break;
       }
     },

+ 29 - 0
src/views/major/index.vue

@@ -0,0 +1,29 @@
+<template>
+  <div class="base">
+    <router-view v-slot="{ Component }">
+      <transition>
+        <component :is="Component" />
+      </transition>
+    </router-view>
+  </div>
+</template>
+
+<script>
+
+export default {
+  data() {
+    return {};
+  },
+  created() {
+  },
+  methods: {
+    
+  },
+};
+</script>
+<style scoped>
+.base {
+}
+</style>
+
+

+ 107 - 0
src/views/major/todoDetail.vue

@@ -0,0 +1,107 @@
+<template>
+  <div>
+    <van-nav-bar title="待办处理-大中型" left-text="返回" left-arrow @click-left="onClickLeft()" />
+    <van-form>
+      <van-cell-group inset>
+        <van-field label="项目编号" v-model="major.orderId" name="orderId" readonly />
+        <van-field label="订单名称" v-model="major.projectName" name="projectName" type="textarea" readonly />
+        <van-field label="意见书号" v-model="major.statementNo" name="statementNo" readonly />
+        <van-field label="报告/函号" v-model="major.reportNo" name="reportNo" readonly />
+        <van-field label="当前节点" v-model="currentNode.nodeName" name="nodeName" readonly />
+        <van-field label="客户经理" v-model="major.clientManager" name="clientManager" readonly />
+        <van-field label="项目负责人" v-model="major.principal" name="principal" readonly />
+        <van-field label="对象类型" v-model="major.businessObjectType" name="businessObjectType" readonly />
+        <van-field label="客户名称" v-model="major.cclienteleName" name="clientName" readonly />
+        <van-field label="业务来源" v-model="major.cclienteleSubName" name="clientSubName" readonly />
+        <van-field label="客户联系人" v-model="major.cclienteleContactName" name="cclienteleContactName" readonly />
+        <van-field label="联系电话" v-model="major.cmobile" name="cmobile" readonly />
+        <van-field label="下单时间" v-model="major.created" name="created" readonly />
+        <van-field label="任务创建时间" v-model="currentNode.taskCreated" name="taskCreated" readonly />
+        <van-field label="最新备注" v-model="commitInfo.comments" name="comments" type="textarea" />
+      </van-cell-group>
+    </van-form>
+    <div class="button-style" style="float: left">
+      <van-button type="warning" style="width: 100%" @click="commitNode('REVERSE')">退回</van-button>
+    </div>
+    <div class="button-style" style="float: right">
+      <van-button type="success" style="width: 100%" @click="commitNode('PASS')">提交</van-button>
+    </div>
+  </div>
+</template>
+
+<script>
+import { showNotify } from 'vant';
+import { getMajorTodoDetail } from '@/api/major';
+import { currentNode } from '@/api/workFlowNodeInstance';
+import { commit } from '@/api/workflow';
+
+export default {
+  data() {
+    return {
+      // 个贷详情
+      major: {},
+      personalTarget: {},
+      currentNode: {},
+      // 节点提交信息
+      commitInfo: {},
+    };
+  },
+  created() {
+    this.major.id = this.$route.query.id;
+    this.currentNode.nodeCode = this.$route.query.currentNodeCode;
+    this.getTodoDetail();
+  },
+  methods: {
+    onClickLeft() {
+      history.back();
+    },
+    // 获取待办详情
+    getTodoDetail() {
+      if (this.major.id) {
+        getMajorTodoDetail(this.major.id).then((res) => {
+          if (res.code === 200) {
+            this.major = res.data;
+            this.major.principal = this.$route.query.principal;
+            this.major.projectName = this.$route.query.projectName;
+            this.major.reportNo = this.$route.query.reportNo;
+            this.major.statementNo = this.$route.query.statementNo;
+            this.getCurrentNode();
+          }
+        });
+      }
+    },
+    // 获取当前节点实例
+    getCurrentNode() {
+      if (this.major.id) {
+        currentNode({ mainBusiness: 'MAJOR_BUSINESS', businessId: this.major.id, businessSubId: this.major.statementNo, businessMinId: this.major.reportNo }).then((res) => {
+          if (res.code === 200) {
+            this.currentNode = res.data;
+            this.currentNode.taskCreated = this.$route.query.taskCreated;
+          }
+        });
+      }
+    },
+    // 提交节点
+    commitNode(state) {
+      this.commitInfo.instanceNodeId = this.currentNode.instanceId;
+      this.commitInfo.state = state;
+      this.commitInfo.businessSubId = this.major.statementNo;
+      this.commitInfo.businessMinId = this.major.reportNo;
+      commit(this.commitInfo).then((res) => {
+        if (res.code === 200 && res.data) {
+          showNotify({ type: 'success', message: '节点提交成功' });
+          history.back();
+        }
+      });
+    },
+  },
+};
+</script>
+
+<style scoped>
+.button-style {
+  display: inline-block;
+  margin: 20px;
+  width: 100px;
+}
+</style>

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

@@ -4,7 +4,7 @@
     <van-form>
       <van-cell-group inset>
         <van-field label="项目编号" v-model="personal.orderId" name="orderId" readonly />
-        <van-field label="坐落" v-model="personal.location" name="location" readonly />
+        <van-field label="坐落" v-model="personal.location" name="location" readonly type="textarea" />
         <van-field label="当前节点" v-model="currentNode.nodeName" name="nodeName" readonly />
         <van-field label="处理人" v-model="currentNode.handlerName" name="handlerName" readonly />
         <van-field label="面积" v-model="personalTarget.acreage" name="acreage" readonly />