|
@@ -3,25 +3,28 @@
|
|
|
<div class="customer-head">
|
|
|
<div class="customer-back">
|
|
|
<el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
|
|
|
- @click="backToList(0)">返回列表
|
|
|
+ @click="backToList(0)">返回列表
|
|
|
</el-button>
|
|
|
</div>
|
|
|
<div class="add-customer-btn">
|
|
|
<el-button class="el-button--small-yh" style="margin-left: 6px;" type="primary" size="small"
|
|
|
- v-if="editButton" @click="inEdit">编 辑
|
|
|
+ v-if="editButton" @click="inEdit">编 辑
|
|
|
</el-button>
|
|
|
<el-button class="el-button--small-yh" v-else style="margin-left: 6px;" type="primary" size="small"
|
|
|
- :disabled="isSaveBtn" @click="editCustomer(0)">保 存
|
|
|
+ :disabled="isSaveBtn" @click="editCustomer(0)">保 存
|
|
|
</el-button>
|
|
|
<el-button class="el-button--small-yh" v-if="form.id && form.status == 0" style="margin-left: 6px;"
|
|
|
- type="success" size="small" @click="editCustomer(1)" :disabled="form.status == 1">提 交
|
|
|
- </el-button>
|
|
|
- <el-button class="el-button--small-yh" v-if="form.status == 1" style="margin-left: 6px;" type="success"
|
|
|
- size="small" @click="editCustomer(2)">通 过
|
|
|
- </el-button>
|
|
|
- <el-button class="el-button--small-yh" v-if="form.status == 1" style="margin-left: 6px;" type="danger"
|
|
|
- size="small" @click="approve()">驳 回
|
|
|
+ type="success" size="small" @click="editCustomer(1)" :disabled="form.status == 1">提 交
|
|
|
</el-button>
|
|
|
+ <el-dropdown v-if="form.status == 1">
|
|
|
+ <el-button style="margin-left: 6px;" type="success" size="small">
|
|
|
+ 审 核<i class="el-icon-arrow-down el-icon--right"></i>
|
|
|
+ </el-button>
|
|
|
+ <el-dropdown-menu slot="dropdown">
|
|
|
+ <el-dropdown-item @click.native="auditPlan(2)">通过</el-dropdown-item>
|
|
|
+ <el-dropdown-item @click.native="approve()">驳回</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div style="margin-top: 50px">
|
|
@@ -30,17 +33,18 @@
|
|
|
<template slot-scope="{row,index}" slot="contacts">
|
|
|
<!-- 联系人 -->
|
|
|
<el-select v-model="form.contacts" placeholder="请选择" size="small" style="width:60%" clearable
|
|
|
- filterable allow-create default-first-option @change="contactsChange($event)"
|
|
|
- :disabled="editButton || form.status == 2">
|
|
|
+ filterable allow-create default-first-option @change="contactsChange($event)"
|
|
|
+ :disabled="editButton || form.status == 2">
|
|
|
<el-option v-for="item in contactsOption" :key="item.cname" :label="item.cname"
|
|
|
- :value="item.contacts" />
|
|
|
+ :value="item.contacts"/>
|
|
|
</el-select>
|
|
|
</template>
|
|
|
<tempalte slot="customerName">
|
|
|
<dic-select v-model="form.customerName" placeholder="货主" key="id" label="cname" res="records"
|
|
|
- url="/blade-sales-part/corpsDesc/list?current=1&size=20&&enableOrNot=1" :filterable="true"
|
|
|
- :remote="true" dataName="cname" @selectChange="dicChange('customerName', $event)"
|
|
|
- :disabled="editButton || form.status == 2"></dic-select>
|
|
|
+ url="/blade-sales-part/corpsDesc/list?current=1&size=20&&enableOrNot=1"
|
|
|
+ :filterable="true"
|
|
|
+ :remote="true" dataName="cname" @selectChange="dicChange('customerName', $event)"
|
|
|
+ :disabled="editButton || form.status == 2"></dic-select>
|
|
|
</tempalte>
|
|
|
</avue-form>
|
|
|
</trade-card>
|
|
@@ -48,21 +52,23 @@
|
|
|
<el-tabs v-model="activeName" type="card">
|
|
|
<el-tab-pane label="商品明细" name="sale_detail">
|
|
|
<avue-crud :option="optionContacts" v-model="formContacts" ref="formContacts"
|
|
|
- :data="form.planItemsList" :key="key" @row-save="rowSave" @row-update="rowUpdate"
|
|
|
- @row-close="rowClose" :before-close="beforeClose" @selection-change="selectionContacts"
|
|
|
- @resetColumn="resetColumnTwo('formContacts', 'optionContacts', 'optionContactsBack', 269.1)"
|
|
|
- @saveColumn="saveColumnTwo('formContacts', 'optionContacts', 'optionContactsBack', 269.1)">
|
|
|
+ :data="form.planItemsList" :key="key" @row-save="rowSave" @row-update="rowUpdate"
|
|
|
+ @row-close="rowClose" :before-close="beforeClose"
|
|
|
+ @selection-change="selectionContacts"
|
|
|
+ @resetColumn="resetColumnTwo('formContacts', 'optionContacts', 'optionContactsBack', 269.1)"
|
|
|
+ @saveColumn="saveColumnTwo('formContacts', 'optionContacts', 'optionContactsBack', 269.1)">
|
|
|
<template slot-scope="{scope,row}" slot="menuLeft">
|
|
|
<el-button type="primary" icon="el-icon-plus" size="small"
|
|
|
- :disabled="editButton || form.status == 2" @click="rowAdd(row)">添加商品
|
|
|
+ :disabled="editButton || form.status == 2" @click="rowAdd(row)">添加商品
|
|
|
</el-button>
|
|
|
<el-button type="success" size="small" :disabled="editButton || form.status == 2"
|
|
|
- icon="el-icon-bottom" @click="excelDialogfun('code')">按Code导入
|
|
|
+ icon="el-icon-bottom" @click="excelDialogfun('code')">按Code导入
|
|
|
</el-button>
|
|
|
<el-button type="primary" icon="el-icon-printer" size="small" @click="handlePrint">打印
|
|
|
</el-button>
|
|
|
<el-button type="danger" plain size="small" @click="batchDelete"
|
|
|
- :disabled="editButton || form.status == 2 || selectionMultilist.length == 0">一键删除
|
|
|
+ :disabled="editButton || form.status == 2 || selectionMultilist.length == 0">
|
|
|
+ 一键删除
|
|
|
</el-button>
|
|
|
</template>
|
|
|
<template slot="goodsId" slot-scope="{ row }">
|
|
@@ -74,24 +80,25 @@
|
|
|
</template>
|
|
|
<template slot="goodsNum" slot-scope="{ row }">
|
|
|
<el-input-number v-if="!mingxibaocun" size="small" v-model="row.goodsNum"
|
|
|
- :controls="false" :precision="numberDecimal" style="width: 100%"></el-input-number>
|
|
|
+ :controls="false" :precision="numberDecimal"
|
|
|
+ style="width: 100%"></el-input-number>
|
|
|
<span v-else>{{ row.goodsNum }}</span>
|
|
|
</template>
|
|
|
<template slot="price" slot-scope="{ row }">
|
|
|
<el-input v-if="!mingxibaocun" size="small" v-model="row.price"
|
|
|
- style="width: 100%"></el-input>
|
|
|
+ style="width: 100%"></el-input>
|
|
|
<span v-else>{{ row.price }}</span>
|
|
|
</template>
|
|
|
<template slot="rebatePrice" slot-scope="{ row }">
|
|
|
<el-input v-if="!mingxibaocun" size="small" v-model="row.rebatePrice"
|
|
|
- style="width: 100%"></el-input>
|
|
|
+ style="width: 100%"></el-input>
|
|
|
<span v-else>{{ row.rebatePrice }}</span>
|
|
|
</template>
|
|
|
<template slot="dot" slot-scope="{ row }">
|
|
|
<el-select v-if="!mingxibaocun && row.whether == '1'" v-model="row.dot" allow-create
|
|
|
- filterable default-first-option @focus="picihaolistfun(row.goodsId)">
|
|
|
+ filterable default-first-option @focus="picihaolistfun(row.goodsId)">
|
|
|
<el-option v-for="(item, index) in picihaolist" :key="index" :label="item.dot"
|
|
|
- :value="item.dot"></el-option>
|
|
|
+ :value="item.dot"></el-option>
|
|
|
</el-select>
|
|
|
<span v-else>{{ row.dot }}</span>
|
|
|
</template>
|
|
@@ -102,40 +109,40 @@
|
|
|
|
|
|
<template slot="remarks" slot-scope="{ row }">
|
|
|
<el-input v-if="!mingxibaocun" size="small" v-model="row.remarks"
|
|
|
- style="width: 100%"></el-input>
|
|
|
+ style="width: 100%"></el-input>
|
|
|
<span v-else>{{ row.remarks }}</span>
|
|
|
</template>
|
|
|
<template slot-scope="{type,size,row,index,disabled}" slot="menu">
|
|
|
<el-button v-if="mingxibaocun" :size="size" :disabled="editButton || form.status == 2"
|
|
|
- :type="type" :icon="row.$cellEdit ? 'el-icon-plus' : 'el-icon-edit'"
|
|
|
- @click="hangeditBtn(row, index)">编辑
|
|
|
+ :type="type" :icon="row.$cellEdit ? 'el-icon-plus' : 'el-icon-edit'"
|
|
|
+ @click="hangeditBtn(row, index)">编辑
|
|
|
</el-button>
|
|
|
<el-button v-else :size="size" :disabled="editButton || form.status == 2" :type="type"
|
|
|
- :icon="row.$cellEdit ? 'el-icon-plus' : 'el-icon-edit'"
|
|
|
- @click="hangbaocun(row, index)">保存
|
|
|
+ :icon="row.$cellEdit ? 'el-icon-plus' : 'el-icon-edit'"
|
|
|
+ @click="hangbaocun(row, index)">保存
|
|
|
</el-button>
|
|
|
<el-button icon="el-icon-delete" :size="size" :disabled="editButton || form.status == 2"
|
|
|
- :type="type" @click="rowDelBox(row, index, 'planItemsList')">删除
|
|
|
+ :type="type" @click="rowDelBox(row, index, 'planItemsList')">删除
|
|
|
</el-button>
|
|
|
</template>
|
|
|
</avue-crud>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="入库记录" name="outbound_records">
|
|
|
<avue-crud :option="optionOutboundRecords" v-model="formContacts" ref="outbound_records"
|
|
|
- :data="form.outboundRecordsList" @row-save="rowSave" @row-update="rowUpdate"
|
|
|
- @resetColumn="resetColumnTwo('outbound_records', 'optionOutboundRecords', 'optionOutboundRecordsBack', 269.3)"
|
|
|
- @saveColumn="saveColumnTwo('outbound_records', 'optionOutboundRecords', 'optionOutboundRecordsBack', 269.3)">
|
|
|
+ :data="form.outboundRecordsList" @row-save="rowSave" @row-update="rowUpdate"
|
|
|
+ @resetColumn="resetColumnTwo('outbound_records', 'optionOutboundRecords', 'optionOutboundRecordsBack', 269.3)"
|
|
|
+ @saveColumn="saveColumnTwo('outbound_records', 'optionOutboundRecords', 'optionOutboundRecordsBack', 269.3)">
|
|
|
</avue-crud>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</trade-card>
|
|
|
<report-dialog :switchDialog="switchDialog" reportName="轮胎商城-采购订单" :reportId="form.id"
|
|
|
- @onClose="onClose()"></report-dialog>
|
|
|
+ @onClose="onClose()"></report-dialog>
|
|
|
</div>
|
|
|
<el-dialog title="导入明细" append-to-body :visible.sync="excelBox" v-if="excelBox" width="555px"
|
|
|
- :close-on-click-modal="false" v-dialog-drag>
|
|
|
+ :close-on-click-modal="false" v-dialog-drag>
|
|
|
<avue-form :option="excelOption" v-model="excelForm" table-loading="excelLoading"
|
|
|
- :upload-before="uploadBefore" :upload-after="uploadAfter">
|
|
|
+ :upload-before="uploadBefore" :upload-after="uploadAfter">
|
|
|
<template slot="excelTemplate">
|
|
|
<el-button type="primary" @click="derivation">
|
|
|
点击下载<i class="el-icon-download el-icon--right"></i>
|
|
@@ -147,14 +154,15 @@
|
|
|
</p>
|
|
|
</el-dialog>
|
|
|
<el-dialog title="选择商品" append-to-body class="el-dialogDeep" :visible.sync="dialogVisible" width="80%"
|
|
|
- :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" @close="closeGoods">
|
|
|
+ :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false"
|
|
|
+ @close="closeGoods">
|
|
|
<el-row :style="{ height: rowHeight }">
|
|
|
<el-col :span="5">
|
|
|
<div>
|
|
|
<el-scrollbar>
|
|
|
<basic-container>
|
|
|
<avue-tree style="height: 70vh;overflow-y: auto" :option="treeOption"
|
|
|
- :data="treeDataGoods" @node-click="nodeClick" />
|
|
|
+ :data="treeDataGoods" @node-click="nodeClick"/>
|
|
|
</basic-container>
|
|
|
</el-scrollbar>
|
|
|
</div>
|
|
@@ -162,33 +170,34 @@
|
|
|
<el-col :span="19">
|
|
|
<basic-container>
|
|
|
<avue-crud :option="optionTwo" :table-loading="loading" :data="goodsListShow" ref="crud"
|
|
|
- :search.sync="SelectSearch" @refresh-change="refreshChange"
|
|
|
- @selection-change="selectionChange" @search-change="goodsSearch" :page.sync="page"
|
|
|
- @on-load="onLoadfun">
|
|
|
+ :search.sync="SelectSearch" @refresh-change="refreshChange"
|
|
|
+ @selection-change="selectionChange" @search-change="goodsSearch" :page.sync="page"
|
|
|
+ @on-load="onLoadfun">
|
|
|
<template slot="menuLeft">
|
|
|
<el-tabs v-model="activeNameTabs" @tab-click="tabHandle">
|
|
|
- <el-tab-pane label="查询结果" name="searchList" />
|
|
|
- <el-tab-pane label="已选定数据" name="importStaging" />
|
|
|
+ <el-tab-pane label="查询结果" name="searchList"/>
|
|
|
+ <el-tab-pane label="已选定数据" name="importStaging"/>
|
|
|
</el-tabs>
|
|
|
</template>
|
|
|
<template slot="goodsNum" slot-scope="{row}">
|
|
|
<el-input-number v-model="row.goodsNum" size="small" :controls="false"
|
|
|
- :precision="numberDecimal" @input="amountChange($event, row)" style="width: 100%" />
|
|
|
+ :precision="numberDecimal" @input="amountChange($event, row)"
|
|
|
+ style="width: 100%"/>
|
|
|
</template>
|
|
|
<template slot="price" slot-scope="{row}">
|
|
|
<el-input-number v-model="row.price" size="small" :controls="false"
|
|
|
- style="width: 100%" />
|
|
|
+ style="width: 100%"/>
|
|
|
<!--<span v-else>{{ row.price }}</span>-->
|
|
|
</template>
|
|
|
<template slot-scope="scope" slot="menu">
|
|
|
<el-button type="text" icon="el-icon-edit" size="small"
|
|
|
- @click.stop="importStagList(scope.row, scope.index)"
|
|
|
- v-if="activeNameTabs == 'searchList'"
|
|
|
- :disabled="goodsListSave.findIndex(item => item.id == scope.row.id) !== -1">
|
|
|
+ @click.stop="importStagList(scope.row, scope.index)"
|
|
|
+ v-if="activeNameTabs == 'searchList'"
|
|
|
+ :disabled="goodsListSave.findIndex(item => item.id == scope.row.id) !== -1">
|
|
|
选择
|
|
|
</el-button>
|
|
|
<el-button type="text" icon="el-icon-delete" size="small"
|
|
|
- @click.stop="removeStagList(scope.row, scope.index)" v-else>移除
|
|
|
+ @click.stop="removeStagList(scope.row, scope.index)" v-else>移除
|
|
|
</el-button>
|
|
|
</template>
|
|
|
</avue-crud>
|
|
@@ -198,42 +207,45 @@
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
<el-button @click="dialogVisible = false" :loading="saveLoading">取 消</el-button>
|
|
|
<el-button type="primary" @click="importGoods" v-if="commodityData !== true"
|
|
|
- :loading="saveLoading">导入</el-button>
|
|
|
+ :loading="saveLoading">导入</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
- <el-dialog title="驳回数据" append-to-body :visible.sync="approveVisible" width="30%" :close-on-click-modal="false"
|
|
|
- v-dialog-drag>
|
|
|
+ <el-dialog title="驳回数据" append-to-body :visible.sync="approveVisible" width="30%"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ v-dialog-drag>
|
|
|
<span>
|
|
|
- <el-input type="textarea" :rows="5" placeholder="请输入驳回原因" v-model="textarea">
|
|
|
+ <el-input type="textarea" :rows="5" placeholder="请输入驳回原因" v-model="auditMsg">
|
|
|
</el-input>
|
|
|
</span>
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
<el-button @click="approveVisible = false" size="mini">取消</el-button>
|
|
|
- <el-button type="danger" @click="approveVisible = false; editCustomer(3)" size="mini">确定</el-button>
|
|
|
+ <el-button type="danger" @click="approveVisible = false; auditPlan(3)" size="mini">确定</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { getDetails as getCustom } from "@/api/tirePartsMall/basicData/customerInformation"
|
|
|
-import { getDetails as getDetailsLT } from "@/api/tirePartsMall/basicData/commodityInformation/index"
|
|
|
-import { dateFormat } from "@/util/date";
|
|
|
-import { getToken } from "@/util/auth";
|
|
|
-import { shortcutWarehousing } from "@/api/tirePartsMall/salesManagement/saleOrder";
|
|
|
-import { dotList, goodsDetail } from "@/api/tirePartsMall/purchasingManagement/warehouseEntryOrder";
|
|
|
+import {getDetails as getCustom} from "@/api/tirePartsMall/basicData/customerInformation"
|
|
|
+import {getDetails as getDetailsLT} from "@/api/tirePartsMall/basicData/commodityInformation/index"
|
|
|
+import {dateFormat} from "@/util/date";
|
|
|
+import {getToken} from "@/util/auth";
|
|
|
+import {shortcutWarehousing} from "@/api/tirePartsMall/salesManagement/saleOrder";
|
|
|
+import {dotList, goodsDetail} from "@/api/tirePartsMall/purchasingManagement/warehouseEntryOrder";
|
|
|
import reportDialog from "@/components/report-dialog/main";
|
|
|
import checkSchedule from "@/components/checkL/checkSchedule";
|
|
|
import check from "@/components/checkL/check";
|
|
|
-import { getCorpType, getList } from "@/api/tirePartsMall/basicData/commodityInformation"
|
|
|
-import { isProcurement } from "@/api/basicData/configuration";
|
|
|
+import {getCorpType, getList} from "@/api/tirePartsMall/basicData/commodityInformation"
|
|
|
+import {isProcurement} from "@/api/basicData/configuration";
|
|
|
import commodity from "../../configuration/commodity.json";
|
|
|
-import { getDetails, submit, itemRemove } from "@/api/storehouse/plan.js";
|
|
|
+import {getDetails, submit, itemRemove, auditPlan} from "@/api/storehouse/plan.js";
|
|
|
import dicSelect from "@/components/dicSelect/main";
|
|
|
+
|
|
|
export default {
|
|
|
name: "detailsPage",
|
|
|
data() {
|
|
|
return {
|
|
|
+ auditMsg: null,
|
|
|
approveVisible: false,
|
|
|
excelBox: false,
|
|
|
numberDecimal: 0,
|
|
@@ -376,54 +388,6 @@ export default {
|
|
|
trigger: "blur"
|
|
|
}]
|
|
|
}, {
|
|
|
- label: '仓库',
|
|
|
- prop: "storageId",
|
|
|
- type: 'select',
|
|
|
- disabled: false,
|
|
|
- props: {
|
|
|
- label: 'cname',
|
|
|
- value: 'id'
|
|
|
- },
|
|
|
- dicUrl: '/api/blade-sales-part/tire/center/warehouse/storage/storageSelectedList',
|
|
|
- rules: [{
|
|
|
- required: true,
|
|
|
- message: " ",
|
|
|
- trigger: "blur"
|
|
|
- }]
|
|
|
- },
|
|
|
- {
|
|
|
- label: '计划入库日期',
|
|
|
- prop: "businesDate",
|
|
|
- searchProp: "businesDateList",
|
|
|
- disabled: false,
|
|
|
- type: "datetime",
|
|
|
- value: dateFormat(new Date(), 'yyyy-MM-dd'),
|
|
|
- format: "yyyy-MM-dd",
|
|
|
- valueFormat: "yyyy-MM-dd",
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "",
|
|
|
- trigger: "blur"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- label: "制单人",
|
|
|
- prop: "createUserName",
|
|
|
- disabled: true,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '单据编号',
|
|
|
- prop: "ordNo",
|
|
|
- disabled: true,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '计划总数量',
|
|
|
- prop: "goodsTotalNum",
|
|
|
- disabled: true,
|
|
|
- },
|
|
|
- {
|
|
|
label: '联系人',
|
|
|
type: "select",
|
|
|
prop: "contacts",
|
|
@@ -440,15 +404,81 @@ export default {
|
|
|
disabled: false,
|
|
|
|
|
|
prop: "phone",
|
|
|
- },
|
|
|
- {
|
|
|
- label: '备注',
|
|
|
- prop: "remarks",
|
|
|
- type: 'textarea',
|
|
|
+ }, {
|
|
|
+ label: "制单人",
|
|
|
+ prop: "createUserName",
|
|
|
+ disabled: true,
|
|
|
+ }, {
|
|
|
+ label: '仓库',
|
|
|
+ prop: "storageId",
|
|
|
+ type: 'select',
|
|
|
disabled: false,
|
|
|
- span: 16,
|
|
|
- minRows: 1
|
|
|
- }]
|
|
|
+ props: {
|
|
|
+ label: 'cname',
|
|
|
+ value: 'id'
|
|
|
+ },
|
|
|
+ dicUrl: '/api/blade-sales-part/tire/center/warehouse/storage/storageSelectedList',
|
|
|
+ rules: [{
|
|
|
+ required: true,
|
|
|
+ message: " ",
|
|
|
+ trigger: "blur"
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '入库日期',
|
|
|
+ prop: "businesDate",
|
|
|
+ searchProp: "businesDateList",
|
|
|
+ disabled: false,
|
|
|
+ type: "datetime",
|
|
|
+ value: dateFormat(new Date(), 'yyyy-MM-dd'),
|
|
|
+ format: "yyyy-MM-dd",
|
|
|
+ valueFormat: "yyyy-MM-dd",
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "",
|
|
|
+ trigger: "blur"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '单据编号',
|
|
|
+ prop: "ordNo",
|
|
|
+ disabled: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '计划总数量',
|
|
|
+ prop: "goodsTotalNum",
|
|
|
+ disabled: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '司机姓名',
|
|
|
+ prop: "driverName"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '司机电话',
|
|
|
+ prop: "driverPhone"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '车牌号',
|
|
|
+ prop: "licensePlate"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '库管',
|
|
|
+ prop: "warehouseKeeper"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '车辆照片',
|
|
|
+ prop: "vehiclePhoto"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '备注',
|
|
|
+ prop: "remarks",
|
|
|
+ type: 'textarea',
|
|
|
+ disabled: false,
|
|
|
+ span: 24,
|
|
|
+ minRows: 1
|
|
|
+ }]
|
|
|
},
|
|
|
formContacts: {},
|
|
|
optionContacts: {},
|
|
@@ -547,106 +577,106 @@ export default {
|
|
|
trigger: "blur"
|
|
|
}]
|
|
|
},
|
|
|
- {
|
|
|
- label: '价格',
|
|
|
- prop: 'price',
|
|
|
- overHidden: true,
|
|
|
- width: 100,
|
|
|
- disabled: false,
|
|
|
- cell: true,
|
|
|
- rules: [{
|
|
|
- required: true,
|
|
|
- message: " ",
|
|
|
- trigger: "blur"
|
|
|
- }, {
|
|
|
- validator: (rule, value, callback) => {
|
|
|
- if (value < 0) {
|
|
|
- callback(new Error("价格不能小于0"));
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
+ {
|
|
|
+ label: '价格',
|
|
|
+ prop: 'price',
|
|
|
+ overHidden: true,
|
|
|
+ width: 100,
|
|
|
+ disabled: false,
|
|
|
+ cell: true,
|
|
|
+ rules: [{
|
|
|
+ required: true,
|
|
|
+ message: " ",
|
|
|
+ trigger: "blur"
|
|
|
+ }, {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ if (value < 0) {
|
|
|
+ callback(new Error("价格不能小于0"));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ trigger: "blur"
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '批次号',
|
|
|
+ prop: 'dot',
|
|
|
+ cell: true,
|
|
|
+ width: 120,
|
|
|
+ type: "select",
|
|
|
+ disabled: true,
|
|
|
+ allowCreate: true,
|
|
|
+ filterable: true,
|
|
|
+ dicData: [],
|
|
|
+ props: {
|
|
|
+ label: "dot",
|
|
|
+ value: "dot"
|
|
|
},
|
|
|
- trigger: "blur"
|
|
|
- }]
|
|
|
- },
|
|
|
- {
|
|
|
- label: '批次号',
|
|
|
- prop: 'dot',
|
|
|
- cell: true,
|
|
|
- width: 120,
|
|
|
- type: "select",
|
|
|
- disabled: true,
|
|
|
- allowCreate: true,
|
|
|
- filterable: true,
|
|
|
- dicData: [],
|
|
|
- props: {
|
|
|
- label: "dot",
|
|
|
- value: "dot"
|
|
|
+ dicUrl: "/api/blade-sales-part/stockDesc/dotList",
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '小计',
|
|
|
+ prop: 'subTotalMoney',
|
|
|
+ overHidden: true,
|
|
|
+ width: 100,
|
|
|
+ disabled: true,
|
|
|
+ editDisplay: false,
|
|
|
+ addDisplay: false
|
|
|
+ }, {
|
|
|
+ label: '商品编码',
|
|
|
+ prop: 'goodsNo',
|
|
|
+ overHidden: true,
|
|
|
+ disabled: false,
|
|
|
+ width: 100
|
|
|
},
|
|
|
- dicUrl: "/api/blade-sales-part/stockDesc/dotList",
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '小计',
|
|
|
- prop: 'subTotalMoney',
|
|
|
- overHidden: true,
|
|
|
- width: 100,
|
|
|
- disabled: true,
|
|
|
- editDisplay: false,
|
|
|
- addDisplay: false
|
|
|
- }, {
|
|
|
- label: '商品编码',
|
|
|
- prop: 'goodsNo',
|
|
|
- overHidden: true,
|
|
|
- disabled: false,
|
|
|
- width: 100
|
|
|
- },
|
|
|
- {
|
|
|
- label: '品牌',
|
|
|
- prop: 'brandName',
|
|
|
- disabled: false,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '规格型号',
|
|
|
- prop: 'propertyName',
|
|
|
- overHidden: true,
|
|
|
- disabled: false,
|
|
|
- width: 100
|
|
|
- }, {
|
|
|
- label: '花纹',
|
|
|
- prop: 'pattern',
|
|
|
- overHidden: true,
|
|
|
- disabled: false,
|
|
|
- width: 100
|
|
|
- }, {
|
|
|
- label: '商品描述',
|
|
|
- prop: 'goodsDescription',
|
|
|
- disabled: false,
|
|
|
- overHidden: true,
|
|
|
- width: 100
|
|
|
- },
|
|
|
- {
|
|
|
- label: '单位',
|
|
|
- prop: 'units',
|
|
|
- type: "select",
|
|
|
- disabled: false,
|
|
|
- props: {
|
|
|
- label: "dictValue",
|
|
|
- value: "dictValue"
|
|
|
+ {
|
|
|
+ label: '品牌',
|
|
|
+ prop: 'brandName',
|
|
|
+ disabled: false,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
},
|
|
|
- dicUrl: "/api/blade-system/dict-biz/dictionary?code=unit",
|
|
|
- overHidden: true,
|
|
|
- width: 100
|
|
|
- },
|
|
|
- {
|
|
|
- label: '备注',
|
|
|
- prop: "remarks",
|
|
|
- overHidden: true,
|
|
|
- width: 100,
|
|
|
- disabled: false,
|
|
|
+ {
|
|
|
+ label: '规格型号',
|
|
|
+ prop: 'propertyName',
|
|
|
+ overHidden: true,
|
|
|
+ disabled: false,
|
|
|
+ width: 100
|
|
|
+ }, {
|
|
|
+ label: '花纹',
|
|
|
+ prop: 'pattern',
|
|
|
+ overHidden: true,
|
|
|
+ disabled: false,
|
|
|
+ width: 100
|
|
|
+ }, {
|
|
|
+ label: '商品描述',
|
|
|
+ prop: 'goodsDescription',
|
|
|
+ disabled: false,
|
|
|
+ overHidden: true,
|
|
|
+ width: 100
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '单位',
|
|
|
+ prop: 'units',
|
|
|
+ type: "select",
|
|
|
+ disabled: false,
|
|
|
+ props: {
|
|
|
+ label: "dictValue",
|
|
|
+ value: "dictValue"
|
|
|
+ },
|
|
|
+ dicUrl: "/api/blade-system/dict-biz/dictionary?code=unit",
|
|
|
+ overHidden: true,
|
|
|
+ width: 100
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '备注',
|
|
|
+ prop: "remarks",
|
|
|
+ overHidden: true,
|
|
|
+ width: 100,
|
|
|
+ disabled: false,
|
|
|
|
|
|
- }
|
|
|
+ }
|
|
|
]
|
|
|
},
|
|
|
selectionMultilist: [], // 多选数据
|
|
@@ -702,39 +732,39 @@ export default {
|
|
|
label: '入库单号',
|
|
|
prop: 'billno'
|
|
|
},
|
|
|
- // {
|
|
|
- // label: '来源单号',
|
|
|
- // prop: 'ordNo'
|
|
|
- // },
|
|
|
- {
|
|
|
- label: '数量',
|
|
|
- prop: 'goodsTotalNum'
|
|
|
- }, {
|
|
|
- label: '实际数量',
|
|
|
- prop: 'sendTotalNum'
|
|
|
- }, {
|
|
|
- label: '业务类型',
|
|
|
- prop: 'bizTypeName'
|
|
|
- }, {
|
|
|
- label: '状态',
|
|
|
- prop: 'statusName'
|
|
|
- }, {
|
|
|
- label: '业务时间',
|
|
|
- prop: 'createTime'
|
|
|
- }]
|
|
|
+ // {
|
|
|
+ // label: '来源单号',
|
|
|
+ // prop: 'ordNo'
|
|
|
+ // },
|
|
|
+ {
|
|
|
+ label: '数量',
|
|
|
+ prop: 'goodsTotalNum'
|
|
|
+ }, {
|
|
|
+ label: '实际数量',
|
|
|
+ prop: 'sendTotalNum'
|
|
|
+ }, {
|
|
|
+ label: '业务类型',
|
|
|
+ prop: 'bizTypeName'
|
|
|
+ }, {
|
|
|
+ label: '状态',
|
|
|
+ prop: 'statusName'
|
|
|
+ }, {
|
|
|
+ label: '业务时间',
|
|
|
+ prop: 'createTime'
|
|
|
+ }]
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- components: { reportDialog, check, checkSchedule, dicSelect },
|
|
|
+ components: {reportDialog, check, checkSchedule, dicSelect},
|
|
|
props: {
|
|
|
onLoad: Object,
|
|
|
detailData: Object
|
|
|
},
|
|
|
async created() {
|
|
|
- this.findObject(this.optionContactsBack.column, "goodsId").click = ({ value, column }) => {
|
|
|
+ this.findObject(this.optionContactsBack.column, "goodsId").click = ({value, column}) => {
|
|
|
this.$refs.formContacts.dicInit()
|
|
|
}
|
|
|
- this.findObject(this.optionContactsBack.column, "goodsId").change = ({ value, column }) => {
|
|
|
+ this.findObject(this.optionContactsBack.column, "goodsId").change = ({value, column}) => {
|
|
|
if (this.formContacts.goodsId !== value) {
|
|
|
goodsDetail({
|
|
|
id: value,
|
|
@@ -793,7 +823,7 @@ export default {
|
|
|
} else if (this.onLoad.id) {
|
|
|
this.getDetail(this.onLoad.id, true)
|
|
|
}
|
|
|
- isProcurement({ "param": "number.decimal" }).then(res => {
|
|
|
+ isProcurement({"param": "number.decimal"}).then(res => {
|
|
|
this.numberDecimal = res.data.data ? Number(res.data.data) : 0
|
|
|
})
|
|
|
},
|
|
@@ -817,10 +847,10 @@ export default {
|
|
|
if (name == 'customerName') {
|
|
|
if (row) {
|
|
|
this.form.customerId = row.id
|
|
|
- getCustom({ id: row.id }).then(res => {
|
|
|
+ getCustom({id: row.id}).then(res => {
|
|
|
if (res.data.data) {
|
|
|
this.dicUrlWithCustomId = res.data.data.id ? res.data.data.id : ''
|
|
|
- this.form.storageId = this.form.storageId ? this.form.storageId : res.data.data.deliveryWarehouseId
|
|
|
+ // this.form.storageId = this.form.storageId ? this.form.storageId : res.data.data.deliveryWarehouseId
|
|
|
this.form.contacts = res.data.data.corpsAttnList[0].cname
|
|
|
this.form.phone = res.data.data.corpsAttnList[0].tel
|
|
|
this.contactsOption = res.data.data.corpsAddrList
|
|
@@ -830,7 +860,7 @@ export default {
|
|
|
this.form.customerId = null
|
|
|
this.form.customerName = null
|
|
|
this.dicUrlWithCustomId = null
|
|
|
- this.form.storageId = null
|
|
|
+ // this.form.storageId = null
|
|
|
this.form.contacts = null
|
|
|
this.form.phone = null
|
|
|
}
|
|
@@ -871,7 +901,7 @@ export default {
|
|
|
},
|
|
|
// 获取左侧筛选
|
|
|
getAllWorkDicts() {
|
|
|
- getCorpType({ corpType: 'SP', whetherIntegral: '0' }).then(res => {
|
|
|
+ getCorpType({corpType: 'SP', whetherIntegral: '0'}).then(res => {
|
|
|
this.treeDataGoods = res.data.data;
|
|
|
});
|
|
|
},
|
|
@@ -879,7 +909,7 @@ export default {
|
|
|
nodeClick(data) {
|
|
|
this.treeDeptId = data.id;
|
|
|
this.page.currentPage = 1;
|
|
|
- this.onLoadfun(this.page, { ...this.SelectSearch, goodsTypeId: this.treeDeptId });
|
|
|
+ this.onLoadfun(this.page, {...this.SelectSearch, goodsTypeId: this.treeDeptId});
|
|
|
},
|
|
|
closeGoods() {
|
|
|
this.treeDataGoods = [];
|
|
@@ -892,7 +922,7 @@ export default {
|
|
|
this.onLoadfun(this.page);
|
|
|
},
|
|
|
// 这个方法是解决 this.onLoad is not a function 的问题
|
|
|
- onaloadfun(page, params = { artsVision: this.form.belongToCorpId }) {
|
|
|
+ onaloadfun(page, params = {artsVision: this.form.belongToCorpId}) {
|
|
|
this.loading = true;
|
|
|
getList({
|
|
|
...params,
|
|
@@ -949,7 +979,7 @@ export default {
|
|
|
},
|
|
|
//确认导入触发
|
|
|
async importGoods() {
|
|
|
- this.surplusRouteQuantityOption.push({ storageQuantity: '0' });
|
|
|
+ this.surplusRouteQuantityOption.push({storageQuantity: '0'});
|
|
|
if (this.goodsListSave.length > 0) {
|
|
|
this.goodsListSaveHandle()
|
|
|
} else {
|
|
@@ -1077,7 +1107,7 @@ export default {
|
|
|
hangeditBtn(row, index) {
|
|
|
for (let item of this.form.planItemsList) {
|
|
|
this.picihaolistfun(item.goodsId)
|
|
|
- getDetailsLT({ id: item.goodsId }).then((res) => {
|
|
|
+ getDetailsLT({id: item.goodsId}).then((res) => {
|
|
|
this.$set(item, 'whether', res.data.data.whether)
|
|
|
})
|
|
|
}
|
|
@@ -1173,6 +1203,38 @@ export default {
|
|
|
},
|
|
|
approve(type) {
|
|
|
this.approveVisible = true
|
|
|
+ this.auditMsg = null
|
|
|
+ },
|
|
|
+ auditPlan(type) {
|
|
|
+ if (type == 2) {
|
|
|
+ this.$confirm('是否提交审核?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ let obj = {
|
|
|
+ id: this.form.id,
|
|
|
+ status: type,
|
|
|
+ auditMsg: type == 3 ? this.auditMsg : null,
|
|
|
+ version: this.form.version
|
|
|
+ }
|
|
|
+ auditPlan(obj).then(res => {
|
|
|
+ this.getDetail(this.form.id)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (type == 3) {
|
|
|
+ let obj = {
|
|
|
+ id: this.form.id,
|
|
|
+ status: type,
|
|
|
+ auditMsg: type == 3 ? this.auditMsg : null,
|
|
|
+ version: this.form.version
|
|
|
+ }
|
|
|
+ auditPlan(obj).then(res => {
|
|
|
+ this.getDetail(this.form.id)
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
},
|
|
|
//修改提交触发
|
|
|
editCustomer(type) {
|
|
@@ -1201,19 +1263,22 @@ export default {
|
|
|
this.form.planItemsList[i].sendNum = 0
|
|
|
}
|
|
|
}
|
|
|
- this.form.status = type
|
|
|
+ let obj = {
|
|
|
+ ...this.form,
|
|
|
+ storageName: this.form.$storageId ? this.form.$storageId : '',
|
|
|
+ status: type,
|
|
|
+ }
|
|
|
const loading = this.$loading({
|
|
|
lock: true,
|
|
|
text: '加载中',
|
|
|
spinner: 'el-icon-loading',
|
|
|
background: 'rgba(255,255,255,0.7)'
|
|
|
});
|
|
|
- this.form.storageName = this.form.$storageId ? this.form.$storageId : ''
|
|
|
- submit(this.form).then(res => {
|
|
|
+
|
|
|
+ submit(obj).then(res => {
|
|
|
this.$message.success("操作成功");
|
|
|
this.mingxibaocun = true
|
|
|
this.getDetail(res.data.data)
|
|
|
- loading.close();
|
|
|
}).finally(() => {
|
|
|
loading.close();
|
|
|
});
|
|
@@ -1233,7 +1298,7 @@ export default {
|
|
|
spinner: 'el-icon-loading',
|
|
|
background: 'rgba(255,255,255,0.7)'
|
|
|
})
|
|
|
- getDetails({ id: id }).then(res => {
|
|
|
+ getDetails({id: id}).then(res => {
|
|
|
this.form = res.data.data
|
|
|
this.dataList = res.data.data.paymentRecordsList ? res.data.data.paymentRecordsList : [];
|
|
|
this.$nextTick(() => {
|
|
@@ -1255,16 +1320,16 @@ export default {
|
|
|
cancelButtonText: "取消",
|
|
|
type: "warning"
|
|
|
}).then(() => {
|
|
|
- if (row.id) {
|
|
|
- itemRemove({ ids: row.id }).then(res => {
|
|
|
- this.form.planItemsList.splice(index, 1);
|
|
|
+ if (row.id) {
|
|
|
+ itemRemove({ids: row.id}).then(res => {
|
|
|
+ this.form.planItemsList.splice(index, 1);
|
|
|
+ this.$message.success("操作成功!");
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.form[type].splice(index, 1);
|
|
|
this.$message.success("操作成功!");
|
|
|
- });
|
|
|
- } else {
|
|
|
- this.form[type].splice(index, 1);
|
|
|
- this.$message.success("操作成功!");
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
);
|
|
|
},
|
|
|
// 明细信息多选
|
|
@@ -1296,7 +1361,7 @@ export default {
|
|
|
})
|
|
|
// 有id 的处理
|
|
|
if (itemsWithId.length != 0) {
|
|
|
- itemRemove({ ids: arrIds.join(',') }).then(res => {
|
|
|
+ itemRemove({ids: arrIds.join(',')}).then(res => {
|
|
|
this.$message.success("操作成功!");
|
|
|
});
|
|
|
}
|
|
@@ -1319,7 +1384,11 @@ export default {
|
|
|
},
|
|
|
rowAdd(row) {
|
|
|
if (!this.form.customerId) {
|
|
|
- this.$message.error('请选择供应商')
|
|
|
+ this.$message.error('请选择货主')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (!this.form.storageId) {
|
|
|
+ this.$message.error('请选择仓库')
|
|
|
return
|
|
|
}
|
|
|
this.optionContactsBack.column.forEach(its => {
|