wucl 1 år sedan
förälder
incheckning
51d35b90f7

+ 11 - 0
src/api/modules/taskRecordTransfer.js

@@ -0,0 +1,11 @@
+import request from '@/utils/request'
+/*
+* 任务转交
+*/
+export default {
+
+  add(params) {
+    return request.post(`workRecordTransfer`, params)
+  },
+  
+}

+ 3 - 0
src/api/modules/user.js

@@ -69,5 +69,8 @@ export default {
   },
   postUserInfo(params){
     return request.get(`user/info/${params}`)
+  },
+  departUsers(){
+    return request.get(`user/depart/users`);
   }
 }

+ 107 - 30
src/components/MajorSearchBar/index.vue

@@ -6,18 +6,19 @@
                     <el-input v-if="keyword" v-model="listQuery.keyword" placeholder="关键字搜索..." clearable>
                     </el-input>
                 </el-col>
-                <el-col :xs="24" :sm="12" :lg="3" :span="6">
-                    <el-select v-if="financial" clearable v-model="listQuery.financial" placeholder="金融类型">
-                        <el-option :value="true" label="金融">金融</el-option>
-                        <el-option :value="false" label="非金融">非金融</el-option>
-                    </el-select>
-                </el-col>
+               
                 <el-col :xs="24" :sm="12" :lg="3" :span="6">
                     <el-select v-if="nodeCode" v-model="listQuery.nodeCode" placeholder="流程节点" clearable filterable class="filter-item" >
-                     <el-option v-for="(item, index) in majorNodes" :key="index" :label="item.name" :value="item.code" />
+                     <el-option v-for="(item, index) in nodes" :key="index" :label="item.name" :value="item.code" />
                     </el-select>
                 </el-col>
                 <el-col :xs="24" :sm="12" :lg="6" :span="6">
+                        <el-date-picker v-if="orderDateSearch"  clearable v-model="orderDate" type="daterange" align="center" unlink-panels
+                            range-separator="至" start-placeholder="下单日期(开始)" end-placeholder="下单日期(结束)" :picker-options="pickerOptions"
+                            value-format="yyyy-MM-dd">
+                        </el-date-picker>
+                    </el-col>
+                <el-col :xs="24" :sm="12" :lg="6" :span="6">
                     <el-button class="filter-item"  type="success" @click="searchList" round>搜索
                     </el-button>
                     <el-button class="filter-item" round type="info" @click="resetSearch()">重置
@@ -26,8 +27,14 @@
                     </el-button>
                 </el-col>
             </el-row>
-            <div v-show="moreSearchBar" class="moreSearchStyle">
-                <el-row>
+            <div v-if="business==='MAJOR_BUSINESS'" v-show="moreSearchBar" class="moreSearchStyle">
+                <el-row class="row">
+                    <el-col :xs="24" :sm="12" :lg="3" :span="6">
+                        <el-select v-if="financial" clearable v-model="listQuery.financial" placeholder="金融类型">
+                            <el-option :value="true" label="金融">金融</el-option>
+                            <el-option :value="false" label="非金融">非金融</el-option>
+                        </el-select>
+                    </el-col>
                     <el-col :xs="24" :sm="12" :lg="3" :span="6" style="margin-right: 8px;">
                         <el-input v-if="clientName" v-model="listQuery.clientName" placeholder="委托人" clearable >
                         </el-input>
@@ -54,11 +61,38 @@
                             <el-option v-for="(d,id) in trunDep" :key="id" :label="d.name" :value="d.id"></el-option> 
                         </el-select>
                     </el-col>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                        <el-date-picker v-if="orderDateSearch"  clearable v-model="orderDate" type="daterange" align="center" unlink-panels
-                            range-separator="至" start-placeholder="下单日期(开始)" end-placeholder="下单日期(结束)" :picker-options="pickerOptions"
-                            value-format="yyyy-MM-dd">
-                        </el-date-picker>
+                 
+                </el-row>
+            </div>
+            <div v-if="business==='PERSONAL_BUSINESS'" v-show="moreSearchBar" class="moreSearchStyle">
+                <el-row class="row">
+                    <el-col :xs="24" :sm="12" :lg="3" :span="6" style="margin-right: 8px;">
+                        <el-input v-if="clientName" v-model="listQuery.clientName" placeholder="客户名称" clearable >
+                        </el-input>
+                    </el-col>
+                    <el-col :xs="24" :sm="12" :lg="3" :span="6" style="margin-right: 8px;">
+                        <el-input v-if="clientSubName" v-model="listQuery.clientSubName" placeholder="业务来源" clearable >
+                        </el-input>
+                    </el-col>
+                    <el-col :xs="24" :sm="12" :lg="3" :span="6" style="margin-right: 8px;">
+                        <el-input v-if="clientManager" v-model="listQuery.clientManager" placeholder="客户经理" clearable >
+                        </el-input>
+                    </el-col>
+                    <el-col :xs="24" :sm="12" :lg="3" :span="6" style="margin-right: 8px;">
+                        <el-input v-if="outwardStaffName" v-model="listQuery.outwardStaffName" placeholder="外业人员" clearable >
+                        </el-input>
+                    </el-col>
+                    <el-col :xs="24" :sm="12" :lg="3" :span="6" style="margin-right: 8px;">
+                        <el-input v-if="inwardStaffName" v-model="listQuery.inwardStaffName" placeholder="内业人员" clearable >
+                        </el-input>
+                    </el-col>
+                    <el-col :xs="24" :sm="12" :lg="3" :span="6" style="margin-right: 8px;">
+                        <el-input v-if="pricingStaffName" v-model="listQuery.pricingStaffName" placeholder="定价内业" clearable >
+                        </el-input>
+                    </el-col>
+                    <el-col :xs="24" :sm="12" :lg="3" :span="6" style="margin-right: 8px;">
+                        <el-input v-if="handlerName" v-model="listQuery.handlerName" placeholder="处理人" clearable >
+                        </el-input>
                     </el-col>
                 </el-row>
             </div>
@@ -70,7 +104,7 @@
 <script>
 
 export default {
-    name: "majorSerachBar",
+    name: "moreSerachBar",
     components: {
 
     },
@@ -84,6 +118,10 @@ export default {
             require:false,
             default:true
         },
+        business:{
+            type: String,
+            require:true,
+        },
         financial:{
             type: Boolean,
             require:false,
@@ -123,17 +161,61 @@ export default {
             type: Boolean,
             require:false,
             default:true
-        }
+        },
+        nodes:{
+            type: Array,
+            require:false,
+            default:function(){
+                return [];
+            }
+        },
+        clientName:{
+            type: Boolean,
+            require:false,
+            default:true
+        },
+        clientSubName:{
+            type: Boolean,
+            require:false,
+            default:true
+        },
+        clientManager:{
+            type: Boolean,
+            require:false,
+            default:true
+        },
+        outwardStaffName:{
+            type: Boolean,
+            require:false,
+            default:true
+        },
+        inwardStaffName:{
+            type: Boolean,
+            require:false,
+            default:true
+        },
+        pricingStaffName:{
+            type: Boolean,
+            require:false,
+            default:true
+        },
+        handlerName:{
+            type: Boolean,
+            require:false,
+            default:true
+        },
     },
 
     computed: {
 
     },
     created() {
-        this.getMajorTurnDepartment();
-        this.getNodeEnum();
-        this.getAllotDepartmentUser();
-        this.getClientManager();
+        if (this.business==='MAJOR_BUSINESS'){
+            this.getMajorTurnDepartment();
+            this.getAllotDepartmentUser();
+            this.getClientManager();
+        }
+     
     },
     data() {
         return {
@@ -166,12 +248,11 @@ export default {
             },
             moreSearchBar: false,
             moreSearchIcon: "el-icon-arrow-right",
-            majorNodes: [],
             orderDate: '',
             trunDep: [],
             allotDepartment:[],
             clientManagers:[],
-            principals:[]
+            principals:[],
         }
 
     },
@@ -200,13 +281,7 @@ export default {
                 this.moreSearchIcon = "el-icon-arrow-right";
             }
         },
-        getNodeEnum() {
-            this.$api.workNode.enum().then(res => {
-                if (res.code === 200) {
-                    this.majorNodes = res.data;
-                }
-            })
-        },
+
         getMajorTurnDepartment() {
             this.$api.department.trunDep("MAJOR_BUSINESS").then(res => {
                 if (res.code === 200) {
@@ -242,11 +317,13 @@ export default {
 </script>
 <style scoped lang="css">
 
+.row{
+    margin-top: 10px;
+}
 .bar-container{
     width: 1650px;
 }
 .moreSearchStyle {
-    margin-top: 10px;
     animation: scale-in-ver-top .2s cubic-bezier(.25, .46, .45, .94) both
 }
 

+ 115 - 0
src/components/TaskTransferDialog/index.vue

@@ -0,0 +1,115 @@
+<template>
+    <div>
+        <el-dialog  :visible.sync="xVisible" width="50%" center top="25vh" custom-class="doWarehouseClass" @closed="parentFalse()" >
+            <el-card shadow="never" class="card">
+                <div v-for="(d,id) in departments">
+                    <el-divider content-position="left">{{d.name}}</el-divider>
+                    <el-radio-group v-model="toUserId" size="medium">
+                        <div v-for="(u,id) in d.users" class="xRadio">
+                            <el-radio  border  :label="u.id" :disabled="userInfo.id===u.id" >{{ u.name }} </el-radio>
+                        </div>
+                    </el-radio-group>
+                </div>
+            </el-card>
+            <div style="display: flex;">
+                <el-button style="margin-left: 43%; margin-top: 10px;" type="info">取消</el-button>
+                <el-button style="margin-top: 10px; float: right;" type="success" @click="transfer()">确认</el-button>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+  
+  <script>
+  import { mapGetters } from 'vuex'
+  export default {
+        name: 'TransferDialog',
+
+        computed: {
+            ...mapGetters([
+            'userInfo'
+            ]),
+
+        },
+
+        watch:{
+            transferDialogVisible:function(newv){
+                this.xVisible = newv;
+                if (newv){
+                    this.getDepartmentUsers();
+                }
+            },
+        },
+        data() {
+            return {
+                xVisible:false,
+                toUserId:null,
+                departments:[],
+                toUser:null,
+            };
+        },
+        props: {
+            transferDialogVisible:{
+                type: Boolean,
+                require:false,
+                default: false,
+            },
+            recordId:{
+                type: Number,
+                require: true
+            }
+        },
+
+        mounted() {
+           
+        },
+
+        methods: {
+            parentFalse(){
+               this.$emit('parentFalse')
+            },
+            transfer(){
+                if (this.recordId && this.toUserId){
+                    const transfer = new Object();
+                    transfer.recordId = this.recordId;
+                    transfer.toId = this.toUserId;
+                    this.$api.taskRecordTransfer.add(transfer).then(res=>{
+                        if (res.code === 200 && res.data){
+                            this.$message.success("任务转交成功!");
+                            this.xVisible = false;
+                            this.$emit('getPage')
+                        }
+                    })
+                    
+                }
+            },
+            getDepartmentUsers(){
+                this.$api.user.departUsers().then(res=>{
+                    if (res.code===200){
+                        this.departments = res.data;
+                    }
+                })
+            }
+        },
+  
+}
+  
+</script>
+
+<style lang="scss" scoped>
+    /deep/.doWarehouseClass {
+        border-radius: 10px;
+      }
+      /deep/.el-radio{
+        width: 90px;
+      }
+
+      .card{
+        width: 100%;
+
+      }
+      .xRadio{
+        margin-right: 5px;
+        margin-bottom: 10px;
+        float: left;
+      }
+</style>

+ 0 - 1
src/layout/index.vue

@@ -107,7 +107,6 @@ export default {
     },
     show: {
           get() {
-              console.log(this.pass  || this.validCache)
               return (this.pass  || this.validCache)
           },
           set(){

+ 0 - 1
src/router/permission.js

@@ -88,7 +88,6 @@ router.beforeEach(async (to, from, next) => {
         next()
       } else {
         const { name, postList } = await store.dispatch('user/userInfo');
-        console.log('账户/岗位', name, postList);
         const accessedRoutes = await store.dispatch('user/getMenus');
         const accessRoutes = await store.dispatch('permission/generateRoutes', accessedRoutes);
         accessRoutes.push({

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 896 - 700
src/views/complex/index.vue


+ 2 - 2
src/views/major/doneList.vue

@@ -42,11 +42,11 @@
         </el-button>
       </template>
       <parentTable  :data="pageData.records" slot="table" style="width: 100%;">
-        <el-table-column label="业务类型" align="center">
+        <!-- <el-table-column label="业务类型" align="center">
           <template slot-scope="{row}">
             <span>大中型</span>
           </template>
-        </el-table-column>
+        </el-table-column> -->
         <el-table-column label="项目名称" align="center" width="200" >
           <template slot-scope="{row}">
             <span>{{ row.productionName==null?row.orderName: row.productionName }}</span>

+ 15 - 3
src/views/major/list.vue

@@ -5,7 +5,7 @@
     </div>
     <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getPage">
       <template slot="left">
-        <MajorSearchBar @fliterSearch="fliterSearch" @resetParams="resetParams" :listQuery="listQuery"></MajorSearchBar>
+        <MoreSearchBar business="MAJOR_BUSINESS" @fliterSearch="fliterSearch" @resetParams="resetParams" :listQuery="listQuery" :nodes="majorNodes"></MoreSearchBar>
       </template>
       <parentTable ref="table" v-loading="listLoading" :data="pageData.records" slot="table" style="width: 100%;" @sortTable="sortTable" >
         <el-table-column label="项目名称" align="center" width="200" >
@@ -126,7 +126,7 @@
 import YPageListLayout from '@/components/YPageListLayout'
 import Breadcrumb from '@/components/Breadcrumb'
 import PermissionButton from '@/components/PermissionButton/PermissionButton'
-import MajorSearchBar from '@/components/MajorSearchBar'
+import MoreSearchBar from '@/components/MoreSearchBar'
 
 export default {
   name: 'MajorList',
@@ -134,7 +134,7 @@ export default {
     Breadcrumb,
     YPageListLayout,
     PermissionButton,
-    MajorSearchBar
+    MoreSearchBar
   },
 
   data() {
@@ -151,10 +151,14 @@ export default {
         startDate:null,
         endDate:null
       },
+      majorNodes:[]
     }
   },
   created() {
+    // this.listQuery.id = this.$route.query.id;
+    this.listQuery.keyword = this.$route.query.keyword;
     this.getPage();
+    this.getNodeEnum();
   },
   methods: {
     getPage() {
@@ -165,6 +169,14 @@ export default {
       })
     },
 
+    getNodeEnum() {
+      this.$api.workNode.nodesByBusiness("MAJOR_BUSINESS").then(res => {
+                if (res.code === 200) {
+                    this.majorNodes = res.data;
+                }
+            })
+        },
+
     fliterSearch(params){
       this.$api.major.page(params).then(res=>{
         if (res.code ===200){

+ 34 - 22
src/views/major/myOrder.vue

@@ -5,26 +5,12 @@
     </div>
     <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getList">
       <template slot="left">
-        <PermissionButton menu-code="_views_major_order" class-name="filter-item" type="danger" icon="el-icon-circle-plus-outline"
-          :page-jump="true" round style="float: left" :page-query="{'couldEdit':true,'couldBack':true}" />
-        <el-input v-model="listQuery.keyword" placeholder="关键字搜索..." clearable
-          style="margin-left: 20px;width: 500px;float: left;">
-        </el-input>
-        <el-date-picker
-          style="margin-left: 20px;float: left;"
-          v-model="orderDate"
-          type="daterange"
-          align="center"
-          unlink-panels
-          range-separator="至"
-          start-placeholder="下单日期(开始)"
-          end-placeholder="下单日期(结束)"
-          :picker-options="pickerOptions" value-format="yyyy-MM-dd">
-        </el-date-picker>
-        <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="searchList" round>搜索
-        </el-button>
-        <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch()">重置
-        </el-button>
+        <el-col :xs="24" :sm="12" :lg="2" :span="6">
+          <PermissionButton menu-code="_views_major_order" class-name="filter-item" type="danger" icon="el-icon-circle-plus-outline"
+            :page-jump="true" round style="float: left" :page-query="{'couldEdit':true,'couldBack':true}" />
+        </el-col>
+        <MoreSearchBar business="MAJOR_BUSINESS" @fliterSearch="fliterSearch" @resetParams="resetParams" :listQuery="listQuery" 
+              :nodeCode="false" :financial="false" :clientManager="false" :businessObjectType="false" :department="false"></MoreSearchBar>
       </template>
       <parentTable  :data="pageData.records" slot="table" style="width: 100%;">
         <el-table-column label="订单名称" align="center" show-overflow-tooltip width='300' >
@@ -687,13 +673,15 @@
 <script>
 import YPageListLayout from '@/components/YPageListLayout'
 import Breadcrumb from '@/components/Breadcrumb'
+import MoreSearchBar from '@/components/MoreSearchBar'
 
 
 export default {
   name: 'myOrder',
   components: {
     Breadcrumb,
-    YPageListLayout
+    YPageListLayout,
+    MoreSearchBar
   },
   filters: {
     
@@ -1261,7 +1249,31 @@ export default {
           });
         }
       })
-    }
+    },
+    fliterSearch(params){
+      this.$api.majorProduction.myOrder(Object.assign({}, params)).then(res=>{
+        if (res.code ===200){
+            this.pageData = res.data;
+        }
+      })
+    },
+
+    searchList() {
+      // 重置分页
+      this.listQuery.page = 1
+      this.listQuery.size = 10
+      this.getList()
+    },
+
+    resetParams(){
+      this.$router.push({ query: {} });
+      this.listQuery = {
+          current: 1,
+          size: 10,
+          descs: 'created',
+      }
+      this.getList();
+    },
   },
   
 }

+ 2 - 0
src/views/major/saveFileDoneList.vue

@@ -109,6 +109,7 @@ export default {
         page: 1,
         size: 10,
         descs: 'id',
+        keyword:null
       },
       saveFileDate:'',
       pickerOptions: {
@@ -141,6 +142,7 @@ export default {
     }
   },
   created() {
+    this.listQuery.keyword = this.$route.query.keyword;
     this.getList();
   },
   methods: {

+ 23 - 9
src/views/major/todoList.vue

@@ -3,7 +3,7 @@
     <div class="title-container">
       <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
     </div>
-    <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getList">
+    <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getPage">
       <template slot="left">
         <el-input v-model="listQuery.keyword" placeholder="关键字搜索..." clearable
           style="margin-left: 20px;width: 500px;float: left;">
@@ -84,23 +84,28 @@
             <span>{{ row.created }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="操作" align="center" width="80" fixed="right">
+        <el-table-column label="操作" align="center" width="140" fixed="right">
           <template slot-scope="{row}">
-            <el-button type="success" round @click="toDetail(row)">办理</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>
   </div>
 </template>
 <script>
 import YPageListLayout from '@/components/YPageListLayout'
 import Breadcrumb from '@/components/Breadcrumb'
+import TransferDialog from '@/components/TaskTransferDialog'
+
 export default {
   name: 'MajorTaskTodoList',
   components: {
     Breadcrumb,
     YPageListLayout,
+    TransferDialog
   },
 
   data() {
@@ -140,10 +145,12 @@ export default {
             }
           }]
       },
+      visible:false,
+      recordId:null
     }
   },
   created() {
-    this.getList();
+    this.getPage();
     this.getMajorNodes();
   },
   methods: {
@@ -156,7 +163,7 @@ export default {
         size: 10,
         descs: 'id',
       }
-      this.getList()
+      this.getPage()
     },
    
     removeHandle(row) {
@@ -173,7 +180,7 @@ export default {
                 type: 'success',
                 message: '删除成功',
               })
-              this.getList()
+              this.getPage()
             }
           })
         })
@@ -189,9 +196,9 @@ export default {
         this.listQuery.startDate = this.orderDate[0]+' 00:00:00';
         this.listQuery.endDate = this.orderDate[1]+ ' 23:59:59';
       }
-      this.getList()
+      this.getPage()
     },
-    getList() {
+    getPage() {
 
       this.$api.workNodeTaskRecord.majorTaskTodoList(this.listQuery).then(res=>{
         if (res.code ===200){
@@ -210,7 +217,7 @@ export default {
         that.$api.item.delete(id).then(data => {
           that.loading = false
           if (data.code === 200) {
-            that.getList()
+            that.getPage()
           } else {
             this.$message({
               type: 'error',
@@ -228,6 +235,13 @@ export default {
           }
         })
     },
+    parentFalse(){
+      this.visible = false;
+    },
+    transfer(recordId){
+      this.visible = true;
+      this.recordId = recordId;
+    },
     toDetail(row){
       let reportNo = row.reportNo;
       let statementNo = row.statementNo;

+ 2 - 2
src/views/personal/doneList.vue

@@ -42,11 +42,11 @@
         </el-button>
       </template>
       <parentTable  :data="pageData.records" slot="table" style="width: 100%;">
-        <el-table-column label="业务类型" align="center">
+        <!-- <el-table-column label="业务类型" align="center">
           <template slot-scope="{row}">
             <span>个贷业务</span>
           </template>
-        </el-table-column>
+        </el-table-column> -->
         <el-table-column label="坐落" align="center" width="200" >
           <template slot-scope="{row}">
             <span>{{ row.location }}</span>

+ 9 - 24
src/views/personal/myOrder.vue

@@ -5,28 +5,12 @@
     </div>
     <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getPage">
       <template slot="left">
-        <PermissionButton menu-code="_views_personal_order" class-name="filter-item" type="danger" icon="el-icon-circle-plus-outline"
+        <el-col :xs="24" :sm="12" :lg="2" :span="6">
+          <PermissionButton menu-code="_views_personal_order" class-name="filter-item" type="danger" icon="el-icon-circle-plus-outline"
           :page-jump="true" round style="float: left" :page-query="{'couldEdit':true,'saveOrderBtn':'保存订单','showBtn':true ,'couldBack':true}" />
-        <el-input style="margin-left: 20px;width: 100px;float: left;" class="filter-item" 
-            v-model="listQuery.keyword" placeholder="关键字搜索..." clearable>
-        </el-input>
-        <el-input v-model="listQuery.name" placeholder="相关人员" clearable
-          style="margin-left: 20px;width: 270px;float: left;">
-        </el-input>
-        <el-select v-model="listQuery.state" placeholder="请选择" clearable filterable
-          style="margin-left: 20px;width: 100px;float: left;" class="filter-item">
-          <el-option label="线上" value="online" />
-          <el-option label="线下" value="outline" />
-        </el-select>
-        <el-select v-model="listQuery.state" placeholder="请选择" clearable filterable
-          style="margin-left: 20px;width: 100px;float: left;" class="filter-item">
-          <el-option label="意见书" value="statement" />
-          <el-option label="报告" value="report" />
-        </el-select>
-        <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="searchList" round>搜索
-        </el-button>
-        <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch()">重置
-        </el-button>
+        </el-col>
+          <MoreSearchBar business="PERSONAL_BUSINESS" @fliterSearch="fliterSearch" @resetParams="resetParams" :listQuery="listQuery" 
+              :nodeCode="false" :clientManager="false" :outwardStaffName="false" :inwardStaffName="false" :pricingStaffName="false" :handlerName="false"></MoreSearchBar>
       </template>
       <parentTable ref="table" v-loading="listLoading" :data="pageData.records" slot="table" style="width: 100%;" >
         <el-table-column label="坐落" align="center" width="200">
@@ -344,8 +328,8 @@
 import YPageListLayout from '@/components/YPageListLayout'
 import Breadcrumb from '@/components/Breadcrumb'
 import PermissionButton from '@/components/PermissionButton/PermissionButton'
-import YDetailPageLayout from '@/components/YDetailPageLayout/index_detail'
 import {isNumber} from '@/utils/validate'
+import MoreSearchBar from '@/components/MoreSearchBar'
 
 export default {
   name: 'PersonalMyOrder',
@@ -353,6 +337,7 @@ export default {
     Breadcrumb,
     YPageListLayout,
     PermissionButton,
+    MoreSearchBar
   },
 
   data() {
@@ -411,7 +396,7 @@ export default {
     },
 
     fliterSearch(params){
-      this.$api.personal.list(params).then(res=>{
+      this.$api.personal.myOrder(params).then(res=>{
         if (res.code ===200){
             this.pageData = res.data;
         }
@@ -422,7 +407,7 @@ export default {
       // 重置分页
       this.listQuery.page = 1
       this.listQuery.size = 10
-      this.getList()
+      this.getPage()
     },
 
     resetParams(){

+ 21 - 30
src/views/personal/pendingList.vue

@@ -5,26 +5,7 @@
     </div>
     <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getPage">
       <template slot="left">
-        <el-input style="margin-left: 20px;width: 100px;float: left;" class="filter-item" 
-            v-model="listQuery.keyword" placeholder="关键字搜索..." clearable>
-        </el-input>
-        <el-input v-model="listQuery.name" placeholder="相关人员" clearable
-          style="margin-left: 20px;width: 270px;float: left;">
-        </el-input>
-        <el-select v-model="listQuery.state" placeholder="请选择" clearable filterable
-          style="margin-left: 20px;width: 100px;float: left;" class="filter-item">
-          <el-option label="线上" value="online" />
-          <el-option label="线下" value="outline" />
-        </el-select>
-        <el-select v-model="listQuery.state" placeholder="请选择" clearable filterable
-          style="margin-left: 20px;width: 100px;float: left;" class="filter-item">
-          <el-option label="意见书" value="statement" />
-          <el-option label="报告" value="report" />
-        </el-select>
-        <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="searchList" round>搜索
-        </el-button>
-        <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch()">重置
-        </el-button>
+        <MoreSearchBar business="PERSONAL_BUSINESS" :nodes="personalNodes"  @fliterSearch="fliterSearch" @resetParams="resetParams" :listQuery="listQuery"></MoreSearchBar>
       </template>
       <parentTable ref="table" v-loading="listLoading" :data="pageData.records" slot="table" style="width: 100%;">
         <el-table-column label="项目编号" align="center" width="200" >
@@ -49,22 +30,22 @@
         </el-table-column>
         <el-table-column label="面积" align="center" width="130" prop="reportNo">
           <template slot-scope="{row}">
-            <span>{{ row.acreage }}</span>
+            <span>{{ row.acreage?row.acreage:'--' }}</span>
           </template>
         </el-table-column>
         <el-table-column label="单价" align="center" width="130">
           <template slot-scope="{row}">
-            <span>{{ row.price }}</span>
+            <span>{{ row.price?row.price:'--' }}</span>
           </template>
         </el-table-column>
         <el-table-column label="总价" align="center" width="130">
           <template slot-scope="{row}">
-            <span>{{ row.amount }}</span>
+            <span>{{ row.amount?row.amount:'--' }}</span>
           </template>
         </el-table-column>
         <el-table-column label="客户名称" align="center" width="130">
           <template slot-scope="{row}">
-            <span>{{ row.clientName==null?'-': row.clientName }}</span>
+            <span>{{ row.clientName==null?'--': row.clientName }}</span>
           </template>
         </el-table-column>
         <el-table-column label="业务来源" align="center" width="130">
@@ -74,7 +55,7 @@
         </el-table-column>
         <el-table-column label="中介" align="center" width="130">
           <template slot-scope="{row}">
-            <span>{{ row.agent==null?'-': row.agent }}</span>
+            <span>{{ row.agent==null?'--': row.agent }}</span>
           </template>
         </el-table-column>
         <el-table-column label="联系人" align="center" width="130">
@@ -104,7 +85,7 @@
         </el-table-column>
         <el-table-column label="实勘人" align="center" width="130">
           <template slot-scope="{row}">
-            <span>{{ row.outwardStaffName }}</span>
+            <span>{{ row.outwardStaffName?row.outwardStaffName:'--' }}</span>
           </template>
         </el-table-column>
         <el-table-column label="内业人员" align="center" width="130">
@@ -114,7 +95,7 @@
         </el-table-column>
         <el-table-column label="定价人员" align="center" width="130">
           <template slot-scope="{row}">
-            <span>{{ row.pricingStaffName }}</span>
+            <span>{{ row.pricingStaffName?row.pricingStaffName:'--' }}</span>
           </template>
         </el-table-column>
         <el-table-column label="下单时间" align="center" width="100" prop="created" sortable>
@@ -135,6 +116,7 @@
 import YPageListLayout from '@/components/YPageListLayout'
 import Breadcrumb from '@/components/Breadcrumb'
 import PermissionButton from '@/components/PermissionButton/PermissionButton'
+import MoreSearchBar from '@/components/MoreSearchBar'
 
 export default {
   name: 'PersonalPendingList',
@@ -142,6 +124,7 @@ export default {
     Breadcrumb,
     YPageListLayout,
     PermissionButton,
+    MoreSearchBar,
   },
 
   data() {
@@ -149,7 +132,6 @@ export default {
       pageData: { records: [] },
       listLoading: false,
       listQuery: {
-        id:null,
         page: 1,
         size: 10,
         current: 1,
@@ -159,11 +141,13 @@ export default {
         startDate:null,
         endDate:null
       },
+      personalNodes:[]
     }
   },
   created() {
-    this.listQuery.id = this.$route.query.id;
+    this.listQuery.keyword = this.$route.query.keyword;
     this.getPage();
+    this.getNodeEnum();
   },
   methods: {
     getPage() {
@@ -174,6 +158,13 @@ export default {
       })
     },
 
+    getNodeEnum() {
+            this.$api.workNode.nodesByBusiness("PERSONAL_BUSINESS").then(res => {
+                if (res.code === 200) {
+                    this.personalNodes = res.data;
+                }
+            })
+        },
     fliterSearch(params){
       this.$api.personal.list(params).then(res=>{
         if (res.code ===200){
@@ -195,7 +186,7 @@ export default {
       // 重置分页
       this.listQuery.page = 1
       this.listQuery.size = 10
-      this.getList()
+      this.getPage()
     },
 
     orderDetail(row){

+ 15 - 31
src/views/personal/saveFileDoneList.vue

@@ -5,24 +5,8 @@
     </div>
     <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getList">
       <template slot="left">
-        <el-input v-model="listQuery.keyword" placeholder="关键字搜索..." clearable
-          style="margin-left: 20px;width: 500px;float: left;">
-        </el-input>
-        <el-date-picker
-          style="margin-left: 20px;float: left;"
-          v-model="saveFileDate"
-          type="daterange"
-          align="center"
-          unlink-panels
-          range-separator="至"
-          start-placeholder="归档日期(开始)"
-          end-placeholder="归档日期(结束)"
-          :picker-options="pickerOptions" value-format="yyyy-MM-dd">
-        </el-date-picker>
-        <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="searchList" round>搜索
-        </el-button>
-        <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch()">重置
-        </el-button>
+        <MoreSearchBar business="PERSONAL_BUSINESS"  :handlerName="false" :nodeCode="false"
+         @fliterSearch="fliterSearch" @resetParams="resetParams" :listQuery="listQuery"></MoreSearchBar>
       </template>
       <parentTable  :data="pageData.records" slot="table" style="width: 100%;">
         <el-table-column label="坐落" align="center" width="200">
@@ -65,7 +49,7 @@
             <span>{{ row.clientManager }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="实勘人" align="center">
+        <el-table-column label="外业人员" align="center">
           <template slot-scope="{row}">
             <span>{{ row.outwardStaffName }}</span>
           </template>
@@ -107,12 +91,14 @@
 <script>
 import YPageListLayout from '@/components/YPageListLayout'
 import Breadcrumb from '@/components/Breadcrumb'
+import MoreSearchBar from '@/components/MoreSearchBar'
 
 export default {
   name: 'saveFileDonePersonalList',
   components: {
     Breadcrumb,
     YPageListLayout,
+    MoreSearchBar
   },
   filters: {
     
@@ -156,21 +142,11 @@ export default {
     }
   },
   created() {
+    this.listQuery.keyword = this.$route.query.keyword;
     this.getList();
   },
   methods: {
   
-    resetSearch() {
-      this.$router.push({ query: {} });
-      this.saveFileDate='';
-      this.listQuery = {
-        current: 1,
-        size: 10,
-        descs: 'id',
-      }
-      this.getList()
-    },
-   
     searchList() {
       // 重置分页
       this.listQuery.page = 1
@@ -188,7 +164,15 @@ export default {
         }
       })
     },
-   
+    resetParams(){
+      this.$router.push({ query: {} });
+      this.listQuery = {
+          current: 1,
+          size: 10,
+          descs: 'created',
+      }
+      this.getList();
+    },
     toDetail(row){
       this.$router.push(`/personal/readonly/detail?id=${row.id}&orderId=${row.orderId}&back=${'/personal/saveFile'}`)
     },

+ 32 - 25
src/views/personal/todoList.vue

@@ -5,26 +5,7 @@
     </div>
     <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getPage">
       <template slot="left">
-        <el-input style="margin-left: 20px;width: 100px;float: left;" class="filter-item" 
-            v-model="listQuery.keyword" placeholder="关键字搜索..." clearable>
-        </el-input>
-        <el-input v-model="listQuery.name" placeholder="相关人员" clearable
-          style="margin-left: 20px;width: 270px;float: left;">
-        </el-input>
-        <el-select v-model="listQuery.state" placeholder="请选择" clearable filterable
-          style="margin-left: 20px;width: 100px;float: left;" class="filter-item">
-          <el-option label="线上" value="online" />
-          <el-option label="线下" value="outline" />
-        </el-select>
-        <el-select v-model="listQuery.state" placeholder="请选择" clearable filterable
-          style="margin-left: 20px;width: 100px;float: left;" class="filter-item">
-          <el-option label="意见书" value="statement" />
-          <el-option label="报告" value="report" />
-        </el-select>
-        <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="searchList" round>搜索
-        </el-button>
-        <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch()">重置
-        </el-button>
+        <MoreSearchBar business="PERSONAL_BUSINESS" :nodes="personalNodes" :handlerName="false" @fliterSearch="fliterSearch" @resetParams="resetParams" :listQuery="listQuery"></MoreSearchBar>
       </template>
       <parentTable ref="table" v-loading="listLoading" :data="pageData.records" slot="table" style="width: 100%;">
         <el-table-column label="坐落" align="center" width="200">
@@ -127,19 +108,23 @@
             {{ row.nodeCreated }}
           </template>
         </el-table-column>
-        <el-table-column label="操作" align="center" width="80" fixed="right">
+        <el-table-column label="操作" align="center" width="140" fixed="right">
           <template slot-scope="{row}">
-            <el-button round type="primary" @click="toDetail(row)">办理</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>
   </div>
 </template>
 <script>
 import YPageListLayout from '@/components/YPageListLayout'
 import Breadcrumb from '@/components/Breadcrumb'
 import PermissionButton from '@/components/PermissionButton/PermissionButton'
+import MoreSearchBar from '@/components/MoreSearchBar'
+import TransferDialog from '@/components/TaskTransferDialog'
 
 export default {
   name: 'personalTodoList',
@@ -147,6 +132,8 @@ export default {
     Breadcrumb,
     YPageListLayout,
     PermissionButton,
+    MoreSearchBar,
+    TransferDialog
   },
 
   data() {
@@ -161,12 +148,16 @@ export default {
         ascs:null,
         keyword:null,
         startDate:null,
-        endDate:null
+        endDate:null,
       },
+      personalNodes:[],
+      visible:false,
+      recordId:null
     }
   },
   created() {
     this.getPage();
+    this.getNodeEnum();
   },
   methods: {
     getPage() {
@@ -177,8 +168,16 @@ export default {
       })
     },
 
+    getNodeEnum() {
+      this.$api.workNode.nodesByBusiness("PERSONAL_BUSINESS").then(res => {
+                if (res.code === 200) {
+                    this.personalNodes = res.data;
+                }
+            })
+        },
+
     fliterSearch(params){
-      this.$api.personal.list(params).then(res=>{
+      this.$api.workNodeTaskRecord.personalTaskTodoList(params).then(res=>{
         if (res.code ===200){
             this.pageData = res.data;
         }
@@ -198,7 +197,7 @@ export default {
       // 重置分页
       this.listQuery.page = 1
       this.listQuery.size = 10
-      this.getList()
+      this.getPage()
     },
 
     toDetail(row){
@@ -217,6 +216,14 @@ export default {
         this.$router.push(`/personal/todo?id=${row.businessId}&currentNodeCode=${row.nodeCode}&orderId=${row.orderId}&doWorkflow=${true}&back=${'/personal/todo/list'}`)
       }
     },
+
+    parentFalse(){
+      this.visible = false;
+    },
+    transfer(recordId){
+      this.visible = true;
+      this.recordId = recordId;
+    }
   },
   
 }