Ver código fonte

发票添加导出功能

user5 2 anos atrás
pai
commit
437a68026a

+ 8 - 0
src/api/finance/invoice/FinanceInvoiceService.js

@@ -85,4 +85,12 @@ export default class FinanceInvoiceService {
       responseType: 'blob'
     })
   }
+  exportFile (params) {
+    return request({
+      url: '/finance/invoice/export',
+      method: 'get',
+      params: params,
+      responseType: 'blob'
+    })
+  }
 }

+ 19 - 19
src/views/modules/cw/invoice/InvoiceList.vue

@@ -203,7 +203,7 @@
           <vxe-column min-width="150" title="经办人"align="center" field="operator"></vxe-column>
           <vxe-column min-width="150" title="经办人部门"align="center" field="operatorOffice"></vxe-column>
           <vxe-column min-width="150" title="开票总金额(元)"align="center" field="account"></vxe-column>
-          <vxe-column min-width="150" title="票金额(元)"align="center" field="accountDetail"></vxe-column>
+          <vxe-column min-width="150" title="票金额(元)"align="center" field="accountDetail"></vxe-column>
           <vxe-column min-width="120" title="开票内容"align="center" field="billingContent">
             <template slot-scope="scope">
               {{$dictUtils.getDictLabel('invoice_billing_content', scope.row.billingContent, '-')}}
@@ -425,24 +425,24 @@
             } else {
               item.programName = ''
             }
-            if (!this.commonJS.isEmpty(item.financeInvoiceDetailDTOList)) {
-              item.accountDetail = 0
-              let num = ''
-              item.financeInvoiceDetailDTOList.forEach((detail, index) => {
-                if (!this.commonJS.isEmpty(detail.account)) {
-                  item.accountDetail = parseFloat(parseFloat(item.accountDetail) + parseFloat(detail.account)).toFixed(2)
-                }
-                if ((index + 1) !== item.financeInvoiceDetailDTOList.length) {
-                  num = num + detail.number + ','
-                } else {
-                  num = num + detail.number
-                }
-              })
-              item.number = num
-            } else {
-              item.number = ''
-              item.accountDetail = ''
-            }
+            // if (!this.commonJS.isEmpty(item.financeInvoiceDetailDTOList)) {
+            //   item.accountDetail = 0
+            //   let num = ''
+            //   item.financeInvoiceDetailDTOList.forEach((detail, index) => {
+            //     if (!this.commonJS.isEmpty(detail.account)) {
+            //       item.accountDetail = parseFloat(parseFloat(item.accountDetail) + parseFloat(detail.account)).toFixed(2)
+            //     }
+            //     if ((index + 1) !== item.financeInvoiceDetailDTOList.length) {
+            //       num = num + detail.number + ','
+            //     } else {
+            //       num = num + detail.number
+            //     }
+            //   })
+            //   item.number = num
+            // } else {
+            //   item.number = ''
+            //   item.accountDetail = ''
+            // }
           })
           this.tablePage.total = data.total
           this.loading = false

+ 5 - 1
src/views/modules/cw/workContract/ContractRegistration.vue

@@ -9,6 +9,9 @@
       <el-form-item label="合同名称" prop="contractName">
         <el-input size="small" v-model="searchForm.contractName" placeholder="请输入合同名称" clearable></el-input>
       </el-form-item>
+      <el-form-item label="案卷号" prop="filedNo">
+        <el-input size="small" v-model="searchForm.filedNo" placeholder="请输入案卷号" clearable></el-input>
+      </el-form-item>
 
       <el-form-item label="合同金额" prop="contractAmounts">
         <InputNumber :disabled="false" :precision="num" v-model="searchForm.contractAmounts"></InputNumber>
@@ -166,7 +169,7 @@
 
               <!--              <el-button v-if="hasPermission('cw:workContract:edit') && scope.row.status === '5' && scope.row.filedType === '5' && scope.row.filedPaperType === '5' && isAdmin" type="text" size="small" @click="editForm(scope.row.id)">修改</el-button>-->
               <el-button v-if="hasPermission('cw:workContract:del') && (scope.row.status === '1' || scope.row.status === '3')  && scope.row.createId === $store.state.user.id" type="text" size="small" @click="del(scope.row.id)">删除</el-button>
-              <el-button v-if="hasPermission('cw:workContract:back') && scope.row.status === '2'" type="text" size="small" @click="reback(scope.row)">撤回</el-button>
+              <el-button v-if="hasPermission('cw:workContract:back') && scope.row.status === '2' && scope.row.createId === $store.state.user.id" type="text" size="small" @click="reback(scope.row)">撤回</el-button>
 <!--              <el-button v-if="hasPermission('cw:workContract:filed') && scope.row.status === '5' && scope.row.createId === $store.state.user.id && (scope.row.filedType === '0' || scope.row.filedType === undefined)" type="text" size="small" @click="filed(scope.row.id)">归档</el-button>-->
               <!--归档暂存修改-->
 <!--              <el-button v-if="hasPermission('cw:workContract:filed') && scope.row.status === '5' && scope.row.createId === $store.state.user.id && scope.row.filedType === '1'" type="text" size="small" @click="filed(scope.row.id)">修改</el-button>-->
@@ -239,6 +242,7 @@
           filedPaperType: '',
           contractNo: '',
           contractName: '',
+          filedNo: '',
           contractAmount: '',
           contractDates: [],
           type: '',

+ 52 - 19
src/views/modules/finance/invoice/InvoiceList.vue

@@ -155,7 +155,7 @@
       </el-row>
     </el-form>
     <div class="bg-white top" style="">
-      <vxe-toolbar :refresh="{query: refreshList}" custom>
+      <vxe-toolbar :refresh="{query: refreshList}" export custom>
         <template #buttons>
           <el-button v-if="hasPermission('finance:invoice:add')" type="primary" size="small" icon="el-icon-plus" @click="start()">新建</el-button>
 <!--          <el-button v-if="hasPermission('finance:invoice:del')" type="danger"   size="small" icon="el-icon-delete" @click="del()" :disabled="$refs.invoiceTable && $refs.invoiceTable.getCheckboxRecords().length === 0" plain>删除</el-button>-->
@@ -175,6 +175,14 @@
           highlight-hover-row
           :menu-config="{}"
           @sort-change="sortChangeHandle"
+          :export-config="{
+                    remote: true,
+                    filename: `兴光评估发票数据${moment(new Date()).format('YYYY-MM-DD')}`,
+                    sheetName: `兴光评估发票数据${moment(new Date()).format('YYYY-MM-DD')}`,
+                    exportMethod: exportMethod,
+                    types: ['xlsx'],
+                    modes: ['current', 'selected', 'all']
+                  }"
           :sort-config="{remote:true}"
           :data="dataList"
           :checkbox-config="{}">
@@ -417,24 +425,24 @@
             } else {
               item.programName = ''
             }
-            if (!this.commonJS.isEmpty(item.financeInvoiceDetailDTOList)) {
-              item.accountDetail = 0
-              let num = ''
-              item.financeInvoiceDetailDTOList.forEach((detail, index) => {
-                if (!this.commonJS.isEmpty(detail.account)) {
-                  item.accountDetail = parseFloat(parseFloat(item.accountDetail) + parseFloat(detail.account)).toFixed(2)
-                }
-                if ((index + 1) !== item.financeInvoiceDetailDTOList.length) {
-                  num = num + detail.number + ','
-                } else {
-                  num = num + detail.number
-                }
-              })
-              item.number = num
-            } else {
-              item.number = ''
-              item.accountDetail = ''
-            }
+            // if (!this.commonJS.isEmpty(item.financeInvoiceDetailDTOList)) {
+            //   item.accountDetail = 0
+            //   let num = ''
+            //   item.financeInvoiceDetailDTOList.forEach((detail, index) => {
+            //     if (!this.commonJS.isEmpty(detail.account)) {
+            //       item.accountDetail = parseFloat(parseFloat(item.accountDetail) + parseFloat(detail.account)).toFixed(2)
+            //     }
+            //     if ((index + 1) !== item.financeInvoiceDetailDTOList.length) {
+            //       num = num + detail.number + ','
+            //     } else {
+            //       num = num + detail.number
+            //     }
+            //   })
+            //   item.number = num
+            // } else {
+            //   item.number = ''
+            //   item.accountDetail = ''
+            // }
           })
           this.tablePage.total = data.total
           this.loading = false
@@ -713,6 +721,31 @@
       clearProgram () {
         this.searchForm.programName = ''
         this.searchForm.programId = ''
+      },
+      // 自定义服务端导出
+      exportMethod ({ options }) {
+        // 传给服务端的参数
+        const params = {
+          'current': this.tablePage.currentPage,
+          'size': this.tablePage.pageSize,
+          'orders': this.tablePage.orders,
+          ...this.searchForm,
+          filename: options.filename,
+          sheetName: options.sheetName,
+          isHeader: options.isHeader,
+          original: options.original,
+          mode: options.mode,
+          selectIds: options.mode === 'selected' ? options.data.map(item => item.id) : [],
+          exportFields: options.columns.map(column => column.property)
+        }
+        return this.financeInvoiceService.exportFile(params).then((res) => {
+          // 将二进制流文件写入excel表,以下为重要步骤
+          this.$utils.downloadExcel(res.data, options.filename)
+        }).catch(function (err) {
+          if (err.response) {
+            console.log(err.response)
+          }
+        })
       }
     }
   }

+ 2 - 2
src/views/modules/materialManagement/wareHouse/WareHouseAddForm.vue

@@ -67,14 +67,14 @@
               </el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
+          <!--<el-col :span="12">
             <el-form-item label="合同编号" prop="contractNo"
                           :rules="[]">
               <el-input size="medium" :readonly="true" @focus="openContractChooseForm()" v-model="inputForm.contractNo" placeholder="请选择采购编号">
                 <el-button slot="append" icon="el-icon-search" @click="openContractChooseForm()"></el-button>
               </el-input>
             </el-form-item>
-          </el-col>
+          </el-col>-->
           <el-col :span="24">
             <el-form-item label="备注" prop="remarks">
               <el-input v-model="inputForm.remarks"

+ 2 - 2
src/views/modules/materialManagement/wareHouse/WareHouseUpdateForm.vue

@@ -58,14 +58,14 @@
             </el-input>
           </el-form-item>
         </el-col>
-        <el-col :span="12">
+        <!--<el-col :span="12">
           <el-form-item label="合同编号" prop="contractNo"
                         :rules="[]">
             <el-input size="medium" :readonly="true" @focus="openContractChooseForm()" v-model="inputForm.contractNo" placeholder="请选择采购编号">
               <el-button slot="append" icon="el-icon-search" @click="openContractChooseForm()"></el-button>
             </el-input>
           </el-form-item>
-        </el-col>
+        </el-col>-->
         <el-col :span="24">
           <el-form-item label="备注" prop="remarks">
             <el-input v-model="inputForm.remarks"