2025/3/15珀金斯wms前端版本
This commit is contained in:
parent
915bc1bf70
commit
cb7fc0f3ea
11
package-lock.json
generated
11
package-lock.json
generated
|
|
@ -13,6 +13,7 @@
|
||||||
"core-js": "^3.8.3",
|
"core-js": "^3.8.3",
|
||||||
"element-plus": "^2.4.0",
|
"element-plus": "^2.4.0",
|
||||||
"file-saver": "^2.0.5",
|
"file-saver": "^2.0.5",
|
||||||
|
"jsbarcode": "^3.11.6",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
"node-polyfill-webpack-plugin": "^2.0.1",
|
"node-polyfill-webpack-plugin": "^2.0.1",
|
||||||
"qrcode": "^1.5.3",
|
"qrcode": "^1.5.3",
|
||||||
|
|
@ -7655,6 +7656,11 @@
|
||||||
"js-yaml": "bin/js-yaml.js"
|
"js-yaml": "bin/js-yaml.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/jsbarcode": {
|
||||||
|
"version": "3.11.6",
|
||||||
|
"resolved": "https://registry.npmmirror.com/jsbarcode/-/jsbarcode-3.11.6.tgz",
|
||||||
|
"integrity": "sha512-G5TKGyKY1zJo0ZQKFM1IIMfy0nF2rs92BLlCz+cU4/TazIc4ZH+X1GYeDRt7TKjrYqmPfTjwTBkU/QnQlsYiuA=="
|
||||||
|
},
|
||||||
"node_modules/jsesc": {
|
"node_modules/jsesc": {
|
||||||
"version": "2.5.2",
|
"version": "2.5.2",
|
||||||
"resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz",
|
"resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz",
|
||||||
|
|
@ -19348,6 +19354,11 @@
|
||||||
"esprima": "^4.0.0"
|
"esprima": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"jsbarcode": {
|
||||||
|
"version": "3.11.6",
|
||||||
|
"resolved": "https://registry.npmmirror.com/jsbarcode/-/jsbarcode-3.11.6.tgz",
|
||||||
|
"integrity": "sha512-G5TKGyKY1zJo0ZQKFM1IIMfy0nF2rs92BLlCz+cU4/TazIc4ZH+X1GYeDRt7TKjrYqmPfTjwTBkU/QnQlsYiuA=="
|
||||||
|
},
|
||||||
"jsesc": {
|
"jsesc": {
|
||||||
"version": "2.5.2",
|
"version": "2.5.2",
|
||||||
"resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz",
|
"resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz",
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
"core-js": "^3.8.3",
|
"core-js": "^3.8.3",
|
||||||
"element-plus": "^2.4.0",
|
"element-plus": "^2.4.0",
|
||||||
"file-saver": "^2.0.5",
|
"file-saver": "^2.0.5",
|
||||||
|
"jsbarcode": "^3.11.6",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
"node-polyfill-webpack-plugin": "^2.0.1",
|
"node-polyfill-webpack-plugin": "^2.0.1",
|
||||||
"qrcode": "^1.5.3",
|
"qrcode": "^1.5.3",
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
// 设置一个新的定时器,用户空闲时刷新
|
// 设置一个新的定时器,用户空闲时刷新
|
||||||
timeout = setTimeout(() => {
|
timeout = setTimeout(() => {
|
||||||
location.reload(); // 刷新当前页面
|
location.reload(); // 刷新当前页面
|
||||||
}, 600000); // 10 分钟
|
}, 300000); // 10 分钟
|
||||||
}
|
}
|
||||||
|
|
||||||
// 监听用户活动事件
|
// 监听用户活动事件
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,15 @@ const uploadExcelParts = (data) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const uploadExcelOrderOutOut = (data) => {
|
||||||
|
return request({
|
||||||
|
url: '/excel/uploadKateOrders',
|
||||||
|
method: 'post',
|
||||||
|
data: data,
|
||||||
|
timeout: 10000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const uploadBoxConfig = (data) => {
|
const uploadBoxConfig = (data) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/excel/uploadBoxConfig',
|
url: '/excel/uploadBoxConfig',
|
||||||
|
|
@ -104,6 +113,21 @@ const downloadStockExcel = () => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const downloadOrderOutTableNoEnd = () => {
|
||||||
|
return request({
|
||||||
|
url: '/excel/downloadOrderOutTableNow',
|
||||||
|
method: 'get',
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const downloadOrderOutTable = () => {
|
||||||
|
return request({
|
||||||
|
url: '/excel/downloadOrderOutTable',
|
||||||
|
method: 'get',
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const downloadKateTaskExcel = () => {
|
const downloadKateTaskExcel = () => {
|
||||||
return request({
|
return request({
|
||||||
url: '/excel/downloadKateTaskExcel',
|
url: '/excel/downloadKateTaskExcel',
|
||||||
|
|
@ -164,11 +188,13 @@ export {
|
||||||
downlocadExcel,
|
downlocadExcel,
|
||||||
uploadExcel,
|
uploadExcel,
|
||||||
uploadExcelPeijian,
|
uploadExcelPeijian,
|
||||||
|
downloadOrderOutTableNoEnd,
|
||||||
uploadExcelHejian,
|
uploadExcelHejian,
|
||||||
uploadExcelParts,
|
uploadExcelParts,
|
||||||
distributePeijianTasks,
|
distributePeijianTasks,
|
||||||
distributeHejianTasks,
|
distributeHejianTasks,
|
||||||
downloadStockExcel,
|
downloadStockExcel,
|
||||||
|
downloadOrderOutTable,
|
||||||
downloadKateTaskExcel,
|
downloadKateTaskExcel,
|
||||||
uploadExcelJinji,
|
uploadExcelJinji,
|
||||||
distributeJinjiTasks,
|
distributeJinjiTasks,
|
||||||
|
|
@ -179,5 +205,6 @@ export {
|
||||||
downloadPackageExcel,
|
downloadPackageExcel,
|
||||||
uploadBoxConfig,
|
uploadBoxConfig,
|
||||||
uploadExcelKatePackage,
|
uploadExcelKatePackage,
|
||||||
downloadMaterialExcel
|
downloadMaterialExcel,
|
||||||
|
uploadExcelOrderOutOut
|
||||||
}
|
}
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import AddVechile from "@/components/AddVechile.vue";
|
||||||
import request from "@/http/request";
|
import request from "@/http/request";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
@ -13,13 +14,52 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
//新增载具
|
||||||
|
addVechile(params){
|
||||||
|
return request.post('/goods/addVechile', params)
|
||||||
|
},
|
||||||
|
//新增零件
|
||||||
|
addPartInfo(params) {
|
||||||
|
return request.post('/goods/addPartInfo', params)
|
||||||
|
},
|
||||||
|
//查询所有用户
|
||||||
|
getUserList(params) {
|
||||||
|
return request.post('/user/getUserList',params)
|
||||||
|
},
|
||||||
|
//添加用户
|
||||||
|
addUser(params) {
|
||||||
|
return request.post('/user/addUser',params)
|
||||||
|
},
|
||||||
|
//删除用户
|
||||||
|
deleteUser(userId) {
|
||||||
|
return request.delete('/user/deleteUser/' + userId)
|
||||||
|
},
|
||||||
|
//修改用户密码
|
||||||
|
changePassword(params) {
|
||||||
|
return request.post('/user/changePassword',params)
|
||||||
|
},
|
||||||
|
//原材料申请入库
|
||||||
|
addInByTask(params){
|
||||||
|
return request.post('/api/orderIn/addInByTask', params)
|
||||||
|
},
|
||||||
//下发任务
|
//下发任务
|
||||||
addOrderIn(params){
|
addOrderIn(params){
|
||||||
return request.post('/api/orderIn/addOrderIn', params)
|
return request.post('/api/orderIn/addOrderIn', params)
|
||||||
},
|
},
|
||||||
|
bindingVehicl(params){
|
||||||
|
return request.post('/api/orderIn/bindingVehicl', params)
|
||||||
|
},
|
||||||
|
//应急预案,直接生成任务
|
||||||
|
yj(params){
|
||||||
|
return request.post('/api/orderIn/loginInBad', params)
|
||||||
|
},
|
||||||
// 绑定物料
|
// 绑定物料
|
||||||
bindingVehicle(params) {
|
bindingVehicle(params) {
|
||||||
return request.post('/api/orderIn/bindingVehicle', params)
|
return request.post('/api/orderIn/bindingVehicle', params)
|
||||||
|
},
|
||||||
|
// 下发母托
|
||||||
|
downEmptyBox(params) {
|
||||||
|
return request.put('/api/orderOut/downEmptyBox', params)
|
||||||
},
|
},
|
||||||
//提交更新入库信息
|
//提交更新入库信息
|
||||||
updateForInformation(params){
|
updateForInformation(params){
|
||||||
|
|
|
||||||
|
|
@ -5,14 +5,25 @@ export default {
|
||||||
getOrderOutList(params) {
|
getOrderOutList(params) {
|
||||||
return request.post('/api/orderOut/queryOrderOut', params)
|
return request.post('/api/orderOut/queryOrderOut', params)
|
||||||
},
|
},
|
||||||
// 下发所有出库任务
|
// 根据条件获取全部订单
|
||||||
OutAll(params) {
|
getOrderOutListByLocation(params) {
|
||||||
return request.put('/api/orderOut/outAll/', params)
|
return request.post('/api/orderOut/queryOrderOutByLocation', params)
|
||||||
},
|
},
|
||||||
// 执行出库
|
// 执行出库
|
||||||
executeOut(rowId) {
|
executeOut(rowId) {
|
||||||
return request.put('/api/orderOut/executeOrderOut/' + rowId)
|
return request.put('/api/orderOut/executeOrderOut/' + rowId)
|
||||||
},
|
},
|
||||||
|
//完成工单
|
||||||
|
finishTask(params){
|
||||||
|
return request.post('/api/orderOut/finishTaskFile', params)
|
||||||
|
},
|
||||||
|
//手动完成
|
||||||
|
handFinish(rowId){
|
||||||
|
return request.put('/api/orderOut/handFinish/' + rowId)
|
||||||
|
},
|
||||||
|
executeAllOut(rowId) {
|
||||||
|
return request.put('/api/orderOut/executeAllOrderOut/'+ rowId)
|
||||||
|
},
|
||||||
// 刪除按钮
|
// 刪除按钮
|
||||||
deleteOrder(rowId){
|
deleteOrder(rowId){
|
||||||
return request.delete('/api/orderOut/deleteOrderOut/' + rowId)
|
return request.delete('/api/orderOut/deleteOrderOut/' + rowId)
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,14 @@ const getAllStocks = (params) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getAllStocks1 = (params) => {
|
||||||
|
return request({
|
||||||
|
url: '/stock/getAllStocks1',
|
||||||
|
method: 'post',
|
||||||
|
data: params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const getAllStocksByGoodsId = (params) => {
|
const getAllStocksByGoodsId = (params) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/stock/getAllStocksByGoodsId',
|
url: '/stock/getAllStocksByGoodsId',
|
||||||
|
|
@ -16,6 +24,14 @@ const getAllStocksByGoodsId = (params) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getAllStocksByMultiple = (params) => {
|
||||||
|
return request({
|
||||||
|
url: '/stock/getAllStocksByMultiple',
|
||||||
|
method: 'post',
|
||||||
|
data: params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const updateStockInfo = (params) => {
|
const updateStockInfo = (params) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/stock/updateStockInfo',
|
url: '/stock/updateStockInfo',
|
||||||
|
|
@ -24,8 +40,19 @@ const updateStockInfo = (params) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const downCheckTask = (params) => {
|
||||||
|
return request({
|
||||||
|
url: '/api/orderOut/downCheckTask',
|
||||||
|
method: 'put',
|
||||||
|
data: params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export {
|
export {
|
||||||
getAllStocks,
|
getAllStocks,
|
||||||
updateStockInfo,
|
updateStockInfo,
|
||||||
getAllStocksByGoodsId
|
getAllStocksByGoodsId,
|
||||||
|
getAllStocksByMultiple,
|
||||||
|
getAllStocks1,
|
||||||
|
downCheckTask
|
||||||
}
|
}
|
||||||
|
|
@ -18,6 +18,87 @@ export function login(username, password, code, uuid) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function deleteUserInfo(params) {
|
||||||
|
return request({
|
||||||
|
url: '/user/deleteUserInfo',
|
||||||
|
method: 'post',
|
||||||
|
data: params,
|
||||||
|
timeout: 5000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function addUserInfo(params) {
|
||||||
|
return request({
|
||||||
|
url: '/user/addUserInfo',
|
||||||
|
method: 'post',
|
||||||
|
data: params,
|
||||||
|
timeout: 5000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateUserInfo(params) {
|
||||||
|
return request({
|
||||||
|
url: '/user/updateUserInfo',
|
||||||
|
method: 'post',
|
||||||
|
data: params,
|
||||||
|
timeout: 5000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deleteRoleInfo(params) {
|
||||||
|
return request({
|
||||||
|
url: '/user/deleteRoleInfo',
|
||||||
|
method: 'post',
|
||||||
|
data: params,
|
||||||
|
timeout: 5000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getUserList(params) {
|
||||||
|
return request({
|
||||||
|
url: '/user/getUserList',
|
||||||
|
method: 'post',
|
||||||
|
data: params,
|
||||||
|
timeout: 5000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getRoleOptions(params) {
|
||||||
|
return request({
|
||||||
|
url: '/user/getRoleOptions',
|
||||||
|
method: 'post',
|
||||||
|
data: params,
|
||||||
|
timeout: 5000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateRoleInfo(params) {
|
||||||
|
return request({
|
||||||
|
url: '/user/updateRoleInfo',
|
||||||
|
method: 'post',
|
||||||
|
data: params,
|
||||||
|
timeout: 5000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getPermissionList(params) {
|
||||||
|
return request({
|
||||||
|
url: '/user/getPermissionList',
|
||||||
|
method: 'post',
|
||||||
|
data: params,
|
||||||
|
timeout: 5000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function addRoleInfo(params) {
|
||||||
|
return request({
|
||||||
|
url: '/user/addRoleInfo',
|
||||||
|
method: 'post',
|
||||||
|
data: params,
|
||||||
|
timeout: 5000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 注册方法
|
// 注册方法
|
||||||
export function register(data) {
|
export function register(data) {
|
||||||
return request({
|
return request({
|
||||||
|
|
@ -30,6 +111,15 @@ export function register(data) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getRoleList(params) {
|
||||||
|
return request({
|
||||||
|
url: '/user/getRoleList',
|
||||||
|
method: 'post',
|
||||||
|
data: params,
|
||||||
|
timeout: 5000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 获取用户详细信息
|
// 获取用户详细信息
|
||||||
export function getInfo() {
|
export function getInfo() {
|
||||||
return request({
|
return request({
|
||||||
|
|
|
||||||
|
|
@ -83,6 +83,13 @@ export default {
|
||||||
type: 'error',
|
type: 'error',
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
if(isNaN(this.bindingData.goodsNum) || this.bindingData.goodsNum <= 0 ) {
|
||||||
|
ElMessage({
|
||||||
|
message: '数量必须为大于等于零的数字',
|
||||||
|
type: 'error',
|
||||||
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
this.bindOrderInList = []
|
this.bindOrderInList = []
|
||||||
ElMessageBox.confirm(`是否下发入库任务?`, '提示')
|
ElMessageBox.confirm(`是否下发入库任务?`, '提示')
|
||||||
|
|
|
||||||
|
|
@ -13,10 +13,10 @@
|
||||||
<el-form-item label="盘点类型:" prop="efSelect" required style="width: 72%;">
|
<el-form-item label="盘点类型:" prop="efSelect" required style="width: 72%;">
|
||||||
<el-select v-model="bindingData.efSelect" placeholder="请选择" style="width: 120%;">
|
<el-select v-model="bindingData.efSelect" placeholder="请选择" style="width: 120%;">
|
||||||
<el-option label="按物料号盘点" value="E"></el-option>
|
<el-option label="按物料号盘点" value="E"></el-option>
|
||||||
<el-option label="按货位盘点" value="F"></el-option>
|
<el-option label="按库位盘点" value="F"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="物料号/货位:" required style="width: 72%;">
|
<el-form-item label="物料号/库位:" required style="width: 72%;">
|
||||||
<el-input class="form-input" v-model="bindingData.goodsId" clearable/>
|
<el-input class="form-input" v-model="bindingData.goodsId" clearable/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="数量:" required>
|
<!-- <el-form-item label="数量:" required>
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,13 @@
|
||||||
<!-- <el-form-item label="源库别(必填):" required>
|
<!-- <el-form-item label="源库别(必填):" required>
|
||||||
<el-input class="form-input" v-model="bindingData.wareHouse" clearable/>
|
<el-input class="form-input" v-model="bindingData.wareHouse" clearable/>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item label="物料码:" required>
|
<el-form-item label="出库类型:" prop="orderOutType" required style="width: 72%;">
|
||||||
|
<el-select v-model="bindingData.orderOutType" placeholder="请选择" style="width: 120%;">
|
||||||
|
<el-option label="成品出库" value="CP"></el-option>
|
||||||
|
<el-option label="原材料出库" value="YCL"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="物料码/序列号:" required>
|
||||||
<el-input class="form-input" v-model="bindingData.goodsId" clearable/>
|
<el-input class="form-input" v-model="bindingData.goodsId" clearable/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="数量:" required>
|
<el-form-item label="数量:" required>
|
||||||
|
|
@ -30,6 +36,10 @@
|
||||||
<el-icon class="el-icon--left"><RefreshRight/></el-icon>
|
<el-icon class="el-icon--left"><RefreshRight/></el-icon>
|
||||||
重置输入
|
重置输入
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button type="success" @click="downEmptyBox">
|
||||||
|
<el-icon class="el-icon--left"><RefreshRight/></el-icon>
|
||||||
|
呼叫空托垛
|
||||||
|
</el-button>
|
||||||
<el-button type="primary" @click="addOrder()">
|
<el-button type="primary" @click="addOrder()">
|
||||||
<el-icon class="el-icon--left"><Search /></el-icon>
|
<el-icon class="el-icon--left"><Search /></el-icon>
|
||||||
下发任务
|
下发任务
|
||||||
|
|
@ -51,14 +61,15 @@ import {CircleCloseFilled, Close, RefreshRight} from "@element-plus/icons-vue";
|
||||||
import {formatterOrderInEnum} from "@/enum/order.in.enum";
|
import {formatterOrderInEnum} from "@/enum/order.in.enum";
|
||||||
import {formatCellValueTime} from "@/utils/formatter";
|
import {formatCellValueTime} from "@/utils/formatter";
|
||||||
import {ElMessage, ElMessageBox} from "element-plus";
|
import {ElMessage, ElMessageBox} from "element-plus";
|
||||||
//import apiOrderIn from '@/api/order.in';
|
import apiOrderIn from '@/api/order.in';
|
||||||
import apiOrderOut from '@/api/order.out'
|
import apiOrderOut from '@/api/order.out'
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
// import 引入的组件需要注入到对象中才能使用
|
// import 引入的组件需要注入到对象中才能使用
|
||||||
components: {Close, CircleCloseFilled, RefreshRight},
|
components: {Close, CircleCloseFilled, RefreshRight},
|
||||||
props: ['modelValue'],
|
props: ['modelValue'],
|
||||||
emits: ['update:modelValue'],
|
emits: ['update:modelValue','confirm-import'],
|
||||||
data() {
|
data() {
|
||||||
// 这里存放数据
|
// 这里存放数据
|
||||||
return {
|
return {
|
||||||
|
|
@ -67,6 +78,7 @@ export default {
|
||||||
goodsId: '',
|
goodsId: '',
|
||||||
goodsNum: '',
|
goodsNum: '',
|
||||||
efSelect: '',
|
efSelect: '',
|
||||||
|
orderOutType: ''
|
||||||
},
|
},
|
||||||
bindOrderInList: []
|
bindOrderInList: []
|
||||||
}
|
}
|
||||||
|
|
@ -74,7 +86,15 @@ export default {
|
||||||
// 计算属性 类似于 data 概念
|
// 计算属性 类似于 data 概念
|
||||||
computed: {},
|
computed: {},
|
||||||
// 监控 data 中的数据变化
|
// 监控 data 中的数据变化
|
||||||
watch: {},
|
watch: {
|
||||||
|
'bindingData.orderOutType': function(newVal) {
|
||||||
|
if (newVal === 'CP') {
|
||||||
|
this.bindingData.goodsNum = 1;
|
||||||
|
} else {
|
||||||
|
this.bindingData.goodsNum = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
// 方法集合
|
// 方法集合
|
||||||
methods: {
|
methods: {
|
||||||
formatCellValueTime,
|
formatCellValueTime,
|
||||||
|
|
@ -88,39 +108,46 @@ export default {
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.bindOrderInList = []
|
if(this.bindingData.orderOutType === 'CP' && this.bindingData.goodsNum != 1 ) {
|
||||||
ElMessageBox.confirm(`是否执行手动出库?`, '提示')
|
ElMessage({
|
||||||
.then(() => {
|
message: '成品出库时,数量只能为1',
|
||||||
apiOrderOut.addOrder(this.bindingData).then(res => {
|
type: 'error',
|
||||||
const responseData = res.data;
|
});
|
||||||
if (responseData.code === 0) {
|
return;
|
||||||
// 正确请求
|
}
|
||||||
ElMessage({
|
this.bindOrderInList = []
|
||||||
message: '执行成功',
|
ElMessageBox.confirm(`是否执行手动出库?`, '提示')
|
||||||
type: 'success',
|
.then(() => {
|
||||||
});
|
apiOrderOut.addOrder(this.bindingData).then(res => {
|
||||||
this.bindingData.goodsNum = '';
|
const responseData = res.data;
|
||||||
this.bindingData.goodsId = '';
|
if (responseData.code === 0) {
|
||||||
this.bindOrderInList = responseData['returnData'];
|
// 正确请求
|
||||||
} else {
|
ElMessage({
|
||||||
// 服务报错
|
message: '执行成功',
|
||||||
ElMessageBox.alert(`服务器返回失败:${responseData.message}`, '执行失败', {
|
type: 'success',
|
||||||
type: 'warning',
|
});
|
||||||
confirmButtonText: '确定',
|
this.resetInput(); // 重置输入框
|
||||||
showClose: false
|
this.$emit('update:modelValue', false); // 关闭弹窗
|
||||||
})
|
this.$emit('confirm-import');
|
||||||
}
|
} else {
|
||||||
}).catch(err => {
|
// 服务报错
|
||||||
// 通讯报错
|
ElMessageBox.alert(`服务器返回失败:${responseData.message}`, '执行失败', {
|
||||||
ElMessageBox.alert(`请求服务器失败::${err}`, '任务添加失败', {
|
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
confirmButtonText: '确定'
|
confirmButtonText: '确定',
|
||||||
|
showClose: false
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
}).catch(err => {
|
||||||
|
// 通讯报错
|
||||||
|
ElMessageBox.alert(`请求服务器失败::${err}`, '任务添加失败', {
|
||||||
|
type: 'warning',
|
||||||
|
confirmButtonText: '确定'
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(() => {
|
})
|
||||||
})
|
.catch(() => {
|
||||||
},
|
})
|
||||||
|
},
|
||||||
|
|
||||||
test() {
|
test() {
|
||||||
console.log(this.bindingData);
|
console.log(this.bindingData);
|
||||||
|
|
@ -162,9 +189,42 @@ export default {
|
||||||
},
|
},
|
||||||
// 重置输入框
|
// 重置输入框
|
||||||
resetInput() {
|
resetInput() {
|
||||||
|
this.bindingData.orderOutType = '';
|
||||||
|
this.bindingData.efSelect = '';
|
||||||
this.bindingData.goodsNum = '';
|
this.bindingData.goodsNum = '';
|
||||||
this.bindingData.goodsId = '';
|
this.bindingData.goodsId = '';
|
||||||
},
|
},
|
||||||
|
downEmptyBox(){
|
||||||
|
ElMessageBox.confirm(`是否呼叫母托下线?`, '提示')
|
||||||
|
.then(() => {
|
||||||
|
this.bindOrderInList = [];
|
||||||
|
apiOrderIn.downEmptyBox().then(res => {
|
||||||
|
const responseData = res.data
|
||||||
|
if (responseData.code === 0) {
|
||||||
|
// 正确请求
|
||||||
|
ElMessage({
|
||||||
|
message: '下发成功',
|
||||||
|
type: 'success',
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// 服务报错
|
||||||
|
ElMessageBox.alert(`服务器返回失败:${responseData.message}`, '下发失败', {
|
||||||
|
type: 'warning',
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
showClose: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}).catch(err => {
|
||||||
|
// 通讯报错
|
||||||
|
ElMessageBox.alert(`请求服务器失败::${err}`, '任务添加失败', {
|
||||||
|
type: 'warning',
|
||||||
|
confirmButtonText: '确定'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
})
|
||||||
|
},
|
||||||
// 绑定物料
|
// 绑定物料
|
||||||
bindingGoods() {
|
bindingGoods() {
|
||||||
if(this.bindingData.vehicleNo === '' || this.bindingData.code === '') {
|
if(this.bindingData.vehicleNo === '' || this.bindingData.code === '') {
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,11 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.menu-title {
|
.menu-title {
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { warn } from "vue";
|
||||||
|
|
||||||
// 出库单状态
|
// 出库单状态
|
||||||
export const orderOutEnum = {
|
export const orderOutEnum = {
|
||||||
|
|
@ -11,10 +12,25 @@ export const orderOutEnum = {
|
||||||
label: '出库中',
|
label: '出库中',
|
||||||
color: 'primary'
|
color: 'primary'
|
||||||
},
|
},
|
||||||
error: {
|
error1: {
|
||||||
value: 9,
|
value: 9,
|
||||||
label: '执行异常',
|
label: '执行异常',
|
||||||
color: 'danger'
|
color: 'danger'
|
||||||
|
},
|
||||||
|
error2: {
|
||||||
|
value: 76,
|
||||||
|
label: '没有库存',
|
||||||
|
color: 'danger'
|
||||||
|
},
|
||||||
|
error3: {
|
||||||
|
value: 77,
|
||||||
|
label: '库存不足',
|
||||||
|
color: 'warning'
|
||||||
|
},
|
||||||
|
finish: {
|
||||||
|
value: 100,
|
||||||
|
label: '已完成',
|
||||||
|
color: 'success'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -24,8 +40,14 @@ export function formatterOrderOutEnum(value) {
|
||||||
return {label: orderOutEnum.creat.label, type: orderOutEnum.creat.color};
|
return {label: orderOutEnum.creat.label, type: orderOutEnum.creat.color};
|
||||||
case orderOutEnum.running.value:
|
case orderOutEnum.running.value:
|
||||||
return {label: orderOutEnum.running.label, type: orderOutEnum.running.color};
|
return {label: orderOutEnum.running.label, type: orderOutEnum.running.color};
|
||||||
case orderOutEnum.error.value:
|
case orderOutEnum.error1.value:
|
||||||
return {label: orderOutEnum.error.label, type: orderOutEnum.error.color};
|
return {label: orderOutEnum.error1.label, type: orderOutEnum.error1.color};
|
||||||
|
case orderOutEnum.error2.value:
|
||||||
|
return {label: orderOutEnum.error2.label, type: orderOutEnum.error2.color};
|
||||||
|
case orderOutEnum.error3.value:
|
||||||
|
return {label: orderOutEnum.error3.label, type: orderOutEnum.error3.color};
|
||||||
|
case orderOutEnum.finish.value:
|
||||||
|
return {label: orderOutEnum.finish.label, type: orderOutEnum.finish.color};
|
||||||
default:
|
default:
|
||||||
return {label: `未知类型:${value}`, type: 'danger'};
|
return {label: `未知类型:${value}`, type: 'danger'};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
//172.21.80.150
|
//172.21.80.150
|
||||||
const request = axios.create({
|
const request = axios.create({
|
||||||
// baseURL: 'http://10.90.243.134:443/wmsServer/wms',
|
//baseURL: 'http://10.90.85.68:443/wmsServer/wms',
|
||||||
|
//baseURL: 'https://wxperkinsasrs.ap.cat.com/wmsServer/wms',
|
||||||
baseURL: 'http://localhost:19990/wms',
|
baseURL: 'http://localhost:19990/wms',
|
||||||
timeout: 5000
|
timeout: 5000
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,15 @@
|
||||||
<template>
|
<template>
|
||||||
<div style="margin-bottom: 10px">
|
<div style="margin-bottom: 10px">
|
||||||
<el-config-provider :locale="zhCn">
|
<el-config-provider :locale="zhCn">
|
||||||
<el-row>
|
<!-- <el-row>
|
||||||
<UploadExcelPart></UploadExcelPart>
|
<UploadExcelPart></UploadExcelPart>
|
||||||
</el-row>
|
</el-row> -->
|
||||||
<el-row style="margin-top: 10px;">
|
<el-row style="margin-top: 10px;">
|
||||||
<el-input v-model="queryKey" style="width: 256px; margin-right: 10px;" placeholder="零件号" />
|
<el-input v-model="queryKey" style="width: 256px; margin-right: 10px;" placeholder="机型/物料号" />
|
||||||
<el-button type="primary" @click="search()">搜索</el-button>
|
<el-button type="primary" @click="search()">搜索</el-button>
|
||||||
<el-button type="warning" @click="reset()">重置</el-button>
|
<!-- <el-button type="warning" @click="reset()">重置</el-button> -->
|
||||||
<el-button type="success" @click="search()">刷新</el-button>
|
<el-button type="success" @click="addList = true">新增</el-button>
|
||||||
<el-button type="success" @click="exportExcel()">导出信息</el-button>
|
<!-- <el-button type="success" @click="exportExcel()">导出信息</el-button> -->
|
||||||
</el-row>
|
</el-row>
|
||||||
<br />
|
<br />
|
||||||
<el-table :data="partInfos" stripe border v-loading="loading" class="table-class" max-height="650px"
|
<el-table :data="partInfos" stripe border v-loading="loading" class="table-class" max-height="650px"
|
||||||
|
|
@ -20,27 +20,12 @@
|
||||||
<el-radio :label="scope.row.material" v-model="material"> </el-radio>
|
<el-radio :label="scope.row.material" v-model="material"> </el-radio>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="material" label="零件号" fixed="left" sortable min-width="120px" />
|
<el-table-column fixed type="index" label="序号" min-width="20px" />
|
||||||
<el-table-column prop="itemDesc" label="描述" fixed="left" min-width="120px" />
|
<el-table-column prop="material" label="机型/物料号" fixed="left" min-width="120px" />
|
||||||
<el-table-column prop="category" label="零件类型" fixed="left" sortable min-width="120px" />
|
<el-table-column prop="itemDesc" label="类型" fixed="left" min-width="120px" />
|
||||||
<el-table-column prop="categoryRemark" label="策略" min-width="120px" />
|
|
||||||
<el-table-column prop="unloadPlace" label="卸货点" min-width="120px" />
|
|
||||||
<el-table-column prop="kittingPoint" label="配料点" min-width="120px" />
|
|
||||||
<el-table-column prop="property" label="可用性" min-width="120px" />
|
|
||||||
<el-table-column prop="vendorId" label="供应商代码" min-width="120px" />
|
|
||||||
<el-table-column prop="dataOwner" label="数据负责人" min-width="120px" />
|
|
||||||
<el-table-column prop="partWeight" label="重量" min-width="120px" />
|
|
||||||
<el-table-column prop="storageLocation" label="库位" min-width="120px" />
|
|
||||||
<el-table-column prop="storageType" label="存储类型" min-width="120px" />
|
|
||||||
<el-table-column prop="storageBin" label="BIN位" min-width="120px" />
|
|
||||||
<el-table-column prop="vendorNameEN" label="供应商名称(英文)" min-width="120px" />
|
|
||||||
<el-table-column prop="vendorNameCN" label="供应商名称(中文)" min-width="120px" />
|
|
||||||
<el-table-column prop="vendorCountry" label="供应商国家/地区" min-width="120px" />
|
|
||||||
<el-table-column prop="SLED" label="SLED" min-width="120px" />
|
|
||||||
<el-table-column prop="updateDate" label="更新日期" min-width="120px" />
|
|
||||||
<el-table-column fixed="right" label="操作" width="240px">
|
<el-table-column fixed="right" label="操作" width="240px">
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-button plain type="primary" @click="editCurrentRowGoods(scope.row)">编辑</el-button>
|
<!-- <el-button plain type="primary" @click="editCurrentRowGoods(scope.row)">查看</el-button> -->
|
||||||
<el-button plain type="danger" @click="deleteCurrentRowGoods(scope.row)">删除</el-button>
|
<el-button plain type="danger" @click="deleteCurrentRowGoods(scope.row)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
@ -55,110 +40,13 @@
|
||||||
style="max-width: 100%" :rules="rules" status-icon>
|
style="max-width: 100%" :rules="rules" status-icon>
|
||||||
<el-row :gutter="16">
|
<el-row :gutter="16">
|
||||||
<el-col :span="12" :offset="0">
|
<el-col :span="12" :offset="0">
|
||||||
<el-form-item label="零件号" prop="material">
|
<el-form-item label="机型/物料号" prop="material">
|
||||||
<el-input v-model="goodsFormEntity.material" disabled />
|
<el-input v-model="goodsFormEntity.material" clearable readonly/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="描述" prop="itemDesc">
|
<el-form-item label="类型" prop="itemDesc">
|
||||||
<el-input v-model="goodsFormEntity.itemDesc" clearable />
|
<el-input v-model="goodsFormEntity.itemDesc" clearable readonly/>
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12" :offset="0">
|
|
||||||
<el-form-item label="零件类型" prop="category">
|
|
||||||
<el-input v-model="goodsFormEntity.category" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="策略" prop="categoryRemark">
|
|
||||||
<el-input v-model="goodsFormEntity.categoryRemark" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12" :offset="0">
|
|
||||||
<el-form-item label="卸货点" prop="unloadPlace">
|
|
||||||
<el-input v-model="goodsFormEntity.unloadPlace" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="配料点" prop="kittingPoint">
|
|
||||||
<el-input v-model="goodsFormEntity.kittingPoint" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12" :offset="0">
|
|
||||||
<el-form-item label="可用性" prop="property">
|
|
||||||
<el-input v-model="goodsFormEntity.property" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="供应商代码" prop="vendorId">
|
|
||||||
<el-input v-model="goodsFormEntity.vendorId" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12" :offset="0">
|
|
||||||
<el-form-item label="数据负责人" prop="dataOwner">
|
|
||||||
<el-input v-model="goodsFormEntity.dataOwner" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="重量" prop="partWeight">
|
|
||||||
<el-input v-model="goodsFormEntity.partWeight" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12" :offset="0">
|
|
||||||
<el-form-item label="库位" prop="storageLocation">
|
|
||||||
<el-input v-model="goodsFormEntity.storageLocation" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="存储类型" prop="storageType">
|
|
||||||
<el-input v-model="goodsFormEntity.storageType" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12" :offset="0">
|
|
||||||
<el-form-item label="BIN位" prop="storageBin">
|
|
||||||
<el-input v-model="goodsFormEntity.storageBin" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="供应商名称(英文)" prop="vendorNameEN">
|
|
||||||
<el-input v-model="goodsFormEntity.vendorNameEN" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12" :offset="0">
|
|
||||||
<el-form-item label="供应商名称(中文)" prop="vendorNameCN">
|
|
||||||
<el-input v-model="goodsFormEntity.vendorNameCN" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="供应商国家/地区" prop="vendorCountry">
|
|
||||||
<el-input v-model="goodsFormEntity.vendorCountry" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12" :offset="0">
|
|
||||||
<el-form-item label="SLED" prop="SLED">
|
|
||||||
<el-input-number v-model.number="goodsFormEntity.SLED" clearable controls-position="right"
|
|
||||||
:min="0" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="更新日期" prop="updateDate">
|
|
||||||
<el-input v-model="goodsFormEntity.updateDate" clearable />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
@ -172,16 +60,20 @@
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
<AddList v-model="addList"/>
|
||||||
</el-config-provider>
|
</el-config-provider>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { getPartInfo, updatePartInfo, deleteCurrentPartInfo } from '@/api/goods.js'
|
import { getPartInfo, updatePartInfo, deleteCurrentPartInfo } from '@/api/goods.js'
|
||||||
|
import AddList from '@/components/AddList.vue'
|
||||||
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
|
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage,ElMessageBox } from 'element-plus'
|
||||||
import { ref, reactive } from 'vue'
|
import { ref, reactive } from 'vue'
|
||||||
import { dateFormatter } from '@/utils/formatter.js'
|
import { dateFormatter } from '@/utils/formatter.js'
|
||||||
|
import { errorBox } from '@/utils/myMessageBox.js'
|
||||||
import UploadExcelPart from '@/excel/UploadExcelPart.vue'
|
import UploadExcelPart from '@/excel/UploadExcelPart.vue'
|
||||||
import { downloadMaterialExcel } from '@/api/excel.js'
|
import { downloadMaterialExcel } from '@/api/excel.js'
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -201,6 +93,7 @@ export default {
|
||||||
material: '',
|
material: '',
|
||||||
goodsFormEntity: reactive({}),
|
goodsFormEntity: reactive({}),
|
||||||
labelPosition: 'top',
|
labelPosition: 'top',
|
||||||
|
addList: false,
|
||||||
goodsFormRef: ref(),
|
goodsFormRef: ref(),
|
||||||
rules: reactive({})
|
rules: reactive({})
|
||||||
}
|
}
|
||||||
|
|
@ -247,23 +140,32 @@ export default {
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
},
|
},
|
||||||
deleteCurrentRowGoods(row) {
|
deleteCurrentRowGoods(row) {
|
||||||
this.material = row.material
|
this.roleId = row.roleId
|
||||||
const goods = {
|
if (this.$store.state.user.roleId != 1) {
|
||||||
material: row.material
|
errorBox("操作人必须是管理员级别。")
|
||||||
|
return
|
||||||
}
|
}
|
||||||
deleteCurrentPartInfo(goods).then(res => {
|
ElMessageBox.confirm('是否删除当前数据库数据?','提示')
|
||||||
if (res.data.code == 0) {
|
.then(() => {
|
||||||
ElMessage({
|
this.material = row.material
|
||||||
message: '删除零件信息成功',
|
const goods = {
|
||||||
type: 'success',
|
material: row.material
|
||||||
})
|
}
|
||||||
this.search()
|
deleteCurrentPartInfo(goods).then(res => {
|
||||||
} else {
|
if (res.data.code == 0) {
|
||||||
ElMessage.error(res.data.message)
|
ElMessage({
|
||||||
}
|
message: '删除零件信息成功',
|
||||||
}).catch(err => {
|
type: 'success',
|
||||||
ElMessage.error('删除零件信息失败:' + err)
|
})
|
||||||
})
|
this.search()
|
||||||
|
} else {
|
||||||
|
ElMessage.error(res.data.message)
|
||||||
|
}
|
||||||
|
}).catch(err => {
|
||||||
|
ElMessage.error('删除零件信息失败:' + err)
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
})
|
||||||
},
|
},
|
||||||
submitGoodsInfo(formData) {
|
submitGoodsInfo(formData) {
|
||||||
updatePartInfo(formData).then(res => {
|
updatePartInfo(formData).then(res => {
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,10 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-button type="primary" @click="queryGoodsOrderIn">查询入库单</el-button>
|
<el-button type="primary" @click="queryGoodsOrderIn">查询入库单</el-button>
|
||||||
<el-button type="success" @click="showBindingGoods = true">下发入库任务</el-button>
|
<!-- <el-button type="success" @click="showBindingGoods = true">下发入库任务</el-button> -->
|
||||||
|
<el-button type="success" @click="loginToWcs">跳转至手持入库</el-button>
|
||||||
|
<!-- <el-button type="success" @click="login">按钮</el-button> -->
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
<div> <!-- 表格-->
|
<div> <!-- 表格-->
|
||||||
|
|
@ -28,11 +31,11 @@
|
||||||
<el-table-column prop="inType" label="入库类型" width="100px" align="center" show-overflow-tooltip/> -->
|
<el-table-column prop="inType" label="入库类型" width="100px" align="center" show-overflow-tooltip/> -->
|
||||||
<el-table-column fixed type="index" label="序号" width="100px" align="center" show-overflow-tooltip/>
|
<el-table-column fixed type="index" label="序号" width="100px" align="center" show-overflow-tooltip/>
|
||||||
<el-table-column prop="wareHouse" label="库别" width="150px" align="center" show-overflow-tooltip/>
|
<el-table-column prop="wareHouse" label="库别" width="150px" align="center" show-overflow-tooltip/>
|
||||||
<el-table-column prop="batchNo" label="序列号" width="150px" align="center" show-overflow-tooltip/>
|
<!-- <el-table-column prop="batchNo" label="序列号" width="150px" align="center" show-overflow-tooltip/> -->
|
||||||
<!-- <el-table-column prop="model" label="机型" width="100px" align="center" show-overflow-tooltip/> -->
|
<!-- <el-table-column prop="model" label="机型" width="100px" align="center" show-overflow-tooltip/> -->
|
||||||
<el-table-column prop="vehicleNo" label="载具号" width="150px" align="center" show-overflow-tooltip/>
|
<el-table-column prop="vehicleNo" label="母托号" width="150px" align="center" show-overflow-tooltip/>
|
||||||
<el-table-column prop="goodsId" label="物料号" width="150px" align="center" show-overflow-tooltip/>
|
<el-table-column prop="goodsId" label="原材料号" width="150px" align="center" show-overflow-tooltip/>
|
||||||
<el-table-column prop="goodsNum" label="物料数量" width="150px" align="center" show-overflow-tooltip/>
|
<el-table-column prop="goodsNum" label="原材料数量" width="150px" align="center" show-overflow-tooltip/>
|
||||||
<el-table-column prop="orderStatus" label="入库单状态" width="150px" align="center">
|
<el-table-column prop="orderStatus" label="入库单状态" width="150px" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-tag class="ml-2" :type=formatterOrderInEnum(scope.row.orderStatus).type>
|
<el-tag class="ml-2" :type=formatterOrderInEnum(scope.row.orderStatus).type>
|
||||||
|
|
@ -137,7 +140,12 @@ export default {
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {},
|
activated() {
|
||||||
|
this.queryGoodsOrderIn();
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
//this.queryGoodsOrderIn();
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
formatCellValueTime,
|
formatCellValueTime,
|
||||||
formatterOrderInEnum,
|
formatterOrderInEnum,
|
||||||
|
|
@ -152,7 +160,11 @@ export default {
|
||||||
message: '查询成功',
|
message: '查询成功',
|
||||||
type: 'success',
|
type: 'success',
|
||||||
});
|
});
|
||||||
this.goodsOrderInList = responseData['returnData'];
|
// 设置每条记录的 createPerson 为当前登录用户名
|
||||||
|
this.goodsOrderInList = responseData['returnData'].map(item => ({
|
||||||
|
...item,
|
||||||
|
createPerson: this.$store.state.user.userName
|
||||||
|
}));
|
||||||
} else {
|
} else {
|
||||||
// 服务报错
|
// 服务报错
|
||||||
ElMessageBox.alert(`服务器返回失败:${responseData.msg}`, '查询失败', {
|
ElMessageBox.alert(`服务器返回失败:${responseData.msg}`, '查询失败', {
|
||||||
|
|
@ -170,6 +182,14 @@ export default {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
loginToWcs() {
|
||||||
|
const wcsUrl = `https://wxperkinsasrs.ap.cat.com/wms/#/PDAview`;
|
||||||
|
window.location.href = wcsUrl; // 打开新窗口
|
||||||
|
},
|
||||||
|
login(){
|
||||||
|
const msg = new SpeechSynthesisUtterance('一号站台');
|
||||||
|
window.speechSynthesis.speak(msg);
|
||||||
|
},
|
||||||
// 删除入库单
|
// 删除入库单
|
||||||
deleteOrder(row) {
|
deleteOrder(row) {
|
||||||
ElMessageBox.confirm('确定执行删除吗?','提示')
|
ElMessageBox.confirm('确定执行删除吗?','提示')
|
||||||
|
|
|
||||||
|
|
@ -2,44 +2,54 @@
|
||||||
<el-config-provider :locale="zhCn">
|
<el-config-provider :locale="zhCn">
|
||||||
<el-container class="content">
|
<el-container class="content">
|
||||||
<fieldset class="input-area">
|
<fieldset class="input-area">
|
||||||
<legend style="font-size: xxx-large;">PDA界面</legend>
|
<legend style="font-size: 30px;">通道三原材料盘点回库</legend>
|
||||||
<el-form :model="bindingData" :label-position="labelPosition"
|
<el-form :model="bindingData" :label-position="labelPosition"
|
||||||
label-width="100px" style="max-width: 100%" :rules="rules" status-icon size="large">
|
label-width="100px" style="max-width: 100%" :rules="rules" status-icon size="large">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="22" :offset="1">
|
<el-col :span="22" :offset="1">
|
||||||
<el-form-item label="托盘号:" required>
|
<el-form-item label="母托号:" required>
|
||||||
<el-input class="form-input" v-model="bindingData.vehicleNo" clearable/>
|
<el-input class="form-input" v-model="bindingData.vehicleNo" clearable/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<!-- <el-row>
|
||||||
<el-col :span="22" :offset="1">
|
<el-col :span="22" :offset="1">
|
||||||
<el-form-item label="零件号:" >
|
<el-form-item label="原材料号:">
|
||||||
<el-input class="form-input" v-model="bindingData.goodsId" clearable/>
|
<el-input class="form-input" v-model="bindingData.goodsId" clearable readonly/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="22" :offset="1">
|
<el-col :span="22" :offset="1">
|
||||||
<el-form-item label="零件数量:" >
|
<el-form-item label="原材料数量:" >
|
||||||
<el-input class="form-input" v-model="bindingData.goodsNum" clearable/>
|
<el-input class="form-input" v-model="bindingData.goodsNum" clearable/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row> -->
|
||||||
<el-row :gutter="15" class="btn-area">
|
<el-row :gutter="15" class="btn-area">
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="warning" round @click="resetInput">重置数量</el-button>
|
<el-button type="primary" round @click="loginToWcs">返回菜单</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="warning" round @click="resetInput">重置数据</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<!-- <el-col :span="8">
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="success" @click="showBindingGoods = true">下发入库任务</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col> -->
|
||||||
|
<!-- <el-col :span="8">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" round @click="queryGoodsOrderIn">查询</el-button>
|
<el-button type="primary" round @click="queryGoodsOrderIn">查询</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="success" round @click="updateGoodsInfo123">确认修改</el-button>
|
<el-button type="success" round @click="updateGoodsInfo123">确认回库</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
@ -47,6 +57,7 @@
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div ref="btnArea"></div>
|
<div ref="btnArea"></div>
|
||||||
</el-container>
|
</el-container>
|
||||||
|
<BindingGoods v-model="showBindingGoods"></BindingGoods>
|
||||||
</el-config-provider>
|
</el-config-provider>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -59,6 +70,7 @@ import { reactive, ref } from 'vue'
|
||||||
import {ElMessage, ElMessageBox} from 'element-plus'
|
import {ElMessage, ElMessageBox} from 'element-plus'
|
||||||
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
|
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
|
||||||
import UploadExcelPart from '@/excel/UploadExcelPart.vue'
|
import UploadExcelPart from '@/excel/UploadExcelPart.vue'
|
||||||
|
import BindingGoods from "@/components/BindingGoods.vue";
|
||||||
// const taskInRequestRef = ref()
|
// const taskInRequestRef = ref()
|
||||||
// const bindingData = reactive({
|
// const bindingData = reactive({
|
||||||
// vehicleNo: '1',// 载具号
|
// vehicleNo: '1',// 载具号
|
||||||
|
|
@ -98,6 +110,8 @@ export default {
|
||||||
goodsNum: '',
|
goodsNum: '',
|
||||||
rowId: ''
|
rowId: ''
|
||||||
},
|
},
|
||||||
|
// 展示绑定物料的弹窗
|
||||||
|
showBindingGoods: false,
|
||||||
bindOrderInList: []
|
bindOrderInList: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -106,8 +120,18 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
test() {
|
test() {
|
||||||
console.log(this.bindingData);
|
console.log(this.bindingData);
|
||||||
|
},
|
||||||
|
checkGoods(){
|
||||||
|
|
||||||
},
|
},
|
||||||
updateGoodsInfo123(){
|
updateGoodsInfo123(){
|
||||||
|
if(this.bindingData.vehicleNo === '') {
|
||||||
|
ElMessage({
|
||||||
|
message: '托盘号不能为空',
|
||||||
|
type: 'error',
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
apiOrderIn.updateForInformation({vehicleNo:this.bindingData.vehicleNo,goodsId:this.bindingData.goodsId,goodsNum:this.bindingData.goodsNum,rowId:this.bindingData.rowId}).then(res => {
|
apiOrderIn.updateForInformation({vehicleNo:this.bindingData.vehicleNo,goodsId:this.bindingData.goodsId,goodsNum:this.bindingData.goodsNum,rowId:this.bindingData.rowId}).then(res => {
|
||||||
const responseData = res.data
|
const responseData = res.data
|
||||||
if (responseData.code === 0) {
|
if (responseData.code === 0) {
|
||||||
|
|
@ -135,6 +159,20 @@ export default {
|
||||||
|
|
||||||
},
|
},
|
||||||
queryGoodsOrderIn() {
|
queryGoodsOrderIn() {
|
||||||
|
if(this.bindingData.vehicleNo === '') {
|
||||||
|
ElMessage({
|
||||||
|
message: '请输入托盘号!',
|
||||||
|
type: 'error',
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// if(this.bindingData.goodsId !== '' || this.bindingData.goodsNum !== '') {
|
||||||
|
// ElMessage({
|
||||||
|
// message: '查询时不允许输入物料号和数量!',
|
||||||
|
// type: 'error',
|
||||||
|
// });
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
this.goodsOrderInList = [];
|
this.goodsOrderInList = [];
|
||||||
apiOrderIn.getOrderInWithVehicleNo(this.bindingData.vehicleNo).then(res => {
|
apiOrderIn.getOrderInWithVehicleNo(this.bindingData.vehicleNo).then(res => {
|
||||||
const responseData = res.data
|
const responseData = res.data
|
||||||
|
|
@ -151,7 +189,7 @@ export default {
|
||||||
this.goodsOrderInList = responseData['returnData'];
|
this.goodsOrderInList = responseData['returnData'];
|
||||||
} else {
|
} else {
|
||||||
// 服务报错
|
// 服务报错
|
||||||
ElMessageBox.alert(`服务器返回失败:${responseData.msg}`, '查询失败', {
|
ElMessageBox.alert(`服务器返回失败:${responseData.message}`, '查询失败', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
showClose: false
|
showClose: false
|
||||||
|
|
@ -241,6 +279,10 @@ export default {
|
||||||
this.bindingData.goodsId = '';
|
this.bindingData.goodsId = '';
|
||||||
this.bindingData.goodsNum = '';
|
this.bindingData.goodsNum = '';
|
||||||
},
|
},
|
||||||
|
loginToWcs() {
|
||||||
|
const wcsUrl = `https://wxperkinsasrs.ap.cat.com/wms/#/PDAview`;
|
||||||
|
window.location.href = wcsUrl; // 打开新窗口
|
||||||
|
},
|
||||||
// addTempTasks(formEl, formData) {// 生成入库任务
|
// addTempTasks(formEl, formData) {// 生成入库任务
|
||||||
// if (!formEl) return
|
// if (!formEl) return
|
||||||
// formEl.validate((valid) => {
|
// formEl.validate((valid) => {
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,12 @@
|
||||||
<div style="border-radius: 5px; border: #2c3e5033 solid 1px; padding: 10px; calc(100vw - 300px)"><!-- 搜索-->
|
<div style="border-radius: 5px; border: #2c3e5033 solid 1px; padding: 10px; calc(100vw - 300px)"><!-- 搜索-->
|
||||||
<el-row style="width: 100%">
|
<el-row style="width: 100%">
|
||||||
<el-form :model="searchParams" label-width="120" label-position="left" >
|
<el-form :model="searchParams" label-width="120" label-position="left" >
|
||||||
<el-form-item style="width: 600px" label="查询关键字:">
|
|
||||||
|
<el-form-item style="width: 700px" label="查询关键字:">
|
||||||
<el-input placeholder="输入 料箱号/库位/任务号 查询..." v-model="searchParams.searchStr" clearable></el-input>
|
<el-input placeholder="输入 料箱号/库位/任务号 查询..." v-model="searchParams.searchStr" clearable></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item style="width: 600px" label="任务状态:">
|
<el-form-item style="width: 700px" label="任务状态:">
|
||||||
<el-select style="width: 600px" v-model="searchParams.orderStatus" multiple placeholder="请选择需要查询的任务状态">
|
<el-select style="width: 700px" v-model="searchParams.orderStatus" multiple placeholder="请选择需要查询的任务状态">
|
||||||
<el-option v-for="item in orderOutEnum" :key="item.value" :label="item.label" :value="item.value"/>
|
<el-option v-for="item in orderOutEnum" :key="item.value" :label="item.label" :value="item.value"/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -16,9 +17,16 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-button type="primary" @click="queryGoodsOrderOut">查询出库单</el-button>
|
<el-button type="primary" @click="queryGoodsOrderOut">查询出库单</el-button>
|
||||||
<el-button type="success" @click="showhandOut = true">手动下发出库</el-button>
|
<el-button type="success" @click="showhandOut = true">手动出库</el-button>
|
||||||
<el-button type="primary" @click="showAllOut">一键出库</el-button>
|
<el-button type="primary" @click="showAllOut" >全部执行</el-button>
|
||||||
|
<el-button type="success" @click="finishTask">完成工单</el-button>
|
||||||
|
<el-button type="primary" @click="exportExcelUnEnd">导出当前工单</el-button>
|
||||||
|
<el-button type="success" @click="exportExcel">导出工单模板</el-button>
|
||||||
|
<el-row style="margin-left: auto;">
|
||||||
|
<UploadExcelOrderOut @confirm-import="queryGoodsOrderOut"></UploadExcelOrderOut>
|
||||||
|
</el-row>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div> <!-- 表格-->
|
<div> <!-- 表格-->
|
||||||
<el-row style="width: calc(100vw - 300px)">
|
<el-row style="width: calc(100vw - 300px)">
|
||||||
|
|
@ -29,17 +37,10 @@
|
||||||
<el-table-column fixed prop="orderId" label="订单号" width="200px" align="center" show-overflow-tooltip/> -->
|
<el-table-column fixed prop="orderId" label="订单号" width="200px" align="center" show-overflow-tooltip/> -->
|
||||||
<el-table-column fixed type="index" label="序号" width="100px" align="center" show-overflow-tooltip/>
|
<el-table-column fixed type="index" label="序号" width="100px" align="center" show-overflow-tooltip/>
|
||||||
<el-table-column prop="warehouseOrigin" label="库别" width="150px" align="center" show-overflow-tooltip/>
|
<el-table-column prop="warehouseOrigin" label="库别" width="150px" align="center" show-overflow-tooltip/>
|
||||||
<!-- <el-table-column prop="warehouseDestination" label="目的库别" width="120px" align="center" show-overflow-tooltip/> -->
|
|
||||||
<el-table-column prop="orderType" label="订单类型" width="150px" align="center" show-overflow-tooltip/>
|
<el-table-column prop="orderType" label="订单类型" width="150px" align="center" show-overflow-tooltip/>
|
||||||
<el-table-column prop="goodsId" label="物料号" width="170px" align="center" show-overflow-tooltip/>
|
<el-table-column prop="goodsId" label="序列号/物料号" width="170px" align="center" show-overflow-tooltip/>
|
||||||
<!-- <el-table-column prop="deliveryTime" label="需求时间" width="120px" align="center" show-overflow-tooltip/> -->
|
<el-table-column prop="createTime" label="需求日期" :formatter="formatCellValueTime" width="180px" align="center" show-overflow-tooltip/>
|
||||||
<el-table-column prop="createTime" label="需求日期" :formatter="formatCellValueTime" width="180px"
|
<el-table-column prop="goodsNum" label="数量" width="150px" align="center" show-overflow-tooltip/>
|
||||||
align="center" show-overflow-tooltip/>
|
|
||||||
<!-- <el-table-column prop="rowNo" label="行号" width="100px" align="center" show-overflow-tooltip/> -->
|
|
||||||
<!-- <el-table-column prop="goodsId" label="物料编号" width="150px" align="center" show-overflow-tooltip/> -->
|
|
||||||
<el-table-column prop="goodsNum" label="物料数量" width="150px" align="center" show-overflow-tooltip/>
|
|
||||||
<!-- <el-table-column prop="unit" label="单位" width="100px" align="center" show-overflow-tooltip/> -->
|
|
||||||
|
|
||||||
<el-table-column prop="createTime" label="创建日期" :formatter="formatCellValueTime" width="180px"
|
<el-table-column prop="createTime" label="创建日期" :formatter="formatCellValueTime" width="180px"
|
||||||
align="center" show-overflow-tooltip/>
|
align="center" show-overflow-tooltip/>
|
||||||
<el-table-column prop="status" label="出库单状态" width="150px" align="center">
|
<el-table-column prop="status" label="出库单状态" width="150px" align="center">
|
||||||
|
|
@ -57,6 +58,11 @@
|
||||||
<el-icon><Check /></el-icon>
|
<el-icon><Check /></el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
|
<el-tooltip v-if="(scope.row.status === 76 || scope.row.status === 77) && scope.row.orderType === 1" content="手动完成" placement="top" effect="light">
|
||||||
|
<el-button type="primary" size="small" @click="handFinish(scope.row)">
|
||||||
|
<el-icon><CircleCheck /></el-icon>
|
||||||
|
</el-button>
|
||||||
|
</el-tooltip>
|
||||||
<el-tooltip content="删除" placement="top" effect="light">
|
<el-tooltip content="删除" placement="top" effect="light">
|
||||||
<el-button type="danger" size="small" @click="deleteOrder(scope.row)">
|
<el-button type="danger" size="small" @click="deleteOrder(scope.row)">
|
||||||
<el-icon><Delete/></el-icon>
|
<el-icon><Delete/></el-icon>
|
||||||
|
|
@ -70,14 +76,17 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<HandOut v-model="showhandOut"/>
|
<HandOut v-model="showhandOut" @confirm-import="queryGoodsOrderOut"/>
|
||||||
|
<UpLoad v-model="showUpload"/>
|
||||||
</el-config-provider>
|
</el-config-provider>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {taskStatusFormatter, dueFormatter, formatCellValueTime} from '@/utils/formatter.js'
|
import {taskStatusFormatter, dueFormatter, formatCellValueTime} from '@/utils/formatter.js'
|
||||||
import HandOut from '@/components/handOut.vue'
|
import HandOut from '@/components/handOut.vue'
|
||||||
|
import UpLoad from '@/components/upload.vue'
|
||||||
import { reactive, ref } from 'vue'
|
import { reactive, ref } from 'vue'
|
||||||
|
import { dateFormatter, locationFormatter, timeFormatter } from '@/utils/formatter.js'
|
||||||
import {ElMessage, ElMessageBox} from 'element-plus'
|
import {ElMessage, ElMessageBox} from 'element-plus'
|
||||||
import zhCn from 'element-plus/dist/locale/zh-cn.mjs';
|
import zhCn from 'element-plus/dist/locale/zh-cn.mjs';
|
||||||
import en from 'element-plus/dist/locale/en.mjs';
|
import en from 'element-plus/dist/locale/en.mjs';
|
||||||
|
|
@ -85,25 +94,33 @@ import {Check, Delete} from "@element-plus/icons-vue";
|
||||||
import {formatterOrderOutEnum, orderOutEnum} from "@/enum/order.out.enum";
|
import {formatterOrderOutEnum, orderOutEnum} from "@/enum/order.out.enum";
|
||||||
const language = ref('zh-cn');
|
const language = ref('zh-cn');
|
||||||
import apiOrderOut from '@/api/order.out'
|
import apiOrderOut from '@/api/order.out'
|
||||||
|
import UploadExcelOrderOut from '@/excel/UploadExcelOrderOut.vue'
|
||||||
|
import { downloadOrderOutTable } from '@/api/excel.js'
|
||||||
|
import { downloadOrderOutTableNoEnd } from '@/api/excel.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'goodsOut',
|
name: 'goodsOut',
|
||||||
components: {Check, Delete, HandOut},
|
components: {Check, Delete, HandOut, UpLoad, UploadExcelOrderOut},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 查询条件
|
// 查询条件
|
||||||
searchParams: {
|
searchParams: {
|
||||||
searchStr: '',
|
searchStr: '',
|
||||||
orderStatus: [0,1]
|
orderStatus: [0,1,9,76,77,100]
|
||||||
},
|
},
|
||||||
// 展示绑定物料的弹窗
|
// 展示绑定物料的弹窗
|
||||||
showhandOut: false,
|
showhandOut: false,
|
||||||
|
showUpload: false,
|
||||||
// 出库任务单表格
|
// 出库任务单表格
|
||||||
goodsOrderOutList: []
|
goodsOrderOutList: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
//this.queryGoodsOrderOut();
|
||||||
},
|
},
|
||||||
|
activated() {
|
||||||
|
this.queryGoodsOrderOut();
|
||||||
|
},
|
||||||
beforeUnmount() {
|
beforeUnmount() {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -137,36 +154,101 @@ export default {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 一键出库
|
finishTask(){
|
||||||
showAllOut(rowId) {
|
ElMessageBox.confirm('是否完成当前工单?','提示')
|
||||||
ElMessageBox.confirm(`是否执行所有的出库?`, '提示')
|
.then(() => {
|
||||||
.then(() => {
|
apiOrderOut.finishTask().then(res => {
|
||||||
apiOrderOut.OutAll(rowId).then(res => {
|
const responseData = res.data;
|
||||||
const responseData = res.data;
|
if (responseData.code === 0) {
|
||||||
if (responseData.code === 0) {
|
// 正确请求
|
||||||
// 正确请求
|
ElMessage({
|
||||||
ElMessage({
|
message: '删除成功',
|
||||||
message: '执行成功',
|
type: 'success',
|
||||||
type: 'success',
|
});
|
||||||
});
|
this.queryGoodsOrderOut();
|
||||||
this.queryGoodsOrderOut();
|
} else {
|
||||||
} else {
|
// 服务报错
|
||||||
// 服务报错
|
ElMessageBox.alert(`服务器返回失败:${responseData.message}`, '删除失败', {
|
||||||
ElMessageBox.alert(`服务器返回失败:${responseData.message}`, '执行失败', {
|
|
||||||
type: 'warning',
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
showClose: false
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}).catch(err => {
|
|
||||||
// 通讯报错
|
|
||||||
ElMessageBox.alert(`请求服务器失败::${err}`, '任务添加失败', {
|
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
confirmButtonText: '确定'
|
confirmButtonText: '确定',
|
||||||
|
showClose: false
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
}).catch(err => {
|
||||||
|
// 通讯报错
|
||||||
|
ElMessageBox.alert(`请求服务器失败::${err}`, '任务删除失败', {
|
||||||
|
type: 'warning',
|
||||||
|
confirmButtonText: '确定'
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(() => {
|
})
|
||||||
|
.catch(() => {
|
||||||
|
})
|
||||||
|
},
|
||||||
|
exportExcelUnEnd() {
|
||||||
|
downloadOrderOutTableNoEnd().then(res => {
|
||||||
|
const link = document.createElement('a');//创建a标签
|
||||||
|
try {
|
||||||
|
// let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'}); //如果后台返回的不是blob对象类型,先定义成blob对象格式,该type导出为xls格式,
|
||||||
|
let blob = res.data //如果后台返回的直接是blob对象类型,直接获取数据
|
||||||
|
// let _fileName = res.headers['content-disposition'].split(';')[1].split('=')[1]; //拆解获取文件名,如果后端有给返回文件名的话
|
||||||
|
let _fileName = "库存报表" + dateFormatter(new Date) + ".xlsx"
|
||||||
|
link.style.display = 'none'//隐藏
|
||||||
|
|
||||||
|
// 兼容不同浏览器的URL对象
|
||||||
|
const url = window.URL || window.webkitURL || window.moxURL
|
||||||
|
link.href = url.createObjectURL(blob)
|
||||||
|
link.setAttribute('download', _fileName.substring(_fileName.lastIndexOf('_') + 1))
|
||||||
|
document.body.appendChild(link)
|
||||||
|
link.click()
|
||||||
|
document.body.removeChild(link)
|
||||||
|
url.revokeObjectURL(link.href)//移除url对象
|
||||||
|
} catch (e) {
|
||||||
|
ElMessage({
|
||||||
|
message: '下载文件失败:: ' + e,
|
||||||
|
type: 'error',
|
||||||
|
showClose: true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}).catch(err => {
|
||||||
|
ElMessage({
|
||||||
|
message: '导出失败:: ' + err,
|
||||||
|
type: 'error',
|
||||||
|
showClose: true
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
exportExcel() {
|
||||||
|
downloadOrderOutTable().then(res => {
|
||||||
|
const link = document.createElement('a');//创建a标签
|
||||||
|
try {
|
||||||
|
// let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'}); //如果后台返回的不是blob对象类型,先定义成blob对象格式,该type导出为xls格式,
|
||||||
|
let blob = res.data //如果后台返回的直接是blob对象类型,直接获取数据
|
||||||
|
// let _fileName = res.headers['content-disposition'].split(';')[1].split('=')[1]; //拆解获取文件名,如果后端有给返回文件名的话
|
||||||
|
let _fileName = "库存报表" + dateFormatter(new Date) + ".xlsx"
|
||||||
|
link.style.display = 'none'//隐藏
|
||||||
|
|
||||||
|
// 兼容不同浏览器的URL对象
|
||||||
|
const url = window.URL || window.webkitURL || window.moxURL
|
||||||
|
link.href = url.createObjectURL(blob)
|
||||||
|
link.setAttribute('download', _fileName.substring(_fileName.lastIndexOf('_') + 1))
|
||||||
|
document.body.appendChild(link)
|
||||||
|
link.click()
|
||||||
|
document.body.removeChild(link)
|
||||||
|
url.revokeObjectURL(link.href)//移除url对象
|
||||||
|
} catch (e) {
|
||||||
|
ElMessage({
|
||||||
|
message: '下载文件失败:: ' + e,
|
||||||
|
type: 'error',
|
||||||
|
showClose: true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}).catch(err => {
|
||||||
|
ElMessage({
|
||||||
|
message: '导出失败:: ' + err,
|
||||||
|
type: 'error',
|
||||||
|
showClose: true
|
||||||
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 删除出库单
|
// 删除出库单
|
||||||
|
|
@ -201,11 +283,11 @@ export default {
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 执行出库
|
// 执行全部出库
|
||||||
executeOut(row) {
|
showAllOut(row) {
|
||||||
ElMessageBox.confirm(`是否执行 ${row.rowId} 的出库?`, '提示')
|
ElMessageBox.confirm(`是否执行所有出库单的出库?`, '提示')
|
||||||
.then(() => {
|
.then(() => {
|
||||||
apiOrderOut.executeOut(row.rowId).then(res => {
|
apiOrderOut.executeAllOut().then(res => {
|
||||||
const responseData = res.data;
|
const responseData = res.data;
|
||||||
if (responseData.code === 0) {
|
if (responseData.code === 0) {
|
||||||
// 正确请求
|
// 正确请求
|
||||||
|
|
@ -232,6 +314,66 @@ export default {
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
// 手动完成
|
||||||
|
handFinish(row){
|
||||||
|
ElMessageBox.confirm(`是否已通知仓库人员?`, '提示')
|
||||||
|
.then(() => {
|
||||||
|
apiOrderOut.handFinish(row.rowId).then(res => {
|
||||||
|
const responseData = res.data;
|
||||||
|
if (responseData.code === 0) {
|
||||||
|
// 正确请求
|
||||||
|
ElMessage({
|
||||||
|
message: '执行成功',
|
||||||
|
type: 'success',
|
||||||
|
});
|
||||||
|
this.queryGoodsOrderOut();
|
||||||
|
} else {
|
||||||
|
// 服务报错
|
||||||
|
ElMessageBox.alert(`服务器返回失败:${responseData.message}`, '执行失败', {
|
||||||
|
type: 'warning',
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
showClose: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}).catch(err => {
|
||||||
|
// 通讯报错
|
||||||
|
ElMessageBox.alert(`请求服务器失败::${err}`, '任务添加失败', {
|
||||||
|
type: 'warning',
|
||||||
|
confirmButtonText: '确定'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 执行出库
|
||||||
|
executeOut(row) {
|
||||||
|
ElMessageBox.confirm(`是否执行 ${row.goodsId} 的出库?`, '提示')
|
||||||
|
.then(() => {
|
||||||
|
apiOrderOut.executeOut(row.rowId).then(res => {
|
||||||
|
const responseData = res.data;
|
||||||
|
if (responseData.code === 0) {
|
||||||
|
// 正确请求
|
||||||
|
ElMessage({
|
||||||
|
message: '执行成功',
|
||||||
|
type: 'success',
|
||||||
|
});
|
||||||
|
this.queryGoodsOrderOut();
|
||||||
|
} else {
|
||||||
|
// 服务报错
|
||||||
|
ElMessageBox.alert(`服务器返回失败:${responseData.message}`, '执行失败', {
|
||||||
|
type: 'warning',
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
showClose: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}).catch(err => {
|
||||||
|
// 通讯报错
|
||||||
|
ElMessageBox.alert(`请求服务器失败::${err}`, '任务添加失败', {
|
||||||
|
type: 'warning',
|
||||||
|
confirmButtonText: '确定'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
@ -244,5 +386,7 @@ export default {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
.upload-demo {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
<div style="margin-bottom: 15px">
|
<div style="margin-bottom: 15px">
|
||||||
<el-config-provider :locale="zhCn">
|
<el-config-provider :locale="zhCn">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-input v-model="goodsIdQuery" style="width: 256px; margin-right: 10px;" placeholder="零件号" />
|
<el-input v-model="goodsIdQuery" style="width: 256px; margin-right: 10px;" placeholder="物料号" />
|
||||||
<el-input v-model="vehicleNoQuery" style="width: 256px; margin-right: 10px;" placeholder="箱号" />
|
<el-input v-model="vehicleNoQuery" style="width: 256px; margin-right: 10px;" placeholder="母托号" />
|
||||||
<el-button type="primary" @click="search()">搜索</el-button>
|
<el-button type="primary" @click="search()">搜索</el-button>
|
||||||
<el-button type="warning" @click="reset()">重置</el-button>
|
<el-button type="warning" @click="reset()">重置</el-button>
|
||||||
<el-button type="success" @click="exportExcel()">导出记录</el-button>
|
<el-button type="success" @click="exportExcel()">导出记录</el-button>
|
||||||
|
|
@ -13,19 +13,20 @@
|
||||||
<el-table :data="tasks" stripe border v-loading="loading" style="width: 100%" max-height="684px"
|
<el-table :data="tasks" stripe border v-loading="loading" style="width: 100%" max-height="684px"
|
||||||
class="table-class" :header-cell-style="{ 'text-align': 'center' }"
|
class="table-class" :header-cell-style="{ 'text-align': 'center' }"
|
||||||
:cell-style="{ 'text-align': 'center' }">
|
:cell-style="{ 'text-align': 'center' }">
|
||||||
<el-table-column prop="goodsId" label="零件号" fixed="left" min-width="120px" />
|
<el-table-column prop="goodsId" label="物料号/序列号" fixed="left" min-width="120px" />
|
||||||
<el-table-column prop="vehicleNo" label="托盘号" fixed="left" min-width="120px" />
|
<el-table-column prop="goodsName" label="机型" fixed="left" min-width="120px" />
|
||||||
|
<el-table-column prop="vehicleNo" label="母托号" fixed="left" min-width="120px" />
|
||||||
<!-- <el-table-column prop="goodsName" label="零件名称" min-width="120px" /> -->
|
<!-- <el-table-column prop="goodsName" label="零件名称" min-width="120px" /> -->
|
||||||
<el-table-column prop="taskType" label="任务类型" :formatter="taskTypeFormat" min-width="120px" />
|
<el-table-column prop="taskType" label="任务类型" :formatter="taskTypeFormat" min-width="120px" />
|
||||||
<!-- <el-table-column prop="taskGroup" label="任务组" min-width="120px" /> -->
|
<!-- <el-table-column prop="taskGroup" label="任务组" min-width="120px" /> -->
|
||||||
<el-table-column prop="origin" label="起点" min-width="120px" />
|
<el-table-column prop="origin" label="入库口" min-width="120px" />
|
||||||
<el-table-column prop="destination" label="终点" min-width="120px" />
|
<el-table-column prop="destination" label="库位号" min-width="120px" />
|
||||||
<!-- <el-table-column prop="pickStand" label="拣选站台" min-width="120px" /> -->
|
<!-- <el-table-column prop="pickStand" label="拣选站台" min-width="120px" /> -->
|
||||||
<!-- <el-table-column prop="weight" label="重量" min-width="120px" /> -->
|
<!-- <el-table-column prop="weight" label="重量" min-width="120px" /> -->
|
||||||
<!-- <el-table-column prop="productionDate" label="生产日期" :formatter="dateFormat" min-width="120px" />
|
<!-- <el-table-column prop="productionDate" label="生产日期" :formatter="dateFormat" min-width="120px" />
|
||||||
<el-table-column prop="expirationDate" label="有效日期" :formatter="dateFormat" min-width="120px" /> -->
|
<el-table-column prop="expirationDate" label="有效日期" :formatter="dateFormat" min-width="120px" /> -->
|
||||||
<el-table-column prop="operateNum" label="操作数量" min-width="120px" />
|
<el-table-column prop="operateNum" label="入库数量" min-width="120px" />
|
||||||
<el-table-column prop="totalNum" label="库存数量" min-width="120px" />
|
<!-- <el-table-column prop="totalNum" label="库存数量" min-width="120px" /> -->
|
||||||
<!-- <el-table-column prop="taskPriority" label="任务优先级" min-width="120px" />
|
<!-- <el-table-column prop="taskPriority" label="任务优先级" min-width="120px" />
|
||||||
<el-table-column prop="kateTaskId" label="配件任务号" min-width="140px" />
|
<el-table-column prop="kateTaskId" label="配件任务号" min-width="140px" />
|
||||||
<el-table-column prop="userName" label="操作人员姓名" min-width="120px" /> -->
|
<el-table-column prop="userName" label="操作人员姓名" min-width="120px" /> -->
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-button type="primary" @click="queryGoodsOrderCheck">查询盘点单</el-button>
|
<el-button type="primary" @click="queryGoodsOrderCheck">查询盘点单</el-button>
|
||||||
<el-button type="success" @click="addCheckTaskForSimple = true">添加盘点单</el-button>
|
<el-button type="success" @click="addCheckTaskForSimple = true">添加盘点单</el-button>
|
||||||
<el-button type="primary" @click="showAddCheckTask">查询盘点任务</el-button>
|
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|
@ -43,43 +42,6 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row style="width: calc(100vw - 300px)">
|
|
||||||
<h5>盘点任务</h5>
|
|
||||||
<el-table :data="tasks" stripe border v-loading="loading" style="width: 100%" max-height="684px"
|
|
||||||
class="table-class" :header-cell-style="{ 'text-align': 'center' }" :cell-style="{ 'text-align': 'center' }"
|
|
||||||
@row-click="getCurrentRow">
|
|
||||||
<el-table-column width="65px" fixed="left">
|
|
||||||
<template v-slot="scope">
|
|
||||||
<el-radio :label="scope.row.taskId" v-model="taskId"> </el-radio>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column prop="goodsId" label="零件号" fixed="left" min-width="120px" />
|
|
||||||
<el-table-column prop="vehicleNo" label="箱号" fixed="left" min-width="120px" />
|
|
||||||
<el-table-column prop="goodsName" label="零件名称" min-width="120px" />
|
|
||||||
<el-table-column prop="taskType" label="任务类型" :formatter="taskTypeFormat" min-width="120px" />
|
|
||||||
<el-table-column prop="taskGroup" label="任务组" min-width="120px" />
|
|
||||||
<el-table-column prop="origin" label="起点" min-width="120px" />
|
|
||||||
<el-table-column prop="destination" label="终点" min-width="120px" />
|
|
||||||
<el-table-column prop="pickStand" label="拣选站台" min-width="120px" />
|
|
||||||
<el-table-column prop="weight" label="重量" min-width="120px" />
|
|
||||||
<el-table-column prop="productionDate" label="生产日期" :formatter="dateFormat" min-width="120px" />
|
|
||||||
<el-table-column prop="expirationDate" label="有效日期" :formatter="dateFormat" min-width="120px" />
|
|
||||||
<el-table-column prop="operateNum" label="操作数量" min-width="120px" />
|
|
||||||
<el-table-column prop="totalNum" label="库存数量" min-width="120px" />
|
|
||||||
<el-table-column prop="taskPriority" label="任务优先级" min-width="120px" />
|
|
||||||
<el-table-column prop="kateTaskId" label="配件任务号" min-width="140px" />
|
|
||||||
<el-table-column prop="createTime" label="创建时间" :formatter="timeFormat" min-width="120px" />
|
|
||||||
<el-table-column prop="createTime" label="运行时长" :formatter="dueFormat" min-width="120px" />
|
|
||||||
<el-table-column prop="userName" label="操作人员姓名" min-width="120px" />
|
|
||||||
<el-table-column prop="taskStatus" label="任务状态" fixed="right" :formatter="taskStatusFormat"
|
|
||||||
min-width="120px" />
|
|
||||||
<el-table-column fixed="right" label="操作" width="120px">
|
|
||||||
<template v-slot="scope">
|
|
||||||
<el-button plain type="primary" @click="editCurrentRowTask(scope.row)">编辑</el-button>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
</el-row>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<addCheckOrder v-model="addCheckTaskForSimple"></addCheckOrder>
|
<addCheckOrder v-model="addCheckTaskForSimple"></addCheckOrder>
|
||||||
|
|
@ -120,6 +82,9 @@ export default {
|
||||||
loading: false
|
loading: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
activated() {
|
||||||
|
this.queryGoodsOrderCheck();
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
queryGoodsOrderCheck(){
|
queryGoodsOrderCheck(){
|
||||||
OrderCheck.getOrderCheckList(this.searchParams).then(res => {
|
OrderCheck.getOrderCheckList(this.searchParams).then(res => {
|
||||||
|
|
|
||||||
|
|
@ -3,31 +3,32 @@
|
||||||
<div style="margin-bottom: 15px">
|
<div style="margin-bottom: 15px">
|
||||||
<el-config-provider :locale="zhCn">
|
<el-config-provider :locale="zhCn">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-input v-model="goodsIdQuery" style="width: 256px; margin-right: 10px;" placeholder="零件号" />
|
<el-input v-model="goodsIdQuery" style="width: 256px; margin-right: 10px;" placeholder="物料号" />
|
||||||
<el-input v-model="vehicleNoQuery" style="width: 256px; margin-right: 10px;" placeholder="箱号" />
|
<el-input v-model="vehicleNoQuery" style="width: 256px; margin-right: 10px;" placeholder="母托号" />
|
||||||
<el-button type="primary" @click="search()">搜索</el-button>
|
<el-button type="primary" @click="search()">搜索</el-button>
|
||||||
<el-button type="warning" @click="reset()">重置</el-button>
|
<el-button type="warning" @click="reset()">重置</el-button>
|
||||||
<el-button type="success" @click="refresh()">刷新</el-button>
|
<!-- <el-button type="success" @click="refresh()">刷新</el-button> -->
|
||||||
</el-row>
|
</el-row>
|
||||||
<br />
|
<br />
|
||||||
<el-table :data="tasks" stripe border v-loading="loading" style="width: 100%" max-height="684px"
|
<el-table :data="tasks" stripe border v-loading="loading" style="width: 100%" max-height="684px"
|
||||||
class="table-class" :header-cell-style="{ 'text-align': 'center' }" :cell-style="{ 'text-align': 'center' }">
|
class="table-class" :header-cell-style="{ 'text-align': 'center' }" :cell-style="{ 'text-align': 'center' }">
|
||||||
<el-table-column prop="goodsId" label="零件号" fixed="left" min-width="120px" />
|
<el-table-column prop="goodsId" label="物料号/序列号" fixed="left" min-width="120px" />
|
||||||
<el-table-column prop="vehicleNo" label="箱号" fixed="left" min-width="120px" />
|
<el-table-column prop="goodsName" label="机型" fixed="left" min-width="120px" />
|
||||||
<el-table-column prop="goodsName" label="零件名称" min-width="120px" />
|
<el-table-column prop="vehicleNo" label="母托号" fixed="left" min-width="120px" />
|
||||||
<el-table-column prop="taskType" label="任务类型" :formatter="taskTypeFormat" sortable min-width="120px" />
|
<!-- <el-table-column prop="goodsName" label="零件名称" min-width="120px" /> -->
|
||||||
<el-table-column prop="taskGroup" label="任务组" min-width="120px" />
|
<el-table-column prop="taskType" label="任务类型" :formatter="taskTypeFormat" min-width="120px" />
|
||||||
|
<!-- <el-table-column prop="taskGroup" label="任务组" min-width="120px" /> -->
|
||||||
<el-table-column prop="origin" label="起点" min-width="120px" />
|
<el-table-column prop="origin" label="起点" min-width="120px" />
|
||||||
<el-table-column prop="destination" label="终点" min-width="120px" />
|
<el-table-column prop="destination" label="终点" min-width="120px" />
|
||||||
<el-table-column prop="pickStand" label="拣选站台" min-width="120px" />
|
<!-- <el-table-column prop="pickStand" label="拣选站台" min-width="120px" /> -->
|
||||||
<el-table-column prop="weight" label="重量" min-width="120px" />
|
<!-- <el-table-column prop="weight" label="重量" min-width="120px" /> -->
|
||||||
<el-table-column prop="productionDate" label="生产日期" :formatter="dateFormat" min-width="120px" />
|
<!-- <el-table-column prop="productionDate" label="生产日期" :formatter="dateFormat" min-width="120px" /> -->
|
||||||
<el-table-column prop="expirationDate" label="有效日期" :formatter="dateFormat" min-width="120px" />
|
<!-- <el-table-column prop="expirationDate" label="有效日期" :formatter="dateFormat" min-width="120px" /> -->
|
||||||
<el-table-column prop="operateNum" label="操作数量" min-width="120px" />
|
<!-- <el-table-column prop="operateNum" label="操作数量" min-width="120px" /> -->
|
||||||
<el-table-column prop="totalNum" label="库存数量" min-width="120px" />
|
<el-table-column prop="totalNum" label="库存数量" min-width="120px" />
|
||||||
<el-table-column prop="taskPriority" label="任务优先级" sortable min-width="120px" />
|
<!-- <el-table-column prop="taskPriority" label="任务优先级" sortable min-width="120px" /> -->
|
||||||
<el-table-column prop="kateTaskId" label="配件任务号" sortable min-width="140px" />
|
<!-- <el-table-column prop="kateTaskId" label="配件任务号" sortable min-width="140px" /> -->
|
||||||
<el-table-column prop="userName" label="操作人员姓名" min-width="120px" />
|
<!-- <el-table-column prop="userName" label="操作人员姓名" min-width="120px" /> -->
|
||||||
<el-table-column prop="createTime" label="创建时间" :formatter="timeFormat" min-width="120px" />
|
<el-table-column prop="createTime" label="创建时间" :formatter="timeFormat" min-width="120px" />
|
||||||
<el-table-column prop="finishTime" label="任务完成时间" :formatter="timeFormat" min-width="120px" />
|
<el-table-column prop="finishTime" label="任务完成时间" :formatter="timeFormat" min-width="120px" />
|
||||||
<el-table-column prop="taskStatus" label="任务状态" fixed="right" :formatter="taskStatusFormat" min-width="120px" />
|
<el-table-column prop="taskStatus" label="任务状态" fixed="right" :formatter="taskStatusFormat" min-width="120px" />
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
<div style="margin-bottom: 15px">
|
<div style="margin-bottom: 15px">
|
||||||
<el-config-provider :locale="zhCn">
|
<el-config-provider :locale="zhCn">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-input v-model="goodsIdQuery" style="width: 256px; margin-right: 10px;" placeholder="零件号" />
|
<el-input v-model="goodsIdQuery" style="width: 256px; margin-right: 10px;" placeholder="物料号" />
|
||||||
<el-input v-model="vehicleNoQuery" style="width: 256px; margin-right: 10px;" placeholder="箱号" />
|
<el-input v-model="vehicleNoQuery" style="width: 256px; margin-right: 10px;" placeholder="母托号" />
|
||||||
<el-button type="primary" @click="search()">搜索</el-button>
|
<el-button type="primary" @click="search()">搜索</el-button>
|
||||||
<el-button type="warning" @click="reset()">重置</el-button>
|
<el-button type="warning" @click="reset()">重置</el-button>
|
||||||
<!-- <el-button type="success" @click="search()">刷新</el-button> -->
|
<!-- <el-button type="success" @click="search()">刷新</el-button> -->
|
||||||
|
|
@ -12,20 +12,22 @@
|
||||||
<br />
|
<br />
|
||||||
<el-table :data="tasks" stripe border v-loading="loading" style="width: 100%" max-height="684px"
|
<el-table :data="tasks" stripe border v-loading="loading" style="width: 100%" max-height="684px"
|
||||||
class="table-class" :header-cell-style="{ 'text-align': 'center' }" :cell-style="{ 'text-align': 'center' }">
|
class="table-class" :header-cell-style="{ 'text-align': 'center' }" :cell-style="{ 'text-align': 'center' }">
|
||||||
<el-table-column prop="goodsId" label="零件号" fixed="left" min-width="120px" />
|
|
||||||
<el-table-column prop="vehicleNo" label="箱号" fixed="left" min-width="120px" />
|
<el-table-column prop="goodsId" label="物料号/序列号" fixed="left" min-width="120px" />
|
||||||
<!-- <el-table-column prop="goodsName" label="零件名称" min-width="120px" /> -->
|
|
||||||
<el-table-column prop="taskType" label="任务类型" :formatter="taskTypeFormat" sortable min-width="120px" />
|
<el-table-column prop="goodsName" label="机型" min-width="120px" />
|
||||||
|
<el-table-column prop="vehicleNo" label="母托号" fixed="left" min-width="120px" />
|
||||||
|
<el-table-column prop="taskType" label="任务类型" :formatter="taskTypeFormat" min-width="120px" />
|
||||||
<!-- <el-table-column prop="taskGroup" label="任务组" min-width="120px" /> -->
|
<!-- <el-table-column prop="taskGroup" label="任务组" min-width="120px" /> -->
|
||||||
<el-table-column prop="origin" label="起点" min-width="120px" />
|
<el-table-column prop="origin" label="库位号" min-width="120px" />
|
||||||
<el-table-column prop="destination" label="终点" min-width="120px" />
|
<el-table-column prop="destination" label="出库口" min-width="120px" />
|
||||||
<!-- <el-table-column prop="pickStand" label="拣选站台" min-width="120px" /> -->
|
<!-- <el-table-column prop="pickStand" label="拣选站台" min-width="120px" /> -->
|
||||||
<!-- <el-table-column prop="weight" label="重量" min-width="120px" />
|
<!-- <el-table-column prop="weight" label="重量" min-width="120px" />
|
||||||
<el-table-column prop="productionDate" label="生产日期" :formatter="dateFormat" min-width="120px" />
|
<el-table-column prop="productionDate" label="生产日期" :formatter="dateFormat" min-width="120px" />
|
||||||
<el-table-column prop="expirationDate" label="有效日期" :formatter="dateFormat" min-width="120px" /> -->
|
<el-table-column prop="expirationDate" label="有效日期" :formatter="dateFormat" min-width="120px" /> -->
|
||||||
<el-table-column prop="operateNum" label="操作数量" min-width="120px" />
|
<el-table-column prop="operateNum" label="出库数量" min-width="120px" />
|
||||||
<el-table-column prop="totalNum" label="库存数量" min-width="120px" />
|
<!-- <el-table-column prop="totalNum" label="库存数量" min-width="120px" /> -->
|
||||||
<el-table-column prop="taskPriority" label="任务优先级" sortable min-width="120px" />
|
<el-table-column prop="taskPriority" label="任务优先级" min-width="120px" />
|
||||||
<!-- <el-table-column prop="kateTaskId" label="配件任务号" sortable min-width="140px" /> -->
|
<!-- <el-table-column prop="kateTaskId" label="配件任务号" sortable min-width="140px" /> -->
|
||||||
<!-- <el-table-column prop="userName" label="操作人员姓名" min-width="120px" /> -->
|
<!-- <el-table-column prop="userName" label="操作人员姓名" min-width="120px" /> -->
|
||||||
<el-table-column prop="createTime" label="创建时间" :formatter="timeFormat" min-width="120px" />
|
<el-table-column prop="createTime" label="创建时间" :formatter="timeFormat" min-width="120px" />
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,18 @@
|
||||||
<div style="margin-bottom: 10px">
|
<div style="margin-bottom: 10px">
|
||||||
<el-config-provider :locale="zhCn">
|
<el-config-provider :locale="zhCn">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-input v-model="queryKey" v-if="dataType == 1" style="width: 256px; margin-right: 10px;"
|
<!-- <el-input v-model="queryKey" v-if="dataType == 1" style="width: 256px; margin-right: 10px;"
|
||||||
placeholder="零件号/箱号/零件名称" :suffix-icon="Search" />
|
placeholder="物料号/机型/序列号" :suffix-icon="Search" /> -->
|
||||||
|
<el-input v-model="queryKey" style="width: 256px; margin-right: 10px;" placeholder="物料号/序列号" />
|
||||||
|
<el-input v-model="vehicleNoQuery" style="width: 256px; margin-right: 10px;" placeholder="母托号" />
|
||||||
<el-input v-if="dataType == 2" v-model="goodsIdQuery" style="width: 256px; margin-right: 10px;"
|
<el-input v-if="dataType == 2" v-model="goodsIdQuery" style="width: 256px; margin-right: 10px;"
|
||||||
placeholder="零件号" :suffix-icon="Search" />
|
placeholder="零件号" :suffix-icon="Search" />
|
||||||
<el-button type="primary" @click="search()">搜索</el-button>
|
<el-button type="primary" @click="search()">搜索</el-button>
|
||||||
<el-button type="warning" @click="reset()">重置</el-button>
|
<el-button type="warning" @click="reset()">重置</el-button>
|
||||||
<el-button type="success" @click="exportExcel()">导出表格</el-button>
|
<el-button type="success" @click="exportExcel()">导出表格</el-button>
|
||||||
<el-select-v2 v-if="selStock == null" v-model="dataType" style="width: 156px; margin-right: 10px;"
|
<el-button type="primary" @click="goodsList()">多料查询</el-button>
|
||||||
placeholder="请选择库存显示类型" :options="dataTypeOptions" @change="search()"></el-select-v2>
|
<!-- <el-select-v2 v-if="selStock == null" v-model="dataType" style="width: 156px; margin-right: 10px;"
|
||||||
|
placeholder="请选择库存显示类型" :options="dataTypeOptions" @change="search()"></el-select-v2> -->
|
||||||
</el-row>
|
</el-row>
|
||||||
<br />
|
<br />
|
||||||
<el-table id="stock-table" :data="displayStocks" stripe border v-loading="loading" class="table-class"
|
<el-table id="stock-table" :data="displayStocks" stripe border v-loading="loading" class="table-class"
|
||||||
|
|
@ -21,23 +24,24 @@
|
||||||
<el-radio :label="scope.row.stockId" v-model="stockId"> </el-radio>
|
<el-radio :label="scope.row.stockId" v-model="stockId"> </el-radio>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="stockId" label="库存ID" min-width="120px" show-overflow-tooltip/>
|
<!-- <el-table-column prop="stockId" label="库存ID" min-width="120px" show-overflow-tooltip/> -->
|
||||||
<el-table-column prop="goodsId" label="物料号" min-width="120px" />
|
<el-table-column prop="goodsId" label="序列号/物料号" min-width="120px" />
|
||||||
<el-table-column prop="batchNo" v-if="dataType == 1" label="批次号" min-width="120px" />
|
<el-table-column prop="batchNo" v-if="dataType == 1" label="类型" min-width="120px" />
|
||||||
<el-table-column prop="goodsName" label="零件描述" min-width="120px" />
|
<el-table-column prop="goodsName" label="机型" min-width="120px" />
|
||||||
<el-table-column prop="availableNum" v-if="dataType == 1" label="可用数量" min-width="120px" />
|
<!-- <el-table-column prop="availableNum" v-if="dataType == 1" label="可用数量" min-width="120px" /> -->
|
||||||
<el-table-column prop="remainNum" v-if="dataType == 1" label="剩余数量" min-width="120px" />
|
<!-- <el-table-column prop="remainNum" v-if="dataType == 1" label="剩余数量" min-width="120px" /> -->
|
||||||
<el-table-column prop="realNum" label="实际数量" min-width="120px" />
|
<el-table-column prop="realNum" label="实际数量" min-width="120px" />
|
||||||
<el-table-column prop="vehicleId" v-if="dataType == 1" label="料箱号" fixed="left" min-width="120px" />
|
<el-table-column prop="vehicleId" v-if="dataType == 1" label="母托号" fixed="left" min-width="120px" />
|
||||||
<el-table-column prop="providerId" v-if="dataType == 1" label="供应商编号" min-width="130px" />
|
<!-- <el-table-column prop="providerId" v-if="dataType == 1" label="供应商编号" min-width="130px" /> -->
|
||||||
<el-table-column prop="providerName" v-if="dataType == 1" label="供应商名称" min-width="130px" />
|
<el-table-column prop="providerName" v-if="dataType == 1" label="托盘大小" min-width="130px" />
|
||||||
<el-table-column prop="shelfLife" v-if="dataType == 1" label="保质期" min-width="120px" />
|
<!-- <el-table-column prop="shelfLife" v-if="dataType == 1" label="保质期" min-width="120px" />
|
||||||
<el-table-column prop="expirationDate" v-if="dataType == 1" label="有效日期" :formatter="dateFormat" min-width="140px" />
|
<el-table-column prop="expirationDate" v-if="dataType == 1" label="有效日期" :formatter="dateFormat" min-width="140px" /> -->
|
||||||
<el-table-column prop="locationId" v-if="dataType == 1" label="库位" :formatter="locationFormat" min-width="160px" />
|
<el-table-column prop="locationId" v-if="dataType == 1" label="库位" :formatter="locationFormat" min-width="160px" />
|
||||||
<el-table-column prop="currentLocation" v-if="dataType == 1" label="当前位置" min-width="120px" />
|
<el-table-column prop="productionDate" v-if="dataType == 1" label="收货日期" min-width="120px" />
|
||||||
<el-table-column prop="isInventory" v-if="dataType == 1" label="是否盘点" min-width="120px" />
|
<!-- <el-table-column prop="currentLocation" v-if="dataType == 1" label="当前位置" min-width="120px" />
|
||||||
|
<el-table-column prop="isInventory" v-if="dataType == 1" label="是否盘点" min-width="120px" /> -->
|
||||||
<el-table-column prop="createTime" v-if="dataType == 1" label="上架时间" :formatter="timeFormat" min-width="140px" />
|
<el-table-column prop="createTime" v-if="dataType == 1" label="上架时间" :formatter="timeFormat" min-width="140px" />
|
||||||
<el-table-column prop="goodsStatus" v-if="dataType == 1" label="物料状态" :formatter="goodsStatusFormat" min-width="120px" />
|
<!-- <el-table-column prop="goodsStatus" v-if="dataType == 1" label="物料状态" :formatter="goodsStatusFormat" min-width="120px" /> -->
|
||||||
<el-table-column prop="stockStatus" v-if="dataType == 1" label="库存状态" :formatter="stockStatusFormat" fixed="right"
|
<el-table-column prop="stockStatus" v-if="dataType == 1" label="库存状态" :formatter="stockStatusFormat" fixed="right"
|
||||||
min-width="120px" />
|
min-width="120px" />
|
||||||
<el-table-column fixed="right" label="操作" width="135px" v-if="selStock == null">
|
<el-table-column fixed="right" label="操作" width="135px" v-if="selStock == null">
|
||||||
|
|
@ -56,58 +60,31 @@
|
||||||
<el-form ref="stockFormRef" :model="stockFormEntity" :label-position="labelPosition" label-width="100px"
|
<el-form ref="stockFormRef" :model="stockFormEntity" :label-position="labelPosition" label-width="100px"
|
||||||
style="max-width: 100%" :rules="rules" status-icon>
|
style="max-width: 100%" :rules="rules" status-icon>
|
||||||
<el-row :gutter="16">
|
<el-row :gutter="16">
|
||||||
<el-col :span="12" :offset="0">
|
<!-- <el-col :span="12" :offset="0">
|
||||||
<el-form-item label="零件号" prop="goodsId">
|
<el-form-item label="物料号" prop="goodsId">
|
||||||
<el-input v-model="stockFormEntity.goodsId" readonly />
|
<el-input v-model="stockFormEntity.goodsId" readonly />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="零件描述" prop="goodsName">
|
|
||||||
<el-input v-model="stockFormEntity.goodsName" readonly />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12" :offset="0">
|
<el-col :span="12" :offset="0">
|
||||||
<el-form-item label="可用数量" prop="availableNum">
|
<el-form-item label="实际数量" prop="availableNum">
|
||||||
<el-input-number v-model.number="stockFormEntity.availableNum" clearable
|
<el-input-number v-model.number="stockFormEntity.availableNum" clearable
|
||||||
controls-position="right" :min="0" />
|
controls-position="right" :min="0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="剩余数量" prop="remainNum">
|
|
||||||
<el-input-number v-model.number="stockFormEntity.remainNum" clearable
|
|
||||||
controls-position="right" :min="0" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="16">
|
<!-- <el-row :gutter="16">
|
||||||
<el-col :span="12" :offset="0">
|
|
||||||
<el-form-item label="实际数量(为0时删除库存)" prop="realNum">
|
|
||||||
<el-input-number v-model.number="stockFormEntity.realNum" controls-position="right"
|
|
||||||
:min="0" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="货箱号" prop="vehicleId">
|
<el-form-item label="母托号" prop="vehicleId">
|
||||||
<el-input v-model="stockFormEntity.vehicleId" clearable readonly />
|
<el-input v-model="stockFormEntity.vehicleId" clearable readonly />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12" :offset="0">
|
<el-col :span="12" :offset="0">
|
||||||
<el-form-item label="库存状态" prop="stockStatus">
|
<el-form-item label="库存状态" prop="stockStatus">
|
||||||
<el-select-v2 v-model="stockFormEntity.stockStatus" placeholder="请选择库存状态"
|
<el-select-v2 v-model="stockFormEntity.stockStatus" placeholder="请选择库存状态"
|
||||||
:options="stockStatusOptions"></el-select-v2>
|
:options="stockStatusOptions"></el-select-v2>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
<el-col :span="12">
|
<!-- </el-row> -->
|
||||||
<el-form-item label="物料状态" prop="goodsStatus">
|
|
||||||
<el-select-v2 v-model="stockFormEntity.goodsStatus" placeholder="请选择物料状态"
|
|
||||||
:options="goodsStatusOptions"></el-select-v2>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
|
|
@ -118,12 +95,40 @@
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<!-- 多料查询弹窗 -->
|
||||||
|
<el-dialog v-model="multiQueryDialogVisible" title="多料查询" width="40%" draggable :show-close="false">
|
||||||
|
<div style="margin-bottom: 10px;">
|
||||||
|
<el-input v-model="newMultiQueryEntry.goodsId" style="width: 256px; margin-right: 10px;" placeholder="物料号" />
|
||||||
|
<el-button type="primary" @click="addMultiQueryEntry">添加物料号</el-button>
|
||||||
|
<el-button type="warning" @click="deleteAllMoreSelect">重置数据</el-button>
|
||||||
|
</div>
|
||||||
|
<el-table :data="multiQueryEntries" stripe border class="table-class" max-height="300px">
|
||||||
|
<el-table-column prop="goodsId" label="物料号" min-width="120px">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<el-input v-model="scope.row.goodsId" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" width="135px">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<el-button size="small" plain type="danger" @click="removeMultiQueryEntry(scope.$index)">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button @click="multiQueryDialogVisible = false">取消</el-button>
|
||||||
|
<el-button type="success" @click="submitMultiQueryEntries">
|
||||||
|
查询
|
||||||
|
</el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
</el-config-provider>
|
</el-config-provider>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { getAllStocks, updateStockInfo, getAllStocksByGoodsId } from '@/api/stock.js'
|
import { getAllStocks, updateStockInfo, getAllStocksByGoodsId, getAllStocksByMultiple } from '@/api/stock.js'
|
||||||
import { downloadStockExcel } from '@/api/excel.js'
|
import { downloadStockExcel } from '@/api/excel.js'
|
||||||
import { dateFormatter, locationFormatter, timeFormatter } from '@/utils/formatter.js'
|
import { dateFormatter, locationFormatter, timeFormatter } from '@/utils/formatter.js'
|
||||||
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
|
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
|
||||||
|
|
@ -142,10 +147,16 @@ export default {
|
||||||
emits: ['update:selStock'],
|
emits: ['update:selStock'],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
stockEntries: [],//存储多条库存数据
|
||||||
|
multiQueryEntries: [],
|
||||||
|
newMultiQueryEntry: {
|
||||||
|
goodsId: ''
|
||||||
|
}, // 存储多条查询数据
|
||||||
pageInfo: {},
|
pageInfo: {},
|
||||||
displayStocks: [],
|
displayStocks: [],
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
|
vehicleNoQuery: '',
|
||||||
total: 0,
|
total: 0,
|
||||||
queryKey: '',
|
queryKey: '',
|
||||||
loading: true,
|
loading: true,
|
||||||
|
|
@ -155,6 +166,7 @@ export default {
|
||||||
rules: reactive({}),
|
rules: reactive({}),
|
||||||
labelPosition: 'top',
|
labelPosition: 'top',
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
|
multiQueryDialogVisible: false,
|
||||||
goodsStatusOptions: [
|
goodsStatusOptions: [
|
||||||
{
|
{
|
||||||
value: 0,
|
value: 0,
|
||||||
|
|
@ -225,10 +237,73 @@ export default {
|
||||||
goodsIdQuery: ''
|
goodsIdQuery: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
activated() {
|
||||||
|
this.search();
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.refresh()
|
this.refresh()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
goodsList() {
|
||||||
|
this.multiQueryDialogVisible = true;
|
||||||
|
},
|
||||||
|
// 其他方法...
|
||||||
|
submitMultiQueryEntries() {
|
||||||
|
if (this.multiQueryEntries.length === 0) {
|
||||||
|
ElMessage.error('未添加任何物料号');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 假设有一个 API 可以接收多条物料号
|
||||||
|
getAllStocksByMultiple(this.multiQueryEntries.map(entry => entry.goodsId)).then(res => {
|
||||||
|
if (res.data.code === 0) {
|
||||||
|
ElMessage({
|
||||||
|
message: '查询成功',
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
this.displayStocks = res.data.rows;
|
||||||
|
this.total = res.data.total;
|
||||||
|
this.multiQueryDialogVisible = false;
|
||||||
|
} else {
|
||||||
|
ElMessage.error(res.data.message);
|
||||||
|
}
|
||||||
|
}).catch(err => {
|
||||||
|
ElMessage({
|
||||||
|
message: '查询失败: ' + err,
|
||||||
|
type: 'error',
|
||||||
|
showClose: true
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
deleteAllMoreSelect(){
|
||||||
|
this.multiQueryEntries = [];
|
||||||
|
},
|
||||||
|
// 其他方法...
|
||||||
|
addMultiQueryEntry() {
|
||||||
|
if (this.newMultiQueryEntry.goodsId.trim() === '') {
|
||||||
|
ElMessage.error('物料号不能为空');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 按空格拆分物料号
|
||||||
|
const goodsIds = this.newMultiQueryEntry.goodsId.trim().split(/\s+/);
|
||||||
|
|
||||||
|
goodsIds.forEach(goodsId => {
|
||||||
|
// 检查是否已经存在相同的 goodsId
|
||||||
|
const isDuplicate = this.multiQueryEntries.some(entry => entry.goodsId === goodsId);
|
||||||
|
if (isDuplicate) {
|
||||||
|
ElMessage.error(`物料号 ${goodsId} 已存在`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.multiQueryEntries.push({ goodsId });
|
||||||
|
});
|
||||||
|
|
||||||
|
// 清空输入框
|
||||||
|
this.newMultiQueryEntry.goodsId = '';
|
||||||
|
},
|
||||||
|
removeMultiQueryEntry(index) {
|
||||||
|
this.multiQueryEntries.splice(index, 1);
|
||||||
|
},
|
||||||
|
|
||||||
locationFormat: (row, column, cellValue, index) => {
|
locationFormat: (row, column, cellValue, index) => {
|
||||||
return locationFormatter(cellValue)
|
return locationFormatter(cellValue)
|
||||||
},
|
},
|
||||||
|
|
@ -291,7 +366,9 @@ export default {
|
||||||
const tableRequest = {
|
const tableRequest = {
|
||||||
page: this.pageInfo,
|
page: this.pageInfo,
|
||||||
param: this.queryKey.trim(),
|
param: this.queryKey.trim(),
|
||||||
|
param2: this.vehicleNoQuery.trim(),
|
||||||
}
|
}
|
||||||
|
console.log(tableRequest)
|
||||||
getAllStocks(tableRequest).then(res => {
|
getAllStocks(tableRequest).then(res => {
|
||||||
const tableResponse = res.data
|
const tableResponse = res.data
|
||||||
if (tableResponse.code != 0) {
|
if (tableResponse.code != 0) {
|
||||||
|
|
@ -326,6 +403,7 @@ export default {
|
||||||
reset() {
|
reset() {
|
||||||
this.queryKey = ''
|
this.queryKey = ''
|
||||||
this.goodsIdQuery = ''
|
this.goodsIdQuery = ''
|
||||||
|
this.vehicleNoQuery = ''
|
||||||
this.search()
|
this.search()
|
||||||
},
|
},
|
||||||
refresh() {
|
refresh() {
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
<div style="margin-bottom: 15px">
|
<div style="margin-bottom: 15px">
|
||||||
<el-config-provider :locale="zhCn">
|
<el-config-provider :locale="zhCn">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-input v-model="goodsIdQuery" style="width: 256px; margin-right: 10px;" placeholder="零件号" />
|
<el-input v-model="goodsIdQuery" style="width: 256px; margin-right: 10px;" placeholder="物料号" />
|
||||||
<el-input v-model="vehicleNoQuery" style="width: 256px; margin-right: 10px;" placeholder="箱号" />
|
<el-input v-model="vehicleNoQuery" style="width: 256px; margin-right: 10px;" placeholder="母托号" />
|
||||||
<el-button type="primary" @click="search()">搜索</el-button>
|
<el-button type="primary" @click="search()">搜索</el-button>
|
||||||
<el-button type="warning" @click="reset()">重置</el-button>
|
<el-button type="warning" @click="reset()">重置</el-button>
|
||||||
<el-button type="success" @click="search()">刷新</el-button>
|
<el-button type="success" @click="search()">刷新</el-button>
|
||||||
|
|
@ -18,24 +18,25 @@
|
||||||
<el-radio :label="scope.row.taskId" v-model="taskId"> </el-radio>
|
<el-radio :label="scope.row.taskId" v-model="taskId"> </el-radio>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="goodsId" label="零件号" fixed="left" min-width="120px" />
|
<el-table-column prop="vehicleNo" label="母托号" fixed="left" min-width="120px" />
|
||||||
<el-table-column prop="vehicleNo" label="箱号" fixed="left" min-width="120px" />
|
<el-table-column prop="goodsId" label="物料号" fixed="left" min-width="120px" />
|
||||||
<el-table-column prop="goodsName" label="零件名称" min-width="120px" />
|
|
||||||
|
<!-- <el-table-column prop="goodsName" label="零件名称" min-width="120px" /> -->
|
||||||
<el-table-column prop="taskType" label="任务类型" :formatter="taskTypeFormat" min-width="120px" />
|
<el-table-column prop="taskType" label="任务类型" :formatter="taskTypeFormat" min-width="120px" />
|
||||||
<el-table-column prop="taskGroup" label="任务组" min-width="120px" />
|
<!-- <el-table-column prop="taskGroup" label="任务组" min-width="120px" /> -->
|
||||||
<el-table-column prop="origin" label="起点" min-width="120px" />
|
<el-table-column prop="origin" label="起点" min-width="120px" />
|
||||||
<el-table-column prop="destination" label="终点" min-width="120px" />
|
<el-table-column prop="destination" label="终点" min-width="120px" />
|
||||||
<el-table-column prop="pickStand" label="拣选站台" min-width="120px" />
|
<!-- <el-table-column prop="pickStand" label="拣选站台" min-width="120px" /> -->
|
||||||
<el-table-column prop="weight" label="重量" min-width="120px" />
|
<!-- <el-table-column prop="weight" label="重量" min-width="120px" /> -->
|
||||||
<el-table-column prop="productionDate" label="生产日期" :formatter="dateFormat" min-width="120px" />
|
<el-table-column prop="productionDate" label="收货日期" :formatter="dateFormat" min-width="120px" />
|
||||||
<el-table-column prop="expirationDate" label="有效日期" :formatter="dateFormat" min-width="120px" />
|
<!-- <el-table-column prop="expirationDate" label="有效日期" :formatter="dateFormat" min-width="120px" /> -->
|
||||||
<el-table-column prop="operateNum" label="操作数量" min-width="120px" />
|
<!-- <el-table-column prop="operateNum" label="操作数量" min-width="120px" />
|
||||||
<el-table-column prop="totalNum" label="库存数量" min-width="120px" />
|
<el-table-column prop="totalNum" label="库存数量" min-width="120px" /> -->
|
||||||
<el-table-column prop="taskPriority" label="任务优先级" min-width="120px" />
|
<el-table-column prop="taskPriority" label="任务优先级" min-width="120px" />
|
||||||
<el-table-column prop="kateTaskId" label="配件任务号" min-width="140px" />
|
<!-- <el-table-column prop="kateTaskId" label="配件任务号" min-width="140px" /> -->
|
||||||
<el-table-column prop="createTime" label="创建时间" :formatter="timeFormat" min-width="120px" />
|
<el-table-column prop="createTime" label="创建时间" :formatter="timeFormat" min-width="120px" />
|
||||||
<el-table-column prop="createTime" label="运行时长" :formatter="dueFormat" min-width="120px" />
|
<el-table-column prop="createTime" label="运行时长" :formatter="dueFormat" min-width="120px" />
|
||||||
<el-table-column prop="userName" label="操作人员姓名" min-width="120px" />
|
<!-- <el-table-column prop="userName" label="操作人员姓名" min-width="120px" /> -->
|
||||||
<el-table-column prop="taskStatus" label="任务状态" fixed="right" :formatter="taskStatusFormat"
|
<el-table-column prop="taskStatus" label="任务状态" fixed="right" :formatter="taskStatusFormat"
|
||||||
min-width="120px" />
|
min-width="120px" />
|
||||||
<el-table-column fixed="right" label="操作" width="120px">
|
<el-table-column fixed="right" label="操作" width="120px">
|
||||||
|
|
@ -58,43 +59,34 @@
|
||||||
<el-input v-model="taskFormEntity.vehicleNo" disabled />
|
<el-input v-model="taskFormEntity.vehicleNo" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="零件号" prop="goodsId">
|
|
||||||
<el-input v-model="taskFormEntity.goodsId" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12" :offset="0">
|
|
||||||
<el-form-item label="起点" prop="origin">
|
|
||||||
<el-input v-model="taskFormEntity.origin" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12" v-if="taskFormEntity.taskType == 1">
|
|
||||||
<el-form-item label="终点" prop="destination">
|
|
||||||
<el-select-v2 v-model="taskFormEntity.destination"
|
|
||||||
:options="availableLocationOptions"></el-select-v2>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12" v-if="taskFormEntity.taskType == 2">
|
|
||||||
<el-form-item label="终点" prop="destination">
|
|
||||||
<el-input v-model="taskFormEntity.destination" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12" :offset="0">
|
|
||||||
<el-form-item label="任务类型" prop="taskType">
|
|
||||||
<el-select-v2 v-model="taskFormEntity.taskType" placeholder="请选择任务类型" disabled
|
|
||||||
:options="taskTypeOptions"></el-select-v2>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="任务状态" prop="taskStatus">
|
<el-form-item label="任务状态" prop="taskStatus">
|
||||||
<el-select-v2 v-model="taskFormEntity.taskStatus" placeholder="请选择任务状态"
|
<el-select-v2 v-model="taskFormEntity.taskStatus" placeholder="请选择任务状态"
|
||||||
:options="taskStatusOptions"></el-select-v2>
|
:options="taskStatusOptions"></el-select-v2>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
</el-row>
|
||||||
|
<!-- <el-row :gutter="16">
|
||||||
|
<el-col :span="12" :offset="0">
|
||||||
|
<el-form-item label="起点" prop="origin">
|
||||||
|
<el-input v-model="taskFormEntity.origin" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="零件号" prop="goodsId">
|
||||||
|
<el-input v-model="taskFormEntity.goodsId" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row> -->
|
||||||
|
<el-row :gutter="16">
|
||||||
|
<!-- <el-col :span="12" :offset="0">
|
||||||
|
<el-form-item label="任务类型" prop="taskType">
|
||||||
|
<el-select-v2 v-model="taskFormEntity.taskType" placeholder="请选择任务类型" disabled
|
||||||
|
:options="taskTypeOptions"></el-select-v2>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col> -->
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
|
|
@ -153,18 +145,18 @@ export default {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
taskStatusOptions: [
|
taskStatusOptions: [
|
||||||
{
|
// {
|
||||||
value: 0,
|
// value: 0,
|
||||||
label: '任务重置'
|
// label: '任务重置'
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
value: 1,
|
value: 1,
|
||||||
label: '任务取消'
|
label: '任务取消'
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
value: 2,
|
// value: 2,
|
||||||
label: '任务完成'
|
// label: '任务完成'
|
||||||
}
|
// }
|
||||||
],
|
],
|
||||||
availableLocationOptions: []
|
availableLocationOptions: []
|
||||||
}
|
}
|
||||||
|
|
@ -263,6 +255,7 @@ export default {
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
},
|
},
|
||||||
submitTaskInfo(formData) {
|
submitTaskInfo(formData) {
|
||||||
|
console.log(formData);
|
||||||
if (formData.taskStatus == null || formData.taskStatus == undefined) {
|
if (formData.taskStatus == null || formData.taskStatus == undefined) {
|
||||||
ElMessage.error('请选择任务状态')
|
ElMessage.error('请选择任务状态')
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<div style="margin-bottom: 10px">
|
<div style="margin-bottom: 10px">
|
||||||
<el-config-provider :locale="zhCn">
|
<el-config-provider :locale="zhCn">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-input v-model="queryKey" style="width: 256px; margin-right: 10px;" placeholder="箱号" />
|
<el-input v-model="queryKey" style="width: 256px; margin-right: 10px;" placeholder="母托号" />
|
||||||
<el-button type="primary" @click="search()">搜索</el-button>
|
<el-button type="primary" @click="search()">搜索</el-button>
|
||||||
<el-button type="warning" @click="reset()">重置</el-button>
|
<el-button type="warning" @click="reset()">重置</el-button>
|
||||||
<!-- <el-button type="success" @click="refresh()">刷新</el-button> -->
|
<!-- <el-button type="success" @click="refresh()">刷新</el-button> -->
|
||||||
|
|
@ -16,13 +16,11 @@
|
||||||
<el-radio :label="scope.row.vehicleId" v-model="vehicleId"> </el-radio>
|
<el-radio :label="scope.row.vehicleId" v-model="vehicleId"> </el-radio>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="vehicleId" label="箱号" fixed="left" min-width="120px" />
|
<el-table-column prop="vehicleId" label="母托号" fixed="left" min-width="120px" />
|
||||||
<el-table-column prop="currentLocation" label="当前位置" fixed="left" min-width="120px" />
|
<el-table-column prop="currentLocation" label="当前位置" fixed="left" min-width="120px" />
|
||||||
<el-table-column prop="vehicleStatus" label="料箱状态" :formatter="vehicleStatusFormat" min-width="120px" />
|
<el-table-column prop="isEmpty" label="托盘大小" :formatter="isEmptyFormat" min-width="120px" />
|
||||||
<el-table-column prop="isEmpty" label="是否空箱" :formatter="isEmptyFormat" min-width="120px" />
|
|
||||||
<el-table-column fixed="right" label="操作" width="200px" v-if="selVehicle == null">
|
<el-table-column fixed="right" label="操作" width="200px" v-if="selVehicle == null">
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-button plain type="primary" @click="editCurrentRowVehicle(scope.row)">编辑</el-button>
|
|
||||||
<el-button plain type="danger" @click="deleteCurrentRowVehicle(scope.row)">删除</el-button>
|
<el-button plain type="danger" @click="deleteCurrentRowVehicle(scope.row)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
@ -47,20 +45,6 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="12" :offset="0">
|
|
||||||
<el-form-item label="是否空箱" prop="isEmpty">
|
|
||||||
<el-select-v2 v-model="vehicleFormEntity.isEmpty" placeholder="请选择托盘状态"
|
|
||||||
:options="isEmptyOptions"></el-select-v2>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="托盘状态" prop="vehicleStatus">
|
|
||||||
<el-select-v2 v-model="vehicleFormEntity.vehicleStatus" placeholder="请选择托盘状态"
|
|
||||||
:options="vehicleStatusOptions"></el-select-v2>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
|
|
@ -78,7 +62,8 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import { getAllVehicles, updateVehicleInfo, deleteCurrentVehicle } from '@/api/vehicle'
|
import { getAllVehicles, updateVehicleInfo, deleteCurrentVehicle } from '@/api/vehicle'
|
||||||
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
|
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage , ElMessageBox} from 'element-plus'
|
||||||
|
import { errorBox } from '@/utils/myMessageBox.js'
|
||||||
import { ref, reactive } from 'vue'
|
import { ref, reactive } from 'vue'
|
||||||
import { vehicleStatusFormatter, locationFormatter } from '@/utils/formatter.js'
|
import { vehicleStatusFormatter, locationFormatter } from '@/utils/formatter.js'
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -168,11 +153,11 @@ export default {
|
||||||
return locationFormatter(cellValue)
|
return locationFormatter(cellValue)
|
||||||
},
|
},
|
||||||
isEmptyFormat: (row, column, cellValue, index) => {
|
isEmptyFormat: (row, column, cellValue, index) => {
|
||||||
if (cellValue == 0) {
|
|
||||||
return '带料'
|
|
||||||
}
|
|
||||||
if (cellValue == 1) {
|
if (cellValue == 1) {
|
||||||
return '空箱'
|
return '大'
|
||||||
|
}
|
||||||
|
if (cellValue == 0) {
|
||||||
|
return '小'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
reset() {
|
reset() {
|
||||||
|
|
@ -184,7 +169,14 @@ export default {
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
},
|
},
|
||||||
deleteCurrentRowVehicle(row) {
|
deleteCurrentRowVehicle(row) {
|
||||||
this.vehicleId = row.vehicleId
|
this.roleId = row.roleId
|
||||||
|
if (this.$store.state.user.roleId != 1) {
|
||||||
|
errorBox("操作人必须是管理员级别。")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ElMessageBox.confirm('是否删除当前数据库数据?','提示')
|
||||||
|
.then(() => {
|
||||||
|
this.vehicleId = row.vehicleId
|
||||||
const vehicle = {
|
const vehicle = {
|
||||||
vehicleId: row.vehicleId
|
vehicleId: row.vehicleId
|
||||||
}
|
}
|
||||||
|
|
@ -201,6 +193,8 @@ export default {
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
ElMessage.error('删除料箱信息失败:' + err)
|
ElMessage.error('删除料箱信息失败:' + err)
|
||||||
})
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
})
|
||||||
},
|
},
|
||||||
submitVehicleInfo(formData) {
|
submitVehicleInfo(formData) {
|
||||||
updateVehicleInfo(formData).then(res => {
|
updateVehicleInfo(formData).then(res => {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,10 @@ import HomeView from '@/views/HomeView.vue'
|
||||||
import stock from '@/layout/stock.vue'
|
import stock from '@/layout/stock.vue'
|
||||||
import login from '@/views/login.vue'
|
import login from '@/views/login.vue'
|
||||||
import systemCenter from'@/views/SystemCenter.vue'
|
import systemCenter from'@/views/SystemCenter.vue'
|
||||||
|
import PDAview from'@/views/PDAview.vue'
|
||||||
import goodsInPda from '@/layout/goodsInForPDA.vue'
|
import goodsInPda from '@/layout/goodsInForPDA.vue'
|
||||||
|
import goodsWithPda from '@/layout/goodsInWithPDA.vue'
|
||||||
|
import goodsInBad from '@/layout/loginToBad.vue'
|
||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
{
|
{
|
||||||
|
|
@ -15,6 +18,7 @@ const routes = [
|
||||||
{ path: '/stock', component: stock },// 库存
|
{ path: '/stock', component: stock },// 库存
|
||||||
{ path: '/goodsIn', component: () => import('@/layout/goodsIn.vue') },// 入库
|
{ path: '/goodsIn', component: () => import('@/layout/goodsIn.vue') },// 入库
|
||||||
{ path: '/goodsOut', component: () => import('@/layout/goodsOut.vue') },// 出库
|
{ path: '/goodsOut', component: () => import('@/layout/goodsOut.vue') },// 出库
|
||||||
|
{ path: '/goodsOutByInFile', component: () => import('@/layout/goodsOutByInFile.vue') },// 出库
|
||||||
{ path: '/inTaskRecord', component: () => import('@/layout/inTaskRecord.vue') },// 入库记录
|
{ path: '/inTaskRecord', component: () => import('@/layout/inTaskRecord.vue') },// 入库记录
|
||||||
{ path: '/outTaskRecord', component: () => import('@/layout/outTaskRecord.vue') },// 出库记录
|
{ path: '/outTaskRecord', component: () => import('@/layout/outTaskRecord.vue') },// 出库记录
|
||||||
{ path: '/location', component: () => import('@/layout/location.vue') },// 库位
|
{ path: '/location', component: () => import('@/layout/location.vue') },// 库位
|
||||||
|
|
@ -25,6 +29,11 @@ const routes = [
|
||||||
{ path: '/inventory', component: () => import('@/layout/inventory.vue') },// 盘点
|
{ path: '/inventory', component: () => import('@/layout/inventory.vue') },// 盘点
|
||||||
{ path: '/inventoryRecord', component: () => import('@/layout/inventoryRecord.vue') },// 盘点
|
{ path: '/inventoryRecord', component: () => import('@/layout/inventoryRecord.vue') },// 盘点
|
||||||
{ path: '/vehicle', component: () => import('@/layout/vehicle.vue') },// 料箱
|
{ path: '/vehicle', component: () => import('@/layout/vehicle.vue') },// 料箱
|
||||||
|
{ path: '/user', component: () => import('@/layout/user.vue') },// 料箱
|
||||||
|
{ path: '/role', component: () => import('@/layout/character.vue') },//
|
||||||
|
{ path: '/vehicleData', component: () => import('@/layout/vechileData.vue') },//
|
||||||
|
{ path: '/updatePassword', component: () => import('@/layout/role.vue') },//
|
||||||
|
{ path: '/checkNum', component: () => import('@/layout/checkNum.vue') },
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -37,11 +46,26 @@ const routes = [
|
||||||
name: 'systemCenter',
|
name: 'systemCenter',
|
||||||
component: systemCenter
|
component: systemCenter
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/PDAview',
|
||||||
|
name: 'PDAview',
|
||||||
|
component: PDAview
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/goodsInPda',
|
path: '/goodsInPda',
|
||||||
name: 'goodsInPda',
|
name: 'goodsInPda',
|
||||||
component: goodsInPda
|
component: goodsInPda
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/goodsInBad',
|
||||||
|
name: 'goodsInBad',
|
||||||
|
component: goodsInBad
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/goodsWithPda',
|
||||||
|
name: 'goodsWithPda',
|
||||||
|
component: goodsWithPda
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
|
|
|
||||||
|
|
@ -65,16 +65,17 @@ function taskStatusFormatter(value) {
|
||||||
|
|
||||||
function locationFormatter(locationId) {
|
function locationFormatter(locationId) {
|
||||||
if (locationId === null || locationId == undefined) {
|
if (locationId === null || locationId == undefined) {
|
||||||
return ''
|
return '位置异常'
|
||||||
}
|
}
|
||||||
const parts = locationId.split('-');
|
return locationId
|
||||||
if (parts.length === 4) {
|
// const parts = locationId.split('-');
|
||||||
return parts[0] + '排' + parts[1] + '列' + parts[2] + '层' + parts[3] + '深';
|
// if (parts.length === 4) {
|
||||||
} else if (parts.length === 3) {
|
// return parts[0] + '排' + parts[1] + '列' + parts[2] + '层' + parts[3] + '深';
|
||||||
return parts[0] + '排' + parts[1] + '列' + parts[2] + '层';
|
// } else if (parts.length === 3) {
|
||||||
} else {
|
// return parts[0] + '排' + parts[1] + '列' + parts[2] + '层';
|
||||||
return '格式错误';
|
// } else {
|
||||||
}
|
// return '格式错误';
|
||||||
|
// }
|
||||||
// const parts = locationId.split('-');
|
// const parts = locationId.split('-');
|
||||||
// return parts[0] + '排' + parts[1] + '列' + parts[2] + '层' + parts[3] + '深度';
|
// return parts[0] + '排' + parts[1] + '列' + parts[2] + '层' + parts[3] + '深度';
|
||||||
//return locationId.substr(0, 2) + '排' + locationId.substr(2, 2) + '列' + locationId.substr(4, 2) + '层'
|
//return locationId.substr(0, 2) + '排' + locationId.substr(2, 2) + '列' + locationId.substr(4, 2) + '层'
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
</router-view>
|
</router-view>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</el-main>
|
</el-main>
|
||||||
<el-footer class="footer">© 1970-2023 江苏菲达宝开电气股份有限公司</el-footer>
|
<el-footer class="footer">© 1970-2025 江苏菲达宝开电气股份有限公司</el-footer>
|
||||||
</el-container>
|
</el-container>
|
||||||
</el-container>
|
</el-container>
|
||||||
</el-container>
|
</el-container>
|
||||||
|
|
|
||||||
|
|
@ -5,16 +5,25 @@
|
||||||
<el-form-item style="width: 100%">
|
<el-form-item style="width: 100%">
|
||||||
<el-button color="#87CEFA" style="width: 100%; border: none" @click="loginToWms">WMS系统</el-button>
|
<el-button color="#87CEFA" style="width: 100%; border: none" @click="loginToWms">WMS系统</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item style="width: 100%">
|
|
||||||
<el-button color="#87CEEB" style="width: 100%; border: none" @click="loginToPda">手持盘点核对系统</el-button>
|
|
||||||
</el-form-item>
|
|
||||||
<!-- <el-form-item style="width: 100%">
|
|
||||||
<el-button color="#AFEEEE" style="width: 100%; border: none" @click="loginToSideScan">线边扫码系统</el-button>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item style="width: 100%">
|
<el-form-item style="width: 100%">
|
||||||
<el-button color="#ADD8E6" style="width: 100%; border: none" @click="loginToWcs">WCS系统</el-button>
|
<el-button color="#ADD8E6" style="width: 100%; border: none" @click="loginToWcs">WCS系统</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item style="width: 100%">
|
<el-form-item style="width: 100%">
|
||||||
|
<el-button color="#87CEEB" style="width: 100%; border: none" @click="loginToPdaAll">PDA系统</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item style="width: 100%">
|
||||||
|
<el-button color="#87CEEB" style="width: 100%; border: none" @click="loginToBad">发动机手工扫描入库</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item style="width: 100%">
|
||||||
|
<el-button color="#87CEEB" style="width: 100%; border: none" @click="loginWithPda">原材料手工扫描入库</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item style="width: 100%">
|
||||||
|
<el-button color="#87CEEB" style="width: 100%; border: none" @click="loginToPda">通道三原材料盘点回库</el-button>
|
||||||
|
</el-form-item> -->
|
||||||
|
<!-- <el-form-item style="width: 100%">
|
||||||
|
<el-button color="#AFEEEE" style="width: 100%; border: none" @click="loginToSideScan">线边扫码系统</el-button>
|
||||||
|
</el-form-item> -->
|
||||||
|
<!-- <el-form-item style="width: 100%">
|
||||||
<el-button color="#B0E0E6" style="width: 100%; border: none" @click="loginToMonitor">监控系统</el-button>
|
<el-button color="#B0E0E6" style="width: 100%; border: none" @click="loginToMonitor">监控系统</el-button>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
@ -33,15 +42,30 @@ const token = store.getters.getToken// 密码
|
||||||
const loginToWms = () => {
|
const loginToWms = () => {
|
||||||
router.replace({ path: '/home' })
|
router.replace({ path: '/home' })
|
||||||
}
|
}
|
||||||
|
const loginWithPda = () => {
|
||||||
|
router.replace({ path: '/goodsWithPda' })
|
||||||
|
}
|
||||||
|
const loginToPdaAll = () => {
|
||||||
|
router.replace({ path: '/PDAview' })
|
||||||
|
}
|
||||||
|
|
||||||
const loginToPda = () => {
|
const loginToPda = () => {
|
||||||
router.replace({ path: '/goodsInPda' })
|
router.replace({ path: '/goodsInPda' })
|
||||||
}
|
}
|
||||||
|
const loginToBad = () => {
|
||||||
|
router.replace({ path: '/goodsInBad' })
|
||||||
|
}
|
||||||
const loginToSideScan = () => {
|
const loginToSideScan = () => {
|
||||||
router.replace({ path: '/sideScan' })
|
router.replace({ path: '/sideScan' })
|
||||||
}
|
}
|
||||||
// 登录到WCS系统
|
// 登录到WCS系统
|
||||||
|
// const loginToWcs = () => {
|
||||||
|
// const wcsUrl = `https://cxlasrs.ecorp.cat.com/wcs/#/login?user=user&pwd=user`
|
||||||
|
//https://wxperkinsasrs.ap.cat.com/wmsServer/wms
|
||||||
|
// window.location.href = wcsUrl// 打开新窗口
|
||||||
|
// }
|
||||||
const loginToWcs = () => {
|
const loginToWcs = () => {
|
||||||
const wcsUrl = `https://cxlasrs.ecorp.cat.com/wcs/#/login?user=user&pwd=user`
|
const wcsUrl = `https://wxperkinsasrs.ap.cat.com/wcs/#/login?user=developer&pwd=developer`
|
||||||
window.location.href = wcsUrl// 打开新窗口
|
window.location.href = wcsUrl// 打开新窗口
|
||||||
}
|
}
|
||||||
const loginToMonitor = () => {
|
const loginToMonitor = () => {
|
||||||
|
|
@ -81,23 +105,21 @@ onMounted(() => {
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
#login-page {
|
#login-page {
|
||||||
/* background: url("../assets/img/bg.jpg") no-repeat; */
|
display: flex;
|
||||||
background-position: center;
|
justify-content: center;
|
||||||
height: 100%;
|
align-items: center;
|
||||||
width: 100%;
|
height: 100vh;
|
||||||
background-size: cover;
|
width: 100vw;
|
||||||
position: fixed;
|
background: #f0f2f5;
|
||||||
}
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
body {
|
|
||||||
margin: 0px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-container {
|
.login-container {
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
background-clip: padding-box;
|
background-clip: padding-box;
|
||||||
margin: 90px auto;
|
width: 90%;
|
||||||
width: 350px;
|
max-width: 350px;
|
||||||
padding: 35px 35px 15px 35px;
|
padding: 35px 35px 15px 35px;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border: 1px solid #eaeaea;
|
border: 1px solid #eaeaea;
|
||||||
|
|
@ -109,4 +131,25 @@ body {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #505458;
|
color: #505458;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-button {
|
||||||
|
font-size: 16px;
|
||||||
|
padding: 12px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
.login-container {
|
||||||
|
width: 90%;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-button {
|
||||||
|
font-size: 14px;
|
||||||
|
padding: 10px 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
Loading…
Reference in New Issue
Block a user