2
3
Переглянути джерело

增加导出功能及缴费查询bug修改

shiyi 6 роки тому
батько
коміт
bc29e19b16

+ 4 - 1
src/dashoo.cn/backend/api/business/oilsupplier/paymentselect/paymentselectService.go

@@ -18,7 +18,10 @@ func GetPaymentSelectService(xormEngine *xorm.Engine) *PaymentSelectService {
 
 func (s *PaymentSelectService) GetPaymentselectList(pageIndex, itemsPerPage int64, order string, asc string, entitiesPtr interface{}, where string) (total int64) {
 	var resultsSlice []map[string][]byte
-	sqlconunt := "SELECT COUNT(Id) FROM OilPaymentInfo WHERE Amount > 0 "
+	sqlconunt := "SELECT COUNT(p.Id) FROM OilPaymentInfo p " +
+		"LEFT JOIN OilSupplier s ON p.SupplierId = s.Id "+
+		"LEFT JOIN OilSupplierCert c ON p.SupplierCertId = c.Id " +
+		"WHERE " + where
 
 	sql := "SELECT c.AccessCardNo,s.SupplierName,c.SupplierTypeName,p.PayDate, " +
 		"sum(case  when p.PayType = '1' then Amount   else 0 end) as Access, " +

+ 4 - 4
src/dashoo.cn/backend/api/controllers/oilsupplier/paymentselect.go

@@ -23,12 +23,12 @@ func (this *PaymentSelectController) GetEntityList() {
 	orderby := "p.PayDate"
 	where := " 1=1 "
 	asc := " DESC"
-	SupplierTypeCode := this.GetString("SupplierTypeCode")
+	SupplierTypeName := this.GetString("SupplierTypeName")
 	SupplierName := this.GetString("SupplierName")
 	CreateOn := this.GetString("CreateOn")
 
-	if SupplierTypeCode != "" {
-		where = where + " and c.SupplierTypeName like '%" + SupplierTypeCode + "%'"
+	if SupplierTypeName != "" {
+		where = where + " and c.SupplierTypeName like '%" + SupplierTypeName + "%'"
 	}
 	if SupplierName != "" {
 		where = where + " and s.SupplierName like '%" + SupplierName + "%'"
@@ -38,7 +38,7 @@ func (this *PaymentSelectController) GetEntityList() {
 		if len(dates) == 2 {
 			minDate := dates[0]
 			maxDate := dates[1]
-			where = where + " and PayDate>='" + minDate + "' and PayDate<='" + maxDate + "'"
+			where = where + " and p.PayDate>='" + minDate + "' and p.PayDate<='" + maxDate + "'"
 		}
 	}
 

+ 71 - 67
src/dashoo.cn/frontend_web/src/pages/oilsupplier/paymentselect/index.vue

@@ -4,9 +4,13 @@
       <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
       <el-breadcrumb-item>缴费信息列表</el-breadcrumb-item>
     </el-breadcrumb>
-    <el-card class="box-card" style="height: calc(100vh - 115px);">
-      <div slot="header" class="clearfix">
-        <el-form ref="form" :inline="true" style="float: right; margin-top: -10px">
+    <el-card class="box-card" style="position:relative">
+      <div slot="header">
+        <span>
+          <i class="icon icon-table2"></i> 缴费查询
+        </span>
+        <el-form :model="searchForm" ref="searchformRef" :inline="true"
+                 style="float: right;position:absolute;right:15px;top:10.5px">
           <el-form-item label="年度">
             <el-date-picker size="mini" style="width: 220px" v-model="CreateOn" type="daterange" range-separator="至"
                             start-placeholder="生成日期" end-placeholder="结束日期"></el-date-picker>
@@ -15,7 +19,7 @@
             <el-input v-model="searchForm.SupplierName" placeholder="请输入" size="mini" style="width: 100%"></el-input>
           </el-form-item>
           <el-form-item label="准入类型">
-            <el-select size="mini" style="width:100px" v-model="searchForm.SupplierTypeCode" placeholder="准入类别">
+            <el-select size="mini" style="width:100px" v-model="searchForm.SupplierTypeName" placeholder="准入类别">
               <el-option label="全部" value=""></el-option>
               <el-option label="物资类" value="物资类"></el-option>
               <el-option label="基建类" value="基建类"></el-option>
@@ -32,89 +36,89 @@
             </el-dropdown>
           </el-form-item>
         </el-form>
+      </div>
+      <el-tabs v-model="activeName" type="border-card">
+        <el-tab-pane label="缴费明细表" name="first">
+          <el-table :data="entityList" size="mini" border style="width: 100%" @sort-change="orderby">
 
-        <el-tabs v-model="activeName" @tab-click="handleClick">
-          <el-tab-pane label="缴费明细表" name="first">
-            <el-table :data="entityList" size="mini" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
-
-              <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="AccessCardNo" label="准入证号"></el-table-column>
-              <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="SupplierName" label="企业名称"></el-table-column>
-              <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="SupplierTypeName" label="准入类别"></el-table-column>
+            <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="AccessCardNo" label="准入证号"></el-table-column>
+            <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="SupplierName" label="企业名称"></el-table-column>
+            <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="SupplierTypeName" label="准入类别"></el-table-column>
 
-              <el-table-column min-width="210" align="center" show-overflow-tooltip label="款项类别">
+            <el-table-column min-width="210" align="center" show-overflow-tooltip label="款项类别">
+              <template slot-scope="scope">
+                {{ transferStr(scope.row.PayType) }}
+              </template>
+              <el-table-column sortable min-width="70" align="center" show-overflow-tooltip prop="Access" label="新准入">
                 <template slot-scope="scope">
-                  {{ transferStr(scope.row.PayType) }}
+                  {{ scope.row.Access <= 0 ? "" : scope.row.Access}}
                 </template>
-                <el-table-column sortable min-width="70" align="center" show-overflow-tooltip prop="Access" label="新准入">
-                  <template slot-scope="scope">
-                    {{ scope.row.Access <= 0 ? "" : scope.row.Access}}
-                  </template>
-                </el-table-column>
-
-                <el-table-column sortable min-width="70" align="center" show-overflow-tooltip prop="Annual" label="年审">
-                  <template slot-scope="scope">
-                    {{ scope.row.Annual <= 0 ? "" : scope.row.Annual}}
-                  </template>
-                </el-table-column>
+              </el-table-column>
 
-                <el-table-column sortable min-width="70" align="center" show-overflow-tooltip prop="Addition" label="增项">
-                  <template slot-scope="scope">
-                    {{ scope.row.Addition <= 0 ? "" : scope.row.Addition}}
-                  </template>
-                </el-table-column>
+              <el-table-column sortable min-width="70" align="center" show-overflow-tooltip prop="Annual" label="年审">
+                <template slot-scope="scope">
+                  {{ scope.row.Annual <= 0 ? "" : scope.row.Annual}}
+                </template>
               </el-table-column>
 
-              <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="Sums" label="金额合计"></el-table-column>
-              <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="PayDate" label="缴费日期">
+              <el-table-column sortable min-width="70" align="center" show-overflow-tooltip prop="Addition" label="增项">
                 <template slot-scope="scope">
-                  {{ jstimehandle(scope.row.PayDate+'') }}
+                  {{ scope.row.Addition <= 0 ? "" : scope.row.Addition}}
                 </template>
               </el-table-column>
-              <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="Remarks" label="备注"></el-table-column>
-            </el-table>
+            </el-table-column>
+
+            <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="Sums" label="金额合计"></el-table-column>
+            <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="PayDate" label="缴费日期">
+              <template slot-scope="scope">
+                {{ jstimehandle(scope.row.PayDate+'') }}
+              </template>
+            </el-table-column>
+            <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="Remarks" label="备注"></el-table-column>
+          </el-table>
 
-            <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
-                           :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper"
-                           :total="currentItemCount">
-            </el-pagination>
-          </el-tab-pane>
+          <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+                         :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
+          </el-pagination>
+        </el-tab-pane>
 
 
-          <el-tab-pane label="缴费汇总表" name="second">
-            <el-table :data="entitySumList" border show-summary height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
+        <el-tab-pane label="缴费汇总表" name="second">
+          <el-table :data="entitySumList" border show-summary style="width: 100%" @sort-change="orderby">
 
-              <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="SupplierTypeName" label="准入类别"></el-table-column>
+            <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="SupplierTypeName" label="准入类别">
+            </el-table-column>
 
-              <el-table-column min-width="210" align="center" show-overflow-tooltip label="款项类别">
+            <el-table-column min-width="210" align="center" show-overflow-tooltip label="款项类别">
+              <template slot-scope="scope">
+                {{ transferStr(scope.row.PayType) }}
+              </template>
+              <el-table-column sortable min-width="70" align="center" show-overflow-tooltip prop="Access" label="新准入">
                 <template slot-scope="scope">
-                  {{ transferStr(scope.row.PayType) }}
+                  {{ scope.row.Access <= 0 ? "" : scope.row.Access}}
                 </template>
-                <el-table-column sortable min-width="70" align="center" show-overflow-tooltip prop="Access" label="新准入">
-                  <template slot-scope="scope">
-                    {{ scope.row.Access <= 0 ? "" : scope.row.Access}}
-                  </template>
-                </el-table-column>
+              </el-table-column>
 
-                <el-table-column sortable min-width="70" align="center" show-overflow-tooltip prop="Annual" label="年审">
-                  <template slot-scope="scope">
-                    {{ scope.row.Annual <= 0 ? "" : scope.row.Annual}}
-                  </template>
-                </el-table-column>
+              <el-table-column sortable min-width="70" align="center" show-overflow-tooltip prop="Annual" label="年审">
+                <template slot-scope="scope">
+                  {{ scope.row.Annual <= 0 ? "" : scope.row.Annual}}
+                </template>
+              </el-table-column>
 
-                <el-table-column sortable min-width="70" align="center" show-overflow-tooltip prop="Addition" label="增项">
-                  <template slot-scope="scope">
-                    {{ scope.row.Addition <= 0 ? "" : scope.row.Addition}}
-                  </template>
-                </el-table-column>
+              <el-table-column sortable min-width="70" align="center" show-overflow-tooltip prop="Addition" label="增项">
+                <template slot-scope="scope">
+                  {{ scope.row.Addition <= 0 ? "" : scope.row.Addition}}
+                </template>
               </el-table-column>
+            </el-table-column>
+            <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="Sums" label="金额合计">
+            </el-table-column>
+          </el-table>
+        </el-tab-pane>
 
-              <el-table-column sortable min-width="120" align="center" show-overflow-tooltip prop="Sums" label="金额合计"></el-table-column>
-            </el-table>
-          </el-tab-pane>
+      </el-tabs>
 
-        </el-tabs>
-      </div>
-      </el-card>
+    </el-card>
 
   </div>
 </template>
@@ -155,7 +159,7 @@
         searchFormReset: {},
         searchForm: {
           Id: '',
-          SupplierTypeCode: '',
+          SupplierTypeName: '',
           SupplierName: '',
           IsPay: '1',
           CreateOn: '',
@@ -186,7 +190,7 @@
         }
         let myCreateOn = []
         // 解析时间
-        if (this.CreateOn.length === 2) {
+        if (this.CreateOn !== null && this.CreateOn.length === 2) {
           this.CreateOn[1].setHours(23)
           this.CreateOn[1].setMinutes(59)
           this.CreateOn[1].setSeconds(59)

+ 36 - 4
src/dashoo.cn/frontend_web/src/pages/oilsupplier/suppliernopass/index.vue

@@ -33,9 +33,12 @@
               </el-dropdown-menu>
             </el-dropdown>
           </el-form-item>
+          <el-form-item>
+            <el-button type="primary" size="mini" @click="exportExcel">导出</el-button>
+          </el-form-item>
         </el-form>
       </div>
-      <el-table :data="entityList" size="mini" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
+      <el-table :data="entityList" id="rebateSetTable" size="mini" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
         <el-table-column label="操作" min-width="150" align="center" fixed="right">
           <template slot-scope="scope">
             <router-link :to="'/oilsupplier/suppliernopass/' + scope.row.Id + '/goodsedit?certid=' + scope.row.CertId">
@@ -436,9 +439,10 @@
   </div>
 </template>
 <script>
-  import { mapGetters } from 'vuex';
-  import api from '@/api/oilsupplier/supplier';
-  import certApi from '@/api/oilsupplier/suppliercert'
+  import { mapGetters } from 'vuex'
+  import api from '@/api/oilsupplier/supplier'
+  import FileSaver from 'file-saver'
+  import XLSX from 'xlsx'
 
   export default {
     computed: {
@@ -877,6 +881,34 @@
         })
       },
 
+      //  列表打印导出功能
+      exportExcel () {
+        /* generate workbook object from table */
+        let table = document.querySelector("#rebateSetTable").cloneNode(true); //克隆备份(原table不动)
+        // 因为element-ui的表格的fixed属性导致多出一个table,会下载重复内容,这里删除掉
+        table.removeChild(table.querySelector(".el-table__fixed-right")) //删掉备份的子节点
+        let wb = XLSX.utils.table_to_book(table, {
+          raw: true
+        })
+        /* get binary string as output */
+        let wbout = XLSX.write(wb, {
+          bookType: "xlsx",
+          bookSST: true,
+          type: "array"
+        })
+        try {
+          FileSaver.saveAs(
+            new Blob([wbout], {
+              type: "application/octet-stream"
+            }),
+            "SupplierNopass.xlsx"
+          )
+        } catch (e) {
+          if (typeof console !== "undefined") console.log(e, wbout)
+        }
+        return wbout
+      },
+
       getDictOptions() {
         api.getDictList(this.$axios).then(res => {
           //this.dictOptions.customerList = res.data.items['customerList']

+ 35 - 4
src/dashoo.cn/frontend_web/src/pages/oilsupplier/supplierps/index.vue

@@ -33,9 +33,12 @@
               </el-dropdown-menu>
             </el-dropdown>
           </el-form-item>
+          <el-form-item>
+            <el-button type="primary" size="mini" @click="exportExcel">导出</el-button>
+          </el-form-item>
         </el-form>
       </div>
-      <el-table :data="entityList" size="mini" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
+      <el-table :data="entityList" id="rebateSetTable" size="mini" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
         <el-table-column label="操作" width="120" align="center" fixed="right">
           <template slot-scope="scope">
             <router-link :to="'/oilsupplier/supplieraudit/' + scope.row.Id + '/goodsedit?certid=' + scope.row.CertId+'&jzps=1'">
@@ -446,9 +449,10 @@
   </div>
 </template>
 <script>
-  import { mapGetters } from 'vuex';
-  import api from '@/api/oilsupplier/supplier';
-  import certApi from '@/api/oilsupplier/suppliercert'
+  import { mapGetters } from 'vuex'
+  import api from '@/api/oilsupplier/supplier'
+  import FileSaver from 'file-saver'
+  import XLSX from 'xlsx'
 
   export default {
     computed: {
@@ -954,6 +958,33 @@
         })
       },
 
+      //列表打印导出功能
+      exportExcel() {
+        /* generate workbook object from table */
+        let table = document.querySelector("#rebateSetTable").cloneNode(true); //克隆备份(原table不动)
+        // 因为element-ui的表格的fixed属性导致多出一个table,会下载重复内容,这里删除掉
+        table.removeChild(table.querySelector(".el-table__fixed-right")) //删掉备份的子节点
+        let wb = XLSX.utils.table_to_book(table, {
+          raw: true
+        })
+        /* get binary string as output */
+        let wbout = XLSX.write(wb, {
+          bookType: "xlsx",
+          bookSST: true,
+          type: "array"
+        })
+        try {
+          FileSaver.saveAs(
+            new Blob([wbout], {
+              type: "application/octet-stream"
+            }),
+            "CentralizedReview.xlsx"
+          )
+        } catch (e) {
+          if (typeof console !== "undefined") console.log(e, wbout)
+        }
+        return wbout
+      },
       searchCommand(command) {
         if (command === 'search') {
           this.dialogVisible = true

+ 35 - 5
src/dashoo.cn/frontend_web/src/pages/oilsupplier/supplierstorage/index.vue

@@ -33,9 +33,12 @@
               </el-dropdown-menu>
             </el-dropdown>
           </el-form-item>
+          <el-form-item>
+            <el-button type="primary" size="mini" @click="exportExcel">导出</el-button>
+          </el-form-item>
         </el-form>
       </div>
-      <el-table :data="entityList" size="mini" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
+      <el-table id="rebateSetTable" :data="entityList" size="mini" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
         <el-table-column label="操作" min-width="200" align="center" fixed="right">
           <template slot-scope="scope">
             <router-link :to="'/oilsupplier/supplierstorage/' + scope.row.Id + '/goodsedit?certid=' + scope.row.CertId">
@@ -436,9 +439,10 @@
   </div>
 </template>
 <script>
-  import { mapGetters } from 'vuex';
-  import api from '@/api/oilsupplier/supplier';
-  import certApi from '@/api/oilsupplier/suppliercert'
+  import { mapGetters } from 'vuex'
+  import api from '@/api/oilsupplier/supplier'
+  import FileSaver from 'file-saver'
+  import XLSX from 'xlsx'
 
   export default {
     computed: {
@@ -876,7 +880,33 @@
           console.error(err)
         })
       },
-
+      //列表打印导出功能
+      exportExcel() {
+        /* generate workbook object from table */
+        let table = document.querySelector("#rebateSetTable").cloneNode(true); //克隆备份(原table不动)
+        // 因为element-ui的表格的fixed属性导致多出一个table,会下载重复内容,这里删除掉
+        table.removeChild(table.querySelector(".el-table__fixed-right")) //删掉备份的子节点
+        let wb = XLSX.utils.table_to_book(table, {
+          raw: true
+        })
+        /* get binary string as output */
+        let wbout = XLSX.write(wb, {
+          bookType: "xlsx",
+          bookSST: true,
+          type: "array"
+        })
+        try {
+          FileSaver.saveAs(
+            new Blob([wbout], {
+              type: "application/octet-stream"
+            }),
+            "SupplierStorage.xlsx"
+          )
+        } catch (e) {
+          if (typeof console !== "undefined") console.log(e, wbout)
+        }
+        return wbout
+      },
       getDictOptions() {
         api.getDictList(this.$axios).then(res => {
           //this.dictOptions.customerList = res.data.items['customerList']

+ 35 - 5
src/dashoo.cn/frontend_web/src/pages/oilsupplier/supplierstore/index.vue

@@ -33,9 +33,12 @@
               </el-dropdown-menu>
             </el-dropdown>
           </el-form-item>
+          <el-form-item>
+            <el-button type="primary" size="mini" @click="exportExcel">导出</el-button>
+          </el-form-item>
         </el-form>
       </div>
-      <el-table :data="entityList" size="mini" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
+      <el-table :data="entityList" id="rebateSetTable" size="mini" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
         <el-table-column label="操作" min-width="200" align="center" fixed="right">
           <template slot-scope="scope">
             <router-link :to="'/oilsupplier/supplierstore/' + scope.row.Id + '/basisedit?certid=' + scope.row.CertId">
@@ -443,9 +446,10 @@
   </div>
 </template>
 <script>
-  import { mapGetters } from 'vuex';
-  import api from '@/api/oilsupplier/supplier';
-  import certApi from '@/api/oilsupplier/suppliercert'
+  import { mapGetters } from 'vuex'
+  import api from '@/api/oilsupplier/supplier'
+  import FileSaver from 'file-saver'
+  import XLSX from 'xlsx'
 
   export default {
     computed: {
@@ -883,7 +887,33 @@
           console.error(err)
         })
       },
-
+      //  列表打印导出功能
+      exportExcel () {
+        /* generate workbook object from table */
+        let table = document.querySelector("#rebateSetTable").cloneNode(true); //克隆备份(原table不动)
+        // 因为element-ui的表格的fixed属性导致多出一个table,会下载重复内容,这里删除掉
+        table.removeChild(table.querySelector(".el-table__fixed-right")) //删掉备份的子节点
+        let wb = XLSX.utils.table_to_book(table, {
+          raw: true
+        })
+        /* get binary string as output */
+        let wbout = XLSX.write(wb, {
+          bookType: "xlsx",
+          bookSST: true,
+          type: "array"
+        })
+        try {
+          FileSaver.saveAs(
+            new Blob([wbout], {
+              type: "application/octet-stream"
+            }),
+            "SupplierStore.xlsx"
+          )
+        } catch (e) {
+          if (typeof console !== "undefined") console.log(e, wbout)
+        }
+        return wbout
+      },
       getDictOptions() {
         api.getDictList(this.$axios).then(res => {
           //this.dictOptions.customerList = res.data.items['customerList']

+ 3 - 3
src/dashoo.cn/frontend_web/src/pages/select/processselect/index.vue

@@ -263,7 +263,7 @@
           this.dialogVisible = true
         } else if (this.tabinx == '1') { //  增项
           this.entrydetail.business = val.Id
-          this.entrydetail.instance = val.WorkFlowId
+          this.entrydetail.instance = val.WorkflowId
           this.dialogVisible = true
         } else if (this.tabinx == '2') { // 年审
           this.entrydetail.business = val.Id
@@ -271,11 +271,11 @@
           this.dialogVisible1 = true
         } else if (this.tabinx == '3') { // 信息变更
           this.entrydetail.business = val.Id
-          this.entrydetail.instance = val.WorkFlowId
+          this.entrydetail.instance = val.WorkflowId
           this.dialogVisible1 = true
         } else if (this.tabinx == '4') { // 资质变更
           this.entrydetail.business = val.Id
-          this.entrydetail.instance = val.WorkFlowId
+          this.entrydetail.instance = val.WorkflowId
           this.dialogVisible1 = true
         }