This commit is contained in:
‘937886381’ 2024-08-13 08:36:23 +08:00
parent 0029af4ffa
commit d6acfa4fd7
5 changed files with 265 additions and 129 deletions

View File

@ -1,7 +1,7 @@
###
# @Author: Do not edit
# @Date: 2023-08-29 09:40:39
# @LastEditTime: 2024-07-31 14:57:31
# @LastEditTime: 2024-08-02 16:01:31
# @LastEditors: zhp
# @Description:
###
@ -13,7 +13,7 @@ VUE_APP_TITLE = MES系统
# 芋道管理系统/开发环境
# VUE_APP_BASE_API = 'http://100.64.0.26:48082'
# VUE_APP_BASE_API = 'http://192.168.0.33:48082'
VUE_APP_BASE_API = 'http://192.168.0.33:48082'
# VUE_APP_BASE_API = 'http://192.168.4.173:48080'
# VUE_APP_BASE_API = 'http://192.168.2.173:48080'
# VUE_APP_BASE_API = 'http://192.168.1.81:48082'
@ -22,7 +22,7 @@ VUE_APP_TITLE = MES系统
# VUE_APP_BASE_API = 'http://192.168.1.56:48082'
# VUE_APP_BASE_API = 'http://192.168.4.159:48080'
# VUE_APP_BASE_API = 'http://192.168.1.64:48082'
VUE_APP_BASE_API = 'http://192.168.1.99:48082'
# VUE_APP_BASE_API = 'http://192.168.1.99:48082'

View File

@ -165,3 +165,11 @@ export function orderVoid(data) {
data
})
}
export function orderSplit(data) {
return request({
url: '/base/order/split',
method: 'post',
data
})
}

View File

@ -0,0 +1,37 @@
<template>
<div class="tableInner">
<el-input v-model="list[itemProp]" @blur="changeInput" />
</div>
</template>
<script>
export default {
name: 'InputArea',
props: {
injectData: {
type: Object,
default: () => ({})
},
itemProp: {
type: String
}
},
data() {
return {
list: this.injectData
}
},
methods: {
changeInput() {
console.log(this.list)
this.$emit('emitData', this.list)
}
}
}
</script>
<style>
.tableInner .el-input__inner {
border: none;
padding: 0;
height: 33px;
}
</style>

View File

@ -1,29 +1,105 @@
<!--
* @Author: zhp
* @Date: 2024-08-01 16:27:30
* @LastEditTime: 2024-08-01 16:29:31
* @LastEditTime: 2024-08-02 15:27:58
* @LastEditors: zhp
* @Description:
-->
<template>
<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 ref="orderAddForm" :rules="rules" :model="form" :inline="true" class="demo-form-inline">
<!-- <el-row :gutter="20"> -->
<!-- <el-col :span='6'> -->
<el-form-item label="拆分数量" prop="attr3">
<el-input v-model.number="form.attr3" oninput="value=value.replace(/[^\d]/g,'')"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item>
<el-button type="primary" @click="handleSplit">确定</el-button>
</el-form-item>
<!-- </el-col> -->
<!-- </el-row> -->
<base-table @emitFun="inputChange" :table-props="tableProps" :table-data="list" :max-height="tableH">
<!-- <method-btn v-if="tableBtn.length" slot="handleBtn" :width="240" label="操作" :method-list="tableBtn"
@clickBtn="handleClick" /> -->
</base-table>
</el-form>
</template>
<script>
import { getOrderCode, getOrderById, getProcessFlowList, orderUpdate, orderCreate } from '@/api/base/orderManage'
import { getOrderCode, getOrderById, getProcessFlowList, orderUpdate, orderCreate, orderSplit } from '@/api/base/orderManage'
import { getProductAll } from '@/api/base/product'
import { getCustomerList } from '@/api/base/customer'
import { parseTime } from '@/utils/ruoyi'
// import { publicFormatter } from '@/utils/dict'
import inputArea from './inputArea.vue'
const tableProps = [
{
prop: 'name',
label: '订单名称',
minWidth: 120,
showOverflowtooltip: true,
subcomponent: inputArea
},
{
prop: 'code',
label: '订单编码',
minWidth: 180,
subcomponent: inputArea
},
{
prop: 'productName',
label: '产品',
showOverflowtooltip: true,
subcomponent: inputArea
},
// {
// prop: 'priority',
// label: '',
// filter: publicFormatter('order_priority')
// },
{
prop: 'planQuantity',
label: '计划加工量',
width: 100,
subcomponent: inputArea
},
{
prop: 'deliveTime',
label: '交货日期',
filter: parseTime,
minWidth: 160,
subcomponent: inputArea
},
{
prop: 'customerId',
label: '客户',
showOverflowtooltip: true,
subcomponent: inputArea
},
{
prop: 'price',
label: '单价',
width: 100,
subcomponent: inputArea
},
{
prop: 'packSpec',
label: '包装规格',
width: 100,
subcomponent: inputArea
},
{
prop: 'remark',
label: '备注',
width: 100,
subcomponent: inputArea
},
]
export default {
name: 'OrderAdd',
data() {
return {
tableProps,
list: [],
tableH: this.tableHeight(260),
form: {
id: '',
name: '',
@ -32,6 +108,7 @@ export default {
planProductId: '',
price: '',
customerId: '',
attr3:undefined,
priority: '',
packSpec: '',
workers: '',
@ -42,10 +119,7 @@ export default {
planStartTime: '',
},
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" }]
attr3: [{ required: true, message: "拆分数量不能为空", trigger: "blur" }],
},
productList: [],
customerList: [],
@ -53,12 +127,26 @@ export default {
isEdit: false //
}
},
created () {
window.addEventListener('resize', () => {
this.tableH = this.tableHeight(260)
})
},
methods: {
init(id) {
this.getList()
if (id) {
handleSplit() {
let obj = {
attr3: this.form.attr3,
id:this.form.id
}
orderSplit(obj).then((res) => {
this.list = res.data
})
},
init(obj) {
// this.getList()
if (obj) {
this.isEdit = true
this.form.id = id
this.form.id = obj.id
getOrderById({id: this.form.id}).then(res => {
if (res.code === 0) {
this.form.name = res.data.name
@ -87,73 +175,80 @@ export default {
})
}
},
getList() {
//
getProductAll().then(res => {
this.productList = res.data || []
})
//
getCustomerList().then(res => {
this.customerList = res.data || []
})
//
getProcessFlowList().then(res => {
this.processFlowList = res.data || []
})
},
timeChange() {
if (this.form.planStartTime && this.form.planFinishTime) {
if (this.form.planStartTime > this.form.planFinishTime) {
this.$modal.msgError('计划开始时间不能大于结束时间')
}
}
},
//
materialMethodChange(val) {
if (val === 2 && !this.form.processFlowId) {
this.form.materialMethod = 1
this.$modal.msgError("请先选择关联工艺");
}
},
//
processFlowIdChange(val) {
console.log(val)
if (!val) {
this.form.materialMethod = 1
}
},
// getList() {
// //
// getProductAll().then(res => {
// this.productList = res.data || []
// })
// //
// getCustomerList().then(res => {
// this.customerList = res.data || []
// })
// //
// getProcessFlowList().then(res => {
// this.processFlowList = res.data || []
// })
// },
// timeChange() {
// if (this.form.planStartTime && this.form.planFinishTime) {
// if (this.form.planStartTime > this.form.planFinishTime) {
// this.$modal.msgError('')
// }
// }
// },
// //
// materialMethodChange(val) {
// if (val === 2 && !this.form.processFlowId) {
// this.form.materialMethod = 1
// this.$modal.msgError("");
// }
// },
// //
// processFlowIdChange(val) {
// console.log(val)
// if (!val) {
// this.form.materialMethod = 1
// }
// },
submitForm() {
this.$refs['orderAddForm'].validate((valid) => {
if (valid) {
if (this.form.planStartTime && this.form.planFinishTime) {
if (this.form.planStartTime > this.form.planFinishTime) {
this.$modal.msgError('计划开始时间不能大于结束时间')
return false
}
}
// console.log(this.form)
if (this.isEdit) {
//
orderUpdate({ ...this.form }).then((res) => {
if (res.code === 0) {
Promise.all(this.list.forEach((ele) => {
orderCreate(ele)
})).then((res) => {
this.$modal.msgSuccess("操作成功");
this.$emit('successSubmit')
}
})
} else {
this.form.status = 1
this.form.triggerOrigin = 1
orderCreate({ ...this.form }).then((res) => {
if (res.code === 0) {
this.$modal.msgSuccess("操作成功");
this.$emit('successSubmit')
}
})
}
} else {
return false
}
})
// this.$refs['orderAddForm'].validate((valid) => {
// if (valid) {
// if (this.form.planStartTime && this.form.planFinishTime) {
// if (this.form.planStartTime > this.form.planFinishTime) {
// this.$modal.msgError('')
// return false
// }
// }
// // console.log(this.form)
// if (this.isEdit) {
// //
// orderUpdate({ ...this.form }).then((res) => {
// if (res.code === 0) {
// this.$modal.msgSuccess("");
// this.$emit('successSubmit')
// }
// })
// } else {
// this.form.status = 1
// this.form.triggerOrigin = 1
// orderCreate({ ...this.form }).then((res) => {
// if (res.code === 0) {
// this.$modal.msgSuccess("");
// this.$emit('successSubmit')
// }
// })
// }
// } else {
// return false
// }
// })
},
formClear() {
this.$refs.orderAddForm.resetFields()

View File

@ -1,57 +1,30 @@
<template>
<div class="app-container">
<!-- 搜索工作栏 -->
<search-bar
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick"
/>
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
<!-- 列表 -->
<base-table
:page="queryParams.pageNo"
:limit="queryParams.pageSize"
:table-props="tableProps"
:table-data="list"
:max-height="tableH"
>
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
:width="240"
label="操作"
:method-list="tableBtn"
@clickBtn="handleClick"
/>
<base-table :page="queryParams.pageNo" :limit="queryParams.pageSize" :table-props="tableProps" :table-data="list"
:max-height="tableH">
<method-btn v-if="tableBtn.length" slot="handleBtn" :width="240" label="操作" :method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
:total="total"
@pagination="getList"
/>
<pagination :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" :total="total"
@pagination="getList" />
<!-- 新增&编辑 -->
<base-dialog
:dialogTitle="addOrEditTitle"
:dialogVisible="centervisible"
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
width='60%'
>
<base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="centervisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel" width='60%'>
<order-add ref="orderAdd" @successSubmit="successSubmit" />
</base-dialog>
<!-- 查看详情 -->
<!-- 新增工单 -->
<base-dialog
:dialogTitle="workIssueTitle"
:dialogVisible="addWorkOrdervisible"
@cancel="addWorkOrderCancel"
@confirm="addWorkOrderConfirm"
:before-close="addWorkOrderCancel"
width='70%'
>
<base-dialog :dialogTitle="workIssueTitle" :dialogVisible="addWorkOrdervisible" @cancel="addWorkOrderCancel"
@confirm="addWorkOrderConfirm" :before-close="addWorkOrderCancel" width='70%'>
<add-work-order ref="addWorkOrder" @addWorkOrderSubmit="addWorkOrderSubmit" />
</base-dialog>
<base-dialog :dialogTitle="splitTitle" :dialogVisible="splitWorkOrdervisible" @cancel="splitWorkOrderCancel"
@confirm="splitWorkOrderConfirm" :before-close="splitWorkOrderCancel" width='70%'>
<order-split ref="splitWorkOrder" @splitWorkOrderSubmit="splitWorkOrderSubmit" />
</base-dialog>
</div>
</template>
<script>
@ -175,6 +148,8 @@ export default {
plain: true
}
],
splitTitle: '拆分订单',
splitWorkOrdervisible:false,
//
queryParams: {
pageNo: 1,
@ -338,7 +313,7 @@ export default {
orderDetailVisible: false
}
},
components: { OrderAdd, AddWorkOrder },
components: { OrderAdd, AddWorkOrder,orderSplit },
created() {
window.addEventListener('resize', () => {
this.tableH = this.tableHeight(260)
@ -419,6 +394,16 @@ export default {
console.log(res)
})
break
case 'split':
this.splitTitle = '拆分订单'
this.splitWorkOrdervisible = true
this.$nextTick(() => {
this.$refs.splitWorkOrder.init(val.data)
})
// orderVoid({ id: val.data.id }).then((res) => {
// console.log(res)
// })
break
case 'bind':
this.workIssueTitle = '绑定工单'
this.addWorkOrdervisible = true
@ -468,12 +453,23 @@ export default {
this.$refs.addWorkOrder.formClear()
this.addWorkOrdervisible = false
},
splitWorkOrderCancel() {
this.$refs.splitWorkOrder.formClear()
this.splitWorkOrdervisible = false
},
addWorkOrderConfirm() {
this.$refs.addWorkOrder.addWorkOrderSubmit()
},
addWorkOrderSubmit() {
this.addWorkOrderCancel()
this.getList()
},
splitWorkOrderConfirm() {
this.$refs.splitWorkOrder.splitWorkOrderSubmit()
},
splitWorkOrderSubmit() {
this.splitWorkOrderCancel()
this.getList()
}
// bindWorkOrderCancel() {
// this.$refs.bindWorkOrder.formClear()