123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242 |
- <template>
- <el-dialog
- v-dialog-drag
- title="快速出库"
- :visible.sync="visible"
- width="85%"
- :append-to-body="true"
- :close-on-click-modal="false"
- :before-close="closeDialog"
- >
- <el-form :model="form" :rules="rules" label-width="80px" ref="form">
- <el-row>
- <el-col :xs="12" :sm="6">
- <el-form-item label="提单号" prop="fMblno">
- <el-input
- v-model="form.fMblno"
- placeholder="请输入提单号"
- clearable
- @change="changeMblno"
- style="width: 100%"
- />
- </el-form-item>
- </el-col>
- <el-col :xs="12" :sm="6">
- <el-form-item label="客户名称" prop="fCorpid">
- <el-select
- v-model="form.fCorpid"
- clearable
- filterable
- placeholder="请输入关键词"
- @change="changeCorp"
- style="width: 100%"
- :disabled="detailList.length > 0"
- >
- <el-option
- v-for="(item, index) in fMblnoOptions"
- :key="index.fId"
- :label="item.fName"
- :value="item.fId"
- ></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :xs="12" :sm="6">
- <el-form-item label="出库日期" prop="fBsdate">
- <el-date-picker
- type="date"
- v-model="form.fBsdate"
- value-format="timestamp"
- format="yyyy-MM-dd"
- placeholder="请选择计划日期"
- style="width: 100%"
- ></el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :xs="12" :sm="6">
- <el-form-item label="出库时间" prop="fBstime">
- <el-time-picker
- v-model="form.fBstime"
- :picker-options="{
- selectableRange: '00:00:00 - 23:59:59',
- }"
- :clearable="true"
- value-format="timestamp"
- placeholder="任意时间点"
- style="width: 100%"
- ></el-time-picker>
- </el-form-item>
- </el-col>
- <el-col :xs="12" :sm="6">
- <el-form-item label="仓库" prop="fWarehouseid">
- <el-select
- v-model="form.fWarehouseid"
- filterable
- placeholder="请选择"
- @change="changefWarehouseid"
- style="width: 100%"
- :disabled="detailList.length > 0"
- >
- <el-option
- v-for="(item, index) in warehouseOptions"
- :key="index.fId"
- :label="item.fName"
- :value="item.fId"
- ></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :xs="12" :sm="6">
- <el-form-item label="品名" prop="fGoodsid">
- <el-select
- filterable
- v-model="form.fGoodsid"
- placeholder="请选择品名"
- @change="goodsChange"
- style="width: 100%"
- clearable
- >
- <el-option
- v-for="(item, index) in goodsOptions"
- :key="index.fId"
- :label="item.fName"
- :value="item.fId"
- ></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :xs="12" :sm="6">
- <el-form-item label="品名属性" prop="fGoodsType">
- <el-select
- filterable
- v-model="form.fGoodsType"
- placeholder="请选择商品属性"
- style="width: 100%"
- >
- <el-option
- v-for="(item, index) in fStorageTypeOptions"
- :key="index.dictValue"
- :label="item.dictLabel"
- :value="item.dictValue"
- />
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :xs="12" :sm="6">
- <el-form-item label="属性内容">
- <el-input
- v-model="form.fMarks"
- placeholder="请填写属性描述"
- clearable
- style="width: 100%"
- />
- </el-form-item>
- </el-col>
- <el-col :xs="12" :sm="6">
- <el-form-item label="车号">
- <el-input
- placeholder="请输入车号"
- v-model="form.fTruckno"
- style="width: 100%"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :xs="12" :sm="6">
- <el-form-item label="司机">
- <el-input
- placeholder="请输入司机姓名"
- v-model="form.fDriverName"
- style="width: 100%"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :xs="12" :sm="6">
- <el-form-item label="电话">
- <el-input
- placeholder="请输入司机电话"
- v-model="form.fDriverTel"
- style="width: 100%"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :xs="12" :sm="6">
- <el-form-item label="证件号">
- <el-input
- placeholder="请输入证件号"
- v-model="form.fDriverIdCar"
- style="width: 100%"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <div style="margin: 10px 0">
- <!-- 列设置-->
- <el-dialog title="提示" :visible.sync="showSetting" width="700px" v-dialogDrag append-to-body>
- <template slot="title">
- <div class="avue-crud__dialog__header">
- <span class="el-dialog__title">
- <span
- style="display:inline-block;width:3px;height:20px;margin-right:5px; float: left;margin-top:2px"></span>
- </span>
- </div>
- </template>
- <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>
- <div style="margin: 10px 10px">
- <el-button
- size="small"
- style="float:left;"
- type="primary"
- @click="addList"
- :disabled="disabled"
- >
- 检索
- </el-button>
- <el-button
- size="small"
- style="float:left;"
- type="danger"
- :disabled="selection.length == 0"
- @click="batchDelete"
- >
- 批量删除
- </el-button>
- <el-button
- icon="el-icon-setting"
- size="mini"
- circle
- @click="showSetting = !showSetting"
- style="float: right"
- ></el-button>
- </div>
- <el-table
- :data="detailList"
- tooltip-effect="dark"
- stripe
- ref="detailTable"
- @selection-change="handleSelection"
- show-summary
- :summary-method="getSummaries"
- >
- <el-table-column type="selection" width="50" align="center" fixed/>
- <el-table-column
- label="序号"
- type="index"
- width="50"
- fixed
- align="center"
- />
- <el-table-column
- v-for="(item, index) in getRowList"
- :key="index"
- :label="item.name"
- :width="item.width"
- :prop="item.label"
- align="center"
- :fixed="item.fixed"
- :show-overflow-tooltip="true"
- sortable
- >
- <template slot-scope="scope">
- <span v-if="item.label == 'fGoodsid'">
- {{scope.row.fGoodsids}}
- </span>
- <!-- <span v-else-if="item.label == 'fCntrno'">-->
- <!-- <el-input-->
- <!-- v-model="scope.row.fCntrno"-->
- <!-- placeholder="请输入箱号"-->
- <!-- clearable-->
- <!-- ></el-input>-->
- <!-- </span>-->
- <span v-else-if="item.label == 'fSealno'">
- <el-input
- v-model="scope.row.fSealno"
- placeholder="请输入封号"
- clearable
- ></el-input>
- </span>
- <span v-else-if="item.label == 'fBusinessType'">
- <el-select
- v-model="scope.row.fBusinessType"
- filterable
- disabled
- placeholder="请选择商品属性"
- >
- <el-option
- v-for="(item, index) in fStorageTypeOptions"
- :key="index.dictValue"
- :label="item.dictLabel"
- :value="item.dictValue"
- />
- </el-select>
- </span>
- <span v-else-if="item.label == 'fQty'">
- <el-input
- v-input-limit="0"
- @change="qtyChange(scope.row)"
- v-model="scope.row.fQty"
- placeholder="出库件数"
- />
- </span>
- <span v-else-if="item.label == 'fGrossweight'">
- <el-input
- v-input-limit="2"
- v-model="scope.row.fGrossweight"
- @change="changeOutStock(scope.row)"
- placeholder="出库毛重"
- />
- </span>
- <span v-else-if="item.label == 'fNetweight'">
- <el-input
- v-input-limit="2"
- v-model="scope.row.fNetweight"
- @change="changeOutStock(scope.row)"
- placeholder="出库净重"
- />
- </span>
- <span v-else-if="item.label == 'remark'">
- <el-input
- v-model="scope.row.remark"
- placeholder="备注"
- />
- </span>
- <span v-else>{{ scope.row[item.label] }}</span>
- </template>
- </el-table-column>
- <el-table-column
- header-align="center"
- align="center"
- label="操作"
- width="160px"
- fixed="right"
- >
- <template slot-scope="scope">
- <el-button
- type="text"
- @click.native.prevent="wDeleteRow(scope.$index, detailList)"
- size="small"
- >移除
- </el-button
- >
- </template>
- </el-table-column>
- </el-table>
- </div>
- <el-row>
- <el-col :span="24">
- <el-form-item label="备注">
- <el-input
- type="textarea"
- :autosize="{ minRows: 2, maxRows: 4}"
- placeholder="请输入备注"
- v-model="form.remark"
- style="width: 100%"
- >
- </el-input>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <!-- 打印-->
- <el-dialog
- append-to-body
- :close-on-click-modal="false"
- :modal="false"
- :visible.sync="printVisible"
- >
- <div id="print_ckd">
- <div style="text-align: center;font-size: 24px;margin-bottom: 5px;">{{ company }}出库单</div>
- <div class="print_table" style="display: flex">
- <table border="0" cellspacing="0" cellpadding="0" style="width: 100%; line-height: 30px">
- <tr>
- <td>公司名称</td>
- <td colspan="3" v-for="item in fMblnoOptions" v-if="item.fId == form.fCorpid">{{ item.fName }}</td>
- <td>出库日期</td>
- <td colspan="3">{{ form.fBsdate | fBsdateFormat }}</td>
- </tr>
- <tr>
- <td style="width: 15%">货物名称</td>
- <td>提单号</td>
- <td>箱号</td>
- <td>件数</td>
- <td>计量单位(吨)</td>
- <td>封号</td>
- <td>库位</td>
- <td>备注</td>
- </tr>
- <tr v-for="(item, index) in detailList" :key="index">
- <td v-for="row in goodsOptions" v-if="row.fId == item.fGoodsid">{{ row.fName }}</td>
- <td>{{ item.fMblno }}</td>
- <td>{{ item.fCntrno }}</td>
- <td>{{ item.fQty }}</td>
- <td>{{ (item.fGrossweight / 1000).toFixed(4) }}</td>
- <td>{{ item.fSealno }}</td>
- <td>{{ item.fWarehouseInformation }}</td>
- <td>{{ item.remark }}</td>
- </tr>
- <tr>
- <td>车号</td>
- <td colspan="2">{{ form.fTruckno }}</td>
- <td colspan="2">身份证号</td>
- <td colspan="3">{{ form.fDriverIdCar }}</td>
- </tr>
- <tr>
- <td>地址</td>
- <td colspan="7">{{ stockaddr }}</td>
- </tr>
- <tr>
- <td colspan="8">
- 雨/雪天装货司机自愿装车,出现货物水湿与仓库无关!数量准确无误,货物包装完好!
- </td>
- </tr>
- </table>
- </div>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button
- type="primary"
- @click="
- addprint('ckd');
- printVisible = false;
- "
- >打印
- </el-button>
- <el-button @click="printVisible = false">取消</el-button>
- </span>
- </el-dialog>
- <span slot="footer" class="dialog-footer">
- <el-button type="warning" @click="openPrint" :disabled="detailList.length == 0">打印</el-button>
- <el-button type="primary" @click="handleConfirm" :disabled="detailList.length == 0">确认出库</el-button>
- <el-button @click="closeDialog">取消</el-button>
- </span>
- </el-dialog>
- </template>
- <script>
- import Cookies from "js-cookie";
- import draggable from "vuedraggable";
- import {listCorps} from "@/api/basicdata/corps";
- import {
- treeselect,
- listWarehousesss,
- } from "@/api/basicdata/warehouse";
- import {listGoods} from "@/api/basicdata/goods";
- import {queryUserVal} from "@/api/system/user";
- import {listWhgenleg} from "@/api/reportManagement/whgenleg";
- import {addSet, resetModule, select} from '@/api/system/set';
- import {changeSelect,fastOutStock} from "@/api/warehouseBusiness/fastOutStock";
- import print from "print-js";
- export default {
- name: "fastOutStock",
- props: {},
- components: {
- draggable,
- },
- data() {
- return {
- disabled: false,
- visible: false,
- printVisible: false,
- company: '',
- form: {},
- detailList: [],
- fMblnoOptions: [],
- // 仓库
- warehouseOptions: [],
- // 品名
- goodsOptions: [],
- // 品名属性
- fStorageTypeOptions: [],
- fWarehouseidOptions: [],
- rules: {
- fCorpid: [{required: true, message: " ", trigger: "blur"}],
- fBsdate: [{required: true, message: " ", trigger: "blur"}],
- fWarehouseid: [{required: true, message: " ", trigger: "blur"}],
- fTruckno: [{required: true, message: " ", trigger: "blur"}],
- },
- selection:[],
- // 设置列开关
- showSetting: false,
- setRowList: [],
- getRowList: [],
- tableDate: [
- {
- surface: "1",
- label: "fMblno",
- name: "提单号",
- checked: 0,
- width: 100,
- },
- {
- surface: "2",
- label: "fCntrno",
- name: "箱号",
- checked: 0,
- width: 100,
- },
- {
- surface: "3",
- label: "fSealno",
- name: "封号",
- checked: 0,
- width: 100,
- },
- {
- surface: "4",
- label: "fGoodsid",
- name: "品名",
- checked: 0,
- width: 150,
- },
- {
- surface: "5",
- label: "fBusinessType",
- name: "货物属性",
- checked: 0,
- width: 100,
- },
- {
- surface: "6",
- label: "fMarks",
- name: "属性详情",
- checked: 0,
- width: 100,
- },
- {
- surface: "7",
- label: "fWarehouseInformation",
- name: "库区",
- checked: 0,
- width: 150,
- },
- {
- surface: "8",
- label: "fPlanqty",
- name: "结余库存",
- checked: 0,
- width: 100,
- },
- {
- surface: "9",
- label: "fPlangrossweight",
- name: "结余毛重(kg)",
- checked: 0,
- width: 120,
- },
- {
- surface: "10",
- label: "fPlannetweight",
- name: "结余净重(kg)",
- checked: 0,
- width: 120,
- },
- {
- surface: "11",
- label: "fQty",
- name: "件数",
- checked: 0,
- width: 100,
- },
- {
- surface: "12",
- label: "fGrossweight",
- name: "毛重(kg)",
- checked: 0,
- width: 120,
- },
- {
- surface: "13",
- label: "fNetweight",
- name: "净重(kg)",
- checked: 0,
- width: 120,
- },
- {
- surface: "14",
- label: "remark",
- name: "备注",
- checked: 0,
- width: 100,
- },
- ],
- // 库位的地址
- stockaddr: '',
- balance: 0,
- //自定义列宽
- allCheck: false,
- drag: false,
- }
- },
- created() {
- this.setRowList = this.tableDate;
- this.getRowList = this.tableDate;
- listCorps({type: 1}).then((response) => {
- this.fMblnoOptions = response.rows;
- });
- listWarehousesss({fStatus: 0, delFlag: 0}).then((response) => {
- this.warehouseOptions = response.rows;
- });
- listGoods({fStatus: 0, delFlag: 0}).then((response) => {
- this.goodsOptions = response.rows;
- });
- this.getDicts("storage_type").then((response) => {
- this.fStorageTypeOptions = response.data;
- localStorage.setItem("fStorageTypeList", JSON.stringify(response.data));
- });
- this.getRow()
- },
- filters: {
- fBsdateFormat(row) {
- if (row) {
- const dateMat = new Date(row);
- const year = dateMat.getFullYear();
- const month = dateMat.getMonth() + 1;
- const day = dateMat.getDate();
- const timeFormat = year + "-" + month + "-" + day;
- return timeFormat;
- }
- },
- },
- methods: {
- // 打开
- init() {
- this.queryUser();
- this.company = Cookies.get("companyName")
- this.visible = true;
- },
- // 关闭弹窗
- closeDialog() {
- this.visible = false;
- this.form = {}
- this.detailList = []
- this.$refs.form.clearValidate();
- this.$emit("closeDialog")
- },
- //获取登陆人
- queryUser() {
- queryUserVal().then((response) => {
- if (response.user !== null) {
- this.userVal = response.user;
- this.$set(this.form, "fDeptid", this.userVal.deptId);
- this.$set(this.form, "createBy", this.userVal.userName);
- this.$set(this.form, "fStorekeeper", this.userVal.nickName);
- this.$set(this.form, "fIfdamage", "1");
- this.$set(this.form, "fIfweigh", "1");
- this.$set(this.form, "fTrademodeid", "1");
- this.$set(this.form, "createTime", Date.parse(new Date()));
- this.$set(this.form, "fBstime", Date.parse(new Date()));
- this.$set(this.form, "fFeetUnit", "2");
- this.$set(this.form, "fFeetunit", 2);
- this.$set(this.form, "fBusinessType", "5");
- }
- if (response.dept !== null) {
- this.deptOptions = [];
- this.deptOptions.push(response.dept);
- }
- });
- },
- handleSelection(list) {
- this.selection = list
- },
- // 打开打印窗口
- openPrint() {
- this.balance = 0;
- for (let item in this.detailList) {
- if (!this.detailList[item].fCntrno) {
- return this.$message.error('第' + (Number(item) + 1) + '行箱号不能为空')
- }
- if (this.detailList[item].fPlanqty < this.detailList[item].fQty) {
- return this.$message.error("第" + (Number(item) + 1) + "行出库件数超出结余件数!");
- }
- this.balance = this.detailList[item].fPlanqty
- console.log(this.detailList[item])
- for (let item1 in this.detailList) {
- if (this.detailList[item].fSrcid == this.detailList[item1].fSrcid) {
- this.balance = Number(this.balance) - Number(this.detailList[item].fQty)
- if (this.balance < 0) {
- return this.$message.error("第" + (Number(item1) + 1) + "行出库件数超出结余件数!");
- }
- }
- }
- }
- this.warehouseOptions.map((e) => {
- if (e.fId == this.form.fWarehouseid) {
- this.stockaddr = e.fAddr;
- }
- });
- this.allfQty = 0;
- this.detailList.forEach(item => {
- this.allfQty += Number(item.fQty)
- })
- this.printVisible = true;
- },
- handleConfirm(){
- this.$refs["form"].validate(vaild => {
- if (vaild) {
- if (!this.form.fTruckno) return this.$message.error('车号不能为空')
- let fPlanqty = 0;
- let fPlannetweight = 0;
- let fPlangrossweight = 0;
- this.detailList.forEach(item => {
- this.$set(item, 'fBsdate', this.form.fBsdate)
- this.$set(item, 'fOriginalbillno', item.fMblno)
- this.$set(item, 'fIsPass', 'T')
- this.$set(item, 'fStltypeid', '1')
- this.$set(item, 'fTruckno', this.form.fTruckno)
- fPlanqty += Number(item.fQty)
- fPlannetweight += Number(item.fNetweight)
- fPlangrossweight += Number(item.fGrossweight)
- delete item.deleteId
- })
- this.$set(this.form, 'fStltypeid', '1')
- this.$set(this.form, 'fPlanqty', fPlanqty)
- this.$set(this.form, 'fPlannetweight', fPlannetweight)
- this.$set(this.form, 'fPlangrossweight', fPlangrossweight)
- this.$set(this.form, 'fQty', fPlanqty)
- this.$set(this.form, 'fNetweight', fPlannetweight)
- this.$set(this.form, 'fGrossweight', fPlangrossweight)
- this.$set(this.form, 'fChargedate', this.form.fBsdate)
- let fProductName = []
- this.detailList.map((e) => {
- this.goodsOptions.map((item) => {
- if (e.fGoodsid == item.fId) {
- fProductName.push(item.fName);
- }
- });
- });
- fProductName = [...new Set(fProductName)];
- // this.form.fProductName = fProductName.join(",");
- this.$set(this.form, 'fProductName', fProductName.join(","))
- let fMarks = []
- this.detailList.map((e) => {
- fMarks.push(e.fMarks);
- });
- fMarks = [...new Set(fMarks)];
- // this.form.fMarks = fMarks.join(",");
- this.$set(this.form, 'fMarks', fMarks.join(","))
- let data = {warehousebillsitemsList: this.detailList}
- data = Object.assign({}, data, this.form)
- fastOutStock(data).then(res => {
- this.$message.success('出库成功')
- this.closeDialog()
- })
- }
- })
- },
- addList() {
- this.$refs["form"].validate(valid => {
- if (valid) {
- this.getDetailsList()
- }
- })
- },
- // 查询库存总账
- getDetailsList() {
- // this.detailList = []
- this.disabled = true
- let queryParams = {
- fMblno: this.form.fMblno,
- fCorpid: this.form.fCorpid,
- fWarehouseid: this.form.fWarehouseid,
- fTrademodeid: this.form.fTrademodeid
- }
- listWhgenleg(queryParams).then((response) => {
- response.rows.map((e) => {
- e.fQtyblc2 = e.fQtyblc;
- e.fGrossweightblc2 = e.fGrossweightblc;
- e.fNetweightblc2 = e.fNetweightblc;
- });
- // this.detailList = response.rows;
- let arr = [];
- response.rows.map(e => {
- let index = this.detailList.findIndex(item => {
- return item.fSrcid === e.fId
- })
- if (index == -1) {
- arr.push({
- fId: null,
- fBsdate: this.form.fBsdate,
- fMblno: e.fMblno,
- fGoodsid: e.fGoodsid,
- fCntrtype: null,
- fPlanqty: e.fQtyblc,
- fPlannetweight: e.fNetweightblc,
- fPlangrossweight: e.fGrossweightblc,
- fWarehouseLocationids: e.fWarehouseLocationids,
- fGoodsids: e.fGoodsids,
- fBillingway: e.fBillingway,
- fChargedate: e.fChargedate,
- fMarks: e.fMarks,
- fOriginalbilldate: e.fOriginalbilldate,
- fOriginalbillno: e.fOriginalbillno,
- fPackagespecs: e.fPackagespecs,
- fGrossweight: e.fGrossweightblc2,
- fNetweight: e.fNetweightblc2,
- fQty: e.fQtyblc2,
- fCntqty: 1,
- fBillstatus: 10,
- fWarehouselocid: e.fWarehouseLocationid,
- fWarehouselocids: e.fWarehouseLocationids,
- fCntrno: e.fCntrno,
- fGoodsval: null,
- fTruckno: response.rows.fTruckno,
- remark: null,
- fIsPass: "T",
- fDriverName: response.rows.fDriverName,
- fDriverTel: response.rows.fDriverTel,
- fDriverIdCar: response.rows.fDriverIdCar,
- fBusinessType: e.fBusinessType ? e.fBusinessType.toString() : null,
- fWarehouseInformation: e.fWarehouseids,
- fSrcid: e.fId,
- fSrcBsdate: e.fBsdate,
- deleteId: e.fId,
- })
- }
- })
- this.detailList = this.detailList.concat(arr)
- console.log(this.detailList)
- this.disabled = false
- });
- },
- // 修改毛重净重
- changeOutStock(row) {
- this.$refs['detailTable'].clearSelection()
- let fNetweight = 0;
- let fGrossweight = 0;
- if (row.fNetweight) {
- fNetweight = row.fNetweight;
- }
- if (row.fGrossweight) {
- fGrossweight = row.fGrossweight;
- }
- if (row.fPlannetweight < fNetweight) {
- this.$message({message: "出库净重超出结余净重", type: "warning"});
- return false;
- }
- if (row.fPlangrossweight < fGrossweight) {
- this.$message({message: "出库毛重超出结余毛重", type: "warning"});
- return false;
- }
- },
- // 出库件数的计算
- qtyChange(row) {
- if (row.fPlanqty < row.fQty) {
- this.$message.error("出库件数超出结余件数!");
- this.$set(row, "fQty", 0);
- this.$set(row, "fNetweight", 0);
- this.$set(row, "fGrossweight", 0);
- return false;
- }
- if (row.fQtyblc2 > row.fQtyblc) {
- this.$message.error("出库件数超出结余件数!");
- this.$set(row, "fQtyblc2", 0);
- this.$set(row, "fGrossweightblc2", 0);
- this.$set(row, "fNetweightblc2", 0);
- return false;
- }
- this.$set(
- row,
- "fNetweight",
- parseFloat(
- (Number(row.fPlannetweight) / Number(row.fPlanqty)) * Number(row.fQty)
- ).toFixed(2)
- );
- this.$set(
- row,
- "fGrossweight",
- parseFloat(
- (Number(row.fPlangrossweight) / Number(row.fPlanqty)) *
- Number(row.fQty)
- ).toFixed(2)
- );
- this.$set(
- row,
- "fNetweightblc2",
- parseFloat(
- (Number(row.fNetweightblc) / Number(row.fQtyblc)) *
- Number(row.fQtyblc2)
- ).toFixed(2)
- );
- this.$set(
- row,
- "fGrossweightblc2",
- parseFloat(
- (Number(row.fGrossweightblc) / Number(row.fQtyblc)) *
- Number(row.fQtyblc2)
- ).toFixed(2)
- );
- },
- // 明细删除
- wDeleteRow(index, rows) {
- rows.splice(index, 1);
- },
- // 批量删除
- batchDelete() {
- this.$confirm('是否确认删除选中数据','提示',{
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.selection.forEach(item => {
- console.log(item.deleteId)
- let index = this.detailList.findIndex(item1 => {
- return item1.deleteId == item.deleteId
- })
- this.detailList.splice(index,1)
- })
- this.$message({
- type: 'success',
- message: '删除成功!'
- });
- }).catch(() => {
- this.$message({
- type: 'info',
- message: '已取消删除'
- });
- });
- },
- changeMblno() {
- if (this.detailList.length == 0) {
- this.$set(this.form, "fCorpid", '')
- this.$set(this.form, "fWarehouseid", '')
- this.$set(this.form, "fGoodsid", '')
- if (this.form.fMblno) {
- let data = {
- type: 'mblno',
- fMblno: this.form.fMblno
- }
- changeSelect(data).then(res => {
- this.fMblnoOptions = res.data.corpsList
- this.warehouseOptions = res.data.warehouseList
- this.goodsOptions = res.data.whgenlegVOList
- if (this.fMblnoOptions.length > 0) {
- this.form.fCorpid = this.fMblnoOptions[0].fId
- let data1 = {
- type: 'corp',
- fMblno: this.form.fMblno,
- corpId: this.form.fCorpid
- }
- changeSelect(data1).then(res => {
- this.warehouseOptions = res.data.warehouseList
- this.goodsOptions = res.data.whgenlegVOList
- if (this.warehouseOptions.length > 0) {
- this.form.fWarehouseid = this.warehouseOptions[0].fId
- let data2 = {
- type: 'warehouse',
- fMblno: this.form.fMblno,
- corpId: this.form.fCorpid,
- warehouseId: this.form.fWarehouseid
- }
- changeSelect(data2).then(res => {
- this.goodsOptions = res.data.goodsVOList
- if (this.goodsOptions.length > 0) {
- this.form.fGoodsid = this.goodsOptions[0].fId
- }
- })
- }
- })
- }
- })
- }else {
- listCorps({ type: 1 }).then((response) => {
- this.fMblnoOptions = response.rows
- })
- listWarehousesss({ fStatus: 0, delFlag: 0 }).then((response) => {
- this.warehouseOptions = response.rows;
- })
- listGoods({fStatus: 0, delFlag: 0}).then((response) => {
- this.goodsOptions = response.rows;
- });
- }
- }
- },
- changeCorp() {
- if (this.form.fMblno && this.form.fCorpid) {
- this.$set(this.form, "fWarehouseid", '')
- this.$set(this.form, "fGoodsid", '')
- let data = {
- type: 'corp',
- fMblno: this.form.fMblno,
- corpId: this.form.fCorpid
- }
- changeSelect(data).then(res => {
- this.warehouseOptions = res.data.warehouseList
- this.goodsOptions = res.data.whgenlegVOList
- if (this.warehouseOptions.length > 0) {
- this.form.fWarehouseid = this.warehouseOptions[0].fId
- let data1 = {
- type: 'warehouse',
- fMblno: this.form.fMblno,
- corpId: this.form.fCorpid,
- warehouseId: this.form.fWarehouseid
- }
- changeSelect(data1).then(res => {
- this.goodsOptions = res.data.goodsVOList
- if (this.goodsOptions.length > 0) {
- this.form.fGoodsid = this.goodsOptions[0].fId
- }
- })
- }
- })
- } else if (this.form.fMblno && !this.form.fCorpid) {
- this.$set(this.form, "fWarehouseid", '')
- this.$set(this.form, "fGoodsid", '')
- this.warehouseOptions = []
- this.goodsOptions = []
- }
- },
- changefWarehouseid() {
- if (this.form.fMblno && this.form.fCorpid && this.form.fWarehouseid) {
- this.$set(this.form, "fGoodsid", '')
- let data = {
- type: 'warehouse',
- fMblno: this.form.fMblno,
- corpId: this.form.fCorpid,
- warehouseId: this.form.fWarehouseid
- }
- changeSelect(data).then(res => {
- this.goodsOptions = res.data.goodsVOList
- if (this.goodsOptions.length > 0) {
- this.form.fGoodsid = this.goodsOptions[0].fId
- }
- })
- } else if (this.form.fMblno && !this.form.fWarehouseid) {
- this.$set(this.form, "fGoodsid", '')
- this.goodsOptions = []
- }
- treeselect(this.form.fWarehouseid).then((response) => {
- this.fWarehouseidOptions = response.data;
- });
- },
- goodsChange(data) {
- },
- addprint(status) {
- const style =
- "@page { } " +
- "@media print { .print-div{ padding:8px;background-color:#cccccc;} .print-title{display:flex;justify-content: center;font-size:24px} .print_form{font-size:12px} .print_table table {border-right: 1px solid #000;border-bottom: 1px solid #000;font-size:12px} .print_table table td {border-left: 1px solid #000;border-top: 1px solid #000;padding:2px;vertical-align:middle;text-align: center;}";
- if (status == 'ckd') {
- print({
- printable: "print_ckd",
- type: "html",
- style: style, // 亦可使用引入的外部css;
- scanStyles: false,
- });
- }
- },
- // 合计
- getSummaries(param) {
- const {columns, data} = param;
- const sums = [];
- var values = [];
- columns.forEach((column, index) => {
- if (index === 0) {
- sums[index] = "";
- return;
- }
- if (column.property === "fGrossweight") {
- values = data.map((item) => Number(item["fGrossweight"]));
- }
- if (column.property === "fNetweight") {
- values = data.map((item) => Number(item["fNetweight"]));
- }
- if (column.property === "fQty") {
- values = data.map((item) => Number(item["fQty"]));
- }
- if (column.property === "fCntqty") {
- values = data.map((item) => Number(item["fCntqty"]));
- }
- if (
- column.property === "fGrossweight" ||
- column.property === "fNetweight" ||
- column.property === "fQty" ||
- column.property === "fCntqty"
- ) {
- sums[index] = values.reduce((prev, curr) => {
- const value = Number(curr);
- if (!isNaN(value)) {
- if (column.property === "fGrossweight") {
- this.fGrossweight = prev + curr;
- }
- if (column.property === "fNetweight") {
- this.fNetweight = prev + curr;
- }
- if (column.property === "fQty") {
- this.fQty = prev + curr;
- this.sumMum = prev + curr;
- }
- if (column.property === "fCntqty") {
- this.fCntqty = prev + curr;
- }
- return prev + curr;
- } else {
- return prev;
- }
- }, 0);
- if (column.property === "fGrossweight") {
- sums[index] = (sums[index] / 1000).toFixed(4) + "吨";
- } else if (column.property === "fNetweight") {
- sums[index] = (sums[index] / 1000).toFixed(4) + "吨";
- } else {
- // sums[index] = sums[index].toFixed(2);
- sums[index] = sums[index]
- }
- }
- });
- this.sums = sums;
- return sums;
- },
- //列设置全选
- allChecked() {
- if (this.allCheck == true) {
- this.setRowList.map((e) => {
- return (e.checked = 0);
- });
- } else {
- this.setRowList.map((e) => {
- return (e.checked = 1);
- });
- }
- },
- //开始拖拽事件
- onStart() {
- this.drag = true;
- },
- //拖拽结束事件
- onEnd() {
- this.drag = false;
- },
- //重置列表
- delRow() {
- this.data = {
- tableName: "快速出库明细",
- userId: Cookies.get("userName"),
- };
- resetModule(this.data).then((res) => {
- if (res.code == 200) {
- this.showSetting = false;
- this.setRowList = this.tableDate;
- console.log(this.setRowList)
- this.getRowList = this.tableDate;
- }
- });
- },
- //保存列设置
- save() {
- this.showSetting = false;
- this.data = {
- tableName: "快速出库明细",
- userId: Cookies.get("userName"),
- sysTableSetList: this.setRowList,
- };
- addSet(this.data).then((res) => {
- this.getRowList = this.setRowList.filter((e) => e.checked == 0);
- });
- },
- //查询列数据
- getRow() {
- let that = this;
- this.data = {
- tableName: "快速出库明细",
- userId: Cookies.get("userName"),
- };
- select(this.data).then((res) => {
- if (res.data.length != 0) {
- this.getRowList = res.data.filter((e) => e.checked == 0);
- this.setRowList = res.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;
- }, []);
- }
- });
- },
- },
- }
- </script>
- <style scoped lang="scss">
- .print-div {
- color: #000;
- }
- .print_table {
- table {
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- font-size: 12px;
- margin-bottom: 5px;
- }
- table td {
- border-left: 1px solid #000;
- border-top: 1px solid #000;
- vertical-align: middle;
- padding: 2px;
- text-align: center;
- }
- }
- .print_form {
- font-size: 12px;
- }
- </style>
|