界面调整
parent
2d52775207
commit
bf360febbe
|
|
@ -76,9 +76,9 @@ export function doCheckAsn(ids) {
|
|||
})
|
||||
}
|
||||
|
||||
export function invVerify(ids) {
|
||||
export function putawayAsn(ids) {
|
||||
return request({
|
||||
url: 'api/asnDetail/invVerify',
|
||||
url: 'api/asnDetail/putawayAsn',
|
||||
method: 'post',
|
||||
data:ids
|
||||
})
|
||||
|
|
|
|||
|
|
@ -35,6 +35,15 @@ export function xdckAllocate(data) {
|
|||
})
|
||||
}
|
||||
|
||||
export function qtckAllocate(data) {
|
||||
return request({
|
||||
url: 'api/pickTicket/qtckAllocate',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function xdckCancelAllocate(data) {
|
||||
return request({
|
||||
url: 'api/pickTicket/xdckCancelAllocate',
|
||||
|
|
@ -223,4 +232,4 @@ export function xdckPick(data) {
|
|||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del ,xdckPickOut,xdckAllocate,xdckCancelAllocate,pickingOperations,queryDetails,shipmentRegistration,xppPickGoods,xbjsVerify,pickWhole,pickBatch,pickSingle,pickForXpp,xdckPick}
|
||||
export default { add, edit, del ,xdckPickOut,xdckAllocate,qtckAllocate,xdckCancelAllocate,pickingOperations,queryDetails,shipmentRegistration,xppPickGoods,xbjsVerify,pickWhole,pickBatch,pickSingle,pickForXpp,xdckPick}
|
||||
|
|
|
|||
|
|
@ -56,6 +56,14 @@ export function xppBd(data) {
|
|||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function xppSplit(data) {
|
||||
return request({
|
||||
url: 'api/xppRecord/xppSplit',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/xppRecord',
|
||||
|
|
@ -104,4 +112,4 @@ export function cancelReceipt(data) {
|
|||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del, collectFromPass, addAsnDetail,xppLyOut,xppHyIn,changeFz,cancelReceiv,xppBd ,createReceipt,cancelReceipt,adjustOut}
|
||||
export default { add, edit, del, collectFromPass, addAsnDetail,xppLyOut,xppHyIn,changeFz,cancelReceiv,xppBd ,xppSplit,createReceipt,cancelReceipt,adjustOut}
|
||||
|
|
|
|||
|
|
@ -31,14 +31,8 @@
|
|||
:value="baseStatus.value"
|
||||
/>
|
||||
</el-select>-->
|
||||
<el-select v-model="query.rAreaCode" value-key="id" filterable placeholder="库区" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" clearable>
|
||||
<el-option
|
||||
v-for="item in rAreaList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
<AreaSelect :value-key="'id'" v-model="query.rAreaCode" @change="getChangeAreaValue" :bexb="null" />
|
||||
|
||||
<!--
|
||||
<el-select v-model="query.cAreaCode" value-key="id" filterable placeholder="出库库区" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" clearable>
|
||||
<el-option
|
||||
|
|
@ -53,25 +47,13 @@
|
|||
<date-range-picker v-model="query.createTime" class="date-item" style="width: 100px"/>
|
||||
<rrOperation :crud="crud" />
|
||||
<crudOperation :permission="permission" :tableKey="this.$options.name">
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
ref="upload"
|
||||
slot='right'
|
||||
style="float: right;padding-left: 5px"
|
||||
:action="baseApi+'/api/importData/bomAccount'"
|
||||
:file-list="fileList"
|
||||
:on-success=handleSuccess
|
||||
:on-error="handleError"
|
||||
:headers="headers"
|
||||
:show-file-list="true">
|
||||
<el-button size="mini" type="success" v-permission="permission.import" icon="el-icon-upload">导入</el-button>
|
||||
</el-upload>
|
||||
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
ref="upload"
|
||||
slot='right'
|
||||
style="float: right;padding-left: 5px"
|
||||
:action="baseApi+'/api/importData/bomAccountBatch'"
|
||||
:action="baseApi+'/api/importData/importBomAccountBatch'"
|
||||
:file-list="fileList"
|
||||
:on-success=handleSuccess
|
||||
:on-error="handleError"
|
||||
|
|
@ -80,36 +62,28 @@
|
|||
|
||||
<el-button size="mini" type="success" v-permission="permission.import" icon="el-icon-upload">导入(多列)</el-button>
|
||||
</el-upload>
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
size="mini" v-if="false"
|
||||
@click="showReport()"
|
||||
icon="el-icon-document-add"
|
||||
>
|
||||
导出EXCEl
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="primary" v-if="false"
|
||||
size="mini"
|
||||
@click="doDownlodExcel()"
|
||||
icon="el-icon-document-add"
|
||||
>
|
||||
下载EXCEL
|
||||
</el-button>
|
||||
<el-link href="/jmreport/view/912967151437389824" >导出</el-link>
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
ref="upload"
|
||||
slot='right'
|
||||
style="float: right;padding-left: 5px"
|
||||
:action="baseApi+'/api/importData/importBomAccount'"
|
||||
:file-list="fileList"
|
||||
:on-success=handleSuccess
|
||||
:on-error="handleError"
|
||||
:headers="headers"
|
||||
:show-file-list="true">
|
||||
<el-button size="mini" type="success" v-permission="permission.import" icon="el-icon-upload">导入</el-button>
|
||||
</el-upload>
|
||||
</crudOperation>
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="700px">
|
||||
<el-form ref="form" :model="form" :inline="true" :rules="rules" size="small" label-width="100px">
|
||||
<el-form-item label="完成品品番" prop="bigItem">
|
||||
<BigItemSelect :value-key="'id'" v-model="form.bigItem" />
|
||||
<BigItemSelect :value-key="'id'" v-model="form.bigItem" :immediate="true"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="部品品番" prop="item">
|
||||
<ItemSelect :value-key="'id'" v-model="form.item" />
|
||||
<ItemSelect :value-key="'id'" v-model="form.item" :immediate="true"/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="出库类型" prop="outType">
|
||||
<el-select v-model="form.outType" filterable placeholder="请选择" style="width: 180px;">
|
||||
|
|
@ -167,7 +141,7 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="货位" prop="zPoint">
|
||||
<PointSelect :value-key="'id'" v-model="form.zPoint" :point_type="'ZZKW'"/>
|
||||
<PointSelect :value-key="'id'" v-model="form.zPoint" :point_type="null" :immediate="true"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="台车库位" prop="tckw">
|
||||
<el-input v-model="form.tckw" style="width: 180px;" />
|
||||
|
|
@ -181,6 +155,9 @@
|
|||
<el-form-item label="刻印" prop="kyQz">
|
||||
<el-input v-model="form.kyQz" style="width: 180px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="大小物" prop="bp_type">
|
||||
<el-input v-model="form.bp_type" style="width: 180px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="描述" prop="description">
|
||||
<el-input v-model="form.description" :rows="3" type="textarea" style="width: 380px;" />
|
||||
</el-form-item>
|
||||
|
|
@ -196,25 +173,25 @@
|
|||
<el-table id="mytable" ref="table" border :height="crud.tableHeight" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler" >
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="id" label="序号" width="60" />
|
||||
<el-table-column prop="bigItem.code" label="完成品品番" width="120" />
|
||||
<el-table-column prop="bigItem.masterName" label="完成品形式名" width="150" align="center"/>
|
||||
<!--<el-table-column prop="rArea.code" label="工位" width="80"/>-->
|
||||
<el-table-column prop="item.code" label="子品番" width="100"/>
|
||||
<el-table-column prop="ns" label="纳所"/>
|
||||
<el-table-column prop="item.code" label="部品品番" width="100"/>
|
||||
<el-table-column prop="item.name" label="品名" width="150"/>
|
||||
<el-table-column prop="bonded" label="税别"/>
|
||||
<el-table-column prop="item.name" label="品名(多国语)" width="150"/>
|
||||
<el-table-column prop="supplier" label="本国语供应商1(多国语)" width="180" :show-overflow-tooltip="true"/>
|
||||
<el-table-column prop="ac" label="A/C" width="50"/>
|
||||
<el-table-column prop="contents" label="加工内容" width="70"/>
|
||||
<el-table-column prop="kyQz" label="刻印前缀" width="70"/>
|
||||
<el-table-column prop="singles" label="台用量" width="70"/>
|
||||
<el-table-column prop="zcfq" label="制材分区" />
|
||||
<el-table-column prop="zPoint.area.name" label="库区" />
|
||||
<el-table-column prop="zcfq" label="制材区分" />
|
||||
<el-table-column prop="zPoint.code" label="货位" />
|
||||
<el-table-column prop="xz" label="箱种"/>
|
||||
<el-table-column prop="srs" label="收容数"/>
|
||||
<el-table-column prop="tckw" label="台车库位"/>
|
||||
<el-table-column prop="tckw" label="工程(台车库位)" width="120"/>
|
||||
<el-table-column prop="bp_type" label="大小物"/>
|
||||
<el-table-column prop="supplier" label="供应商" width="120" :show-overflow-tooltip="true"/>
|
||||
<el-table-column prop="bonded" label="税别"/>
|
||||
<el-table-column prop="bigItem.code" label="机型代码" width="120" />
|
||||
<el-table-column prop="bigItem.masterName" label="机型" width="150" align="center"/>
|
||||
<el-table-column prop="kyQz" label="组顺/刻印号前2位" width="150"/>
|
||||
<el-table-column prop="singles" label="台用量" width="70"/>
|
||||
<el-table-column prop="zPoint.area.name" label="库区" />
|
||||
<!-- <el-table-column prop="cArea.code" label="出库库区" width="150" align="center" />
|
||||
<el-table-column prop="out_type#outType" label="出库类型" width="70">
|
||||
<template slot-scope="scope">
|
||||
|
|
@ -270,10 +247,13 @@ import {mapGetters} from "vuex";
|
|||
import ItemSelect from "@/views/generic-component/ItemSelect.vue";
|
||||
import BigItemSelect from "@/views/generic-component/BigItemSelect.vue";
|
||||
import PointSelect from "@/views/generic-component/PointSelect.vue";
|
||||
import AreaSelect from "@/views/generic-component/AreaSelect.vue";
|
||||
const defaultForm = { id: null, bigItem: null, supplier: null,item: null, contents: null, singles: null, rArea: null, zPoint:null,cArea: null, outType: null, station_type: null, bp_type: null, dept: null, enabled: null, createBy: null, updateBy: null, createTime: null, updateTime: null, description: null, ac: null, bonded: null,kyQz:null,tckw:null}
|
||||
export default {
|
||||
name: 'BomAccount',
|
||||
components: {PointSelect, ItemSelect,BigItemSelect, Link, DateRangePicker, pagination, crudOperation, rrOperation, udOperation },
|
||||
components: {
|
||||
AreaSelect,
|
||||
PointSelect, ItemSelect,BigItemSelect, Link, DateRangePicker, pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['process_content', 'out_type', 'station_type', 'bp_type','bonded_type','ac_type','zdw_type'],
|
||||
cruds() {
|
||||
|
|
@ -324,7 +304,7 @@ export default {
|
|||
},
|
||||
mounted() {
|
||||
//计算界面高度
|
||||
|
||||
console.log(this.value)
|
||||
},
|
||||
methods: {
|
||||
|
||||
|
|
@ -384,6 +364,9 @@ export default {
|
|||
getFormatDate(data){
|
||||
return formatDate(data);
|
||||
},
|
||||
getChangeAreaValue(dben) {
|
||||
this.query.rAreaCode = dben.code;
|
||||
},
|
||||
handleSuccess(response, file, fileList) {
|
||||
this.crud.notify('上传成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.$refs.upload.clearFiles()
|
||||
|
|
|
|||
|
|
@ -7,14 +7,8 @@
|
|||
<el-input v-model="query.itemCode" clearable placeholder="部品品番" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<el-input v-model="query.ns" clearable placeholder="纳所" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<el-input v-model="query.bp_type" clearable placeholder="大小物" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<el-select v-model="query.rAreaCode" value-key="id" filterable placeholder="库区" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" clearable>
|
||||
<el-option
|
||||
v-for="item in rAreaList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
<AreaSelect :value-key="'id'" v-model="query.rAreaCode" @change="getChangeAreaValue" :bexb="null"/>
|
||||
<PointCodeSelect :value-key="'id'" v-model="query.zPointCodes" :point_type="null" :multiple=true />
|
||||
<el-input v-model="query.zPointCode" clearable placeholder="货位" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||
<rrOperation :crud="crud" />
|
||||
<crudOperation :permission="permission" :tableKey="this.$options.name">
|
||||
|
|
@ -82,10 +76,15 @@ import Link from "@/layout/components/Sidebar/Link.vue";
|
|||
import excelUtil from "@/api/tools/excelUtil"
|
||||
import { formatDate } from '@/utils/commonUtils'
|
||||
import {mapGetters} from "vuex";
|
||||
import AreaSelect from "@/views/generic-component/AreaSelect.vue";
|
||||
import PointSelect from "@/views/generic-component/PointSelect.vue";
|
||||
import PointCodeSelect from "@/views/generic-component/PointCodeSelect.vue";
|
||||
const defaultForm = { id: null, bigItem: null, supplier: null,item: null, contents: null, singles: null, rArea: null, cArea: null, outType: null, station_type: null, bp_type: null, dept: null, enabled: null, createBy: null, updateBy: null, createTime: null, updateTime: null, description: null, ac: null, bonded: null, zPoint: { code: null }}
|
||||
export default {
|
||||
name: 'BomAccountBq',
|
||||
components: {Link, DateRangePicker, pagination, crudOperation, rrOperation, udOperation },
|
||||
components: {
|
||||
PointCodeSelect,
|
||||
PointSelect, AreaSelect, Link, DateRangePicker, pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['process_content', 'out_type', 'station_type', 'bp_type','bonded_type','ac_type','zdw_type'],
|
||||
cruds() {
|
||||
|
|
@ -198,7 +197,9 @@ export default {
|
|||
})
|
||||
})
|
||||
},
|
||||
|
||||
getChangeAreaValue(dben) {
|
||||
this.query.rAreaCode = dben.code;
|
||||
},
|
||||
saveBomPrintD() {
|
||||
console.log("打印中大物标签")
|
||||
queryBomPrintListD(this.crud.getQueryParams2()).then(res => {
|
||||
|
|
|
|||
|
|
@ -4,25 +4,29 @@
|
|||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!-- 搜索 -->
|
||||
<label class="el-form-item-label">库位号</label>
|
||||
<el-input v-model="query.code" clearable placeholder="库位号" style="width: 120px;" class="filter-item"
|
||||
<el-input v-model="query.code" clearable placeholder="库位号" style="width: 150px;"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
<label class="el-form-item-label">库区</label>
|
||||
<el-select v-model="query.areaName" style="width: 120px;" clearable placeholder="请选择"
|
||||
@keyup.enter.native="crud.toQuery" class="filter-item" @change="crud.toQuery" filterable
|
||||
<AreaCodeSelect v-model="query.areaCode" value-key="'id'" :bexb="null" filterable placeholder="请选择库区" style="width: 185px;"
|
||||
/>
|
||||
<el-input v-model="query.itemCode" clearable placeholder="品番" style="width: 150px;"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
<el-input v-model="query.bqlx" clearable placeholder="标签类型" style="width: 120px;"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
<el-select v-model="query.type" clearable placeholder="存储类型" value-key="id"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="area in areas"
|
||||
:key="area.id"
|
||||
:label="area.name"
|
||||
:value="area.name"
|
||||
/>
|
||||
style="width: 150px"
|
||||
v-for="item in this.dict.point_type"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<!-- <label class="el-form-item-label">启用</label>-->
|
||||
<!-- <el-input v-model="query.enabled" clearable placeholder="0"
|
||||
style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery" />-->
|
||||
<rrOperation :crud="crud"/>
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
|
|
@ -96,7 +100,7 @@
|
|||
<el-form-item label="纳所">
|
||||
<el-input v-model="form.beatCode" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="类型" prop="type">
|
||||
<el-form-item label="存储类型" prop="type">
|
||||
<el-select v-model="form.type" filterable placeholder="请选择" style="width: 370px;"
|
||||
:default-first-option="true"
|
||||
>
|
||||
|
|
@ -126,8 +130,8 @@
|
|||
<el-input v-model="form.invMin" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="描述">
|
||||
<el-input type="textarea" v-model="form.description" style="width: 370px;"/>
|
||||
<el-form-item label="标签类型">
|
||||
<el-input v-model="form.bqlx" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
|
@ -148,7 +152,7 @@
|
|||
<el-table-column prop="itemCode" label="品番"/>
|
||||
<el-table-column prop="beatCode" label="纳所"/>
|
||||
<el-table-column prop="invMin" label="库存下限"/>
|
||||
<el-table-column prop="point_type#type" label="类型">
|
||||
<el-table-column prop="point_type#type" label="存储类型">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.point_type[scope.row.type] }}
|
||||
</template>
|
||||
|
|
@ -163,7 +167,7 @@
|
|||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="description" label="描述"/>
|
||||
<el-table-column prop="bqlx" label="标签类型"/>
|
||||
|
||||
<el-table-column v-if="checkPer(['admin','item:edit'])" label="操作" width="60px" align="center">
|
||||
<template slot-scope="scope">
|
||||
|
|
@ -203,6 +207,7 @@ import crudStock from '@/api/stock'
|
|||
import pointUrl from '@/api/point'
|
||||
import {mapGetters} from "vuex";
|
||||
import {queryBomPrintListX} from "@/api/bomAccount";
|
||||
import AreaCodeSelect from "@/views/generic-component/AreaCodeSelect.vue";
|
||||
|
||||
const defaultForm = {
|
||||
id: null,
|
||||
|
|
@ -217,12 +222,12 @@ const defaultForm = {
|
|||
}
|
||||
export default {
|
||||
name: 'Point',
|
||||
components: { Treeselect, pagination, crudOperation, udOperation, rrOperation, viewFullStockIn, viewFullStockOut },
|
||||
components: {AreaCodeSelect, Treeselect, pagination, crudOperation, udOperation, rrOperation, viewFullStockIn, viewFullStockOut },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['base_staus', 'use_status', 'point_type', 'agv_on_off'],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '点位',
|
||||
title: '库位',
|
||||
url: 'api/point',
|
||||
idField: 'id',
|
||||
sort: 'id,desc',
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<div class="head-container" v-loading="this.loading_add" element-loading-text="拼命加载中" element-loading-background="rgba(0, 0, 0, 0.1)" >
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!-- 搜索 -->
|
||||
<el-input v-model="query.bigItemModels" clearable placeholder="请选择机型" style="width: 150px;" class="filter-item" @keyup.enter.native="crud.toQuery"/>
|
||||
<el-date-picker
|
||||
|
|
@ -354,6 +354,7 @@ export default {
|
|||
},
|
||||
loadingTF: false,
|
||||
sgscDisabled: true,
|
||||
loading_add:false,
|
||||
|
||||
}
|
||||
},
|
||||
|
|
@ -426,19 +427,22 @@ export default {
|
|||
this.haoYongOnOff = true
|
||||
},
|
||||
submitHaoYongForm() {
|
||||
this.loading_add=true;
|
||||
this.$refs['haoYongform'].validate(valid => {
|
||||
if (!valid) {
|
||||
this.loading_add=false;
|
||||
return
|
||||
}
|
||||
console.log(this.productionPlanVo)
|
||||
haoYong(this.productionPlanVo).then(res =>{
|
||||
console.log(res)
|
||||
if(res.status==200){
|
||||
this.crud.notify('批量耗用成功!', CRUD.NOTIFICATION_TYPE.SUCCESS);
|
||||
this.haoYongOnOff = false
|
||||
this.crud.refresh()
|
||||
this.loading_add=false;
|
||||
}
|
||||
});
|
||||
},e=>{
|
||||
this.loading_add=false;
|
||||
})
|
||||
|
||||
});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
@keyup.enter.native="crud.toQuery"/>
|
||||
<el-input v-model="query.relatedBill1" clearable placeholder="发票号" style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
<AreaSelect v-model="query.areaCode" :value-key="'id'" :bexb=false placeholder="请选择库区" style="width: 150px;" class="filter-item" @change="getChangeAreaVule"/>
|
||||
<AreaSelect v-model="query.areaCode" :value-key="'id'" :bexb=false placeholder="请选择库区" style="width: 150px;" class="filter-item" @change="getChangeAreaValue"/>
|
||||
|
||||
<!-- <el-input v-model="query.orderDate" clearable placeholder="订单日期" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />-->
|
||||
<!-- <label class="el-form-item-label">状态</label>-->
|
||||
|
|
@ -98,7 +98,7 @@
|
|||
<el-form-item label="箱单号" prop="code">
|
||||
<el-input v-model="form.cusCode" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="发票号" prop="code">
|
||||
<el-form-item label="发票号" prop="relatedBill1">
|
||||
<el-input v-model="form.relatedBill1" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单日期" prop="orderDate">
|
||||
|
|
@ -251,7 +251,7 @@
|
|||
<el-table-column prop="area.name" label="库区" align="center"/>
|
||||
<el-table-column prop="createBy" label="创建人" align="center"/>
|
||||
<el-table-column prop="createTime" label="创建时间" width="140px" align="center"/>
|
||||
<el-table-column v-if="checkPer(['admin','asn:edit','asn:del'])" label="操作" width="175px" align="center"
|
||||
<el-table-column v-if="checkPer(['admin','asn:del'])" label="操作" width="175px" align="center"
|
||||
fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
|
|
@ -290,7 +290,7 @@ import udOperation from '@crud/UD.operation.vue'
|
|||
import pagination from '@crud/Pagination.vue'
|
||||
import {getAreas} from '@/api/area'
|
||||
import {getBillType} from '@/api/billType'
|
||||
import {add, invVerify, queryAsnDetailAll} from '@/api/asnDetail'
|
||||
import {add, queryAsnDetailAll} from '@/api/asnDetail'
|
||||
import {queryPointList} from '@/api/point'
|
||||
import {queryItemAll} from '@/api/item'
|
||||
import {formatDate} from '@/utils/commonUtils'
|
||||
|
|
@ -522,24 +522,6 @@ export default {
|
|||
asnDetailRouter(datas) {
|
||||
this.$router.push({path: '/business-asn/viewAsnDetail', query: {ids: datas.id}})
|
||||
},
|
||||
//入库批量确认
|
||||
invVerifyS(data) {
|
||||
console.log(data)
|
||||
let ids = [];
|
||||
for (const idsKey of data) {
|
||||
ids.push(idsKey.id);
|
||||
}
|
||||
invVerify(ids).then(res => {
|
||||
// if (res != null){
|
||||
// this.$message.error(res)
|
||||
// }else {
|
||||
this.$message.success(res)
|
||||
this.crud.toQuery()
|
||||
// }
|
||||
}).catch(e => {
|
||||
this.$message.error(e)
|
||||
})
|
||||
},
|
||||
invVerifySTFM(selection, row) {
|
||||
if (selection.length > 0) {
|
||||
this.invVerifySTF = false;
|
||||
|
|
@ -591,10 +573,10 @@ export default {
|
|||
this.mutilPutawayVisible = false
|
||||
})
|
||||
},
|
||||
getChangeVule(dben) {
|
||||
getChangeValue(dben) {
|
||||
this.plsjForm.pointId = dben.id;
|
||||
},
|
||||
getChangeAreaVule(dben) {
|
||||
getChangeAreaValue(dben) {
|
||||
this.query.areaCode = dben.code;
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="单据类型" prop="billType">
|
||||
<BillTypeSelect v-model="asnFrom.billType" :value-key="'id'" :bill_code="'XDRK'"/>
|
||||
<BillTypeSelect v-model="asnFrom.billType" :value-key="'id'" :bill_code="'XDRK'" :immediate="true"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
|
|
@ -144,7 +144,7 @@
|
|||
style="height: 200px"
|
||||
>
|
||||
<el-form-item label="部品品番" prop="item" style="float: left">
|
||||
<ItemSelect :value-key="'id'" v-model="form.item" />
|
||||
<ItemSelect :value-key="'id'" v-model="form.item" :immediate="true"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单数量" prop="orderQty" style="float: left">
|
||||
<el-input v-model="form.orderQty" style="width: 200px;"/>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="单据类型" prop="billType">
|
||||
<BillTypeSelect v-model="asnFrom.billType" :value-key="'id'" :bill_code="'XBRK'"/>
|
||||
<BillTypeSelect v-model="asnFrom.billType" :value-key="'id'" :bill_code="'XBRK'" :immediate="true"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" :tableKey="this.$options.name">
|
||||
<el-button
|
||||
<!--<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
|
|
@ -71,8 +71,8 @@
|
|||
:loading="logining3"
|
||||
>
|
||||
取消上架
|
||||
</el-button>
|
||||
<!-- <el-upload
|
||||
</el-button>-->
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
ref="upload"
|
||||
slot='right'
|
||||
|
|
@ -84,7 +84,7 @@
|
|||
:headers="headers"
|
||||
:show-file-list="true">
|
||||
<el-button size="mini" type="success" icon="el-icon-upload">导入</el-button>
|
||||
</el-upload>-->
|
||||
</el-upload>
|
||||
</crudOperation>
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0"
|
||||
|
|
@ -94,7 +94,7 @@
|
|||
style="height: 300px"
|
||||
>
|
||||
<el-form-item label="制造库位" prop="zzkwCode">
|
||||
<BomAccountPointSelect v-model="form.point.code" :value-key="'bom_account_id'" @change="getChangeVule"/>
|
||||
<BomAccountPointSelect v-model="form.point.code" :value-key="'bom_account_id'" @change="getChangeVule" :immediate="true"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="品番">
|
||||
<el-input v-model="form.item.code" />
|
||||
|
|
@ -124,11 +124,9 @@
|
|||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column prop="item.code" label="品番"/>
|
||||
<el-table-column prop="item.name" label="品名"/>
|
||||
<el-table-column prop="po" label="po"/>
|
||||
<el-table-column prop="orderQty" label="订单数量"/>
|
||||
<el-table-column prop="receivedQty" label="收货数量"/>
|
||||
<el-table-column prop="point.code" label="库位"/>
|
||||
<el-table-column prop="propC1" label="批次号"/>
|
||||
<el-table-column prop="propC2" label="税别"/>
|
||||
<el-table-column prop="remark" label="备注">
|
||||
<template slot-scope="scope">
|
||||
|
|
|
|||
|
|
@ -7,18 +7,7 @@
|
|||
<!-- <label class="el-form-item-label">单号</label>-->
|
||||
<el-input v-model="query.code" clearable placeholder="单号" style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
<el-select v-model="query.areaCode" clearable placeholder="库区" value-key="id" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery">
|
||||
<el-option
|
||||
style="width: 180px"
|
||||
v-for="item in areaOptions"
|
||||
:key="item.id"
|
||||
:label="item.code"
|
||||
:value="item.code"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
|
||||
<AreaSelect v-model="query.areaCode" :value-key="'id'" :bexb=true placeholder="请选择库区" style="width: 150px;" class="filter-item" @change="getChangeAreaVule"/>
|
||||
<!-- <el-input v-model="query.orderDate" clearable placeholder="订单日期" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />-->
|
||||
<!-- <label class="el-form-item-label">状态</label>-->
|
||||
<el-select v-model="query.status" clearable placeholder="状态" value-key="id" class="filter-item"
|
||||
|
|
@ -68,90 +57,7 @@
|
|||
@click="invVerifyS(crud.selections)">
|
||||
整单入库
|
||||
</el-button>
|
||||
|
||||
<el-button
|
||||
slot="left"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
icon="el-icon-upload2"
|
||||
size="mini"
|
||||
v-permission="permission.import"
|
||||
@click="showImportDialog">
|
||||
导入
|
||||
</el-button>
|
||||
|
||||
<!-- <el-button-->
|
||||
<!-- slot="right"-->
|
||||
<!-- class="filter-item"-->
|
||||
<!-- type="primary"-->
|
||||
<!-- icon="el-icon-plus"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- :disabled="crud.selections.length!=1"-->
|
||||
<!-- @click="asnDetailRouter(crud.selections)"-->
|
||||
<!-- >-->
|
||||
<!-- 明细-->
|
||||
<!-- </el-button>-->
|
||||
</crudOperation>
|
||||
<!--自己定义新增表单组件-->
|
||||
<el-dialog :visible.sync="inserAsnOnOff" :title="(this.updateAsnOnOff ? '修改 ':'新增 ')+'收货管理'" width="900px"
|
||||
>
|
||||
<el-form ref="form" :model="asnFrom" :rules="rules" size="small" label-width="80px" style="height: 120px">
|
||||
<el-form-item label="单号" prop="code" style="float: left">
|
||||
<el-input :disabled="true" v-model="asnFrom.code" style="width: 180px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="数量" style="float: left">
|
||||
<el-input :disabled="true" v-model="asnFrom.receivedQuantity" style="width: 180px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="库区" prop="area" style="float: left">
|
||||
<!-- <el-input v-model="form.area" style="width: 370px;"/>-->
|
||||
<el-select v-model="asnFrom.area" clearable placeholder="请选择库区" value-key="id">
|
||||
<el-option
|
||||
style="width: 180px"
|
||||
v-for="item in areaOptions"
|
||||
:key="item.id"
|
||||
:label="item.code"
|
||||
:value="item"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单日期" prop="orderDate" style="float: left">
|
||||
<!-- <el-input v-model="asnFrom.orderDate" style="width: 370px;"/>-->
|
||||
<el-date-picker
|
||||
style="width: 180px"
|
||||
v-model="asnFrom.orderDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="选择日期"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="单据类型" style="float: left">
|
||||
<!-- <el-input v-model="form.billType" style="width: 370px;"/>-->
|
||||
<el-select @change="billTypeSelect" v-model="asnFrom.billType" clearable placeholder="请选择单据类型"
|
||||
value-key="id"
|
||||
style="width: 180px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in billTypeOptions"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="备注" style="float: left">
|
||||
<el-input type="textarea" :rows="2" v-model="asnFrom.description" style="width: 400px;"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="inserAsnOnOff=false">取消</el-button>
|
||||
<el-button type="primary" @click="submitFrom(asnFrom)">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0"
|
||||
:title="crud.status.title" width="400px" :height="crud.tableHeight" border
|
||||
|
|
@ -160,34 +66,9 @@
|
|||
<el-form-item label="单号" prop="code">
|
||||
<el-input :disabled="true" v-model="form.code" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="库区" prop="area">
|
||||
<!-- <el-input v-model="form.area" style="width: 370px;"/>-->
|
||||
<el-select v-model="form.area" clearable placeholder="请选择库区" style="width: 200px">
|
||||
<el-option
|
||||
v-for="item in areaOptions"
|
||||
:key="item.code"
|
||||
:label="item.code"
|
||||
:value="item"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单日期" prop="orderDate">
|
||||
<el-input v-model="form.orderDate" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="单据类型">
|
||||
<!-- <el-input v-model="form.billType" style="width: 370px;"/>-->
|
||||
<el-select v-model="form.billType" clearable placeholder="请选择单据类型" value-key="id"
|
||||
style="width: 200px">
|
||||
<el-option
|
||||
v-for="item in billTypeOptions"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注">
|
||||
<el-input v-model="form.description" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
|
|
@ -198,96 +79,6 @@
|
|||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 导入对话框 -->
|
||||
<el-dialog :visible.sync="importDialogVisible" title="导入" width="800px">
|
||||
<el-tabs v-model="activeImportTab" type="card">
|
||||
<el-tab-pane label="模板一:标准导入" name="template1">
|
||||
<div class="import-content">
|
||||
<div class="template-info">
|
||||
<h4>模板说明:</h4>
|
||||
<p>适用于<span style="color: red">标准</span>导入,包含INVOICE NO.、BOI、PO&LN NO.、PART
|
||||
NO.、DESCRIPTION、Q'TY(PCS) 、C/NO.</p>
|
||||
<el-button type="primary" size="small" @click="downloadTemplate('template1')">下载模板</el-button>
|
||||
</div>
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
drag
|
||||
accept=".xlsx,.xls,.csv"
|
||||
action="#"
|
||||
:auto-upload="false"
|
||||
:file-list="fileList1"
|
||||
:on-change="handleExcelChange"
|
||||
:on-remove="handleExcelRemove"
|
||||
>
|
||||
<i class="el-icon-upload"></i>
|
||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||
<div class="el-upload__tip" slot="tip" style="color: red">注意:更新文件后请重新上传(支持.xlsx, .xls,
|
||||
.csv 格式文件)
|
||||
</div>
|
||||
</el-upload>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="模板二:大物导入" name="template2">
|
||||
<div class="import-content">
|
||||
<div class="template-info">
|
||||
<h4>模板说明:</h4>
|
||||
<p>适用于<span style="color: red">大物</span>导入,包含INVOICE NO.、BOI、PO&LN NO.、PART
|
||||
NO.、DESCRIPTION、Q'TY(PCS) 、C/NO.</p>
|
||||
</div>
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
drag
|
||||
accept=".xlsx,.xls,.csv"
|
||||
action="#"
|
||||
:auto-upload="false"
|
||||
:file-list="fileList2"
|
||||
:before-upload="beforeExcelUpload"
|
||||
:on-change="handleExcelChange"
|
||||
:on-remove="handleExcelRemove"
|
||||
>
|
||||
<i class="el-icon-upload"></i>
|
||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||
<div class="el-upload__tip" slot="tip" style="color: red">注意:更新文件后请重新上传(支持.xlsx, .xls,
|
||||
.csv 格式文件)
|
||||
</div>
|
||||
</el-upload>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="模板三:空运发票箱单导入" name="template3">
|
||||
<div class="import-content">
|
||||
<div class="template-info">
|
||||
<h4>模板说明:</h4>
|
||||
<p>适用于<span style="color: red">空运发票箱单</span>导入,包含INV.NO.、A-PROS CASE NO、KMT NO. PO&LN NO.、PART NO.、
|
||||
DESCRIPTION、Q'TY 、C/NO.</p>
|
||||
</div>
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
drag
|
||||
accept=".xlsx,.xls,.csv"
|
||||
action="#"
|
||||
:auto-upload="false"
|
||||
:file-list="fileList3"
|
||||
:before-upload="beforeExcelUpload"
|
||||
:on-change="handleExcelChange"
|
||||
:on-remove="handleExcelRemove"
|
||||
>
|
||||
<i class="el-icon-upload"></i>
|
||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||
<div class="el-upload__tip" slot="tip" style="color: red">注意:更新文件后请重新上传(支持.xlsx, .xls,
|
||||
.csv 格式文件)
|
||||
</div>
|
||||
</el-upload>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="cancelImport">取消</el-button>
|
||||
<el-button type="primary" @click="confirmImport" :loading="importLoading">确认导入</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;"
|
||||
@selection-change="crud.selectionChangeHandler" :height="crud.tableHeight" @select="invVerifySTFM"
|
||||
|
|
@ -308,7 +99,7 @@
|
|||
<el-table-column prop="receivedQuantity" label="收货数量" align="center"/>
|
||||
<el-table-column prop="createBy" label="创建人" align="center"/>
|
||||
<el-table-column prop="createTime" label="创建时间" width="140px" align="center"/>
|
||||
<el-table-column v-if="checkPer(['admin','asn:edit','asn:del'])" label="操作" width="175px" align="center"
|
||||
<el-table-column v-if="checkPer(['admin','asn:del'])" label="操作" width="175px" align="center"
|
||||
fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
|
|
@ -347,11 +138,12 @@ import udOperation from '@crud/UD.operation.vue'
|
|||
import pagination from '@crud/Pagination.vue'
|
||||
import {getAreas} from '@/api/area'
|
||||
import {getBillType} from '@/api/billType'
|
||||
import {add, invVerify, queryAsnDetailAll} from '@/api/asnDetail'
|
||||
import {add, putawayAsn, queryAsnDetailAll} from '@/api/asnDetail'
|
||||
import {queryPointList} from '@/api/point'
|
||||
import {queryItemAll} from '@/api/item'
|
||||
import {formatDate} from '@/utils/commonUtils'
|
||||
import UploadExcelComponent from '@/components/UploadExcel/index.vue'
|
||||
import AreaSelect from "@/views/generic-component/AreaSelect.vue";
|
||||
|
||||
const defaultForm = {
|
||||
id: null,
|
||||
|
|
@ -383,7 +175,7 @@ const defaultForm = {
|
|||
}
|
||||
export default {
|
||||
name: 'Xbrk',
|
||||
components: {pagination, crudOperation, rrOperation, udOperation, DateRangePicker, UploadExcelComponent},
|
||||
components: {AreaSelect, pagination, crudOperation, rrOperation, udOperation, DateRangePicker, UploadExcelComponent},
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['asn_status','bonded_type'],
|
||||
cruds() {
|
||||
|
|
@ -564,26 +356,7 @@ export default {
|
|||
this.crud.toQuery()
|
||||
})
|
||||
},
|
||||
billTypeSelect(value) {
|
||||
this.inserAsnOnOffM(value.code)
|
||||
},
|
||||
//物料数据
|
||||
itemDataGet() {
|
||||
queryItemAll({}).then(res => {
|
||||
this.itemListData = res
|
||||
}).catch(e => {
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: '物料加载失败',
|
||||
type: 'error'
|
||||
})
|
||||
})
|
||||
},
|
||||
getPointData() {
|
||||
queryPointList().then(res => {
|
||||
this.pointList = res
|
||||
})
|
||||
},
|
||||
|
||||
//queryAsnAll
|
||||
getAsnData() {
|
||||
queryAsnAll().then(res => {
|
||||
|
|
@ -600,7 +373,7 @@ export default {
|
|||
for (const idsKey of data) {
|
||||
ids.push(idsKey.id);
|
||||
}
|
||||
invVerify(ids).then(res => {
|
||||
putawayAsn(ids).then(res => {
|
||||
// if (res != null){
|
||||
// this.$message.error(res)
|
||||
// }else {
|
||||
|
|
@ -779,6 +552,9 @@ export default {
|
|||
this.fileList3 = [];
|
||||
}
|
||||
},
|
||||
getChangeAreaVule(dben) {
|
||||
this.query.areaCode = dben.code;
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -222,6 +222,18 @@
|
|||
现品票补打
|
||||
</el-button>
|
||||
|
||||
<el-button
|
||||
slot="right"
|
||||
v-permission="permission.showXppBd"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
size="mini"
|
||||
:disabled="crud.selections.length != 1"
|
||||
@click="showXppSplit(crud.selections[0])"
|
||||
>
|
||||
现品票拆分
|
||||
</el-button>
|
||||
|
||||
</crudOperation>
|
||||
<!--表单组件-->
|
||||
<el-dialog
|
||||
|
|
@ -284,6 +296,34 @@
|
|||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 现品票拆分-->
|
||||
<el-dialog title="现品票拆分" :visible.sync="xppSplitOnOff" width="700px" >
|
||||
<el-form ref="form" :model="xppSplitForm" :rules="rules" size="small" label-width="80px" :inline="true">
|
||||
<el-form-item label="品番">
|
||||
<el-input v-model="xppSplitForm.xppRecord.item_code" :disabled="true" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="品名">
|
||||
<el-input v-model="xppSplitForm.xppRecord.item_name" :disabled="true" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单号">
|
||||
<el-input v-model="xppSplitForm.xppRecord.ddbh" :disabled="true" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="纳入数">
|
||||
<el-input v-model="xppSplitForm.xppRecord.nrs" :disabled="true" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="分支号">
|
||||
<el-input v-model="xppSplitForm.xppRecord.fzh" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="拆分数">
|
||||
<el-input v-model="xppSplitForm.cfs" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="xppSplitOnOff= false">取 消</el-button>
|
||||
<el-button type="primary" @click="xppSplitBtn(crud.selections)">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" :height="crud.tableHeight" v-loading="crud.loading" :data="crud.data" size="small"
|
||||
style="width: 100%;" @selection-change="crud.selectionChangeHandler" border
|
||||
|
|
@ -362,6 +402,7 @@ import crudXppRecord, {
|
|||
changeFz,
|
||||
cancelReceiv,
|
||||
xppBd,
|
||||
xppSplit,
|
||||
createReceipt,
|
||||
cancelReceipt, adjustOut
|
||||
} from '@/api/xppRecord'
|
||||
|
|
@ -485,8 +526,13 @@ export default {
|
|||
fzh:null,
|
||||
nrs:null
|
||||
},
|
||||
xppSplitForm: {
|
||||
xppRecord:{ddbh:null,nrs:null,ewm:null,item_code:null,item_name:null,fzh:null},
|
||||
cfs:null
|
||||
},
|
||||
xppRecordOnOff: false,
|
||||
xppBdOnOff: false
|
||||
xppBdOnOff: false,
|
||||
xppSplitOnOff: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
|
@ -610,6 +656,19 @@ export default {
|
|||
this.$router.push({path:'/business-asn/xpp_bd_report',query:{tableID:'现品票补打',parm: "id="+data_.id}})
|
||||
})
|
||||
},
|
||||
xppSplitBtn(data) {
|
||||
let data_ = this.xppSplitForm
|
||||
data_.id = data[0].id
|
||||
data_.cfs=this.xppSplitForm.cfs;
|
||||
data_.fzh=this.xppSplitForm.xppRecord.fzh;
|
||||
xppSplit(data_).then(res=>{
|
||||
this.xppSplitOnOff=false;
|
||||
this.crud.toQuery()
|
||||
this.$message.success(res)
|
||||
this.resetForm()
|
||||
this.xppSplitForm.cfs=0
|
||||
})
|
||||
},
|
||||
showReportShd(data){
|
||||
this.$router.push({path:'/business-asn/xpp_shd_report',query:{tableID:'收货单打印',parm: "code="+data.receipt_code+"&username="+this.user.username}})
|
||||
},
|
||||
|
|
@ -668,6 +727,12 @@ export default {
|
|||
this.xppBdOnOff=true;
|
||||
},
|
||||
|
||||
//弹出现品票补打
|
||||
showXppSplit(data){
|
||||
this.xppSplitForm.xppRecord=data;
|
||||
this.xppSplitOnOff=true;
|
||||
},
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
placeholder="选择日期"
|
||||
></el-date-picker>
|
||||
|
||||
<el-select v-model="query.areaNames" value-key="id" clearable placeholder="指示纳所" style="width: 180px" filterable multiple reserve-keyword="true" >
|
||||
<el-select v-model="query.areaNames" value-key="id" clearable placeholder="库区" style="width: 180px" filterable multiple reserve-keyword="true" >
|
||||
<el-option
|
||||
v-for="item in areaOptions"
|
||||
:key="item.id"
|
||||
|
|
|
|||
|
|
@ -4,13 +4,25 @@
|
|||
<div class="head-container">
|
||||
<!-- 查询操作-->
|
||||
<el-form ref="form" :inline="true" :model="form" label-width="70px">
|
||||
<el-form-item label="物料名称">
|
||||
<el-input v-model="query.itemName" clearable placeholder="请输入物料名称" style="width: 140px;"
|
||||
class="filter-item"
|
||||
|
||||
<el-input v-model="query.itemCode" clearable placeholder="品番" style="width: 140px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"/>
|
||||
</el-form-item>
|
||||
|
||||
<el-select v-model="query.status" clearable placeholder="状态" value-key="id" class="filter-item" style="width: 150px"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
>
|
||||
<el-option
|
||||
|
||||
v-for="item in this.dict.pick_status"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<AreaSelect v-model="query.area" />
|
||||
<PointCodeSelect :value-key="'id'" :point_type="'CH'" v-model="query.itemCode2" />
|
||||
<AreaCodeSelect v-model="query.ckAreaCode" :bexb="false" class="filter-item" filterable placeholder="拣货库区" style="width: 155px;"/>
|
||||
<AreaCodeSelect v-model="query.rkAreaCode" @keyup.enter.native="crud.toQuery" :bexb="true" class="filter-item" filterable placeholder="叫料库区" style="width: 155px;"/>
|
||||
<date-range-picker v-model="query.createTime" class="date-item" style="width: 100px" />
|
||||
<!-- 搜索-->
|
||||
<rrOperation :crud="crud"/>
|
||||
|
|
@ -84,22 +96,25 @@
|
|||
<el-table-column type="selection" width="50"/>
|
||||
<el-table-column prop="id" label="序号"/>
|
||||
<!-- <el-table-column prop="shArea.gcCode" label="工厂" width="150px"/>-->
|
||||
<el-table-column prop="shArea.name" label="叫料库区" width="150px"/>
|
||||
<el-table-column prop="item.code" label="品番"/>
|
||||
|
||||
<el-table-column prop="item.code" label="品番" width="150px"/>
|
||||
<el-table-column prop="item.name" label="品名"/>
|
||||
<el-table-column prop="status" label="状态">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.pick_status[scope.row.status] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="item.extendD3" label="收容数" width="60px" align="center"/>
|
||||
<el-table-column prop="point.code" label="制造库位" width="100px"/>
|
||||
<el-table-column prop="propC2" label="税别"/>
|
||||
<el-table-column prop="area.name" label="拣货库区" width="150px"/>
|
||||
<el-table-column prop="ckPoint.code" label="拣货库位" width="150px"/>
|
||||
<el-table-column prop="ckPoint.code" label="拣货库位"/>
|
||||
<el-table-column prop="item.extendD3" label="收容数" width="60px" align="center"/>
|
||||
<el-table-column prop="shArea.name" label="叫料库区" width="150px"/>
|
||||
<el-table-column prop="point.code" label="制造库位"/>
|
||||
<el-table-column prop="xdPf" label="箱单品番" width="100px"/>
|
||||
<el-table-column prop="orderQty" label="订单数量"/>
|
||||
<el-table-column prop="allocatedQty" label="分配数量"/>
|
||||
<el-table-column prop="pickedQty" label="拣货数量"/>
|
||||
<el-table-column prop="pickedQty" label="拣货数量"/>
|
||||
<el-table-column prop="remark" label="备注"/>
|
||||
|
||||
<el-table-column prop="createBy" label="创建人"/>
|
||||
|
|
@ -187,6 +202,9 @@ import { formatDate } from '@/utils/commonUtils'
|
|||
import ItemSelect from "@/views/generic-component/ItemSelect.vue";
|
||||
import BomAccountPointSelect from "@/views/generic-component/BomAccountPointSelect.vue";
|
||||
import {queryPickDetailXd} from "@/api/inventory";
|
||||
import AreaCodeSelect from "@/views/generic-component/AreaCodeSelect.vue";
|
||||
import AreaSelect from "@/views/generic-component/AreaSelect.vue";
|
||||
import PointCodeSelect from "@/views/generic-component/PointCodeSelect.vue";
|
||||
|
||||
const defaultForm = {
|
||||
id: null,
|
||||
|
|
@ -195,6 +213,9 @@ const defaultForm = {
|
|||
export default {
|
||||
name: 'PickDetail',
|
||||
components: {
|
||||
PointCodeSelect,
|
||||
AreaSelect,
|
||||
AreaCodeSelect,
|
||||
XdTask,
|
||||
BomAccountPointSelect,
|
||||
ItemSelect, DateRangePicker, PickTask,pagination, crudOperation, rrOperation, udOperation},
|
||||
|
|
@ -290,7 +311,7 @@ export default {
|
|||
|
||||
if (this.isAllEqual(status) && status[0] == "ALLOCATE") {
|
||||
this.show_jh = true;
|
||||
this.show_fp = true;
|
||||
this.show_fp = false;
|
||||
this.show_cancelfp = false;
|
||||
}
|
||||
//拣货
|
||||
|
|
|
|||
|
|
@ -5,44 +5,13 @@
|
|||
<!-- 卡片头 -->
|
||||
<div style="width: 100%;height: 180px;position: relative;">
|
||||
<el-form ref="pickTicketFromRes" :model="pickTicketFromSave" :rules="rules" size="small" label-width="80px">
|
||||
<div style="width: 60%;height: 180px;float: left">
|
||||
<div style="width: 100%;position: relative;height: 45px;">
|
||||
<div style="width: 50%;float: left">
|
||||
<el-form-item label="出库库区" prop="area">
|
||||
<el-select v-model="pickTicketFromSave.area" value-key="id" style="width:100%"
|
||||
placeholder="请选择出库库区" clearable :disabled="billTypeTF"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in areaOptions"
|
||||
:key="item.id"
|
||||
:label="item.code"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div style="width: 50%;float: right">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="箱单号" prop="cusCode">
|
||||
<el-input :disabled="true" v-model="pickTicketFromSave.cusCode" style="width: 100%"/>
|
||||
<el-input v-model="pickTicketFromSave.cusCode" style="width: 100%"/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 100%;position: relative;height: 45px;">
|
||||
<div style="width: 50%;float: left">
|
||||
<el-form-item label="单据类型" prop="billType">
|
||||
<el-select v-model="pickTicketFromSave.billType" value-key="id" style="width:100%"
|
||||
placeholder="请选择单据类型" clearable :disabled="billTypeTF"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in billTypeOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div style="width: 50%;float: right">
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="订单日期" prop="orderDate">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
|
|
@ -53,20 +22,23 @@
|
|||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 100%;position: relative;height: 45px;">
|
||||
<div style="width: 50%;float: left">
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="单号" prop="code">
|
||||
<el-input :disabled="true" v-model="pickTicketFromSave.code" style="width: 100%"/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div style="width: 50%;float: right">
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="订单数量">
|
||||
<el-input :disabled="true" v-model="pickTicketFromSave.orderQuantity" style="width: 100%;"/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="备注:">
|
||||
<el-input v-model="pickTicketFromSave.description" style="width: 100%;"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="width: 100%;position: relative;">
|
||||
<div style="width: 50%;float: left">
|
||||
<el-button type="primary" :disabled="pickTicketFromSave.code != null"
|
||||
|
|
@ -76,15 +48,8 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div style="width: 40%;height: 180px;float: right">
|
||||
<el-form-item label="备注:">
|
||||
|
||||
</el-form-item>
|
||||
<el-input v-model="pickTicketFromSave.description" type="textarea" :autosize="{ minRows: 5, maxRows: 8}"
|
||||
placeholder="请输入备注" style="width: 90%;height: 100%;float: right"
|
||||
/>
|
||||
</div>
|
||||
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -153,16 +118,8 @@
|
|||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column prop="id" label="序号"/>
|
||||
<!--<el-table-column prop="shArea.name" label="指示纳所" width="150px"/>-->
|
||||
<el-table-column prop="item.code" label="品番" >
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item == null ? '' : scope.row.item.code }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="item.name " label="品名" >
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item == null ? '' : scope.row.item.name }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="item.code" label="品番" />
|
||||
<el-table-column prop="item.name " label="品名" />
|
||||
<!--需求数量
|
||||
<el-table-column prop="xqQty" label="需求数" width="60px"/>-->
|
||||
<el-table-column prop="item.extendD3" label="收容数" align="center"/>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
>
|
||||
<el-tabs v-model="activeName">
|
||||
<el-tab-pane label="出库明细" name="first">
|
||||
<div>
|
||||
<!-- <div>
|
||||
<el-button
|
||||
class="filter-item"
|
||||
type="success"
|
||||
|
|
@ -26,46 +26,44 @@
|
|||
>
|
||||
取消审核
|
||||
</el-button>
|
||||
</div>
|
||||
</div>-->
|
||||
<!-- 出库明细 -->
|
||||
<el-table ref="tableOutboundDetailsData" :data="viewDetailsDatas.outboundDetailsData" size="small"
|
||||
style="width: 100%;"
|
||||
height="60vh" border
|
||||
>
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column prop="item.code" label="品番" width="100px">
|
||||
</el-table-column>
|
||||
<el-table-column prop="item.name" label="品名" width="120px">
|
||||
</el-table-column>
|
||||
<el-table-column prop="item.code" label="品番" width="100px"/>
|
||||
<el-table-column prop="item.name" label="品名" width="120px"/>
|
||||
<!--需求数量-->
|
||||
<el-table-column prop="xqQty" label="需求数" width="60px"/>
|
||||
<!--<el-table-column prop="xqQty" label="需求数" width="60px"/>-->
|
||||
<el-table-column prop="item.extendD3" label="收容数" width="60px" align="center"/>
|
||||
|
||||
<!--备货需求数量 订单-->
|
||||
<el-table-column prop="propC4" label="纯需求数" width="80px"/>
|
||||
<!--<el-table-column prop="propC4" label="纯需求数" width="80px"/>-->
|
||||
<!--纯需求数量-->
|
||||
<el-table-column prop="orderQty" label="备货需求数" width="90px"/>
|
||||
<el-table-column prop="orderQty" label="需求数"/>
|
||||
<!--未单数量 未出单=纯需求-出单数-->
|
||||
<el-table-column prop="wcdn" label="未单数" width="60px">
|
||||
<el-table-column prop="wcdn" label="未单数">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.orderQty - scope.row.allocatedQty }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!--出单数量 分配 出单数=分配时候写入的数量-->
|
||||
<el-table-column prop="allocatedQty" label="出单数" width="60px"/>
|
||||
<el-table-column prop="allocatedQty" label="出单数" />
|
||||
<!--备货数量 拣货-->
|
||||
<el-table-column prop="pickedQty" label="备货数" width="60px"/>
|
||||
<el-table-column prop="pickedQty" label="备货数" />
|
||||
<!--在途数量 发运-->
|
||||
<el-table-column prop="shippedQty" label="在途数" width="60px"/>
|
||||
<!--<el-table-column prop="shippedQty" label="在途数" width="60px"/>-->
|
||||
<!--线边数量-->
|
||||
<el-table-column prop="xbQty" label="线边数" width="60px"/>
|
||||
<el-table-column prop="supplier" label="供应商" width="120"/>
|
||||
<!--<el-table-column prop="xbQty" label="线边数" width="60px"/>-->
|
||||
<!--<el-table-column prop="supplier" label="供应商" width="120"/>-->
|
||||
<!--制造库位 点位-->
|
||||
<el-table-column prop="point.code" label="制造库位" width="100px"/>
|
||||
<el-table-column prop="point.code" label="库位" />
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="出单记录" name="second">
|
||||
<div>
|
||||
<!--<div>
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
|
|
@ -111,7 +109,7 @@
|
|||
>
|
||||
现品票拣货
|
||||
</el-button>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
<!-- 出单记录 -->
|
||||
<el-table ref="tableAllocationRecords" :data="viewDetailsDatas.allocationRecords" size="small"
|
||||
|
|
@ -119,28 +117,20 @@
|
|||
height="60vh" border @selection-change="taskSelection"
|
||||
>
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="品番" width="100px">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item.code }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemName" label="品名" width="100px">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item.name }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="dstStockCode" label="目标托盘号"/>-->
|
||||
<el-table-column prop="srcPointCode" label="源库位" width="150px" align="center"/>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="item.code" label="品番" />
|
||||
<el-table-column :show-overflow-tooltip="true" prop="item.name" label="品名" />
|
||||
<el-table-column prop="dstStockCode" label="箱单号"/>
|
||||
<el-table-column prop="srcPointCode" label="库位" align="center"/>
|
||||
<!-- <el-table-column prop="itemKey.propD1" label="生成日期" width="150px" align="center"/>-->
|
||||
<el-table-column prop="itemKey.propC1" label="批次号" width="100px"/>
|
||||
<el-table-column prop="planQty" label="出单数量"/>
|
||||
<el-table-column prop="moveQty" label="拣货数量"/>
|
||||
<el-table-column prop="dstPointCode" label="目标库位"/>
|
||||
<!--<el-table-column prop="dstPointCode" label="目标库位"/>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="supplier" label="供应商">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.pickDetail.supplier }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>-->
|
||||
<el-table-column prop="createBy" label="创建人"/>
|
||||
<el-table-column prop="createTime" label="创建时间" width="180px">
|
||||
|
||||
|
|
@ -148,7 +138,7 @@
|
|||
</el-table>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="拣货记录" name="third">
|
||||
<div>
|
||||
<!--<div>
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
|
|
@ -167,7 +157,7 @@
|
|||
>
|
||||
部分取消
|
||||
</el-button>
|
||||
</div>
|
||||
</div>-->
|
||||
<!-- 拣货记录 -->
|
||||
<el-table ref="tablePickingRecords" :data="viewDetailsDatas.pickingRecords" size="small" style="width: 100%;"
|
||||
height="60vh" border @selection-change="taskLogSelection"
|
||||
|
|
@ -176,11 +166,11 @@
|
|||
<el-table-column prop="item.code" label="品番"/>
|
||||
<el-table-column prop="item.name" label="品名"/>
|
||||
<el-table-column prop="itemKey.propC1" label="批次号"/>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="task.pickDetail.point.code" label="制造库位" width="90px">
|
||||
</el-table-column>
|
||||
<el-table-column prop="itemKey.propC2" label="税别"/>
|
||||
<el-table-column prop="task.srcPoint.code" label="库位" width="90px"/>
|
||||
<el-table-column prop="moveQty" label="拣货数量" width="90px"/>
|
||||
<el-table-column prop="srcStockCode" label="现品票" :show-overflow-tooltip="true"/>
|
||||
<!-- <el-table-column prop="dstStockCode" label="目标托盘号"/>-->
|
||||
<el-table-column prop="task.dstStockCode" label="箱单号"/>
|
||||
<el-table-column prop="createTime" label="创建时间"/>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
|
|
|
|||
|
|
@ -6,16 +6,7 @@
|
|||
<!-- 搜索 -->
|
||||
<!-- <label class="el-form-item-label">出库库区</label>-->
|
||||
<!-- <el-input v-model="query.area" clearable placeholder="出库库区" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />-->
|
||||
<el-select v-model="query.areaCode" clearable placeholder="出库库区" filterable >
|
||||
<el-option
|
||||
style="width: 180px"
|
||||
v-for="item in areaOptions"
|
||||
:key="item.id"
|
||||
:label="item.code"
|
||||
:value="item.code"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<AreaSelect :value-key="'id'" v-model="query.rAreaCode" @change="getChangeAreaValue" :bexb="null"/>
|
||||
<el-input v-model="query.code" clearable placeholder="单号" style="width: 185px;" class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
|
|
@ -75,7 +66,19 @@
|
|||
>
|
||||
拣货确认
|
||||
</el-button>
|
||||
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="warning"
|
||||
size="mini"
|
||||
:disabled="crud.selections.length != 1"
|
||||
@click="viewDetailsM(crud.selections[0])"
|
||||
v-permission="permission.viewDetails"
|
||||
>
|
||||
查看详情
|
||||
</el-button>
|
||||
<!--<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="danger"
|
||||
|
|
@ -98,17 +101,7 @@
|
|||
>
|
||||
出库确认
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="warning"
|
||||
size="mini"
|
||||
:disabled="crud.selections.length != 1"
|
||||
@click="viewDetailsM(crud.selections[0])"
|
||||
v-permission="permission.viewDetails"
|
||||
>
|
||||
查看详情
|
||||
</el-button>
|
||||
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
|
|
@ -132,7 +125,7 @@
|
|||
icon="el-icon-document-add"
|
||||
>
|
||||
打印留样回传单
|
||||
</el-button>
|
||||
</el-button>-->
|
||||
<!-- <el-button-->
|
||||
<!-- slot="right"-->
|
||||
<!-- class="filter-item"-->
|
||||
|
|
@ -258,11 +251,12 @@
|
|||
class="filter-item"
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="bulkPicking(crud.selections[0])"
|
||||
:disabled="!(crud.selections.length >0)"
|
||||
@click="bulkPicking(crud.selections)"
|
||||
>
|
||||
批量拣货
|
||||
</el-button>
|
||||
<el-button
|
||||
<!-- <el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
|
|
@ -279,7 +273,7 @@
|
|||
@click="xppPickGoodsOnOff()"
|
||||
>
|
||||
现品票拣货
|
||||
</el-button>
|
||||
</el-button>-->
|
||||
</div>
|
||||
<el-table :data="taskData" :height="dialogTableHight+'px'" :max-height="dialogTableHight+'px'"
|
||||
style="width: 100%;margin-top: 10px;" border @selection-change="taskSelection"
|
||||
|
|
@ -290,22 +284,14 @@
|
|||
<!-- <div>{{ scope.row.pickDetail.po }}</div>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="物料编码">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item.code }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemName" label="物料名称">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item.name }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="dstStockCode" label="目标托盘号"/>-->
|
||||
<el-table-column prop="srcPointCode" label="源库位" width="150px" align="center"/>
|
||||
<el-table-column prop="item.code" label="品番"/>
|
||||
<el-table-column prop="item.name" label="品名"/>
|
||||
<el-table-column prop="dstStockCode" label="箱单号"/>
|
||||
<el-table-column prop="srcPointCode" label="库位" />
|
||||
<el-table-column prop="itemKey.propC1" label="批次号"/>
|
||||
<el-table-column prop="itemKey.propC2" label="税别"/>
|
||||
<el-table-column prop="planQty" label="分配数量"/>
|
||||
<el-table-column prop="moveQty" label="拣货数量"/>
|
||||
<el-table-column prop="dstPointCode" label="目标库位"/>
|
||||
<el-table-column prop="createBy" label="创建人"/>
|
||||
<el-table-column prop="createTime" label="创建时间"/>
|
||||
</el-table>
|
||||
|
|
@ -430,11 +416,7 @@
|
|||
@selection-change="selectionChangeHandlerTwo" :height="crud.tableHeight" border
|
||||
>
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column width="160px" prop="area" label="出库库区" align="center">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.area.name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column width="160px" prop="area" label="出库库区" align="center"/>
|
||||
<el-table-column prop="code" label="单号" width="120px" align="center"/>
|
||||
<el-table-column prop="status" label="状态" align="center">
|
||||
<template slot-scope="scope">
|
||||
|
|
@ -502,7 +484,7 @@ import crudPickTicket, {
|
|||
getCodeNo, pickBatch, pickForXpp,
|
||||
pickingCancel,
|
||||
pickingOperations, pickSingle, pickWhole,
|
||||
queryTaskLogDataS,
|
||||
queryTaskLogDataS, qtckAllocate,
|
||||
shipmentRegistration
|
||||
} from '@/api/pickTicket'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
|
|
@ -519,6 +501,7 @@ import OutParticulars from '@/views/business-pick/pickTicket/OutParticulars.vue'
|
|||
import {pickOutConfirm} from "@/api/pickOut";
|
||||
import {xppHyIn} from "@/api/xppRecord";
|
||||
import {mapGetters} from "vuex";
|
||||
import AreaSelect from "@/views/generic-component/AreaSelect.vue";
|
||||
|
||||
const defaultForm = {
|
||||
id: null,
|
||||
|
|
@ -564,7 +547,7 @@ const defaultForm = {
|
|||
}
|
||||
export default {
|
||||
name: 'PickTicket',
|
||||
components: { OutParticulars, pagination, crudOperation, rrOperation, udOperation },
|
||||
components: {AreaSelect, OutParticulars, pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['pick_status', 'inv_log_type', 'inc_dec'],
|
||||
cruds() {
|
||||
|
|
@ -666,6 +649,9 @@ export default {
|
|||
//拣货确认 弹窗开关
|
||||
pickConfirmTF: false,
|
||||
taskData: [],
|
||||
selectIds: {
|
||||
ids: []
|
||||
},
|
||||
pickTicketButton: {
|
||||
//拣货确认按钮号 1整单拣货 2单一拣货 3批量拣货 4取消拣货
|
||||
pickConfirmNo: 0,
|
||||
|
|
@ -814,6 +800,9 @@ export default {
|
|||
}
|
||||
|
||||
if (this.isAllEqual(status) && status[0] == 'ALLOCATE') {
|
||||
this.show_fp = false
|
||||
}
|
||||
if (this.isAllEqual(status) && status[0] == 'PICK_ALL') {
|
||||
this.show_fp = true
|
||||
}
|
||||
},
|
||||
|
|
@ -827,26 +816,15 @@ export default {
|
|||
}
|
||||
},
|
||||
allocate(datas) {
|
||||
this.$confirm(`选中${datas.length}条数据确认是否分配?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
const ids = []
|
||||
for (let i = 0; i < datas.length; i++) {
|
||||
ids.push(datas[i].id)
|
||||
}
|
||||
crudPickDetail.allocatePick(ids).then(res => {
|
||||
this.crud.notify('分配成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery()
|
||||
}).catch(() => {
|
||||
this.crud.notify('分配失败!', CRUD.NOTIFICATION_TYPE.ERROR)
|
||||
this.crud.toQuery()
|
||||
})
|
||||
|
||||
console.log(datas)
|
||||
let list = []
|
||||
for (const datum of datas) {
|
||||
list.push(datum.id)
|
||||
}
|
||||
qtckAllocate(list).then(res => {
|
||||
this.$message.success(res)
|
||||
this.crud.toQuery()
|
||||
}).catch(() => {
|
||||
this.$refs.table.clearSelection()
|
||||
this.crud.notify('取消成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
})
|
||||
},
|
||||
//queryPickTask
|
||||
|
|
@ -921,9 +899,8 @@ export default {
|
|||
singlePick(data) {
|
||||
if (data.status === 'ALLOCATE'||data.status ==='PICKUP') {
|
||||
let data_ = this.pickTicketButton
|
||||
data_.pickConfirmNo = 1
|
||||
data_.pickTicketId = data.id
|
||||
pickWhole(data.id).then(res => {
|
||||
pickWhole(data_).then(res => {
|
||||
this.pickConfirmTF = false
|
||||
this.$message.success(res)
|
||||
this.crud.toQuery()
|
||||
|
|
@ -934,19 +911,17 @@ export default {
|
|||
},
|
||||
//批量拣货
|
||||
bulkPicking(data) {
|
||||
if (this.tsakSelectData.length > 0) {
|
||||
let list = []
|
||||
for (const datum of data) {
|
||||
list.push(datum.id)
|
||||
}
|
||||
pickBatch(list).then(res => {
|
||||
console.log(data)
|
||||
let data_ = this.selectIds;
|
||||
for (const dataKey of this.taskData) {
|
||||
data_.ids.push(dataKey.id)
|
||||
}
|
||||
console.log(data_.ids)
|
||||
pickBatch(data_.ids ).then(res => {
|
||||
this.pickConfirmTF = false
|
||||
this.$message.success(res)
|
||||
this.gbOnOff();
|
||||
})
|
||||
} else {
|
||||
this.$message.error('你未选着数据')
|
||||
}
|
||||
},
|
||||
//单一拣货确认
|
||||
solePickGoods(data) {
|
||||
|
|
@ -1072,6 +1047,9 @@ export default {
|
|||
this.key=this.key+1;
|
||||
|
||||
},
|
||||
getChangeAreaValue(dben) {
|
||||
this.query.rAreaCode = dben.code;
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -5,19 +5,8 @@
|
|||
<!-- 卡片头 -->
|
||||
<div style="width: 100%;height: 180px;position: relative;">
|
||||
<el-form ref="pickTicketFromRes" :model="pickTicketFromSave" :rules="rules" size="small" label-width="80px">
|
||||
<div style="width: 60%;height: 180px;float: left">
|
||||
<el-form-item label="出库库区" prop="area">
|
||||
<el-select v-model="pickTicketFromSave.area" prop="area" value-key="id" style="width: 100%"
|
||||
placeholder="请选择出库库区" clearable filterable
|
||||
>
|
||||
<el-option v-for="item in areaOptions" :key="item.id" :label="item.code" :value="item">
|
||||
<span style="float: left;width: 110px" >{{ item.code }}</span>
|
||||
<span style="width: 200px; color: #8492a6; font-size: 13px">{{ item.name }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<div style="width: 100%;position: relative;height: 45px;">
|
||||
<div style="width: 50%;float: left">
|
||||
<el-row :gutter="15">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="单据类型" prop="billType">
|
||||
<el-select v-model="pickTicketFromSave.billType" value-key="id" style="width:100%"
|
||||
placeholder="请选择单据类型" clearable :disabled="billTypeTF"
|
||||
|
|
@ -30,8 +19,8 @@
|
|||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div style="width: 50%;float: right">
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="订单日期" prop="orderDate">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
|
|
@ -42,38 +31,30 @@
|
|||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 100%;position: relative;height: 45px;">
|
||||
<div style="width: 50%;float: left">
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="单号" prop="code">
|
||||
<el-input :disabled="true" v-model="pickTicketFromSave.code" style="width: 100%"/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div style="width: 50%;float: right">
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="订单数量">
|
||||
<el-input :disabled="true" v-model="pickTicketFromSave.orderQuantity" style="width: 100%;"/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 100%;position: relative;">
|
||||
<div style="width: 50%;float: left">
|
||||
</el-col>
|
||||
<el-col :span="15">
|
||||
<el-form-item label="备注:">
|
||||
<el-input v-model="pickTicketFromSave.description" style="width: 100%;"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="width: 50%;float: left">
|
||||
<el-button type="primary" :disabled="pickTicketFromSave.code != null"
|
||||
@click="submitFromPockTicket(pickTicketFromSave)"
|
||||
>提交
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div style="width: 40%;height: 180px;float: right">
|
||||
<el-form-item label="备注:">
|
||||
|
||||
</el-form-item>
|
||||
<el-input v-model="pickTicketFromSave.description" type="textarea" :autosize="{ minRows: 5, maxRows: 8}"
|
||||
placeholder="请输入备注" style="width: 90%;height: 100%;float: right"
|
||||
/>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -128,7 +109,22 @@
|
|||
<el-form-item label="订单数量" prop="orderQty" style="float: left">
|
||||
<el-input v-model="form.orderQty" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="制造库位" prop="point" style="float: left" :rules="[{required:(pickTicket.area === undefined? false :pickTicket.area.bexb),message:'请输入库位',trigger:'blur'}]">
|
||||
<el-form-item label="税别" prop="propC2" style="float: left">
|
||||
<el-select
|
||||
v-model="form.propC2"
|
||||
clearable
|
||||
placeholder="税别"
|
||||
style="width: 150px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.bonded_type"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="库位" prop="point" style="float: left" :rules="[{required:(pickTicket.area === undefined? false :pickTicket.area.bexb),message:'请输入库位',trigger:'blur'}]">
|
||||
<el-select v-model="form.point" value-key="id" filterable placeholder="请选择库位" clearable
|
||||
style="width: 200px;"
|
||||
>
|
||||
|
|
@ -154,41 +150,17 @@
|
|||
@selection-change="crud.selectionChangeHandler" :height="crud.tableHeight" border
|
||||
>
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column prop="item.code" label="品番号" width="100px">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item == null ? '' : scope.row.item.code }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="item.name " label="品番">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item == null ? '' : scope.row.item.name }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="item.unit" label="单位">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.item == null ? '' : scope.row.item.unit }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="orderQty" label="订单数量">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row == null ? '' : scope.row.orderQty }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="item.code" label="品番" width="100px"/>
|
||||
<el-table-column prop="item.name" label="品名"/>
|
||||
<el-table-column prop="po" label="箱单号"/>
|
||||
<el-table-column prop="propC2" label="税别"/>
|
||||
<el-table-column prop="orderQty" label="订单数量"/>
|
||||
<!--出单数量 分配-->
|
||||
<el-table-column prop="allocatedQty" label="出单数量" width="100px"/>
|
||||
<!--备货数量 拣货-->
|
||||
<el-table-column prop="pickedQty" label="备货数量" width="100px"/>
|
||||
<el-table-column prop="shippedQty" label="发货数量"/>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="point.code" label="制造库位">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.point == null ? '' : scope.row.point.code }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="remark" label="备注">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.remark }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="point.code" label="出库库位"/>
|
||||
<el-table-column prop="remark" label="备注"/>
|
||||
<el-table-column v-if="checkPer(['admin','pickDetail:edit','pickDetail:del'])" label="操作" width="150px"
|
||||
align="center"
|
||||
>
|
||||
|
|
@ -301,6 +273,7 @@ export default {
|
|||
'baseApi'
|
||||
])
|
||||
},
|
||||
dicts: ['bonded_type'],
|
||||
data() {
|
||||
return {
|
||||
headers: { 'Authorization': getToken() },
|
||||
|
|
@ -328,6 +301,9 @@ export default {
|
|||
],
|
||||
orderQty: [
|
||||
{ required: true, message: '订单数量不能为空', trigger: 'blur' }
|
||||
],
|
||||
propC2: [
|
||||
{ required: true, message: '税别不能为空', trigger: 'blur' }
|
||||
]
|
||||
// point: [
|
||||
// { required: true, message: '库位不能为空', trigger: 'blur' }
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
:value="baseStatus.value"
|
||||
/>
|
||||
</el-select>-->
|
||||
<AreaSelect v-model="query.areaId" :value-key="'id'" :bexb=true placeholder="请选择库区" style="width: 150px;" class="filter-item" />
|
||||
<AreaSelect :value-key="'id'" v-model="query.shAreaCode" @change="getChangeAreaValue" :bexb=true />
|
||||
<el-input v-model="query.bigItemIdModes" clearable placeholder="型式品番" style="width: 150px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
|
|
@ -401,6 +401,9 @@ export default {
|
|||
this.bigItems = res
|
||||
})
|
||||
},
|
||||
getChangeAreaValue(dben) {
|
||||
this.query.shAreaCode = dben.code;
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,127 @@
|
|||
<template>
|
||||
<el-select
|
||||
v-model="selected"
|
||||
@focus="fetchItems"
|
||||
:placeholder="placeholder"
|
||||
:filterable="filterable"
|
||||
:value-key="valueKey"
|
||||
:style="selectStyle"
|
||||
@change="onChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in items"
|
||||
:key="item.id"
|
||||
:label="item.code"
|
||||
:value="item.code"
|
||||
>
|
||||
<span>{{ item.code }}</span>
|
||||
<span>{{ item.name }}</span>
|
||||
</el-option>
|
||||
|
||||
</el-select>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import curdArea, {queryAreaList} from '@/api/area'
|
||||
|
||||
export default {
|
||||
name: 'AreaCodeSelect',
|
||||
props: {
|
||||
value: null, // v-model
|
||||
placeholder: {
|
||||
type: String,
|
||||
default: '请选择库区'
|
||||
},
|
||||
filterable: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
valueKey: {
|
||||
type: String,
|
||||
default: 'id'
|
||||
},
|
||||
// 是否禁用
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
isEnabled:{
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
bexb:{
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
selectStyle: {
|
||||
type: String,
|
||||
default: 'width: 200px;'
|
||||
},
|
||||
immediate: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 是否可清空
|
||||
clearable: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 是否支持多选
|
||||
multiple: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
items: [],
|
||||
selected: this.value,
|
||||
loading: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
// 处理 v-model 双向绑定
|
||||
selectedValue: {
|
||||
get() {
|
||||
return this.value
|
||||
},
|
||||
set(val) {
|
||||
this.$emit('input', val)
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
value(val) {
|
||||
this.selected = val
|
||||
},
|
||||
selected(val) {
|
||||
this.$emit('input', val)
|
||||
this.$emit('change', val)
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// 如果设置了immediate属性或已有值,则立即加载数据
|
||||
//if (this.immediate || (this.value && this.value[this.valueKey])) {
|
||||
this.fetchItems();
|
||||
// }
|
||||
},
|
||||
// 清空选中值时触发
|
||||
handleClear() {
|
||||
this.$emit('clear')
|
||||
},
|
||||
methods: {
|
||||
fetchItems() {
|
||||
this.loading = true
|
||||
if (this.items.length === 0) {
|
||||
curdArea.queryAreaList({ bexb: this.bexb }).then(res => {
|
||||
this.items = res
|
||||
})
|
||||
}
|
||||
},
|
||||
onChange(val) {
|
||||
this.$emit('change', val)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -1,12 +1,16 @@
|
|||
<template>
|
||||
<el-select
|
||||
v-model="selected"
|
||||
@focus="fetchItems"
|
||||
v-model="selectedValue"
|
||||
:style="`width: ${width}`"
|
||||
:placeholder="placeholder"
|
||||
:disabled="disabled"
|
||||
:clearable="clearable"
|
||||
:multiple="multiple"
|
||||
:filterable="filterable"
|
||||
:value-key="valueKey"
|
||||
:style="selectStyle"
|
||||
@change="onChange"
|
||||
:loading="loading"
|
||||
@change="handleChange"
|
||||
@clear="handleClear"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in items"
|
||||
|
|
@ -14,7 +18,8 @@
|
|||
:label="item.code"
|
||||
:value="item"
|
||||
>
|
||||
<span>{{ item.code }}</span>
|
||||
|
||||
<span>{{ item.code }}</span>
|
||||
<span>{{ item.name }}</span>
|
||||
</el-option>
|
||||
|
||||
|
|
@ -22,25 +27,50 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import curdArea, {queryAreaList} from '@/api/area'
|
||||
import curdArea from '@/api/area'
|
||||
|
||||
export default {
|
||||
name: 'AreaSelect',
|
||||
props: {
|
||||
value: null, // v-model
|
||||
// 选中值,支持 v-model
|
||||
value: {
|
||||
type: [String, Number, Boolean, Array],
|
||||
default: ''
|
||||
},
|
||||
width: {
|
||||
type: String,
|
||||
default: '200px'
|
||||
},
|
||||
// 占位文本
|
||||
placeholder: {
|
||||
type: String,
|
||||
default: '请选择库位'
|
||||
default: '请选择'
|
||||
},
|
||||
// 是否禁用
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 是否可清空
|
||||
clearable: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 是否支持多选
|
||||
multiple: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 是否可搜索
|
||||
filterable: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
default: false
|
||||
},
|
||||
valueKey: {
|
||||
type: String,
|
||||
default: 'id'
|
||||
},
|
||||
isEnabled:{
|
||||
isEnabled: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
|
|
@ -48,37 +78,54 @@ export default {
|
|||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
selectStyle: {
|
||||
type: String,
|
||||
default: 'width: 200px;'
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
items: [],
|
||||
selected: this.value
|
||||
loading: false
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
value(val) {
|
||||
this.selected = val
|
||||
},
|
||||
/* selected(val) {
|
||||
this.$emit('input', val)
|
||||
this.$emit('change', val)
|
||||
}*/
|
||||
computed: {
|
||||
// 处理 v-model 双向绑定
|
||||
selectedValue: {
|
||||
get() {
|
||||
return this.value
|
||||
},
|
||||
set(val) {
|
||||
this.$emit('input', val)
|
||||
}
|
||||
}
|
||||
},
|
||||
// 组件挂载时加载数据
|
||||
created() {
|
||||
this.initData()
|
||||
},
|
||||
methods: {
|
||||
fetchItems() {
|
||||
if (this.items.length === 0) {
|
||||
curdArea.queryAreaList({ bexb: this.bexb }).then(res => {
|
||||
this.items = res
|
||||
})
|
||||
// 获取数据
|
||||
async initData() {
|
||||
this.loading = true
|
||||
try {
|
||||
const res = await curdArea.queryAreaList({ enabled: this.isEnabled, bexb: this.bexb })
|
||||
this.items = res || []
|
||||
} catch (error) {
|
||||
this.crud.notify('获取数据失败', CRUD.NOTIFICATION_TYPE.ERROR)
|
||||
this.items = []
|
||||
this.loading = false
|
||||
} finally {
|
||||
this.loading = false
|
||||
}
|
||||
},
|
||||
onChange(val) {
|
||||
// 选中值变化时触发
|
||||
handleChange(val) {
|
||||
this.$emit('change', val)
|
||||
},
|
||||
// 清空选中值时触发
|
||||
handleClear() {
|
||||
this.$emit('clear')
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
/* 可根据需要添加组件样式 */
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -47,6 +47,10 @@ export default {
|
|||
styles: {
|
||||
type: String,
|
||||
default: 'width: 200px;'
|
||||
},
|
||||
immediate: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
|
|
@ -65,6 +69,12 @@ export default {
|
|||
this.$emit('change', val)
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// 如果设置了immediate属性或已有值,则立即加载数据
|
||||
if (this.immediate || (this.value && this.value[this.valueKey])) {
|
||||
this.fetchItems();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
fetchItems() {
|
||||
if (this.items.length === 0) {
|
||||
|
|
|
|||
|
|
@ -51,6 +51,10 @@ export default {
|
|||
styles: {
|
||||
type: String,
|
||||
default: 'width: 200px;'
|
||||
},
|
||||
immediate: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
|
|
@ -72,6 +76,12 @@ export default {
|
|||
this.$emit('change', val);
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// 如果设置了immediate属性或已有值,则立即加载数据
|
||||
if (this.immediate || (this.value && this.value[this.valueKey])) {
|
||||
this.fetchItems();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
fetchItems() {
|
||||
if (this.items.length === 0) {
|
||||
|
|
|
|||
|
|
@ -50,6 +50,10 @@ export default {
|
|||
styles: {
|
||||
type: String,
|
||||
default: 'width: 200px;'
|
||||
},
|
||||
immediate: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
|
|
@ -68,6 +72,12 @@ export default {
|
|||
this.$emit('change', val)
|
||||
}*/
|
||||
},
|
||||
created() {
|
||||
// 如果设置了immediate属性或已有值,则立即加载数据
|
||||
if (this.immediate || (this.value && this.value[this.valueKey])) {
|
||||
this.fetchItems();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
fetchItems() {
|
||||
if (this.items.length === 0) {
|
||||
|
|
|
|||
|
|
@ -47,6 +47,10 @@ export default {
|
|||
styles: {
|
||||
type: String,
|
||||
default: 'width: 200px;'
|
||||
},
|
||||
immediate: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
|
|
@ -65,6 +69,12 @@ export default {
|
|||
this.$emit('change', val)
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// 如果设置了immediate属性或已有值,则立即加载数据
|
||||
if (this.immediate || (this.value && this.value[this.valueKey])) {
|
||||
this.fetchItems();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
fetchItems() {
|
||||
if (this.items.length === 0) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,102 @@
|
|||
<template>
|
||||
<el-select
|
||||
v-model="selected"
|
||||
@focus="fetchItems"
|
||||
:placeholder="placeholder"
|
||||
:filterable="filterable"
|
||||
:value-key="valueKey"
|
||||
:style="selectStyle"
|
||||
@change="onChange"
|
||||
:multiple="multiple"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in items"
|
||||
:key="item.id"
|
||||
:label="item.code"
|
||||
:value="item.code"
|
||||
>
|
||||
<span>{{ item.code }}</span>
|
||||
<span>{{ item.area.name }}</span>
|
||||
<span>{{ item.itemCode }}</span>
|
||||
|
||||
</el-option>
|
||||
|
||||
</el-select>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import curdPoint, {queryPointList} from '@/api/point'
|
||||
|
||||
export default {
|
||||
name: 'PointCodeSelect',
|
||||
props: {
|
||||
value: null, // v-model
|
||||
placeholder: {
|
||||
type: String,
|
||||
default: '请选择库位'
|
||||
},
|
||||
filterable: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
valueKey: {
|
||||
type: String,
|
||||
default: 'id'
|
||||
},
|
||||
isEnabled:{
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
point_type:{
|
||||
type: String,
|
||||
default: true
|
||||
},
|
||||
selectStyle: {
|
||||
type: String,
|
||||
default: 'width: 200px;'
|
||||
},
|
||||
immediate: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 是否支持多选
|
||||
multiple: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
items: [],
|
||||
selected: this.value
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
value(val) {
|
||||
this.selected = val
|
||||
},
|
||||
selected(val) {
|
||||
this.$emit('input', val)
|
||||
this.$emit('change', val)
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// 如果设置了immediate属性或已有值,则立即加载数据
|
||||
if (this.immediate || (this.value && this.value[this.valueKey])) {
|
||||
this.fetchItems();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
fetchItems() {
|
||||
if (this.items.length === 0) {
|
||||
curdPoint.queryPointList({ type: this.point_type }).then(res => {
|
||||
this.items = res
|
||||
})
|
||||
}
|
||||
},
|
||||
onChange(val) {
|
||||
this.$emit('change', val)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -7,6 +7,7 @@
|
|||
:value-key="valueKey"
|
||||
:style="selectStyle"
|
||||
@change="onChange"
|
||||
:multiple="multiple"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in items"
|
||||
|
|
@ -53,7 +54,16 @@ export default {
|
|||
selectStyle: {
|
||||
type: String,
|
||||
default: 'width: 200px;'
|
||||
}
|
||||
},
|
||||
immediate: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 是否支持多选
|
||||
multiple: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
@ -70,6 +80,12 @@ export default {
|
|||
this.$emit('change', val)
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// 如果设置了immediate属性或已有值,则立即加载数据
|
||||
if (this.immediate || (this.value && this.value[this.valueKey])) {
|
||||
this.fetchItems();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
fetchItems() {
|
||||
if (this.items.length === 0) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue