界面调整

main
FOAM 2025-09-25 10:37:04 +08:00
parent 2d52775207
commit bf360febbe
27 changed files with 740 additions and 652 deletions

View File

@ -76,9 +76,9 @@ export function doCheckAsn(ids) {
}) })
} }
export function invVerify(ids) { export function putawayAsn(ids) {
return request({ return request({
url: 'api/asnDetail/invVerify', url: 'api/asnDetail/putawayAsn',
method: 'post', method: 'post',
data:ids data:ids
}) })

View File

@ -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) { export function xdckCancelAllocate(data) {
return request({ return request({
url: 'api/pickTicket/xdckCancelAllocate', 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}

View File

@ -56,6 +56,14 @@ export function xppBd(data) {
data data
}) })
} }
export function xppSplit(data) {
return request({
url: 'api/xppRecord/xppSplit',
method: 'post',
data
})
}
export function add(data) { export function add(data) {
return request({ return request({
url: 'api/xppRecord', 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}

View File

@ -31,14 +31,8 @@
:value="baseStatus.value" :value="baseStatus.value"
/> />
</el-select>--> </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> <AreaSelect :value-key="'id'" v-model="query.rAreaCode" @change="getChangeAreaValue" :bexb="null" />
<el-option
v-for="item in rAreaList"
:key="item.id"
:label="item.name"
:value="item.code"
/>
</el-select>
<!-- <!--
<el-select v-model="query.cAreaCode" value-key="id" filterable placeholder="出库库区" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" clearable> <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 <el-option
@ -53,25 +47,13 @@
<date-range-picker v-model="query.createTime" class="date-item" style="width: 100px"/> <date-range-picker v-model="query.createTime" class="date-item" style="width: 100px"/>
<rrOperation :crud="crud" /> <rrOperation :crud="crud" />
<crudOperation :permission="permission" :tableKey="this.$options.name"> <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 <el-upload
class="upload-demo" class="upload-demo"
ref="upload" ref="upload"
slot='right' slot='right'
style="float: right;padding-left: 5px" style="float: right;padding-left: 5px"
:action="baseApi+'/api/importData/bomAccountBatch'" :action="baseApi+'/api/importData/importBomAccountBatch'"
:file-list="fileList" :file-list="fileList"
:on-success=handleSuccess :on-success=handleSuccess
:on-error="handleError" :on-error="handleError"
@ -80,36 +62,28 @@
<el-button size="mini" type="success" v-permission="permission.import" icon="el-icon-upload">()</el-button> <el-button size="mini" type="success" v-permission="permission.import" icon="el-icon-upload">()</el-button>
</el-upload> </el-upload>
<el-button <el-upload
slot="right" class="upload-demo"
class="filter-item" ref="upload"
type="primary" slot='right'
size="mini" v-if="false" style="float: right;padding-left: 5px"
@click="showReport()" :action="baseApi+'/api/importData/importBomAccount'"
icon="el-icon-document-add" :file-list="fileList"
> :on-success=handleSuccess
导出EXCEl :on-error="handleError"
</el-button> :headers="headers"
<el-button :show-file-list="true">
slot="right" <el-button size="mini" type="success" v-permission="permission.import" icon="el-icon-upload"></el-button>
class="filter-item" </el-upload>
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>
</crudOperation> </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-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 ref="form" :model="form" :inline="true" :rules="rules" size="small" label-width="100px">
<el-form-item label="完成品品番" prop="bigItem"> <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>
<el-form-item label="部品品番" prop="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>
<!-- <el-form-item label="出库类型" prop="outType"> <!-- <el-form-item label="出库类型" prop="outType">
<el-select v-model="form.outType" filterable placeholder="请选择" style="width: 180px;"> <el-select v-model="form.outType" filterable placeholder="请选择" style="width: 180px;">
@ -167,7 +141,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="货位" prop="zPoint"> <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>
<el-form-item label="台车库位" prop="tckw"> <el-form-item label="台车库位" prop="tckw">
<el-input v-model="form.tckw" style="width: 180px;" /> <el-input v-model="form.tckw" style="width: 180px;" />
@ -181,6 +155,9 @@
<el-form-item label="刻印" prop="kyQz"> <el-form-item label="刻印" prop="kyQz">
<el-input v-model="form.kyQz" style="width: 180px;" /> <el-input v-model="form.kyQz" style="width: 180px;" />
</el-form-item> </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-form-item label="描述" prop="description">
<el-input v-model="form.description" :rows="3" type="textarea" style="width: 380px;" /> <el-input v-model="form.description" :rows="3" type="textarea" style="width: 380px;" />
</el-form-item> </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 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 type="selection" width="55" />
<el-table-column prop="id" label="序号" width="60" /> <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="rArea.code" label="工位" width="80"/>-->
<el-table-column prop="item.code" label="子品番" width="100"/>
<el-table-column prop="ns" label="纳所"/> <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="item.name" label="品名" width="150"/> <el-table-column prop="supplier" label="本国语供应商1多国语" width="180" :show-overflow-tooltip="true"/>
<el-table-column prop="bonded" label="税别"/>
<el-table-column prop="ac" label="A/C" width="50"/> <el-table-column prop="ac" label="A/C" width="50"/>
<el-table-column prop="contents" label="加工内容" width="70"/> <el-table-column prop="contents" label="加工内容" width="70"/>
<el-table-column prop="kyQz" label="刻印前缀" width="70"/> <el-table-column prop="zcfq" label="制材区分" />
<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="zPoint.code" label="货位" /> <el-table-column prop="zPoint.code" label="货位" />
<el-table-column prop="xz" label="箱种"/> <el-table-column prop="xz" label="箱种"/>
<el-table-column prop="srs" 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="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="cArea.code" label="出库库区" width="150" align="center" />
<el-table-column prop="out_type#outType" label="出库类型" width="70"> <el-table-column prop="out_type#outType" label="出库类型" width="70">
<template slot-scope="scope"> <template slot-scope="scope">
@ -270,10 +247,13 @@ import {mapGetters} from "vuex";
import ItemSelect from "@/views/generic-component/ItemSelect.vue"; import ItemSelect from "@/views/generic-component/ItemSelect.vue";
import BigItemSelect from "@/views/generic-component/BigItemSelect.vue"; import BigItemSelect from "@/views/generic-component/BigItemSelect.vue";
import PointSelect from "@/views/generic-component/PointSelect.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} 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 { export default {
name: 'BomAccount', 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()], mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['process_content', 'out_type', 'station_type', 'bp_type','bonded_type','ac_type','zdw_type'], dicts: ['process_content', 'out_type', 'station_type', 'bp_type','bonded_type','ac_type','zdw_type'],
cruds() { cruds() {
@ -324,7 +304,7 @@ export default {
}, },
mounted() { mounted() {
// //
console.log(this.value)
}, },
methods: { methods: {
@ -384,6 +364,9 @@ export default {
getFormatDate(data){ getFormatDate(data){
return formatDate(data); return formatDate(data);
}, },
getChangeAreaValue(dben) {
this.query.rAreaCode = dben.code;
},
handleSuccess(response, file, fileList) { handleSuccess(response, file, fileList) {
this.crud.notify('上传成功', CRUD.NOTIFICATION_TYPE.SUCCESS) this.crud.notify('上传成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.$refs.upload.clearFiles() this.$refs.upload.clearFiles()

View File

@ -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.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.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-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> <AreaSelect :value-key="'id'" v-model="query.rAreaCode" @change="getChangeAreaValue" :bexb="null"/>
<el-option <PointCodeSelect :value-key="'id'" v-model="query.zPointCodes" :point_type="null" :multiple=true />
v-for="item in rAreaList"
:key="item.id"
:label="item.name"
:value="item.code"
/>
</el-select>
<el-input v-model="query.zPointCode" clearable placeholder="货位" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" /> <el-input v-model="query.zPointCode" clearable placeholder="货位" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<rrOperation :crud="crud" /> <rrOperation :crud="crud" />
<crudOperation :permission="permission" :tableKey="this.$options.name"> <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 excelUtil from "@/api/tools/excelUtil"
import { formatDate } from '@/utils/commonUtils' import { formatDate } from '@/utils/commonUtils'
import {mapGetters} from "vuex"; 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 }} 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 { export default {
name: 'BomAccountBq', 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()], mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['process_content', 'out_type', 'station_type', 'bp_type','bonded_type','ac_type','zdw_type'], dicts: ['process_content', 'out_type', 'station_type', 'bp_type','bonded_type','ac_type','zdw_type'],
cruds() { cruds() {
@ -198,7 +197,9 @@ export default {
}) })
}) })
}, },
getChangeAreaValue(dben) {
this.query.rAreaCode = dben.code;
},
saveBomPrintD() { saveBomPrintD() {
console.log("打印中大物标签") console.log("打印中大物标签")
queryBomPrintListD(this.crud.getQueryParams2()).then(res => { queryBomPrintListD(this.crud.getQueryParams2()).then(res => {

View File

@ -4,25 +4,29 @@
<div class="head-container"> <div class="head-container">
<div v-if="crud.props.searchToggle"> <div v-if="crud.props.searchToggle">
<!-- 搜索 --> <!-- 搜索 -->
<label class="el-form-item-label">库位号</label> <el-input v-model="query.code" clearable placeholder="库位号" style="width: 150px;"
<el-input v-model="query.code" clearable placeholder="库位号" style="width: 120px;" class="filter-item"
@keyup.enter.native="crud.toQuery" @keyup.enter.native="crud.toQuery"
/> />
<label class="el-form-item-label">库区</label> <AreaCodeSelect v-model="query.areaCode" value-key="'id'" :bexb="null" filterable placeholder="请选择库区" style="width: 185px;"
<el-select v-model="query.areaName" style="width: 120px;" clearable placeholder="请选择" />
@keyup.enter.native="crud.toQuery" class="filter-item" @change="crud.toQuery" filterable <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 <el-option
v-for="area in areas" style="width: 150px"
:key="area.id" v-for="item in this.dict.point_type"
:label="area.name" :key="item.id"
:value="area.name" :label="item.label"
/> :value="item.value"
>
</el-option>
</el-select> </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"/> <rrOperation :crud="crud"/>
</div> </div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'--> <!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
@ -96,7 +100,7 @@
<el-form-item label="纳所"> <el-form-item label="纳所">
<el-input v-model="form.beatCode" style="width: 370px;"/> <el-input v-model="form.beatCode" style="width: 370px;"/>
</el-form-item> </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;" <el-select v-model="form.type" filterable placeholder="请选择" style="width: 370px;"
:default-first-option="true" :default-first-option="true"
> >
@ -126,8 +130,8 @@
<el-input v-model="form.invMin" style="width: 370px;"/> <el-input v-model="form.invMin" style="width: 370px;"/>
</el-form-item> </el-form-item>
<el-form-item label="描述"> <el-form-item label="标签类型">
<el-input type="textarea" v-model="form.description" style="width: 370px;"/> <el-input v-model="form.bqlx" style="width: 370px;"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -148,7 +152,7 @@
<el-table-column prop="itemCode" label="品番"/> <el-table-column prop="itemCode" label="品番"/>
<el-table-column prop="beatCode" label="纳所"/> <el-table-column prop="beatCode" label="纳所"/>
<el-table-column prop="invMin" 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"> <template slot-scope="scope">
{{ dict.label.point_type[scope.row.type] }} {{ dict.label.point_type[scope.row.type] }}
</template> </template>
@ -163,7 +167,7 @@
/> />
</template> </template>
</el-table-column> </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"> <el-table-column v-if="checkPer(['admin','item:edit'])" label="操作" width="60px" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
@ -203,6 +207,7 @@ import crudStock from '@/api/stock'
import pointUrl from '@/api/point' import pointUrl from '@/api/point'
import {mapGetters} from "vuex"; import {mapGetters} from "vuex";
import {queryBomPrintListX} from "@/api/bomAccount"; import {queryBomPrintListX} from "@/api/bomAccount";
import AreaCodeSelect from "@/views/generic-component/AreaCodeSelect.vue";
const defaultForm = { const defaultForm = {
id: null, id: null,
@ -217,12 +222,12 @@ const defaultForm = {
} }
export default { export default {
name: 'Point', 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()], mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['base_staus', 'use_status', 'point_type', 'agv_on_off'], dicts: ['base_staus', 'use_status', 'point_type', 'agv_on_off'],
cruds() { cruds() {
return CRUD({ return CRUD({
title: '位', title: '位',
url: 'api/point', url: 'api/point',
idField: 'id', idField: 'id',
sort: 'id,desc', sort: 'id,desc',

View File

@ -1,8 +1,8 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<!--工具栏--> <!--工具栏-->
<div class="head-container"> <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"> <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-input v-model="query.bigItemModels" clearable placeholder="请选择机型" style="width: 150px;" class="filter-item" @keyup.enter.native="crud.toQuery"/>
<el-date-picker <el-date-picker
@ -354,6 +354,7 @@ export default {
}, },
loadingTF: false, loadingTF: false,
sgscDisabled: true, sgscDisabled: true,
loading_add:false,
} }
}, },
@ -426,19 +427,22 @@ export default {
this.haoYongOnOff = true this.haoYongOnOff = true
}, },
submitHaoYongForm() { submitHaoYongForm() {
this.loading_add=true;
this.$refs['haoYongform'].validate(valid => { this.$refs['haoYongform'].validate(valid => {
if (!valid) { if (!valid) {
this.loading_add=false;
return return
} }
console.log(this.productionPlanVo)
haoYong(this.productionPlanVo).then(res =>{ haoYong(this.productionPlanVo).then(res =>{
console.log(res)
if(res.status==200){ if(res.status==200){
this.crud.notify('批量耗用成功!', CRUD.NOTIFICATION_TYPE.SUCCESS); this.crud.notify('批量耗用成功!', CRUD.NOTIFICATION_TYPE.SUCCESS);
this.haoYongOnOff = false this.haoYongOnOff = false
this.crud.refresh() this.crud.refresh()
this.loading_add=false;
} }
}); },e=>{
this.loading_add=false;
})
}); });
}, },

View File

@ -11,7 +11,7 @@
@keyup.enter.native="crud.toQuery"/> @keyup.enter.native="crud.toQuery"/>
<el-input v-model="query.relatedBill1" clearable placeholder="发票号" style="width: 185px;" class="filter-item" <el-input v-model="query.relatedBill1" clearable placeholder="发票号" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"/> @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" />--> <!-- <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>--> <!-- <label class="el-form-item-label">状态</label>-->
@ -98,7 +98,7 @@
<el-form-item label="箱单号" prop="code"> <el-form-item label="箱单号" prop="code">
<el-input v-model="form.cusCode" style="width: 200px;"/> <el-input v-model="form.cusCode" style="width: 200px;"/>
</el-form-item> </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-input v-model="form.relatedBill1" style="width: 200px;"/>
</el-form-item> </el-form-item>
<el-form-item label="订单日期" prop="orderDate"> <el-form-item label="订单日期" prop="orderDate">
@ -251,7 +251,7 @@
<el-table-column prop="area.name" label="库区" align="center"/> <el-table-column prop="area.name" label="库区" align="center"/>
<el-table-column prop="createBy" label="创建人" align="center"/> <el-table-column prop="createBy" label="创建人" align="center"/>
<el-table-column prop="createTime" label="创建时间" width="140px" 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"> fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -290,7 +290,7 @@ import udOperation from '@crud/UD.operation.vue'
import pagination from '@crud/Pagination.vue' import pagination from '@crud/Pagination.vue'
import {getAreas} from '@/api/area' import {getAreas} from '@/api/area'
import {getBillType} from '@/api/billType' import {getBillType} from '@/api/billType'
import {add, invVerify, queryAsnDetailAll} from '@/api/asnDetail' import {add, queryAsnDetailAll} from '@/api/asnDetail'
import {queryPointList} from '@/api/point' import {queryPointList} from '@/api/point'
import {queryItemAll} from '@/api/item' import {queryItemAll} from '@/api/item'
import {formatDate} from '@/utils/commonUtils' import {formatDate} from '@/utils/commonUtils'
@ -522,24 +522,6 @@ export default {
asnDetailRouter(datas) { asnDetailRouter(datas) {
this.$router.push({path: '/business-asn/viewAsnDetail', query: {ids: datas.id}}) 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) { invVerifySTFM(selection, row) {
if (selection.length > 0) { if (selection.length > 0) {
this.invVerifySTF = false; this.invVerifySTF = false;
@ -591,10 +573,10 @@ export default {
this.mutilPutawayVisible = false this.mutilPutawayVisible = false
}) })
}, },
getChangeVule(dben) { getChangeValue(dben) {
this.plsjForm.pointId = dben.id; this.plsjForm.pointId = dben.id;
}, },
getChangeAreaVule(dben) { getChangeAreaValue(dben) {
this.query.areaCode = dben.code; this.query.areaCode = dben.code;
}, },

View File

@ -8,7 +8,7 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="单据类型" prop="billType"> <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-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -144,7 +144,7 @@
style="height: 200px" style="height: 200px"
> >
<el-form-item label="部品品番" prop="item" style="float: left"> <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>
<el-form-item label="订单数量" prop="orderQty" style="float: left"> <el-form-item label="订单数量" prop="orderQty" style="float: left">
<el-input v-model="form.orderQty" style="width: 200px;"/> <el-input v-model="form.orderQty" style="width: 200px;"/>

View File

@ -8,7 +8,7 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="单据类型" prop="billType"> <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-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -51,7 +51,7 @@
</div> </div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'--> <!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" :tableKey="this.$options.name"> <crudOperation :permission="permission" :tableKey="this.$options.name">
<el-button <!--<el-button
slot="right" slot="right"
class="filter-item" class="filter-item"
type="primary" type="primary"
@ -71,8 +71,8 @@
:loading="logining3" :loading="logining3"
> >
取消上架 取消上架
</el-button> </el-button>-->
<!-- <el-upload <el-upload
class="upload-demo" class="upload-demo"
ref="upload" ref="upload"
slot='right' slot='right'
@ -84,7 +84,7 @@
:headers="headers" :headers="headers"
:show-file-list="true"> :show-file-list="true">
<el-button size="mini" type="success" icon="el-icon-upload">导入</el-button> <el-button size="mini" type="success" icon="el-icon-upload">导入</el-button>
</el-upload>--> </el-upload>
</crudOperation> </crudOperation>
<!--表单组件--> <!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" <el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0"
@ -94,7 +94,7 @@
style="height: 300px" style="height: 300px"
> >
<el-form-item label="制造库位" prop="zzkwCode"> <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>
<el-form-item label="品番"> <el-form-item label="品番">
<el-input v-model="form.item.code" /> <el-input v-model="form.item.code" />
@ -124,11 +124,9 @@
<el-table-column type="selection" width="55"/> <el-table-column type="selection" width="55"/>
<el-table-column prop="item.code" label="品番"/> <el-table-column prop="item.code" label="品番"/>
<el-table-column prop="item.name" 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="orderQty" label="订单数量"/>
<el-table-column prop="receivedQty" label="收货数量"/> <el-table-column prop="receivedQty" label="收货数量"/>
<el-table-column prop="point.code" label="库位"/> <el-table-column prop="point.code" label="库位"/>
<el-table-column prop="propC1" label="批次号"/>
<el-table-column prop="propC2" label="税别"/> <el-table-column prop="propC2" label="税别"/>
<el-table-column prop="remark" label="备注"> <el-table-column prop="remark" label="备注">
<template slot-scope="scope"> <template slot-scope="scope">

View File

@ -7,18 +7,7 @@
<!-- <label class="el-form-item-label">单号</label>--> <!-- <label class="el-form-item-label">单号</label>-->
<el-input v-model="query.code" clearable placeholder="单号" style="width: 185px;" class="filter-item" <el-input v-model="query.code" clearable placeholder="单号" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"/> @keyup.enter.native="crud.toQuery"/>
<el-select v-model="query.areaCode" clearable placeholder="库区" value-key="id" class="filter-item" <AreaSelect v-model="query.areaCode" :value-key="'id'" :bexb=true placeholder="请选择库区" style="width: 150px;" class="filter-item" @change="getChangeAreaVule"/>
@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>
<!-- <el-input v-model="query.orderDate" clearable placeholder="订单日期" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />--> <!-- <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>--> <!-- <label class="el-form-item-label">状态</label>-->
<el-select v-model="query.status" clearable placeholder="状态" value-key="id" class="filter-item" <el-select v-model="query.status" clearable placeholder="状态" value-key="id" class="filter-item"
@ -68,90 +57,7 @@
@click="invVerifyS(crud.selections)"> @click="invVerifyS(crud.selections)">
整单入库 整单入库
</el-button> </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> </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" <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 :title="crud.status.title" width="400px" :height="crud.tableHeight" border
@ -160,34 +66,9 @@
<el-form-item label="单号" prop="code"> <el-form-item label="单号" prop="code">
<el-input :disabled="true" v-model="form.code" style="width: 200px;"/> <el-input :disabled="true" v-model="form.code" style="width: 200px;"/>
</el-form-item> </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-form-item label="订单日期" prop="orderDate">
<el-input v-model="form.orderDate" style="width: 200px;"/> <el-input v-model="form.orderDate" style="width: 200px;"/>
</el-form-item> </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-form-item label="备注">
<el-input v-model="form.description" style="width: 200px;"/> <el-input v-model="form.description" style="width: 200px;"/>
</el-form-item> </el-form-item>
@ -198,96 +79,6 @@
</div> </div>
</el-dialog> </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.BOIPO&LN NO.PART
NO.DESCRIPTIONQ'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.BOIPO&LN NO.PART
NO.DESCRIPTIONQ'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 NOKMT NO. PO&LN NO.PART NO.
DESCRIPTIONQ'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%;" <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" @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="receivedQuantity" label="收货数量" align="center"/>
<el-table-column prop="createBy" label="创建人" align="center"/> <el-table-column prop="createBy" label="创建人" align="center"/>
<el-table-column prop="createTime" label="创建时间" width="140px" 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"> fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -347,11 +138,12 @@ import udOperation from '@crud/UD.operation.vue'
import pagination from '@crud/Pagination.vue' import pagination from '@crud/Pagination.vue'
import {getAreas} from '@/api/area' import {getAreas} from '@/api/area'
import {getBillType} from '@/api/billType' 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 {queryPointList} from '@/api/point'
import {queryItemAll} from '@/api/item' import {queryItemAll} from '@/api/item'
import {formatDate} from '@/utils/commonUtils' import {formatDate} from '@/utils/commonUtils'
import UploadExcelComponent from '@/components/UploadExcel/index.vue' import UploadExcelComponent from '@/components/UploadExcel/index.vue'
import AreaSelect from "@/views/generic-component/AreaSelect.vue";
const defaultForm = { const defaultForm = {
id: null, id: null,
@ -383,7 +175,7 @@ const defaultForm = {
} }
export default { export default {
name: 'Xbrk', name: 'Xbrk',
components: {pagination, crudOperation, rrOperation, udOperation, DateRangePicker, UploadExcelComponent}, components: {AreaSelect, pagination, crudOperation, rrOperation, udOperation, DateRangePicker, UploadExcelComponent},
mixins: [presenter(), header(), form(defaultForm), crud()], mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['asn_status','bonded_type'], dicts: ['asn_status','bonded_type'],
cruds() { cruds() {
@ -564,26 +356,7 @@ export default {
this.crud.toQuery() 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 //queryAsnAll
getAsnData() { getAsnData() {
queryAsnAll().then(res => { queryAsnAll().then(res => {
@ -600,7 +373,7 @@ export default {
for (const idsKey of data) { for (const idsKey of data) {
ids.push(idsKey.id); ids.push(idsKey.id);
} }
invVerify(ids).then(res => { putawayAsn(ids).then(res => {
// if (res != null){ // if (res != null){
// this.$message.error(res) // this.$message.error(res)
// }else { // }else {
@ -779,6 +552,9 @@ export default {
this.fileList3 = []; this.fileList3 = [];
} }
}, },
getChangeAreaVule(dben) {
this.query.areaCode = dben.code;
},
} }
} }
</script> </script>

View File

@ -222,6 +222,18 @@
现品票补打 现品票补打
</el-button> </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> </crudOperation>
<!--表单组件--> <!--表单组件-->
<el-dialog <el-dialog
@ -284,6 +296,34 @@
</div> </div>
</el-dialog> </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" <el-table ref="table" :height="crud.tableHeight" v-loading="crud.loading" :data="crud.data" size="small"
style="width: 100%;" @selection-change="crud.selectionChangeHandler" border style="width: 100%;" @selection-change="crud.selectionChangeHandler" border
@ -362,6 +402,7 @@ import crudXppRecord, {
changeFz, changeFz,
cancelReceiv, cancelReceiv,
xppBd, xppBd,
xppSplit,
createReceipt, createReceipt,
cancelReceipt, adjustOut cancelReceipt, adjustOut
} from '@/api/xppRecord' } from '@/api/xppRecord'
@ -485,8 +526,13 @@ export default {
fzh:null, fzh:null,
nrs:null nrs:null
}, },
xppSplitForm: {
xppRecord:{ddbh:null,nrs:null,ewm:null,item_code:null,item_name:null,fzh:null},
cfs:null
},
xppRecordOnOff: false, xppRecordOnOff: false,
xppBdOnOff: false xppBdOnOff: false,
xppSplitOnOff: false
} }
}, },
computed: { computed: {
@ -610,6 +656,19 @@ export default {
this.$router.push({path:'/business-asn/xpp_bd_report',query:{tableID:'现品票补打',parm: "id="+data_.id}}) 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){ showReportShd(data){
this.$router.push({path:'/business-asn/xpp_shd_report',query:{tableID:'收货单打印',parm: "code="+data.receipt_code+"&username="+this.user.username}}) 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; this.xppBdOnOff=true;
}, },
//
showXppSplit(data){
this.xppSplitForm.xppRecord=data;
this.xppSplitOnOff=true;
},
} }
} }

View File

@ -50,7 +50,7 @@
placeholder="选择日期" placeholder="选择日期"
></el-date-picker> ></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 <el-option
v-for="item in areaOptions" v-for="item in areaOptions"
:key="item.id" :key="item.id"

View File

@ -4,13 +4,25 @@
<div class="head-container"> <div class="head-container">
<!-- 查询操作--> <!-- 查询操作-->
<el-form ref="form" :inline="true" :model="form" label-width="70px"> <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;" <el-input v-model="query.itemCode" clearable placeholder="品番" style="width: 140px;" class="filter-item"
class="filter-item"
@keyup.enter.native="crud.toQuery"/> @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" /> <date-range-picker v-model="query.createTime" class="date-item" style="width: 100px" />
<!-- 搜索--> <!-- 搜索-->
<rrOperation :crud="crud"/> <rrOperation :crud="crud"/>
@ -84,22 +96,25 @@
<el-table-column type="selection" width="50"/> <el-table-column type="selection" width="50"/>
<el-table-column prop="id" label="序号"/> <el-table-column prop="id" label="序号"/>
<!-- <el-table-column prop="shArea.gcCode" label="工厂" width="150px"/>--> <!-- <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="item.name" label="品名"/>
<el-table-column prop="status" label="状态"> <el-table-column prop="status" label="状态">
<template slot-scope="scope"> <template slot-scope="scope">
{{ dict.label.pick_status[scope.row.status] }} {{ dict.label.pick_status[scope.row.status] }}
</template> </template>
</el-table-column> </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="propC2" label="税别"/>
<el-table-column prop="area.name" label="拣货库区" width="150px"/> <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="orderQty" label="订单数量"/>
<el-table-column prop="allocatedQty" label="分配数量"/> <el-table-column prop="allocatedQty" label="分配数量"/>
<el-table-column prop="pickedQty" label="拣货数量"/> <el-table-column prop="pickedQty" label="拣货数量"/>
<el-table-column prop="pickedQty" label="拣货数量"/>
<el-table-column prop="remark" label="备注"/> <el-table-column prop="remark" label="备注"/>
<el-table-column prop="createBy" 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 ItemSelect from "@/views/generic-component/ItemSelect.vue";
import BomAccountPointSelect from "@/views/generic-component/BomAccountPointSelect.vue"; import BomAccountPointSelect from "@/views/generic-component/BomAccountPointSelect.vue";
import {queryPickDetailXd} from "@/api/inventory"; 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 = { const defaultForm = {
id: null, id: null,
@ -195,6 +213,9 @@ const defaultForm = {
export default { export default {
name: 'PickDetail', name: 'PickDetail',
components: { components: {
PointCodeSelect,
AreaSelect,
AreaCodeSelect,
XdTask, XdTask,
BomAccountPointSelect, BomAccountPointSelect,
ItemSelect, DateRangePicker, PickTask,pagination, crudOperation, rrOperation, udOperation}, ItemSelect, DateRangePicker, PickTask,pagination, crudOperation, rrOperation, udOperation},
@ -290,7 +311,7 @@ export default {
if (this.isAllEqual(status) && status[0] == "ALLOCATE") { if (this.isAllEqual(status) && status[0] == "ALLOCATE") {
this.show_jh = true; this.show_jh = true;
this.show_fp = true; this.show_fp = false;
this.show_cancelfp = false; this.show_cancelfp = false;
} }
// //

View File

@ -5,44 +5,13 @@
<!-- 卡片头 --> <!-- 卡片头 -->
<div style="width: 100%;height: 180px;position: relative;"> <div style="width: 100%;height: 180px;position: relative;">
<el-form ref="pickTicketFromRes" :model="pickTicketFromSave" :rules="rules" size="small" label-width="80px"> <el-form ref="pickTicketFromRes" :model="pickTicketFromSave" :rules="rules" size="small" label-width="80px">
<div style="width: 60%;height: 180px;float: left"> <el-row :gutter="20">
<div style="width: 100%;position: relative;height: 45px;"> <el-col :span="8">
<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-form-item label="箱单号" prop="cusCode"> <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> </el-form-item>
</div> </el-col>
</div> <el-col :span="8">
<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-form-item label="订单日期" prop="orderDate"> <el-form-item label="订单日期" prop="orderDate">
<el-date-picker <el-date-picker
style="width: 100%" style="width: 100%"
@ -53,20 +22,23 @@
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</div> </el-col>
</div> <el-col :span="8">
<div style="width: 100%;position: relative;height: 45px;">
<div style="width: 50%;float: left">
<el-form-item label="单号" prop="code"> <el-form-item label="单号" prop="code">
<el-input :disabled="true" v-model="pickTicketFromSave.code" style="width: 100%"/> <el-input :disabled="true" v-model="pickTicketFromSave.code" style="width: 100%"/>
</el-form-item> </el-form-item>
</div> </el-col>
<div style="width: 50%;float: right"> <el-col :span="8">
<el-form-item label="订单数量"> <el-form-item label="订单数量">
<el-input :disabled="true" v-model="pickTicketFromSave.orderQuantity" style="width: 100%;"/> <el-input :disabled="true" v-model="pickTicketFromSave.orderQuantity" style="width: 100%;"/>
</el-form-item> </el-form-item>
</div> </el-col>
</div> <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: 100%;position: relative;">
<div style="width: 50%;float: left"> <div style="width: 50%;float: left">
<el-button type="primary" :disabled="pickTicketFromSave.code != null" <el-button type="primary" :disabled="pickTicketFromSave.code != null"
@ -76,15 +48,8 @@
</div> </div>
</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> </el-form>
</div> </div>
</div> </div>
@ -153,16 +118,8 @@
<el-table-column type="selection" width="55"/> <el-table-column type="selection" width="55"/>
<el-table-column prop="id" label="序号"/> <el-table-column prop="id" label="序号"/>
<!--<el-table-column prop="shArea.name" 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="品番" />
<template slot-scope="scope"> <el-table-column prop="item.name " label="品名" />
<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="xqQty" label="需求数" width="60px"/>--> <el-table-column prop="xqQty" label="需求数" width="60px"/>-->
<el-table-column prop="item.extendD3" label="收容数" align="center"/> <el-table-column prop="item.extendD3" label="收容数" align="center"/>

View File

@ -6,7 +6,7 @@
> >
<el-tabs v-model="activeName"> <el-tabs v-model="activeName">
<el-tab-pane label="出库明细" name="first"> <el-tab-pane label="出库明细" name="first">
<div> <!-- <div>
<el-button <el-button
class="filter-item" class="filter-item"
type="success" type="success"
@ -26,46 +26,44 @@
> >
取消审核 取消审核
</el-button> </el-button>
</div> </div>-->
<!-- 出库明细 --> <!-- 出库明细 -->
<el-table ref="tableOutboundDetailsData" :data="viewDetailsDatas.outboundDetailsData" size="small" <el-table ref="tableOutboundDetailsData" :data="viewDetailsDatas.outboundDetailsData" size="small"
style="width: 100%;" style="width: 100%;"
height="60vh" border height="60vh" border
> >
<el-table-column type="selection" width="55"/> <el-table-column type="selection" width="55"/>
<el-table-column prop="item.code" label="品番" width="100px"> <el-table-column prop="item.code" label="品番" width="100px"/>
</el-table-column> <el-table-column prop="item.name" label="品名" width="120px"/>
<el-table-column prop="item.name" label="品名" width="120px">
</el-table-column>
<!--需求数量--> <!--需求数量-->
<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="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"> <template slot-scope="scope">
{{ scope.row.orderQty - scope.row.allocatedQty }} {{ scope.row.orderQty - scope.row.allocatedQty }}
</template> </template>
</el-table-column> </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="xbQty" label="线边数" width="60px"/>-->
<el-table-column prop="supplier" label="供应商" width="120"/> <!--<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-table>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="出单记录" name="second"> <el-tab-pane label="出单记录" name="second">
<div> <!--<div>
<el-button <el-button
slot="right" slot="right"
class="filter-item" class="filter-item"
@ -111,7 +109,7 @@
> >
现品票拣货 现品票拣货
</el-button> </el-button>
</div> </div>-->
<!-- 出单记录 --> <!-- 出单记录 -->
<el-table ref="tableAllocationRecords" :data="viewDetailsDatas.allocationRecords" size="small" <el-table ref="tableAllocationRecords" :data="viewDetailsDatas.allocationRecords" size="small"
@ -119,28 +117,20 @@
height="60vh" border @selection-change="taskSelection" height="60vh" border @selection-change="taskSelection"
> >
<el-table-column type="selection" width="55"/> <el-table-column type="selection" width="55"/>
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="品番" width="100px"> <el-table-column :show-overflow-tooltip="true" prop="item.code" label="品番" />
<template slot-scope="scope"> <el-table-column :show-overflow-tooltip="true" prop="item.name" label="品名" />
<div>{{ scope.row.item.code }}</div> <el-table-column prop="dstStockCode" label="箱单号"/>
</template> <el-table-column prop="srcPointCode" label="库位" align="center"/>
</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 prop="itemKey.propD1" label="生成日期" width="150px" 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="itemKey.propC1" label="批次号" width="100px"/>
<el-table-column prop="planQty" label="出单数量"/> <el-table-column prop="planQty" label="出单数量"/>
<el-table-column prop="moveQty" 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="供应商"> <el-table-column :show-overflow-tooltip="true" prop="supplier" label="供应商">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ scope.row.pickDetail.supplier }}</div> <div>{{ scope.row.pickDetail.supplier }}</div>
</template> </template>
</el-table-column> </el-table-column>-->
<el-table-column prop="createBy" label="创建人"/> <el-table-column prop="createBy" label="创建人"/>
<el-table-column prop="createTime" label="创建时间" width="180px"> <el-table-column prop="createTime" label="创建时间" width="180px">
@ -148,7 +138,7 @@
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="拣货记录" name="third"> <el-tab-pane label="拣货记录" name="third">
<div> <!--<div>
<el-button <el-button
slot="right" slot="right"
class="filter-item" class="filter-item"
@ -167,7 +157,7 @@
> >
部分取消 部分取消
</el-button> </el-button>
</div> </div>-->
<!-- 拣货记录 --> <!-- 拣货记录 -->
<el-table ref="tablePickingRecords" :data="viewDetailsDatas.pickingRecords" size="small" style="width: 100%;" <el-table ref="tablePickingRecords" :data="viewDetailsDatas.pickingRecords" size="small" style="width: 100%;"
height="60vh" border @selection-change="taskLogSelection" height="60vh" border @selection-change="taskLogSelection"
@ -176,11 +166,11 @@
<el-table-column prop="item.code" label="品番"/> <el-table-column prop="item.code" label="品番"/>
<el-table-column prop="item.name" label="品名"/> <el-table-column prop="item.name" label="品名"/>
<el-table-column prop="itemKey.propC1" 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 prop="itemKey.propC2" label="税别"/>
</el-table-column> <el-table-column prop="task.srcPoint.code" label="库位" width="90px"/>
<el-table-column prop="moveQty" 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="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-column prop="createTime" label="创建时间"/>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>

View File

@ -6,16 +6,7 @@
<!-- 搜索 --> <!-- 搜索 -->
<!-- <label class="el-form-item-label">出库库区</label>--> <!-- <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-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 > <AreaSelect :value-key="'id'" v-model="query.rAreaCode" @change="getChangeAreaValue" :bexb="null"/>
<el-option
style="width: 180px"
v-for="item in areaOptions"
:key="item.id"
:label="item.code"
:value="item.code"
>
</el-option>
</el-select>
<el-input v-model="query.code" clearable placeholder="单号" style="width: 185px;" class="filter-item" <el-input v-model="query.code" clearable placeholder="单号" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery" @keyup.enter.native="crud.toQuery"
/> />
@ -75,7 +66,19 @@
> >
拣货确认 拣货确认
</el-button> </el-button>
<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" slot="right"
class="filter-item" class="filter-item"
type="danger" type="danger"
@ -98,17 +101,7 @@
> >
出库确认 出库确认
</el-button> </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 <el-button
slot="right" slot="right"
class="filter-item" class="filter-item"
@ -132,7 +125,7 @@
icon="el-icon-document-add" icon="el-icon-document-add"
> >
打印留样回传单 打印留样回传单
</el-button> </el-button>-->
<!-- <el-button--> <!-- <el-button-->
<!-- slot="right"--> <!-- slot="right"-->
<!-- class="filter-item"--> <!-- class="filter-item"-->
@ -258,11 +251,12 @@
class="filter-item" class="filter-item"
type="primary" type="primary"
size="mini" size="mini"
@click="bulkPicking(crud.selections[0])" :disabled="!(crud.selections.length >0)"
@click="bulkPicking(crud.selections)"
> >
批量拣货 批量拣货
</el-button> </el-button>
<el-button <!-- <el-button
slot="right" slot="right"
class="filter-item" class="filter-item"
type="primary" type="primary"
@ -279,7 +273,7 @@
@click="xppPickGoodsOnOff()" @click="xppPickGoodsOnOff()"
> >
现品票拣货 现品票拣货
</el-button> </el-button>-->
</div> </div>
<el-table :data="taskData" :height="dialogTableHight+'px'" :max-height="dialogTableHight+'px'" <el-table :data="taskData" :height="dialogTableHight+'px'" :max-height="dialogTableHight+'px'"
style="width: 100%;margin-top: 10px;" border @selection-change="taskSelection" style="width: 100%;margin-top: 10px;" border @selection-change="taskSelection"
@ -290,22 +284,14 @@
<!-- <div>{{ scope.row.pickDetail.po }}</div>--> <!-- <div>{{ scope.row.pickDetail.po }}</div>-->
<!-- </template>--> <!-- </template>-->
<!-- </el-table-column>--> <!-- </el-table-column>-->
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="物料编码"> <el-table-column prop="item.code" label="品番"/>
<template slot-scope="scope"> <el-table-column prop="item.name" label="品名"/>
<div>{{ scope.row.item.code }}</div> <el-table-column prop="dstStockCode" label="箱单号"/>
</template> <el-table-column prop="srcPointCode" label="库位" />
</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="itemKey.propC1" 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="planQty" label="分配数量"/>
<el-table-column prop="moveQty" label="拣货数量"/> <el-table-column prop="moveQty" label="拣货数量"/>
<el-table-column prop="dstPointCode" label="目标库位"/>
<el-table-column prop="createBy" label="创建人"/> <el-table-column prop="createBy" label="创建人"/>
<el-table-column prop="createTime" label="创建时间"/> <el-table-column prop="createTime" label="创建时间"/>
</el-table> </el-table>
@ -430,11 +416,7 @@
@selection-change="selectionChangeHandlerTwo" :height="crud.tableHeight" border @selection-change="selectionChangeHandlerTwo" :height="crud.tableHeight" border
> >
<el-table-column type="selection" width="55"/> <el-table-column type="selection" width="55"/>
<el-table-column width="160px" prop="area" label="出库库区" align="center"> <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 prop="code" label="单号" width="120px" align="center"/> <el-table-column prop="code" label="单号" width="120px" align="center"/>
<el-table-column prop="status" label="状态" align="center"> <el-table-column prop="status" label="状态" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
@ -502,7 +484,7 @@ import crudPickTicket, {
getCodeNo, pickBatch, pickForXpp, getCodeNo, pickBatch, pickForXpp,
pickingCancel, pickingCancel,
pickingOperations, pickSingle, pickWhole, pickingOperations, pickSingle, pickWhole,
queryTaskLogDataS, queryTaskLogDataS, qtckAllocate,
shipmentRegistration shipmentRegistration
} from '@/api/pickTicket' } from '@/api/pickTicket'
import CRUD, { presenter, header, form, crud } from '@crud/crud' 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 {pickOutConfirm} from "@/api/pickOut";
import {xppHyIn} from "@/api/xppRecord"; import {xppHyIn} from "@/api/xppRecord";
import {mapGetters} from "vuex"; import {mapGetters} from "vuex";
import AreaSelect from "@/views/generic-component/AreaSelect.vue";
const defaultForm = { const defaultForm = {
id: null, id: null,
@ -564,7 +547,7 @@ const defaultForm = {
} }
export default { export default {
name: 'PickTicket', name: 'PickTicket',
components: { OutParticulars, pagination, crudOperation, rrOperation, udOperation }, components: {AreaSelect, OutParticulars, pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()], mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['pick_status', 'inv_log_type', 'inc_dec'], dicts: ['pick_status', 'inv_log_type', 'inc_dec'],
cruds() { cruds() {
@ -666,6 +649,9 @@ export default {
// //
pickConfirmTF: false, pickConfirmTF: false,
taskData: [], taskData: [],
selectIds: {
ids: []
},
pickTicketButton: { pickTicketButton: {
// 1 2 3 4 // 1 2 3 4
pickConfirmNo: 0, pickConfirmNo: 0,
@ -814,6 +800,9 @@ export default {
} }
if (this.isAllEqual(status) && status[0] == 'ALLOCATE') { if (this.isAllEqual(status) && status[0] == 'ALLOCATE') {
this.show_fp = false
}
if (this.isAllEqual(status) && status[0] == 'PICK_ALL') {
this.show_fp = true this.show_fp = true
} }
}, },
@ -827,26 +816,15 @@ export default {
} }
}, },
allocate(datas) { allocate(datas) {
this.$confirm(`选中${datas.length}条数据确认是否分配?`, '提示', { console.log(datas)
confirmButtonText: '确定', let list = []
cancelButtonText: '取消', for (const datum of datas) {
type: 'warning' list.push(datum.id)
}).then(() => { }
const ids = [] qtckAllocate(list).then(res => {
for (let i = 0; i < datas.length; i++) { this.$message.success(res)
ids.push(datas[i].id) this.crud.toQuery()
}
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()
})
}).catch(() => { }).catch(() => {
this.$refs.table.clearSelection()
this.crud.notify('取消成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
}) })
}, },
//queryPickTask //queryPickTask
@ -921,9 +899,8 @@ export default {
singlePick(data) { singlePick(data) {
if (data.status === 'ALLOCATE'||data.status ==='PICKUP') { if (data.status === 'ALLOCATE'||data.status ==='PICKUP') {
let data_ = this.pickTicketButton let data_ = this.pickTicketButton
data_.pickConfirmNo = 1
data_.pickTicketId = data.id data_.pickTicketId = data.id
pickWhole(data.id).then(res => { pickWhole(data_).then(res => {
this.pickConfirmTF = false this.pickConfirmTF = false
this.$message.success(res) this.$message.success(res)
this.crud.toQuery() this.crud.toQuery()
@ -934,19 +911,17 @@ export default {
}, },
// //
bulkPicking(data) { bulkPicking(data) {
if (this.tsakSelectData.length > 0) { console.log(data)
let list = [] let data_ = this.selectIds;
for (const datum of data) { for (const dataKey of this.taskData) {
list.push(datum.id) data_.ids.push(dataKey.id)
} }
pickBatch(list).then(res => { console.log(data_.ids)
pickBatch(data_.ids ).then(res => {
this.pickConfirmTF = false this.pickConfirmTF = false
this.$message.success(res) this.$message.success(res)
this.gbOnOff(); this.gbOnOff();
}) })
} else {
this.$message.error('你未选着数据')
}
}, },
// //
solePickGoods(data) { solePickGoods(data) {
@ -1072,6 +1047,9 @@ export default {
this.key=this.key+1; this.key=this.key+1;
}, },
getChangeAreaValue(dben) {
this.query.rAreaCode = dben.code;
},
} }
} }
</script> </script>

View File

@ -5,19 +5,8 @@
<!-- 卡片头 --> <!-- 卡片头 -->
<div style="width: 100%;height: 180px;position: relative;"> <div style="width: 100%;height: 180px;position: relative;">
<el-form ref="pickTicketFromRes" :model="pickTicketFromSave" :rules="rules" size="small" label-width="80px"> <el-form ref="pickTicketFromRes" :model="pickTicketFromSave" :rules="rules" size="small" label-width="80px">
<div style="width: 60%;height: 180px;float: left"> <el-row :gutter="15">
<el-form-item label="出库库区" prop="area"> <el-col :span="8">
<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-form-item label="单据类型" prop="billType"> <el-form-item label="单据类型" prop="billType">
<el-select v-model="pickTicketFromSave.billType" value-key="id" style="width:100%" <el-select v-model="pickTicketFromSave.billType" value-key="id" style="width:100%"
placeholder="请选择单据类型" clearable :disabled="billTypeTF" placeholder="请选择单据类型" clearable :disabled="billTypeTF"
@ -30,8 +19,8 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </el-col>
<div style="width: 50%;float: right"> <el-col :span="8">
<el-form-item label="订单日期" prop="orderDate"> <el-form-item label="订单日期" prop="orderDate">
<el-date-picker <el-date-picker
style="width: 100%" style="width: 100%"
@ -42,38 +31,30 @@
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</div> </el-col>
</div> <el-col :span="8">
<div style="width: 100%;position: relative;height: 45px;">
<div style="width: 50%;float: left">
<el-form-item label="单号" prop="code"> <el-form-item label="单号" prop="code">
<el-input :disabled="true" v-model="pickTicketFromSave.code" style="width: 100%"/> <el-input :disabled="true" v-model="pickTicketFromSave.code" style="width: 100%"/>
</el-form-item> </el-form-item>
</div> </el-col>
<div style="width: 50%;float: right"> <el-col :span="8">
<el-form-item label="订单数量"> <el-form-item label="订单数量">
<el-input :disabled="true" v-model="pickTicketFromSave.orderQuantity" style="width: 100%;"/> <el-input :disabled="true" v-model="pickTicketFromSave.orderQuantity" style="width: 100%;"/>
</el-form-item> </el-form-item>
</div> </el-col>
</div> <el-col :span="15">
<div style="width: 100%;position: relative;"> <el-form-item label="备注:">
<div style="width: 50%;float: left"> <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" <el-button type="primary" :disabled="pickTicketFromSave.code != null"
@click="submitFromPockTicket(pickTicketFromSave)" @click="submitFromPockTicket(pickTicketFromSave)"
>提交 >提交
</el-button> </el-button>
</div>
</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> </el-form>
</div> </div>
</div> </div>
@ -128,7 +109,22 @@
<el-form-item label="订单数量" prop="orderQty" style="float: left"> <el-form-item label="订单数量" prop="orderQty" style="float: left">
<el-input v-model="form.orderQty" style="width: 200px;"/> <el-input v-model="form.orderQty" style="width: 200px;"/>
</el-form-item> </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 <el-select v-model="form.point" value-key="id" filterable placeholder="请选择库位" clearable
style="width: 200px;" style="width: 200px;"
> >
@ -154,41 +150,17 @@
@selection-change="crud.selectionChangeHandler" :height="crud.tableHeight" border @selection-change="crud.selectionChangeHandler" :height="crud.tableHeight" border
> >
<el-table-column type="selection" width="55"/> <el-table-column type="selection" width="55"/>
<el-table-column prop="item.code" label="品番号" width="100px"> <el-table-column prop="item.code" label="品番" width="100px"/>
<template slot-scope="scope"> <el-table-column prop="item.name" label="品名"/>
<div>{{ scope.row.item == null ? '' : scope.row.item.code }}</div> <el-table-column prop="po" label="箱单号"/>
</template> <el-table-column prop="propC2" label="税别"/>
</el-table-column> <el-table-column prop="orderQty" label="订单数量"/>
<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="allocatedQty" label="出单数量" width="100px"/> <el-table-column prop="allocatedQty" label="出单数量" width="100px"/>
<!--备货数量 拣货--> <!--备货数量 拣货-->
<el-table-column prop="pickedQty" label="备货数量" width="100px"/> <el-table-column prop="pickedQty" label="备货数量" width="100px"/>
<el-table-column prop="shippedQty" label="发货数量"/> <el-table-column prop="point.code" label="出库库位"/>
<el-table-column :show-overflow-tooltip="true" prop="point.code" label="制造库位"> <el-table-column prop="remark" 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 v-if="checkPer(['admin','pickDetail:edit','pickDetail:del'])" label="操作" width="150px" <el-table-column v-if="checkPer(['admin','pickDetail:edit','pickDetail:del'])" label="操作" width="150px"
align="center" align="center"
> >
@ -301,6 +273,7 @@ export default {
'baseApi' 'baseApi'
]) ])
}, },
dicts: ['bonded_type'],
data() { data() {
return { return {
headers: { 'Authorization': getToken() }, headers: { 'Authorization': getToken() },
@ -328,6 +301,9 @@ export default {
], ],
orderQty: [ orderQty: [
{ required: true, message: '订单数量不能为空', trigger: 'blur' } { required: true, message: '订单数量不能为空', trigger: 'blur' }
],
propC2: [
{ required: true, message: '税别不能为空', trigger: 'blur' }
] ]
// point: [ // point: [
// { required: true, message: '', trigger: 'blur' } // { required: true, message: '', trigger: 'blur' }

View File

@ -14,7 +14,7 @@
:value="baseStatus.value" :value="baseStatus.value"
/> />
</el-select>--> </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;" <el-input v-model="query.bigItemIdModes" clearable placeholder="型式品番" style="width: 150px;"
class="filter-item" class="filter-item"
@keyup.enter.native="crud.toQuery" @keyup.enter.native="crud.toQuery"
@ -401,6 +401,9 @@ export default {
this.bigItems = res this.bigItems = res
}) })
}, },
getChangeAreaValue(dben) {
this.query.shAreaCode = dben.code;
},
} }
} }
</script> </script>

View File

@ -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>

View File

@ -1,12 +1,16 @@
<template> <template>
<el-select <el-select
v-model="selected" v-model="selectedValue"
@focus="fetchItems" :style="`width: ${width}`"
:placeholder="placeholder" :placeholder="placeholder"
:disabled="disabled"
:clearable="clearable"
:multiple="multiple"
:filterable="filterable" :filterable="filterable"
:value-key="valueKey" :value-key="valueKey"
:style="selectStyle" :loading="loading"
@change="onChange" @change="handleChange"
@clear="handleClear"
> >
<el-option <el-option
v-for="item in items" v-for="item in items"
@ -14,7 +18,8 @@
:label="item.code" :label="item.code"
:value="item" :value="item"
> >
<span>{{ item.code }}</span>
<span>{{ item.code }}</span>
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
</el-option> </el-option>
@ -22,25 +27,50 @@
</template> </template>
<script> <script>
import curdArea, {queryAreaList} from '@/api/area' import curdArea from '@/api/area'
export default { export default {
name: 'AreaSelect', name: 'AreaSelect',
props: { props: {
value: null, // v-model // v-model
value: {
type: [String, Number, Boolean, Array],
default: ''
},
width: {
type: String,
default: '200px'
},
//
placeholder: { placeholder: {
type: String, type: String,
default: '请选择库位' default: '请选择'
}, },
//
disabled: {
type: Boolean,
default: false
},
//
clearable: {
type: Boolean,
default: false
},
//
multiple: {
type: Boolean,
default: false
},
//
filterable: { filterable: {
type: Boolean, type: Boolean,
default: true default: false
}, },
valueKey: { valueKey: {
type: String, type: String,
default: 'id' default: 'id'
}, },
isEnabled:{ isEnabled: {
type: Boolean, type: Boolean,
default: true default: true
}, },
@ -48,37 +78,54 @@ export default {
type: Boolean, type: Boolean,
default: true default: true
}, },
selectStyle: {
type: String,
default: 'width: 200px;'
}
}, },
data() { data() {
return { return {
items: [], items: [],
selected: this.value loading: false
} }
}, },
watch: { computed: {
value(val) { // v-model
this.selected = val selectedValue: {
}, get() {
/* selected(val) { return this.value
this.$emit('input', val) },
this.$emit('change', val) set(val) {
}*/ this.$emit('input', val)
}
}
},
//
created() {
this.initData()
}, },
methods: { methods: {
fetchItems() { //
if (this.items.length === 0) { async initData() {
curdArea.queryAreaList({ bexb: this.bexb }).then(res => { this.loading = true
this.items = res 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) this.$emit('change', val)
},
//
handleClear() {
this.$emit('clear')
} }
} }
} }
</script> </script>
<style scoped>
/* 可根据需要添加组件样式 */
</style>

View File

@ -47,6 +47,10 @@ export default {
styles: { styles: {
type: String, type: String,
default: 'width: 200px;' default: 'width: 200px;'
},
immediate: {
type: Boolean,
default: false
} }
}, },
data() { data() {
@ -65,6 +69,12 @@ export default {
this.$emit('change', val) this.$emit('change', val)
} }
}, },
created() {
// immediate
if (this.immediate || (this.value && this.value[this.valueKey])) {
this.fetchItems();
}
},
methods: { methods: {
fetchItems() { fetchItems() {
if (this.items.length === 0) { if (this.items.length === 0) {

View File

@ -51,6 +51,10 @@ export default {
styles: { styles: {
type: String, type: String,
default: 'width: 200px;' default: 'width: 200px;'
},
immediate: {
type: Boolean,
default: false
} }
}, },
data() { data() {
@ -72,6 +76,12 @@ export default {
this.$emit('change', val); this.$emit('change', val);
} }
}, },
created() {
// immediate
if (this.immediate || (this.value && this.value[this.valueKey])) {
this.fetchItems();
}
},
methods: { methods: {
fetchItems() { fetchItems() {
if (this.items.length === 0) { if (this.items.length === 0) {

View File

@ -50,6 +50,10 @@ export default {
styles: { styles: {
type: String, type: String,
default: 'width: 200px;' default: 'width: 200px;'
},
immediate: {
type: Boolean,
default: false
} }
}, },
data() { data() {
@ -68,6 +72,12 @@ export default {
this.$emit('change', val) this.$emit('change', val)
}*/ }*/
}, },
created() {
// immediate
if (this.immediate || (this.value && this.value[this.valueKey])) {
this.fetchItems();
}
},
methods: { methods: {
fetchItems() { fetchItems() {
if (this.items.length === 0) { if (this.items.length === 0) {

View File

@ -47,6 +47,10 @@ export default {
styles: { styles: {
type: String, type: String,
default: 'width: 200px;' default: 'width: 200px;'
},
immediate: {
type: Boolean,
default: false
} }
}, },
data() { data() {
@ -65,6 +69,12 @@ export default {
this.$emit('change', val) this.$emit('change', val)
} }
}, },
created() {
// immediate
if (this.immediate || (this.value && this.value[this.valueKey])) {
this.fetchItems();
}
},
methods: { methods: {
fetchItems() { fetchItems() {
if (this.items.length === 0) { if (this.items.length === 0) {

View File

@ -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>

View File

@ -7,6 +7,7 @@
:value-key="valueKey" :value-key="valueKey"
:style="selectStyle" :style="selectStyle"
@change="onChange" @change="onChange"
:multiple="multiple"
> >
<el-option <el-option
v-for="item in items" v-for="item in items"
@ -53,7 +54,16 @@ export default {
selectStyle: { selectStyle: {
type: String, type: String,
default: 'width: 200px;' default: 'width: 200px;'
} },
immediate: {
type: Boolean,
default: false
},
//
multiple: {
type: Boolean,
default: false
},
}, },
data() { data() {
return { return {
@ -70,6 +80,12 @@ export default {
this.$emit('change', val) this.$emit('change', val)
} }
}, },
created() {
// immediate
if (this.immediate || (this.value && this.value[this.valueKey])) {
this.fetchItems();
}
},
methods: { methods: {
fetchItems() { fetchItems() {
if (this.items.length === 0) { if (this.items.length === 0) {