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

首页排行详情+一层详情加上部门搜索

yuhan преди 11 месеца
родител
ревизия
72d3116dd1

+ 2 - 0
src/store/getters.js

@@ -19,6 +19,8 @@ const getters = {
   },
   sysSafeMode: state => state.user.sysSafeMode,
 
+  // kzks
+  departNameList: state => state.kzks.departNameList,
 }
 
 export default getters

+ 2 - 0
src/store/index.js

@@ -7,6 +7,7 @@ import permission from './modules/permission'
 import enhance from './modules/enhance'
 import online from './modules/online'
 import getters from './getters'
+import kzks from './modules/kzks'
 
 Vue.use(Vuex)
 
@@ -17,6 +18,7 @@ export default new Vuex.Store({
     permission,
     enhance,
     online,
+    kzks,
   },
   state: {
 

+ 29 - 0
src/store/modules/kzks.js

@@ -0,0 +1,29 @@
+import Vue from 'vue'
+// import { ONL_AUTH_FIELDS } from "@/store/mutation-types"
+// import { getAction } from '@/api/manage'
+
+
+const kzksInfo = {
+  state: {
+    //存储数据,用于组件之间的数据传输
+    departNameList: []
+  },
+  // (大概)区别:mutations用来修改state数据 同步
+  mutations: {
+    SET_DEPARTNAMELIST: (state, infos) => {
+      // console.log('fields',fields)
+      // Vue.set(state, 'baseInfos', fields)
+      state.departNameList = infos
+    },
+  },
+  // (大概)区别:actions用来设计复杂逻辑 异步
+  actions: {
+    setDepartNameList({ commit }, record) {
+      commit('SET_DEPARTNAMELIST', record)
+    }
+    // this.$store.state.kzksInfo.baseInfos
+    // this.$store.dispatch('setWeituoBaseInfos', data)
+  }
+}
+
+export default kzksInfo

+ 3 - 1
src/views/module_kzks/dashboard/Analysis.vue

@@ -711,7 +711,9 @@
       // 选择部门
       backDepartInfo(info) {
         // console.log(info)
-        this.searchParams.departNameList = info.map(item => item.text)
+        var departNameList = info.map(item => item.text)
+        this.searchParams.departNameList = departNameList
+        this.$store.commit('SET_DEPARTNAMELIST', departNameList);
         this.getZhibiaoCollect()
         this.getDataByDate()
       },

+ 38 - 0
src/views/module_kzks/dashboard/chengbeneDetali/clfDetail.vue

@@ -18,6 +18,7 @@
   import '@/assets/less/TableExpand.less'
   import { mixinDevice } from '@/utils/mixin'
   import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import { getAction } from '@/api/manage'
 
   export default {
     name: 'clfDetail',
@@ -345,8 +346,45 @@
     created() {
     },
     computed: {
+      departNameList() {
+        return this.$store.getters.departNameList
+      },
     },
     methods: {
+      loadData(arg) {
+        if(!this.url.list){
+          this.$message.error("请设置url.list属性!")
+          return
+        }
+        //加载数据 若传入参数1则加载第一页的内容
+        if (arg === 1) {
+          this.ipagination.current = 1;
+        }
+        // var params = this.getQueryParams();//查询条件
+        var params = this.queryParam
+        params.field = this.getQueryField();
+        params.pageNo = this.ipagination.current;
+        params.pageSize = this.ipagination.pageSize;
+        params.departNameList = this.departNameList;
+        this.loading = true;
+        getAction(this.url.list, params).then((res) => {
+          if (res.success) {
+            //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
+            this.dataSource = res.result.records||res.result;
+            if(res.result.total)
+            {
+              this.ipagination.total = res.result.total;
+            }else{
+              this.ipagination.total = 0;
+            }
+            //update-end---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
+          }else{
+            this.$message.warning(res.message)
+          }
+        }).finally(() => {
+          this.loading = false
+        })
+      },
       initDictConfig(){
       },
     }

+ 7 - 0
src/views/module_kzks/dashboard/chengbeneDetali/otherDetail.vue

@@ -141,6 +141,9 @@
     created() {
     },
     computed: {
+      departNameList() {
+        return this.$store.getters.departNameList
+      },
     },
     watch: {
       listUrl(oldValue, newValue){
@@ -159,6 +162,10 @@
           this.ipagination.current = 1;
         }
         var params = this.getQueryParams();//查询条件
+        params.field = this.getQueryField();
+        params.pageNo = this.ipagination.current;
+        params.pageSize = this.ipagination.pageSize;
+        params.departNameList = this.departNameList;
         this.loading = true;
         getAction(this.listUrl, params).then((res) => {
           if (res.success) {

+ 17 - 8
src/views/module_kzks/dashboard/components/deptZbphTable.vue

@@ -21,18 +21,22 @@
       @cancel="handleCancel"
       :footer="false"
       >
-      <hte-detail ref="hteDetailRef"></hte-detail>
+      <hte-detail v-if="columnValue === 'contractAmount'" ref="contractAmountRef"></hte-detail>
+      <ysk-detail v-if="columnValue === 'received'" ref="receivedRef"></ysk-detail>
+      <wche-detail v-if="columnValue === 'completed'" ref="completedRef"></wche-detail>
     </j-modal>
   </div>
 </template>
 
 <script>
   import hteDetail from '../deptZbphDetail/hteDetail.vue';
+  import yskDetail from '../deptZbphDetail/yskDetail.vue';
+  import wcheDetail from '../deptZbphDetail/wcheDetail.vue';
   // import '@/assets/less/TableExpand.less'
   // import { mixinDevice } from '@/utils/mixin'
   // import { JeecgListMixin } from '@/mixins/JeecgListMixin'
   export default {
-  components: { hteDetail },
+  components: { hteDetail, yskDetail, wcheDetail },
     name: '',
     // mixins:[JeecgListMixin, mixinDevice],
     props: {
@@ -113,7 +117,7 @@
             customRender: (text, record) => {
               return (Number(text)/10000).toFixed(2)
             },
-            customCell: (record, index)=>{ return this.customCellDetail(record, index, 'contractAmount', '当期完成额')}
+            customCell: (record, index)=>{ return this.customCellDetail(record, index, 'completed', '当期完成额')}
           },
           {
             title:'完成度',
@@ -130,6 +134,7 @@
         title: '',
         width: 1200,
         visible: false,
+        columnValue: '',
       }
     },
     created() {
@@ -164,14 +169,18 @@
             // 点击事件
             click: (event) => {
               console.log(record, index, columnValue, columnTitle)
+              this.columnValue = columnValue
               this.visible = true
               this.title = columnTitle
+              // 因为涉及到导出得用jeecg的组件,所以还是用默认的queryParam
+              // this.detailParams.beginDate = this.zbPhParams.beginDate
+              // this.detailParams.time = this.zbPhParams.time
+              // this.detailParams.departName = record.depart
+              // 所以在这做判断传参
               this.$nextTick(() => {
-                console.log(this.$refs.hteDetailRef.queryParam)
-                console.log(this.zbPhParams)
-                this.$refs.hteDetailRef.queryParam.beginDate = this.zbPhParams.beginDate
-                this.$refs.hteDetailRef.queryParam.time = this.zbPhParams.time
-                this.$refs.hteDetailRef.queryParam.departName = record.depart
+                this.$refs[columnValue+'Ref'].queryParam.beginDate = this.zbPhParams.beginDate
+                this.$refs[columnValue+'Ref'].queryParam.time = this.zbPhParams.time
+                this.$refs[columnValue+'Ref'].queryParam.departName = record.depart
               })
             },
           }

+ 8 - 0
src/views/module_kzks/dashboard/deptZbphDetail/hteDetail.vue

@@ -40,6 +40,13 @@
     mixins:[JeecgListMixin, mixinDevice],
     components: {
     },
+    // 因为涉及到导出得用jeecg的组件,所以还是用默认的queryParam
+    // props: {
+    //   detailParams: {
+    //     type: Object,
+    //     default: () => {}
+    //   },
+    // },
     data () {
       return {
         // 表头
@@ -229,6 +236,7 @@
         }
         // var params = this.getQueryParams();//查询条件
         var params = this.queryParam
+        params.field = this.getQueryField();
         params.pageNo = this.ipagination.current;
         params.pageSize = this.ipagination.pageSize;
         this.loading = true;

+ 170 - 0
src/views/module_kzks/dashboard/deptZbphDetail/wcheDetail.vue

@@ -0,0 +1,170 @@
+<template>
+  <a-card :bordered="false" class="u-dialog-card">
+
+    <div class="table-operator">
+      <a-button type="primary" icon="download" @click="handleExportXls('当月完成额明细')">导出</a-button>
+    </div>
+    <!-- table区域-begin -->
+    <div>
+      <!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
+        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
+      </div> -->
+
+      <a-table
+        ref="table"
+        size="middle"
+        :scroll="{x:true}"
+        bordered
+        :rowKey="(record,index)=>{return index}"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        class="j-table-force-nowrap"
+        @change="handleTableChange">
+      </a-table>
+    </div>
+  </a-card>
+</template>
+
+<script>
+
+  import '@/assets/less/TableExpand.less'
+  import { mixinDevice } from '@/utils/mixin'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import { getAction } from '@/api/manage'
+
+  export default {
+    name: 'ListModalList',
+    mixins:[JeecgListMixin, mixinDevice],
+    components: {
+    },
+    // 因为涉及到导出得用jeecg的组件,所以还是用默认的queryParam
+    // props: {
+    //   detailParams: {
+    //     type: Object,
+    //     default: () => {}
+    //   },
+    // },
+    data () {
+      return {
+        // 表头
+        columns: [
+          {
+            title: '序号',
+            dataIndex: '',
+            key:'rowIndex',
+            width:60,
+            align:"center",
+            customRender:function (t,r,index) {
+                return parseInt(index)+1;
+            }
+          },
+          {
+            title:'部门名称',
+            align:"center",
+            dataIndex: 'depart'
+          },
+          {
+            title:'任务号',
+            align:"center",
+            dataIndex: 'taskno'
+          },
+          {
+            title:'任务名称',
+            align:"center",
+            dataIndex: 'taskname'
+          },
+          {
+            title:'合同额',
+            align:"center",
+            dataIndex: 'hte'
+          },
+          {
+            title:'已收款',
+            align:"center",
+            dataIndex: 'ysk'
+          },
+          {
+            title:'预估价',
+            align:"center",
+            dataIndex: 'ygj'
+          },
+          {
+            title:'上个月进度',
+            align:"center",
+            dataIndex: 'lastjd'
+          },
+          {
+            title:'当月进度',
+            align:"center",
+            dataIndex: 'nowjd'
+          },
+          {
+            title:'进度差',
+            align:"center",
+            dataIndex: 'newjd'
+          },
+        ],
+        url: {
+          list: "/index/getZrbmDepartKpiDetail",
+          exportXlsUrl: "/index/exportZrbmDepartKpiXls",
+        },
+        dictOptions:{},
+        superFieldList:[],
+      }
+    },
+    created() {
+    },
+    computed: {
+    },
+    methods: {
+      loadData(arg) {
+        if(!this.url.list){
+          this.$message.error("请设置url.list属性!")
+          return
+        }
+        //加载数据 若传入参数1则加载第一页的内容
+        if (arg === 1) {
+          this.ipagination.current = 1;
+        }
+        // var params = this.getQueryParams();//查询条件
+        var params = this.queryParam
+        params.field = this.getQueryField();
+        params.pageNo = this.ipagination.current;
+        params.pageSize = this.ipagination.pageSize;
+        this.loading = true;
+        getAction(this.url.list, params).then((res) => {
+          if (res.success) {
+            //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
+            this.dataSource = res.result.records||res.result;
+            if(res.result.total)
+            {
+              this.ipagination.total = res.result.total;
+            }else{
+              this.ipagination.total = 0;
+            }
+            //update-end---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
+          }else{
+            this.$message.warning(res.message)
+          }
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+      initDictConfig(){
+      },
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less';
+</style>
+<style lang="less" scoped>
+  .u-dialog-card{
+    /deep/.ant-card-body{
+      padding: 0 !important;
+    }
+  }
+</style>

+ 265 - 0
src/views/module_kzks/dashboard/deptZbphDetail/yskDetail.vue

@@ -0,0 +1,265 @@
+<template>
+  <a-card :bordered="false" class="u-dialog-card">
+
+    <div class="table-operator">
+      <a-button type="primary" icon="download" @click="handleExportXls('当期已收款明细')">导出</a-button>
+    </div>
+    <!-- table区域-begin -->
+    <div>
+      <!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
+        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
+      </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"
+        @change="handleTableChange">
+      </a-table>
+    </div>
+  </a-card>
+</template>
+
+<script>
+
+  import '@/assets/less/TableExpand.less'
+  import { mixinDevice } from '@/utils/mixin'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import { getAction } from '@/api/manage'
+
+  export default {
+    name: 'ListModalList',
+    mixins:[JeecgListMixin, mixinDevice],
+    components: {
+    },
+    // 因为涉及到导出得用jeecg的组件,所以还是用默认的queryParam
+    // props: {
+    //   detailParams: {
+    //     type: Object,
+    //     default: () => {}
+    //   },
+    // },
+    data () {
+      return {
+        // 表头
+        columns: [
+          {
+            title: '序号',
+            dataIndex: '',
+            key:'rowIndex',
+            width:60,
+            align:"center",
+            customRender:function (t,r,index) {
+                return parseInt(index)+1;
+            }
+          },
+          {
+            title:'收款单号',
+            align:"center",
+            dataIndex: 'skdh'
+          },
+          {
+            title:'执行状态',
+            align:"center",
+            dataIndex: 'zxzt'
+          },
+          {
+            title:'付款方名称	',
+            align:"center",
+            dataIndex: 'fkfmc'
+          },
+          {
+            title:'用户简称',
+            align:"center",
+            dataIndex: 'yhjc'
+          },
+          {
+            title:'合同编号',
+            align:"center",
+            dataIndex: 'htbh'
+          },
+          {
+            title:'合同名称',
+            align:"center",
+            dataIndex: 'htname'
+          },
+          {
+            title:'合同类型',
+            align:"center",
+            dataIndex: 'httype'
+          },
+          {
+            title:'型号',
+            align:"center",
+            dataIndex: 'xh'
+          },
+          {
+            title:'阶段',
+            align:"center",
+            dataIndex: 'jd'
+          },
+          {
+            title:'数量',
+            align:"center",
+            dataIndex: 'sl'
+          },
+          {
+            title:'部门',
+            align:"center",
+            dataIndex: 'bm'
+          },
+          {
+            title:'任务编号',
+            align:"center",
+            dataIndex: 'rwbh'
+          },
+          {
+            title:'任务名称',
+            align:"center",
+            dataIndex: 'rwname'
+          },
+          {
+            title:'收款总金额',
+            align:"center",
+            dataIndex: 'skzje'
+          },
+          {
+            title:'任务收款金额',
+            align:"center",
+            dataIndex: 'rwskje'
+          },
+          {
+            title:'到款日期/汇票到期日期',
+            align:"center",
+            dataIndex: 'dkhpdqrq'
+          },
+          {
+            title:'收款类型',
+            align:"center",
+            dataIndex: 'sktype'
+          },
+          {
+            title:'收款科目代码',
+            align:"center",
+            dataIndex: 'skkmdm'
+          },
+          {
+            title:'凭证号',
+            align:"center",
+            dataIndex: 'pzh'
+          },
+          {
+            title:'业务员',
+            align:"center",
+            dataIndex: 'ywy'
+          },
+          {
+            title:'业务部门',
+            align:"center",
+            dataIndex: 'ywbm'
+          },
+          {
+            title:'录入人',
+            align:"center",
+            dataIndex: 'lrr'
+          },
+          {
+            title:'录入日期',
+            align:"center",
+            dataIndex: 'lrrq'
+          },
+          {
+            title:'交易流水号',
+            align:"center",
+            dataIndex: 'jylsh'
+          },
+          {
+            title:'交易ID',
+            align:"center",
+            dataIndex: 'jyid'
+          },
+          {
+            title:'汇票号',
+            align:"center",
+            dataIndex: 'hph'
+          },
+          {
+            title:'汇票ID',
+            align:"center",
+            dataIndex: 'hpid'
+          },
+          {
+            title:'收款单位',
+            align:"center",
+            dataIndex: 'skdw'
+          },
+        ],
+        url: {
+          list: "/index/getXdbmYskDepartKpiDetail",
+          exportXlsUrl: "/index/exportXdbmYskDepartKpiXls",
+        },
+        dictOptions:{},
+        superFieldList:[],
+      }
+    },
+    created() {
+    },
+    computed: {
+    },
+    methods: {
+      loadData(arg) {
+        if(!this.url.list){
+          this.$message.error("请设置url.list属性!")
+          return
+        }
+        //加载数据 若传入参数1则加载第一页的内容
+        if (arg === 1) {
+          this.ipagination.current = 1;
+        }
+        // var params = this.getQueryParams();//查询条件
+        var params = this.queryParam
+        params.field = this.getQueryField();
+        params.pageNo = this.ipagination.current;
+        params.pageSize = this.ipagination.pageSize;
+        this.loading = true;
+        getAction(this.url.list, params).then((res) => {
+          if (res.success) {
+            //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
+            this.dataSource = res.result.records||res.result;
+            if(res.result.total)
+            {
+              this.ipagination.total = res.result.total;
+            }else{
+              this.ipagination.total = 0;
+            }
+            //update-end---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
+          }else{
+            this.$message.warning(res.message)
+          }
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+      initDictConfig(){
+      },
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less';
+</style>
+<style lang="less" scoped>
+  .u-dialog-card{
+    /deep/.ant-card-body{
+      padding: 0 !important;
+    }
+  }
+</style>

+ 38 - 0
src/views/module_kzks/dashboard/modulesDetail/HetongDetailList.vue

@@ -33,6 +33,7 @@
   import '@/assets/less/TableExpand.less'
   import { mixinDevice } from '@/utils/mixin'
   import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import { getAction } from '@/api/manage'
 
   export default {
     name: 'ListModalList',
@@ -236,8 +237,45 @@
     created() {
     },
     computed: {
+      departNameList() {
+        return this.$store.getters.departNameList
+      },
     },
     methods: {
+      loadData(arg) {
+        if(!this.url.list){
+          this.$message.error("请设置url.list属性!")
+          return
+        }
+        //加载数据 若传入参数1则加载第一页的内容
+        if (arg === 1) {
+          this.ipagination.current = 1;
+        }
+        // var params = this.getQueryParams();//查询条件
+        var params = this.queryParam
+        params.field = this.getQueryField();
+        params.pageNo = this.ipagination.current;
+        params.pageSize = this.ipagination.pageSize;
+        params.departNameList = this.departNameList;
+        this.loading = true;
+        getAction(this.url.list, params).then((res) => {
+          if (res.success) {
+            //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
+            this.dataSource = res.result.records||res.result;
+            if(res.result.total)
+            {
+              this.ipagination.total = res.result.total;
+            }else{
+              this.ipagination.total = 0;
+            }
+            //update-end---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
+          }else{
+            this.$message.warning(res.message)
+          }
+        }).finally(() => {
+          this.loading = false
+        })
+      },
       initDictConfig(){
       },
     }

+ 38 - 0
src/views/module_kzks/dashboard/modulesDetail/ShoukuanDetailList.vue

@@ -33,6 +33,7 @@
   import '@/assets/less/TableExpand.less'
   import { mixinDevice } from '@/utils/mixin'
   import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import { getAction } from '@/api/manage'
 
   export default {
     name: 'ListModalList',
@@ -221,8 +222,45 @@
     created() {
     },
     computed: {
+      departNameList() {
+        return this.$store.getters.departNameList
+      },
     },
     methods: {
+      loadData(arg) {
+        if(!this.url.list){
+          this.$message.error("请设置url.list属性!")
+          return
+        }
+        //加载数据 若传入参数1则加载第一页的内容
+        if (arg === 1) {
+          this.ipagination.current = 1;
+        }
+        // var params = this.getQueryParams();//查询条件
+        var params = this.queryParam
+        params.field = this.getQueryField();
+        params.pageNo = this.ipagination.current;
+        params.pageSize = this.ipagination.pageSize;
+        params.departNameList = this.departNameList;
+        this.loading = true;
+        getAction(this.url.list, params).then((res) => {
+          if (res.success) {
+            //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
+            this.dataSource = res.result.records||res.result;
+            if(res.result.total)
+            {
+              this.ipagination.total = res.result.total;
+            }else{
+              this.ipagination.total = 0;
+            }
+            //update-end---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
+          }else{
+            this.$message.warning(res.message)
+          }
+        }).finally(() => {
+          this.loading = false
+        })
+      },
       initDictConfig(){
       },
     }