|
@@ -0,0 +1,1130 @@
|
|
|
+<template>
|
|
|
+ <div class="app-container">
|
|
|
+ <el-form
|
|
|
+ :model="queryParams"
|
|
|
+ ref="queryForm"
|
|
|
+ :inline="true"
|
|
|
+ v-show="showSearch"
|
|
|
+ label-width="68px"
|
|
|
+ >
|
|
|
+ <el-form-item label="客户" prop="fCorpid">
|
|
|
+ <el-select
|
|
|
+ v-model="queryParams.fCorpid"
|
|
|
+ filterable
|
|
|
+ remote
|
|
|
+ style="width: 200px"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ :remote-method="corpsRemoteMethod"
|
|
|
+ placeholder="请选择客户"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(dict, index) in fMblnoOptions"
|
|
|
+ :key="index.fId"
|
|
|
+ :label="dict.fName"
|
|
|
+ :value="dict.fId"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="提单号" prop="fMblno">
|
|
|
+ <el-input
|
|
|
+ v-model="queryParams.fMblno"
|
|
|
+ placeholder="请输入提单号"
|
|
|
+ clearable
|
|
|
+ style="width: 200px"
|
|
|
+ size="small"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="箱号" prop="fCntrno">
|
|
|
+ <el-input
|
|
|
+ v-model="queryParams.fCntrno"
|
|
|
+ placeholder="请输入箱号"
|
|
|
+ clearable
|
|
|
+ style="width: 200px"
|
|
|
+ size="small"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+<!-- <el-form-item label="入库日期" prop="createTime">-->
|
|
|
+<!-- <el-date-picker-->
|
|
|
+<!-- v-model="queryParams.orgStorageDate"-->
|
|
|
+<!-- type="daterange"-->
|
|
|
+<!-- value-format="yyyy-MM-dd"-->
|
|
|
+<!-- clearable-->
|
|
|
+<!-- size="small"-->
|
|
|
+<!-- style="width: 240px"-->
|
|
|
+<!-- range-separator="至"-->
|
|
|
+<!-- start-placeholder="开始日期"-->
|
|
|
+<!-- end-placeholder="结束日期"-->
|
|
|
+<!-- @keyup.enter.native="handleQuery"-->
|
|
|
+<!-- >-->
|
|
|
+<!-- </el-date-picker>-->
|
|
|
+<!-- </el-form-item>-->
|
|
|
+ <el-form-item label="仓库" prop="fwarehouseid">
|
|
|
+ <treeselect
|
|
|
+ style="width: 200px"
|
|
|
+ v-model="queryParams.fWarehouseLocationid"
|
|
|
+ :options="fWarehouseidOption"
|
|
|
+ @select="treeseLect"
|
|
|
+ :show-count="true"
|
|
|
+ size="small"
|
|
|
+ placeholder="请选择归属库区"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="货物名称" prop="fgoodsid">
|
|
|
+ <el-select
|
|
|
+ v-model="queryParams.fGoodsid"
|
|
|
+ filterable
|
|
|
+ remote
|
|
|
+ style="width: 200px"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ :remote-method="goodsRemoteMethod"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ placeholder="请选择货物名称"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(dict, index) in goodsOptions"
|
|
|
+ :key="index.fId"
|
|
|
+ :label="dict.fName"
|
|
|
+ :value="dict.fId"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="贸易方式" prop="fTrademodeid">
|
|
|
+ <el-select
|
|
|
+ v-model="queryParams.fTrademodeid"
|
|
|
+ placeholder="请选择贸易方式"
|
|
|
+ clearable
|
|
|
+ style="width: 200px"
|
|
|
+ size="small"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(dict, index) in fTrademodeidOptions"
|
|
|
+ :key="index.dictValue"
|
|
|
+ :label="dict.dictLabel"
|
|
|
+ :value="dict.dictValue"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="按照箱号">
|
|
|
+ <el-select
|
|
|
+ v-model="queryParams.isCntrno"
|
|
|
+ filterable
|
|
|
+ remote
|
|
|
+ style="width: 200px"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(dict, index) in isCntrnoOptions"
|
|
|
+ :key="index.id"
|
|
|
+ :label="dict.name"
|
|
|
+ :value="dict.id"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="库存箱号" prop="fLocalcntrno">
|
|
|
+ <el-input
|
|
|
+ v-model="queryParams.fLocalcntrno"
|
|
|
+ placeholder="库存箱号"
|
|
|
+ clearable
|
|
|
+ style="width: 200px"
|
|
|
+ size="small"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="属性详情" prop="fMarks">
|
|
|
+ <el-input
|
|
|
+ v-model="queryParams.fMarks"
|
|
|
+ placeholder="属性详情"
|
|
|
+ clearable
|
|
|
+ style="width: 200px"
|
|
|
+ size="small"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button
|
|
|
+ type="cyan"
|
|
|
+ icon="el-icon-search"
|
|
|
+ size="mini"
|
|
|
+ @click="handleQuery"
|
|
|
+ >搜索</el-button>
|
|
|
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <el-row :gutter="10" class="mb8">
|
|
|
+ <div class="tabSetting">
|
|
|
+<!-- <el-col :span="1.5">-->
|
|
|
+<!-- <el-button-->
|
|
|
+<!-- type="warning"-->
|
|
|
+<!-- icon="el-icon-download"-->
|
|
|
+<!-- size="mini"-->
|
|
|
+<!-- @click="handleExport"-->
|
|
|
+<!-- >导出</el-button-->
|
|
|
+<!-- >-->
|
|
|
+<!-- </el-col>-->
|
|
|
+ <right-toolbar
|
|
|
+ :showSearch.sync="showSearch"
|
|
|
+ @queryTable="getList"
|
|
|
+ ></right-toolbar>
|
|
|
+ <div style="margin: 0 12px">
|
|
|
+ <el-button
|
|
|
+ icon="el-icon-setting"
|
|
|
+ size="mini"
|
|
|
+ circle
|
|
|
+ @click="showSetting = !showSetting"
|
|
|
+ ></el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-row>
|
|
|
+ <el-dialog title="自定义列显示" :visible.sync="showSetting" width="700px" append-to-body>
|
|
|
+ <div>配置排序列数据(拖动调整顺序)</div>
|
|
|
+ <div style="margin-left: 17px">
|
|
|
+ <el-checkbox
|
|
|
+ v-model="allCheck"
|
|
|
+ label="全选"
|
|
|
+ @change="allChecked"
|
|
|
+ ></el-checkbox>
|
|
|
+ </div>
|
|
|
+ <div style="padding: 4px; display: flex; justify-content: center">
|
|
|
+ <draggable
|
|
|
+ v-model="setRowList"
|
|
|
+ group="site"
|
|
|
+ animation="300"
|
|
|
+ @start="onStart"
|
|
|
+ @end="onEnd"
|
|
|
+ handle=".indraggable"
|
|
|
+ >
|
|
|
+ <transition-group>
|
|
|
+ <div
|
|
|
+ v-for="item in setRowList"
|
|
|
+ :key="item.surface"
|
|
|
+ class="listStyle"
|
|
|
+ >
|
|
|
+ <div style="width: 500px" class="indraggable">
|
|
|
+ <div class="progress" :style="{ width: item.width + 'px' }">
|
|
|
+ <el-checkbox
|
|
|
+ :label="item.name"
|
|
|
+ v-model="item.checked"
|
|
|
+ :true-label="0"
|
|
|
+ :false-label="1"
|
|
|
+ >{{ item.name }}
|
|
|
+ </el-checkbox>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-input-number
|
|
|
+ v-model.number="item.width"
|
|
|
+ controls-position="right"
|
|
|
+ :min="1"
|
|
|
+ :max="500"
|
|
|
+ size="mini"
|
|
|
+ ></el-input-number>
|
|
|
+ </div>
|
|
|
+ </transition-group>
|
|
|
+ </draggable>
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="showSetting = false">取 消</el-button>
|
|
|
+ <el-button @click="delRow" type="danger">重 置</el-button>
|
|
|
+ <el-button type="primary" @click="save()">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ <el-table
|
|
|
+ v-loading="loading"
|
|
|
+ :data="whgenlegList"
|
|
|
+ show-summary
|
|
|
+ :summary-method="getSum"
|
|
|
+ ref="table"
|
|
|
+ :height="tableHeight"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ type="index"
|
|
|
+ label="行号"
|
|
|
+ align="center"
|
|
|
+ width="100"
|
|
|
+ fixed
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ v-for="(item, index) in getRowList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.name"
|
|
|
+ :width="item.width"
|
|
|
+ :prop="item.label"
|
|
|
+ align="center"
|
|
|
+ :show-overflow-tooltip="true"
|
|
|
+ sortable
|
|
|
+ :fixed="item.fixed"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-if="item.label == 'fMblno'">
|
|
|
+ <el-link :underline="false" type="primary"
|
|
|
+ ><div @click="goDetail(scope.row)">
|
|
|
+ {{ scope.row.fMblno }}
|
|
|
+ </div></el-link
|
|
|
+ >
|
|
|
+ </span>
|
|
|
+ <span v-else>{{ scope.row[item.label] }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+<!-- <el-pagination-->
|
|
|
+<!-- v-show="total > 0"-->
|
|
|
+<!-- :total="total"-->
|
|
|
+<!-- :page.sync="queryParams.pageNum"-->
|
|
|
+<!-- :limit.sync="queryParams.pageSize"-->
|
|
|
+<!-- :page-sizes="[50, 100, 200, 500, 1000]"-->
|
|
|
+<!-- @pagination="getList">-->
|
|
|
+<!-- </el-pagination>-->
|
|
|
+ <pagination
|
|
|
+ v-show="total > 0"
|
|
|
+ :total="total"
|
|
|
+ :page.sync="queryParams.pageNum"
|
|
|
+ :limit.sync="queryParams.pageSize"
|
|
|
+ :page-sizes="[50, 100, 200, 500, 1000]"
|
|
|
+ @pagination="getList"
|
|
|
+ />
|
|
|
+
|
|
|
+ <!-- 添加或修改库存总账对话框 -->
|
|
|
+ <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
|
+ <el-form-item label="原始入库业务编号" prop="fOriginalbillno">
|
|
|
+ <el-input
|
|
|
+ v-model="form.fOriginalbillno"
|
|
|
+ placeholder="请输入原始入库业务编号"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="上期件数" prop="fPreqty">
|
|
|
+ <el-input v-model="form.fPreqty" placeholder="请输入上期件数" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="上期毛重,单位为吨,保留6位小数"
|
|
|
+ prop="fPregrossweight"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ v-model="form.fPregrossweight"
|
|
|
+ placeholder="请输入上期毛重,单位为吨,保留6位小数"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="上期净重," prop="fPrenetweight">
|
|
|
+ <el-input
|
|
|
+ v-model="form.fPrenetweight"
|
|
|
+ placeholder="请输入上期净重,"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="入库件数" prop="fQtyd">
|
|
|
+ <el-input v-model="form.fQtyd" placeholder="请输入入库件数" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="入库尺码" prop="fVolumnd">
|
|
|
+ <el-input v-model="form.fVolumnd" placeholder="请输入入库尺码" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="入库毛重" prop="fGrossweightd">
|
|
|
+ <el-input v-model="form.fGrossweightd" placeholder="请输入入库毛重" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="入库净重" prop="fNetweightd">
|
|
|
+ <el-input v-model="form.fNetweightd" placeholder="请输入入库净重" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="出口尺码" prop="fVolumnc">
|
|
|
+ <el-input v-model="form.fVolumnc" placeholder="请输入出口尺码" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="出库件数" prop="fQtyc">
|
|
|
+ <el-input v-model="form.fQtyc" placeholder="请输入出库件数" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="结余件数" prop="fQtyblc">
|
|
|
+ <el-input v-model="form.fQtyblc" placeholder="请输入结余件数" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="出库毛重,单位为吨" prop="fGrossweightc">
|
|
|
+ <el-input
|
|
|
+ v-model="form.fGrossweightc"
|
|
|
+ placeholder="请输入出库毛重,单位为吨"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="出库净重" prop="fNetweightc">
|
|
|
+ <el-input v-model="form.fNetweightc" placeholder="请输入出库净重" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="结余毛重" prop="fGrossweightblc">
|
|
|
+ <el-input
|
|
|
+ v-model="form.fGrossweightblc"
|
|
|
+ placeholder="请输入结余毛重"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="结余净重" prop="fNetweightblc">
|
|
|
+ <el-input v-model="form.fNetweightblc" placeholder="请输入结余净重" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="箱号" prop="fCntrno">
|
|
|
+ <el-input v-model="form.fCntrno" placeholder="请输入箱号" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="状态,默认 T ,正常T 停用F 下拉选择">
|
|
|
+ <el-radio-group v-model="form.fStatus">
|
|
|
+ <el-radio label="1">请选择字典生成</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="删除状态" prop="delFlag">
|
|
|
+ <el-input v-model="form.delFlag" placeholder="请输入删除状态" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="唛头" prop="fMarks">
|
|
|
+ <el-input v-model="form.fMarks" placeholder="请输入唛头" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="备注" prop="remark">
|
|
|
+ <el-input
|
|
|
+ v-model="form.remark"
|
|
|
+ type="textarea"
|
|
|
+ placeholder="请输入内容"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
+ <el-button @click="cancel">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { request } from '../../request/request';
|
|
|
+
|
|
|
+import Treeselect from "@riophae/vue-treeselect";
|
|
|
+import Cookies from "js-cookie";
|
|
|
+import draggable from "vuedraggable";
|
|
|
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: "Whgenleg",
|
|
|
+ components: {
|
|
|
+ Treeselect,
|
|
|
+ draggable,
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ tableHeight: '0',
|
|
|
+ //仓库树状下拉
|
|
|
+ fWarehouseidOption: [],
|
|
|
+ // 客户(客户数据)
|
|
|
+ fMblnoOptions: [],
|
|
|
+ // 贸易方式(数据字典),对应t_trademodels 字典
|
|
|
+ fTrademodeidOptions: [],
|
|
|
+ // 货物
|
|
|
+ goodsOptions: [],
|
|
|
+ // 仓库(仓库数据)
|
|
|
+ warehouseOptions: [],
|
|
|
+ kqhouseOptions: [],
|
|
|
+ // 遮罩层
|
|
|
+ loading: true,
|
|
|
+ // 显示搜索条件
|
|
|
+ showSearch: true,
|
|
|
+ // 总条数
|
|
|
+ total: 0,
|
|
|
+ // 库存总账表格数据
|
|
|
+ whgenlegList: [],
|
|
|
+ // 弹出层标题
|
|
|
+ title: "",
|
|
|
+ // 是否显示弹出层
|
|
|
+ open: false,
|
|
|
+ // 查询参数
|
|
|
+ queryParams: {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 50,
|
|
|
+ fOriginalbillno: null,
|
|
|
+ isCntrno: 1,
|
|
|
+ fPreqty: null,
|
|
|
+ fLocalcntrno: null,
|
|
|
+ fPregrossweight: null,
|
|
|
+ fPrenetweight: null,
|
|
|
+ fQtyd: null,
|
|
|
+ fVolumnd: null,
|
|
|
+ fGrossweightd: null,
|
|
|
+ fNetweightd: null,
|
|
|
+ fVolumnc: null,
|
|
|
+ fQtyc: null,
|
|
|
+ fQtyblc: null,
|
|
|
+ fGrossweightc: null,
|
|
|
+ fNetweightc: null,
|
|
|
+ fGrossweightblc: null,
|
|
|
+ fNetweightblc: null,
|
|
|
+ fCntrno: null,
|
|
|
+ fStatus: null,
|
|
|
+ fMarks: null,
|
|
|
+ orgStorageDate: null,
|
|
|
+ fBusinessType: null,
|
|
|
+ fBusinessTypes: null,
|
|
|
+ },
|
|
|
+ // 表单参数
|
|
|
+ form: {},
|
|
|
+ // 表单校验
|
|
|
+ rules: {
|
|
|
+ fMarks: [{ required: true, message: "唛头不能为空", trigger: "blur" }],
|
|
|
+ },
|
|
|
+ showSetting: false,
|
|
|
+ drag: false,
|
|
|
+ setRowList: [],
|
|
|
+ getRowList: [],
|
|
|
+ tableDate: [
|
|
|
+ {
|
|
|
+ surface: "0",
|
|
|
+ label: "fMblno",
|
|
|
+ name: "提单号",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ fixed: "left",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "1",
|
|
|
+ label: "fCorpid",
|
|
|
+ name: "客户",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ fixed: "left",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "2",
|
|
|
+ label: "fOriginalbilldate",
|
|
|
+ name: "入库日期",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ fixed: "left",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "3",
|
|
|
+ label: "fChargedate",
|
|
|
+ name: "仓储费日期",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ fixed: "left",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "4",
|
|
|
+ label: "fBusinessTypes",
|
|
|
+ name: "货物属性",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "5",
|
|
|
+ label: "fMarks",
|
|
|
+ name: "属性详情",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "6",
|
|
|
+ label: "fGoodsids",
|
|
|
+ name: "品名",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "8",
|
|
|
+ label: "fWarehouseids",
|
|
|
+ name: "仓库",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "9",
|
|
|
+ label: "fTrademodeid",
|
|
|
+ name: "贸易方式",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "10",
|
|
|
+ label: "fQtyD",
|
|
|
+ name: "入库件数",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "11",
|
|
|
+ label: "fGrossweightD",
|
|
|
+ name: "入库毛重(kg)",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "12",
|
|
|
+ label: "fNetweightD",
|
|
|
+ name: "入库净重(kg)",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "13",
|
|
|
+ label: "fQtyC",
|
|
|
+ name: "出库件数",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "14",
|
|
|
+ label: "fGrossweightC",
|
|
|
+ name: "出库毛重(kg)",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "15",
|
|
|
+ label: "fNetweightC",
|
|
|
+ name: "出库净重(kg)",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "16",
|
|
|
+ label: "fQtyblc",
|
|
|
+ name: "结余件数",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "17",
|
|
|
+ label: "fGrossweightblc",
|
|
|
+ name: "结余毛重(kg)",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "18",
|
|
|
+ label: "fNetweightblc",
|
|
|
+ name: "结余净重(kg)",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "19",
|
|
|
+ label: "fCntrno",
|
|
|
+ name: "箱号",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "20",
|
|
|
+ label: "remark",
|
|
|
+ name: "备注",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ surface: "21",
|
|
|
+ label: "fLocalcntrno",
|
|
|
+ name: "库存箱号",
|
|
|
+ checked: 0,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ allCheck: false,
|
|
|
+ isCntrnoOptions: [
|
|
|
+ {
|
|
|
+ id: 0,
|
|
|
+ name: "是",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 1,
|
|
|
+ name: "否",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ let date = new Date();
|
|
|
+ let year = parseInt(date.getFullYear())
|
|
|
+ let month = parseInt(date.getMonth() + 1)
|
|
|
+ let currentMonth = date.getMonth()
|
|
|
+ let nextMonth = ++currentMonth
|
|
|
+ let nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1) // 下个月的第一天
|
|
|
+ let oneDay = 1000*60*60*24
|
|
|
+ let lastTime = new Date(nextMonthFirstDay - oneDay) // 下个月的第一天减去一天,就是上个月的最后一天
|
|
|
+ let day = lastTime.getDate()
|
|
|
+ if (day < 10) {
|
|
|
+ day = '0' + day
|
|
|
+ }
|
|
|
+ // this.queryParams.orgStorageDate = [year + '-' + month + '-' + '01 00:00:00', year + '-' + month + '-' + day + ' 23:59:59']
|
|
|
+
|
|
|
+ this.setRowList = this.tableDate;
|
|
|
+ this.getRowList = this.tableDate;
|
|
|
+ this.getList();
|
|
|
+ request({
|
|
|
+ url: '/system/dict/data/type/' + 'data_trademodes',
|
|
|
+ method: 'get'
|
|
|
+ }).then((response) => {
|
|
|
+ this.fTrademodeidOptions = response.data;
|
|
|
+ });
|
|
|
+ request({
|
|
|
+ url: '/basicdata/warehouse/treeselect',
|
|
|
+ method: 'get'
|
|
|
+ }).then((response) => {
|
|
|
+ this.fWarehouseidOption = response.data.data;
|
|
|
+ });
|
|
|
+ this.getRow();
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ // 根据浏览器高度设置初始高度
|
|
|
+ this.tableHeight = window.innerHeight - this.$refs.table.$el.offsetTop - 160
|
|
|
+ // 监听浏览器高度变化,改变表格高度
|
|
|
+ window.onresize = () => {
|
|
|
+ this.tableHeight = window.innerHeight - this.$refs.table.$el.offsetTop - 70
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ //列设置全选
|
|
|
+ allChecked() {
|
|
|
+ if (this.allCheck == true) {
|
|
|
+ this.setRowList.map((e) => {
|
|
|
+ return (e.checked = 0);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.setRowList.map((e) => {
|
|
|
+ return (e.checked = 1);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //查询列数据
|
|
|
+ getRow() {
|
|
|
+ let that = this;
|
|
|
+ this.data = {
|
|
|
+ tableName: "库存总账",
|
|
|
+ userId: Cookies.get("userName"),
|
|
|
+ };
|
|
|
+ console.log(Cookies.get("userName"));
|
|
|
+ request({
|
|
|
+ url: '/system/set/select',
|
|
|
+ method: 'get',
|
|
|
+ params: this.data
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.data.length != 0) {
|
|
|
+ this.getRowList = res.data.data.filter((e) => e.checked == 0);
|
|
|
+ this.setRowList = res.data.data;
|
|
|
+ this.setRowList = this.setRowList.reduce((res, item) => {
|
|
|
+ res.push({
|
|
|
+ surface: item.surface,
|
|
|
+ label: item.label,
|
|
|
+ name: item.name,
|
|
|
+ checked: item.checked,
|
|
|
+ width: item.width,
|
|
|
+ fixed: item.fixed,
|
|
|
+ });
|
|
|
+ return res;
|
|
|
+ }, []);
|
|
|
+ }
|
|
|
+ console.log(this.getRowList);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ delRow() {
|
|
|
+ this.data = {
|
|
|
+ tableName: "库存总账",
|
|
|
+ userId: Cookies.get("userName"),
|
|
|
+ };
|
|
|
+ request({
|
|
|
+ url: '/system/set/resetModule',
|
|
|
+ method: 'post',
|
|
|
+ data: this.data
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ this.showSetting = false;
|
|
|
+ this.setRowList = this.tableDate;
|
|
|
+ this.getRowList = this.tableDate;
|
|
|
+ // console.log(this.getRowList);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //保存列设置
|
|
|
+ save() {
|
|
|
+ this.showSetting = false;
|
|
|
+ this.data = {
|
|
|
+ tableName: "库存总账",
|
|
|
+ userId: Cookies.get("userName"),
|
|
|
+ sysTableSetList: this.setRowList,
|
|
|
+ };
|
|
|
+ request({
|
|
|
+ url: '/system/set',
|
|
|
+ method: 'post',
|
|
|
+ data: this.data
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ this.showSetting = false;
|
|
|
+ this.getRowList = this.setRowList.filter((e) => e.checked == 0);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //开始拖拽事件
|
|
|
+ onStart() {
|
|
|
+ this.drag = true;
|
|
|
+ },
|
|
|
+ //拖拽结束事件
|
|
|
+ onEnd() {
|
|
|
+ this.drag = false;
|
|
|
+ },
|
|
|
+ //合计
|
|
|
+ getSum(param) {
|
|
|
+ const { columns, data } = param;
|
|
|
+ const sums = [];
|
|
|
+ var values = [];
|
|
|
+ columns.forEach((column, index) => {
|
|
|
+ if (index === 0) {
|
|
|
+ sums[index] = "总计";
|
|
|
+ }
|
|
|
+ if (column.property === "fGrossweightD") {
|
|
|
+ values = data.map((item) => Number(item["fGrossweightD"]));
|
|
|
+ }
|
|
|
+ if (column.property === "fNetweightD") {
|
|
|
+ values = data.map((item) => Number(item["fNetweightD"]));
|
|
|
+ }
|
|
|
+ if (column.property === "fQtyD") {
|
|
|
+ values = data.map((item) => Number(item["fQtyD"]));
|
|
|
+ }
|
|
|
+ if (column.property === "fGrossweightC") {
|
|
|
+ values = data.map((item) => Number(item["fGrossweightC"]));
|
|
|
+ }
|
|
|
+ if (column.property === "fNetweightC") {
|
|
|
+ values = data.map((item) => Number(item["fNetweightC"]));
|
|
|
+ }
|
|
|
+ if (column.property === "fQtyC") {
|
|
|
+ values = data.map((item) => Number(item["fQtyC"]));
|
|
|
+ }
|
|
|
+ if (column.property === "fQtyblc") {
|
|
|
+ values = data.map((item) => Number(item["fQtyblc"]));
|
|
|
+ }
|
|
|
+ if (column.property === "fGrossweightblc") {
|
|
|
+ values = data.map((item) => Number(item["fGrossweightblc"]));
|
|
|
+ }
|
|
|
+ if (column.property === "fNetweightblc") {
|
|
|
+ values = data.map((item) => Number(item["fNetweightblc"]));
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ column.property === "fGrossweightD" ||
|
|
|
+ column.property === "fNetweightD" ||
|
|
|
+ column.property === "fQtyD" ||
|
|
|
+ column.property === "fGrossweightC" ||
|
|
|
+ column.property === "fNetweightC" ||
|
|
|
+ column.property === "fQtyC" ||
|
|
|
+ column.property === "fQtyblc" ||
|
|
|
+ column.property === "fGrossweightblc" ||
|
|
|
+ column.property === "fNetweightblc"
|
|
|
+ ) {
|
|
|
+ const values = data.map((item) => Number(item[column.property]));
|
|
|
+ if (!values.every((value) => isNaN(value))) {
|
|
|
+ sums[index] = values.reduce((prev, curr) => {
|
|
|
+ const value = Number(curr);
|
|
|
+ if (!isNaN(value)) {
|
|
|
+ return prev + curr;
|
|
|
+ } else {
|
|
|
+ return prev;
|
|
|
+ }
|
|
|
+ }, 0);
|
|
|
+ if (column.property === "fGrossweightD") {
|
|
|
+ sums[index] = (sums[index] / 1000).toFixed(2) + "吨";
|
|
|
+ }
|
|
|
+ if (column.property === "fNetweightD") {
|
|
|
+ sums[index] = (sums[index] / 1000).toFixed(2) + "吨";
|
|
|
+ }
|
|
|
+ if (column.property === "fQtyD") {
|
|
|
+ sums[index] = sums[index].toFixed(2);
|
|
|
+ }
|
|
|
+ if (column.property === "fGrossweightC") {
|
|
|
+ sums[index] = (sums[index] / 1000).toFixed(2) + "吨";
|
|
|
+ }
|
|
|
+ if (column.property === "fNetweightC") {
|
|
|
+ sums[index] = (sums[index] / 1000).toFixed(2) + "吨";
|
|
|
+ }
|
|
|
+ if (column.property === "fQtyC") {
|
|
|
+ sums[index] = sums[index].toFixed(2);
|
|
|
+ }
|
|
|
+ if (column.property === "fGrossweightblc") {
|
|
|
+ sums[index] = (sums[index] / 1000).toFixed(2) + "吨";
|
|
|
+ }
|
|
|
+ if (column.property === "fNetweightblc") {
|
|
|
+ sums[index] = (sums[index] / 1000).toFixed(2) + "吨";
|
|
|
+ }
|
|
|
+ if (column.property === "fQtyblc") {
|
|
|
+ sums[index] = sums[index].toFixed(2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return sums;
|
|
|
+ },
|
|
|
+ treeseLect(tree) {
|
|
|
+ this.queryParams.fWarehouseLocationid = tree.id;
|
|
|
+ },
|
|
|
+ getTreeselect() {
|
|
|
+ request({
|
|
|
+ url: '/basicdata/warehouse/treeselect',
|
|
|
+ method: 'get'
|
|
|
+ }).then((response) => {
|
|
|
+ this.warehousesOptions = response.data.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 贸易方式(数据字典),对���t_trademodels 字典翻译
|
|
|
+ fTrademodeidFormat(row, column) {
|
|
|
+ return this.selectDictLabel(this.fTrademodeidOptions, row.fTrademodeid);
|
|
|
+ },
|
|
|
+ /* 远程模糊查询仓库 */
|
|
|
+ warehouseRemoteMethod(name) {
|
|
|
+ if (name == null || name === "") {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ let queryParams = { pageNum: 1, pageSize: 10, fName: name };
|
|
|
+ request({
|
|
|
+ url: '/basicdata/area/list',
|
|
|
+ method: 'get',
|
|
|
+ params: queryParams
|
|
|
+ }).then((response) => {
|
|
|
+ this.warehouseOptions = response.data.rows;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /* 远程模糊查询库区 */
|
|
|
+ kqhouseRemoteMethod(name) {
|
|
|
+ if (name == null || name === "") {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (!this.queryParams.fWarehouseid) {
|
|
|
+ this.$message.error("请输入仓库!");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ let queryParams = {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ fWarehouseid: this.queryParams.fWarehouseid,
|
|
|
+ fName: name,
|
|
|
+ };
|
|
|
+ request({
|
|
|
+ url: '/basicdata/area/list',
|
|
|
+ method: 'get',
|
|
|
+ params: queryParams
|
|
|
+ }).then((response) => {
|
|
|
+ this.kqhouseOptions = response.data.rows;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /* 远程模糊查询商品 */
|
|
|
+ goodsRemoteMethod(name) {
|
|
|
+ if (name == null || name === "") {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ let queryParams = { pageNum: 1, pageSize: 10, fName: name };
|
|
|
+ request({
|
|
|
+ url: '/basicdata/goods/list',
|
|
|
+ method: 'get',
|
|
|
+ params: queryParams
|
|
|
+ }).then((response) => {
|
|
|
+ this.goodsOptions = response.data.rows;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /* 远程模糊查询用户 */
|
|
|
+ corpsRemoteMethod(name) {
|
|
|
+ if (name == null || name === "") {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ let queryParams = { pageNum: 1, pageSize: 10, fName: name };
|
|
|
+ request({
|
|
|
+ // url: '/basicdata/corps/selectCustomerDriverList',
|
|
|
+ url: '/basicdata/corps/list',
|
|
|
+ method: 'get',
|
|
|
+ params: queryParams
|
|
|
+ }).then((response) => {
|
|
|
+ this.fMblnoOptions = response.rows;
|
|
|
+ this.KHblnoOptions = response.rows;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /** 查询库存总账列表 */
|
|
|
+ getList() {
|
|
|
+ this.loading = true;
|
|
|
+ request({
|
|
|
+ url: '/warehouseBusiness/whgenleg/whgenlegList',
|
|
|
+ method: 'get',
|
|
|
+ params: this.queryParams
|
|
|
+ }).then((response) => {
|
|
|
+ console.log(response);
|
|
|
+ response.data.rows.map((e) => {
|
|
|
+ e.fCntrno=this.queryParams.isCntrno == 1 ? null:e.fCntrno
|
|
|
+ })
|
|
|
+ this.whgenlegList = response.data.rows;
|
|
|
+ this.total = response.data.total;
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 取消按钮
|
|
|
+ cancel() {
|
|
|
+ this.open = false;
|
|
|
+ this.reset();
|
|
|
+ },
|
|
|
+ // 表单重置
|
|
|
+ reset() {
|
|
|
+ this.form = {
|
|
|
+ fAccyear: null,
|
|
|
+ fId: null,
|
|
|
+ fAccmonth: null,
|
|
|
+ fCorpid: null,
|
|
|
+ fMblno: null,
|
|
|
+ fOriginalbillno: null,
|
|
|
+ fWarehouseLocationid: null,
|
|
|
+ fGoodsid: null,
|
|
|
+ fTrademodeid: null,
|
|
|
+ fPreqty: null,
|
|
|
+ fPregrossweight: null,
|
|
|
+ fPrenetweight: null,
|
|
|
+ fQtyd: null,
|
|
|
+ fVolumnd: null,
|
|
|
+ fGrossweightd: null,
|
|
|
+ fNetweightd: null,
|
|
|
+ fVolumnc: null,
|
|
|
+ fQtyc: null,
|
|
|
+ fQtyblc: null,
|
|
|
+ fGrossweightc: null,
|
|
|
+ fNetweightc: null,
|
|
|
+ fGrossweightblc: null,
|
|
|
+ fNetweightblc: null,
|
|
|
+ fCntrno: null,
|
|
|
+ fStatus: "0",
|
|
|
+ delFlag: null,
|
|
|
+ createBy: null,
|
|
|
+ fMarks: null,
|
|
|
+ createTime: null,
|
|
|
+ updateBy: null,
|
|
|
+ updateTime: null,
|
|
|
+ remark: null,
|
|
|
+ };
|
|
|
+ this.resetForm("form");
|
|
|
+ },
|
|
|
+ /** 搜索按钮操作 */
|
|
|
+ handleQuery() {
|
|
|
+ this.queryParams.pageNum = 1;
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
+ /** 重置按钮操作 */
|
|
|
+ resetQuery() {
|
|
|
+ this.queryParams = {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ fOriginalbillno: null,
|
|
|
+ fPreqty: null,
|
|
|
+ fPregrossweight: null,
|
|
|
+ fPrenetweight: null,
|
|
|
+ fQtyd: null,
|
|
|
+ fVolumnd: null,
|
|
|
+ fGrossweightd: null,
|
|
|
+ fNetweightd: null,
|
|
|
+ fVolumnc: null,
|
|
|
+ fQtyc: null,
|
|
|
+ fQtyblc: null,
|
|
|
+ fGrossweightc: null,
|
|
|
+ fNetweightc: null,
|
|
|
+ fGrossweightblc: null,
|
|
|
+ fNetweightblc: null,
|
|
|
+ fCntrno: null,
|
|
|
+ fStatus: null,
|
|
|
+ fMarks: null,
|
|
|
+ fBusinessType: null,
|
|
|
+ fBusinessTypes: null,
|
|
|
+ fBilltype: null,
|
|
|
+ fwarehouseid: null,
|
|
|
+ };
|
|
|
+ // this.resetForm("queryForm");
|
|
|
+ this.handleQuery();
|
|
|
+ },
|
|
|
+ /** 新增按钮操作 */
|
|
|
+ handleAdd() {
|
|
|
+ this.reset();
|
|
|
+ this.open = true;
|
|
|
+ this.title = "添加库存总账";
|
|
|
+ },
|
|
|
+ /** 提交按钮 */
|
|
|
+ submitForm() {
|
|
|
+ this.$refs["form"].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ if (this.form.fAccyear != null) {
|
|
|
+ request({
|
|
|
+ url: '/warehouseBusiness/whgenleg',
|
|
|
+ method: 'put',
|
|
|
+ data: this.form
|
|
|
+ }).then((response) => {
|
|
|
+ this.$message({
|
|
|
+ message: '修改成功',
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
+ this.open = false;
|
|
|
+ this.getList();
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ request({
|
|
|
+ url: '/warehouseBusiness/whgenleg',
|
|
|
+ method: 'post',
|
|
|
+ data: this.form
|
|
|
+ }).then((response) => {
|
|
|
+ this.$message({
|
|
|
+ message: '新增成功',
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
+ this.open = false;
|
|
|
+ this.getList();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /** 导出按钮操作 */
|
|
|
+ handleExport() {
|
|
|
+ const queryParams = this.queryParams;
|
|
|
+ this.$confirm("是否确认导出所有库存总账数据项?", "警告", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ }).then(function () {
|
|
|
+ return request({
|
|
|
+ url: '/warehouseBusiness/whgenleg/export',
|
|
|
+ method: 'get',
|
|
|
+ params: queryParams
|
|
|
+ });
|
|
|
+ }).then((response) => {
|
|
|
+ window.location.href("/common/download?fileName=" + response.data.msg + "&delete=" + true);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ goDetail(row) {
|
|
|
+ this.$router.push({
|
|
|
+ path: "/analysis/stockDetail",
|
|
|
+ query: {
|
|
|
+ fWarehouseLocationid: row.fWarehouseLocationid,
|
|
|
+ fTrademodeids: row.fTrademodeids,
|
|
|
+ fBusinessType: row.fBusinessType,
|
|
|
+ fGoodsid: row.fGoodsid,
|
|
|
+ fCorpIds: row.fCorpIds,
|
|
|
+ fMarks: row.fMarks,
|
|
|
+ fMblno: row.fMblno,
|
|
|
+ },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style lang="scss">
|
|
|
+.el-table {
|
|
|
+ .el-table__body-wrapper {
|
|
|
+ z-index: 2;
|
|
|
+ }
|
|
|
+}
|
|
|
+.tabSetting {
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-end;
|
|
|
+}
|
|
|
+.listStyle {
|
|
|
+ display: flex;
|
|
|
+ border-top: 1px solid #dcdfe6;
|
|
|
+ border-left: 1px solid #dcdfe6;
|
|
|
+ border-right: 1px solid #dcdfe6;
|
|
|
+}
|
|
|
+.listStyle:last-child {
|
|
|
+ border-bottom: 1px solid #dcdfe6;
|
|
|
+}
|
|
|
+.progress {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ padding: 2px;
|
|
|
+ background-color: rgba(0, 0, 0, 0.05);
|
|
|
+ height: 100%;
|
|
|
+}
|
|
|
+</style>
|