去除wms,初始化

This commit is contained in:
qianhao.xu
2024-03-12 16:07:53 +08:00
parent f2d2192cd9
commit 7f7c8f5d84
95 changed files with 110 additions and 15198 deletions

View File

@@ -1,88 +0,0 @@
<template>
<div class="item-select-wrapper">
<el-cascader :options="options" :clearable="clearable" placeholder="请选择操作类型" v-model="value1" :size="size"
:show-all-levels="false">
</el-cascader>
</div>
</template>
<script>
const optionsMap = [{
name: "入库",
dictName: "wms_receipt_type",
},
{
name: "出库",
dictName: "wms_shipment_type",
},
{
name: "移库",
dictName: "wms_movement_type",
},
{
name: "盘点",
dictName: "wms_check_type",
}
]
const dictNames = optionsMap.map(item => item.dictName)
const names = optionsMap.map(item => item.name)
export default {
name: 'InOutTypeSelect',
dicts: dictNames,
props: {
value: {
type: [String, Number],
default: null
},
size: {
type: String,
default: 'small'
},
clearable: {
type: Boolean,
default: true
}
},
data() {
return {}
},
computed: {
value1: {
get() {
return this.value
},
set(v) {
// 取数组的第二个元素
let type = v[1] || v[0] || null
this.$emit('input', type)
}
},
options: {
get() {
let options = []
let dict = this.dict.type
for (let i = 0; i < dictNames.length; i++) {
let dictName = dictNames[i]
let name = names[i]
let option = {
value: name,
label: name,
children: dict[dictName].map(item => {
return {
value: item.value,
label: item.label
}
})
}
options.push(option)
}
return options
}
}
},
}
</script>
<style lang="stylus">
</style>

View File

@@ -1,69 +0,0 @@
<template>
<div class="item-select-wrapper">
<el-select v-model="value1" filterable="filterable" remote="remote" clearable="clearable" :remote-method="doSearch" :loading="loading" :size="size">
<el-option v-for="item in options" :key="item.id" :label="item.itemName" :value="item.id">
<div>{{ item.itemName }}</div>
<div class="info">{{ item.itemNo }}</div>
</el-option>
</el-select>
</div>
</template>
<script>
import {
listWmsItem
} from '@/api/wms/item'
export default {
name: 'ItemSelect',
props: {
value: {
type: [String, Number],
default: null
},
size: {
type: String,
default: 'small'
}
},
data() {
return {
options: [],
loading: false
}
},
computed: {
value1: {
get() {
return this.value
},
set(v) {
this.$emit('input', v)
}
}
},
created() {
this.doSearch();
},
methods: {
doSearch(search) {
listWmsItem({
search
}, {
page: 0,
size: 20
}).then(res => {
const {
content,
totalElements
} = res
this.options = content
})
}
}
}
</script>
<style lang="stylus">
</style>

View File

@@ -1,70 +0,0 @@
<template>
<div class="item-select-wrapper">
<el-select v-model="value1" filterable="filterable" remote="remote" clearable="clearable"
:remote-method="doSearch" :loading="loading" :size="size">
<el-option v-for="item in options" :key="item.id" :label="item.itemName" :value="item.id">
<div>{{ item.itemName }}</div>
<div class="info">{{ item.itemNo }}</div>
</el-option>
</el-select>
</div>
</template>
<script>
import {
listWmsItem
} from '@/api/wms/item'
export default {
name: 'ItemSelect',
props: {
value: {
type: [String, Number],
default: null
},
size: {
type: String,
default: 'small'
}
},
data() {
return {
options: [],
loading: false
}
},
computed: {
value1: {
get() {
return this.value
},
set(v) {
this.$emit('input', v)
}
}
},
created() {
this.doSearch();
},
methods: {
doSearch(search) {
listWmsItem({
search
}, {
page: 0,
size: 20
}).then(res => {
const {
content,
totalElements
} = res
this.options = content
})
}
}
}
</script>
<style lang="stylus">
</style>

View File

@@ -1,59 +0,0 @@
<template>
<el-cascader
placeholder="请选择仓库信息"
:options="options"
:props="{ checkStrictly: true }"
v-model="selections"
clearable
filterable>
</el-cascader>
</template>
<script>
import { mapGetters } from 'vuex';
export default {
props: ['value','size'],
data(){
return{
options:[]
}
},
computed:{
...mapGetters(['areaList','warehouseList']),
selections:{
get(){
return this.value;
},
set(v){
this.$emit('input',v);
}
}
},
created(){
this.setOption()
},
methods:{
setOption(){
let areaMap = new Map()
let warehouseMap=new Map()
this.areaList.forEach(area=>{
let children=warehouseMap.get(area.warehouseId)
if(children){
children.push({value:area.id,label:area.areaName,children:areaMap.get(area.id)})
}else{
children=[{value:area.id,label:area.areaName,children:areaMap.get(area.id)}]
}
warehouseMap.set(area.warehouseId,children)
})
this.warehouseList.forEach(warehouse=>{
this.options.push({value:warehouse.id,label:warehouse.warehouseName,children:warehouseMap.get(warehouse.id)})
})
}
}
}
</script>
<style>
</style>

View File

@@ -1,34 +0,0 @@
<template>
<el-select placeholder="请选择承运商" clearable v-model=" carrier">
<el-option
v-for="customer in carrierList"
:key="customer.id"
:label="customer.carrierName"
:value="customer.id"
></el-option>
</el-select>
</template>
<script>
import {mapGetters} from 'vuex';
export default {
props: ['value', 'size'],
data() {
return {}
},
computed: {
...mapGetters(['carrierList']),
carrier: {
get() {
return this.value;
},
set(v) {
this.$emit('input', v);
}
}
},
created() {
},
methods: {}
}
</script>

View File

@@ -1,36 +0,0 @@
<template>
<el-select placeholder="请选择客户" clearable v-model="customer">
<el-option
v-for="customer in customerList"
:key="customer.id"
:label="customer.customerName"
:value="customer.id"
></el-option>
</el-select>
</template>
<script>
import { mapGetters } from 'vuex';
export default {
props: ['value','size'],
data() {
return {
}
},
computed: {
...mapGetters(['customerList']),
customer: {
get() {
return this.value;
},
set(v) {
this.$emit('input', v);
}
}
},
created() {
},
methods: {
}
}
</script>

View File

@@ -1,103 +0,0 @@
<template>
<el-dialog :visible.sync="dialogVisible" title="库存一览" width="600px" @close="handleDialogClose">
<div ref="reportHTML" v-html="msg" class="web-con"></div>
<el-table :data="wmsInventoryList" v-loading="loading">
<el-table-column width="100" property="itemName" label="物料名称"></el-table-column>
<el-table-column width="150" property="itemTypeName" label="物料类别"></el-table-column>
<el-table-column property="warehouseName" label="仓库/库区"></el-table-column>
<el-table-column width="100" property="quantity" label="库存"></el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleDialogConfirm"> </el-button>
</span>
</el-dialog>
</template>
<script>
import { mapGetters } from 'vuex'
import { listWmsInventory } from "@/api/wms/inventory";
export default {
props: {
value: {
type: [String, Number, Array],
default: null
},
size: {
type: String,
default: 'small'
},
disabled: {
type: Boolean,
default: false
},
prodId: {
type: [Number, String],
default: null
},
msg: {
type: String,
default: ""
}
},
data() {
return {
wmsInventoryList: [],
loading: true,
dialogVisible: true,
selectedValue: ''
}
},
computed: {
...mapGetters(['rackList', 'areaList', 'warehouseList']),
selections: {
get() {
return this.value
},
set(v) {
this.$emit('input', v)
}
}
},
created() {
this.setOptions()
},
methods: {
setOptions() {
this.loading = true
listWmsInventory({ itemId: this.prodId }, {}).then(response => {
const { content, totalElements } = response
this.wmsInventoryList = content
content.forEach(item => {
if (!item.warehouseName) {
item.warehouseName = "暂未分配仓库"
}
if (item.areaName) {
if (item.areaName) {
item.warehouseName = `${item.warehouseName}/${item.areaName}`;
}
}
});
this.total = totalElements;
this.loading = false;
});
},
handleDialogClose() {
this.selectedValue = this.selections;
},
showDialog() {
this.dialogVisible = true;
},
handleDialogConfirm() {
// 处理对话框确认按钮的逻辑
// 可以在这里获取选中的值并进行相应的处理
// 例如,将选中的值赋给输入框的绑定值
this.selectedValue = this.selections;
this.dialogVisible = false; // 关闭对话框
}
}
}
</script>

View File

@@ -1,36 +0,0 @@
<template>
<el-select placeholder="请选择供应商" clearable v-model="supplier">
<el-option
v-for="supplier in supplierList"
:key="supplier.id"
:label="supplier.supplierName"
:value="supplier.id"
></el-option>
</el-select>
</template>
<script>
import { mapGetters } from 'vuex';
export default {
props: ['value','size'],
data() {
return {
}
},
computed: {
...mapGetters(['supplierList']),
supplier: {
get() {
return this.value;
},
set(v) {
this.$emit('input', v);
}
}
},
created() {
},
methods: {
}
}
</script>

View File

@@ -1,39 +0,0 @@
<template>
<el-table ref="multipleTable" v-bind="$props" @selection-change="handleSelectionChange" @row-click="handleRowClick">
<slot />
</el-table>
</template>
<script>
export default {
props: ['data'],
data() {
return {
selectionData: []
}
},
methods: {
// 向父组件共享数据
handleSelectionChange(val) {
this.$emit('selection-change', val)
},
handleRowClick(row, column, event) {
// selectionData -- 已选的数据
let index = this.selectionData.findIndex(item => {
// 判断已选数组中是否已存在该条数据
return item.id == row.id
})
if (index == -1) {
// 如果未存在设置已选状态并在list中添加这条数据
this.$refs.multipleTable.toggleRowSelection(row, true); //设置复选框为选中状态
this.selectionData.push(row)
} else {
// 如果已存在设置未选状态并在list中删除这条数据
this.$refs.multipleTable.toggleRowSelection(row, false); //设置复选框为未选状态
this.selectionData.splice(index, 1)
}
}
}
}
</script>

View File

@@ -1,72 +0,0 @@
<template>
<el-cascader placeholder="请选择仓库信息" :options="options" v-model="selections" :props="{ checkStrictly: true }" clearable :size="size" :disabled="disabled" filterable></el-cascader>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
props: {
value: {
type: [String, Number, Array],
default: null
},
size: {
type: String,
default: 'small'
},
disabled: {
type: Boolean,
default: false
}
},
data() {
return {
options: []
}
},
computed: {
...mapGetters(['rackList', 'areaList', 'warehouseList']),
selections: {
get() {
return this.value
},
set(v) {
this.$emit('input', v)
}
}
},
created() {
this.setOptions()
},
methods: {
setOptions() {
let areaMap = new Map()
let warehouseMap = new Map()
// this.rackList.forEach(rack => {
// let children = areaMap.get(rack.areaId)
// if (!children) {
// children = []
// areaMap.set(rack.areaId, children)
// }
// children.push({ value: rack.id, label: rack.rackName })
// })
this.areaList.forEach(area => {
let children = warehouseMap.get(area.warehouseId)
if (!children) {
children = []
warehouseMap.set(area.warehouseId, children)
}
children.push({ value: area.id, label: area.areaName, children: areaMap.get(area.id) })
})
this.options = this.warehouseList.map(warehouse => {
return {
value: warehouse.id,
label: warehouse.warehouseName,
children: warehouseMap.get(warehouse.id)
}
})
}
}
}
</script>