123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <!-- import CSS -->
- <link rel="stylesheet" href="../../css/index.css">
- <!-- import Vue before Element -->
- <script src="../../js/vue.js"></script>
- <!-- import JavaScript -->
- <script src="../../js/index.js"></script>
- <script src="../../js/axios.js"></script>
- </head>
- <body>
- <div id="app" v-cloak>
- <div style="padding: 20px;">
- <div>
- <div class="commonCss">
- <el-form :inline="true" :model="formInline" class="demo-form-inline">
- <el-form-item label="盘点计划名称">
- <el-input v-model="formInline.planName" placeholder="入库单号"></el-input>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="queryClick()">查询</el-button>
- </el-form-item>
- </el-form>
- </div>
- <el-row class="filter-container" style="margin-bottom:10px">
- <el-col>
- <el-button type="primary" icon="el-icon-plus" size="medium" v-has-permission="['goodsShelves:add']" @click="add()">新增</el-button>
- </el-col>
- </el-row>
- <el-table ref="singleTable" :data="migrationResultList" v-loading="loading" :border=true
- tooltip-effect="dark"
- highlight-current-row max-height="500" style="width: 100%;overflow-x: auto;"
- :default-sort="{prop: 'createDate', order: 'descending'}">
- <el-table-column prop="planName" label="盘点计划名称" :show-overflow-tooltip="true" fixed="left"></el-table-column>
- <el-table-column prop="planCode" label="盘点计划编码" :show-overflow-tooltip="true"></el-table-column>
- <el-table-column prop="planType" label="盘点类型" :show-overflow-tooltip="true">
- <template slot-scope="{ row }">
- <el-tag >
- {{ getInOutTypeText(row.planType) }}
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column prop="planStrategy" label="盘点策略" :show-overflow-tooltip="true">
- <template slot-scope="{ row }">
- <el-tag >
- {{ getDetailTypeText(row.planStrategy) }}
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column prop="status" label="是否启用" :show-overflow-tooltip="true">
- <template slot-scope="{ row }">
- <el-tag >
- {{ getTypeText(row.status) }}
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column prop="planInput" label="盘点数据" :show-overflow-tooltip="true"></el-table-column>
- <el-table-column prop="remarks" label="备注" :show-overflow-tooltip="true"></el-table-column>
- <el-table-column label="操作" :show-overflow-tooltip="true" fixed="right" width="450px">
- <template #default="scope">
- <!-- 这里放置操作按钮 -->
- <div class="button-group">
- <el-button type="primary" @click="edit(scope.row,'edit')" icon="el-icon-edit" >编辑</el-button>
- <!--
- <el-button type="primary" @click="view(scope.row)" icon="el-icon-edit" >查看</el-button>
- -->
- <el-button type="danger" @click="orderDelete(scope.row)" icon="el-icon-delete" >删除</el-button>
- <el-button type="primary" @click="updateStatus(scope.row)" icon="el-icon-check">{{ scope.row.status === 1 ? '关闭' : '启用' }}</el-button>
- <el-button type="primary" @click="savePlanTask(scope.row)" icon="el-icon-check" >执行</el-button>
- </div>
- </template>
- </el-table-column>
- </el-table>
- <div class="pagination-block">
- <el-pagination :current-page="currentPage" :page-sizes="pageSizes" :total="total"
- :page-size="currentPageSize"
- layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
- @current-change="handleCurrentChange"/>
- </div>
- <el-dialog
- title="新增盘点计划"
- :visible.sync="dialogVisible"
- :before-close="handleClose">
- <el-form ref="form" :model="plan" :rules="rules" label-position="right" label-width="80px" size="medium">
- <!-- 刀具规格 -->
- <el-form-item label="盘点名称" prop="planName" >
- <el-input v-model.trim="plan.planName" :disabled="isViewMode"></el-input>
- </el-form-item>
- <el-form-item label="盘点类型" prop="planType">
- <el-select v-model="plan.planType" placeholder="请选择" :disabled="isViewMode" @change="handlePlanTypeChange">
- <el-option
- v-for="item in planTypeOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="盘点策略" prop="planStrategy">
- <el-select v-model="plan.planStrategy" placeholder="请选择" :disabled="isViewMode">
- <el-option
- v-for="item in planStrategyOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="盘点时间" prop="planTime">
- <el-date-picker
- v-model="plan.planTime"
- type="datetime"
- placeholder="盘点时间" :disabled="isViewMode">
- </el-date-picker>
- </el-form-item>
- <el-form-item label="物料编码" prop="planInput" v-if="!materialDisabled">
- <el-input type="text" v-model="plan.planInput" placeholder="物料编码" style="width: 300px"></el-input>
- </el-form-item>
- <el-form-item label="库位编码" prop="planInput" v-if="!storageDisabled">
- <el-input type="text" v-model="plan.planInput" placeholder="库位编码" style="width: 300px" ></el-input>
- </el-form-item>
- <el-form-item label="货架" prop="planStrategy" v-if="!shelfDisabled">
- <el-select v-model="plan.planInput" placeholder="请选择">
- <el-option
- v-for="item in shlefOptions"
- :key="item.shelfCode"
- :label="item.shelfName"
- :value="item.shelfCode">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="库房" prop="planStrategy" v-if="!wareDisabled">
- <el-select v-model="plan.planInput" placeholder="请选择">
- <el-option
- v-for="item in warehouseOptions"
- :key="item.warehouseCode"
- :label="item.warehouseName"
- :value="item.warehouseCode">
- </el-option>
- </el-select>
- </el-form-item>
- <!--<el-form-item label="盘点数据" prop="planInput">
- <el-input type="text" v-model="plan.planInput" placeholder="" style="width: 300px" :disabled="isViewMode"></el-input>
- </el-form-item>-->
- <el-form-item label="备注">
- <el-input type="text" v-model="plan.remarks" placeholder="" style="width: 300px" :disabled="isViewMode"></el-input>
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="dialogVisible = false">取 消</el-button>
- <el-button type="primary" @click="submit()" :disabled="isViewMode">确 定</el-button>
- </span>
- </el-dialog>
- <el-dialog
- title="执行出库"
- :visible.sync="dialogVisibleTask"
- :before-close="handleCloseTask" width="80%">
- <el-form :inline="true" :model="formInline" class="demo-form-inline">
- <el-form-item label="入库口">
- <el-select v-model="entryPoint" placeholder="请选择">
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item>
- <el-input type="text" v-model="palletCode" placeholder="托盘编码" style="width: 100px;" :disabled="true"></el-input>
- </el-form-item>
- <el-form-item>
- <el-input type="text" v-model="binCode" placeholder="料箱编码" style="width: 100px;" :disabled="true"></el-input>
- </el-form-item>
- <el-form-item>
- <el-input type="text" v-model="inputCode" placeholder="扫码顺序 托盘 > 物料编码" @change="handleScan()" style="width: 300px" ></el-input>
- </el-form-item>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="outSubmit()" :disabled="isViewMode">托盘回库</el-button>
- </el-form-item>
- </el-form>
- <div class="table-container" style="margin-bottom: 80px;margin-top: 20px;">
- <div class="table-wrapper">
- <div class="table-title">需求明细</div>
- <el-table ref="singleTable" :data="detailListTask" v-loading="loading" :border=true label="需求明细"
- tooltip-effect="dark"
- highlight-current-row max-height="500" style="width: 100%;margin-right:22px"
- :default-sort="{prop: 'createDate', order: 'descending'}"
- >
- <el-table-column prop="materialCode" label="物料编码" :show-overflow-tooltip="true"></el-table-column>
- <el-table-column prop="materialName" label="物料名称" :show-overflow-tooltip="true"></el-table-column>
- <el-table-column prop="planAmount" label="计划出库数量" :show-overflow-tooltip="true"></el-table-column>
- </el-table>
- </div>
- <div class="table-wrapper">
- <div class="table-title">库存明细</div>
- <el-table ref="singleTable" :data="detailListTask" v-loading="loading" :border=true label="库存明细"
- tooltip-effect="dark"
- highlight-current-row max-height="500" style="width: 100%;"
- :default-sort="{prop: 'createDate', order: 'descending'}"
- ><!--@row-click="rowClick"-->
- <el-table-column prop="materialCode" label="物料编码" :show-overflow-tooltip="true"></el-table-column>
- <el-table-column prop="storageLocationCode" label="库位编码" :show-overflow-tooltip="true"></el-table-column>
- <el-table-column label="托盘" :show-overflow-tooltip="true">
- <template #default="{ row }">
- <el-select v-model="row.outPalletCode" placeholder="请选择" @change="handleSelectChange(row)">
- <el-option
- v-for="option in row.inventoryManagementList"
- :key="option.storageLocationCode"
- :label="option.palletCode"
- :value="option.palletCode">
- </el-option>
- </el-select>
- </template>
- </el-table-column>
- <el-table-column prop="amount" label="库存数量" :show-overflow-tooltip="true"></el-table-column>
- <el-table-column label="操作">
- <template #default="scope">
- <!-- 这里放置操作按钮 -->
- <el-button type="primary" @click="getOutPalletCode(scope.row)">出库</el-button>
- <!-- 可以添加更多的操作按钮 -->
- </template>
- </el-table-column>
- </el-table>
- </div>
- </div>
- <div class="table-container" >
- <div class="table-wrapper">
- <div class="table-title">托盘明细</div>
- <el-table ref="singleTable" :data="detailListPallet" v-loading="loading" :border=true label="需求明细"
- tooltip-effect="dark"
- highlight-current-row max-height="500" style="width: 100%;margin-right:22px"
- :default-sort="{prop: 'createDate', order: 'descending'}"
- >
- <el-table-column prop="materialCode" label="物料编码" :show-overflow-tooltip="true"></el-table-column>
- <el-table-column prop="materialName" label="物料名称" :show-overflow-tooltip="true"></el-table-column>
- <el-table-column prop="amount" label="库存数量" :show-overflow-tooltip="true"></el-table-column>
- </el-table>
- </div>
- <div class="table-wrapper">
- <div class="table-title">
- <span>出库明细</span>
- <!--<el-input type="text" v-model="palletCode" placeholder="托盘编码" :disabled="true" style="width: 100px;margin-left:10px"></el-input>
- <el-input type="text" v-model="inputCode" placeholder="扫码顺序 托盘 > 物料编码" @change="handleScan()" style="width: 300px;margin-left:10px" ></el-input>
- <el-button type="primary" @click="outSubmit()" :disabled="isViewMode">托盘回库</el-button>-->
- </div>
- <el-table ref="singleTable" :data="detailListOut" v-loading="loading" :border=true label="库存明细"
- tooltip-effect="dark"
- highlight-current-row max-height="500" style="width: 100%;"
- :default-sort="{prop: 'createDate', order: 'descending'}" @selection-change="handleSelectionChange"
- >
- <el-table-column
- type="selection"
- >
- </el-table-column>
- <el-table-column prop="materialCode" label="物料编码" :show-overflow-tooltip="true"></el-table-column>
- <el-table-column prop="materialName" label="物料名称" :show-overflow-tooltip="true"></el-table-column>
- <el-table-column prop="amount" label="本次出库数量" :show-overflow-tooltip="true">
- <template slot-scope="scope">
- <el-input v-model="scope.row.amount" type="number"></el-input>
- </template>
- </el-table-column>
- </el-table>
- </div>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="handleCloseTask()">取 消</el-button>
- </span>
- </el-dialog>
- </div>
- </div>
- </div>
- </body>
- <style scoped>
- .table-container {
- display: flex;
- justify-content: space-between;
- width: 100%;
- }
- .table-wrapper {
- position: relative;
- width: 48%;
- }
- .table-title {
- position: absolute;
- top: -25px; /* Adjust based on your layout */
- left: 0;
- font-weight: bold;
- }
- </style>
- <script type="module">
- new Vue({
- el: '#app',
- data: function () {
- return {
- migrationResultList: [],
- detailList: [],
- detailListTask: [],
- detailListStore: [],
- detailListPallet: [],
- detailListOut: [],
- planTypeOptions: [],
- planStrategyOptions: [],
- shlefOptions: [],
- warehouseOptions: [],
- options:[],
- name: '',
- createDate: '',
- currentPage: 1,
- total: 0,
- currentPageSize: 10,
- pageSizes: [10, 50, 100, 200, 300],
- loading: false,
- formInline: {
- planName: ''
- },
- detailType:'',
- palletCode:'',
- dialogVisible:false,
- dialogVisibleTask:false,
- materialDisabled:true,
- storageDisabled:true,
- shelfDisabled:true,
- wareDisabled:true,
- plan: this.initOrder(),
- rules: {
- planName: [
- { required: true, message: '必填', trigger: 'blur' },
- ],
- planType: [
- { required: true, message: '必填', trigger: 'blur' },
- ],
- planStrategy: [
- { required: true, message: '必填', trigger: 'blur' },
- ],
- planInput: [
- { required: true, message: '必填', trigger: 'blur' },
- ],
- planTime: [
- { required: true, message: '必填', trigger: 'blur' },
- ],
- },
- inputCode:'',
- entryPoint:'',
- binCode:'',
- selection: [],
- isViewMode:false,
- planId:'',
- wInventoryTransactionOrdersId:'',
- shelfCode:'',
- }
- },
- created() {
- console.log("初始化")
- this.queryClick();
- this.getDic();
- },
- methods: {
- handleSizeChange(pageSize, total) {
- this.currentPage = 1;
- this.currentPageSize = pageSize;
- this.queryClick();
- },
- initOrder(){
- return{
- planName:'',
- planStrategy:'',
- planInput:'',
- planTime:'',
- remarks:'',
- planType:''
- }
- },
- handleCurrentChange(page) {
- this.currentPage = page;
- this.queryClick();
- },
- clear() {
- this.ylCard = '';
- this.master = '';
- }, getDic() {
- axios.post('/Dic/list', {
- 'dicCode': 'planType'
- })
- .then(response => {
- console.log(response)
- this.planTypeOptions = response.data;
- })
- .catch(error => {
- // 处理错误
- });
- axios.post('/Dic/list', {
- 'dicCode': 'planStrategy'
- })
- .then(response => {
- console.log(response)
- this.planStrategyOptions = response.data;
- })
- .catch(error => {
- // 处理错误
- });
- axios.get('/wShelfManagement', {
- })
- .then(response => {
- console.log(response)
- this.shlefOptions = response.data.data;
- })
- .catch(error => {
- // 处理错误
- });
- axios.get('/wWarehouseManagement', {
- })
- .then(response => {
- console.log(response)
- this.warehouseOptions = response.data.data;
- })
- .catch(error => {
- // 处理错误
- });
- },
- queryClick() {
- this.loading = true;
- axios.get('/wPInventoryCountPlan', {
- params:{
- page: this.currentPage,
- size: this.currentPageSize,
- planName:this.formInline.planName
- }
- })
- .then(response => {
- console.log(response)
- this.migrationResultList = response.data.list;
- this.total = response.data.total;
- // 处理响应
- this.loading = false;
- })
- .catch(error => {
- // 处理错误
- });
- }, getTypeText(status) {
- switch (status) {
- case 0:
- return "否"; // 第二种类型的文本
- case 1:
- return '是'; // 第三种类型的文本
- default:
- return ""
- }
- }, getInOutTypeText(status) {
- switch (status) {
- case 1:
- return '物料'; // 第三种类型的文本
- case 2:
- return '库位'; // 第四种类型的文本
- case 3:
- return '货架'; // 第四种类型的文本
- case 4:
- return '库房'; // 第四种类型的文本
- default:
- return ""
- }
- }, getDetailTypeText(status) {
- switch (status) {
- case 7:
- return "每周";
- case 30:
- return "每月";
- case 365:
- return "每年";
- default:
- return "";
- }
- },add(){
- this.dialogVisible=true;
- this.isViewMode=false;
- this.clearForm();
- },edit(row,view){
- if(view === 'view'){
- this.isViewMode=true;
- }else{
- this.isViewMode=false;
- }
- this.dialogVisible=true;
- axios.get('/wPInventoryCountPlan/'+row.id, {
- })
- .then(response => {
- console.log(response)
- if(response.status === 200){
- const res=response.data;
- this.planId=res.id;
- this.plan.planName=res.planName;
- this.plan.planCode=res.planCode;
- this.plan.planType=res.planType.toString();
- this.plan.planStrategy=res.planStrategy.toString();
- this.plan.planTime=res.planTime;
- this.plan.planInput=res.planInput;
- this.plan.remarks=res.remarks;
- if(res.planType == 1){
- this.materialDisabled=false;
- this.storageDisabled=true;
- this.shelfDisabled=true;
- this.wareDisabled=true;
- }else if(res.planType==2){
- this.materialDisabled=true;
- this.storageDisabled=false;
- this.shelfDisabled=true;
- this.wareDisabled=true;
- }else if(res.planType==3){
- this.materialDisabled=true;
- this.storageDisabled=true;
- this.shelfDisabled=false;
- this.wareDisabled=true;
- }else if(res.planType==4){
- this.materialDisabled=true;
- this.storageDisabled=true;
- this.shelfDisabled=true;
- this.wareDisabled=false;
- }
- }
- })
- .catch(error => {
- // 处理错误
- });
- },view(row){
- this.edit(row,'view');
- },orderDelete(row){
- this.$confirm('确认删除?')
- .then(_ => {
- axios.delete('/wPInventoryCountPlan', {
- params:{
- id:row.id
- }
- })
- .then(response => {
- console.log(response)
- if(response.data){
- this.$message({
- message: '删除成功',
- type: "success"
- })
- this.queryClick();
- }
- })
- .catch(error => {
- // 处理错误
- });
- done();
- })
- .catch(_ => {});
- },updateStatus(row){
- this.$confirm('确认开启?')
- .then(_ => {
- axios.get('/wPInventoryCountPlan/updateStatus/'+row.id, {
- })
- .then(response => {
- console.log(response)
- if(response.data){
- this.$message({
- message: '开启成功或关闭',
- type: "success"
- })
- this.queryClick();
- }
- })
- .catch(error => {
- // 处理错误
- });
- done();
- })
- .catch(_ => {});
- },handleSelectionChange(selection) {
- this.selection = selection
- },addNewRow() {
- // Define your new row object
- /*if(this.entryPoint === ''){
- this.$message.error('请选择当前入库口');
- return
- }*/
- const code= this.inputCode
- //判断输入的是托盘编码 料箱编码 物料编码
- axios.get('/wMaterial/'+code, {
- })
- .then(response => {
- console.log(response)
- const verify=response.data.data;
- if(verify === null){
- this.$message.error('无法识别'+code);
- this.inputCode='';
- return
- }
- this.verifCode(code,verify);
- })
- .catch(error => {
- // 处理错误
- });
- },verifCode(code,verify){
- //0 物料编码 1 托盘编码 2 料盒编码
- const newRow = {
- materialCode: code,
- materialName: verify.materialName,
- planAmount: 1,
- };
- this.inputCode='';
- if(this.detailList.length === 0){
- // Push the new row to migrationResultList
- this.detailList.push(newRow);
- this.addOutPalletCode(code);
- }else{
- let flag = true;
- this.detailList.forEach(item => {
- if (item.materialCode === code) {
- item.planAmount=parseInt(item.planAmount)+1;
- flag=false;
- }
- });
- if(flag){
- this.detailList.push(newRow);
- this.addOutPalletCode(code);
- }
- }
- },handleClose(done) {
- this.clearForm();
- this.dialogVisible=false;
- done();
- /* this.$confirm('确认关闭?')
- .then(_ => {
- })
- .catch(_ => {});*/
- },handleDelete(row) {
- // 从 migrationResultList 中删除当前行
- const index = this.detailList.indexOf(row);
- if (index !== -1) {
- this.detailList.splice(index, 1);
- }
- },submit(){
- axios.post('/wPInventoryCountPlan', {
- "id":this.planId,
- "planName":this.plan.planName,
- "planCode":this.plan.planCode,
- "planType":this.plan.planType,
- "planStrategy":this.plan.planStrategy,
- "planTime":this.plan.planTime,
- "planInput":this.plan.planInput,
- "remarks":this.plan.remarks,
- "status":0,
- "operation":this.planId === ''?"add":"edit"
- }).then(response => {
- if(response.data.success){
- this.$message({
- message: this.planId === ''?'保存成功':'修改成功',
- type: "success"
- })
- this.dialogVisible=false;
- this.queryClick();
- }
- })
- .catch(error => {
- // 处理错误
- });
- },clearForm(){
- this.planId='';
- this.plan.planName='';
- this.plan.planCode='';
- this.plan.planType='';
- this.plan.planStrategy='';
- this.plan.planTime='';
- this.plan.planInput='';
- this.plan.remarks='';
- },toDo(row){
- this.dialogVisibleTask=true;
- this.wInventoryTransactionOrdersId=row.id;
- axios.get('/order/getOrderById/'+row.id, {
- })
- .then(response => {
- console.log(response)
- if(response.data.success){
- const res=response.data.data;
- }
- })
- .catch(error => {
- // 处理错误
- });
- },handleCloseTask(){
- this.dialogVisibleTask=false;
- this.detailListPallet=[];
- this.inputCode='';
- this.palletCode='';
- },handleSelectChange(row){
- console.log(row)
- row.inventoryManagementList.forEach(item=>{
- if(row.outPalletCode === item.palletCode){
- row.storageLocationCode=item.storageLocationCode;
- row.amount=item.amount;
- return
- }
- })
- },
- rowClick(row, column, event){
- // 处理行点击事件
- console.log('Row clicked:', row);
- console.log('Column clicked:', column);
- console.log('Event:', event);
- axios.get('/wInventoryManagement/'+row.storageLocationCode, {
- })
- .then(response => {
- console.log(response)
- if(response.data.success){
- const res=response.data.data;
- this.detailListPallet=res;
- }
- })
- .catch(error => {
- // 处理错误
- });
- },handleScan(){
- console.log(this.inputCode)
- axios.get('/order/verifyCode/'+this.inputCode, {
- })
- .then(response => {
- const verify=response.data.data;
- if(verify === null){
- this.$message.error('无法识别'+this.inputCode);
- this.inputCode='';
- return
- }
- if(verify === 0){
- const needFlag=this.detailListTask.some(vo=>{
- if(vo.materialCode === this.inputCode){
- return true;
- }
- return false;
- })
- if(!needFlag){
- this.$message.error('需求明细无法识别'+this.inputCode);
- this.inputCode='';
- return;
- }
- const flag =this.detailListPallet.some(vo=>{
- if(vo.materialCode === this.inputCode){
- const flag1=this.detailListOut.some(item =>{
- if(item.materialCode === this.inputCode){
- item.amount=parseInt(item.amount)+1;
- return true;
- }
- return false;
- })
- if(!flag1){
- const newRow = {
- "materialCode":this.inputCode,
- "materialName":vo.materialName,
- "amount":1
- }
- this.detailListOut.push(newRow);
- }
- return true;
- }
- return false;
- })
- if(!flag){
- this.$message.error('托盘明细中无法识别'+this.inputCode);
- }
- }else if(verify === 1){
- console.log(this.detailListTask)
- const allMaterials = this.detailListTask.reduce((accumulator, currentObject) => {
- return accumulator.concat(currentObject.inventoryManagementList);
- }, []);
- let locationCode1='';
- const hasMatchingCode = allMaterials.some(task => {
- if (task.palletCode === this.inputCode) {
- locationCode1 = task.storageLocationCode;
- return true;
- }
- return false;
- });
- if(!hasMatchingCode){
- this.$message.error("库存明细中无法识别到 " + this.inputCode);
- this.inputCode='';
- return;
- }
- axios.get('/wInventoryManagement/'+locationCode1, {
- })
- .then(response => {
- console.log(response)
- if(response.data.success){
- const res=response.data.data;
- this.detailListPallet=res;
- }
- })
- .catch(error => {
- // 处理错误
- });
- this.palletCode=this.inputCode;
- }
- this.inputCode='';
- })
- .catch(error => {
- // 处理错误
- });
- },handleSelectionChange(selection) {
- this.selection = selection
- },outSubmit(){
- if (!this.selection.length) {
- this.$message({
- message: '至少勾选一行数据',
- type: "error"
- })
- return
- }
- this.selection.forEach(item=>{
- if(item.amount === '' || item.amount <= 0){
- this.$message({
- message: '本次出库数量不能为空或小于等于0',
- type: "error"
- })
- return
- }
- })
- if(this.entryPoint ===''){
- this.$message({
- message: '入库口不能为空',
- type: "error"
- })
- return
- }
- axios.post('/wStorageLocationManagement', {
- 'startPosition':this.entryPoint,
- 'wInventoryTransactionOrdersId':this.wInventoryTransactionOrdersId,
- 'vectorCode':this.palletCode,
- 'status':0,
- 'taskType':2,//代表实际的出入库操作
- 'detailList':this.selection
- })
- .then(response => {
- if(response.data.success){
- const code=response.data.data;
- this.$message({
- message: '空托盘 '+code +' 已出库',
- type: 'success'
- });
- }else{
- this.$message.error(response.data.data);
- }
- })
- .catch(error => {
- // 处理错误
- });
- },savePlanTask(row){
- this.$confirm('确认生成盘点任务吗?')
- .then(_ => {
- axios.post('/wPInventoryCountTask', {
- id:row.id
- })
- .then(response => {
- if(response.data.success){
- this.$message({
- message: '盘点任务生成成功',
- type: 'success'
- });
- }
- })
- .catch(error => {
- // 处理错误
- });
- done();
- })
- .catch(_ => {});
- },handlePlanTypeChange(value){
- console.log(value);
- if(value == 1){
- this.materialDisabled=false;
- this.storageDisabled=true;
- this.shelfDisabled=true;
- this.wareDisabled=true;
- }else if(value==2){
- this.materialDisabled=true;
- this.storageDisabled=false;
- this.shelfDisabled=true;
- this.wareDisabled=true;
- }else if(value==3){
- this.materialDisabled=true;
- this.storageDisabled=true;
- this.shelfDisabled=false;
- this.wareDisabled=true;
- }else if(value==4){
- this.materialDisabled=true;
- this.storageDisabled=true;
- this.shelfDisabled=true;
- this.wareDisabled=false;
- }
- }
- }
- })
- </script>
- </html>
|