Browse Source

预算执行弹窗新需求等

yuhan 10 months ago
parent
commit
bd9b7c9b79

+ 65 - 17
src/views/module_kzks/projectXushiContrast/chengbeneDetali/clfDetail.vue

@@ -1,16 +1,23 @@
 <template>
-  <a-table
-    ref="table"
-    size="middle"
-    :scroll="{x:true}"
-    bordered
-    rowKey="id"
-    :columns="columns"
-    :dataSource="dataSource"
-    :pagination="ipagination"
-    :loading="loading"
-    class="j-table-force-nowrap">
-  </a-table>
+  <a-card :bordered="false" class="u-dialog-card">
+    <div v-if="showTotalAmount" style="float: right;margin-top: -25px;">
+      <div>总金额:{{ (Number(totalAmount)/10000).toFixed(2) + '万元' }}</div>
+    </div>
+    <a-table
+      ref="table"
+      size="middle"
+      :scroll="{x:true}"
+      bordered
+      rowKey="id"
+      :columns="columns"
+      :dataSource="dataSource"
+      :pagination="ipagination"
+      :loading="loading"
+      class="j-table-force-nowrap"
+      :style="{marginTop: showTotalAmount ? '8px' : '0'}"
+      @change="handleTableChange">
+    </a-table>
+  </a-card>
 </template>
 
 <script>
@@ -25,6 +32,16 @@
     mixins:[JeecgListMixin, mixinDevice],
     components: {
     },
+    props: {
+      taskno: {
+        type: String,
+        default: ''
+      },
+      showTotalAmount: {
+        type: Boolean,
+        default: false
+      }
+    },
     data () {
       return {
         // 表头
@@ -336,20 +353,34 @@
           },
         ],
         url: {
-          // list: "/index/getZhiChuDetail",
-          list: "/index/getClfDetailNew",
+          list: "/wzOutboundOrderBNew/wzOutboundOrderBNew/getCLFListByTasknosYs",
+          totalUrl: '/wzOutboundOrderBNew/wzOutboundOrderBNew/getTotalCLFByTasknosYs'
         },
         dictOptions:{},
         superFieldList:[],
+        totalAmount: 0,
       }
     },
     created() {
     },
     computed: {
-      departNameList() {
-        return this.$store.getters.departNameList
+      dateRange() {
+        return this.$store.getters.pcDateRange
       },
     },
+    watch: {
+      dateRange: {
+        handler(newValue, oldValue){
+          console.log(newValue, oldValue)
+          this.loadData()
+          if(this.showTotalAmount){
+            this.getTotalAmount()
+          }
+        },
+        deep: true,
+        immediate: true,
+      }
+    },
     methods: {
       loadData(arg) {
         if(!this.url.list){
@@ -365,7 +396,9 @@
         params.field = this.getQueryField();
         params.pageNo = this.ipagination.current;
         params.pageSize = this.ipagination.pageSize;
-        params.departNameList = this.departNameList;
+        params.taskno = this.taskno;
+        params.beginDate = this.dateRange ? this.dateRange[0] : '';
+        params.endDate = this.dateRange ? this.dateRange[1] : '';
         this.loading = true;
         getAction(this.url.list, params).then((res) => {
           if (res.success) {
@@ -385,6 +418,21 @@
           this.loading = false
         })
       },
+      getTotalAmount(){
+        var params = {
+          beginDate: this.dateRange ? this.dateRange[0] : '',
+          endDate: this.dateRange ? this.dateRange[1] : '',
+          taskno: this.taskno,
+        }
+        getAction(this.url.totalUrl, params).then(res => {
+          if (res.success) {
+            this.totalAmount = res.result
+          }else{
+            this.$message.warning(res.message)
+          }
+        }).finally(() => {
+        })
+      },
       initDictConfig(){
       },
     }

+ 74 - 19
src/views/module_kzks/projectXushiContrast/chengbeneDetali/otherDetail.vue

@@ -1,16 +1,23 @@
 <template>
-  <a-table
-    ref="table"
-    size="middle"
-    :scroll="{x:true}"
-    bordered
-    rowKey="id"
-    :columns="columns"
-    :dataSource="dataSource"
-    :pagination="ipagination"
-    :loading="loading"
-    class="j-table-force-nowrap">
-  </a-table>
+  <a-card :bordered="false" class="u-dialog-card">
+    <div v-if="showTotalAmount" style="float: right;margin-top: -25px;">
+      <div>总金额:{{ (Number(totalAmount)/10000).toFixed(2) + '万元' }}</div>
+    </div>
+    <a-table
+      ref="table"
+      size="middle"
+      :scroll="{x:true}"
+      bordered
+      rowKey="id"
+      :columns="columns"
+      :dataSource="dataSource"
+      :pagination="ipagination"
+      :loading="loading"
+      class="j-table-force-nowrap"
+      :style="{marginTop: showTotalAmount ? '8px' : '0'}"
+      @change="handleTableChange">
+    </a-table>
+  </a-card>
 </template>
 
 <script>
@@ -25,7 +32,22 @@
     mixins:[JeecgListMixin, mixinDevice],
     components: {
     },
-    props: ['listUrl'],
+    props: {
+      taskno: {
+        type: String,
+        default: ''
+      },
+      listUrl: {
+        default: ''
+      },
+      showTotalAmount: {
+        type: Boolean,
+        default: false
+      },
+      totalUrl: {
+        default: ''
+      },
+    },
     data () {
       return {
         // 表头
@@ -136,19 +158,35 @@
         // },
         dictOptions:{},
         superFieldList:[],
+        totalAmount: 0,
       }
     },
     created() {
     },
     computed: {
-      departNameList() {
-        return this.$store.getters.departNameList
+      dateRange() {
+        return this.$store.getters.pcDateRange
       },
     },
     watch: {
-      listUrl(oldValue, newValue){
-        console.log(oldValue, newValue)
-        this.loadData()
+      listUrl: {
+        handler(oldValue, newValue){
+          console.log(oldValue, newValue)
+          this.loadData()
+        },
+        deep: true,
+        immediate: true,
+      },
+      dateRange: {
+        handler(newValue, oldValue){
+          console.log(newValue, oldValue)
+          this.loadData()
+          if(this.showTotalAmount){
+            this.getTotalAmount()
+          }
+        },
+        deep: true,
+        immediate: true,
       }
     },
     methods: {
@@ -165,7 +203,9 @@
         params.field = this.getQueryField();
         params.pageNo = this.ipagination.current;
         params.pageSize = this.ipagination.pageSize;
-        params.departNameList = this.departNameList;
+        params.taskno = this.taskno;
+        params.beginDate = this.dateRange ? this.dateRange[0] : '';
+        params.endDate = this.dateRange ? this.dateRange[1] : '';
         this.loading = true;
         getAction(this.listUrl, params).then((res) => {
           if (res.success) {
@@ -185,6 +225,21 @@
           this.loading = false
         })
       },
+      getTotalAmount(){
+        var params = {
+          beginDate: this.dateRange ? this.dateRange[0] : '',
+          endDate: this.dateRange ? this.dateRange[1] : '',
+          taskno: this.taskno,
+        }
+        getAction(this.totalUrl, params).then(res => {
+          if (res.success) {
+            this.totalAmount = res.result
+          }else{
+            this.$message.warning(res.message)
+          }
+        }).finally(() => {
+        })
+      },
       initDictConfig(){
       },
     }

+ 54 - 12
src/views/module_kzks/projectXushiContrast/contrastGraph.vue

@@ -1,6 +1,6 @@
 <template>
-  <div style="height:600px;width:1000px;">
-    <div class="echarts" style="height:100%;width:100%;" ref="zhexian"></div>
+  <div style="width: 1000px; height: calc(100vh - 240px);">
+    <div class="echarts" style="width: 100%; height: 100%;" ref="zhexian"></div>
   </div>
 </template>
 
@@ -31,18 +31,28 @@ export default {
   // },
   methods:{
     drawZhexian(data){
-      console.log(1111,data)
       var yusuan = []
       var zhixing = []
-      yusuan.push(data.clys)
-      yusuan.push(data.wxys)
-      var zongys = data.wxys + data.clys
+      
+      yusuan.push(parseFloat(Number(data.clys).toFixed(2)))
+      yusuan.push(parseFloat(Number(data.zyys).toFixed(2)))
+      yusuan.push(parseFloat(Number(data.swys).toFixed(2)))
+      yusuan.push(parseFloat(Number(data.wxys).toFixed(2)))
+      yusuan.push(parseFloat(Number(data.jjys).toFixed(2)))
+      // console.log(1111,yusuan)
+      // var zongys = data.wxys + data.clys
+      var zongys = yusuan.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
       yusuan.push(zongys)
-      zhixing.push(data.clf)
-      zhixing.push(data.wxf)
-      var zongzx = data.wxf + data.clf
+      
+      zhixing.push(parseFloat((Number(data.clf)/10000).toFixed(2)))
+      zhixing.push(parseFloat((Number(data.zyf)/10000).toFixed(2)))
+      zhixing.push(parseFloat((Number(data.swf)/10000).toFixed(2)))
+      zhixing.push(parseFloat((Number(data.wxf)/10000).toFixed(2)))
+      zhixing.push(parseFloat((Number(data.jjfhz)/10000).toFixed(2)))
+      // var zongzx = data.wxf + data.clf
+      var zongzx = zhixing.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
       zhixing.push(zongzx)
-      console.log(7777,yusuan,zhixing)
+      // console.log(7777,yusuan,zhixing)
 
       var chartDom = this.$refs.zhexian
       this.zheChart = echarts.init(chartDom);
@@ -53,7 +63,15 @@ export default {
           trigger: 'axis',
             axisPointer: {
             type: 'shadow'
-          }
+          },
+          formatter: function (params) {
+            let str = params[0].name + "<br />";
+            params.forEach((item) => {
+              str +=
+                '<span style="display:inline-block;margin-right:5px;border-radius:50%;width:10px;height:10px;left:5px;background:'+item.color+'"></span>' + item.seriesName + " : " + Number(item.value).toFixed(2) +'万元' + "<br />";
+            });
+            return str;
+          },
         },
         legend: {},
         grid: {
@@ -70,7 +88,7 @@ export default {
         yAxis: [
           {
             type: 'category',
-            data: ['材料费','外协费','总计']
+            data: ['材料费','专用费','事务费','外协费','间接费汇总','总计']
           }
         ],
         series: [
@@ -81,6 +99,18 @@ export default {
             emphasis: {
               focus: 'series'
             },
+            label: {
+              show: true,
+              // position: 'inside',
+              color: '#333',
+              formatter: function (params) {
+                if(params.value === 0){
+                  return ''
+                } else {
+                  return (Number(params.value).toFixed(2)) + '万'
+                }
+              },
+            },
             itemStyle: {
               normal: {
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
@@ -100,6 +130,18 @@ export default {
             emphasis: {
               focus: 'series'
             },
+            label: {
+              show: true,
+              // position: 'inside',
+              color: '#333',
+              formatter: function (params) {
+                if(params.value === 0){
+                  return ''
+                } else {
+                  return (Number(params.value).toFixed(2)) + '万'
+                }
+              },
+            },
             itemStyle: {
               normal: {
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{

+ 57 - 25
src/views/module_kzks/projectXushiContrast/contrastModal.vue

@@ -5,12 +5,14 @@
     :visible="visible"
     switchFullscreen
     cancelText="关闭"
-    @cancel="handleCancel">
+    @cancel="handleCancel"
+    class="contrast-model">
     <!-- :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" -->
     
     <a-tabs :default-active-key="0" tab-position="left" @change="changeTab">
       <a-tab-pane :key="index" :tab="item.title" v-for="(item, index) in chengbenTabs">
-        <div v-if="chooseTab === 'contractfpe' || chooseTab === 'taskmoney'">
+        <div v-if="chooseTab !== 'xushi'">
+          <!--  || chooseTab === 'taskmoney' -->
           日期范围:
           <a-range-picker v-model="dateRange" @change="onChange"/>
         </div>
@@ -22,9 +24,10 @@
         <collect-detail-list v-show="chooseTab === 'taskmoney'" :taskno="taskno"></collect-detail-list>
         <!-- 总成本 -->
         <chengben-detail-list v-if="chooseTab === 'zcb'" :taskno="taskno"></chengben-detail-list>
-        <!-- <clf-detail v-else-if="chooseTab === 0"></clf-detail> -->
-        <!-- <other-detail v-else :listUrl="listUrl"></other-detail> -->
-        <!-- <other-detail v-if="chooseTabIndex !== 0 && chooseTab === item.value" :listUrl="listUrl"></other-detail> -->
+        <!-- 材料费 -->
+        <clf-detail v-if="chooseTab === 'clf'" :taskno="taskno" showTotalAmount></clf-detail>
+         <!-- 其他成本费用 -->
+        <other-detail v-if="chooseTabIndex > 4 && chooseTab === item.value" :taskno="taskno" :listUrl="listUrl" :totalUrl="totalUrl" showTotalAmount></other-detail>
       </a-tab-pane>
     </a-tabs>
 
@@ -39,13 +42,17 @@
   import CollectDetailList from './modulesDetail/CollectDetailList.vue';
   import ContractDetailList from './modulesDetail/ContractDetailList.vue';
   import ChengbenDetailList from './modulesDetail/ChengbenDetailList.vue';
+  import ClfDetail from './chengbeneDetali/clfDetail.vue'
+  import OtherDetail from './chengbeneDetali/otherDetail.vue'
 
   export default {
     components: {
       contrastGraph,
       ContractDetailList,
       CollectDetailList,
-      ChengbenDetailList
+      ChengbenDetailList,
+      ClfDetail,
+      OtherDetail,
     },
     name: 'ContrastModal',
     data () {
@@ -59,29 +66,33 @@
           { title: '合同额', value: 'contractfpe'},
           { title: '已收款', value: 'taskmoney'},
           { title: '总成本', value: 'zcb'},
-          // { title: '材料费', value: 'clf', url: '/index/getClfDetailNew'},
-          // { title: '专用费', value: 'zyf', url: '/index/getZyfDetailNew'},
-          // { title: '事务费', value: 'swf', url: '/index/getSwfDetailNew'},
-          // { title: '外协费', value: 'wxf', url: '/index/getWxfDetailNew'},
-          // { title: '燃动费', value: 'rdf', url: '/index/getRdfDetailNew'},
-          // { title: '固资费', value: 'gzf', url: '/index/getZjfDetailNew'},
-          // { title: '人工费', value: 'rgf', url: '/index/getRgfDetailNew'},
-          // { title: '管理费', value: 'glf', url: '/index/getGlfDetailNew'},
-          // { title: '筛选费', value: 'sxf', url: '/index/getSxfDetailNew'},
+          { title: '材料费', value: 'clf', url: '/wzOutboundOrderBNew/wzOutboundOrderBNew/getCLFListByTasknosYs', totalUrl: '/wzOutboundOrderBNew/wzOutboundOrderBNew/getTotalCLFByTasknosYs'},
+          { title: '专用费', value: 'zyf', url: '/projectChbZyf/projectChbZyf/getZYFListByTasknosYs', totalUrl: '/projectChbZyf/projectChbZyf/getTotalZYFByTasknosYs'},
+          { title: '事务费', value: 'swf', url: '/projectChbSwf/projectChbSwf/getSWFListByTasknosYs', totalUrl: '/projectChbSwf/projectChbSwf/getTotalSWFByTasknosYs'},
+          { title: '外协费', value: 'wxf', url: '/projectChbWxf/projectChbWxf/getWXFListByTasknosYs', totalUrl: '/projectChbWxf/projectChbWxf/getTotalWXFByTasknosYs'},
+          { title: '燃动费', value: 'rdf', url: '/projectChbRdf/kzksProjectChbRdf/getRDFListByTasknosYs', totalUrl: '/projectChbRdf/kzksProjectChbRdf/getTotalRDFByTasknosYs'},
+          { title: '固资费', value: 'gzf', url: '/projectChbZjf/kzksProjectChbZjf/getZJFListByTasknosYs', totalUrl: '/projectChbZjf/kzksProjectChbZjf/getTotalZJFByTasknosYs'},
+          { title: '人工费', value: 'rgf', url: '/projectChbRgf/kzksProjectChbRgf/getRGFListByTasknosYs', totalUrl: '/projectChbRgf/kzksProjectChbRgf/getTotalRGFByTasknosYs'},
+          { title: '管理费', value: 'glf', url: '/projectChbGlf/kzksProjectChbGlf/getGLFListByTasknosYs', totalUrl: '/projectChbGlf/kzksProjectChbGlf/getTotalGLFByTasknosYs'},
+          { title: '筛选费', value: 'sxf', url: '/projectChbSxf/projectChbSxf/getSXFListByTasknosYs', totalUrl: '/projectChbSxf/projectChbSxf/getTotalSXFByTasknosYs'},
         ],
         chooseTabIndex: 0,
         chooseTab: 'xushi', // 为了解决用v-else会出现多个请求的问题
         listUrl: '',
+        totalUrl: '',
         taskno: null,
         echartsData: {},
-        dateRange: this.$store.getters.pcDateRange,
+        dateRange: []
       }
     },
-    computed: {
-      // dateRange() {
-      //   return this.$store.getters.pcDateRange
-      // },
-    },
+    // computed: {
+    //   dateRange: {
+    //     get() {
+    //       return this.$store.getters.pcDateRange
+    //     },
+    //     set() {}
+    //   },
+    // },
     methods: {
       open(record) {
         var tasknos = record.children.map(item=>item.taskno)
@@ -97,8 +108,8 @@
         this.visible = false;
       },
       handleCancel () {
-        // this.dateRange = []
-        this.$store.commit('SET_PCDATERANGE', []);
+        this.dateRange = []
+        this.$store.commit('SET_PCDATERANGE', null);
         this.chooseTab = 'xushi'
         this.close()
       },
@@ -107,13 +118,34 @@
         this.chooseTab = this.chengbenTabs[e].value
         if(e !== 0){
           this.listUrl = this.chengbenTabs[e].url
+          this.totalUrl = this.chengbenTabs[e].totalUrl
         }
       },
       // 日期范围选择
       onChange(date, dateString) {
-        // this.dateRange = dateString
+        this.dateRange = dateString
         this.$store.commit('SET_PCDATERANGE', dateString);
       },
     }
   }
-</script>
+</script>
+<style lang="less">
+  .contrast-model{
+    .ant-modal{
+      top: 60px !important;
+    }
+    .ant-modal-content{
+      height: calc(100vh - 100px);
+    }
+    .ant-modal-body{
+      padding: 16px;
+      height: calc(100% - 55px - 53px);
+    }
+    .ant-tabs{
+      height: 100%;
+      .ant-tabs-nav-container{
+        height: 100%;
+      }
+    }
+  }
+</style>

+ 52 - 52
src/views/module_kzks/projectXushiContrast/modulesDetail/ChengbenDetailList.vue

@@ -1,13 +1,17 @@
 <template>
   <a-spin :spinning="spinning">
     <a-card :bordered="false" class="u-dialog-card">
-      <!-- <div class="table-operator">
-        <a-button type="primary" icon="download" @click="handleExportXls('当月成本额明细')">导出</a-button>
-      </div> -->
+      <div style="float: right;margin-top: -25px;">
+        <div>{{chengbenTabs[chooseTabIndex].title}}总金额:{{ (totalAmount?(Number(totalAmount)/10000).toFixed(2):'') + '万元' }}</div>
+      </div>
       <a-tabs :default-active-key="0" @change="changeTab">
         <a-tab-pane :key="index" :tab="item.title" v-for="(item, index) in chengbenTabs">
-          <clf-detail v-if="chooseTabIndex === 0"></clf-detail>
-          <other-detail v-if="chooseTabIndex !== 0 && chooseTab === item.value" :listUrl="listUrl"></other-detail>
+          <!-- <div>
+            日期范围:
+            <a-range-picker v-model="dateRange" @change="onChange"/>
+          </div> -->
+          <clf-detail v-if="chooseTabIndex === 0" :taskno="taskno"></clf-detail>
+          <other-detail v-if="chooseTabIndex !== 0 && chooseTab === item.value" :listUrl="listUrl" :taskno="taskno"></other-detail>
         </a-tab-pane>
       </a-tabs>
     </a-card>
@@ -17,9 +21,10 @@
 <script>
 
   import '@/assets/less/TableExpand.less'
-  import { downFile } from '@/api/manage'
+  // import { downFile } from '@/api/manage'
   import ClfDetail from '../chengbeneDetali/clfDetail.vue'
   import OtherDetail from '../chengbeneDetali/otherDetail.vue'
+  import { getAction } from '@/api/manage'
 
   export default {
     name: 'ChengbenDetailList',
@@ -27,19 +32,25 @@
       ClfDetail,
       OtherDetail
     },
+    props: {
+      taskno: {
+        type: String,
+        default: ''
+      },
+    },
     data () {
       return {
         spinning: false,
         chengbenTabs: [
-          { title: '材料费', value: 'clf', url: '/index/getClfDetailNew'},
-          { title: '专用费', value: 'zyf', url: '/index/getZyfDetailNew'},
-          { title: '事务费', value: 'swf', url: '/index/getSwfDetailNew'},
-          { title: '外协费', value: 'wxf', url: '/index/getWxfDetailNew'},
-          { title: '燃动费', value: 'rdf', url: '/index/getRdfDetailNew'},
-          { title: '固资费', value: 'gzf', url: '/index/getZjfDetailNew'},
-          { title: '人工费', value: 'rgf', url: '/index/getRgfDetailNew'},
-          { title: '管理费', value: 'glf', url: '/index/getGlfDetailNew'},
-          { title: '筛选费', value: 'sxf', url: '/index/getSxfDetailNew'},
+          { title: '材料费', value: 'clf', url: '/wzOutboundOrderBNew/wzOutboundOrderBNew/getCLFListByTasknosYs', totalUrl: '/wzOutboundOrderBNew/wzOutboundOrderBNew/getTotalCLFByTasknosYs'},
+          { title: '专用费', value: 'zyf', url: '/projectChbZyf/projectChbZyf/getZYFListByTasknosYs', totalUrl: '/projectChbZyf/projectChbZyf/getTotalZYFByTasknosYs'},
+          { title: '事务费', value: 'swf', url: '/projectChbSwf/projectChbSwf/getSWFListByTasknosYs', totalUrl: '/projectChbSwf/projectChbSwf/getTotalSWFByTasknosYs'},
+          { title: '外协费', value: 'wxf', url: '/projectChbWxf/projectChbWxf/getWXFListByTasknosYs', totalUrl: '/projectChbWxf/projectChbWxf/getTotalWXFByTasknosYs'},
+          { title: '燃动费', value: 'rdf', url: '/projectChbRdf/kzksProjectChbRdf/getRDFListByTasknosYs', totalUrl: '/projectChbRdf/kzksProjectChbRdf/getTotalRDFByTasknosYs'},
+          { title: '固资费', value: 'gzf', url: '/projectChbZjf/kzksProjectChbZjf/getZJFListByTasknosYs', totalUrl: '/projectChbZjf/kzksProjectChbZjf/getTotalZJFByTasknosYs'},
+          { title: '人工费', value: 'rgf', url: '/projectChbRgf/kzksProjectChbRgf/getRGFListByTasknosYs', totalUrl: '/projectChbRgf/kzksProjectChbRgf/getTotalRGFByTasknosYs'},
+          { title: '管理费', value: 'glf', url: '/projectChbGlf/kzksProjectChbGlf/getGLFListByTasknosYs', totalUrl: '/projectChbGlf/kzksProjectChbGlf/getTotalGLFByTasknosYs'},
+          { title: '筛选费', value: 'sxf', url: '/projectChbSxf/projectChbSxf/getSXFListByTasknosYs', totalUrl: '/projectChbSxf/projectChbSxf/getTotalSXFByTasknosYs'},
         ],
         chooseTabIndex: 0,
         chooseTab: '', // 为了解决用v-else会出现多个请求的问题
@@ -47,59 +58,48 @@
         url: {
           exportXlsUrl: "/index/exportCneXls",
         },
+        totalAmount: '',
+        // dateRange: this.$store.getters.pcDateRange,
       }
     },
     created() {
+      this.getTotalAmount(this.chengbenTabs[this.chooseTabIndex].totalUrl)
     },
     computed: {
-      departNameList() {
-        return this.$store.getters.departNameList
+      dateRange() {
+        return this.$store.getters.pcDateRange
       },
     },
     methods: {
-      // 使用jeecgListMinxin中方法,但不需要loadData
-      // loadData(){},
+      getTotalAmount(tabUrl){
+        var params = {
+          beginDate: this.dateRange ? this.dateRange[0] : '',
+          endDate: this.dateRange ? this.dateRange[1] : '',
+          taskno: this.taskno,
+        }
+        getAction(tabUrl, params).then(res => {
+          if (res.success) {
+            this.totalAmount = res.result
+          }else{
+            this.$message.warning(res.message)
+          }
+        }).finally(() => {
+        })
+      },
       changeTab(e){
         console.log(e)
+        this.getTotalAmount(this.chengbenTabs[e].totalUrl)
         this.chooseTabIndex = e
         this.chooseTab = this.chengbenTabs[e].value
         if(e !== 0){
           this.listUrl = this.chengbenTabs[e].url
         }
       },
-      handleExportXls(fileName){
-        if(!fileName || typeof fileName != "string"){
-          fileName = "导出文件"
-        }
-        // let param = this.getQueryParams();
-        // let param = {};
-        // if(this.selectedRowKeys && this.selectedRowKeys.length>0){
-        //   param['selections'] = this.selectedRowKeys.join(",")
-        // }
-        // console.log("导出参数",param)
-        this.spinning = true
-        downFile(this.url.exportXlsUrl, {departNameList: this.departNameList}).then((data)=>{
-          if (!data) {
-            this.$message.warning("文件下载失败")
-            this.spinning = false
-            return
-          }
-          this.spinning = false
-          if (typeof window.navigator.msSaveBlob !== 'undefined') {
-            window.navigator.msSaveBlob(new Blob([data],{type: 'application/vnd.ms-excel'}), fileName+'.xls')
-          }else{
-            let url = window.URL.createObjectURL(new Blob([data],{type: 'application/vnd.ms-excel'}))
-            let link = document.createElement('a')
-            link.style.display = 'none'
-            link.href = url
-            link.setAttribute('download', fileName+'.xls')
-            document.body.appendChild(link)
-            link.click()
-            document.body.removeChild(link); //下载完成移除元素
-            window.URL.revokeObjectURL(url); //释放掉blob对象
-          }
-        })
-      },
+      // 日期范围选择
+      // onChange(date, dateString) {
+      //   // this.dateRange = dateString
+      //   this.$store.commit('SET_PCDATERANGE', dateString);
+      // },
     }
   }
 </script>

+ 6 - 7
src/views/module_kzks/projectXushiContrast/modulesDetail/CollectDetailList.vue

@@ -4,7 +4,6 @@
     <!-- <div class="table-operator">
       <a-button type="primary" icon="download" @click="handleExport">导出</a-button>
     </div> -->
-    <!-- 时间范围选择 -->
     <div style="float: right;margin-top: -25px;">
       <div>总金额:{{ (Number(totalAmount)/10000).toFixed(2) + '万元' }}</div>
     </div>
@@ -224,7 +223,7 @@
         ],
         url: {
           list: "/comContractInfoExchangeNew/comContractInfoExchangeNew/getNewCrmYskDetailByTasknoYs",
-          totalAmount: '/comContractInfoExchangeNew/comContractInfoExchangeNew/getNewCrmSumYskByTasknoYs',
+          totalUrl: '/comContractInfoExchangeNew/comContractInfoExchangeNew/getNewCrmSumYskByTasknoYs',
           exportXlsUrl: '',
           // exportXlsUrl: "/comContractInfoExchangeNew/comContractInfoExchangeNew/exportNewYskDetail",
         },
@@ -262,8 +261,8 @@
         params.pageNo = this.ipagination.current;
         params.pageSize = this.ipagination.pageSize;
         params.taskno = this.taskno;
-        params.beginDate = this.dateRange[0];
-        params.endDate = this.dateRange[1];
+        params.beginDate = this.dateRange ? this.dateRange[0] : '';
+        params.endDate = this.dateRange ? this.dateRange[1] : '';
         this.loading = true;
         getAction(this.url.list, params).then((res) => {
           if (res.success) {
@@ -284,11 +283,11 @@
       getTotalAmount(){
         this.loading = true
         var params = {
-          beginDate: this.dateRange[0],
-          endDate: this.dateRange[1],
+          beginDate: this.dateRange ? this.dateRange[0] : '',
+          endDate: this.dateRange ? this.dateRange[1] : '',
           taskno: this.taskno,
         }
-        getAction(this.url.totalAmount, params).then(res => {
+        getAction(this.url.totalUrl, params).then(res => {
           if (res.success) {
             this.totalAmount = res.result
           }else{

+ 8 - 9
src/views/module_kzks/projectXushiContrast/modulesDetail/ContractDetailList.vue

@@ -4,12 +4,11 @@
     <!-- <div class="table-operator">
       <a-button type="primary" icon="download" @click="handleExport">导出</a-button>
     </div> -->
-    <!-- table区域-begin -->
-    <!-- 时间范围选择 -->
     <div style="float: right;margin-top: -25px;">
       <div>总金额:{{ (Number(totalAmount)/10000).toFixed(2) + '万元' }}</div>
     </div>
-
+    
+    <!-- table区域-begin -->
     <div style="margin-top: 8px;">
       <a-table
         ref="table"
@@ -233,7 +232,7 @@
         ],
         url: {
           list: "/comContractInfoExchangeNew/comContractInfoExchangeNew/getNewCrmHteDetailByTasknoYs",
-          totalAmount: '/comContractInfoExchangeNew/comContractInfoExchangeNew/getNewCrmSumHteByTasknoYs',
+          totalUrl: '/comContractInfoExchangeNew/comContractInfoExchangeNew/getNewCrmSumHteByTasknoYs',
           // exportXlsUrl: "/comContractInfoExchangeNew/comContractInfoExchangeNew/exportNewHteDetail",
         },
         dictOptions:{},
@@ -272,8 +271,8 @@
         params.pageNo = this.ipagination.current;
         params.pageSize = this.ipagination.pageSize;
         params.taskno = this.taskno;
-        params.beginDate = this.dateRange[0];
-        params.endDate = this.dateRange[1];
+        params.beginDate = this.dateRange ? this.dateRange[0] : '';
+        params.endDate = this.dateRange ? this.dateRange[1] : '';
         this.loading = true;
         getAction(this.url.list, params).then((res) => {
           if (res.success) {
@@ -293,11 +292,11 @@
       },
       getTotalAmount(){
         var params = {
-          beginDate: this.dateRange[0],
-          endDate: this.dateRange[1],
+          beginDate: this.dateRange ? this.dateRange[0] : '',
+          endDate: this.dateRange ? this.dateRange[1] : '',
           taskno: this.taskno,
         }
-        getAction(this.url.totalAmount, params).then(res => {
+        getAction(this.url.totalUrl, params).then(res => {
           if (res.success) {
             this.totalAmount = res.result
           }else{