luobang 2 년 전
부모
커밋
a0f9c38489

+ 1 - 1
build/utils.js

@@ -16,7 +16,7 @@ const devPathSrc = path.resolve(__dirname, "../../../src"); // node_modules应
 //       统计报表       组织机构/系统管理 采购  仓储
 //  'statisticalReport','systemConfig','TMS','WMS','workFlow']
 // let devModules = ["index", "appoint", "statisticalReport", "WMS","TMS"];
-let devModules = ["all"];
+let devModules = ["index", "TMS", "appoint", "WMS", "queue"];
 
 if (pathSrc.indexOf("node_modules") > -1) {
   devModules = require("../../../cors.js").devModules;

+ 2 - 2
config/index.js

@@ -65,8 +65,8 @@ let proxyTable = {
   },
   // 所有数据的请求域名地址
   "/api/v1": {
-    target: "http://172.16.33.166:80",
-    // target: "http://localhost:8080",
+    // target: "http://172.16.33.166:80",
+    target: "http://localhost:8080",
     // target: "http://192.168.1.109:8080",
     ws: true,
     pathRewrite: {

+ 448 - 48
src/views/TMS/components/bmsship/detailsStatement.vue

@@ -1,71 +1,471 @@
+<!-- 计费账单 -->
 <template>
-  <!-- 船运计费详单页面 -->
-  <div class="purchaseOrder">
+  <div id="detailsStatement">
     <div class="top">
-      <el-input placeholder="请输入内容" v-model="input" clearable> </el-input>
-      <el-button type="primary" class="btn" @click="onclick">
-        <i class="el-icon-search"></i>查询
-      </el-button>
-      <el-button type="primary" @click="shipclick">
-        新增水运费账单
-      </el-button>
-      <el-button type="primary" @click="waterclick">
-        新增水分检测费账单
-      </el-button>
-      <el-button type="primary" @click="click()">
-        新增途损费账单
-      </el-button>
+      <el-form inline="true">
+        <el-form-item>
+          <el-input v-model="shipName" placeholder="请输入船名"></el-input>
+        </el-form-item>
+        <el-form-item>
+          <span class="demonstration">结算日期</span>
+          <el-date-picker v-model="value1" type="date" placeholder="选择日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="onClick">查询</el-button>
+        </el-form-item>
+        <el-form-item>
+          <span class="totalWillTonage">合计已预开票吨位</span>
+          <el-input
+            v-model="totalWillTonageedValue"
+            disabled
+            style="width:80px"
+          ></el-input>
+        </el-form-item>
+        <el-form-item>
+          <span class="totalWillTonage">合计已预开金额</span>
+          <el-input
+            v-model="totalWillTonageedMoney"
+            disabled
+            style="width:80px"
+          ></el-input>
+        </el-form-item>
+        <el-form-item>
+          <span class="totalWillTonage">合计本次实际开票吨位</span>
+          <el-input
+            v-model="totalActuallyTonageedValue"
+            disabled
+            style="width:80px"
+          ></el-input>
+        </el-form-item>
+        <el-form-item>
+          <span class="totalWillTonage">合计本月实际开票金额</span>
+          <el-input
+            v-model="totalActuallyTonageedMoney"
+            disabled
+            style="width:80px"
+          ></el-input>
+        </el-form-item>
+      </el-form>
     </div>
-    <dilTable v-bind.sync="option" >
-      <el-table-column fixed="right" label="操作" width="100">
-        <template slot-scope="scope">
-          <el-button @click="btnclick(scope.row)" type="text" size="small"
-            >详情</el-button
+    <div class="main">
+      <el-tabs v-model="activeName" @tab-click="handleClick">
+        <el-tab-pane label="未结算" name="first">
+          <el-table
+            :data="tableData"
+            ref="tableRef"
+            border
+            stripe
+            style="width: 100%; margin-top: 20px"
+            max-height="800px"
+            :row-style="{ height: '30px' }"
+            :cell-style="{ fontWeight: '700' }"
+            :summary-method="getSummaries"
+            show-summary
+            class="table"
           >
-        </template>
-      </el-table-column>
-    </dilTable>
+            <el-table-column
+              prop="index"
+              width="50"
+              label="序号"
+              align="center"
+              :resizable="false"
+            >
+              <template slot-scope="scope">{{ scope.row.group + 1 }}</template>
+            </el-table-column>
+            <el-table-column
+              prop="materialTypeName"
+              label="品种"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="shipName"
+              label="船名"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="portName"
+              label="放货港口"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="carrierName"
+              label="承运单位"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="leavePortDate"
+              label="离港日期"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="loadShipTon"
+              label="装船吨位"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="loadShipPer"
+              label="装船比例"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="billTon"
+              label="结算吨位"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="enFatoryTon"
+              label="到厂湿吨"
+              width="200px"
+              align="center"
+            >
+              <template slot-scope="scope">
+                <el-input v-model="scope.row.enFatoryTon"></el-input>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="contractPrice"
+              label="合同单价"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="statementAmount"
+              label="金额(元)"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="willTonanged"
+              label="已预开票吨位"
+              width="200px"
+              align="center"
+            >
+              <template slot-scope="scope">
+                <el-input v-model="scope.row.willTonanged"></el-input>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="willMoneyed"
+              label="已预开票金额"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="actuallyMoney"
+              label="本次实际开票吨位"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="actuallyMoney"
+              label="本次实际开票吨位"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="actuallyMonthMoney"
+              label="本月实际开票金额"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+          </el-table>
+        </el-tab-pane>
+        <el-tab-pane label="已结算" name="second">
+          <el-table
+            :data="tableData1"
+            ref="tableRef1"
+            border
+            stripe
+            style="width: 100%; margin-top: 20px"
+            max-height="800px"
+            :row-style="{ height: '30px' }"
+            :cell-style="{ fontWeight: '700' }"
+            :summary-method="getSummaries"
+            show-summary
+            class="table"
+          >
+            <el-table-column
+              prop="index"
+              width="50"
+              label="序号"
+              align="center"
+              :resizable="false"
+            >
+              <template slot-scope="scope">{{ scope.row.group + 1 }}</template>
+            </el-table-column>
+            <el-table-column
+              prop="materialTypeName"
+              label="品种"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="shipName"
+              label="船名"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="portName"
+              label="放货港口"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="carrierName"
+              label="承运单位"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="leavePortDate"
+              label="离港日期"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="loadShipTon"
+              label="装船吨位"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="loadShipPer"
+              label="装船比例"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="billTon"
+              label="结算吨位"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="enFatoryTon"
+              label="到厂湿吨"
+              width="200px"
+              align="center"
+            >
+              <template slot-scope="scope">
+                <el-input v-model="scope.row.enFatoryTon"></el-input>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="contractPrice"
+              label="合同单价"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="statementAmount"
+              label="金额(元)"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="willTonanged"
+              label="已预开票吨位"
+              width="200px"
+              align="center"
+            >
+              <template slot-scope="scope">
+                <el-input v-model="scope.row.willTonanged"></el-input>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="willMoneyed"
+              label="已预开票金额"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="actuallyMoney"
+              label="本次实际开票吨位"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="actuallyMoney"
+              label="本次实际开票吨位"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="actuallyMonthMoney"
+              label="本月实际开票金额"
+              width="200px"
+              align="center"
+            >
+            </el-table-column>
+          </el-table>
+        </el-tab-pane>
+      </el-tabs>
+    </div>
   </div>
 </template>
-
 <script>
 export default {
-  name: "purchaseOrder",
   data() {
     return {
-      input:"",
-      option: {
-        // 表格请求数据的地址
-        requestUrl: "/api/v1/bms/getStatementList?apiId=113",
-      },
+      totalWillTonageedValue: 0,
+      totalWillTonageedMoney: 0,
+      totalActuallyTonageedMoney: 0,
+      totalActuallyTonageedValue: 0,
+      shipName: null,
+      tableData: null,
+      spanArr: [],
+      mergeList: [
+        "index",
+        "carrierName",
+        "portName",
+        "shipName",
+        "materialTypeName",
+        "enFatoryTon"
+      ],
+      activeName: "first",
+      tableTitle: "结算账单报表"
     };
   },
   methods: {
-    onclick() {
-      this.option.requestUrl = "/api/v1/bms/getStatementList?apiId=113&con="+this.input;
-    },
-    btnclick(row) {
-      this.$router.push("/statementDetailsOrder/" + row.batchId + "?statementId=" + row.statementId);
+    //根据表格据汇总顶部展示
+    getTotalArr(data) {
+      this.totalWillTonageedValue = data.reduce((pre, item) => {
+        return pre + item.willTonanged;
+      }, 0);
+      this.totalWillTonageedMoney = data.reduce((pre, item) => {
+        return pre + item.willMoneyed;
+      });
+      this.totalActuallyTonageedValue = data.reduce((pre, item) => {
+        return pre + item.actuallyMoney;
+      });
+      this.totalActuallyTonageedMoney = data.reduce((pre, item) => {
+        return pre + item.actuallyMonthMoney;
+      });
     },
-    shipclick() {
-      this.$router.push("/uncomplateDetails");
+    onClick() {},
+    //获取未结算账单数据
+    getNoDetailsStament() {},
+    getDetailsStamented() {},
+    //合并表格数据
+    getSpanArr(data) {
+      //每次调用方法初始化
+      this.spanArr = [];
+      for (var i = 0; i < data.length; i++) {
+        if (i === 0) {
+          this.spanArr.push(1);
+          data[i].group = i;
+          this.pos = 0;
+        } else {
+          // 判断当前元素与上一个元素是否相同
+          if (data[i].saleOrderId === data[i - 1].saleOrderId) {
+            this.spanArr[this.pos] += 1;
+            data[i].group = data[i - 1].group;
+            this.spanArr.push(0);
+          } else {
+            this.spanArr.push(1);
+            this.pos = i;
+            data[i].group = data[i - 1].group + 1;
+          }
+        }
+      }
     },
-    waterclick() {
-      this.$router.push("/uncomplateWater");
+    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+      if (this.mergeList.includes(column.property)) {
+        const _row = this.spanArr[rowIndex];
+        const _col = _row > 0 ? 1 : 0;
+        return {
+          rowspan: _row,
+          colspan: _col
+        };
+      }
     },
-    click() {
-      this.$router.push("/toBeStatement");
+    //导出账单数据
+    exportAllReportToExcel() {
+      console.log(this.$refs.tableRef);
+      const loading = this.$loading({
+        lock: true,
+        text: "正在导出Excel",
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)"
+      });
+      var title = this.tableTitle;
+      let tHeader = [];
+      let filterVal = [];
+      let data = [];
+      if (this.activeName == "first") {
+        data = this.$refs.tableRef.$children;
+      } else {
+        data = this.$refs.tableRef1.$children;
+      }
+      data.forEach(item => {
+        if (item.label != undefined && item.prop != undefined) {
+          if (tHeader.indexOf(item.label) === -1) {
+            tHeader.push(item.label);
+          }
+          if (filterVal.indexOf(item.prop) === -1) {
+            filterVal.push(item.prop);
+          }
+        }
+      });
+      this.downloadLoading = true;
+      require.ensure([], () => {
+        const {
+          export_json_to_excel
+        } = require("@/assets/excel/Export2Excel.js"); //这里必须使用绝对路径,使用@/+存放export2Excel的路径
+        let data = this.tableData.map(v => filterVal.map(j => v[j])); //3.formatJson格式转换
+        export_json_to_excel(tHeader, data, title); // (title)导出的表格名称
+      });
+      loading.close();
     }
   },
+  mounted() {
+    this.getNoDetailsStament();
+    this.getDetailsStamented();
+  }
 };
 </script>
-<style lang='scss' scoped>
-.purchaseOrder {
+<style lang="scss" scoped>
+#detailsStatement {
   .top {
-    padding: 1.25rem 1.875rem;
-    .el-input {
-      width: 250px;
-    }
+    margin-left: 10px;
+    margin-top: 30px;
   }
 }
-</style>
+</style>

+ 3 - 1
src/views/WMS/components/billingOrder/updateBill.vue

@@ -139,6 +139,7 @@ export default {
           this.consigneeCompanyName = res.data.data.consigneeCompanyName;
           this.receiveAddressName = res.data.data.receiveAddressName;
           this.shipperName = res.data.data.shipperName;
+          this.saleOrderId = res.data.data.saleOrderId;
         });
     },
     changeMaterial() {
@@ -235,7 +236,8 @@ export default {
       // }
       let updateNumMap = {
         orderId: this.orderId,
-        mapList: this.materialList
+        mapList: this.materialList,
+        saleOrderId: this.saleOrderId
       };
       this.axios
         .post("/api/v1/oms/updateMaterialMes", updateNumMap)

+ 2 - 3
src/views/queue/components/qmsEnFacotory/queueFStart.vue

@@ -159,14 +159,13 @@
 
             <el-table-column prop="gatepostName" label="进厂门岗">
             </el-table-column>
-
-            <!-- <el-table-column fixed="right" label="操作" width="100">
+            <el-table-column fixed="right" label="操作" width="100">
               <template slot-scope="scope">
                 <el-button type="text" size="mini" @click="updateBill(scope)">
                   修改提货单
                 </el-button>
               </template>
-            </el-table-column> -->
+            </el-table-column>
           </el-table>
         </el-tab-pane>
         <el-tab-pane label="多拼车辆排队链表" name="second">

+ 2 - 0
src/views/queue/components/qmsEnFacotory/updateBill.vue

@@ -148,6 +148,7 @@ export default {
           this.consigneeCompanyName = res.data.data.consigneeCompanyName;
           this.receiveAddressName = res.data.data.receiveAddressName;
           this.shipperName = res.data.data.shipperName;
+          this.saleOrderId = res.data.data.saleOrderId;
         });
     },
     changeMaterial() {
@@ -248,6 +249,7 @@ export default {
       }
       let updateNumMap = {
         orderId: this.orderId,
+        saleOrderId: this.saleOrderId,
         mapList: this.materialList
       };
       this.axios