Ver código fonte

添加项目费用详情等修改

yuhan 1 ano atrás
pai
commit
d922ea1287

+ 13 - 1
src/views/module_kzks/costModelProductPrice/CostModelProductPriceList.vue

@@ -408,7 +408,7 @@
             },
           },
           {
-            title:'工费',
+            title:'工费',
             align:"center",
             dataIndex: 'gzjlwf',
             customRender: (text) => {
@@ -527,6 +527,18 @@
             dataIndex: 'businessman'
           },
           {
+            title:'主管设计师',
+            align:"center",
+            width: 120,
+            dataIndex: 'ywfzrname'
+          },
+          {
+            title:'科研任务负责人',
+            align:"center",
+            width: 120,
+            dataIndex: 'xhzzrname'
+          },
+          {
             title: '操作',
             dataIndex: 'action',
             align:"center",

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

@@ -222,7 +222,7 @@
     { name: '专用费', value: 'zyf' },
     { name: '事务费', value: 'swf' },
     { name: '燃动费', value: 'rldlf' },
-    { name: '工费', value: 'gzjlwf' },
+    { name: '工费', value: 'gzjlwf' },
     { name: '固资费', value: 'gdzczj' },
     { name: '管理费', value: 'glf' },
     { name: '工资费', value: 'gzjlwf' },

+ 2 - 2
src/views/module_kzks/projectContrastList/allList.vue

@@ -177,7 +177,7 @@ export default {
           isEcharts: true,
         },
         {
-          title:'工费',
+          title:'工费',
           align:"center",
           dataIndex: 'gzjlwf',
           isEcharts: true,
@@ -279,7 +279,7 @@ export default {
       ],
       selectedMode: 'multiple',
       // echarts
-      // xAxisData: ['单台成本', '收入', '利润', '材料费', '外协费', '事务费', '专用费', '工费', '燃动费', '管理费', '折旧费', '装机成本', '内部试验', '工时']
+      // xAxisData: ['单台成本', '收入', '利润', '材料费', '外协费', '事务费', '专用费', '工费', '燃动费', '管理费', '折旧费', '装机成本', '内部试验', '工时']
     };
   },
   watch: {

+ 117 - 40
src/views/module_kzks/projectCostList/ProjectCostList.vue

@@ -230,23 +230,22 @@
         </div>
         <a-icon slot="filterIcon" type='setting' :style="{ fontSize:'16px',color:  '#108ee9' }" />
 
-        <span slot="contractfpe" slot-scope="text, record">
-          <!-- <a-button type="link">{{text}}</a-button> -->
+        <!-- <span slot="contractfpe" slot-scope="text, record">
           <a-button type="link" @click.native="detailClick(text,record,'contractfpe','合同额')" :style="{color: (record.children || record.id === 'amount') ? 'rgba(0,0,0,.65)' : ''}">{{(Number(text)/10000).toFixed(2)}}</a-button>
-        </span>
-        <span slot="taskmoney" slot-scope="text, record">
+        </span> -->
+        <!-- <span slot="taskmoney" slot-scope="text, record">
           <a-button type="link" @click="detailClick(text,record,'taskmoney','已收款')" :style="{color: (record.children || record.id === 'amount') ? 'rgba(0,0,0,.65)' : ''}">{{(Number(text)/10000).toFixed(2)}}</a-button>
-        </span>
-        <span slot="clf" slot-scope="text, record">
+        </span> -->
+        <!-- <span slot="clf" slot-scope="text, record">
           <a-button type="link" @click="detailClick(text,record,'clf','材料费')" :style="{color: (record.children || record.id === 'amount') ? 'rgba(0,0,0,.65)' : ''}">{{(Number(text)/10000).toFixed(2)}}</a-button>
-        </span>
-        <span slot="zyf" slot-scope="text, record">
+        </span> -->
+        <!-- <span slot="zyf" slot-scope="text, record">
           <a-button type="link" @click="detailClick(text,record,'zyf','专用费')" :style="{color: (record.children || record.id === 'amount') ? 'rgba(0,0,0,.65)' : ''}">{{(Number(text)/10000).toFixed(2)}}</a-button>
-        </span>
-        <span slot="swf" slot-scope="text, record">
+        </span> -->
+        <!-- <span slot="swf" slot-scope="text, record">
           <a-button type="link" @click="detailClick(text,record,'swf','事务费')" :style="{color: (record.children || record.id === 'amount') ? 'rgba(0,0,0,.65)' : ''}">{{(Number(text)/10000).toFixed(2)}}</a-button>
-        </span>
-        <span slot="wxf" slot-scope="text, record">
+        </span> -->
+        <!-- <span slot="wxf" slot-scope="text, record">
           <a-button type="link" @click.native="detailClick(text,record,'wxf','外协费')" :style="{color: (record.children || record.id === 'amount') ? 'rgba(0,0,0,.65)' : ''}">{{(Number(text)/10000).toFixed(2)}}</a-button>
         </span>
         <span slot="zjcb" slot-scope="text, record">
@@ -254,7 +253,7 @@
         </span>
         <span slot="workhour" slot-scope="text, record">
           <a-button type="link" @click="detailClick(text,record,'workhour','工时')" :style="{color: (record.children || record.id === 'amount') ? 'rgba(0,0,0,.65)' : ''}">{{text}}</a-button>
-        </span>
+        </span> -->
         
 
         <span slot="action" slot-scope="text, record">
@@ -469,20 +468,27 @@ import { number } from 'echarts';
             align:"center",
             width: 120,
             dataIndex: 'taskmoney',
-            scopedSlots: {
-              customRender: 'taskmoney',
+            // scopedSlots: {
+            //   customRender: 'taskmoney',
+            // },
+            customRender: (text) => {
+              return (Number(text)/10000).toFixed(2)
             },
-            // customCell: this.getClickColumn,
+            customCell: (record, index)=>{ return this.customCellDetail(record, index, 'taskmoney', '已收款')}
           },
           {
             title:'合同额',
             align:"center",
             width: 120,
             dataIndex: 'contractfpe',
-            scopedSlots: {
-              customRender: 'contractfpe',
-            },
+            // scopedSlots: {
+            //   customRender: 'contractfpe',
+            // },
             // customCell: this.getClickColumn,
+            customRender: (text) => {
+              return (Number(text)/10000).toFixed(2)
+            },
+            customCell: (record, index)=>{ return this.customCellDetail(record, index, 'contractfpe', '合同额')}
           },
           {
             title:'预估价',
@@ -567,30 +573,39 @@ import { number } from 'echarts';
             align:"center",
             width: 120,
             dataIndex: 'clf',
-            scopedSlots: {
-              customRender: 'clf',
+            // scopedSlots: {
+            //   customRender: 'clf',
+            // },
+            customRender: (text) => {
+              return (Number(text)/10000).toFixed(2)
             },
-            // customCell: this.getClickColumn,
+            customCell: (record, index)=>{ return this.customCellDetail(record, index, 'clf', '材料费')}
           },
           {
             title:'专用费',
             align:"center",
             width: 120,
             dataIndex: 'zyf',
-            scopedSlots: {
-              customRender: 'zyf',
+            // scopedSlots: {
+            //   customRender: 'zyf',
+            // },
+            customRender: (text) => {
+              return (Number(text)/10000).toFixed(2)
             },
-            // customCell: this.getClickColumn,
+            customCell: (record, index)=>{ return this.customCellDetail(record, index, 'zyf', '专用费')}
           },
           {
             title:'事务费',
             align:"center",
             width: 120,
             dataIndex: 'swf',
-            scopedSlots: {
-              customRender: 'swf',
+            // scopedSlots: {
+            //   customRender: 'swf',
+            // },
+            customRender: (text) => {
+              return (Number(text)/10000).toFixed(2)
             },
-            // customCell: this.getClickColumn,
+            customCell: (record, index)=>{ return this.customCellDetail(record, index, 'swf', '事务费')}
           },
           {
             title:'外协预算',
@@ -606,10 +621,13 @@ import { number } from 'echarts';
             align:"center",
             width: 120,
             dataIndex: 'wxf',
-            scopedSlots: {
-              customRender: 'wxf',
+            // scopedSlots: {
+            //   customRender: 'wxf',
+            // },
+            customRender: (text) => {
+              return (Number(text)/10000).toFixed(2)
             },
-            // customCell: this.getClickColumn,
+            customCell: (record, index)=>{ return this.customCellDetail(record, index, 'wxf', '外协费')}
           },
           {
             title:'燃动费',
@@ -619,6 +637,7 @@ import { number } from 'echarts';
             customRender: (text) => {
               return (Number(text)/10000).toFixed(2)
             },
+            customCell: (record, index)=>{ return this.customCellDetail(record, index, 'rldlf', '燃动费')}
           },
           {
             title:'固资费',
@@ -628,15 +647,17 @@ import { number } from 'echarts';
             customRender: (text) => {
               return (Number(text)/10000).toFixed(2)
             },
+            customCell: (record, index)=>{ return this.customCellDetail(record, index, 'gdzczj', '固资费')}
           },
           {
-            title:'工费',
+            title:'工费',
             align:"center",
             width: 120,
             dataIndex: 'gzjlwf',
             customRender: (text) => {
               return (Number(text)/10000).toFixed(2)
             },
+            customCell: (record, index)=>{ return this.customCellDetail(record, index, 'gzjlwf', '人工费')}
           },
           {
             title:'管理费',
@@ -648,14 +669,27 @@ import { number } from 'echarts';
             },
           },
           {
+            title:'筛选费',
+            align:"center",
+            width: 120,
+            dataIndex: 'sxf',
+            customRender: (text) => {
+              return (Number(text)/10000).toFixed(2)
+            },
+            customCell: (record, index)=>{ return this.customCellDetail(record, index, 'sxf', '筛选费')}
+          },
+          {
             title:'装机成本',
             align:"center",
             width: 120,
             dataIndex: 'zjcb',
-            scopedSlots: {
-              customRender: 'zjcb',
+            // scopedSlots: {
+            //   customRender: 'zjcb',
+            // },
+            customRender: (text) => {
+              return (Number(text)/10000).toFixed(2)
             },
-            // customCell: this.getClickColumn,
+            customCell: (record, index)=>{ return this.customCellDetail(record, index, 'zjcb', '装机成本')}
           },
           {
             title:'内部试验',
@@ -668,10 +702,10 @@ import { number } from 'echarts';
             align:"center",
             width: 120,
             dataIndex: 'workhour',
-            scopedSlots: {
-              customRender: 'workhour',
-            },
-            // customCell: this.getClickColumn,
+            // scopedSlots: {
+            //   customRender: 'workhour',
+            // },
+            customCell: (record, index)=>{ return this.customCellDetail(record, index, 'workhour', '工时')}
           },
           {
             title:'责任部门',
@@ -977,11 +1011,54 @@ import { number } from 'echarts';
         this.columns = cols;
         columnsEdit({checkedValues: checkedValues})
       },
+      customCellDetail(record, index, columnValue, columnTitle){
+        if(record.children || record.id === 'amount'){
+          return false
+        }
+        console.log(record, index, columnValue, columnTitle)
+        return {
+          style: {
+            'color': "#1890ff !important",
+            'cursor': "pointer",
+          },
+          on: { 
+            // 点击事件
+            click: (event) => {
+              
+            },
+            dblclick: (event) => {
+              // 没有值不弹窗--也弹窗
+              // if(!event.target.textContent){
+              //   return
+              // }
+              this.$refs.proCostDetail.taskno = record.taskno
+              if(record.status === '1' && columnValue === 'clf'){
+                // 批产参数
+                this.$refs.proCostDetail.pichanInfo = {
+                  pccode: record.pccode,
+                  proportion: record.proportion,
+                  columnValue: columnValue,
+                }
+                console.log(columnValue)
+                this.$refs.proCostDetail.columnValue = 'pichanTask'
+                this.$refs.proCostDetail.title = columnTitle + '批产明细'
+              } else {
+                this.$refs.proCostDetail.columnValue = columnValue
+                this.$refs.proCostDetail.title =  columnTitle + '明细'
+              }
+              this.$refs.proCostDetail.show()
+            },
+            contextmenu: (event) => {},
+            mouseenter: (event) => {},  // 鼠标移入行
+            mouseleave: (event) => {}
+          },
+        };
+      },
       detailClick(text, record, columnValue, columnTitle){
         if(!this.isClick){
           return
         }
-        console.log(text, record, columnValue, columnTitle)
+        // console.log(text, record, columnValue, columnTitle)
         // 去掉没有值不弹窗判断 !text ||
         if(record.children || record.id === 'amount'){
           return

+ 299 - 0
src/views/module_kzks/projectCostList/modulesDetail/ProjectChbGlfList.vue

@@ -0,0 +1,299 @@
+<template>
+  <a-card :bordered="false" class="u-dialog-card">
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="24">
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 查询区域-END -->
+
+    <!-- 操作按钮区域 -->
+    <div class="table-operator">
+      <!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> -->
+      <a-button type="primary" icon="download" @click="handleExportXls(taskno+'管理费明细')">导出</a-button>
+      <!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
+        <a-button type="primary" icon="import">导入</a-button>
+      </a-upload> -->
+      <!-- 高级查询区域 -->
+      <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
+      </a-dropdown> -->
+    </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"
+        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        class="j-table-force-nowrap"
+        @change="handleTableChange">
+
+        <template slot="htmlSlot" slot-scope="text">
+          <div v-html="text"></div>
+        </template>
+        <template slot="imgSlot" slot-scope="text,record">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
+          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
+        </template>
+        <template slot="fileSlot" slot-scope="text">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
+          <a-button
+            v-else
+            :ghost="true"
+            type="primary"
+            icon="download"
+            size="small"
+            @click="downloadFile(text)">
+            下载
+          </a-button>
+        </template>
+
+        <!-- <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(record)">编辑</a>
+
+          <a-divider type="vertical" />
+          <a-dropdown>
+            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
+            <a-menu slot="overlay">
+              <a-menu-item>
+                <a @click="handleDetail(record)">详情</a>
+              </a-menu-item>
+              <a-menu-item>
+                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+                  <a>删除</a>
+                </a-popconfirm>
+              </a-menu-item>
+            </a-menu>
+          </a-dropdown>
+        </span> -->
+
+      </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: 'ProjectChbSwfList',
+    mixins:[JeecgListMixin, mixinDevice],
+    props: {
+      taskno: {
+        type: String,
+        default: ''
+      }
+    },
+    data () {
+      return {
+        description: '管理费管理页面',
+        // 表头
+        columns: [
+          {
+            title: '序号',
+            dataIndex: '',
+            key:'rowIndex',
+            width:60,
+            align:"center",
+            customRender:function (t,r,index) {
+              return parseInt(index)+1;
+            },
+            fixed: 'left',
+          },
+          {
+            title:'任务号',
+            align:"center",
+            dataIndex: 'taskno',
+            width: 120,
+            fixed: 'left',
+          },
+          {
+            title:'年度',
+            align:"center",
+            dataIndex: 'nd'
+          },
+          {
+            title:'凭证日期',
+            align:"center",
+            dataIndex: 'pzrq'
+          },
+          {
+            title:'凭证号',
+            align:"center",
+            dataIndex: 'pzh'
+          },
+          {
+            title:'摘要',
+            align:"center",
+            dataIndex: 'zy'
+          },
+          {
+            title:'科目编号',
+            align:"center",
+            dataIndex: 'kmbh'
+          },
+          {
+            title:'科目名称',
+            align:"center",
+            dataIndex: 'km'
+          },
+          {
+            title:'方向',
+            align:"center",
+            dataIndex: 'fx'
+          },
+          {
+            title:'金额',
+            align:"center",
+            dataIndex: 'je'
+          },
+          {
+            title:'部门',
+            align:"center",
+            dataIndex: 'bm'
+          },
+          {
+            title:'往来单位',
+            align:"center",
+            dataIndex: 'wldw'
+          },
+          {
+            title:'制单人',
+            align:"center",
+            dataIndex: 'zdr'
+          },
+          {
+            title:'会计期间',
+            align:"center",
+            dataIndex: 'kjqj'
+          },
+          {
+            title:'凭证内码',
+            align:"center",
+            dataIndex: 'pznm'
+          },
+          {
+            title:'项目编号',
+            align:"center",
+            dataIndex: 'xmbh'
+          },
+          {
+            title:'项目名称',
+            align:"center",
+            dataIndex: 'xmmc'
+          },
+          {
+            title:'项目类别',
+            align:"center",
+            dataIndex: 'xmlb'
+          },
+          {
+            title:'辅助金额',
+            align:"center",
+            dataIndex: 'fzje',
+            width: 100,
+            fixed: 'right',
+          },
+          // {
+          //   title: '操作',
+          //   dataIndex: 'action',
+          //   align:"center",
+          //   fixed:"right",
+          //   width:147,
+          //   scopedSlots: { customRender: 'action' }
+          // }
+        ],
+        url: {
+          list: "/projectChbSwf/projectChbSwf/getGLFDetailList",
+          // delete: "/projectChbSwf/projectChbSwf/delete",
+          // deleteBatch: "/projectChbSwf/projectChbSwf/deleteBatch",
+          exportXlsUrl: "/projectChbSwf/projectChbSwf/exportGLFDetail",
+          // importExcelUrl: "projectChbSwf/projectChbSwf/importExcel",
+
+        },
+        dictOptions:{},
+        superFieldList:[],
+        queryParam: {
+          taskno: this.taskno
+        }
+      }
+    },
+    created() {
+      this.getSuperFieldList();
+      this.loadData()
+    },
+    computed: {
+      // importExcelUrl: function(){
+      //   return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+      // },
+    },
+    methods: {
+      loadData() {
+        this.loading = true;
+        getAction(this.url.list, {taskno: this.taskno}).then((res) => {
+          this.dataSource = res
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+      initDictConfig(){
+      },
+      getSuperFieldList(){
+        let fieldList=[];
+        fieldList.push({type:'string',value:'nd',text:'年度',dictCode:''})
+        fieldList.push({type:'string',value:'pzrq',text:'凭证日期',dictCode:''})
+        fieldList.push({type:'string',value:'pzh',text:'凭证号',dictCode:''})
+        fieldList.push({type:'string',value:'zy',text:'摘要',dictCode:''})
+        fieldList.push({type:'string',value:'kmbh',text:'科目编号',dictCode:''})
+        fieldList.push({type:'string',value:'km',text:'科目名称',dictCode:''})
+        fieldList.push({type:'string',value:'fx',text:'方向',dictCode:''})
+        fieldList.push({type:'string',value:'je',text:'金额',dictCode:''})
+        fieldList.push({type:'string',value:'bm',text:'部门',dictCode:''})
+        fieldList.push({type:'string',value:'wldw',text:'往来单位',dictCode:''})
+        fieldList.push({type:'string',value:'fzje',text:'辅助金额',dictCode:''})
+        fieldList.push({type:'string',value:'zdr',text:'制单人',dictCode:''})
+        fieldList.push({type:'string',value:'kjqj',text:'会计期间',dictCode:''})
+        fieldList.push({type:'string',value:'pznm',text:'凭证内码',dictCode:''})
+        fieldList.push({type:'string',value:'xmbh',text:'项目编号',dictCode:''})
+        fieldList.push({type:'string',value:'xmmc',text:'项目名称',dictCode:''})
+        fieldList.push({type:'string',value:'xmlb',text:'项目类别',dictCode:''})
+        fieldList.push({type:'string',value:'taskno',text:'任务号',dictCode:''})
+        this.superFieldList = fieldList
+      }
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less';
+</style>
+<style lang="less" scoped>
+.u-dialog-card{
+  /deep/.ant-card-body{
+    padding: 0 !important;
+  }
+}
+</style>

+ 299 - 0
src/views/module_kzks/projectCostList/modulesDetail/ProjectChbGzfList.vue

@@ -0,0 +1,299 @@
+<template>
+  <a-card :bordered="false" class="u-dialog-card">
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="24">
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 查询区域-END -->
+
+    <!-- 操作按钮区域 -->
+    <div class="table-operator">
+      <!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> -->
+      <a-button type="primary" icon="download" @click="handleExportXls(taskno+'固资费明细')">导出</a-button>
+      <!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
+        <a-button type="primary" icon="import">导入</a-button>
+      </a-upload> -->
+      <!-- 高级查询区域 -->
+      <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
+      </a-dropdown> -->
+    </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"
+        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        class="j-table-force-nowrap"
+        @change="handleTableChange">
+
+        <template slot="htmlSlot" slot-scope="text">
+          <div v-html="text"></div>
+        </template>
+        <template slot="imgSlot" slot-scope="text,record">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
+          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
+        </template>
+        <template slot="fileSlot" slot-scope="text">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
+          <a-button
+            v-else
+            :ghost="true"
+            type="primary"
+            icon="download"
+            size="small"
+            @click="downloadFile(text)">
+            下载
+          </a-button>
+        </template>
+
+        <!-- <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(record)">编辑</a>
+
+          <a-divider type="vertical" />
+          <a-dropdown>
+            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
+            <a-menu slot="overlay">
+              <a-menu-item>
+                <a @click="handleDetail(record)">详情</a>
+              </a-menu-item>
+              <a-menu-item>
+                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+                  <a>删除</a>
+                </a-popconfirm>
+              </a-menu-item>
+            </a-menu>
+          </a-dropdown>
+        </span> -->
+
+      </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: 'ProjectChbSwfList',
+    mixins:[JeecgListMixin, mixinDevice],
+    props: {
+      taskno: {
+        type: String,
+        default: ''
+      }
+    },
+    data () {
+      return {
+        description: '固资费管理页面',
+        // 表头
+        columns: [
+          {
+            title: '序号',
+            dataIndex: '',
+            key:'rowIndex',
+            width:60,
+            align:"center",
+            customRender:function (t,r,index) {
+              return parseInt(index)+1;
+            },
+            fixed: 'left',
+          },
+          {
+            title:'任务号',
+            align:"center",
+            dataIndex: 'taskno',
+            width: 120,
+            fixed: 'left',
+          },
+          {
+            title:'年度',
+            align:"center",
+            dataIndex: 'nd'
+          },
+          {
+            title:'凭证日期',
+            align:"center",
+            dataIndex: 'pzrq'
+          },
+          {
+            title:'凭证号',
+            align:"center",
+            dataIndex: 'pzh'
+          },
+          {
+            title:'摘要',
+            align:"center",
+            dataIndex: 'zy'
+          },
+          {
+            title:'科目编号',
+            align:"center",
+            dataIndex: 'kmbh'
+          },
+          {
+            title:'科目名称',
+            align:"center",
+            dataIndex: 'km'
+          },
+          {
+            title:'方向',
+            align:"center",
+            dataIndex: 'fx'
+          },
+          {
+            title:'金额',
+            align:"center",
+            dataIndex: 'je'
+          },
+          {
+            title:'部门',
+            align:"center",
+            dataIndex: 'bm'
+          },
+          {
+            title:'往来单位',
+            align:"center",
+            dataIndex: 'wldw'
+          },
+          {
+            title:'制单人',
+            align:"center",
+            dataIndex: 'zdr'
+          },
+          {
+            title:'会计期间',
+            align:"center",
+            dataIndex: 'kjqj'
+          },
+          {
+            title:'凭证内码',
+            align:"center",
+            dataIndex: 'pznm'
+          },
+          {
+            title:'项目编号',
+            align:"center",
+            dataIndex: 'xmbh'
+          },
+          {
+            title:'项目名称',
+            align:"center",
+            dataIndex: 'xmmc'
+          },
+          {
+            title:'项目类别',
+            align:"center",
+            dataIndex: 'xmlb'
+          },
+          {
+            title:'辅助金额',
+            align:"center",
+            dataIndex: 'fzje',
+            width: 100,
+            fixed: 'right',
+          },
+          // {
+          //   title: '操作',
+          //   dataIndex: 'action',
+          //   align:"center",
+          //   fixed:"right",
+          //   width:147,
+          //   scopedSlots: { customRender: 'action' }
+          // }
+        ],
+        url: {
+          list: "/projectChbSwf/projectChbSwf/getZJFDetailList",
+          // delete: "/projectChbSwf/projectChbSwf/delete",
+          // deleteBatch: "/projectChbSwf/projectChbSwf/deleteBatch",
+          exportXlsUrl: "/projectChbSwf/projectChbSwf/exportZJFDetail",
+          // importExcelUrl: "projectChbSwf/projectChbSwf/importExcel",
+
+        },
+        dictOptions:{},
+        superFieldList:[],
+        queryParam: {
+          taskno: this.taskno
+        }
+      }
+    },
+    created() {
+      this.getSuperFieldList();
+      this.loadData()
+    },
+    computed: {
+      // importExcelUrl: function(){
+      //   return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+      // },
+    },
+    methods: {
+      loadData() {
+        this.loading = true;
+        getAction(this.url.list, {taskno: this.taskno}).then((res) => {
+          this.dataSource = res
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+      initDictConfig(){
+      },
+      getSuperFieldList(){
+        let fieldList=[];
+        fieldList.push({type:'string',value:'nd',text:'年度',dictCode:''})
+        fieldList.push({type:'string',value:'pzrq',text:'凭证日期',dictCode:''})
+        fieldList.push({type:'string',value:'pzh',text:'凭证号',dictCode:''})
+        fieldList.push({type:'string',value:'zy',text:'摘要',dictCode:''})
+        fieldList.push({type:'string',value:'kmbh',text:'科目编号',dictCode:''})
+        fieldList.push({type:'string',value:'km',text:'科目名称',dictCode:''})
+        fieldList.push({type:'string',value:'fx',text:'方向',dictCode:''})
+        fieldList.push({type:'string',value:'je',text:'金额',dictCode:''})
+        fieldList.push({type:'string',value:'bm',text:'部门',dictCode:''})
+        fieldList.push({type:'string',value:'wldw',text:'往来单位',dictCode:''})
+        fieldList.push({type:'string',value:'fzje',text:'辅助金额',dictCode:''})
+        fieldList.push({type:'string',value:'zdr',text:'制单人',dictCode:''})
+        fieldList.push({type:'string',value:'kjqj',text:'会计期间',dictCode:''})
+        fieldList.push({type:'string',value:'pznm',text:'凭证内码',dictCode:''})
+        fieldList.push({type:'string',value:'xmbh',text:'项目编号',dictCode:''})
+        fieldList.push({type:'string',value:'xmmc',text:'项目名称',dictCode:''})
+        fieldList.push({type:'string',value:'xmlb',text:'项目类别',dictCode:''})
+        fieldList.push({type:'string',value:'taskno',text:'任务号',dictCode:''})
+        this.superFieldList = fieldList
+      }
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less';
+</style>
+<style lang="less" scoped>
+.u-dialog-card{
+  /deep/.ant-card-body{
+    padding: 0 !important;
+  }
+}
+</style>

+ 299 - 0
src/views/module_kzks/projectCostList/modulesDetail/ProjectChbRdfList.vue

@@ -0,0 +1,299 @@
+<template>
+  <a-card :bordered="false" class="u-dialog-card">
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="24">
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 查询区域-END -->
+
+    <!-- 操作按钮区域 -->
+    <div class="table-operator">
+      <!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> -->
+      <a-button type="primary" icon="download" @click="handleExportXls(taskno+'燃动费明细')">导出</a-button>
+      <!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
+        <a-button type="primary" icon="import">导入</a-button>
+      </a-upload> -->
+      <!-- 高级查询区域 -->
+      <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
+      </a-dropdown> -->
+    </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"
+        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        class="j-table-force-nowrap"
+        @change="handleTableChange">
+
+        <template slot="htmlSlot" slot-scope="text">
+          <div v-html="text"></div>
+        </template>
+        <template slot="imgSlot" slot-scope="text,record">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
+          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
+        </template>
+        <template slot="fileSlot" slot-scope="text">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
+          <a-button
+            v-else
+            :ghost="true"
+            type="primary"
+            icon="download"
+            size="small"
+            @click="downloadFile(text)">
+            下载
+          </a-button>
+        </template>
+
+        <!-- <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(record)">编辑</a>
+
+          <a-divider type="vertical" />
+          <a-dropdown>
+            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
+            <a-menu slot="overlay">
+              <a-menu-item>
+                <a @click="handleDetail(record)">详情</a>
+              </a-menu-item>
+              <a-menu-item>
+                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+                  <a>删除</a>
+                </a-popconfirm>
+              </a-menu-item>
+            </a-menu>
+          </a-dropdown>
+        </span> -->
+
+      </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: 'ProjectChbSwfList',
+    mixins:[JeecgListMixin, mixinDevice],
+    props: {
+      taskno: {
+        type: String,
+        default: ''
+      }
+    },
+    data () {
+      return {
+        description: '燃动费管理页面',
+        // 表头
+        columns: [
+          {
+            title: '序号',
+            dataIndex: '',
+            key:'rowIndex',
+            width:60,
+            align:"center",
+            customRender:function (t,r,index) {
+              return parseInt(index)+1;
+            },
+            fixed: 'left',
+          },
+          {
+            title:'任务号',
+            align:"center",
+            dataIndex: 'taskno',
+            width: 120,
+            fixed: 'left',
+          },
+          {
+            title:'年度',
+            align:"center",
+            dataIndex: 'nd'
+          },
+          {
+            title:'凭证日期',
+            align:"center",
+            dataIndex: 'pzrq'
+          },
+          {
+            title:'凭证号',
+            align:"center",
+            dataIndex: 'pzh'
+          },
+          {
+            title:'摘要',
+            align:"center",
+            dataIndex: 'zy'
+          },
+          {
+            title:'科目编号',
+            align:"center",
+            dataIndex: 'kmbh'
+          },
+          {
+            title:'科目名称',
+            align:"center",
+            dataIndex: 'km'
+          },
+          {
+            title:'方向',
+            align:"center",
+            dataIndex: 'fx'
+          },
+          {
+            title:'金额',
+            align:"center",
+            dataIndex: 'je'
+          },
+          {
+            title:'部门',
+            align:"center",
+            dataIndex: 'bm'
+          },
+          {
+            title:'往来单位',
+            align:"center",
+            dataIndex: 'wldw'
+          },
+          {
+            title:'制单人',
+            align:"center",
+            dataIndex: 'zdr'
+          },
+          {
+            title:'会计期间',
+            align:"center",
+            dataIndex: 'kjqj'
+          },
+          {
+            title:'凭证内码',
+            align:"center",
+            dataIndex: 'pznm'
+          },
+          {
+            title:'项目编号',
+            align:"center",
+            dataIndex: 'xmbh'
+          },
+          {
+            title:'项目名称',
+            align:"center",
+            dataIndex: 'xmmc'
+          },
+          {
+            title:'项目类别',
+            align:"center",
+            dataIndex: 'xmlb'
+          },
+          {
+            title:'辅助金额',
+            align:"center",
+            dataIndex: 'fzje',
+            width: 100,
+            fixed: 'right',
+          },
+          // {
+          //   title: '操作',
+          //   dataIndex: 'action',
+          //   align:"center",
+          //   fixed:"right",
+          //   width:147,
+          //   scopedSlots: { customRender: 'action' }
+          // }
+        ],
+        url: {
+          list: "/projectChbSwf/projectChbSwf/getRDFDetailList",
+          // delete: "/projectChbSwf/projectChbSwf/delete",
+          // deleteBatch: "/projectChbSwf/projectChbSwf/deleteBatch",
+          exportXlsUrl: "/projectChbSwf/projectChbSwf/exportRDFDetail",
+          // importExcelUrl: "projectChbSwf/projectChbSwf/importExcel",
+
+        },
+        dictOptions:{},
+        superFieldList:[],
+        queryParam: {
+          taskno: this.taskno
+        }
+      }
+    },
+    created() {
+      this.getSuperFieldList();
+      this.loadData()
+    },
+    computed: {
+      // importExcelUrl: function(){
+      //   return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+      // },
+    },
+    methods: {
+      loadData() {
+        this.loading = true;
+        getAction(this.url.list, {taskno: this.taskno}).then((res) => {
+          this.dataSource = res
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+      initDictConfig(){
+      },
+      getSuperFieldList(){
+        let fieldList=[];
+        fieldList.push({type:'string',value:'nd',text:'年度',dictCode:''})
+        fieldList.push({type:'string',value:'pzrq',text:'凭证日期',dictCode:''})
+        fieldList.push({type:'string',value:'pzh',text:'凭证号',dictCode:''})
+        fieldList.push({type:'string',value:'zy',text:'摘要',dictCode:''})
+        fieldList.push({type:'string',value:'kmbh',text:'科目编号',dictCode:''})
+        fieldList.push({type:'string',value:'km',text:'科目名称',dictCode:''})
+        fieldList.push({type:'string',value:'fx',text:'方向',dictCode:''})
+        fieldList.push({type:'string',value:'je',text:'金额',dictCode:''})
+        fieldList.push({type:'string',value:'bm',text:'部门',dictCode:''})
+        fieldList.push({type:'string',value:'wldw',text:'往来单位',dictCode:''})
+        fieldList.push({type:'string',value:'fzje',text:'辅助金额',dictCode:''})
+        fieldList.push({type:'string',value:'zdr',text:'制单人',dictCode:''})
+        fieldList.push({type:'string',value:'kjqj',text:'会计期间',dictCode:''})
+        fieldList.push({type:'string',value:'pznm',text:'凭证内码',dictCode:''})
+        fieldList.push({type:'string',value:'xmbh',text:'项目编号',dictCode:''})
+        fieldList.push({type:'string',value:'xmmc',text:'项目名称',dictCode:''})
+        fieldList.push({type:'string',value:'xmlb',text:'项目类别',dictCode:''})
+        fieldList.push({type:'string',value:'taskno',text:'任务号',dictCode:''})
+        this.superFieldList = fieldList
+      }
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less';
+</style>
+<style lang="less" scoped>
+.u-dialog-card{
+  /deep/.ant-card-body{
+    padding: 0 !important;
+  }
+}
+</style>

+ 299 - 0
src/views/module_kzks/projectCostList/modulesDetail/ProjectChbRgfList.vue

@@ -0,0 +1,299 @@
+<template>
+  <a-card :bordered="false" class="u-dialog-card">
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="24">
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 查询区域-END -->
+
+    <!-- 操作按钮区域 -->
+    <div class="table-operator">
+      <!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> -->
+      <a-button type="primary" icon="download" @click="handleExportXls(taskno+'人工费明细')">导出</a-button>
+      <!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
+        <a-button type="primary" icon="import">导入</a-button>
+      </a-upload> -->
+      <!-- 高级查询区域 -->
+      <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
+      </a-dropdown> -->
+    </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"
+        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        class="j-table-force-nowrap"
+        @change="handleTableChange">
+
+        <template slot="htmlSlot" slot-scope="text">
+          <div v-html="text"></div>
+        </template>
+        <template slot="imgSlot" slot-scope="text,record">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
+          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
+        </template>
+        <template slot="fileSlot" slot-scope="text">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
+          <a-button
+            v-else
+            :ghost="true"
+            type="primary"
+            icon="download"
+            size="small"
+            @click="downloadFile(text)">
+            下载
+          </a-button>
+        </template>
+
+        <!-- <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(record)">编辑</a>
+
+          <a-divider type="vertical" />
+          <a-dropdown>
+            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
+            <a-menu slot="overlay">
+              <a-menu-item>
+                <a @click="handleDetail(record)">详情</a>
+              </a-menu-item>
+              <a-menu-item>
+                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+                  <a>删除</a>
+                </a-popconfirm>
+              </a-menu-item>
+            </a-menu>
+          </a-dropdown>
+        </span> -->
+
+      </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: 'ProjectChbSwfList',
+    mixins:[JeecgListMixin, mixinDevice],
+    props: {
+      taskno: {
+        type: String,
+        default: ''
+      }
+    },
+    data () {
+      return {
+        description: '人工费管理页面',
+        // 表头
+        columns: [
+          {
+            title: '序号',
+            dataIndex: '',
+            key:'rowIndex',
+            width:60,
+            align:"center",
+            customRender:function (t,r,index) {
+              return parseInt(index)+1;
+            },
+            fixed: 'left',
+          },
+          {
+            title:'任务号',
+            align:"center",
+            dataIndex: 'taskno',
+            width: 120,
+            fixed: 'left',
+          },
+          {
+            title:'年度',
+            align:"center",
+            dataIndex: 'nd'
+          },
+          {
+            title:'凭证日期',
+            align:"center",
+            dataIndex: 'pzrq'
+          },
+          {
+            title:'凭证号',
+            align:"center",
+            dataIndex: 'pzh'
+          },
+          {
+            title:'摘要',
+            align:"center",
+            dataIndex: 'zy'
+          },
+          {
+            title:'科目编号',
+            align:"center",
+            dataIndex: 'kmbh'
+          },
+          {
+            title:'科目名称',
+            align:"center",
+            dataIndex: 'km'
+          },
+          {
+            title:'方向',
+            align:"center",
+            dataIndex: 'fx'
+          },
+          {
+            title:'金额',
+            align:"center",
+            dataIndex: 'je'
+          },
+          {
+            title:'部门',
+            align:"center",
+            dataIndex: 'bm'
+          },
+          {
+            title:'往来单位',
+            align:"center",
+            dataIndex: 'wldw'
+          },
+          {
+            title:'制单人',
+            align:"center",
+            dataIndex: 'zdr'
+          },
+          {
+            title:'会计期间',
+            align:"center",
+            dataIndex: 'kjqj'
+          },
+          {
+            title:'凭证内码',
+            align:"center",
+            dataIndex: 'pznm'
+          },
+          {
+            title:'项目编号',
+            align:"center",
+            dataIndex: 'xmbh'
+          },
+          {
+            title:'项目名称',
+            align:"center",
+            dataIndex: 'xmmc'
+          },
+          {
+            title:'项目类别',
+            align:"center",
+            dataIndex: 'xmlb'
+          },
+          {
+            title:'辅助金额',
+            align:"center",
+            dataIndex: 'fzje',
+            width: 100,
+            fixed: 'right',
+          },
+          // {
+          //   title: '操作',
+          //   dataIndex: 'action',
+          //   align:"center",
+          //   fixed:"right",
+          //   width:147,
+          //   scopedSlots: { customRender: 'action' }
+          // }
+        ],
+        url: {
+          list: "/projectChbSwf/projectChbSwf/getRGFDetailList",
+          // delete: "/projectChbSwf/projectChbSwf/delete",
+          // deleteBatch: "/projectChbSwf/projectChbSwf/deleteBatch",
+          exportXlsUrl: "/projectChbSwf/projectChbSwf/exportRGFDetail",
+          // importExcelUrl: "projectChbSwf/projectChbSwf/importExcel",
+
+        },
+        dictOptions:{},
+        superFieldList:[],
+        queryParam: {
+          taskno: this.taskno
+        }
+      }
+    },
+    created() {
+      this.getSuperFieldList();
+      this.loadData()
+    },
+    computed: {
+      // importExcelUrl: function(){
+      //   return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+      // },
+    },
+    methods: {
+      loadData() {
+        this.loading = true;
+        getAction(this.url.list, {taskno: this.taskno}).then((res) => {
+          this.dataSource = res
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+      initDictConfig(){
+      },
+      getSuperFieldList(){
+        let fieldList=[];
+        fieldList.push({type:'string',value:'nd',text:'年度',dictCode:''})
+        fieldList.push({type:'string',value:'pzrq',text:'凭证日期',dictCode:''})
+        fieldList.push({type:'string',value:'pzh',text:'凭证号',dictCode:''})
+        fieldList.push({type:'string',value:'zy',text:'摘要',dictCode:''})
+        fieldList.push({type:'string',value:'kmbh',text:'科目编号',dictCode:''})
+        fieldList.push({type:'string',value:'km',text:'科目名称',dictCode:''})
+        fieldList.push({type:'string',value:'fx',text:'方向',dictCode:''})
+        fieldList.push({type:'string',value:'je',text:'金额',dictCode:''})
+        fieldList.push({type:'string',value:'bm',text:'部门',dictCode:''})
+        fieldList.push({type:'string',value:'wldw',text:'往来单位',dictCode:''})
+        fieldList.push({type:'string',value:'fzje',text:'辅助金额',dictCode:''})
+        fieldList.push({type:'string',value:'zdr',text:'制单人',dictCode:''})
+        fieldList.push({type:'string',value:'kjqj',text:'会计期间',dictCode:''})
+        fieldList.push({type:'string',value:'pznm',text:'凭证内码',dictCode:''})
+        fieldList.push({type:'string',value:'xmbh',text:'项目编号',dictCode:''})
+        fieldList.push({type:'string',value:'xmmc',text:'项目名称',dictCode:''})
+        fieldList.push({type:'string',value:'xmlb',text:'项目类别',dictCode:''})
+        fieldList.push({type:'string',value:'taskno',text:'任务号',dictCode:''})
+        this.superFieldList = fieldList
+      }
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less';
+</style>
+<style lang="less" scoped>
+.u-dialog-card{
+  /deep/.ant-card-body{
+    padding: 0 !important;
+  }
+}
+</style>

+ 299 - 0
src/views/module_kzks/projectCostList/modulesDetail/ProjectChbSxfList.vue

@@ -0,0 +1,299 @@
+<template>
+  <a-card :bordered="false" class="u-dialog-card">
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="24">
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 查询区域-END -->
+
+    <!-- 操作按钮区域 -->
+    <div class="table-operator">
+      <!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> -->
+      <a-button type="primary" icon="download" @click="handleExportXls(taskno+'筛选费明细')">导出</a-button>
+      <!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
+        <a-button type="primary" icon="import">导入</a-button>
+      </a-upload> -->
+      <!-- 高级查询区域 -->
+      <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
+      </a-dropdown> -->
+    </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"
+        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        class="j-table-force-nowrap"
+        @change="handleTableChange">
+
+        <template slot="htmlSlot" slot-scope="text">
+          <div v-html="text"></div>
+        </template>
+        <template slot="imgSlot" slot-scope="text,record">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
+          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
+        </template>
+        <template slot="fileSlot" slot-scope="text">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
+          <a-button
+            v-else
+            :ghost="true"
+            type="primary"
+            icon="download"
+            size="small"
+            @click="downloadFile(text)">
+            下载
+          </a-button>
+        </template>
+
+        <!-- <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(record)">编辑</a>
+
+          <a-divider type="vertical" />
+          <a-dropdown>
+            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
+            <a-menu slot="overlay">
+              <a-menu-item>
+                <a @click="handleDetail(record)">详情</a>
+              </a-menu-item>
+              <a-menu-item>
+                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+                  <a>删除</a>
+                </a-popconfirm>
+              </a-menu-item>
+            </a-menu>
+          </a-dropdown>
+        </span> -->
+
+      </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: 'ProjectChbSwfList',
+    mixins:[JeecgListMixin, mixinDevice],
+    props: {
+      taskno: {
+        type: String,
+        default: ''
+      }
+    },
+    data () {
+      return {
+        description: '筛选费管理页面',
+        // 表头
+        columns: [
+          {
+            title: '序号',
+            dataIndex: '',
+            key:'rowIndex',
+            width:60,
+            align:"center",
+            customRender:function (t,r,index) {
+              return parseInt(index)+1;
+            },
+            fixed: 'left',
+          },
+          {
+            title:'任务号',
+            align:"center",
+            dataIndex: 'taskno',
+            width: 120,
+            fixed: 'left',
+          },
+          {
+            title:'年度',
+            align:"center",
+            dataIndex: 'nd'
+          },
+          {
+            title:'凭证日期',
+            align:"center",
+            dataIndex: 'pzrq'
+          },
+          {
+            title:'凭证号',
+            align:"center",
+            dataIndex: 'pzh'
+          },
+          {
+            title:'摘要',
+            align:"center",
+            dataIndex: 'zy'
+          },
+          {
+            title:'科目编号',
+            align:"center",
+            dataIndex: 'kmbh'
+          },
+          {
+            title:'科目名称',
+            align:"center",
+            dataIndex: 'km'
+          },
+          {
+            title:'方向',
+            align:"center",
+            dataIndex: 'fx'
+          },
+          {
+            title:'金额',
+            align:"center",
+            dataIndex: 'je'
+          },
+          {
+            title:'部门',
+            align:"center",
+            dataIndex: 'bm'
+          },
+          {
+            title:'往来单位',
+            align:"center",
+            dataIndex: 'wldw'
+          },
+          {
+            title:'制单人',
+            align:"center",
+            dataIndex: 'zdr'
+          },
+          {
+            title:'会计期间',
+            align:"center",
+            dataIndex: 'kjqj'
+          },
+          {
+            title:'凭证内码',
+            align:"center",
+            dataIndex: 'pznm'
+          },
+          {
+            title:'项目编号',
+            align:"center",
+            dataIndex: 'xmbh'
+          },
+          {
+            title:'项目名称',
+            align:"center",
+            dataIndex: 'xmmc'
+          },
+          {
+            title:'项目类别',
+            align:"center",
+            dataIndex: 'xmlb'
+          },
+          {
+            title:'辅助金额',
+            align:"center",
+            dataIndex: 'fzje',
+            width: 100,
+            fixed: 'right',
+          },
+          // {
+          //   title: '操作',
+          //   dataIndex: 'action',
+          //   align:"center",
+          //   fixed:"right",
+          //   width:147,
+          //   scopedSlots: { customRender: 'action' }
+          // }
+        ],
+        url: {
+          list: "/projectChbSwf/projectChbSwf/getSXFDetailList",
+          // delete: "/projectChbSwf/projectChbSwf/delete",
+          // deleteBatch: "/projectChbSwf/projectChbSwf/deleteBatch",
+          exportXlsUrl: "/projectChbSwf/projectChbSwf/exportSXFDetail",
+          // importExcelUrl: "projectChbSwf/projectChbSwf/importExcel",
+
+        },
+        dictOptions:{},
+        superFieldList:[],
+        queryParam: {
+          taskno: this.taskno
+        }
+      }
+    },
+    created() {
+      this.getSuperFieldList();
+      this.loadData()
+    },
+    computed: {
+      // importExcelUrl: function(){
+      //   return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+      // },
+    },
+    methods: {
+      loadData() {
+        this.loading = true;
+        getAction(this.url.list, {taskno: this.taskno}).then((res) => {
+          this.dataSource = res
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+      initDictConfig(){
+      },
+      getSuperFieldList(){
+        let fieldList=[];
+        fieldList.push({type:'string',value:'nd',text:'年度',dictCode:''})
+        fieldList.push({type:'string',value:'pzrq',text:'凭证日期',dictCode:''})
+        fieldList.push({type:'string',value:'pzh',text:'凭证号',dictCode:''})
+        fieldList.push({type:'string',value:'zy',text:'摘要',dictCode:''})
+        fieldList.push({type:'string',value:'kmbh',text:'科目编号',dictCode:''})
+        fieldList.push({type:'string',value:'km',text:'科目名称',dictCode:''})
+        fieldList.push({type:'string',value:'fx',text:'方向',dictCode:''})
+        fieldList.push({type:'string',value:'je',text:'金额',dictCode:''})
+        fieldList.push({type:'string',value:'bm',text:'部门',dictCode:''})
+        fieldList.push({type:'string',value:'wldw',text:'往来单位',dictCode:''})
+        fieldList.push({type:'string',value:'fzje',text:'辅助金额',dictCode:''})
+        fieldList.push({type:'string',value:'zdr',text:'制单人',dictCode:''})
+        fieldList.push({type:'string',value:'kjqj',text:'会计期间',dictCode:''})
+        fieldList.push({type:'string',value:'pznm',text:'凭证内码',dictCode:''})
+        fieldList.push({type:'string',value:'xmbh',text:'项目编号',dictCode:''})
+        fieldList.push({type:'string',value:'xmmc',text:'项目名称',dictCode:''})
+        fieldList.push({type:'string',value:'xmlb',text:'项目类别',dictCode:''})
+        fieldList.push({type:'string',value:'taskno',text:'任务号',dictCode:''})
+        this.superFieldList = fieldList
+      }
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less';
+</style>
+<style lang="less" scoped>
+.u-dialog-card{
+  /deep/.ant-card-body{
+    padding: 0 !important;
+  }
+}
+</style>

+ 20 - 0
src/views/module_kzks/projectCostList/modulesDetail/ProjectDetailModal.vue

@@ -19,6 +19,16 @@
     <project-chb-swf-list v-if="columnValue === 'swf'" :taskno="taskno"></project-chb-swf-list>
     <!-- 外协费 -->
     <project-chb-wxf-list v-if="columnValue === 'wxf'" :taskno="taskno"></project-chb-wxf-list>
+    <!-- 筛选费 -->
+    <project-chb-sxf-list v-if="columnValue === 'sxf'" :taskno="taskno"></project-chb-sxf-list>
+    <!-- 燃动费 -->
+    <project-chb-rdf-list v-if="columnValue === 'rldlf'" :taskno="taskno"></project-chb-rdf-list>
+    <!-- 人工费 -->
+    <project-chb-rgf-list v-if="columnValue === 'gzjlwf'" :taskno="taskno"></project-chb-rgf-list>
+    <!-- 固资费 -->
+    <project-chb-gzf-list v-if="columnValue === 'gdzczj'" :taskno="taskno"></project-chb-gzf-list>
+    <!-- 管理费 -->
+    <project-chb-glf-list v-if="columnValue === 'glf'" :taskno="taskno"></project-chb-glf-list>
     <!-- 装机 -->
     <mes-detail-list v-if="columnValue === 'zjcb'" :taskno="taskno"></mes-detail-list>
     <!-- 工时 -->
@@ -42,6 +52,11 @@ import ProjectChbZyfList from './ProjectChbZyfList.vue'
 import MesDetailList from './MesDetailList.vue'
 import KyBgDetailList from './KyBgDetailList.vue'
 import PichanTaskList from './PichanTaskList.vue'
+import ProjectChbSxfList from './ProjectChbSxfList.vue'
+import ProjectChbRdfList from './ProjectChbRdfList.vue'
+import ProjectChbRgfList from './ProjectChbRgfList.vue'
+import ProjectChbGzfList from './ProjectChbGzfList.vue'
+import ProjectChbGlfList from './ProjectChbGlfList.vue'
 
   export default {
     name: 'ProjectCostModal',
@@ -55,6 +70,11 @@ import PichanTaskList from './PichanTaskList.vue'
       MesDetailList,
       KyBgDetailList,
       PichanTaskList,
+      ProjectChbSxfList,
+      ProjectChbRdfList,
+      ProjectChbRgfList,
+      ProjectChbGzfList,
+      ProjectChbGlfList,
     },
     data () {
       return {