From e2cef6c358e57c2bc63e67a05c88c52585bb96db Mon Sep 17 00:00:00 2001
From: wente <329538422@qq.com>
Date: 星期五, 29 十二月 2023 11:22:29 +0800
Subject: [PATCH] 项目表

---
 web/src/views/modules/sys/task/already-task.vue |  444 ++++++++++++++++++++++++++++++++----------------------
 1 files changed, 262 insertions(+), 182 deletions(-)

diff --git a/web/src/views/modules/sys/task/already-task.vue b/web/src/views/modules/sys/task/already-task.vue
index c2355d7..1176f51 100644
--- a/web/src/views/modules/sys/task/already-task.vue
+++ b/web/src/views/modules/sys/task/already-task.vue
@@ -1,203 +1,283 @@
 <template>
-    <zt-table-wraper ref="tableObj" query-url="/task/taskCenter/pageDone" :paging="false" :lazy="true" v-slot="{ table }"
-                     paging-layout="total, prev, pager, next">
-      <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
-        <el-input type="text" v-model="dataForm.djxlSystem" v-if="false" />
-      </el-form>
-      <el-table ref="table"
-                :height="getTransformHeight(transformHeight)"
-                v-loading="table.dataLoading"
-                :data="table.dataList"
-                style='margin-top:10px;transition: .5s;'
-                @selection-change="table.selectionChangeHandle"
-                border highlight-current-row>
-        <el-table-column align="center" prop="index" width="60" label="搴忓彿">
-          <template slot-scope="scope">
-            <span v-html="indexFormat(scope.$index)"></span>
-          </template>
-        </el-table-column>
+  <div>
+    <!--    <zt-table-wraper ref="tableObj" query-url="/newPlan/taskCenter/pageDone" :paging="false" :lazy="true" v-slot="{ table }"-->
+    <!--                     paging-layout="total, prev, pager, next">-->
+    <el-form :inline="true" :model="dataForm">
+      <el-input type="text" v-model="dataForm.djxlSystem" v-if="false" />
+    </el-form>
+    <el-table ref="table"
+              :height="getTransformHeight()"
+              class="pushtable  table-is__left-tz"
+              v-loading="dataLoading"
+              :data="dataList"
+              style='margin-top:10px;transition: .5s;'
+              border highlight-current-row>
+      <el-table-column align="center" prop="index" width="60" label="搴忓彿">
+        <template slot-scope="scope">
+          <span v-html="indexFormat(scope.$index)"></span>
+        </template>
+      </el-table-column>
 
-        <el-table-column align="left" prop="topic" label="宸ョ▼" width="150"/>
-<!--        <el-table-column align="left" prop="title" label="娴佺▼鍚嶇О" width="200"/>-->
-        <el-table-column align="left" prop="remark" label="鎽樿" />
-        <el-table-column align="center" prop="finishStepName" label="瀹屾垚鑺傜偣" width="240px"/>
-        <el-table-column align="center" v-if ='$store.state.user.isAdmin' prop="finishUserName" label="瀹屾垚浜哄憳" width="120px"/>
-        <el-table-column align="center" prop="finishTime" label="瀹屾垚鏃堕棿" width="160px"/>
-        <el-table-column align="center" prop="stepName" label="褰撳墠鐘舵��" width="240px"/>
-        <el-table-column align="center" prop="receiveName" label="鍔炵悊浜�"  width="120px"/>
-        <!--        <el-table-column align="center" prop="statusName" label="鎴戠殑鎰忚" />-->
-        <zt-table-column-handle  fixed="right" :table="table" :has-edit="false" :has-delete="false" :has-view="false" width="220px">
-          <template v-slot="{ row }">
-            <zt-table-button v-show="row.canRecall == 1 && !$store.state.user.isAdmin" @click="reCall(row)">鎾ゅ洖</zt-table-button>
-            <zt-table-button @click="check(row,'')" v-if="row.flowCode !== 'yearPlanFlow'">鏌ョ湅</zt-table-button>
-            <zt-table-button @click="check(row,'')" v-if="row.flowCode === 'yearPlanFlow'">淇敼</zt-table-button>
-            <zt-table-button @click="flowChart(row)">娴佺▼鍥�</zt-table-button>
-            <zt-table-button v-if="row.flowCode != 'yearPlan2'" @click="getFlowTrack(row)">鍔炵悊杞ㄨ抗</zt-table-button>
-          </template>
-        </zt-table-column-handle>
-      </el-table>
-      <!-- 寮圭獥, 鏂板 / 淇敼 -->
-<!--      <el-dialog  title="椤圭洰杩涘害鍥�" top="10vh" width='85%' :visible.sync="dialogVisible">-->
-<!--        <processTimeline ref="processTimeline"></processTimeline>-->
-<!--      </el-dialog>-->
-</zt-table-wraper>
+      <el-table-column align="left" prop="topic" label="椤圭洰鍚嶇О" />
+      <!--        <el-table-column align="left" prop="title" label="娴佺▼鍚嶇О" width="200"/>-->
+      <el-table-column align="left" prop="remark" label="鎽樿" width="250"/>
+      <el-table-column align="center" prop="finishStepName" label="瀹屾垚鑺傜偣" width="240px"/>
+      <el-table-column align="center" v-if ='$store.state.user.isAdmin' prop="finishUserName" label="瀹屾垚浜哄憳" width="120px"/>
+      <el-table-column align="center" prop="finishTime" label="瀹屾垚鏃堕棿" width="120px"/>
+      <el-table-column align="center" prop="stepName" label="褰撳墠鐘舵��" width="100px"/>
+      <el-table-column align="center" prop="receiveName" label="鍔炵悊浜�"  width="100px"/>
+      <!--        <el-table-column align="center" prop="statusName" label="鎴戠殑鎰忚" />-->
+      <el-table-column label="鎿嶄綔" width="180px">
+        <template v-slot="{ row }">
+          <zt-table-button v-show="row.canRecall == 1 && !$store.state.user.isAdmin" @click="reCall(row)">鎾ゅ洖</zt-table-button>
+          <zt-table-button @click="check(row,'')" v-if="row.flowCode !== 'yearPlanFlow'">鏌ョ湅</zt-table-button>
+          <zt-table-button @click="check(row,'')" v-if="row.flowCode === 'yearPlanFlow'">淇敼</zt-table-button>
+          <zt-table-button @click="flowChart(row)">娴佺▼鍥�</zt-table-button>
+<!--          <zt-table-button v-if="row.flowCode != 'yearPlan2'" @click="getFlowTrack(row)">鍔炵悊杞ㄨ抗</zt-table-button>-->
+        </template>
+      </el-table-column>
+      <infinite-loading
+        spinner="bubbles"
+        distance="200"
+        slot="append"
+        identifier="infiniteId"
+        @infinite="infiniteHandler"
+        ref="infiniteLoading"
+        force-use-infinite-wrapper=".pushtable .el-table__body-wrapper">
+        <div slot="no-more" style="margin-top: 10px;margin-bottom: 10px;"><span v-if="dataListAll.length > pageSize">娌℃湁鏇村浜�</span></div>
+      </infinite-loading>
+    </el-table>
+    <!-- 宸插姙浠诲姟寮圭獥 -->
+    <ItemCirculatOrder ref="itemCirculatOrder" @refreshDataList="getQuery()"></ItemCirculatOrder>
+    <ConfigItemWarehouse ref="configItemWarehouse" @refreshDataList="getQuery()"></ConfigItemWarehouse>
+    <ConfigItemChange ref="configItemChange" @refreshDataList="getQuery()"></ConfigItemChange>
+    <ConfigItemOutbound ref="configItemOutbound" @refreshDataList="getQuery()"></ConfigItemOutbound>
+    <TestCheckOrder ref="testCheckOrder" @refreshDataList="getQuery()"></TestCheckOrder>
+    <BaselineRelease ref="baselineRelease" @refreshDataList="getQuery()"></BaselineRelease>
+    <!--    </zt-table-wraper>-->
+  </div>
 </template>
 
 <script>
-// import processTimeline from '../../../../map/processTimeline'
-import Cookies from "js-cookie";
-export default {
-  data() {
-    return {
-      dataForm: {
-        djxlSystem:''
-      },
-      dialogVisible: false,
-    }
-  },
-  props:{
-    system:String,
-    transformHeight:{
-      type:Boolean,
-      default:false
-    }
-  },
-  components: {
-  },
-  watch:{
-  },
-  created() {
-    if (this.$route.path.indexOf('taskCenter')>0 || this.system=='smj'){
-      this.transformHeight = true
-    }else{
-      this.transformHeight = false
-    }
-  },
-  mounted() {
-    console.log(this.system)
-    this.dataForm.djxlSystem = Cookies.get('djxlSystem')
-    this.getQuery()
-    this.$EventBus.$on('newProject',()=>{
-      this.$refs.tableObj.query()
-    })
-  },
-  methods: {
-    getTransformHeight(transformHeight){
-      let Height=document.documentElement.clientHeight
-      if(transformHeight){
-        return  Height-(650-403)
+  import cloneDeep from 'lodash/cloneDeep'
+  import InfiniteLoading from 'vue-infinite-loading'
+  import ItemCirculatOrder from '@/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate'
+  import Cookies from "js-cookie";
+  import ConfigItemWarehouse from '@/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate'
+  import TestCheckOrder from "@/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue";
+  import ConfigItemChange from "@/views/modules/configItemChange/ConfigItemChange-AddOrUpdate.vue";
+  import ConfigItemOutbound from "@/views/modules/configItemOutbound/ConfigItemOutbound-AddOrUpdate.vue";
+  import BaselineRelease from "@/views/modules/baselineRelease/BaselineRelease-AddOrUpdate.vue";
+
+  export default {
+    data() {
+      return {
+        page: 1,
+        pageSize: 30,
+        dataLoading: false,
+        dataList:[],
+        dataListAll:[],
+        dataForm: {
+          djxlSystem:''
+        },
+        dialogVisible: false,
+      }
+    },
+    props:{
+      system:String,
+      transformHeight:{
+        type:Boolean,
+        default:false
+      }
+    },
+    components: {
+      TestCheckOrder,
+      InfiniteLoading,
+      ItemCirculatOrder,
+      ConfigItemWarehouse,
+      ConfigItemChange,
+      ConfigItemOutbound,
+      BaselineRelease
+    },
+    watch:{
+    },
+    created() {
+      if (this.$route.path.indexOf('taskCenter')>0 || this.system=='smj'){
+        this.transformHeight = true
       }else{
-        return  Height-650
+        this.transformHeight = false
       }
     },
-    getQuery(){
-      this.$refs.tableObj.query()
-      this.$emit('getQuery')
+    mounted() {
+      console.log(this.system)
+      this.dataForm.djxlSystem = Cookies.get('djxlSystem')
+      this.getQuery()
+      this.$EventBus.$on('newProject',()=>{
+        // this.$refs.tableObj.query()
+        this.getQuery()
+      })
     },
-    async reCall(row) {
-      if (await this.$tip.confirm('纭畾瑕佽繘琛屾挙鍥炲悧?')) {
-        this.$http.get(`/wf/reCallFlow`, {params: row}).then(res => {
-          if (res.data == 'OK') {
-            this.$refs.tableObj.query();
+    methods: {
+      async infiniteHandler($state) {
+        console.log('in infiniteHandler--------')
+        if ((this.page * this.pageSize) < this.dataListAll.length) {
+          this.page++
+          // let begin = (this.page - 1) * this.pageSize
+          let end = this.page * this.pageSize
+          if (end > this.dataListAll.length) {
+            end = this.dataListAll.length
           }
-          else {
-            this.$tip.alert(res.data)
-          }
-        })
-      }
-    },
-    check(row) {
-      // if(row.stepMarker === 'jsfa_sc' || row.stepMarker === 'jsfa_sp'){
-      //   this.$refs.repairSkillScheme.$refs.dialog.init(row)
-      // }
-      // else
-      if (row.title === '骞村害淇悊璁″垝') {
-        this.$refs.annualRepairPlanAdd.$refs.dialog2.init(row,'readOnly')
-      } else if (row.flowCode === 'NewProjectFlow') {
-        let id = row.bizId
-        this.$refs.projectUpdate.$refs.dialog.init(id, 'view')
-      }
-      else if (row.flowCode==='monthPlanFlow'){
-        this.$refs.monthlyPlan.$refs.dialog.init('yb', row)
-      }
-      else if (row.flowCode==='weekPlanFlow'){
-        this.$refs.weeklyPlan.$refs.dialog.init('yb', row)
-      }
-      else if (row.flowCode==='rjhFlow') {
-          this.$refs.dailyPlan.$refs.dialog.init('yb', row)
-      }
-      else if (row.flowCode==='wlt3Flow'){
-        this.$refs.networkdiagram3.$refs.dialog.init('yb', row)
-      }
-      else if (row.flowCode==='cjjdrwFlow'){
-        this.$refs.partsInspectionHandle.$refs.dialog.init(row,'yb')
-      }
-      else if (row.flowCode==='zjbyFlow' || row.flowCode==='jjbyFlow'){
-        this.$refs.inspectionCheckHandle.$refs.dialog.init(row,'yb')
-      }
-      else if (row.flowCode==='jzjysFlow'){
-        this.$refs.inspectionCheckZcHandle.$refs.dialog.init(row,'yb')
-      }
-      else if (row.flowCode==='jjysFlow'){
-        this.$refs.inspectionCheckDbsHandle.$refs.dialog.init(row,'yb')
-      }
-      else if (row.flowCode==='cjjdFlow'){
-        this.$refs.partsInspectionJdHandle.$refs.dialog.init(row,'yb')
-      }
-      else {
-        if (row.stepReadRouterId === null){
-          this.$tip.alert("娌℃湁閰嶇疆鑿滃崟id")
-          return;
+          this.dataList = this.dataListAll.slice(0, end)
+          console.log(this.dataList.length, 'infiniteHandler:this.dataList.length')
+          console.log(this.page, 'infiniteHandler:this.page')
+          setTimeout(() => {
+            $state.loaded()
+          }, 100)
+        } else {
+          $state.loaded()
+          console.log("$state.complete()", this.page)
+          this.page = 1;
+          $state.complete()
+          console.log(this.page, 'infiniteHandler:this.page')
         }
-        let route = window.SITE_CONFIG['dynamicMenuRoutes'].filter(item => item.meta.menuId === row.stepReadRouterId)[0]
-        if (route === undefined){
-          this.$tip.alert("娌℃湁閰嶇疆鑿滃崟鏉冮檺")
-          return;
+      },
+      handleInfiniteLoadingBeforeGet() {
+        this.page = 1;
+        this.dataListAll = []
+        this.dataList = []
+      },
+      handleInfiniteLoadingAfterGet(res) {
+        this.dataListAll = res.data
+        console.log(this.dataListAll.length, 'handleInfiniteLoadingAfterGet:this.dataListAll.length')
+        // let begin = (this.page - 1) * this.pageSize
+        let end = this.page * this.pageSize
+        if (end > this.dataListAll.length) {
+          end = this.dataListAll.length
         }
+        this.dataList = this.dataListAll.slice(0, end)
+        console.log(this.dataList.length, 'handleInfiniteLoadingAfterGet:this.dataList.length')
+        console.log(this.page, 'handleInfiniteLoadingAfterGet:this.page')
+        this.$nextTick(() => {
+          this.$refs.infiniteLoading.$emit('$InfiniteLoading:reset');
+        });
+      },
+
+      getTransformHeight(){
+        let Height=document.documentElement.clientHeight
+          return  Height-(650-403)
+      },
+      async getQuery(){
+        this.handleInfiniteLoadingBeforeGet()
+        this.dataLoading = true
         let params = {
-          id: row.bizId,
-          projectId: row.bizGroupId,
-          pageCode: row.stepMarker,
-          pageRead: 'yes',
-          productId: row.productId,
-          approveType: ''
+          djxlSystem: this.dataForm.djxlSystem,
         }
-        if (Object.keys(params).length>0){
-          params =  Object.assign(params, route.meta.params);
-        }
-        this.$router.push({
-          name: row.stepReadRouterId,
+        let res = await this.$http.get(`/task/taskCenter/pageDone`,{
           params: params
         })
-      }
-    },
-    flowChart(row) {
-      // console.log(row, 'flowChart row')
-      // this.dialogVisible = true
-      // this.$nextTick(()=>{
-      //   this.$refs.processTimeline.init(row)
-      // })
-      this.$emit('alreadyTask',row)
-    },
-    getFlowTrack(row){
-      console.log(row,'getFlowTrack row')
-      if(row){
-        let params={
-          flowCode:row.flowCode,
-          bizId:row.bizId
+        if (res.success) {
+          this.dataLoading = false
+          this.handleInfiniteLoadingAfterGet(res)
+          console.log(this.dataList, 'getQuery:this.dataList')
+        } else {
+          this.dataLoading = true
         }
-        console.log(params,'getFlowTrack params')
-        this.$refs.processTrajectory.$refs.dialog.init(params)
-      }
+      },
+      async reCall(row) {
+        if (await this.$tip.confirm('纭畾瑕佽繘琛屾挙鍥炲悧?')) {
+          this.$http.get(`/wf/reCallFlow`, {params: row}).then(res => {
+            if (res.data == 'OK') {
+              // this.$refs.tableObj.query();
+              this.getQuery()
+            }
+            else {
+              this.$tip.alert(res.data)
+            }
+          })
+        }
+      },
+      check(row) {
+        console.log(row, "task row");
+        if (row.flowCode === 'wplz') {
+          this.$nextTick(()=>{
+            this.$refs.itemCirculatOrder.$refs.dialog.init(row.bizId,row, true)
+          })
+        } else if (row.flowCode === 'pzxrk') {
+          this.$nextTick(()=>{
+            this.$refs.configItemWarehouse.$refs.dialog.init(row.bizId,row, true)
+          })
+        } else if (row.flowCode === 'csjcd') {
+          this.$nextTick(()=>{
+            this.$refs.testCheckOrder.$refs.dialog.init(row.bizId,row, true)
+          })
+        }else if (row.flowCode === 'pzxck') {
+          this.$nextTick(()=>{
+            this.$refs.configItemOutbound.$refs.dialog.init(row.bizId,row, true)
+          })
+        }else if (row.flowCode === 'pzxbg') {
+          this.$nextTick(()=>{
+            this.$refs.configItemChange.$refs.dialog.init(row.bizId,row, true)
+          })
+        }else if (row.flowCode === 'jxfb') {
+          this.$nextTick(()=>{
+            this.$refs.baselineRelease.$refs.dialog.init(row.bizId,row, true)
+          })
+        }
+        else {
+          if (row.stepReadRouterId === null){
+            this.$tip.alert("娌℃湁閰嶇疆鑿滃崟id")
+            return;
+          }
+          let route = window.SITE_CONFIG['dynamicMenuRoutes'].filter(item => item.meta.menuId === row.stepReadRouterId)[0]
+          if (route === undefined){
+            this.$tip.alert("娌℃湁閰嶇疆鑿滃崟鏉冮檺")
+            return;
+          }
+          let params = {
+            id: row.bizId,
+            projectId: row.bizGroupId,
+            pageCode: row.stepMarker,
+            pageRead: 'yes',
+            productId: row.productId,
+            approveType: ''
+          }
+          if (Object.keys(params).length>0){
+            params =  Object.assign(params, route.meta.params);
+          }
+          this.$router.push({
+            name: row.stepReadRouterId,
+            params: params
+          })
+        }
+      },
+      flowChart(row) {
+        // console.log(row, 'flowChart row')
+        // this.dialogVisible = true
+        // this.$nextTick(()=>{
+        //   this.$refs.processTimeline.init(row)
+        // })
+        this.$emit('alreadyTask',row)
+      },
+      getFlowTrack(row){
+        console.log(row,'getFlowTrack row')
+        if(row){
+          let params={
+            flowCode:row.flowCode,
+            bizId:row.bizId
+          }
+          console.log(params,'getFlowTrack params')
+          this.$refs.processTrajectory.$refs.dialog.init(params)
+        }
+      },
+      indexFormat(index) {
+        // let page = this.page
+        // let limit = this.pageSize
+        // let indexs = limit * (page - 1) + index + 1
+        let indexs = index + 1
+        return '<span>' + indexs + '</span>'
+      },
     },
-    indexFormat(index) {
-      let page = this.$refs.tableObj.page
-      let limit = this.$refs.tableObj.limit
-      let indexs = limit * (page - 1) + index + 1
-      return '<span>' + indexs + '</span>'
-    },
-  },
-}
+  }
 </script>
 
 <style scoped>

--
Gitblit v1.9.1