@@ -2,7 +2,7 @@ | |||
* @Author: zwq | |||
* @Date: 2020-12-29 16:00:14 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-01-17 13:59:54 | |||
* @LastEditTime: 2022-03-11 16:23:43 | |||
* @Description: | |||
*/ | |||
import request from '@/utils/request' | |||
@@ -84,3 +84,19 @@ export function StorageBoxRackDelete(id) { // 删除存储箱上架单条数据 | |||
data: { id } | |||
}) | |||
} | |||
export function batchListAdd(data) { // 新增工序库位关联 | |||
return request({ | |||
url: '/api/wms/processlocation/batchList', | |||
method: 'post', | |||
data | |||
}) | |||
} | |||
export function locationByProcessList(data) { // 工序库位列表获取 | |||
return request({ | |||
url: '/api/wms/processlocation/locationByProcess', | |||
method: 'post', | |||
data | |||
}) | |||
} |
@@ -2,7 +2,7 @@ | |||
* @Author: gtz | |||
* @Date: 2021-03-04 16:13:51 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-11 08:28:27 | |||
* @LastEditTime: 2022-03-11 10:55:37 | |||
* @Description: file content | |||
*/ | |||
export default { | |||
@@ -255,7 +255,7 @@ export default { | |||
entryType: 'Manual/Automatic', | |||
automatic: 'automatic', | |||
manual: 'Manual', | |||
workOrderId: 'workOrderId' | |||
workOrderName: 'Work Order Name' | |||
}, | |||
productPool: { | |||
productName: 'Product Name', | |||
@@ -2,7 +2,7 @@ | |||
* @Author: gtz | |||
* @Date: 2021-03-04 16:13:51 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-11 08:28:40 | |||
* @LastEditTime: 2022-03-11 10:55:25 | |||
*/ | |||
export default { | |||
visual: { | |||
@@ -247,7 +247,7 @@ export default { | |||
entryType: '手动/自动', | |||
automatic: '自动', | |||
manual: '手动', | |||
workOrderId: '工单名称' | |||
workOrderName: '工单名称' | |||
}, | |||
processLocation: { | |||
sequence: '顺序', | |||
@@ -281,6 +281,7 @@ export const constantRoutes = [ | |||
}, | |||
{ | |||
path: '/StorageBoxRack', | |||
hidden: true, | |||
component: () => | |||
import('@/views/basicData/Warehouse/StorageBoxRack'), | |||
name: 'StorageBoxRack', | |||
@@ -2,7 +2,7 @@ | |||
* @Author: zwq | |||
* @Date: 2020-12-29 16:37:56 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-11 09:48:52 | |||
* @LastEditTime: 2022-03-11 10:55:27 | |||
* @Description: | |||
--> | |||
<template> | |||
@@ -66,10 +66,10 @@ | |||
</el-select> | |||
</el-form-item> | |||
<el-form-item :label="$t('module.basicData.ScrapInfo.workOrderId')" prop="workOrderId"> | |||
<el-form-item :label="$t('module.basicData.ScrapInfo.workOrderName')" prop="workOrderId"> | |||
<el-select | |||
v-model="dataForm.workOrderId" | |||
:placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.workOrderId')])" | |||
:placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.workOrderName')])" | |||
clearable | |||
:style="{width: '100%'}" | |||
> | |||
@@ -2,7 +2,7 @@ | |||
* @Author: zwq | |||
* @Date: 2020-12-29 15:41:11 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-04 10:40:51 | |||
* @LastEditTime: 2022-03-11 11:24:48 | |||
* @Description: | |||
--> | |||
<template> | |||
@@ -11,10 +11,10 @@ | |||
:model="formData" | |||
:inline="true" | |||
size="medium" | |||
label-width="100px" | |||
label-width="80px" | |||
> | |||
<el-form-item v-if="false" :label="$t('module.basicData.ScrapInfo.PlateId')" prop="basalId"> | |||
<el-input v-model="formData.basalId" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.PlateId')])" style="width:200px" clearable /> | |||
<el-form-item :label="$t('module.basicData.ScrapInfo.PlateId')" prop="substrateId"> | |||
<el-input v-model="formData.substrateId" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.PlateId')])" style="width:200px" clearable /> | |||
</el-form-item> | |||
<el-form-item :label="$t('module.basicData.ScrapInfo.TimePeriod')" prop="time"> | |||
<el-date-picker | |||
@@ -38,6 +38,16 @@ | |||
/> | |||
</el-select> | |||
</el-form-item> | |||
<el-form-item :label="$t('module.basicData.ScrapInfo.workOrderName')" prop="orderId"> | |||
<el-select v-model="formData.orderId" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.workOrderName')])" clearable :style="{width: '100%'}" filterable> | |||
<el-option | |||
v-for="(item, index) in orderList" | |||
:key="index" | |||
:label="item.name" | |||
:value="item.id" | |||
/> | |||
</el-select> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button type="primary" @click="getList()"> {{ 'btn.search' | i18nFilter }} </el-button> | |||
<el-button type="primary" @click="addNew()"> {{ 'btn.add' | i18nFilter }} </el-button> | |||
@@ -79,6 +89,7 @@ import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn' | |||
import { timeFormatter } from '@/filters' | |||
import i18n from '@/lang' | |||
import { getEqList } from '@/api/equipment/maintain' | |||
import { ExecutionInfoList } from '@/api/orderManage/00A' | |||
// import DictFilter from '@/components/BaseTable/subcomponents/DataDictFilter' | |||
/** | |||
* 表格表头配置项 TypeScript接口注释 | |||
@@ -113,18 +124,18 @@ const tableProps = [ | |||
// filter: timeFormatter | |||
// }, | |||
{ | |||
prop: 'source', | |||
label: i18n.t('module.basicData.ScrapInfo.source'), | |||
prop: 'substrateId', | |||
label: i18n.t('module.basicData.ScrapInfo.PlateId'), | |||
align: 'center' | |||
}, | |||
{ | |||
prop: 'equipmentName', | |||
label: i18n.t('module.basicData.ScrapInfo.name'), | |||
prop: 'workOrderName', | |||
label: i18n.t('module.basicData.ScrapInfo.workOrderName'), | |||
align: 'center' | |||
}, | |||
{ | |||
prop: 'substrateId', | |||
label: i18n.t('module.basicData.ScrapInfo.PlateId'), | |||
prop: 'equipmentName', | |||
label: i18n.t('module.basicData.ScrapInfo.name'), | |||
align: 'center' | |||
}, | |||
{ | |||
@@ -138,6 +149,11 @@ const tableProps = [ | |||
filter: timeFormatter, | |||
align: 'center' | |||
}, | |||
{ | |||
prop: 'placeOfRegis', | |||
label: i18n.t('module.basicData.ScrapInfo.registrationPlace'), | |||
align: 'center' | |||
}, | |||
{ | |||
prop: 'scrapReason', | |||
label: i18n.t('module.basicData.ScrapInfo.cause'), | |||
@@ -166,7 +182,9 @@ export default { | |||
listLoading: true, | |||
formData: { | |||
timeSlot: null, | |||
basalId: '', | |||
substrateId: '', | |||
orderId: '', | |||
equipmentId: '', | |||
current: 1, | |||
size: 10, | |||
id: '' | |||
@@ -178,6 +196,7 @@ export default { | |||
dict: { | |||
scrap: [] | |||
}, | |||
orderList: [], | |||
device: [] | |||
} | |||
}, | |||
@@ -236,6 +255,13 @@ export default { | |||
if (result1.code === 0) { | |||
this.device = result1.data.records | |||
} | |||
const result2 = await ExecutionInfoList({ | |||
current: 1, | |||
size: 999 | |||
}) | |||
if (result2.code === 0) { | |||
this.orderList = result2.data.records | |||
} | |||
const result = await scrapReasonList() | |||
this.dict.scrap = result | |||
}, | |||
@@ -2,7 +2,7 @@ | |||
* @Author: zwq | |||
* @Date: 2020-12-29 15:41:11 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-04 15:45:23 | |||
* @LastEditTime: 2022-03-11 10:31:39 | |||
* @Description: | |||
--> | |||
<template> | |||
@@ -64,7 +64,6 @@ import { list } from '@/api/art-manage/process' | |||
import BaseTable from '@/components/BaseTable' | |||
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination | |||
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn' | |||
import { timeFormatter } from '@/filters' | |||
import i18n from '@/lang' | |||
/** | |||
* 表格表头配置项 TypeScript接口注释 | |||
@@ -102,7 +101,6 @@ const tableProps = [ | |||
{ | |||
prop: 'createTime', | |||
label: i18n.t('module.art.eqName'), | |||
filter: timeFormatter, | |||
align: 'center' | |||
} | |||
] | |||
@@ -160,29 +158,23 @@ export default { | |||
}) | |||
}, | |||
getList() { | |||
// this.listLoading = true | |||
// ExecutionInfoList(this.listQuery).then(response => { | |||
// if (response.data.records) { | |||
// this.list = response.data.records | |||
// } else { | |||
// this.list.splice(0, this.list.length) | |||
// } | |||
// this.total = response.data.total | |||
this.list = [ | |||
{ | |||
code: 11, | |||
name: '11' | |||
this.listLoading = true | |||
list(this.listQuery).then(response => { | |||
if (response.data.records) { | |||
this.list = response.data.records | |||
} else { | |||
this.list.splice(0, this.list.length) | |||
} | |||
] | |||
this.listLoading = false | |||
// }) | |||
this.total = response.data.total | |||
this.listLoading = false | |||
}) | |||
}, | |||
// 新增 / 修改 | |||
addNew(id) { | |||
this.$router.push({ | |||
name: 'ProcessStorageManagementInfo', | |||
query: { | |||
dictTypeId: id | |||
id | |||
} | |||
}) | |||
} | |||
@@ -2,7 +2,7 @@ | |||
* @Author: zwq | |||
* @Date: 2020-12-29 15:41:11 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-09 09:57:41 | |||
* @LastEditTime: 2022-03-11 16:29:46 | |||
* @Description: | |||
--> | |||
<template> | |||
@@ -18,20 +18,21 @@ | |||
:table-data="list" | |||
:is-loading="listLoading" | |||
> | |||
<method-btn | |||
<!-- <method-btn | |||
slot="handleBtn" | |||
:width="trueWidth" | |||
:method-list="tableBtn" | |||
@clickBtn="handleClick" | |||
/> | |||
/> --> | |||
</base-table> | |||
</div> | |||
</template> | |||
<script> | |||
import { locationByProcessList } from '@/api/basicData/Warehouse/StorageBoxInfo' | |||
import i18n from '@/lang' | |||
import BaseTable from '@/components/BaseTable' | |||
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn' | |||
// import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn' | |||
import { timeFormatter } from '@/filters' | |||
/** | |||
* 表格表头配置项 TypeScript接口注释 | |||
@@ -49,12 +50,12 @@ import { timeFormatter } from '@/filters' | |||
* | |||
*/ | |||
const tableBtn = [ | |||
{ | |||
type: 'delete', | |||
btnName: 'btn.delete' | |||
} | |||
] | |||
// const tableBtn = [ | |||
// { | |||
// type: 'delete', | |||
// btnName: 'btn.delete' | |||
// } | |||
// ] | |||
const tableProps = [ | |||
{ | |||
prop: 'code', | |||
@@ -76,7 +77,7 @@ const tableProps = [ | |||
export default { | |||
name: 'Shelf', | |||
components: { BaseTable, MethodBtn }, | |||
components: { BaseTable }, | |||
filters: { | |||
statusFilter(status) { | |||
const statusMap = { | |||
@@ -89,7 +90,7 @@ export default { | |||
}, | |||
data() { | |||
return { | |||
tableBtn, | |||
// tableBtn, | |||
trueWidth: 200, | |||
tableProps, | |||
list: [], | |||
@@ -97,12 +98,12 @@ export default { | |||
listQuery: { | |||
current: 1, | |||
size: 990, | |||
areaId: '' | |||
workSequenId: '' | |||
} | |||
} | |||
}, | |||
created() { | |||
this.listQuery.areaId = this.$route.query.id | |||
this.listQuery.workSequenId = this.$route.query.id | |||
this.getList() | |||
}, | |||
methods: { | |||
@@ -126,23 +127,23 @@ export default { | |||
}).catch(() => {}) | |||
} | |||
}, | |||
getList(key) { | |||
getList() { | |||
this.listLoading = true | |||
// shelfList(this.listQuery).then(response => { | |||
// if (response.data.records) { | |||
// this.list = response.data.records | |||
// } else { | |||
// this.list.splice(0, this.list.length) | |||
// } | |||
this.listLoading = false | |||
// }) | |||
locationByProcessList(this.listQuery).then(response => { | |||
if (response.data.records) { | |||
this.list = response.data.records | |||
} else { | |||
this.list.splice(0, this.list.length) | |||
} | |||
this.listLoading = false | |||
}) | |||
}, | |||
// 新增 / 修改 | |||
addNew(id) { | |||
addNew() { | |||
this.$router.push({ | |||
name: 'ProcessStorageLink', | |||
query: { | |||
dictTypeId: id | |||
id: this.listQuery.workSequenId | |||
} | |||
}) | |||
}, | |||
@@ -2,7 +2,7 @@ | |||
* @Author: gtz | |||
* @Date: 2022-03-03 09:16:10 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-09 15:17:46 | |||
* @LastEditTime: 2022-03-11 16:33:41 | |||
* @Description: file content | |||
* @FilePath: \mt-ck-wms-ui\src\views\dashboard\index.vue | |||
--> | |||
@@ -38,6 +38,8 @@ | |||
<el-button type="primary" size="mini" @click="submitLinkList">{{ | |||
"btn.submit" | i18nFilter | |||
}}</el-button> | |||
<el-button type="warning" size="mini" @click="init()">{{ 'btn.reset' | i18nFilter }}</el-button> | |||
<el-button type="success" size="mini" @click="goback()">{{ 'btn.back' | i18nFilter }}</el-button> | |||
</div> | |||
<div class="dashboard-legend-search"> | |||
<el-select | |||
@@ -104,7 +106,7 @@ | |||
? '#A2A8B5' | |||
: '', | |||
border: | |||
selectStorageList.some(StorageItem=>StorageItem.id===z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].id) | |||
selectStorageList.some(StorageItem=>StorageItem.locationId===z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].id) | |||
? '1px solid red' : '' | |||
}" | |||
@click=" | |||
@@ -140,7 +142,7 @@ | |||
</el-row> | |||
<div class="dashboard-layout-footer"> | |||
{{ | |||
"第" + (index + 1) + "排(" + ((current - 1) * 4 + item) + ")" | |||
"第" + bottomIndex[index] + "排(" + ((current - 1) * 4 + item) + ")" | |||
}} | |||
</div> | |||
</el-col> | |||
@@ -203,7 +205,7 @@ | |||
? '#A2A8B5' | |||
: '', | |||
border: | |||
selectStorageList.some(StorageItem=>StorageItem.id===z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].id) | |||
selectStorageList.some(StorageItem=>StorageItem.locationId===z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].id) | |||
? '1px solid red' : '' | |||
}" | |||
@click=" | |||
@@ -270,7 +272,7 @@ | |||
? '#A2A8B5' | |||
: '', | |||
border: | |||
selectStorageList.some(StorageItem=>StorageItem.id===z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].id) | |||
selectStorageList.some(StorageItem=>StorageItem.locationId===z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].id) | |||
? '1px solid red' : '' | |||
}" | |||
@click=" | |||
@@ -306,7 +308,7 @@ | |||
</el-row> | |||
<div class="dashboard-layout-footer"> | |||
{{ | |||
"第" + (index + 1) + "排(" + ((current - 1) * 4 + item) + ")" | |||
"第" + bottomIndex[index] + "排(" + ((current - 1) * 4 + item) + ")" | |||
}} | |||
</div> | |||
</el-col> | |||
@@ -323,6 +325,7 @@ | |||
</template> | |||
<script> | |||
import { batchListAdd } from '@/api/basicData/Warehouse/StorageBoxInfo' | |||
import testdata from './testdata' | |||
import processStorageType from './processStorageType' | |||
@@ -333,7 +336,7 @@ export default { | |||
return testdata | |||
}, | |||
created() { | |||
console.log(this.shelfList) | |||
this.id = this.$route.query.id | |||
this.totalPage = Math.ceil( | |||
this.shelfList[0].rowList[0].portList.length / 80 | |||
) | |||
@@ -345,8 +348,8 @@ export default { | |||
}, | |||
setType(item) { | |||
if (item.attribute !== 3) { | |||
if (this.selectStorageList.findIndex(StorageItem => StorageItem.id === item.id) + 1) { | |||
this.selectStorageList.splice(this.selectStorageList.findIndex(StorageItem => StorageItem.id === item.id), 1) | |||
if (this.selectStorageList.findIndex(StorageItem => StorageItem.locationId === item.id) + 1) { | |||
this.selectStorageList.splice(this.selectStorageList.findIndex(StorageItem => StorageItem.locationId === item.id), 1) | |||
} else { | |||
this.typeVisible = true | |||
this.$nextTick(() => { | |||
@@ -355,8 +358,8 @@ export default { | |||
} | |||
} | |||
}, | |||
setStorageList(id, dataForm) { | |||
const obj = Object.assign({ id }, dataForm) | |||
setStorageList(locationId, dataForm) { | |||
const obj = Object.assign({ locationId }, dataForm) | |||
this.selectStorageList.push(obj) | |||
}, | |||
handleChange(v) { | |||
@@ -364,14 +367,32 @@ export default { | |||
}, | |||
submitLinkList() { | |||
const tipArr = this.selectStorageList.map(item => { | |||
return item.id | |||
return item.locationId | |||
}) | |||
const obj = { | |||
id: this.id, | |||
processLocationStorageList: this.selectStorageList | |||
} | |||
this.$confirm(`${this.$t('module.basicData.visual.TipsStorageBefore')}[${tipArr.join(',')}]?`, this.$t('module.basicData.visual.Tips'), { | |||
confirmButtonText: this.$t('module.basicData.visual.confirmButtonText'), | |||
cancelButtonText: this.$t('module.basicData.visual.cancelButtonText'), | |||
type: 'warning' | |||
}).then(() => { | |||
batchListAdd(obj).then(res => { | |||
this.$message({ | |||
message: this.$t('module.basicData.visual.success'), | |||
type: 'success', | |||
duration: 1500, | |||
onClose: () => { | |||
this.selectStorageList.splice(0, this.selectStorageList.length) | |||
} | |||
}) | |||
}) | |||
}).catch(() => {}) | |||
}, | |||
goback() { | |||
this.selectStorageList.splice(0, this.selectStorageList.length) | |||
this.$router.go(-1) | |||
} | |||
} | |||
} | |||
@@ -2,7 +2,7 @@ | |||
* @Author: zwq | |||
* @Date: 2020-12-29 16:37:56 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-10 14:27:47 | |||
* @LastEditTime: 2022-03-11 14:48:18 | |||
* @Description: | |||
--> | |||
<template> | |||
@@ -18,13 +18,13 @@ | |||
label-width="110px" | |||
label-position="left" | |||
> | |||
<el-form-item :label="$t('module.basicData.Warehouse.SelectStorageType')" prop="storageType"> | |||
<el-radio v-model="dataForm.storageType" :label="1">Working Port</el-radio> | |||
<el-radio v-model="dataForm.storageType" :label="2">Buffer Port</el-radio> | |||
<el-radio v-model="dataForm.storageType" :label="3">Exception Port</el-radio> | |||
<el-form-item :label="$t('module.basicData.Warehouse.SelectStorageType')" prop="portAttrId"> | |||
<el-radio v-model="dataForm.portAttrId" :label="1">Working Port</el-radio> | |||
<el-radio v-model="dataForm.portAttrId" :label="2">Buffer Port</el-radio> | |||
<el-radio v-model="dataForm.portAttrId" :label="3">Exception Port</el-radio> | |||
</el-form-item> | |||
<el-form-item :label="$t('module.basicData.storageBox.name')" prop="storageBoxName"> | |||
<el-select v-model="dataForm.storageBoxName" filterable :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.storageBox.name')])" clearable> | |||
<el-form-item :label="$t('module.basicData.storageBox.name')" prop="storageId"> | |||
<el-select v-model="dataForm.storageId" filterable :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.storageBox.name')])" clearable> | |||
<el-option | |||
v-for="item in storageBoxArr" | |||
:key="item.id" | |||
@@ -48,13 +48,13 @@ export default { | |||
data() { | |||
return { | |||
visible: false, | |||
storageId: '', | |||
locationId: '', | |||
dataForm: { | |||
storageType: 1, | |||
storageBoxName: '' | |||
portAttrId: 1, | |||
storageId: '' | |||
}, | |||
dataRule: { | |||
storageBoxName: [ | |||
storageId: [ | |||
{ | |||
required: true, | |||
message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.storageBox.name')]), | |||
@@ -66,7 +66,7 @@ export default { | |||
}, | |||
methods: { | |||
init(id) { | |||
this.storageId = id | |||
this.locationId = id | |||
const listQuery = { | |||
current: 1, | |||
size: 999 | |||
@@ -85,7 +85,7 @@ export default { | |||
this.$refs['dataForm'].validate((valid) => { | |||
if (valid) { | |||
this.visible = false | |||
this.$emit('refreshDataList', this.storageId, this.dataForm) | |||
this.$emit('refreshDataList', this.locationId, this.dataForm) | |||
} | |||
}) | |||
} | |||
@@ -2,7 +2,7 @@ | |||
* @Author: gtz | |||
* @Date: 2022-03-03 15:47:47 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-09 13:53:23 | |||
* @LastEditTime: 2022-03-11 10:46:18 | |||
* @Description: file content | |||
* @FilePath: \mt-ck-wms-ui\src\views\dashboard\testdata.js | |||
*/ | |||
@@ -2950,6 +2950,8 @@ export default { | |||
}, | |||
selectStorageList: [], | |||
typeVisible: false, | |||
id: '', | |||
bottomIndex: ['一', '二'], | |||
current: 1, | |||
totalPage: 1 | |||
} |