Bladeren bron

修改进口换单 新加报表

Qukatie 4 maanden geleden
bovenliggende
commit
0f434f2508

File diff suppressed because it is too large
+ 337 - 337
src/components/boxManagement/businessReports.vue


File diff suppressed because it is too large
+ 345 - 338
src/components/boxManagement/reports.vue


+ 272 - 206
src/views/iosBasicData/ImportExchange/index.vue

@@ -1,54 +1,88 @@
 <template>
   <div>
     <basic-container v-if="isShow">
-      <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" :search.sync="query"
-        v-model="form" id="out-table" :header-cell-class-name="headerClassName" ref="crud" @row-del="rowDel"
-        @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
-        @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange"
+      <avue-crud
+        :option="option"
+        :table-loading="loading"
+        :data="data"
+        :page.sync="page"
+        :search.sync="query"
+        v-model="form"
+        id="out-table"
+        :header-cell-class-name="headerClassName"
+        ref="crud"
+        @row-del="rowDel"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @selection-change="selectionChange"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @refresh-change="refreshChange"
         @resetColumn="resetColumn('crud', 'option', 'optionBack', 532)"
-        @saveColumn="saveColumn('crud', 'option', 'optionBack', 532)" @on-load="onLoad">
+        @saveColumn="saveColumn('crud', 'option', 'optionBack', 532)"
+        @on-load="onLoad"
+      >
         <template slot="menuLeft">
           <el-tabs v-model="query.changeOrderStatus" type="card" @tab-click="handleClick">
             <el-tab-pane label="申请" name="申请"></el-tab-pane>
             <el-tab-pane label="已换单" name="已换单"></el-tab-pane>
           </el-tabs>
-          <el-button  type="primary" size="small" @click="allClick('确认设备单')" :disabled="selectionList.length == 0">确认设备单
-          </el-button>
-          <el-button type="success" size="small" @click="allClick('导出')">导出
-          </el-button>
-          <el-button type="primary" size="small" @click="allClick('收押箱款')" :disabled="selectionList.length == 0">收押箱款
-          </el-button>
-          <el-button type="success" size="small" @click="allClick('退押箱款')" :disabled="selectionList.length == 0">退押箱款
+          <el-button type="primary" size="small" @click="allClick('确认设备单')" :disabled="selectionList.length == 0">确认设备单 </el-button>
+          <el-button type="success" size="small" @click="allClick('导出')">导出 </el-button>
+          <el-button type="primary" size="small" @click="allClick('收押箱款')" :disabled="selectionList.length == 0">收押箱款 </el-button>
+          <el-button type="success" size="small" @click="allClick('退押箱款')" :disabled="selectionList.length == 0">退押箱款 </el-button>
+          <el-button size="small" style="margin-right: 8px" :disabled="selectionList.length != 1" @click="$refs.print.openDialog()">预 览 </el-button>
+          <el-button
+            v-if="roleName.indexOf('admin') != -1"
+            size="small"
+            style="margin-right: 8px"
+            :disabled="selectionList.length != 1"
+            @click="$refs.report.openDialog()"
+            >报表设计
           </el-button>
         </template>
         <template slot="menu" slot-scope="{ row, index }">
-          <el-button v-if="row.changeOrderStatus == '申请'" size="small" type="text"
-            @click="allClick('确认换单', row)">确认换单</el-button>
+          <el-button v-if="row.changeOrderStatus == '申请'" size="small" type="text" @click="allClick('确认换单', row)">确认换单</el-button>
           <el-button size="small" type="text" @click="allClick('上传附件', row)">上传附件</el-button>
         </template>
       </avue-crud>
     </basic-container>
-    <el-dialog title="导入数据" append-to-body :visible.sync="excelBox" width="555px" :close-on-click-modal="false"
-      v-dialog-drag>
-      <avue-form v-if="excelBox" :option="excelOption" v-model="excelForm" :table-loading="excelLoading"
-        :upload-before="uploadBefore" :upload-after="onSuccess">
+    <el-dialog title="导入数据" append-to-body :visible.sync="excelBox" width="555px" :close-on-click-modal="false" v-dialog-drag>
+      <avue-form
+        v-if="excelBox"
+        :option="excelOption"
+        v-model="excelForm"
+        :table-loading="excelLoading"
+        :upload-before="uploadBefore"
+        :upload-after="onSuccess"
+      >
         <template slot="excelTemplate">
-          <el-button type="primary" @click="handleGet">
-            点击下载<i class="el-icon-download el-icon--right"></i>
-          </el-button>
+          <el-button type="primary" @click="handleGet"> 点击下载<i class="el-icon-download el-icon--right"></i> </el-button>
         </template>
         <template slot="corpCnName">
-          <dic-select v-model="excelForm.corpCnName" placeholder="场站" key="id" :slotRight="true" rightLabel="code"
-            label="shortName" res="records" url="/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=场站"
-            :filterable="true" :remote="true" dataName="shortName" @selectChange="dicChange('corpCnName', $event)">
+          <dic-select
+            v-model="excelForm.corpCnName"
+            placeholder="场站"
+            key="id"
+            :slotRight="true"
+            rightLabel="code"
+            label="shortName"
+            res="records"
+            url="/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=场站"
+            :filterable="true"
+            :remote="true"
+            dataName="shortName"
+            @selectChange="dicChange('corpCnName', $event)"
+          >
           </dic-select>
         </template>
-
       </avue-form>
       <p style="text-align: center;color: #DC0505">
         温馨提示 第一次导入时请先下载模板
       </p>
     </el-dialog>
+    <business-reports :id="id" ref="print" businessValue="YASJ" :printUpdate="false"  :type="true"></business-reports>
+    <reports :id="id" businessValue="YASJ" ref="report"  :printUpdate="false"></reports>
     <file-update ref="file"></file-update>
   </div>
 </template>
@@ -64,12 +98,15 @@ import {
   changeOrderList
 } from "@/api/iosBasicData/ImportExchange.js";
 import dicSelect from "@/components/dicSelect/main";
-import fileUpdate from "./components/fileUpdate.vue"
+import fileUpdate from "./components/fileUpdate.vue";
+import businessReports from "@/components/boxManagement/businessReports.vue";
+import reports from "@/components/boxManagement/reports.vue";
 import { getToken } from "@/util/auth";
 import _ from "lodash";
 export default {
   data() {
     return {
+      id: null,
       excelBox: false,
       excelForm: {},
       excelLoading: false,
@@ -91,19 +128,21 @@ export default {
             //   desc: 'code',
             //   res: "data.records"
             // },
-            rules: [{
-              required: true,
-              message: "选择场站",
-              trigger: "blur",
-            }],
-            display: false,
+            rules: [
+              {
+                required: true,
+                message: "选择场站",
+                trigger: "blur"
+              }
+            ],
+            display: false
           },
           {
             label: "模板下载",
             prop: "excelTemplate",
             formslot: true,
             span: 24,
-            display: true,
+            display: true
           },
           {
             label: "模板上传",
@@ -123,7 +162,7 @@ export default {
       isShow: true,
       form: {},
       query: {
-        changeOrderStatus: '申请'
+        changeOrderStatus: "申请"
       },
       loading: false,
       page: {
@@ -134,7 +173,7 @@ export default {
       selectionList: [],
       option: {},
       optionBack: {
-        height: 'auto',
+        height: "auto",
         calcHeight: 30,
         menuWidth: 160,
         tip: false,
@@ -148,7 +187,7 @@ export default {
         delBtn: false,
         selection: true,
         searchIcon: true,
-        align: 'center',
+        align: "center",
         searchIndex: 3,
         column: [
           {
@@ -163,54 +202,60 @@ export default {
             dicUrl: "/api/blade-system/dept/lazy-list",
             props: {
               label: "deptName",
-              value: "id",
-            },
+              value: "id"
+            }
           },
           {
-            label: '系统号',
-            prop: 'billNo',
+            label: "系统号",
+            prop: "billNo",
             width: "120",
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '换单状态',
-            prop: 'changeOrderStatus',
+            label: "收据号",
+            prop: "iqNo",
+            width: "120",
+            overHidden: true
+          },
+          {
+            label: "换单状态",
+            prop: "changeOrderStatus",
             width: "80",
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '提货单状态',
-            prop: 'deliveryNoteStatus',
+            label: "提货单状态",
+            prop: "deliveryNoteStatus",
             width: "100",
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '设备单状态',
-            prop: 'equipmentSingleStatus',
+            label: "设备单状态",
+            prop: "equipmentSingleStatus",
             width: "100",
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '押箱金额',
-            prop: 'boxPackingAmount',
+            label: "押箱金额",
+            prop: "boxPackingAmount",
             width: "80",
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '收押箱款日期',
-            prop: 'harvestBoxPackingDate',
+            label: "收押箱款日期",
+            prop: "harvestBoxPackingDate",
             width: "100",
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '退押箱款日期',
-            prop: 'retreatBoxPackingDate',
+            label: "退押箱款日期",
+            prop: "retreatBoxPackingDate",
             width: "100",
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '客户名称',
-            prop: 'corpCnName',
+            label: "客户名称",
+            prop: "corpCnName",
             width: "100",
             search: true,
             overHidden: true,
@@ -222,134 +267,140 @@ export default {
               label: "cnName",
               value: "cnName",
               res: "data.records"
-            },
+            }
           },
           {
-            label: 'MB/L NO',
-            prop: 'mblno',
+            label: "MB/L NO",
+            prop: "mblno",
             width: "100",
             search: true,
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: 'HB/L NO',
-            prop: 'hblno',
+            label: "HB/L NO",
+            prop: "hblno",
             width: "100",
             search: true,
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '船名',
-            prop: 'vesselEnName',
+            label: "船名",
+            prop: "vesselEnName",
             width: "100",
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '航次',
-            prop: 'voyageNo',
+            label: "航次",
+            prop: "voyageNo",
             width: "60",
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: 'ETA',
-            prop: 'eta',
+            label: "ETA",
+            prop: "eta",
             width: "100",
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: 'ATA',
-            prop: 'actualEta',
+            label: "ATA",
+            prop: "actualEta",
             width: "100",
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '箱型/箱量',
-            prop: 'quantityCntrDescr',
+            label: "箱型/箱量",
+            prop: "quantityCntrDescr",
             width: "100",
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '应收本币',
-            prop: 'amountDr',
+            label: "应收本币",
+            prop: "amountDr",
             width: "80",
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '应收外币',
-            prop: 'amountDrUsd',
+            label: "应收外币",
+            prop: "amountDrUsd",
             width: "80",
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '实收本币',
-            prop: 'receivedAmountDr',
+            label: "实收本币",
+            prop: "receivedAmountDr",
             width: "80",
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '实收外币',
-            prop: 'receivedAmountDrUsd',
+            label: "实收外币",
+            prop: "receivedAmountDrUsd",
             width: "80",
-            overHidden: true,
+            overHidden: true
           },
           {
             label: "制单人",
             prop: "createUserName",
             overHidden: true,
-            width: 80,
-          }, {
+            width: 80
+          },
+          {
             label: "制单日期",
             prop: "createTime",
             type: "date",
             overHidden: true,
             width: 100,
             format: "yyyy-MM-dd",
-            valueFormat: "yyyy-MM-dd HH:mm:ss",
-          }, {
+            valueFormat: "yyyy-MM-dd HH:mm:ss"
+          },
+          {
             label: "修改人",
             prop: "updateUserName",
             overHidden: true,
-            width: 80,
-          }, {
+            width: 80
+          },
+          {
             label: "修改日期",
             prop: "updateTime",
             type: "date",
             overHidden: true,
             width: 100,
             format: "yyyy-MM-dd",
-            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss"
           }
         ]
       },
       data: [],
+      roleName: []
     };
   },
   components: {
     dicSelect,
-    fileUpdate
+    fileUpdate,
+    businessReports,
+    reports
   },
   async created() {
+    this.roleName = localStorage.getItem("roleName").split(",");
     this.option = await this.getColumnData(this.getColumnName(532), this.optionBack);
   },
   activated() {
-    setTimeout(() => {
-    }, 100);
+    setTimeout(() => {}, 100);
   },
   methods: {
     allClick(name, row) {
-      if (name == '确认设备单') {
+      if (name == "确认设备单") {
         this.$confirm("是否确认设备单?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning"
         }).then(() => {
-          let ids = []
+          let ids = [];
           for (let item of this.selectionList) {
-            ids.push(item.id)
+            ids.push(item.id);
           }
           let obj = {
-            ids: ids.join(',')
-          }
+            ids: ids.join(",")
+          };
           confirmEquipmentList(obj).then(res => {
             this.$message({
               type: "success",
@@ -359,28 +410,23 @@ export default {
           });
         });
       }
-      if (name == '收押箱款') {
+      if (name == "收押箱款") {
+        let sum = 0;
+        let ids=[]
+        for (let item of this.selectionList) {
+          ids.push(item.id)
+          sum += Number(item.boxPackingAmount ? item.boxPackingAmount : 0);
+        }
         this.$DialogForm.show({
-          title: '收押箱款',
-          width: '30%',
-          menuPosition: 'right',
+          title: "收押箱款",
+          width: "30%",
+          menuPosition: "right",
+          data: { amount: sum,corpName:this.selectionList[0].corpCnName },
           option: {
-            submitText: '确定',
-            emptyText: '取消',
+            submitText: "确定",
+            emptyText: "取消",
             // labelWidth: 130,
             column: [
-              // {
-              //   label: "押箱金额",
-              //   span: 24,
-              //   prop: "boxPackingAmount",
-              //   type: 'number',
-              //   controls: false,
-              //   rules: [{
-              //     required: true,
-              //     message: "",
-              //     trigger: "blur",
-              //   }],
-              // },
               {
                 label: "日期",
                 span: 24,
@@ -388,23 +434,42 @@ export default {
                 type: "date",
                 format: "yyyy-MM-dd",
                 valueFormat: "yyyy-MM-dd 00:00:00",
-                rules: [{
-                  required: true,
-                  message: "",
-                  trigger: "blur",
-                }],
+                rules: [
+                  {
+                    required: true,
+                    message: "",
+                    trigger: "blur"
+                  }
+                ]
+              },
+              {
+                label: "金额",
+                span: 24,
+                prop: "amount",
+                type: "number",
+                controls: false
               },
+              {
+                label: "付款单位",
+                span: 24,
+                prop: "corpName"
+              },
+              {
+                label: "支票号",
+                span: 24,
+                prop: "chequeNumber"
+              }
             ]
           },
-          beforeClose: (done) => {
-            done()
+          beforeClose: done => {
+            done();
           },
-          callback: (res) => {
-            res.done()
+          callback: res => {
+            res.done();
             let obj = {
-              id: this.selectionList[0].id,
+              ids: ids.join(','),
               ...res.data
-            }
+            };
             confirmPaymentCollection(obj).then(res => {
               this.$message({
                 type: "success",
@@ -412,18 +477,18 @@ export default {
               });
               this.refreshChange();
             });
-            res.close()
+            res.close();
           }
-        })
+        });
       }
-      if (name == '退押箱款') {
+      if (name == "退押箱款") {
         this.$DialogForm.show({
-          title: '退押箱款',
-          width: '30%',
-          menuPosition: 'right',
+          title: "退押箱款",
+          width: "30%",
+          menuPosition: "right",
           option: {
-            submitText: '确定',
-            emptyText: '取消',
+            submitText: "确定",
+            emptyText: "取消",
             // labelWidth: 130,
             column: [
               {
@@ -433,23 +498,25 @@ export default {
                 type: "date",
                 format: "yyyy-MM-dd",
                 valueFormat: "yyyy-MM-dd 00:00:00",
-                rules: [{
-                  required: true,
-                  message: "",
-                  trigger: "blur",
-                }],
-              },
+                rules: [
+                  {
+                    required: true,
+                    message: "",
+                    trigger: "blur"
+                  }
+                ]
+              }
             ]
           },
-          beforeClose: (done) => {
-            done()
+          beforeClose: done => {
+            done();
           },
-          callback: (res) => {
-            res.done()
+          callback: res => {
+            res.done();
             let obj = {
               id: this.selectionList[0].id,
               ...res.data
-            }
+            };
             confirmRefund(obj).then(res => {
               this.$message({
                 type: "success",
@@ -457,11 +524,11 @@ export default {
               });
               this.refreshChange();
             });
-            res.close()
+            res.close();
           }
-        })
+        });
       }
-      if (name == '确认换单') {
+      if (name == "确认换单") {
         this.$confirm("是否确认换单?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
@@ -469,7 +536,7 @@ export default {
         }).then(() => {
           let obj = {
             id: row.id
-          }
+          };
           confirmExchangeOrder(obj).then(res => {
             this.$message({
               type: "success",
@@ -479,8 +546,8 @@ export default {
           });
         });
       }
-      if (name == '上传附件') {
-        this.$refs.file.openDialog(row)
+      if (name == "上传附件") {
+        this.$refs.file.openDialog(row);
       }
     },
     uploadBefore(file, done, loading) {
@@ -489,7 +556,7 @@ export default {
     },
     // 上传成功
     onSuccess(res, done, loading, column) {
-      if (res == '操作成功' || res.msg == '操作成功') {
+      if (res == "操作成功" || res.msg == "操作成功") {
         this.$message.success("上传成功!");
       }
       this.excelBox = false;
@@ -500,14 +567,9 @@ export default {
     },
     // 下载模板
     handleGet() {
-      window.open(
-        `/api/blade-los/boxdynamicsrecord/exportTemplate?${this.website.tokenHeader
-        }=${getToken()}`
-      );
-    },
-    rowEdit(row) {
-
+      window.open(`/api/blade-los/boxdynamicsrecord/exportTemplate?${this.website.tokenHeader}=${getToken()}`);
     },
+    rowEdit(row) {},
     searchReset() {
       this.query = this.$options.data().query;
       this.onLoad(this.page);
@@ -519,6 +581,10 @@ export default {
       done();
     },
     selectionChange(list) {
+      this.id = null;
+      if (list.length == 1) {
+        this.id = list[0].iqNo;
+      }
       this.selectionList = list;
     },
     currentChange(currentPage) {
@@ -534,53 +600,55 @@ export default {
       this.onLoad(this.page, this.query);
     },
     onLoad(page, params = {}) {
-      let obj = {}
+      let obj = {};
       obj = {
-        ...Object.assign(params, this.query),
-      }
+        ...Object.assign(params, this.query)
+      };
       this.loading = true;
-      getList(page.currentPage, page.pageSize, obj).then(res => {
-        this.data = res.data.data.records;
-        this.page.total = res.data.data.total;
-        this.$nextTick(() => {
-          this.$refs.crud.doLayout();
-          this.$refs.crud.dicInit();
+      getList(page.currentPage, page.pageSize, obj)
+        .then(res => {
+          this.data = res.data.data.records;
+          this.page.total = res.data.data.total;
+          this.$nextTick(() => {
+            this.$refs.crud.doLayout();
+            this.$refs.crud.dicInit();
+          });
+        })
+        .finally(() => {
+          this.loading = false;
         });
-      }).finally(() => {
-        this.loading = false;
-      })
     },
     // 详情的返回列表
     goBack() {
       // 初始化数据
-      this.detailData = {}
+      this.detailData = {};
       this.isShow = true;
       this.onLoad(this.page, this.query);
     },
     outExport() {
-      let config = { params: { ...this.query } }
+      let config = { params: { ...this.query } };
       if (config.params) {
         for (const propName of Object.keys(config.params)) {
           const value = config.params[propName];
-          if (value !== null && typeof (value) !== "undefined") {
+          if (value !== null && typeof value !== "undefined") {
             if (value instanceof Array) {
               for (const key of Object.keys(value)) {
-                let params = propName + '[' + key + ']';
-                config.params[params] = value[key]
+                let params = propName + "[" + key + "]";
+                config.params[params] = value[key];
               }
-              delete config.params[propName]
+              delete config.params[propName];
             }
           }
         }
       }
       const routeData = this.$router.resolve({
-        path: '/api/blade-los/routecost/exportRouteCost',      //跳转目标窗口的地址
+        path: "/api/blade-los/routecost/exportRouteCost", //跳转目标窗口的地址
         query: {
-          ...config.params,    //括号内是要传递给新窗口的参数
+          ...config.params, //括号内是要传递给新窗口的参数
           identification: this.url
         }
-      })
-      window.open(routeData.href.slice(1, routeData.href.length) + '&' + `${this.website.tokenHeader}=${getToken()}`);
+      });
+      window.open(routeData.href.slice(1, routeData.href.length) + "&" + `${this.website.tokenHeader}=${getToken()}`);
     },
     //自定义列保存
     async saveColumn(ref, option, optionBack, code) {
@@ -594,8 +662,8 @@ export default {
         this.$message.success("保存成功");
         //关闭窗口
         this.$refs[ref].$refs.dialogColumn.columnBox = false;
-        this.selectionList = []
-        this.searchReset()
+        this.selectionList = [];
+        this.searchReset();
       }
     },
     //自定义列重置
@@ -605,27 +673,25 @@ export default {
       if (inSave) {
         this.$message.success("重置成功");
         this.$refs[ref].$refs.dialogColumn.columnBox = false;
-        this.selectionList = []
-        this.searchReset()
+        this.selectionList = [];
+        this.searchReset();
       }
     },
     // 更改表格颜色
     headerClassName(tab) {
       //颜色间隔
-      let back = ""
+      let back = "";
       if (tab.columnIndex >= 0 && tab.column.level === 1) {
         if (tab.columnIndex % 2 === 0) {
-          back = "back-one"
+          back = "back-one";
         } else if (tab.columnIndex % 2 === 1) {
-          back = "back-two"
+          back = "back-two";
         }
       }
       return back;
-    },
-
+    }
   }
-}
-
+};
 </script>
 
 <style lang="scss" scoped>
@@ -647,4 +713,4 @@ export default {
 ::v-deep .el-col-md-8 {
   width: 24.33333%;
 }
-</style>
+</style>

Some files were not shown because too many files changed in this diff