projects/mes-test #132

Manually merged
gtz217 merged 281 commits from projects/mes-test into projects/mes 2023-11-30 09:11:34 +08:00
99 changed files with 924 additions and 1040 deletions
Showing only changes of commit d79ba71bd7 - Show all commits

View File

@ -1,7 +1,7 @@
/*
* @Author: zhp
* @Date: 2023-11-07 19:47:48
* @LastEditTime: 2023-11-16 17:49:23
* @LastEditTime: 2023-11-23 13:57:41
* @LastEditors: zhp
* @Description:
*/
@ -104,3 +104,18 @@ export function getMaterialList(data) {
data: data
})
}
export function getMaterialCode(data) {
return request({
url: '/extend/process-equ-material-bom/getCode',
method: 'get',
params: data
})
}
export function createProcessEquMaterialBomDetList(data) {
return request({
url: '/extend/process-equ-material-bom-det/createByList',
method: 'post',
data: data
})
}

View File

@ -1,7 +1,7 @@
/*
* @Author: zhp
* @Date: 2023-11-09 09:37:14
* @LastEditTime: 2023-11-16 17:47:21
* @LastEditTime: 2023-11-23 14:15:45
* @LastEditors: zhp
* @Description:
*/
@ -104,3 +104,19 @@ export function getValueList(data) {
params: data
})
}
export function getValueCode(data) {
return request({
url: '/extend/process-equ-value-bom/getCode',
method: 'get',
params: data
})
}
export function createProcessEquValueBomDetList(data) {
return request({
url: '/extend/process-equ-value-bom-det/createByList',
method: 'post',
data: data
})
}

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>rollback</title>
<g id="页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="按钮与选择" transform="translate(-135.000000, -282.000000)" fill-rule="nonzero">
<g id="编组-3" transform="translate(127.000000, 274.000000)">
<g id="rollback" transform="translate(8.000000, 8.000000)">
<rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="16" height="16"></rect>
<path d="M11.390625,3.78125 L5.71875,3.78125 L5.71875,2.625 C5.71875,2.5203125 5.5984375,2.4625 5.5171875,2.5265625 L3.2984375,4.2765625 C3.234375,4.3265625 3.234375,4.4234375 3.2984375,4.4734375 L5.5171875,6.2234375 C5.5984375,6.2875 5.71875,6.2296875 5.71875,6.125 L5.71875,4.96875 L11.203125,4.96875 C11.7554097,4.96875 12.203125,5.41646525 12.203125,5.96875 L12.203125,11.3125 C12.203125,11.8647847 11.7554097,12.3125 11.203125,12.3125 L2.93775156,12.3125 L2.93775156,12.3125 C2.55569144,12.3125 2.36466138,12.4938859 2.36466138,12.8566576 C2.36466138,13.5 2.93775156,13.5 2.93775156,13.5 C2.93775156,13.5 5.75537604,13.5 11.390625,13.5 C13,13.5 13.390625,12.8986083 13.390625,11.9909216 L13.390625,4.96875 C13.390625,4.06071182 13,3.78125 11.390625,3.78125 Z" id="路径" fill="currentColor"></path>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-07-19 15:18:30
* @LastEditors: zhp
* @LastEditTime: 2023-11-22 13:58:30
* @LastEditTime: 2023-11-23 11:14:30
* @Description:
-->
<template>
@ -730,21 +730,21 @@ export default {
}
},
// watch: {
// clientWidth(val) {
// if (!this.timer) {
// this.clientWidth = val
// this.beilv2 = this.clientWidth / 1920
// this.timer = true
// let _this = this
// setTimeout(function () {
// _this.timer = false
// }, 500)
// }
// //
// this.windowWidth(val);
// }
// },
watch: {
clientWidth(val) {
if (!this.timer) {
this.clientWidth = val
this.beilv2 = this.clientWidth / 1920
this.timer = true
let _this = this
setTimeout(function () {
_this.timer = false
}, 500)
}
//
this.windowWidth(val);
}
},
created() {
// this.fetchList('exception-alarm')
// this.fetchList('inAndOutOfEachLine')

View File

@ -60,7 +60,7 @@
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="24">
<base-container1 :beilv="1" :title="'设备状态监控'" :title-icon="'1_5'">
<div class="visual-select">
<el-select v-model="modelMonth" size="mini" placeholder="">
<el-select class="coldSelect" v-model="modelMonth" size="mini" placeholder="">
<el-option key="1" value="钢1线" label="钢1线" default />
</el-select>
</div>
@ -634,21 +634,21 @@ export default {
}
}
},
watch: {
clientWidth(val) {
if (!this.timer) {
this.clientWidth = val
this.beilv2 = this.clientWidth / 1920
this.timer = true
let _this = this
setTimeout(function () {
_this.timer = false
}, 500)
}
//
this.windowWidth(val);
}
},
// watch: {
// clientWidth(val) {
// if (!this.timer) {
// this.clientWidth = val
// this.beilv2 = this.clientWidth / 1920
// this.timer = true
// let _this = this
// setTimeout(function () {
// _this.timer = false
// }, 500)
// }
// //
// this.windowWidth(val);
// }
// },
created() {
// this.fetchList('exception-alarm')
// this.fetchList('inAndOutOfEachLine')
@ -658,6 +658,7 @@ export default {
this.windowWidth(document.documentElement.clientWidth)
},
mounted() {
console.log(1111);
const _this = this;
_this.beilv2 = document.documentElement.clientWidth / 1920
window.onresize = () => {
@ -686,6 +687,7 @@ export default {
methods: {
windowWidth(value) {
this.clientWidth = value
this.beilv2 = this.clientWidth / 1920
},
// erd.listenTo(document.getElementById("box"), (element) => {
// var width = element.offsetWidth;
@ -1096,6 +1098,7 @@ export default {
background-color: rgba($color: #5bc4be, $alpha: 1);
}
}
.coldSelect{
.el-input {
min-height: 10px;
}
@ -1113,6 +1116,7 @@ export default {
color: rgba(255, 255, 255, 0.15);
margin-left: 3em;
}
}
</style>
<style scoped>

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-07-19 15:18:30
* @LastEditors: zhp
* @LastEditTime: 2023-10-17 11:10:22
* @LastEditTime: 2023-11-23 11:11:35
* @Description:
-->
<template>
@ -44,7 +44,7 @@
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8">
<base-container :title="'各工序缺陷汇总'" :title-icon="'5_2'">
<div class="visual-select">
<el-select v-model="modelMonth" size="mini" placeholder="">
<el-select class="coldSelect" v-model="modelMonth" size="mini" placeholder="">
<el-option key="1" value="钢1线" label="钢1线" default />
</el-select>
</div>
@ -740,16 +740,16 @@ export default {
// this.fetchList('order-process')
// this.fetchList('line-chart-data')
this.init()
this.windowWidth(document.documentElement.clientWidth)
},
mounted() {
const _this = this;
window.onresize = () => {
return (() => {
_this.clientWidth = `${document.documentElement.clientWidth}`
this.beilv2 = _this.clientWidth / 1920
})()
}
this.windowWidth(document.documentElement.clientWidth)
// const _this = this;
// window.onresize = () => {
// return (() => {
// _this.clientWidth = `${document.documentElement.clientWidth}`
// this.beilv2 = _this.clientWidth / 1920
// })()
// }
// this.beilv2 = window.innerWidth / 1920
// addEventListener('resize', resizeFun = () => {
// this.beilv2 = window.innerWidth / 1920
@ -770,6 +770,7 @@ export default {
methods: {
windowWidth(value) {
this.clientWidth = value
this.beilv2 = this.clientWidth / 1920
},
// fetchList(type) {
// switch (type) {
@ -932,6 +933,7 @@ export default {
background-color: rgba($color: #5bc4be, $alpha: 1);
}
}
.coldSelect{
.el-input {
min-height: 10px;
}
@ -949,6 +951,7 @@ export default {
color: rgba(255, 255, 255, 0.15);
margin-left: 3em;
}
}
</style>

View File

@ -202,12 +202,11 @@ export default {
}
},
created() {
// this.init()
// console.log('aaaaaa')
// this.otherPaper()
// $('.hiprintEpContainer').empty()
},
destroyed () {
$('.hiprintEpContainer').empty()
console.log(11111)
},
methods: {
// handleClose() {
@ -215,6 +214,7 @@ export default {
// },
closed() {
$('.hiprintEpContainer').empty()
$('.hiprint-printTemplate').empty()
},
init(data) {
this.drawer = true
@ -256,17 +256,17 @@ export default {
// console.log(this.modelData)
// console.log($('#hiprint-printTemplate').empty())
if (this.modelData != {}) {
console.log(this.modelData);
$('.hiprintEpContainer').empty()
hiprint.PrintElementTypeManager.build('.hiprintEpContainer', provider.value)
$('.hiprint-printTemplate').empty()
hiprintTemplate = new hiprint.PrintTemplate({
template: JSON.parse(this.modelData),
settingContainer: '#PrintElementOptionSetting',
paginationContainer: '.hiprint-printPagination'
})
} else {
// if () {
// console.log(this.modelData);
// $('.hiprintEpContainer').empty()
// hiprint.PrintElementTypeManager.build('.hiprintEpContainer', provider.value)
// $('.hiprint-printTemplate').empty()
// hiprintTemplate = new hiprint.PrintTemplate({
// template: JSON.parse(this.modelData),
// settingContainer: '#PrintElementOptionSetting',
// paginationContainer: '.hiprint-printPagination'
// })
// } else {
$('.hiprintEpContainer').empty()
console.log(this.modelData);
hiprint.PrintElementTypeManager.build('.hiprintEpContainer', provider.value)
@ -275,11 +275,11 @@ export default {
const template = provider.value
// console.log(template)
hiprintTemplate = new hiprint.PrintTemplate({
template: template,
template: this.modelData != '' ? JSON.parse(this.modelData) : {},
settingContainer: '#PrintElementOptionSetting',
paginationContainer: '.hiprint-printPagination'
})
}
// }
hiprintTemplate.design('#hiprint-printTemplate')
// console.log(hiprintTemplate)
console.log(hiprintTemplate);

View File

@ -236,212 +236,10 @@ export const aProvider = function (ops) {
};
};
// 自定义设计元素2
export const bProvider = function (ops) {
var addElementTypes = function (context) {
context.removePrintElementTypes("bProviderModule");
context.addPrintElementTypes(
"bProviderModule",
[
new hiprint.PrintElementTypeGroup("常规", [
{
tid: 'bProviderModule.header', title: '单据表头', data: '单据表头', type: 'text',
options: {
testData: '单据表头',
height: 17,
fontSize: 16.5,
fontWeight: "700",
textAlign: "center",
hideTitle: true
}
},
{
tid: 'bProviderModule.type', title: '单据类型', data: '单据类型', type: 'text',
options: {
testData: '单据类型',
height: 16,
fontSize: 15,
fontWeight: "700",
textAlign: "center",
hideTitle: true
}
},
{
tid: 'bProviderModule.order', title: '订单编号', data: 'XS888888888', type: 'text',
options: {
field: 'orderId',
testData: 'XS888888888',
height: 16,
fontSize: 6.75,
fontWeight: "700",
textAlign: "left",
textContentVerticalAlign: "middle"
}
},
{
tid: 'bProviderModule.date', title: '业务日期', data: '2020-01-01', type: 'text',
options: {
field: 'date',
testData: '2020-01-01',
height: 16,
fontSize: 6.75,
fontWeight: "700",
textAlign: "left",
textContentVerticalAlign: "middle"
}
},
{
tid: 'bProviderModule.barcode', title: '条形码', data: 'XS888888888', type: 'text',
options: {
field: 'barcode',
testData: 'XS888888888',
height: 32,
fontSize: 12,
lineHeight: 18,
textType: "barcode"
}
},
{
tid: 'bProviderModule.qrcode', title: '二维码', data: 'XS888888888', type: 'text',
options: {
field: 'qrcode',
testData: 'XS888888888',
height: 32,
fontSize: 12,
lineHeight: 18,
textType: "qrcode"
}
},
{
tid: 'bProviderModule.platform', title: '平台名称', data: '平台名称', type: 'text',
options: {
testData: '平台名称',
height: 17,
fontSize: 16.5,
fontWeight: "700",
textAlign: "center",
hideTitle: true
}
},
{tid: 'bProviderModule.image', title: 'Logo', data: 'data: image/png;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', type: 'image', options: {
src: 'data: image/png;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',
fit: 'none'
}},
]),
new hiprint.PrintElementTypeGroup("客户", [
{
tid: 'bProviderModule.khname', title: '客户名称', data: '高级客户', type: 'text',
options: {
field: 'name',
testData: '高级客户',
height: 16,
fontSize: 6.75,
fontWeight: "700",
textAlign: "left",
textContentVerticalAlign: "middle"
}
},
{
tid: 'bProviderModule.tel', title: '客户电话', data: '18888888888', type: 'text',
options: {
field: 'tel',
testData: '18888888888',
height: 16,
fontSize: 6.75,
fontWeight: "700",
textAlign: "left",
textContentVerticalAlign: "middle"
}
},
]),
new hiprint.PrintElementTypeGroup("表格/其他", [
{
tid: 'bProviderModule.table', title: '订单数据',
type: 'table',
options: {
field: 'table',
fields: [
{text: '名称', field: 'NAME'},
{text: '数量', field: 'SL'},
{text: '规格', field: 'GG'},
{text: '条码', field: 'TM'},
{text: '单价', field: 'DJ'},
{text: '金额', field: 'JE'},
{text: '备注', field: 'DETAIL'},
],
},
editable: true,
columnDisplayEditable: true,//列显示是否能编辑
columnDisplayIndexEditable: true,//列顺序显示是否能编辑
columnTitleEditable: true,//列标题是否能编辑
columnResizable: true, //列宽是否能调整
columnAlignEditable: true,//列对齐是否调整
columns: [
[
{title: '名称', align: 'center', field: 'NAME', width: 100},
{title: '数量', align: 'center', field: 'SL', width: 100},
{title: '条码', align: 'center', field: 'TM', width: 100},
{title: '规格', align: 'center', field: 'GG', width: 100},
{title: '单价', align: 'center', field: 'DJ', width: 100},
{title: '金额', align: 'center', field: 'JE', width: 100},
{title: '备注', align: 'center', field: 'DETAIL', width: 100},
]
],
footerFormatter: function (options, rows, data, currentPageGridRowsData) {
if (data && data['totalCap']) {
return `<td style="padding:0 10px" colspan="100">${'应收金额大写: ' + data['totalCap']}</td>`
}
return '<td style="padding:0 10px" colspan="100">应收金额大写: </td>'
},
},
{tid: 'bProviderModule.customText', title: '文本', customText: '自定义文本', custom: true, type: 'text'},
{
tid: 'bProviderModule.longText', title: '长文本', type: 'longText', options: {
field: 'test.longText',
width: 200,
testData: '长文本分页/不分页测试'
},
}
]),
new hiprint.PrintElementTypeGroup("辅助", [
{
tid: 'bProviderModule.hline',
title: '横线',
type: 'hline'
},
{
tid: 'bProviderModule.vline',
title: '竖线',
type: 'vline'
},
{
tid: 'bProviderModule.rect',
title: '矩形',
type: 'rect'
},
{
tid: 'bProviderModule.oval',
title: '椭圆',
type: 'oval'
}
])
]
);
};
return {
addElementTypes: addElementTypes
};
};
// type: 1供货商 2经销商
export default [{
name: 'A设计',
value: 'aProviderModule',
type: 1,
f: aProvider()
}, {
name: 'B设计',
value: 'bProviderModule',
type: 2,
f: bProvider()
}]

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 14:55:51
* @LastEditors: zhp
* @LastEditTime: 2023-11-07 19:28:18
* @LastEditTime: 2023-11-22 14:40:59
* @Description:
-->
<template>
@ -77,7 +77,7 @@ const tableProps = [
{
prop: 'printStatus',
label: '打印状态',
// subcomponent: unitDict,
filter: (val) => val == 1 ? '未打印' : '已打印',
},
{
prop: 'createTime',
@ -97,6 +97,10 @@ export default {
},
tableProps,
tableBtn: [
{
type: 'print',
btnName: '打印',
},
this.$auth.hasPermi(`base:packaging-print-log:update`)
? {
type: 'edit',
@ -109,10 +113,6 @@ export default {
btnName: '删除',
}
: undefined,
{
type: 'print',
btnName: '打印',
},
].filter((v) => v),
tableData: [],
formConfig: [

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 14:55:51
* @LastEditors: zhp
* @LastEditTime: 2023-11-01 10:28:29
* @LastEditTime: 2023-11-22 14:40:07
* @Description:
-->
<template>
@ -34,6 +34,11 @@ import {
const tableProps = [
{
prop: 'createTime',
label: '创建时间',
filter: parseTime
},
{
prop: 'name',
label: '模板名称'
},
@ -65,6 +70,10 @@ export default {
tableProps,
modelShow:false,
tableBtn: [
{
type: 'print',
btnName: '查看',
},
this.$auth.hasPermi(`base:packaging-print-model:update`)
? {
type: 'edit',
@ -77,10 +86,6 @@ export default {
btnName: '删除',
}
: undefined,
{
type: 'print',
btnName: '查看',
},
].filter((v) => v),
tableData: [],
formConfig: [

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 14:55:51
* @LastEditors: zhp
* @LastEditTime: 2023-10-18 16:11:22
* @LastEditTime: 2023-11-22 14:36:33
* @Description:
-->
<template>
@ -107,12 +107,12 @@ export default {
// valueFormat: 'yyyy-MM-dd',
// param: 'createTime',
// },
{
type: 'button',
btnName: '搜索',
name: 'search',
color: 'primary',
},
// {
// type: 'button',
// btnName: '',
// name: 'search',
// color: 'primary',
// },
// {
// type: 'separate',
// },
@ -125,7 +125,7 @@ export default {
type: 'separate',
},
{
type: this.$auth.hasPermi('base:packaging-print-log:create') ? 'button' : '',
type: this.$auth.hasPermi('base:packaging-print-type:create') ? 'button' : '',
btnName: '新增',
name: 'add',
color: 'success',

View File

@ -1,7 +1,7 @@
<template>
<el-form ref="addOrUpdate" :rules="rules" label-width="130px" :model="form">
<el-row>
<el-col :span='12'>
<el-form ref="addOrUpdate" :rules="rules" label-width="130px" :model="form" label-position='top'>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="订单名" prop="orderId">
<el-select v-model="form.orderId" placeholder="请选择" style="width: 100%;">
<el-option
@ -13,14 +13,12 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="发货单名称" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="发货时间" prop="deliveryTime">
<el-date-picker
v-model="form.deliveryTime"
@ -32,14 +30,14 @@
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="发货单号" prop="code">
<el-input v-model="form.code"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="发货负责人" prop="deliveryPersonId">
<el-select v-model="form.deliveryPersonId" placeholder="请选择" style="width: 100%;">
<el-option
@ -51,21 +49,19 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="运输负责人" prop="principal">
<el-input v-model="form.principal"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="运输联系方式" prop="principalCall">
<el-input v-model="form.principalCall"></el-input>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="运输费用" prop="principalCost">
<el-input-number v-model="form.principalCost" :min="0" :max='9999999999' :precision='2'></el-input-number>
<el-input-number v-model="form.principalCost" :min="0" :max='9999999999' :precision='2' style='width: 100%;'></el-input-number>
</el-form-item>
</el-col>
</el-row>

View File

@ -2,10 +2,11 @@
<div>
<el-drawer
title="发货清单详情"
size="60%"
size="65%"
:append-to-body="true"
:visible.sync="centervisible"
@close='close'>
@close='close'
:show-close='false'>
<div class="box1">
<el-row>
<el-col :span='12'>
@ -90,7 +91,7 @@ const tableProps = [
{
prop: 'packagingSize',
label: '装箱规格(片/箱)',
width: 120
width: 150
},
{
prop: 'packagingNum',

View File

@ -1,19 +1,17 @@
<template>
<el-form ref="addOrUpdate" :rules="rules" label-width="130px" :model="form">
<el-row>
<el-col :span='12'>
<el-form ref="addOrUpdate" :rules="rules" label-width="130px" :model="form" label-position='top'>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="发货单号">
<el-input v-model="code" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="装车单号" prop="deliveryCarCode">
<el-input v-model="form.deliveryCarCode"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="装车时间" prop="loadTime">
<el-date-picker
v-model="form.loadTime"
@ -25,19 +23,19 @@
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="车辆联系人" prop="contactPerson">
<el-input v-model="form.contactPerson"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="联系方式" prop="contactPersonCall">
<el-input v-model="form.contactPersonCall"></el-input>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="装车产品" prop="productId">
<el-select v-model="form.productId" disabled placeholder="请选择" style="width: 100%;">
<el-option
@ -49,26 +47,24 @@
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="装箱规格(片/箱)" prop="packagingSize">
<el-input-number v-model="form.packagingSize" :min="0" :max='9999999999' style="width:100%"></el-input-number>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="产品批次" prop="productDate">
<el-input v-model="form.productDate" placeholder="多个批次用','隔开"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="箱/托数" prop="packagingNum">
<el-input-number v-model="form.packagingNum" :min="0" :max='9999999999' style="width:100%"></el-input-number>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="装车总量" prop="quantity">
<el-input-number v-model="form.quantity" :min="0" :max='9999999999' style="width:100%"></el-input-number>
</el-form-item>

View File

@ -103,7 +103,8 @@ const tableProps = [
},
{
prop: 'principalCost',
label: '运输费用'
label: '运输费用',
align: 'right'
},
{
prop: 'remark',
@ -225,7 +226,11 @@ export default {
},
getList() {
deliveryLogPage({...this.queryParams}).then(res => {
this.list = res.data.list || []
let arr = res.data.list || []
arr && arr.map(item => {
item.principalCost = item.principalCost.toFixed(2)
})
this.list = arr
this.total = res.data.total || 0
})
},

View File

@ -4,7 +4,8 @@
:visible.sync="centervisible"
size="80%"
class="deliveryLogDetail"
@close='closeA'>
@close='closeA'
:show-close='false'>
<div class="box1">
<div class="box_col">
<div class="blodTip">订单名</div>
@ -77,7 +78,8 @@
size="60%"
:append-to-body="true"
:visible.sync="innerDrawer"
@close='closeB'>
@close='closeB'
:show-close='false'>
<div class="box3">
<el-row>
<el-col :span='12'>

View File

@ -2,7 +2,7 @@
<div class="searchBarBox divHeight" ref="searchBarRef" :style="{ paddingRight: isFold ? '55px' : '0px' }">
<el-form :inline="true" class="demo-form-inline">
<span class="blue-block"></span>
<el-form-item label="能源类型">
<el-form-item label="能源类型" required>
<el-select v-model="queryParams.energyTypeId" placeholder="请选择" style="width: 100px;" size="small">
<el-option
v-for="item in energyTypeList"
@ -12,7 +12,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="时间维度">
<el-form-item label="时间维度" required>
<el-select v-model="queryParams.timeDim" placeholder="请选择" style="width: 80px;" size="small">
<el-option
v-for="item in getDictDatas(this.DICT_TYPE.TIME_DIM)"
@ -22,7 +22,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="时间范围">
<el-form-item label="时间范围" required>
<div v-show="queryParams.timeDim === '1'">
<el-date-picker
v-model="timeValue"
@ -124,7 +124,7 @@
</el-date-picker>
</div>
</el-form-item>
<el-form-item label="对象维度">
<el-form-item label="对象维度" required>
<el-select v-model="queryParams.objType" placeholder="请选择" style="width: 80px;" @change="selectObjs" size="small">
<el-option
v-for="item in getDictDatas(this.DICT_TYPE.OBJECT_TYPE)"
@ -134,7 +134,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="对象选择">
<el-form-item label="对象选择" required>
<el-select v-model="queryParams.objIds" placeholder="请选择" multiple :multiple-limit='5' collapse-tags style="width: 200px;" size="small">
<el-option
v-for="item in objectList"
@ -148,6 +148,8 @@
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" @click="search">查询</el-button>
<span class="separateStyle"></span>
<el-button size="small" @click="resetBtn">重置</el-button>
</el-form-item>
</el-form>
<span v-if="isFold" class="foldClass" @click='switchMode'>
@ -400,6 +402,19 @@ export default {
console.log(this.queryParams)
this.$emit('submit', this.queryParams)
},
resetBtn() {
this.queryParams.energyTypeId = null
this.queryParams.timeDim = this.getDictDatas(this.DICT_TYPE.TIME_DIM)[0].value //
this.queryParams.objIds = []
this.queryParams.objType = ''
this.timeValue = []
this.dateValue = []
this.weekValue1 = null
this.weekValue2 = null
this.monthValue = []
this.yearValue1 = null
this.yearValue2 = null
},
transformTime(timeStamp) {//
let year = moment(timeStamp).format('YYYY')
let month = moment(timeStamp).format('MM')
@ -471,4 +486,12 @@ export default {
height: 45px;
overflow: hidden;
}
.separateStyle {
display: inline-block;
width: 1px;
height: 24px;
background: #E8E8E8;
vertical-align: middle;
margin: 0 10px;
}
</style>

View File

@ -34,10 +34,10 @@ export default {
mounted() {
window.addEventListener('resize', () => {
this.tableH = this.tableHeight(260)
this.isFold = this.searchBarWidth('contrastAnalysisBox', 1310)
this.isFold = this.searchBarWidth('contrastAnalysisBox', 1437)
// console.log(document.getElementById("contrastAnalysisBox").offsetWidth)
})
this.isFold = this.searchBarWidth('contrastAnalysisBox', 1310)
this.isFold = this.searchBarWidth('contrastAnalysisBox', 1437)
},
methods: {
getList(params) {

View File

@ -1,7 +1,7 @@
<template>
<el-form :inline="true" class="demo-form-inline">
<span class="blue-block"></span>
<el-form-item label="对象选择">
<el-form-item label="对象选择" required>
<el-cascader
v-model="objArr"
:options="objList"
@ -11,7 +11,7 @@
style="width: 250px;"
clearable></el-cascader>
</el-form-item>
<el-form-item label="时间维度">
<el-form-item label="时间维度" required>
<el-select v-model="queryParams.type" placeholder="请选择" style="width: 80px;" size="small">
<el-option
v-for="item in timeType"
@ -22,7 +22,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="时间">
<el-form-item label="时间" required>
<div v-show="queryParams.type === 1">
<el-date-picker
v-model="monthValue"
@ -129,7 +129,7 @@ export default {
},
//
search() {
if (!this.objArr.length === 0) {
if (this.objArr.length === 0) {
this.$modal.msgError('请选择对象')
return false
} else {

View File

@ -2,7 +2,7 @@
<div class="searchBarBox divHeight" ref="searchBarRef" :style="{ paddingRight: isFold ? '55px' : '0px' }">
<el-form :inline="true" class="demo-form-inline">
<span class="blue-block"></span>
<el-form-item label="能源类型">
<el-form-item label="能源类型" required>
<el-select v-model="queryParams.energyTypeId" placeholder="请选择" style="width: 100px;" size="small">
<el-option
v-for="item in energyTypeList"
@ -12,7 +12,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="对象选择">
<el-form-item label="对象选择" required>
<el-cascader
v-model="objArr"
:options="objList"
@ -21,7 +21,7 @@
size="small"
clearable></el-cascader>
</el-form-item>
<el-form-item label="时间维度">
<el-form-item label="时间维度" required>
<el-select v-model="queryParams.timeDim" placeholder="请选择" style="width: 80px;" size="small">
<el-option
v-for="item in getDictDatas(this.DICT_TYPE.TIME_DIM)"
@ -32,7 +32,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="时间范围">
<el-form-item label="时间范围" required>
<div v-show="queryParams.timeDim === '1'">
<el-date-picker
v-model="timeValue"
@ -129,6 +129,8 @@
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" @click="search">查询</el-button>
<span class="separateStyle"></span>
<el-button size="small" @click="resetBtn">重置</el-button>
</el-form-item>
</el-form>
<span v-if="isFold" class="foldClass" @click='switchMode'>
@ -360,6 +362,14 @@ export default {
this.queryParams.endTime = this.queryParams.endTime + ''
this.$emit('submit', this.queryParams)
},
//
resetBtn() {
this.queryParams.energyTypeId = null
this.queryParams.objId = null
this.objArr = []
this.queryParams.timeDim = this.getDictDatas(this.DICT_TYPE.TIME_DIM)[0].value //
this.timeValue = [moment().startOf('day'), moment().endOf('day')-59*61*1000]
},
transformTime(timeStamp) {//
let year = moment(timeStamp).format('YYYY')
let month = moment(timeStamp).format('MM')
@ -435,4 +445,12 @@ export default {
height: 45px;
overflow: hidden;
}
.separateStyle {
display: inline-block;
width: 1px;
height: 24px;
background: #E8E8E8;
vertical-align: middle;
margin: 0 10px;
}
</style>

View File

@ -34,9 +34,9 @@ export default {
mounted() {
window.addEventListener('resize', () => {
this.tableH = this.tableHeight(260)
this.isFold = this.searchBarWidth('trendAnalysisBox', 1146)
this.isFold = this.searchBarWidth('trendAnalysisBox', 1263)
})
this.isFold = this.searchBarWidth('trendAnalysisBox', 1146)
this.isFold = this.searchBarWidth('trendAnalysisBox', 1263)
},
methods: {
getList(params) {

View File

@ -1,7 +1,7 @@
<template>
<el-form :inline="true" class="demo-form-inline">
<span class="blue-block"></span>
<el-form-item label="对象选择">
<el-form-item label="对象选择" required>
<el-cascader
v-model="objArr"
:options="objList"
@ -10,7 +10,7 @@
size="small"
clearable></el-cascader>
</el-form-item>
<el-form-item label="时间维度">
<el-form-item label="时间维度" required>
<el-select v-model="queryParams.type" placeholder="请选择" style="width: 80px;" size="small">
<el-option
v-for="item in timeType"
@ -21,7 +21,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="时间">
<el-form-item label="时间" required>
<div v-show="queryParams.type === 1 || queryParams.type === 2">
<el-date-picker
v-model="yearValue"
@ -103,7 +103,7 @@ export default {
},
//
search() {
if (!this.objArr.length === 0) {
if (this.objArr.length === 0) {
this.$modal.msgError('请选择对象')
return false
} else {

View File

@ -25,18 +25,16 @@
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="描述" prop="description">
<el-input v-model="form.description"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-col :span="12">
<el-form-item label="是否采集" prop="collection">
<el-switch v-model="form.collection"></el-switch>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="描述" prop="description">
<el-input v-model="form.description"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</template>

View File

@ -1,6 +1,6 @@
<template>
<div>
<el-drawer :title="drawerTitle" :visible.sync="visible" size="70%" @close='closeD'>
<el-drawer :title="drawerTitle" :visible.sync="visible" size="70%" @close='closeD' :show-close='false'>
<div class="box">
<el-form :inline="true">
<el-form-item label="关联表名">

View File

@ -27,7 +27,7 @@
</template>
<script>
import { getEnergyQuantityRealtimePage, exportEnergyQuantityRealtimeExcel } from "@/api/base/energyQuantityRealtime"
import { getEnergyQuantityRealtimePage } from "@/api/base/energyQuantityRealtime"
import { getEnergyTypeListAll } from "@/api/base/energyType"
// import { publicFormatter } from '@/utils/dict'
import FileSaver from "file-saver"
@ -140,18 +140,16 @@ export default {
break
default:
this.exportTable()
// this.$modal.confirm('').then(() => {
// return exportEnergyQuantityRealtimeExcel({...this.queryParams});
// }).then(response => {
// console.log(response)
// this.$download.excel(response, '.xls');
// }).catch(() => {})
}
},
/** 查询列表 */
getList() {
getEnergyQuantityRealtimePage(this.queryParams).then(response => {
this.list = response.data.list || []
let arr = response.data.list || []
arr && arr.map(item => {
item.amount = item.amount ? (!isNaN(parseFloat(item.amount)) && isFinite(item.amount) ? item.amount.toFixed(2) : '') : ''
})
this.list = arr
this.total = response.data.total;
this.exportList = []
});

View File

@ -6,6 +6,7 @@
:key="item.prop"
:prop="item.prop"
:label="item.label"
:align="item.align ? item.align : 'left'"
width="120">
</el-table-column>
</el-table>

View File

@ -1,6 +1,6 @@
<template>
<div>
<el-drawer :title="drawerTitle" :visible.sync="visible" size="70%" @close='closeD'>
<el-drawer :title="drawerTitle" :visible.sync="visible" size="70%" @close='closeD' :show-close='false'>
<div class="box">
<el-form :inline="true">
<el-form-item label="方案名称">

View File

@ -3,7 +3,8 @@
title="新增"
:visible.sync="centervisible"
size="60%"
@close='closeA'>
@close='closeA'
:show-close='false'>
<div class="box">
<!-- 搜索工作栏 -->
<search-bar

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zhp
* @LastEditTime: 2023-11-10 16:26:08
* @LastEditTime: 2023-11-22 16:50:55
* @Description:
-->
<template>
@ -100,7 +100,8 @@ import {
updateProcessEquMaterialBom,
getEquipmentList,
processEquMaterialBomDetPage,
deleteProcessEquMaterialBomDet
deleteProcessEquMaterialBomDet,
getMaterialCode
} from '@/api/extend/processEquMaterialBom';
import SmallTitle from './SmallTitle';
import { parseTime } from '../../core/mixins/code-filter';
@ -197,7 +198,6 @@ export default {
};
},
mounted() {
this.getDict()
},
methods: {
getCode(val) {
@ -223,6 +223,9 @@ export default {
// console.log(response);
this.equipmentList = res.data
})
getMaterialCode().then(res => {
this.dataForm.code = res.data
})
},
handleClick(raw) {
if (raw.type === 'delete') {
@ -267,7 +270,8 @@ export default {
});
},
init(id, isdetail) {
this.initData();
this.initData()
this.getDict()
this.isdetail = isdetail || false;
this.dataForm.id = id || undefined;
this.visible = true;

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-11-08 15:30:27
* @LastEditTime: 2023-11-09 14:11:02
* @LastEditTime: 2023-11-23 14:27:59
* @LastEditors: zhp
* @Description:
-->
@ -18,13 +18,16 @@
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="100px"
@keyup.enter.native="dataFormSubmit()">
<el-form-item label="物料名称" prop="materialId">
<el-select v-model="dataForm.materialId" filterable placeholder="请选择物料名称">
<el-select v-model="dataForm.materialId" filterable placeholder="请选择物料名称" multiple>
<el-option v-for="dict in materialList" :key=" dict.id" :label="dict.name" :value="dict.id" />
</el-select>
</el-form-item>
<el-form-item label="数量" prop="num">
<el-input v-model="dataForm.num" placeholder="请输入数量" clearable />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="dataForm.remark" placeholder="请输入备注" clearable />
</el-form-item>
</el-form>
<el-row style="text-align: right">
@ -37,7 +40,7 @@
<script>
import {
getProcessEquMaterialBomDet,
createProcessEquMaterialBomDet,
createProcessEquMaterialBomDetList,
updateProcessEquMaterialBomDet,
getMaterialList
} from '@/api/extend/processEquMaterialBom';
@ -56,11 +59,13 @@ export default {
dataForm: {
id: undefined,
bomId: undefined,
materialId:null,
materialId:[],
num: undefined,
remark:undefined
},
dataRule: {
attrName: [{ required: true, message: '名称不能为空', trigger: 'blur' }],
materialId: [{ required: true, message: '名称不能为空', trigger: 'change' }],
num: [{ required: true, message: '数量不能为空', trigger: 'blur' }],
},
};
},
@ -79,8 +84,11 @@ export default {
getProcessEquMaterialBomDet({
id: this.dataForm.id
}).then((res) => {
this.dataForm = res.data;
// this.dataForm.materialId = materialId;
this.dataForm = res.data
const arr = []
arr.push(res.data.materialId)
this.dataForm.materialId =arr
console.log(this.dataForm.materialId);
// this.dataForm.value = value;
});
}
@ -98,9 +106,15 @@ export default {
if (valid) {
//
if (this.dataForm.id) {
const dataObj = {
materialId: this.dataForm.materialId.toString(),
bomId: this.dataForm.bomId,
num: this.dataForm.num,
id: this.dataForm.id,
remark: this.dataForm.remark
}
updateProcessEquMaterialBomDet({
...this.dataForm,
productId: this.productId,
...dataObj
}).then((response) => {
this.$modal.msgSuccess('修改成功');
this.visible = false;
@ -109,10 +123,15 @@ export default {
return;
}
//
createProcessEquMaterialBomDet({
...this.dataForm,
productId: this.productId,
}).then((response) => {
const dataArr = this.dataForm.materialId.map(ele => {
return {
materialId: ele,
bomId: this.dataForm.bomId,
num: this.dataForm.num,
remark: this.dataForm.remark
}
});
createProcessEquMaterialBomDetList(dataArr).then((response) => {
this.$modal.msgSuccess('新增成功');
this.visible = false;
this.$emit('refreshDataList');

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zhp
* @LastEditTime: 2023-11-09 14:49:16
* @LastEditTime: 2023-11-23 09:20:12
* @Description:
-->
<template>
@ -53,7 +53,7 @@
</el-form-item>
</el-form>
</div>
<div class="drawer-body__footer">
<div v-if="isdetail" class="drawer-body__footer">
<el-button style="" @click="goback()">取消</el-button>
<el-button v-if="isdetail" type="primary" @click="goEdit()">
编辑
@ -63,7 +63,7 @@
<div class="attr-list" v-if="idAttrShow">
<small-title style="margin: 16px 0; padding-left: 8px" :no-padding="true">
设备物料明细
设备参数
</small-title>
<div v-if="!isdetail" class="action_btn">
@ -100,7 +100,8 @@ import {
updateProcessEquValueBom,
getEquipmentList,
processEquValueBomDetPage,
deleteProcessEquValueBomDet
deleteProcessEquValueBomDet,
getValueCode
} from '@/api/extend/processEquValueBom';
import SmallTitle from './SmallTitle';
import { parseTime } from '../../core/mixins/code-filter';
@ -208,7 +209,6 @@ export default {
};
},
mounted() {
this.getDict()
},
methods: {
getCode(val) {
@ -234,6 +234,9 @@ export default {
// console.log(response);
this.equipmentList = res.data
})
getValueCode().then(res => {
this.dataForm.code = res.data
})
},
handleClick(raw) {
if (raw.type === 'delete') {
@ -278,7 +281,8 @@ export default {
});
},
init(id, isdetail) {
this.initData();
this.getDict()
this.initData()
console.log(isdetail);
this.isdetail = isdetail || false;
this.dataForm.id = id || undefined;

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-11-08 15:30:27
* @LastEditTime: 2023-11-09 14:44:49
* @LastEditTime: 2023-11-23 14:26:54
* @LastEditors: zhp
* @Description:
-->
@ -18,19 +18,19 @@
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="100px"
@keyup.enter.native="dataFormSubmit()">
<el-form-item label="参数名称" prop="paramId">
<el-select v-model="dataForm.paramId" filterable placeholder="参数名称" @change="getData">
<el-select v-model="dataForm.paramId" filterable placeholder="参数名称" @change="getData" multiple >
<el-option v-for="dict in materialList" :key=" dict.id" :label="dict.name" :value="dict.id" />
</el-select>
</el-form-item>
<!-- <el-form-item label="参数编码" prop="code">
<el-input v-model="dataForm.code" placeholder="请输入参数编码" clearable />
</el-form-item> -->
<el-form-item label="标准最小值" prop="standardMinValue">
<!-- <el-form-item label="标准最小值" prop="standardMinValue">
<el-input v-model="dataForm.standardMinValue" placeholder="请输入标准最小值" clearable />
</el-form-item>
<el-form-item label="标准最大值" prop="standardMaxValue">
<el-input v-model="dataForm.standardMaxValue" placeholder="请输入标准最大值" clearable />
</el-form-item>
</el-form-item> -->
<el-form-item label="工艺最小值" prop="minValue">
<el-input v-model="dataForm.minValue" placeholder="请输入工艺最小值" clearable />
</el-form-item>
@ -55,7 +55,7 @@
<script>
import {
getProcessEquValueBomDet,
createProcessEquValueBomDet,
createProcessEquValueBomDetList,
updateProcessEquValueBomDet,
getValueList
} from '@/api/extend/processEquValueBom';
@ -74,7 +74,7 @@ export default {
dataForm: {
id: undefined,
bomId: undefined,
paramId:undefined,
paramId:[],
minValue:undefined,
maxValue: undefined,
defaultValue: undefined,
@ -117,6 +117,10 @@ export default {
id: this.dataForm.id
}).then((res) => {
this.dataForm = res.data;
const arr = []
arr.push(res.data.paramId)
this.dataForm.paramId = arr
console.log(this.dataForm.paramId);
// this.dataForm.materialId = materialId;
// this.dataForm.value = value;
});
@ -138,9 +142,19 @@ export default {
if (valid) {
//
if (this.dataForm.id) {
const dataObj = {
paramId: this.dataForm.paramId.toString(),
bomId: this.dataForm.bomId,
minValue: this.dataForm.minValue,
maxValue: this.dataForm.maxValue,
defaultValue: this.dataForm.defaultValue,
standardMinValue: this.dataForm.standardMinValue,
standardMaxValue: this.dataForm.standardMaxValue,
remark: this.dataForm.remark,
id: this.dataForm.id
}
updateProcessEquValueBomDet({
...this.dataForm,
productId: this.productId,
...dataObj,
}).then((response) => {
this.$modal.msgSuccess('修改成功');
this.visible = false;
@ -148,11 +162,20 @@ export default {
});
return;
}
const dataArr = this.dataForm.paramId.map(ele => {
return {
paramId: ele,
bomId: this.dataForm.bomId,
minValue: this.dataForm.minValue,
maxValue: this.dataForm.maxValue,
defaultValue: this.dataForm.defaultValue,
standardMinValue: this.dataForm.standardMinValue,
standardMaxValue: this.dataForm.standardMaxValue,
remark: this.dataForm.remark
}
});
//
createProcessEquValueBomDet({
...this.dataForm,
productId: this.productId,
}).then((response) => {
createProcessEquValueBomDetList(dataArr).then((response) => {
this.$modal.msgSuccess('新增成功');
this.visible = false;
this.$emit('refreshDataList');

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 14:55:51
* @LastEditors: zhp
* @LastEditTime: 2023-11-10 10:23:33
* @LastEditTime: 2023-11-22 14:23:40
* @Description:
-->
<template>
@ -70,7 +70,7 @@ const tableProps = [
},
{
prop: 'yield',
label: '成品率'
label: '合格率'
}
];
@ -115,19 +115,19 @@ export default {
valueField: 'id',
param: 'orderName'
},
// {
// type: 'datePicker',
// label: '',
// dateType: 'daterange',
// format: 'yyyy-MM-dd',
// valueFormat: "yyyy-MM-dd",
// rangeSeparator: '-',
// startPlaceholder: '',
// endPlaceholder: '',
// param: 'timeVal',
// defaultSelect: [],
// width: 250
// },
{
type: 'datePicker',
label: '工单开始时间',
dateType: 'daterange',
format: 'yyyy-MM-dd',
valueFormat: "yyyy-MM-dd",
rangeSeparator: '-',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
param: 'timeVal',
defaultSelect: [],
width: 250
},
{
type: 'button',
btnName: '搜索',
@ -238,13 +238,13 @@ export default {
if (val.btnName === 'search') {
this.listQuery.orderName = val.orderName ? val.orderName :undefined
// this.queryParams.status = val.status
// if (val.timeVal && val.timeVal.length != 0 ) {
// this.listQuery.startTime = val.timeVal[0] + ' 00:00:00'
// this.listQuery.endTime = val.timeVal[1] + ' 23:59:59'
// } else {
// this.listQuery.startTime = undefined
// this.listQuery.endTime = undefined
// }
if (val.timeVal && val.timeVal.length != 0 ) {
this.listQuery.startTime = val.timeVal[0] + ' 00:00:00'
this.listQuery.endTime = val.timeVal[1] + ' 23:59:59'
} else {
this.listQuery.startTime = undefined
this.listQuery.endTime = undefined
}
this.getList()
} else {
// this.handleExport()

View File

@ -156,7 +156,7 @@ export default {
}
})
} else {
createGroupClasses({ ...obj }).then((res) => {
createGroupClasses({ ...this.form }).then((res) => {
if (res.code === 0) {
this.$modal.msgSuccess("操作成功");
this.$emit('successSubmit')

View File

@ -1,6 +1,6 @@
<template>
<div>
<el-drawer :title="title" :visible.sync="visible" size="70%" @close='closeD'>
<el-drawer :title="title" :visible.sync="visible" size="70%" @close='closeD' :show-close='false'>
<div class="box">
<el-row class="topBox">
<el-col :span="6">
@ -59,6 +59,7 @@
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
width='40%'
>
<worker-team-add ref="workerTeamAdd" @successSubmit="successSubmit" />
</base-dialog>

View File

@ -38,6 +38,7 @@
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
width='40%'
>
<group-team-add ref="groupList" @successSubmit="successSubmit" />
</base-dialog>
@ -50,9 +51,9 @@
import { getGroupTeamPage, deleteGroupTeam, updateGroupTeam } from "@/api/base/groupTeam";
import { parseTime } from '@/utils/ruoyi'
import GroupTeamAdd from './components/groupTeamAdd'
import StatusBtn from './components/statusBtn.vue'
import WorkerOperate from './components/workerOperate.vue'
import WorkerEdit from './components/workerEdit.vue';
import StatusBtn from './components/statusBtn'
import WorkerOperate from './components/workerOperate'
import WorkerEdit from './components/workerEdit'
const tableProps = [
{
prop: 'createTime',

View File

@ -1,7 +1,7 @@
<template>
<el-form ref="addWorkOrder" :rules="rules" label-width="130px" :model="form">
<el-row>
<el-col :span='12'>
<el-form ref="addWorkOrder" :rules="rules" label-width="130px" :model="form" label-position='top'>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="工单名称" prop="name" v-if='!isBind'>
<el-input v-model="form.name"></el-input>
</el-form-item>
@ -16,14 +16,12 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="工单编码" prop="code">
<el-input v-model="form.code" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="产品名称" prop="planProductId">
<el-select v-model="form.planProductId" placeholder="请选择" disabled style="width: 100%;">
<el-option
@ -37,7 +35,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="计划开始时间">
<el-date-picker
v-model="planStartTime"
@ -50,8 +48,8 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="计划完成时间">
<el-date-picker
v-model="planFinishTime"
@ -63,19 +61,17 @@
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="计划投入数量" prop="planAssignQuantity">
<el-input-number v-model="form.planAssignQuantity" :min="0" :max="9999999999999" :disabled="isBind" style="width: 100%;"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="计划生产数量" prop="planQuantity">
<el-input-number v-model="form.planQuantity" :min="0" :max="9999999999999" :disabled="isBind" style="width: 100%;"></el-input-number>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="关联工艺" prop="processFlowId">
<el-select v-model="form.processFlowId" placeholder="请选择" disabled style="width: 100%;">
<el-option
@ -88,16 +84,16 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="物料计算方式" prop="materialMethod">
<el-radio-group v-model="form.materialMethod" disabled>
<el-radio :label="1">产品基础BOM</el-radio>
<el-radio :label="2">工艺扩展BOM</el-radio>
</el-radio-group>
<el-select v-model="form.materialMethod" placeholder="请选择" style="width: 100%;" disabled>
<el-option label="产品基础BOM" :value="1"></el-option>
<el-option label="工艺扩展BOM" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="优先级" prop="priority">
<el-select v-model="form.priority" placeholder="请选择" style="width: 100%;" :disabled="isBind">
<el-option
@ -109,9 +105,7 @@
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="工单类型" prop="type">
<el-select v-model="form.type" placeholder="请选择" style="width: 100%;" :disabled="isBind">
<el-option
@ -123,7 +117,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="关联产线" prop="productLineId">
<el-select v-model="form.productLineId" placeholder="请选择" multiple style="width: 100%;" :disabled="isBind">
<el-option
@ -136,15 +130,13 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="负责人" prop="workers">
<el-input v-model="form.workers" :disabled="isBind"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="计划分配订单量" prop="planAssignmentQuantity">
<el-input-number v-model="form.planAssignmentQuantity" :min="0" :max="9999999999999" style="width: 100%;"></el-input-number>
</el-form-item>

View File

@ -1,24 +1,22 @@
<template>
<el-form ref="orderAddForm" :rules="rules" label-width="130px" :model="form">
<el-row>
<el-col :span='12'>
<el-form ref="orderAddForm" :rules="rules" label-width="130px" :model="form" label-position='top'>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="订单名称" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="订单号" prop="code">
<el-input v-model="form.code"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="计划加工数量" prop="planQuantity">
<el-input-number v-model="form.planQuantity" :min="0" :max="9999999999999" style="width: 100%;"></el-input-number>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="产品名称" prop="planProductId">
<el-select v-model="form.planProductId" placeholder="请选择" style="width: 100%;">
<el-option
@ -33,13 +31,13 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="单价" prop="price">
<el-input-number v-model="form.price" :min="0" :max="9999999999999" :precision='2' style="width: 100%;"></el-input-number>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="客户" prop="customerId">
<el-select v-model="form.customerId" placeholder="请选择" style="width: 100%;" clearable>
<el-option
@ -51,9 +49,7 @@
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="优先级" prop="priority">
<el-select v-model="form.priority" placeholder="请选择" style="width: 100%;" clearable>
<el-option
@ -65,7 +61,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="包装规格" prop="packSpec">
<el-select v-model="form.packSpec" placeholder="请选择" style="width: 100%;" clearable>
<el-option
@ -78,13 +74,13 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="负责人" prop="workers">
<el-input v-model="form.workers"></el-input>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="关联工艺" prop="processFlowId">
<el-select v-model="form.processFlowId" placeholder="请选择" style="width: 100%;" clearable @change="processFlowIdChange">
<el-option
@ -96,17 +92,15 @@
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="物料计算方式" prop="materialMethod">
<el-radio-group v-model="form.materialMethod" @change='materialMethodChange'>
<el-radio :label="1">产品基础BOM</el-radio>
<el-radio :label="2">工艺扩展BOM</el-radio>
</el-radio-group>
<el-select v-model="form.materialMethod" placeholder="请选择" style="width: 100%;" @change='materialMethodChange'>
<el-option label="产品基础BOM" :value="1"></el-option>
<el-option label="工艺扩展BOM" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-col :span='6'>
<el-form-item label="订单计划开始时间" prop="planStartTime">
<el-date-picker
v-model="form.planStartTime"
@ -119,8 +113,8 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="订单计划完成时间" prop="planFinishTime">
<el-date-picker
v-model="form.planFinishTime"
@ -138,20 +132,19 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<!-- <el-row>
<el-col :span='24'>
<el-form-item label="描述信息" prop="description">
<el-input v-model="form.description"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-row> -->
</el-form>
</template>
<script>
import { getOrderCode, getOrderById, getProcessFlowList, orderUpdate, orderCreate } from '@/api/base/orderManage'
import { getProductAll } from '@/api/base/product'
import { getCustomerList } from '@/api/base/customer'
import moment from 'moment'
export default {
name: 'OrderAdd',
data() {
@ -170,12 +163,13 @@ export default {
processFlowId: '',
materialMethod: 1,
remark: '',
description: '',
// description: '',
planStartTime: '',
planFinishTime: ''
},
rules: {
name: [{ required: true, message: "订单名称不能为空", trigger: "blur" }],
code: [{ required: true, message: "订单号不能为空", trigger: "blur" }],
planQuantity: [{ required: true, message: "计划加工数量不能为空", trigger: "blur" }],
planProductId: [{ required: true, message: "产品名称不能为空", trigger: "change" }]
},
@ -207,7 +201,7 @@ export default {
this.form.materialMethod = res.data.materialMethod
this.form.planFinishTime = res.data.planFinishTime ? res.data.planFinishTime : null
this.form.remark = res.data.remark
this.form.description = res.data.description
// this.form.description = res.data.description
}
})
} else {

View File

@ -36,7 +36,7 @@
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
width='70%'
width='60%'
>
<order-add ref="orderAdd" @successSubmit="successSubmit" />
</base-dialog>
@ -120,7 +120,8 @@ const tableProps = [
},
{
prop: 'price',
label: '单价(元)'
label: '单价(元)',
align: 'right'
},
{
prop: 'workOrderNum',

View File

@ -5,7 +5,7 @@
<span class="blueTitle"></span>
<span>订单编码: {{orderMsg.code}}</span>
</div>
<el-button type="primary" plain size="small" style="float: right;" @click="returnOrderManage">返回</el-button>
<el-button type="primary" plain size="small" style="float: right;" @click="returnOrderManage"><svg-icon icon-class="return"/> 返回</el-button>
<div style="padding-left: 14px;">
<el-row>
<el-col :span='3'>
@ -259,7 +259,8 @@ export default {
let arr = res2.data
arr.map(item => {
if (item) {
item.num = item.num * this.orderMsg.remainingQuantity
let a = item.num * this.orderMsg.remainingQuantity
item.num = !isNaN(parseFloat(a)) && isFinite(a) ? a : ''
}
})
this.list2 = arr

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 13:52:10
* @LastEditors: zwq
* @LastEditTime: 2023-11-20 15:54:28
* @LastEditTime: 2023-11-23 15:27:55
* @Description:
-->
<template>
@ -12,7 +12,8 @@
ref="dataForm"
v-if="visible"
@keyup.enter.native="dataFormSubmit()"
label-width="100px">
label-width="100px"
label-position="top">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="物品名称" prop="name">
@ -60,6 +61,7 @@
:min="0"
v-model="dataForm.dailyUse"
clearable
style="width: 100%;"
placeholder="请输入单日消耗量" />
</el-form-item>
</el-col>
@ -69,6 +71,7 @@
:min="0"
v-model="dataForm.allowTime"
clearable
style="width: 90%;"
placeholder="请输入允许留存时间" /> ()
</el-form-item>
</el-col>

View File

@ -75,6 +75,7 @@ const tableProps = [
{
prop: 'allowTime',
label: '允许留存时长(天)',
width: 150
},
{
prop: 'dailyUse',
@ -127,7 +128,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},

View File

@ -14,13 +14,6 @@
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:table-data="tableData">
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
:width="100"
label="库位详情"
:method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination
:limit.sync="listQuery.pageSize"
@ -76,7 +69,7 @@ const tableProps = [
prop: 'operateTime',
label: '操作时间',
filter: parseTime,
minWidth: 150,
minWidth: 100,
},
{
prop: 'operator',
@ -96,14 +89,6 @@ export default {
},
tableData: [],
tableProps,
tableBtn: [
this.$auth.hasPermi(`end-material:warehouse-realtime-location-his:query`)
? {
type: 'info',
btnName: '详情',
}
: undefined,
].filter((v) => v),
drawerVisible: false,
formConfig: [
{
@ -143,7 +128,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2023-11-03 16:20:19
* @LastEditTime: 2023-11-23 16:09:20
* @Description:
-->
<template>
@ -11,7 +11,10 @@
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:height="300"
:table-data="tableData" />
:table-data="tableData"
v-if="tableData.length" />
<!-- 没有数据 -->
<div class="no-data-bg" v-else></div>
</template>
<script>
@ -22,37 +25,31 @@ const tableProps = [
{
prop: 'name',
label: '物品名称',
align: 'center',
},
{
prop: 'code',
label: '物品编码',
align: 'center',
},
{
prop: 'spec',
label: '物品规格',
align: 'center',
},
{
prop: 'batchCode',
label: '物品批次',
align: 'center',
},
{
prop: 'num',
label: '数量',
align: 'center',
},
{
prop: 'allowTime',
label: '允许留存时长(天)',
align: 'center',
width: 150
},
{
prop: 'remark',
label: '备注',
align: 'center',
},
];
export default {

View File

@ -92,7 +92,7 @@ const tableProps = [
prop: 'createTime',
label: '操作时间',
filter: parseTime,
minWidth: 150,
minWidth: 100,
},
{
prop: 'creator',
@ -115,7 +115,7 @@ export default {
tableBtn: [
this.$auth.hasPermi(`end-material:warehouse-location-his:query`)
? {
type: 'info',
type: 'detail',
btnName: '详情',
}
: undefined,
@ -159,7 +159,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},
@ -205,7 +205,7 @@ export default {
}
},
otherMethods(val) {
if (val.type === 'info') {
if (val.type === 'detail') {
this.addOrUpdateVisible = true;
this.addOrEditTitle = val.data.name + ' -产品信息';
this.$nextTick(() => {

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 13:52:10
* @LastEditors: zwq
* @LastEditTime: 2023-11-20 15:14:18
* @LastEditTime: 2023-11-23 15:54:25
* @Description:
-->
<template>
@ -68,6 +68,7 @@
v-model="dataForm.goodsBatch"
filterable
clearable
style="width:100%"
placeholder="请选择物品名称">
<el-option
v-for="(item, index) in Batch"
@ -83,6 +84,7 @@
v-model="dataForm.numDet"
clearable
:min="0"
style="width:100%"
placeholder="请输入数量" />
</el-form-item>
</el-col>

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-11-03 16:37:06
* @LastEditors: zwq
* @LastEditTime: 2023-11-04 16:33:02
* @LastEditTime: 2023-11-23 15:54:31
* @Description:
-->
<template>
@ -67,7 +67,7 @@
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
width="50%">
width="40%">
<add-or-update
ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update>
@ -131,15 +131,18 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},
{
type: 'separate',
},
{
type: this.$auth.hasPermi('end-material:warehouse-realtime:create') ? 'button' : '',
btnName: '入库',
name: 'add',
color: 'success',
color: 'primary',
plain: true,
},
],

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2023-11-03 14:51:33
* @LastEditTime: 2023-11-23 16:08:09
* @Description:
-->
<template>
@ -11,7 +11,10 @@
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:height="300"
:table-data="tableData" />
:table-data="tableData"
v-if="tableData.length" />
<!-- 没有数据 -->
<div class="no-data-bg" v-else></div>
</template>
<script>
@ -22,48 +25,41 @@ const tableProps = [
{
prop: 'name',
label: '物品名称',
align: 'center',
},
{
prop: 'code',
label: '物品编码',
align: 'center',
},
{
prop: 'spec',
label: '物品规格',
align: 'center',
},
{
prop: 'goodsBatch',
label: '物品批次',
align: 'center',
},
{
prop: 'num',
label: '数量',
align: 'center',
},
{
prop: 'allowTime',
label: '允许留存时长(天)',
align: 'center',
width: 150
},
{
prop: 'inTime',
label: '入库时间',
align: 'center',
filter: parseTime,
},
{
prop: 'leftTime',
label: '剩余留存时长(天)',
align: 'center',
width: 150
},
{
prop: 'remark',
label: '备注',
align: 'center',
},
];
export default {

View File

@ -1,7 +1,7 @@
<template>
<el-dialog
:visible.sync="visible"
:width="'35%'"
:width="'30%'"
:append-to-body="true"
:close-on-click-modal="false"
class="dialog">
@ -22,7 +22,7 @@
<el-form-item label="产品" prop="productInfo">
<el-select
v-model="dataForm.productInfo"
style="width: 100%"
style="width: 60%"
filterable
value-key="id"
placeholder="请选择产品">
@ -79,7 +79,7 @@ export default {
//
dataFormSubmit() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
if (this.dataForm.productInfo) {
this.dataForm.productInfo.goodsId = this.dataForm.productInfo.id
this.dataForm.productInfo.remark = ''
//
@ -91,6 +91,8 @@ export default {
//
this.visible = false;
this.$emit('refreshDataList', this.dataForm);
} else {
this.$modal.msgWarning('请选择产品');
}
});
},

View File

@ -20,9 +20,7 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="库位名称" prop="name">
<el-input
v-model="dataForm.name"
disabled />
<el-input v-model="dataForm.name" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
@ -47,15 +45,20 @@
</small-title>
<div class="attr-list">
<div style="position: absolute; top: -40px; right: 15px">
<el-button @click="addNew" type="text">
<i class="el-icon-plus"></i>
新增
</el-button>
</div>
<base-table
:table-props="tableProps"
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:add-button-show="addButtonShow"
@emitButtonClick="addNew"
@emitFun="inputChange"
:height="400"
:table-data="productAttributeList">
:table-data="productAttributeList"
v-if="productAttributeList.length">
<method-btn
slot="handleBtn"
:width="70"
@ -63,6 +66,8 @@
:method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<!-- 没有数据 -->
<div class="no-data-bg" v-else></div>
</div>
</div>
</div>
@ -85,8 +90,10 @@
import productAttrAdd from './attr-add';
import inputArea from '../../mixins/inputArea';
import SmallTitle from './SmallTitle';
import { inWarehouseRealtimeLocation,
getWarehouseRealtimeLocation } from '@/api/warehouse/warehouseRealtimeLocation';
import {
inWarehouseRealtimeLocation,
getWarehouseRealtimeLocation,
} from '@/api/warehouse/warehouseRealtimeLocation';
const tableBtn = [
{
@ -99,36 +106,30 @@ const tableProps = [
{
prop: 'name',
label: '物品名称',
align: 'center',
},
{
prop: 'code',
label: '物品编码',
align: 'center',
},
{
prop: 'spec',
label: '物品规格',
align: 'center',
},
{
prop: 'goodsBatch',
label: '物品批次',
align: 'center',
subcomponent: inputArea,
width: 100,
},
{
prop: 'num',
label: '数量',
align: 'center',
subcomponent: inputArea,
width: 100,
},
{
prop: 'remark',
label: '备注',
align: 'center',
subcomponent: inputArea,
width: 100,
},
@ -143,7 +144,6 @@ export default {
tableBtn,
tableProps,
productAttributeList: [],
addButtonShow: '新增',
operator: '',
dataForm: {
id: null,
@ -171,7 +171,7 @@ export default {
this.productAttributeList.splice(0);
},
init(val, nickname) {
this.operator = nickname
this.operator = nickname;
this.dataForm.id = val.id;
this.dataForm.name = val.name;
this.dataForm.palletCode = val.palletCode;
@ -213,12 +213,8 @@ export default {
handleClick(raw) {
if (raw.type === 'delete') {
this.$confirm(
`确定对${
raw.data.name
? '[名称=' + raw.data.name + ']'
: '[序号=' + raw.data._pageIndex + ']'
}进行删除操作?`,
'提示',
`是否确认删除名称为"${raw.data.name}"的数据项?`,
'系统提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
@ -242,8 +238,8 @@ export default {
realtimeLocationId: this.dataForm.id,
palletCode: this.dataForm.palletCode,
operator: this.operator,
goodsInfos: this.productAttributeList
}
goodsInfos: this.productAttributeList,
};
this.$refs['dataForm'].validate((valid) => {
if (valid) {
//
@ -313,5 +309,6 @@ export default {
.drawer >>> .el-form,
.drawer >>> .attr-list {
padding: 0 16px;
position: relative;
}
</style>

View File

@ -100,7 +100,7 @@ const tableProps = [
prop: 'inTime',
label: '入库时间',
filter: parseTime,
minWidth: 150,
minWidth: 100,
},
{
prop: 'remark',
@ -125,12 +125,6 @@ export default {
tableData: [],
tableProps,
tableBtn: [
this.$auth.hasPermi(`end-material:warehouse-realtime-location:query`)
? {
type: 'info',
btnName: '详情',
}
: undefined,
this.$auth.hasPermi(`end-material:warehouse-realtime-location:query`)
? {
type: 'out',
@ -143,6 +137,12 @@ export default {
btnName: '入库',
}
: undefined,
this.$auth.hasPermi(`end-material:warehouse-realtime-location:query`)
? {
type: 'detail',
btnName: '详情',
}
: undefined,
].filter((v) => v),
drawerVisible: false,
formConfig: [
@ -183,7 +183,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},
@ -262,7 +262,7 @@ export default {
this.$nextTick(() => {
this.$refs.drawerRef.init(val.data, this.nickname);
});
} else if (val.type === 'info') {
} else if (val.type === 'detail') {
this.addOrUpdateVisible = true;
this.addOrEditTitle = val.data.name + ' -产品信息';
this.$nextTick(() => {

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2022-08-24 11:19:43
* @LastEditors: zwq
* @LastEditTime: 2023-11-14 15:59:53
* @LastEditTime: 2023-11-21 10:37:05
* @Description:
*/
export default {
@ -104,7 +104,7 @@ export default {
},
// 删除
deleteHandle(id, name, index) {
this.$confirm(`确定对${name ? '[名称=' + name + ']' : '[序号=' + index + ']'}进行删除操作?`, "提示", {
this.$confirm(`是否确认删除${name ? '名称为"' + name + '"' : '序号为"' + index + '"'}的数据项?`, "系统提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 13:52:10
* @LastEditors: zwq
* @LastEditTime: 2023-11-20 15:54:39
* @LastEditTime: 2023-11-23 15:27:47
* @Description:
-->
<template>
@ -12,7 +12,8 @@
ref="dataForm"
v-if="visible"
@keyup.enter.native="dataFormSubmit()"
label-width="100px">
label-width="100px"
label-position="top">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="物品名称" prop="name">
@ -60,6 +61,7 @@
:min="0"
v-model="dataForm.dailyUse"
clearable
style="width: 100%;"
placeholder="请输入单日消耗量" />
</el-form-item>
</el-col>
@ -69,6 +71,7 @@
:min="0"
v-model="dataForm.allowTime"
clearable
style="width: 90%;"
placeholder="请输入允许留存时间" /> ()
</el-form-item>
</el-col>

View File

@ -75,6 +75,7 @@ const tableProps = [
{
prop: 'allowTime',
label: '允许留存时长(天)',
width: 150
},
{
prop: 'dailyUse',
@ -127,7 +128,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},

View File

@ -14,13 +14,6 @@
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:table-data="tableData">
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
:width="100"
label="库位详情"
:method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination
:limit.sync="listQuery.pageSize"
@ -76,7 +69,7 @@ const tableProps = [
prop: 'operateTime',
label: '操作时间',
filter: parseTime,
minWidth: 150,
minWidth: 100,
},
{
prop: 'operator',
@ -96,14 +89,6 @@ export default {
},
tableData: [],
tableProps,
tableBtn: [
this.$auth.hasPermi(`out-material:warehouse-realtime-location-his:query`)
? {
type: 'info',
btnName: '详情',
}
: undefined,
].filter((v) => v),
drawerVisible: false,
formConfig: [
{
@ -143,7 +128,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2023-11-03 16:20:19
* @LastEditTime: 2023-11-23 16:09:04
* @Description:
-->
<template>
@ -11,7 +11,10 @@
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:height="300"
:table-data="tableData" />
:table-data="tableData"
v-if="tableData.length" />
<!-- 没有数据 -->
<div class="no-data-bg" v-else></div>
</template>
<script>
@ -22,37 +25,31 @@ const tableProps = [
{
prop: 'name',
label: '物品名称',
align: 'center',
},
{
prop: 'code',
label: '物品编码',
align: 'center',
},
{
prop: 'spec',
label: '物品规格',
align: 'center',
},
{
prop: 'batchCode',
label: '物品批次',
align: 'center',
},
{
prop: 'num',
label: '数量',
align: 'center',
},
{
prop: 'allowTime',
label: '允许留存时长(天)',
align: 'center',
width: 150
},
{
prop: 'remark',
label: '备注',
align: 'center',
},
];
export default {

View File

@ -92,7 +92,7 @@ const tableProps = [
prop: 'createTime',
label: '操作时间',
filter: parseTime,
minWidth: 150,
minWidth: 100,
},
{
prop: 'creator',
@ -115,7 +115,7 @@ export default {
tableBtn: [
this.$auth.hasPermi(`out-material:warehouse-location-his:query`)
? {
type: 'info',
type: 'detail',
btnName: '详情',
}
: undefined,
@ -159,7 +159,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},
@ -205,7 +205,7 @@ export default {
}
},
otherMethods(val) {
if (val.type === 'info') {
if (val.type === 'detail') {
this.addOrUpdateVisible = true;
this.addOrEditTitle = val.data.name + ' -产品信息';
this.$nextTick(() => {

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 13:52:10
* @LastEditors: zwq
* @LastEditTime: 2023-11-20 15:14:00
* @LastEditTime: 2023-11-23 15:54:07
* @Description:
-->
<template>
@ -68,6 +68,7 @@
v-model="dataForm.goodsBatch"
filterable
clearable
style="width:100%"
placeholder="请选择物品名称">
<el-option
v-for="(item, index) in Batch"
@ -83,6 +84,7 @@
v-model="dataForm.numDet"
clearable
:min="0"
style="width:100%"
placeholder="请输入数量" />
</el-form-item>
</el-col>

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-11-03 16:37:06
* @LastEditors: zwq
* @LastEditTime: 2023-11-04 16:14:09
* @LastEditTime: 2023-11-23 15:54:14
* @Description:
-->
<template>
@ -67,7 +67,7 @@
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
width="50%">
width="40%">
<add-or-update
ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update>
@ -131,15 +131,18 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},
{
type: 'separate',
},
{
type: this.$auth.hasPermi('out-material:warehouse-realtime:create') ? 'button' : '',
btnName: '入库',
name: 'add',
color: 'success',
color: 'primary',
plain: true,
},
],

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2023-11-03 14:51:33
* @LastEditTime: 2023-11-23 16:07:43
* @Description:
-->
<template>
@ -11,7 +11,10 @@
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:height="300"
:table-data="tableData" />
:table-data="tableData"
v-if="tableData.length" />
<!-- 没有数据 -->
<div class="no-data-bg" v-else></div>
</template>
<script>
@ -22,48 +25,41 @@ const tableProps = [
{
prop: 'name',
label: '物品名称',
align: 'center',
},
{
prop: 'code',
label: '物品编码',
align: 'center',
},
{
prop: 'spec',
label: '物品规格',
align: 'center',
},
{
prop: 'goodsBatch',
label: '物品批次',
align: 'center',
},
{
prop: 'num',
label: '数量',
align: 'center',
},
{
prop: 'allowTime',
label: '允许留存时长(天)',
align: 'center',
width: 150,
},
{
prop: 'inTime',
label: '入库时间',
align: 'center',
filter: parseTime,
},
{
prop: 'leftTime',
label: '剩余留存时长(天)',
align: 'center',
width: 150,
},
{
prop: 'remark',
label: '备注',
align: 'center',
},
];
export default {

View File

@ -1,15 +1,13 @@
<template>
<el-dialog
:visible.sync="visible"
:width="'35%'"
:width="'30%'"
:append-to-body="true"
:close-on-click-modal="false"
class="dialog">
<template #title>
<slot name="title">
<div class="titleStyle">
新增产品
</div>
<div class="titleStyle">新增产品</div>
</slot>
</template>
@ -22,7 +20,7 @@
<el-form-item label="产品" prop="productInfo">
<el-select
v-model="dataForm.productInfo"
style="width: 100%"
style="width: 60%"
filterable
value-key="id"
placeholder="请选择产品">
@ -44,10 +42,7 @@
</template>
<script>
import {
getListByType
} from "@/api/warehouse/warehouseGoods";
import { getListByType } from '@/api/warehouse/warehouseGoods';
export default {
data() {
@ -59,7 +54,9 @@ export default {
},
productArr: [],
dataRule: {
productId: [{ required: true, message: '产品不能为空', trigger: 'blur' }],
productId: [
{ required: true, message: '产品不能为空', trigger: 'blur' },
],
},
};
},
@ -79,9 +76,9 @@ export default {
//
dataFormSubmit() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.dataForm.productInfo.goodsId = this.dataForm.productInfo.id
this.dataForm.productInfo.remark = ''
if (this.dataForm.productInfo) {
this.dataForm.productInfo.goodsId = this.dataForm.productInfo.id;
this.dataForm.productInfo.remark = '';
//
if (this.dataForm.index >= 0) {
this.visible = false;
@ -91,6 +88,8 @@ export default {
//
this.visible = false;
this.$emit('refreshDataList', this.dataForm);
} else {
this.$modal.msgWarning('请选择产品');
}
});
},

View File

@ -20,9 +20,7 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="库位名称" prop="name">
<el-input
v-model="dataForm.name"
disabled />
<el-input v-model="dataForm.name" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
@ -47,15 +45,20 @@
</small-title>
<div class="attr-list">
<div style="position: absolute; top: -40px; right: 15px">
<el-button @click="addNew" type="text">
<i class="el-icon-plus"></i>
新增
</el-button>
</div>
<base-table
:table-props="tableProps"
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:add-button-show="addButtonShow"
@emitButtonClick="addNew"
@emitFun="inputChange"
:height="400"
:table-data="productAttributeList">
:table-data="productAttributeList"
v-if="productAttributeList.length">
<method-btn
slot="handleBtn"
:width="70"
@ -63,6 +66,8 @@
:method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<!-- 没有数据 -->
<div class="no-data-bg" v-else></div>
</div>
</div>
</div>
@ -85,8 +90,10 @@
import productAttrAdd from './attr-add';
import inputArea from '../../mixins/inputArea';
import SmallTitle from './SmallTitle';
import { inWarehouseRealtimeLocation,
getWarehouseRealtimeLocation } from '@/api/warehouse/warehouseRealtimeLocation';
import {
inWarehouseRealtimeLocation,
getWarehouseRealtimeLocation,
} from '@/api/warehouse/warehouseRealtimeLocation';
const tableBtn = [
{
@ -99,36 +106,30 @@ const tableProps = [
{
prop: 'name',
label: '物品名称',
align: 'center',
},
{
prop: 'code',
label: '物品编码',
align: 'center',
},
{
prop: 'spec',
label: '物品规格',
align: 'center',
},
{
prop: 'goodsBatch',
label: '物品批次',
align: 'center',
subcomponent: inputArea,
width: 100,
},
{
prop: 'num',
label: '数量',
align: 'center',
subcomponent: inputArea,
width: 100,
},
{
prop: 'remark',
label: '备注',
align: 'center',
subcomponent: inputArea,
width: 100,
},
@ -143,7 +144,6 @@ export default {
tableBtn,
tableProps,
productAttributeList: [],
addButtonShow: '新增',
operator: '',
dataForm: {
id: null,
@ -171,7 +171,7 @@ export default {
this.productAttributeList.splice(0);
},
init(val, nickname) {
this.operator = nickname
this.operator = nickname;
this.dataForm.id = val.id;
this.dataForm.name = val.name;
this.dataForm.palletCode = val.palletCode;
@ -213,12 +213,8 @@ export default {
handleClick(raw) {
if (raw.type === 'delete') {
this.$confirm(
`确定对${
raw.data.name
? '[名称=' + raw.data.name + ']'
: '[序号=' + raw.data._pageIndex + ']'
}进行删除操作?`,
'提示',
`是否确认删除名称为"${raw.data.name}"的数据项?`,
'系统提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
@ -242,8 +238,8 @@ export default {
realtimeLocationId: this.dataForm.id,
palletCode: this.dataForm.palletCode,
operator: this.operator,
goodsInfos: this.productAttributeList
}
goodsInfos: this.productAttributeList,
};
this.$refs['dataForm'].validate((valid) => {
if (valid) {
//
@ -313,5 +309,6 @@ export default {
.drawer >>> .el-form,
.drawer >>> .attr-list {
padding: 0 16px;
position: relative;
}
</style>

View File

@ -100,7 +100,7 @@ const tableProps = [
prop: 'inTime',
label: '入库时间',
filter: parseTime,
minWidth: 150,
minWidth: 100,
},
{
prop: 'remark',
@ -125,12 +125,6 @@ export default {
tableData: [],
tableProps,
tableBtn: [
this.$auth.hasPermi(`out-material:warehouse-realtime-location:query`)
? {
type: 'info',
btnName: '详情',
}
: undefined,
this.$auth.hasPermi(`out-material:warehouse-realtime-location:query`)
? {
type: 'out',
@ -143,6 +137,12 @@ export default {
btnName: '入库',
}
: undefined,
this.$auth.hasPermi(`out-material:warehouse-realtime-location:query`)
? {
type: 'detail',
btnName: '详情',
}
: undefined,
].filter((v) => v),
drawerVisible: false,
formConfig: [
@ -183,7 +183,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},
@ -262,7 +262,7 @@ export default {
this.$nextTick(() => {
this.$refs.drawerRef.init(val.data, this.nickname);
});
} else if (val.type === 'info') {
} else if (val.type === 'detail') {
this.addOrUpdateVisible = true;
this.addOrEditTitle = val.data.name + ' -产品信息';
this.$nextTick(() => {

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 13:52:10
* @LastEditors: zwq
* @LastEditTime: 2023-11-20 15:54:49
* @LastEditTime: 2023-11-23 15:27:37
* @Description:
-->
<template>
@ -12,7 +12,8 @@
ref="dataForm"
v-if="visible"
@keyup.enter.native="dataFormSubmit()"
label-width="100px">
label-width="100px"
label-position="top">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="物品名称" prop="name">
@ -60,6 +61,7 @@
:min="0"
v-model="dataForm.dailyUse"
clearable
style="width: 100%;"
placeholder="请输入单日消耗量" />
</el-form-item>
</el-col>
@ -69,6 +71,7 @@
:min="0"
v-model="dataForm.allowTime"
clearable
style="width: 90%;"
placeholder="请输入允许留存时间" /> ()
</el-form-item>
</el-col>

View File

@ -75,6 +75,7 @@ const tableProps = [
{
prop: 'allowTime',
label: '允许留存时长(天)',
width: 150
},
{
prop: 'dailyUse',
@ -127,7 +128,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},

View File

@ -14,13 +14,6 @@
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:table-data="tableData">
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
:width="100"
label="库位详情"
:method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination
:limit.sync="listQuery.pageSize"
@ -76,7 +69,7 @@ const tableProps = [
prop: 'operateTime',
label: '操作时间',
filter: parseTime,
minWidth: 150,
minWidth: 100,
},
{
prop: 'operator',
@ -96,14 +89,6 @@ export default {
},
tableData: [],
tableProps,
tableBtn: [
this.$auth.hasPermi(`pack-material:warehouse-realtime-location-his:query`)
? {
type: 'info',
btnName: '详情',
}
: undefined,
].filter((v) => v),
drawerVisible: false,
formConfig: [
{
@ -143,7 +128,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2023-11-03 16:20:19
* @LastEditTime: 2023-11-23 16:09:30
* @Description:
-->
<template>
@ -11,7 +11,10 @@
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:height="300"
:table-data="tableData" />
:table-data="tableData"
v-if="tableData.length" />
<!-- 没有数据 -->
<div class="no-data-bg" v-else></div>
</template>
<script>
@ -22,37 +25,31 @@ const tableProps = [
{
prop: 'name',
label: '物品名称',
align: 'center',
},
{
prop: 'code',
label: '物品编码',
align: 'center',
},
{
prop: 'spec',
label: '物品规格',
align: 'center',
},
{
prop: 'batchCode',
label: '物品批次',
align: 'center',
},
{
prop: 'num',
label: '数量',
align: 'center',
},
{
prop: 'allowTime',
label: '允许留存时长(天)',
align: 'center',
width: 150
},
{
prop: 'remark',
label: '备注',
align: 'center',
},
];
export default {

View File

@ -92,7 +92,7 @@ const tableProps = [
prop: 'createTime',
label: '操作时间',
filter: parseTime,
minWidth: 150,
minWidth: 100,
},
{
prop: 'creator',
@ -115,7 +115,7 @@ export default {
tableBtn: [
this.$auth.hasPermi(`pack-material:warehouse-location-his:query`)
? {
type: 'info',
type: 'detail',
btnName: '详情',
}
: undefined,
@ -159,7 +159,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},
@ -205,7 +205,7 @@ export default {
}
},
otherMethods(val) {
if (val.type === 'info') {
if (val.type === 'detail') {
this.addOrUpdateVisible = true;
this.addOrEditTitle = val.data.name + ' -产品信息';
this.$nextTick(() => {

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 13:52:10
* @LastEditors: zwq
* @LastEditTime: 2023-11-20 15:13:37
* @LastEditTime: 2023-11-23 15:53:47
* @Description:
-->
<template>
@ -68,6 +68,7 @@
v-model="dataForm.goodsBatch"
filterable
clearable
style="width:100%"
placeholder="请选择物品名称">
<el-option
v-for="(item, index) in Batch"
@ -83,6 +84,7 @@
v-model="dataForm.numDet"
clearable
:min="0"
style="width:100%"
placeholder="请输入数量" />
</el-form-item>
</el-col>

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-11-03 16:37:06
* @LastEditors: zwq
* @LastEditTime: 2023-11-04 16:01:58
* @LastEditTime: 2023-11-23 15:53:54
* @Description:
-->
<template>
@ -67,7 +67,7 @@
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
width="50%">
width="40%">
<add-or-update
ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update>
@ -131,15 +131,18 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},
{
type: 'separate',
},
{
type: this.$auth.hasPermi('pack-material:warehouse-realtime:create') ? 'button' : '',
btnName: '入库',
name: 'add',
color: 'success',
color: 'primary',
plain: true,
},
],

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2023-11-03 14:51:33
* @LastEditTime: 2023-11-23 16:08:22
* @Description:
-->
<template>
@ -11,7 +11,10 @@
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:height="300"
:table-data="tableData" />
:table-data="tableData"
v-if="tableData.length" />
<!-- 没有数据 -->
<div class="no-data-bg" v-else></div>
</template>
<script>
@ -22,48 +25,41 @@ const tableProps = [
{
prop: 'name',
label: '物品名称',
align: 'center',
},
{
prop: 'code',
label: '物品编码',
align: 'center',
},
{
prop: 'spec',
label: '物品规格',
align: 'center',
},
{
prop: 'goodsBatch',
label: '物品批次',
align: 'center',
},
{
prop: 'num',
label: '数量',
align: 'center',
},
{
prop: 'allowTime',
label: '允许留存时长(天)',
align: 'center',
width: 150
},
{
prop: 'inTime',
label: '入库时间',
align: 'center',
filter: parseTime,
},
{
prop: 'leftTime',
label: '剩余留存时长(天)',
align: 'center',
width: 150
},
{
prop: 'remark',
label: '备注',
align: 'center',
},
];
export default {

View File

@ -1,7 +1,7 @@
<template>
<el-dialog
:visible.sync="visible"
:width="'35%'"
:width="'30%'"
:append-to-body="true"
:close-on-click-modal="false"
class="dialog">
@ -22,7 +22,7 @@
<el-form-item label="产品" prop="productInfo">
<el-select
v-model="dataForm.productInfo"
style="width: 100%"
style="width: 60%"
filterable
value-key="id"
placeholder="请选择产品">
@ -59,7 +59,7 @@ export default {
},
productArr: [],
dataRule: {
productId: [{ required: true, message: '产品不能为空', trigger: 'blur' }],
productId: [{ required: true, message: '产品不能为空', trigger: 'change' }],
},
};
},
@ -79,7 +79,7 @@ export default {
//
dataFormSubmit() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
if (this.dataForm.productInfo) {
this.dataForm.productInfo.goodsId = this.dataForm.productInfo.id
this.dataForm.productInfo.remark = ''
//
@ -91,6 +91,8 @@ export default {
//
this.visible = false;
this.$emit('refreshDataList', this.dataForm);
} else {
this.$modal.msgWarning('请选择产品');
}
});
},

View File

@ -20,9 +20,7 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="库位名称" prop="name">
<el-input
v-model="dataForm.name"
disabled />
<el-input v-model="dataForm.name" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
@ -47,15 +45,20 @@
</small-title>
<div class="attr-list">
<div style="position: absolute; top: -40px; right: 15px">
<el-button @click="addNew" type="text">
<i class="el-icon-plus"></i>
新增
</el-button>
</div>
<base-table
:table-props="tableProps"
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:add-button-show="addButtonShow"
@emitButtonClick="addNew"
@emitFun="inputChange"
:height="400"
:table-data="productAttributeList">
:table-data="productAttributeList"
v-if="productAttributeList.length">
<method-btn
slot="handleBtn"
:width="70"
@ -63,6 +66,8 @@
:method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<!-- 没有数据 -->
<div class="no-data-bg" v-else></div>
</div>
</div>
</div>
@ -85,8 +90,10 @@
import productAttrAdd from './attr-add';
import inputArea from '../../mixins/inputArea';
import SmallTitle from './SmallTitle';
import { inWarehouseRealtimeLocation,
getWarehouseRealtimeLocation } from '@/api/warehouse/warehouseRealtimeLocation';
import {
inWarehouseRealtimeLocation,
getWarehouseRealtimeLocation,
} from '@/api/warehouse/warehouseRealtimeLocation';
const tableBtn = [
{
@ -99,36 +106,30 @@ const tableProps = [
{
prop: 'name',
label: '物品名称',
align: 'center',
},
{
prop: 'code',
label: '物品编码',
align: 'center',
},
{
prop: 'spec',
label: '物品规格',
align: 'center',
},
{
prop: 'goodsBatch',
label: '物品批次',
align: 'center',
subcomponent: inputArea,
width: 100,
},
{
prop: 'num',
label: '数量',
align: 'center',
subcomponent: inputArea,
width: 100,
},
{
prop: 'remark',
label: '备注',
align: 'center',
subcomponent: inputArea,
width: 100,
},
@ -143,7 +144,6 @@ export default {
tableBtn,
tableProps,
productAttributeList: [],
addButtonShow: '新增',
operator: '',
dataForm: {
id: null,
@ -171,7 +171,7 @@ export default {
this.productAttributeList.splice(0);
},
init(val, nickname) {
this.operator = nickname
this.operator = nickname;
this.dataForm.id = val.id;
this.dataForm.name = val.name;
this.dataForm.palletCode = val.palletCode;
@ -213,12 +213,8 @@ export default {
handleClick(raw) {
if (raw.type === 'delete') {
this.$confirm(
`确定对${
raw.data.name
? '[名称=' + raw.data.name + ']'
: '[序号=' + raw.data._pageIndex + ']'
}进行删除操作?`,
'提示',
`是否确认删除名称为"${raw.data.name}"的数据项?`,
'系统提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
@ -242,8 +238,8 @@ export default {
realtimeLocationId: this.dataForm.id,
palletCode: this.dataForm.palletCode,
operator: this.operator,
goodsInfos: this.productAttributeList
}
goodsInfos: this.productAttributeList,
};
this.$refs['dataForm'].validate((valid) => {
if (valid) {
//
@ -313,5 +309,6 @@ export default {
.drawer >>> .el-form,
.drawer >>> .attr-list {
padding: 0 16px;
position: relative;
}
</style>

View File

@ -100,7 +100,7 @@ const tableProps = [
prop: 'inTime',
label: '入库时间',
filter: parseTime,
minWidth: 150,
minWidth: 100,
},
{
prop: 'remark',
@ -125,12 +125,6 @@ export default {
tableData: [],
tableProps,
tableBtn: [
this.$auth.hasPermi(`pack-material:warehouse-realtime-location:query`)
? {
type: 'info',
btnName: '详情',
}
: undefined,
this.$auth.hasPermi(`pack-material:warehouse-realtime-location:query`)
? {
type: 'out',
@ -143,6 +137,12 @@ export default {
btnName: '入库',
}
: undefined,
this.$auth.hasPermi(`pack-material:warehouse-realtime-location:query`)
? {
type: 'detail',
btnName: '详情',
}
: undefined,
].filter((v) => v),
drawerVisible: false,
formConfig: [
@ -183,7 +183,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},
@ -262,7 +262,7 @@ export default {
this.$nextTick(() => {
this.$refs.drawerRef.init(val.data, this.nickname);
});
} else if (val.type === 'info') {
} else if (val.type === 'detail') {
this.addOrUpdateVisible = true;
this.addOrEditTitle = val.data.name + ' -产品信息';
this.$nextTick(() => {

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 13:52:10
* @LastEditors: zwq
* @LastEditTime: 2023-11-20 15:54:59
* @LastEditTime: 2023-11-23 15:27:28
* @Description:
-->
<template>
@ -12,7 +12,8 @@
ref="dataForm"
v-if="visible"
@keyup.enter.native="dataFormSubmit()"
label-width="100px">
label-width="100px"
label-position="top">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="物品名称" prop="name">
@ -60,6 +61,7 @@
:min="0"
v-model="dataForm.dailyUse"
clearable
style="width: 100%;"
placeholder="请输入单日消耗量" />
</el-form-item>
</el-col>
@ -69,6 +71,7 @@
:min="0"
v-model="dataForm.allowTime"
clearable
style="width: 90%;"
placeholder="请输入允许留存时间" /> ()
</el-form-item>
</el-col>

View File

@ -75,6 +75,7 @@ const tableProps = [
{
prop: 'allowTime',
label: '允许留存时长(天)',
width: 150
},
{
prop: 'dailyUse',
@ -127,7 +128,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},

View File

@ -14,13 +14,6 @@
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:table-data="tableData">
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
:width="100"
label="库位详情"
:method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination
:limit.sync="listQuery.pageSize"
@ -76,7 +69,7 @@ const tableProps = [
prop: 'operateTime',
label: '操作时间',
filter: parseTime,
minWidth: 150,
minWidth: 100,
},
{
prop: 'operator',
@ -96,14 +89,6 @@ export default {
},
tableData: [],
tableProps,
tableBtn: [
this.$auth.hasPermi(`part-material:warehouse-realtime-location-his:query`)
? {
type: 'info',
btnName: '详情',
}
: undefined,
].filter((v) => v),
drawerVisible: false,
formConfig: [
{
@ -143,7 +128,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2023-11-03 16:20:19
* @LastEditTime: 2023-11-23 16:09:38
* @Description:
-->
<template>
@ -11,7 +11,10 @@
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:height="300"
:table-data="tableData" />
:table-data="tableData"
v-if="tableData.length" />
<!-- 没有数据 -->
<div class="no-data-bg" v-else></div>
</template>
<script>
@ -22,37 +25,31 @@ const tableProps = [
{
prop: 'name',
label: '物品名称',
align: 'center',
},
{
prop: 'code',
label: '物品编码',
align: 'center',
},
{
prop: 'spec',
label: '物品规格',
align: 'center',
},
{
prop: 'batchCode',
label: '物品批次',
align: 'center',
},
{
prop: 'num',
label: '数量',
align: 'center',
},
{
prop: 'allowTime',
label: '允许留存时长(天)',
align: 'center',
width: 150
},
{
prop: 'remark',
label: '备注',
align: 'center',
},
];
export default {

View File

@ -92,7 +92,7 @@ const tableProps = [
prop: 'createTime',
label: '操作时间',
filter: parseTime,
minWidth: 150,
minWidth: 100,
},
{
prop: 'creator',
@ -115,7 +115,7 @@ export default {
tableBtn: [
this.$auth.hasPermi(`part-material:warehouse-location-his:query`)
? {
type: 'info',
type: 'detail',
btnName: '详情',
}
: undefined,
@ -159,7 +159,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},
@ -205,7 +205,7 @@ export default {
}
},
otherMethods(val) {
if (val.type === 'info') {
if (val.type === 'detail') {
this.addOrUpdateVisible = true;
this.addOrEditTitle = val.data.name + ' -产品信息';
this.$nextTick(() => {

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 13:52:10
* @LastEditors: zwq
* @LastEditTime: 2023-11-20 15:12:43
* @LastEditTime: 2023-11-23 15:53:35
* @Description:
-->
<template>
@ -68,6 +68,7 @@
v-model="dataForm.goodsBatch"
filterable
clearable
style="width:100%"
placeholder="请选择物品名称">
<el-option
v-for="(item, index) in Batch"
@ -83,6 +84,7 @@
v-model="dataForm.numDet"
clearable
:min="0"
style="width:100%"
placeholder="请输入数量" />
</el-form-item>
</el-col>

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-11-03 16:37:06
* @LastEditors: zwq
* @LastEditTime: 2023-11-04 16:24:57
* @LastEditTime: 2023-11-23 15:53:28
* @Description:
-->
<template>
@ -67,7 +67,7 @@
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
width="50%">
width="40%">
<add-or-update
ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update>
@ -131,15 +131,18 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},
{
type: 'separate',
},
{
type: this.$auth.hasPermi('part-material:warehouse-realtime:create') ? 'button' : '',
btnName: '入库',
name: 'add',
color: 'success',
color: 'primary',
plain: true,
},
],

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2023-11-03 14:51:33
* @LastEditTime: 2023-11-23 16:08:31
* @Description:
-->
<template>
@ -11,7 +11,10 @@
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:height="300"
:table-data="tableData" />
:table-data="tableData"
v-if="tableData.length" />
<!-- 没有数据 -->
<div class="no-data-bg" v-else></div>
</template>
<script>
@ -22,48 +25,41 @@ const tableProps = [
{
prop: 'name',
label: '物品名称',
align: 'center',
},
{
prop: 'code',
label: '物品编码',
align: 'center',
},
{
prop: 'spec',
label: '物品规格',
align: 'center',
},
{
prop: 'goodsBatch',
label: '物品批次',
align: 'center',
},
{
prop: 'num',
label: '数量',
align: 'center',
},
{
prop: 'allowTime',
label: '允许留存时长(天)',
align: 'center',
width: 150
},
{
prop: 'inTime',
label: '入库时间',
align: 'center',
filter: parseTime,
},
{
prop: 'leftTime',
label: '剩余留存时长(天)',
align: 'center',
width: 150
},
{
prop: 'remark',
label: '备注',
align: 'center',
},
];
export default {

View File

@ -1,7 +1,7 @@
<template>
<el-dialog
:visible.sync="visible"
:width="'35%'"
:width="'30%'"
:append-to-body="true"
:close-on-click-modal="false"
class="dialog">
@ -22,7 +22,7 @@
<el-form-item label="产品" prop="productInfo">
<el-select
v-model="dataForm.productInfo"
style="width: 100%"
style="width: 60%"
filterable
value-key="id"
placeholder="请选择产品">
@ -79,7 +79,7 @@ export default {
//
dataFormSubmit() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
if (this.dataForm.productInfo) {
this.dataForm.productInfo.goodsId = this.dataForm.productInfo.id
this.dataForm.productInfo.remark = ''
//
@ -91,6 +91,8 @@ export default {
//
this.visible = false;
this.$emit('refreshDataList', this.dataForm);
} else {
this.$modal.msgWarning('请选择产品');
}
});
},

View File

@ -20,9 +20,7 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="库位名称" prop="name">
<el-input
v-model="dataForm.name"
disabled />
<el-input v-model="dataForm.name" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
@ -47,15 +45,20 @@
</small-title>
<div class="attr-list">
<div style="position: absolute; top: -40px; right: 15px">
<el-button @click="addNew" type="text">
<i class="el-icon-plus"></i>
新增
</el-button>
</div>
<base-table
:table-props="tableProps"
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:add-button-show="addButtonShow"
@emitButtonClick="addNew"
@emitFun="inputChange"
:height="400"
:table-data="productAttributeList">
:table-data="productAttributeList"
v-if="productAttributeList.length">
<method-btn
slot="handleBtn"
:width="70"
@ -63,6 +66,8 @@
:method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<!-- 没有数据 -->
<div class="no-data-bg" v-else></div>
</div>
</div>
</div>
@ -85,8 +90,10 @@
import productAttrAdd from './attr-add';
import inputArea from '../../mixins/inputArea';
import SmallTitle from './SmallTitle';
import { inWarehouseRealtimeLocation,
getWarehouseRealtimeLocation } from '@/api/warehouse/warehouseRealtimeLocation';
import {
inWarehouseRealtimeLocation,
getWarehouseRealtimeLocation,
} from '@/api/warehouse/warehouseRealtimeLocation';
const tableBtn = [
{
@ -99,36 +106,30 @@ const tableProps = [
{
prop: 'name',
label: '物品名称',
align: 'center',
},
{
prop: 'code',
label: '物品编码',
align: 'center',
},
{
prop: 'spec',
label: '物品规格',
align: 'center',
},
{
prop: 'goodsBatch',
label: '物品批次',
align: 'center',
subcomponent: inputArea,
width: 100,
},
{
prop: 'num',
label: '数量',
align: 'center',
subcomponent: inputArea,
width: 100,
},
{
prop: 'remark',
label: '备注',
align: 'center',
subcomponent: inputArea,
width: 100,
},
@ -143,7 +144,6 @@ export default {
tableBtn,
tableProps,
productAttributeList: [],
addButtonShow: '新增',
operator: '',
dataForm: {
id: null,
@ -171,7 +171,7 @@ export default {
this.productAttributeList.splice(0);
},
init(val, nickname) {
this.operator = nickname
this.operator = nickname;
this.dataForm.id = val.id;
this.dataForm.name = val.name;
this.dataForm.palletCode = val.palletCode;
@ -213,12 +213,8 @@ export default {
handleClick(raw) {
if (raw.type === 'delete') {
this.$confirm(
`确定对${
raw.data.name
? '[名称=' + raw.data.name + ']'
: '[序号=' + raw.data._pageIndex + ']'
}进行删除操作?`,
'提示',
`是否确认删除名称为"${raw.data.name}"的数据项?`,
'系统提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
@ -242,8 +238,8 @@ export default {
realtimeLocationId: this.dataForm.id,
palletCode: this.dataForm.palletCode,
operator: this.operator,
goodsInfos: this.productAttributeList
}
goodsInfos: this.productAttributeList,
};
this.$refs['dataForm'].validate((valid) => {
if (valid) {
//
@ -313,5 +309,6 @@ export default {
.drawer >>> .el-form,
.drawer >>> .attr-list {
padding: 0 16px;
position: relative;
}
</style>

View File

@ -100,7 +100,7 @@ const tableProps = [
prop: 'inTime',
label: '入库时间',
filter: parseTime,
minWidth: 150,
minWidth: 100,
},
{
prop: 'remark',
@ -125,12 +125,6 @@ export default {
tableData: [],
tableProps,
tableBtn: [
this.$auth.hasPermi(`part-material:warehouse-realtime-location:query`)
? {
type: 'info',
btnName: '详情',
}
: undefined,
this.$auth.hasPermi(`part-material:warehouse-realtime-location:query`)
? {
type: 'out',
@ -143,6 +137,12 @@ export default {
btnName: '入库',
}
: undefined,
this.$auth.hasPermi(`part-material:warehouse-realtime-location:query`)
? {
type: 'detail',
btnName: '详情',
}
: undefined,
].filter((v) => v),
drawerVisible: false,
formConfig: [
@ -183,7 +183,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},
@ -262,7 +262,7 @@ export default {
this.$nextTick(() => {
this.$refs.drawerRef.init(val.data, this.nickname);
});
} else if (val.type === 'info') {
} else if (val.type === 'detail') {
this.addOrUpdateVisible = true;
this.addOrEditTitle = val.data.name + ' -产品信息';
this.$nextTick(() => {

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 13:52:10
* @LastEditors: zwq
* @LastEditTime: 2023-11-20 15:54:15
* @LastEditTime: 2023-11-23 15:25:57
* @Description:
-->
<template>
@ -12,7 +12,8 @@
ref="dataForm"
v-if="visible"
@keyup.enter.native="dataFormSubmit()"
label-width="100px">
label-width="100px"
label-position="top">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="物品名称" prop="name">
@ -58,6 +59,7 @@
<el-form-item label="单日消耗量" prop="dailyUse">
<el-input-number
:min="0"
style="width: 100%;"
v-model="dataForm.dailyUse"
clearable
placeholder="请输入单日消耗量" />
@ -67,6 +69,7 @@
<el-form-item label="允许留存时间" prop="allowTime">
<el-input-number
:min="0"
style="width: 90%;"
v-model="dataForm.allowTime"
clearable
placeholder="请输入允许留存时间" /> ()

View File

@ -35,7 +35,7 @@
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
width="50%">
width="40%">
<add-or-update
ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update>
@ -75,6 +75,7 @@ const tableProps = [
{
prop: 'allowTime',
label: '允许留存时长(天)',
width: 150
},
{
prop: 'dailyUse',
@ -127,7 +128,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},

View File

@ -14,13 +14,6 @@
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:table-data="tableData">
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
:width="100"
label="库位详情"
:method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination
:limit.sync="listQuery.pageSize"
@ -76,7 +69,7 @@ const tableProps = [
prop: 'operateTime',
label: '操作时间',
filter: parseTime,
minWidth: 150,
minWidth: 100,
},
{
prop: 'operator',
@ -96,14 +89,6 @@ export default {
},
tableData: [],
tableProps,
tableBtn: [
this.$auth.hasPermi(`raw-material:warehouse-realtime-location-his:query`)
? {
type: 'info',
btnName: '详情',
}
: undefined,
].filter((v) => v),
drawerVisible: false,
formConfig: [
{
@ -143,7 +128,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2023-11-03 16:20:19
* @LastEditTime: 2023-11-23 16:09:47
* @Description:
-->
<template>
@ -11,7 +11,10 @@
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:height="300"
:table-data="tableData" />
:table-data="tableData"
v-if="tableData.length" />
<!-- 没有数据 -->
<div class="no-data-bg" v-else></div>
</template>
<script>
@ -22,37 +25,31 @@ const tableProps = [
{
prop: 'name',
label: '物品名称',
align: 'center',
},
{
prop: 'code',
label: '物品编码',
align: 'center',
},
{
prop: 'spec',
label: '物品规格',
align: 'center',
},
{
prop: 'batchCode',
label: '物品批次',
align: 'center',
},
{
prop: 'num',
label: '数量',
align: 'center',
},
{
prop: 'allowTime',
label: '允许留存时长(天)',
align: 'center',
width: 150
},
{
prop: 'remark',
label: '备注',
align: 'center',
},
];
export default {

View File

@ -92,7 +92,7 @@ const tableProps = [
prop: 'createTime',
label: '操作时间',
filter: parseTime,
minWidth: 150,
minWidth: 100,
},
{
prop: 'creator',
@ -115,7 +115,7 @@ export default {
tableBtn: [
this.$auth.hasPermi(`raw-material:warehouse-location-his:query`)
? {
type: 'info',
type: 'detail',
btnName: '详情',
}
: undefined,
@ -159,7 +159,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},
@ -205,7 +205,7 @@ export default {
}
},
otherMethods(val) {
if (val.type === 'info') {
if (val.type === 'detail') {
this.addOrUpdateVisible = true;
this.addOrEditTitle = val.data.name + ' -产品信息';
this.$nextTick(() => {

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 13:52:10
* @LastEditors: zwq
* @LastEditTime: 2023-11-20 15:12:13
* @LastEditTime: 2023-11-23 15:52:41
* @Description:
-->
<template>
@ -68,6 +68,7 @@
v-model="dataForm.goodsBatch"
filterable
clearable
style="width:100%"
placeholder="请选择物品名称">
<el-option
v-for="(item, index) in Batch"
@ -82,6 +83,7 @@
<el-input-number
v-model="dataForm.numDet"
clearable
style="width:100%"
:min="0"
placeholder="请输入数量" />
<!-- :max="max?max:9999999" -->

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-11-03 16:37:06
* @LastEditors: zwq
* @LastEditTime: 2023-11-04 14:13:47
* @LastEditTime: 2023-11-23 15:52:53
* @Description:
-->
<template>
@ -67,7 +67,7 @@
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
width="50%">
width="40%">
<add-or-update
ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update>
@ -131,15 +131,18 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},
{
type: 'separate',
},
{
type: this.$auth.hasPermi('raw-material:warehouse-realtime:create') ? 'button' : '',
btnName: '入库',
name: 'add',
color: 'success',
color: 'primary',
plain: true,
},
],

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2023-11-03 14:51:33
* @LastEditTime: 2023-11-23 16:08:41
* @Description:
-->
<template>
@ -11,7 +11,10 @@
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:height="300"
:table-data="tableData" />
:table-data="tableData"
v-if="tableData.length" />
<!-- 没有数据 -->
<div class="no-data-bg" v-else></div>
</template>
<script>
@ -22,48 +25,41 @@ const tableProps = [
{
prop: 'name',
label: '物品名称',
align: 'center',
},
{
prop: 'code',
label: '物品编码',
align: 'center',
},
{
prop: 'spec',
label: '物品规格',
align: 'center',
},
{
prop: 'goodsBatch',
label: '物品批次',
align: 'center',
},
{
prop: 'num',
label: '数量',
align: 'center',
},
{
prop: 'allowTime',
label: '允许留存时长(天)',
align: 'center',
width: 150
},
{
prop: 'inTime',
label: '入库时间',
align: 'center',
filter: parseTime,
},
{
prop: 'leftTime',
label: '剩余留存时长(天)',
align: 'center',
width: 150
},
{
prop: 'remark',
label: '备注',
align: 'center',
},
];
export default {

View File

@ -1,7 +1,7 @@
<template>
<el-dialog
:visible.sync="visible"
:width="'35%'"
:width="'30%'"
:append-to-body="true"
:close-on-click-modal="false"
class="dialog">
@ -22,7 +22,7 @@
<el-form-item label="产品" prop="productInfo">
<el-select
v-model="dataForm.productInfo"
style="width: 100%"
style="width: 60%"
filterable
value-key="id"
placeholder="请选择产品">
@ -79,7 +79,7 @@ export default {
//
dataFormSubmit() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
if (this.dataForm.productInfo) {
this.dataForm.productInfo.goodsId = this.dataForm.productInfo.id
this.dataForm.productInfo.remark = ''
//
@ -91,6 +91,8 @@ export default {
//
this.visible = false;
this.$emit('refreshDataList', this.dataForm);
} else {
this.$modal.msgWarning('请选择产品');
}
});
},

View File

@ -20,9 +20,7 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="库位名称" prop="name">
<el-input
v-model="dataForm.name"
disabled />
<el-input v-model="dataForm.name" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
@ -47,15 +45,20 @@
</small-title>
<div class="attr-list">
<div style="position: absolute; top: -40px; right: 15px">
<el-button @click="addNew" type="text">
<i class="el-icon-plus"></i>
新增
</el-button>
</div>
<base-table
:table-props="tableProps"
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:add-button-show="addButtonShow"
@emitButtonClick="addNew"
@emitFun="inputChange"
:height="400"
:table-data="productAttributeList">
:table-data="productAttributeList"
v-if="productAttributeList.length">
<method-btn
slot="handleBtn"
:width="70"
@ -63,6 +66,8 @@
:method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<!-- 没有数据 -->
<div class="no-data-bg" v-else></div>
</div>
</div>
</div>
@ -85,8 +90,10 @@
import productAttrAdd from './attr-add';
import inputArea from '../../mixins/inputArea';
import SmallTitle from './SmallTitle';
import { inWarehouseRealtimeLocation,
getWarehouseRealtimeLocation } from '@/api/warehouse/warehouseRealtimeLocation';
import {
inWarehouseRealtimeLocation,
getWarehouseRealtimeLocation,
} from '@/api/warehouse/warehouseRealtimeLocation';
const tableBtn = [
{
@ -99,36 +106,30 @@ const tableProps = [
{
prop: 'name',
label: '物品名称',
align: 'center',
},
{
prop: 'code',
label: '物品编码',
align: 'center',
},
{
prop: 'spec',
label: '物品规格',
align: 'center',
},
{
prop: 'goodsBatch',
label: '物品批次',
align: 'center',
subcomponent: inputArea,
width: 100,
},
{
prop: 'num',
label: '数量',
align: 'center',
subcomponent: inputArea,
width: 100,
},
{
prop: 'remark',
label: '备注',
align: 'center',
subcomponent: inputArea,
width: 100,
},
@ -143,7 +144,6 @@ export default {
tableBtn,
tableProps,
productAttributeList: [],
addButtonShow: '新增',
operator: '',
dataForm: {
id: null,
@ -171,7 +171,7 @@ export default {
this.productAttributeList.splice(0);
},
init(val, nickname) {
this.operator = nickname
this.operator = nickname;
this.dataForm.id = val.id;
this.dataForm.name = val.name;
this.dataForm.palletCode = val.palletCode;
@ -213,12 +213,8 @@ export default {
handleClick(raw) {
if (raw.type === 'delete') {
this.$confirm(
`确定对${
raw.data.name
? '[名称=' + raw.data.name + ']'
: '[序号=' + raw.data._pageIndex + ']'
}进行删除操作?`,
'提示',
`是否确认删除名称为"${raw.data.name}"的数据项?`,
'系统提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
@ -242,8 +238,8 @@ export default {
realtimeLocationId: this.dataForm.id,
palletCode: this.dataForm.palletCode,
operator: this.operator,
goodsInfos: this.productAttributeList
}
goodsInfos: this.productAttributeList,
};
this.$refs['dataForm'].validate((valid) => {
if (valid) {
//
@ -313,5 +309,6 @@ export default {
.drawer >>> .el-form,
.drawer >>> .attr-list {
padding: 0 16px;
position: relative;
}
</style>

View File

@ -100,7 +100,7 @@ const tableProps = [
prop: 'inTime',
label: '入库时间',
filter: parseTime,
minWidth: 150,
minWidth: 100,
},
{
prop: 'remark',
@ -125,12 +125,6 @@ export default {
tableData: [],
tableProps,
tableBtn: [
this.$auth.hasPermi(`raw-material:warehouse-realtime-location:query`)
? {
type: 'info',
btnName: '详情',
}
: undefined,
this.$auth.hasPermi(`raw-material:warehouse-realtime-location:query`)
? {
type: 'out',
@ -143,6 +137,12 @@ export default {
btnName: '入库',
}
: undefined,
this.$auth.hasPermi(`raw-material:warehouse-realtime-location:query`)
? {
type: 'detail',
btnName: '详情',
}
: undefined,
].filter((v) => v),
drawerVisible: false,
formConfig: [
@ -183,7 +183,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},
@ -262,7 +262,7 @@ export default {
this.$nextTick(() => {
this.$refs.drawerRef.init(val.data, this.nickname);
});
} else if (val.type === 'info') {
} else if (val.type === 'detail') {
this.addOrUpdateVisible = true;
this.addOrEditTitle = val.data.name + ' -产品信息';
this.$nextTick(() => {

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 13:52:10
* @LastEditors: zwq
* @LastEditTime: 2023-11-02 16:13:31
* @LastEditTime: 2023-11-23 15:14:37
* @Description:
-->
<template>
@ -12,9 +12,10 @@
ref="dataForm"
v-if="visible"
@keyup.enter.native="dataFormSubmit()"
label-width="90px">
label-width="90px"
label-position="top">
<el-row :gutter="20">
<el-col :span="12">
<el-col :span="8">
<el-form-item label="仓库编码" prop="warehouseCode">
<el-input
v-model="dataForm.warehouseCode"
@ -22,7 +23,7 @@
placeholder="请输入仓库编码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="仓库名称" prop="warehouseName">
<el-input
v-model="dataForm.warehouseName"
@ -30,7 +31,7 @@
placeholder="请输入仓库名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="库位编码" prop="code">
<el-input
v-model="dataForm.code"
@ -38,7 +39,7 @@
placeholder="请输入库位编码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="库位名称" prop="name">
<el-input
v-model="dataForm.name"
@ -70,6 +71,7 @@
v-model="dataForm.type"
filterable
clearable
style="width: 100%;"
placeholder="请选择库位类型">
<el-option
v-for="item in urlOptions.dictList.dict0"
@ -85,6 +87,7 @@
v-model="dataForm.enabled"
filterable
clearable
style="width: 100%;"
placeholder="请选择是否可用">
<el-option
v-for="item in isorno"

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-01 13:52:10
* @LastEditors: zwq
* @LastEditTime: 2023-11-02 15:45:53
* @LastEditTime: 2023-11-23 15:20:31
* @Description:
-->
<template>
@ -13,26 +13,35 @@
v-if="visible"
@keyup.enter.native="dataFormSubmit()"
label-width="90px">
<el-row :gutter="20">
<el-col :span="isdetail?24:12">
<el-form-item label="仓库编码" prop="code">
<el-input
v-model="dataForm.code"
clearable
:disabled="isdetail"
:style="{width: isdetail?'70%':'100%',}"
placeholder="请输入仓库编码" />
</el-form-item>
</el-col>
<el-col :span="isdetail?24:12">
<el-form-item label="仓库名称" prop="name">
<el-input
v-model="dataForm.name"
clearable
:disabled="isdetail"
:style="{width: isdetail?'70%':'100%',}"
placeholder="请输入仓库名称" />
</el-form-item>
</el-col>
<el-col :span="isdetail?24:12">
<el-form-item prop="type" label="仓库类型">
<el-select
v-model="dataForm.type"
:disabled="isdetail"
filterable
clearable
:style="{width: isdetail?'70%':'100%',}"
placeholder="请选择仓库类型">
<el-option
v-for="item in urlOptions.dictList.dict0"
@ -41,11 +50,14 @@
:value="parseInt(item.value)"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="isdetail?24:12">
<el-form-item prop="storageType" v-if="!isdetail" label="物料类型">
<el-select
v-model="dataForm.storageType"
filterable
clearable
style="width: 100%;"
placeholder="请选择物料类型">
<el-option
v-for="item in urlOptions.dictList.dict1"
@ -54,6 +66,8 @@
:value="parseInt(item.value)"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
</template>

View File

@ -84,7 +84,7 @@
@confirm="handleConfirm"
:before-close="handleCancel"
:destroy-on-close="true"
width="50%">
width="40%">
<add-or-update
ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update>
@ -123,6 +123,7 @@ const tableProps = [
{
prop: 'code',
label: '库位编码',
width: 180
},
{
prop: 'name',
@ -131,24 +132,29 @@ const tableProps = [
{
prop: 'arrange',
label: '排',
width: 50
},
{
prop: 'col',
label: '列',
width: 50
},
{
prop: 'layer',
label: '层',
width: 50
},
{
prop: 'type',
label: '库位类型',
filter: codeFilter('wareType'),
width: 80
},
{
prop: 'enabled',
label: '是否可用',
filter: codeFilter('deactivate'),
width: 80
},
{
prop: 'remark',
@ -197,7 +203,7 @@ export default {
},
{
type: 'button',
btnName: '搜索',
btnName: '查询',
name: 'search',
color: 'primary',
},