jz.kai 3 سال پیش
والد
کامیت
33382a918f
3فایلهای تغییر یافته به همراه176 افزوده شده و 1 حذف شده
  1. 9 1
      src/api/base/auditing.js
  2. 9 0
      src/routers/modules/base.js
  3. 158 0
      src/views/base/auditing-report.vue

+ 9 - 1
src/api/base/auditing.js

@@ -25,6 +25,14 @@ function showFPRZDData(formData){
   return request.post(constant.serverUrl + "/base/auditing/showFPRZDData",formData);
 }
 
+function report(formData){
+  return request.post(constant.serverUrl + "/base/auditing/report", formData);
+}
+
+function exportXlsReport(formData){
+  return request.post(constant.serverUrl + "/base/auditing/exportXlsReport", formData);
+}
+
 export default {
-  pageList,remove,workflowStart,listPending,exportXlsFPRZD,showFPRZDData
+  pageList,remove,workflowStart,listPending,exportXlsFPRZD,showFPRZDData,report,exportXlsReport
 }

+ 9 - 0
src/routers/modules/base.js

@@ -62,6 +62,15 @@ var routers = [
             title: '合同与发票比对'
         }
     },
+    {
+        path: '/base/auditing/report',
+        name: 'BaseAuditingReport',
+        component: () => import('@/views/base/auditing-report.vue'),
+        meta: {
+            roles: ["admin"],
+            title: '发票审核报表'
+        }
+    },
 ]
 
 export default routers;

+ 158 - 0
src/views/base/auditing-report.vue

@@ -0,0 +1,158 @@
+<template>
+  <div>
+    <el-breadcrumb separator=">">
+      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="#">基础信息管理</a>
+      </el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="/base/auditingReport">发票审核报表</a>
+      </el-breadcrumb-item>
+    </el-breadcrumb>
+    <el-divider></el-divider>
+    <!--
+      要resetFields起作用,必须配置:model和prop
+    -->
+    <el-form ref="queryForm" :model="queryModel" inline class="demo-form-inline">
+      <el-form-item label="审核日期" prop="checkedDate">
+        <el-date-picker
+          v-model="queryModel.checkedDate"
+          type="daterange"
+          size="mini"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期">
+        </el-date-picker>
+      </el-form-item>
+      <!-- <el-form-item label="合同号" prop="contractCode">
+        <el-input type="text" size="mini" v-model="queryModel.contractCode"></el-input>
+      </el-form-item>
+      <el-form-item label="供应商" prop="cvenName">
+        <el-input type="text" size="mini" v-model="queryModel.cvenName"></el-input>
+      </el-form-item> -->
+      <el-form-item>
+        <el-button type="primary" size="mini" icon="ios-search" @click="changePage" :loading="loading">查询</el-button>&nbsp;
+        <el-button type="info" size="mini" style="margin-left: 8px" @click="handleReset('queryForm')" >重置</el-button>&nbsp;
+        <el-button type="success" size="mini" style="margin-left: 8px" @click="handleFPSHTJBB">导出报表</el-button>
+      </el-form-item>
+    </el-form>
+    <el-divider></el-divider>
+    <el-table :data="tableData" style="min-height: 400px" v-loading="loading" stripe>
+      <el-table-column prop="code" label="发票号" width="150"></el-table-column>
+      <el-table-column prop="name" label="供应商" width="280"></el-table-column>
+      <el-table-column prop="checkSupplier" label="供应商符合" width="150"></el-table-column>
+      <el-table-column prop="checkTotal" label="总金额符合" width="150"></el-table-column>
+      <el-table-column prop="checkName" label="名称符合" width="150"></el-table-column>
+      <el-table-column prop="checkNorm" label="规格符合" width="150"></el-table-column>
+      <el-table-column prop="checkPrice" label="单价符合" width="150"></el-table-column>
+      <el-table-column prop="checkAmount" label="数量符合" width="150"></el-table-column>
+      <el-table-column prop="startingTime" label="流程发起时间" width="150"></el-table-column>
+      <el-table-column prop="duration" label="审批时长(h)" width="150"></el-table-column>
+      <!-- <el-table-column label="操作">
+        <template slot-scope="{row}">
+          <el-button size="mini" type="info" @click="handleEdit(row)">详情</el-button>
+        </template>
+      </el-table-column> -->
+    </el-table>
+  </div>
+</template>
+<script>
+import Constant from "@/constant";
+import auditingApi from "@/api/base/auditing";
+import NProgress from "nprogress"; // progress bar
+import "nprogress/nprogress.css"; // progress bar style
+
+export default {
+  data() {
+    return {
+      queryModel: {
+        contractCode: "",
+        cvenName: "",
+        checkedDate: []
+      },
+      loading: false,
+      tableData: [],
+    };
+  },
+  methods: {
+    changePage() {
+      var self = this;
+
+      self.loading = true;
+
+      var formData = new FormData();
+
+      formData.append("contractCode", self.queryModel.contractCode);
+      formData.append("cvenName", self.queryModel.cvenName);
+      formData.append("checkedDate", self.queryModel.checkedDate);
+
+      auditingApi
+      .report(formData)
+      .then(function (response) {
+        self.loading = false;
+
+        var jsonData = response.data.data;
+
+        self.tableData = jsonData;
+        console.log(jsonData);
+      })
+      .catch((error) => {
+        self.loading = false;
+        // self.$message.error(error + "");
+      });
+    },
+    handleReset(name) {
+      this.$refs[name].resetFields();
+    },
+    handleFPSHTJBB() {
+      var self = this;
+      
+      if(self.queryModel.checkedDate.length == 0){
+        self.$message({type: "warning", message: "请选择审核日期"});
+      }
+      else{
+        var formData = new FormData();
+        formData.append("checkedDate", self.queryModel.checkedDate);
+        auditingApi.exportXlsReport(formData).then(function (response) {
+          var jsonData = response.data;
+          if(jsonData.result){
+            var url = "http://localhost:8086/comparison-server/static/" + jsonData.data;
+            // var url = "http://192.168.15.99:8080/comparison-server/static/" + jsonData.data;
+
+            self.$message({
+              showClose: true,
+              type: "success",
+              message: `发票审核报表已生成,<a href="${url}">请点击链接下载</a>`,
+              dangerouslyUseHTMLString: true,
+              duration: 30000,
+            });
+          }
+        })
+        .catch((error) => {
+          self.$message.error(error + "");
+        });
+      }
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.el-breadcrumb {
+  margin: 10px;
+  line-height: 20px;
+}
+
+.el-divider {
+  margin: 5px 0;
+}
+
+.demo-form-inline {
+  margin-left: 10px;
+  text-align: left;
+}
+
+.button-group {
+  margin-left: 10px;
+  text-align: left;
+}
+</style>