2023.10.30提测能源&班组
This commit is contained in:
parent
392c1ea09b
commit
00fba0a83b
4
.env.dev
4
.env.dev
@ -13,11 +13,11 @@ VUE_APP_TITLE = MES系统
|
|||||||
|
|
||||||
# 芋道管理系统/开发环境
|
# 芋道管理系统/开发环境
|
||||||
|
|
||||||
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.2.173:48080'
|
# VUE_APP_BASE_API = 'http://192.168.2.173:48080'
|
||||||
# VUE_APP_BASE_API = 'http://192.168.1.49:48080'
|
# VUE_APP_BASE_API = 'http://192.168.1.49:48080'
|
||||||
# VUE_APP_BASE_API = 'http://192.168.1.8:48080'
|
# VUE_APP_BASE_API = 'http://192.168.1.8:48080'
|
||||||
# VUE_APP_BASE_API = 'http://192.168.1.56:48080'
|
VUE_APP_BASE_API = 'http://192.168.1.56:48080'
|
||||||
# VUE_APP_BASE_API = 'http://192.168.1.188:48080'
|
# VUE_APP_BASE_API = 'http://192.168.1.188:48080'
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ export function exportEquipmentExcel(query) {
|
|||||||
// 获得所有设备列表
|
// 获得所有设备列表
|
||||||
export function getEquipmentAll() {
|
export function getEquipmentAll() {
|
||||||
return request({
|
return request({
|
||||||
url: '/base/equipment/listAll',
|
url: '/base/core-equipment/listAll',
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -26,12 +26,3 @@ export function autoSet(query) {
|
|||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获得排班信息分页 建议size 150
|
|
||||||
export function groupTeamSchedulingPage(query) {
|
|
||||||
return request({
|
|
||||||
url: '/base/group-team-scheduling/page',
|
|
||||||
method: 'get',
|
|
||||||
params: query
|
|
||||||
})
|
|
||||||
}
|
|
@ -34,6 +34,14 @@ export function getOrderCode() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取工单code
|
||||||
|
export function getWorkOrderCode() {
|
||||||
|
return request({
|
||||||
|
url: '/base/order/getWorkOrderCode',
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 获得订单
|
// 获得订单
|
||||||
export function getOrderById(query) {
|
export function getOrderById(query) {
|
||||||
return request({
|
return request({
|
||||||
@ -42,3 +50,47 @@ export function getOrderById(query) {
|
|||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获得工艺流程列表
|
||||||
|
export function getProcessFlowList() {
|
||||||
|
return request({
|
||||||
|
url: '/extend/process-flow/listAll',
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建订单
|
||||||
|
export function orderCreate(data) {
|
||||||
|
return request({
|
||||||
|
url: '/base/order/create',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新订单
|
||||||
|
export function orderUpdate(data) {
|
||||||
|
return request({
|
||||||
|
url: '/base/order/update',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除订单
|
||||||
|
export function orderDelete(query) {
|
||||||
|
return request({
|
||||||
|
url: '/base/order/delete',
|
||||||
|
method: 'delete',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 下发订单,绑定的穿工单id,新建不传
|
||||||
|
export function orderIssue(data) {
|
||||||
|
return request({
|
||||||
|
url: '/base/order/issue',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
19
src/api/monitoring/teamProduction.js
Normal file
19
src/api/monitoring/teamProduction.js
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 获得排班信息分页 建议size 150
|
||||||
|
export function groupTeamSchedulingPage(query) {
|
||||||
|
return request({
|
||||||
|
url: '/base/group-team-scheduling/page',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得不同产线每小时报废数据,用于班组检测 班组生产情况详情(动态结构)
|
||||||
|
export function getSchedulingMonitoringRecord(query) {
|
||||||
|
return request({
|
||||||
|
url: '/base/quality-inspection-record/getSchedulingMonitoringRecord',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
@ -89,8 +89,6 @@ export const DICT_TYPE = {
|
|||||||
|
|
||||||
// ============== ENERGY - 能源模块 =============
|
// ============== ENERGY - 能源模块 =============
|
||||||
ENERGY_UNIT: 'energy_unit',
|
ENERGY_UNIT: 'energy_unit',
|
||||||
|
|
||||||
// ============== ENERGY - 能源模块 =============
|
|
||||||
EQU_ALARM_LEVEL: 'equ_alarm_level',
|
EQU_ALARM_LEVEL: 'equ_alarm_level',
|
||||||
MONITOR_INDEX_TYPE: 'monitor_index_type',
|
MONITOR_INDEX_TYPE: 'monitor_index_type',
|
||||||
OBJECT_TYPE: 'object_type',
|
OBJECT_TYPE: 'object_type',
|
||||||
@ -99,8 +97,9 @@ export const DICT_TYPE = {
|
|||||||
|
|
||||||
// ============== ORDER - 订单模块 =============
|
// ============== ORDER - 订单模块 =============
|
||||||
ORDER_STATUS: 'order_status',
|
ORDER_STATUS: 'order_status',
|
||||||
ORDER_ORIGIN: 'order_origin',
|
ORDER_ORIGIN: 'order_Origin',
|
||||||
ORDER_PRIORITY: 'order_priority'
|
ORDER_PRIORITY: 'order_priority',
|
||||||
|
PACK_SPEC: 'pack_spec'
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -96,7 +96,7 @@ const tableProps = [
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
import { getEnergyTypeListAll } from '@/api/base/energyType'
|
import { getEnergyTypeListAll } from '@/api/base/energyType'
|
||||||
import { orderList, workOrderList } from '@/api/base/orderManage'
|
import { workOrderList } from '@/api/base/orderManage'
|
||||||
import { getWorkOrderMsg, getOrderEnergyData } from '@/api/monitoring/orderEnergy'
|
import { getWorkOrderMsg, getOrderEnergyData } from '@/api/monitoring/orderEnergy'
|
||||||
import BarChart from "./components/barChart"
|
import BarChart from "./components/barChart"
|
||||||
export default {
|
export default {
|
||||||
@ -104,25 +104,21 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
formConfig: [
|
formConfig: [
|
||||||
{
|
|
||||||
type: 'select',
|
|
||||||
label: '订单',
|
|
||||||
selectOptions: [],
|
|
||||||
param: 'energyTypeId'
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
type: 'select',
|
type: 'select',
|
||||||
label: '工单',
|
label: '工单',
|
||||||
selectOptions: [],
|
selectOptions: [],
|
||||||
param: 'energyTypeId1'
|
param: 'workOrderId',
|
||||||
|
clearable: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'select',
|
type: 'select',
|
||||||
label: '能源类型',
|
label: '能源类型',
|
||||||
selectOptions: [],
|
selectOptions: [],
|
||||||
param: 'energyTypeId2',
|
param: 'objType',
|
||||||
filterable: true,
|
filterable: true,
|
||||||
width: 120
|
width: 120,
|
||||||
|
clearable: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'select',
|
type: 'select',
|
||||||
@ -130,8 +126,9 @@ export default {
|
|||||||
selectOptions: this.getDictDatas(this.DICT_TYPE.OBJECT_TYPE),
|
selectOptions: this.getDictDatas(this.DICT_TYPE.OBJECT_TYPE),
|
||||||
labelField: 'label',
|
labelField: 'label',
|
||||||
valueField: 'value',
|
valueField: 'value',
|
||||||
param: 'energyTypeId3',
|
param: 'energyTypeId',
|
||||||
width: 100
|
width: 100,
|
||||||
|
clearable: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'button',
|
type: 'button',
|
||||||
@ -145,8 +142,9 @@ export default {
|
|||||||
tableH: this.tableHeight(400),
|
tableH: this.tableHeight(400),
|
||||||
// 查询参数
|
// 查询参数
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNo: 1,
|
workOrderId: '',
|
||||||
pageSize: 10000
|
objType: '',
|
||||||
|
energyTypeId: ''
|
||||||
},
|
},
|
||||||
orderMsg: {},
|
orderMsg: {},
|
||||||
chartData: [],
|
chartData: [],
|
||||||
@ -162,34 +160,38 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getListArr() {
|
getListArr() {
|
||||||
getEnergyTypeListAll().then(res => {
|
|
||||||
this.formConfig[2].selectOptions = res.data || []
|
|
||||||
})
|
|
||||||
orderList().then(res => {
|
|
||||||
console.log(res)
|
|
||||||
})
|
|
||||||
workOrderList().then(res => {
|
workOrderList().then(res => {
|
||||||
console.log(res)
|
this.formConfig[0].selectOptions = res.data || []
|
||||||
|
})
|
||||||
|
getEnergyTypeListAll().then(res => {
|
||||||
|
this.formConfig[1].selectOptions = res.data || []
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
buttonClick() {
|
buttonClick(val) {
|
||||||
getWorkOrderMsg({
|
if (!val.workOrderId) {
|
||||||
"workOrderId": 1,
|
this.$modal.msgWarning('工单不能为空')
|
||||||
"objType": "3",
|
return false
|
||||||
"energyTypeId": '1681183397517406210'
|
}
|
||||||
}).then(res => {
|
if (!val.objType) {
|
||||||
console.log(res)
|
this.$modal.msgWarning('能源类型不能为空')
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (!val.energyTypeId) {
|
||||||
|
this.$modal.msgWarning('对象维度不能为空')
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
this.queryParams.workOrderId = val.workOrderId
|
||||||
|
this.queryParams.objType = val.objType
|
||||||
|
this.queryParams.energyTypeId = val.energyTypeId
|
||||||
|
getWorkOrderMsg({ ...this.queryParams }).then(res => {
|
||||||
this.orderMsg = res.data || {}
|
this.orderMsg = res.data || {}
|
||||||
getOrderEnergyData({
|
getOrderEnergyData({
|
||||||
"workOrderId": 1,
|
...this.queryParams,
|
||||||
"objType": "3",
|
startProduceTime: res.data.startProduceTime || '',
|
||||||
"energyTypeId": '1681183397517406210',
|
finishProduceTime: res.data.finishProduceTime || ''
|
||||||
"startProduceTime": "1694239523000",
|
}).then(result => {
|
||||||
"finishProduceTime": "1694498723000"
|
this.tableData = result.data || []
|
||||||
}).then(res => {
|
this.chartData = result.data || []
|
||||||
console.log(res)
|
|
||||||
this.tableData = res.data || []
|
|
||||||
this.chartData = res.data || []
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -1,46 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div>
|
|
||||||
<el-drawer title="查看详情" :visible.sync="visible" size="70%">
|
|
||||||
<div class="box">
|
|
||||||
<base-table
|
|
||||||
:table-props="tableProps"
|
|
||||||
:table-data="tableData"
|
|
||||||
:max-height="tableH"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</el-drawer>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<script>
|
|
||||||
import { getByScheduling } from '@/api/monitoring/groupTeamView'
|
|
||||||
export default {
|
|
||||||
name: 'schedulingMonitoringDetail',
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
visible: false,
|
|
||||||
tableProps: [],
|
|
||||||
tableData: [],
|
|
||||||
tableH: this.tableHeight(200)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
window.addEventListener('resize', () => {
|
|
||||||
this.tableH = this.tableHeight(200)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
init(id) {
|
|
||||||
this.visible = true
|
|
||||||
console.log(id)
|
|
||||||
getByScheduling({id}).then(res => {
|
|
||||||
console.log(res)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.box {
|
|
||||||
padding: 0 32px;
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -64,14 +64,12 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
init(params) {
|
init(params) {
|
||||||
console.log(params)
|
|
||||||
this.visible = true
|
this.visible = true
|
||||||
this.queryParams = params
|
this.queryParams = params
|
||||||
getByTeam({
|
getByTeam({
|
||||||
teamId: this.queryParams.teamId,
|
teamId: this.queryParams.teamId,
|
||||||
workOrderId: this.queryParams.workOrderId
|
workOrderId: this.queryParams.workOrderId
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
console.log(res)
|
|
||||||
this.tableData = res.data || []
|
this.tableData = res.data || []
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -61,10 +61,11 @@ export default {
|
|||||||
return {
|
return {
|
||||||
formConfig: [
|
formConfig: [
|
||||||
{
|
{
|
||||||
type: 'input',
|
type: 'select',
|
||||||
label: '工单名称',
|
label: '工单',
|
||||||
placeholder: '工单名称',
|
selectOptions: [],
|
||||||
param: 'cnName'
|
param: 'workOrderId',
|
||||||
|
clearable: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'button',
|
type: 'button',
|
||||||
@ -79,7 +80,8 @@ export default {
|
|||||||
pageSize: 1000,
|
pageSize: 1000,
|
||||||
workOrderId: ''
|
workOrderId: ''
|
||||||
},
|
},
|
||||||
workOrderName: '工单名称ddd',
|
workOrderList: [],
|
||||||
|
workOrderName: '',
|
||||||
tableBtn,
|
tableBtn,
|
||||||
tableProps,
|
tableProps,
|
||||||
tableH: this.tableHeight(220),
|
tableH: this.tableHeight(220),
|
||||||
@ -92,33 +94,42 @@ export default {
|
|||||||
window.addEventListener('resize', () => {
|
window.addEventListener('resize', () => {
|
||||||
this.tableH = this.tableHeight(220)
|
this.tableH = this.tableHeight(220)
|
||||||
})
|
})
|
||||||
|
this.getOrderList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 获取工单list
|
// 获取工单list
|
||||||
getOrderList() {
|
getOrderList() {
|
||||||
workOrderList().then(res => {
|
workOrderList().then(res => {
|
||||||
|
console.log(res)
|
||||||
|
this.formConfig[0].selectOptions = res.data || []
|
||||||
|
this.workOrderList = res.data || []
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 查询
|
// 查询
|
||||||
buttonClick(val) {
|
buttonClick(val) {
|
||||||
// this.queryParams.workOrderId = val.id
|
if (!val.workOrderId) {
|
||||||
this.queryParams.workOrderId = 1
|
this.$modal.msgWarning('工单不能为空')
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
this.queryParams.workOrderId = val.workOrderId
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
// 获取table数据
|
// 获取table数据
|
||||||
getList() {
|
getList() {
|
||||||
getByWorkOrder({ id: this.queryParams.workOrderId }).then(res => {
|
getByWorkOrder({ id: this.queryParams.workOrderId }).then(res => {
|
||||||
console.log(res)
|
this.list = res.data || []
|
||||||
this.list = res.data
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleClick(val) {
|
handleClick(val) {
|
||||||
console.log(val)
|
|
||||||
this.paramVisible = true
|
this.paramVisible = true
|
||||||
let params = {}
|
let params = {}
|
||||||
params.teamId = val.data.id
|
params.teamId = val.data.id
|
||||||
params.teamName = val.data.name
|
params.teamName = val.data.name
|
||||||
|
this.workOrderList.map(item => {
|
||||||
|
if (this.queryParams.workOrderId === item.id) {
|
||||||
|
this.workOrderName = item.name
|
||||||
|
}
|
||||||
|
})
|
||||||
params.workOrderId = this.queryParams.workOrderId
|
params.workOrderId = this.queryParams.workOrderId
|
||||||
params.workOrderName = this.workOrderName
|
params.workOrderName = this.workOrderName
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
|
@ -0,0 +1,162 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-drawer title="查看详情" :visible.sync="visible" size="70%" :wrapperClosable='false' @closed="closeDrawer">
|
||||||
|
<div class="box">
|
||||||
|
<base-table
|
||||||
|
:table-props="tableProps"
|
||||||
|
:table-data="tableData"
|
||||||
|
:max-height="tableH"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</el-drawer>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { getByScheduling } from '@/api/monitoring/groupTeamView'
|
||||||
|
import { getSchedulingMonitoringRecord } from '@/api/monitoring/teamProduction'
|
||||||
|
export default {
|
||||||
|
name: 'TeamProductionDetail',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
tableProps: [
|
||||||
|
{
|
||||||
|
prop: 'lineName',
|
||||||
|
label: '产线',
|
||||||
|
minWidth: 120
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'startTime',
|
||||||
|
label: '上班时间',
|
||||||
|
minWidth: 150
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'endTime',
|
||||||
|
label: '下班时间',
|
||||||
|
minWidth: 150
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'workOrderList',
|
||||||
|
label: '生产工单'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
tableData: [],
|
||||||
|
tableH: this.tableHeight(200)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
window.addEventListener('resize', () => {
|
||||||
|
this.tableH = this.tableHeight(200)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
init(params) {
|
||||||
|
this.visible = true
|
||||||
|
// console.log(params)
|
||||||
|
getByScheduling({id:params.id}).then(res => {
|
||||||
|
let dataList1 = []
|
||||||
|
let dataList2 = []
|
||||||
|
if (res.data.nameData && res.data.nameData.length > 0) {
|
||||||
|
dataList1 = res.data
|
||||||
|
// 下一个接口的参数&&表头
|
||||||
|
let timeArr = []
|
||||||
|
res.data.nameData.map(item => {
|
||||||
|
let tablePropsObj = {
|
||||||
|
prop: '',
|
||||||
|
label: '',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
prop: '',
|
||||||
|
label: '上片数据'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: '',
|
||||||
|
label: '下片数据'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: '',
|
||||||
|
label: '良品面积'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: '',
|
||||||
|
label: '报废数据'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: '',
|
||||||
|
label: '报废比例'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
timeArr.push(this.parseTime(item.name))
|
||||||
|
tablePropsObj.prop = item.name
|
||||||
|
tablePropsObj.label = this.parseTime(item.name)
|
||||||
|
tablePropsObj.children[0].prop = item.name+'sumInput'
|
||||||
|
tablePropsObj.children[1].prop = item.name+'sumOutput'
|
||||||
|
tablePropsObj.children[2].prop = item.name+'goodArea'
|
||||||
|
tablePropsObj.children[3].prop = item.name+'dynamicValue'
|
||||||
|
tablePropsObj.children[4].prop = item.name+'dynamicRatio'
|
||||||
|
this.tableProps.push(tablePropsObj)
|
||||||
|
})
|
||||||
|
getSchedulingMonitoringRecord({
|
||||||
|
checkTime: timeArr
|
||||||
|
}).then(result => {
|
||||||
|
dataList2 = result.data
|
||||||
|
// console.log(dataList1)
|
||||||
|
// console.log(dataList2)
|
||||||
|
for (let i = 0; i < dataList1.data.length; i++) {
|
||||||
|
let obj = {}
|
||||||
|
obj.lineName = dataList1.data[i].lineName
|
||||||
|
obj.startTime = this.parseTime(params.startTime)
|
||||||
|
obj.endTime = this.parseTime(params.endTime)
|
||||||
|
obj.workOrderList = dataList1.data[i].workOrderList
|
||||||
|
let subData1 = dataList1.data[i].data
|
||||||
|
for (let ii = 0; ii < subData1.length; ii++) {
|
||||||
|
obj[subData1[ii].dynamicName+'sumInput'] = subData1[ii].dynamicValue.sumInput
|
||||||
|
obj[subData1[ii].dynamicName+'sumOutput'] = subData1[ii].dynamicValue.sumOutput
|
||||||
|
obj[subData1[ii].dynamicName+'goodArea'] = subData1[ii].dynamicValue.goodArea
|
||||||
|
}
|
||||||
|
for (let j = 0; j < dataList2.data.length; j++) {
|
||||||
|
let subData2 = dataList2.data[j].data
|
||||||
|
for (let jj = 0; jj < subData2.length; jj++) {
|
||||||
|
obj[subData2[jj].dynamicName+'dynamicValue'] = subData2[jj].dynamicValue
|
||||||
|
obj[subData2[jj].dynamicName+'dynamicRatio'] = obj[subData2[jj].dynamicName+'dynamicValue'] / obj[subData2[jj].dynamicName+'sumOutput']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.tableData.push(obj)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
closeDrawer() {
|
||||||
|
this.tableData = []
|
||||||
|
this.tableProps = [
|
||||||
|
{
|
||||||
|
prop: 'lineName',
|
||||||
|
label: '产线',
|
||||||
|
minWidth: 120
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'startTime',
|
||||||
|
label: '上班时间',
|
||||||
|
minWidth: 150
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'endTime',
|
||||||
|
label: '下班时间',
|
||||||
|
minWidth: 150
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'workOrderList',
|
||||||
|
label: '生产工单'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.box {
|
||||||
|
padding: 0 32px;
|
||||||
|
}
|
||||||
|
</style>
|
@ -30,13 +30,13 @@
|
|||||||
@pagination="getList"
|
@pagination="getList"
|
||||||
/>
|
/>
|
||||||
<!-- 查看生产情况 -->
|
<!-- 查看生产情况 -->
|
||||||
<scheduling-monitoring-detail v-if='paramVisible' ref='schedulingMonitoringDetail'/>
|
<team-production-detail v-if='paramVisible' ref='schedulingMonitoringDetail'/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { groupTeamSchedulingPage } from '@/api/base/groupTeamScheduling'
|
import { groupTeamSchedulingPage } from '@/api/monitoring/teamProduction'
|
||||||
import { parseTime } from '@/utils/ruoyi'
|
import { parseTime } from '@/utils/ruoyi'
|
||||||
import SchedulingMonitoringDetail from './components/schedulingMonitoringDetail'
|
import TeamProductionDetail from './components/teamProductionDetail'
|
||||||
const tableProps = [
|
const tableProps = [
|
||||||
{
|
{
|
||||||
prop: 'createTime',
|
prop: 'createTime',
|
||||||
@ -122,7 +122,7 @@ export default {
|
|||||||
paramVisible: false
|
paramVisible: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: { SchedulingMonitoringDetail },
|
components: { TeamProductionDetail },
|
||||||
mounted() {
|
mounted() {
|
||||||
window.addEventListener('resize', () => {
|
window.addEventListener('resize', () => {
|
||||||
this.tableH = this.tableHeight(220)
|
this.tableH = this.tableHeight(220)
|
||||||
@ -141,12 +141,15 @@ export default {
|
|||||||
this.list = res.data.list || []
|
this.list = res.data.list || []
|
||||||
this.total = res.data.total || 0
|
this.total = res.data.total || 0
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
getGroupClass() {
|
||||||
|
|
||||||
},
|
},
|
||||||
handleClick(val) {
|
handleClick(val) {
|
||||||
console.log(val)
|
console.log(val)
|
||||||
this.paramVisible = true
|
this.paramVisible = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.schedulingMonitoringDetail.init(val.data.id)
|
this.$refs.schedulingMonitoringDetail.init(val.data)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
289
src/views/order/base/orderManage/components/addWorkOrder.vue
Normal file
289
src/views/order/base/orderManage/components/addWorkOrder.vue
Normal file
@ -0,0 +1,289 @@
|
|||||||
|
<template>
|
||||||
|
<el-form ref="addWorkOrder" :rules="rules" label-width="130px" :model="form">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span='12'>
|
||||||
|
<el-form-item label="工单名称" prop="name" v-if='!isBind'>
|
||||||
|
<el-input v-model="form.name"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="产品名称" prop="orderId" v-if='isBind'>
|
||||||
|
<el-select v-model="form.orderId" placeholder="请选择" style="width: 100%;">
|
||||||
|
<el-option
|
||||||
|
v-for="item in workOrderList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span='12'>
|
||||||
|
<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-form-item label="产品名称" prop="planProductId">
|
||||||
|
<el-select v-model="form.planProductId" placeholder="请选择" style="width: 100%;" @change="selectProduct">
|
||||||
|
<el-option
|
||||||
|
v-for="item in productList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span='12'>
|
||||||
|
<el-form-item label="产品规格" prop="productSpec">
|
||||||
|
<el-input v-model="form.productSpec" disabled></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span='12'>
|
||||||
|
<el-form-item label="计划开始时间">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="planStartTime"
|
||||||
|
type="datetime"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="选择日期">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span='12'>
|
||||||
|
<el-form-item label="计划完成时间">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="planFinishTime"
|
||||||
|
type="datetime"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
style="width: 100%;"
|
||||||
|
placeholder="选择日期">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span='12'>
|
||||||
|
<el-form-item label="计划投入数量" prop="planAssignQuantity">
|
||||||
|
<el-input-number v-model="form.planAssignQuantity" :min="0" :max="9999999999999" style="width: 100%;"></el-input-number>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span='12'>
|
||||||
|
<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-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span='12'>
|
||||||
|
<el-form-item label="关联工艺" prop="processFlowId">
|
||||||
|
<el-select v-model="form.processFlowId" placeholder="请选择" style="width: 100%;">
|
||||||
|
<el-option
|
||||||
|
v-for="item in processFlowList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span='12'>
|
||||||
|
<el-form-item label="物料计算方式" prop="materialMethod">
|
||||||
|
<el-radio-group v-model="form.materialMethod">
|
||||||
|
<el-radio :label="1">产品基础</el-radio>
|
||||||
|
<el-radio :label="2">工艺扩展</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span='12'>
|
||||||
|
<el-form-item label="优先级" prop="priority">
|
||||||
|
<el-select v-model="form.priority" placeholder="请选择" style="width: 100%;">
|
||||||
|
<el-option
|
||||||
|
v-for="item in getDictDatas(DICT_TYPE.ORDER_PRIORITY)"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span='12'>
|
||||||
|
<el-form-item label="工单类型" prop="type">
|
||||||
|
<el-select v-model="form.type" placeholder="请选择" style="width: 100%;">
|
||||||
|
<el-option
|
||||||
|
v-for="item in workOrderTypeList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span='12'>
|
||||||
|
<el-form-item label="关联产线" prop="productLineId">
|
||||||
|
<el-select v-model="form.productLineId" placeholder="请选择" multiple style="width: 100%;">
|
||||||
|
<el-option
|
||||||
|
v-for="item in productLineList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span='12'>
|
||||||
|
<el-form-item label="负责人" prop="workers">
|
||||||
|
<el-input v-model="form.workers"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span='12'>
|
||||||
|
<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>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { getProductAll } from '@/api/base/product'
|
||||||
|
import { getProcessFlowList, getWorkOrderCode, orderIssue, workOrderList } from '@/api/base/orderManage'
|
||||||
|
import { getLineAll } from '@/api/base/productionLine'
|
||||||
|
export default {
|
||||||
|
name: 'AddWorkOrder',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
form: {
|
||||||
|
workOrderId: '',
|
||||||
|
orderId: '',
|
||||||
|
name: '',
|
||||||
|
code: '',
|
||||||
|
planProductId: '',
|
||||||
|
productSpec: '',
|
||||||
|
planStartTime: '',
|
||||||
|
planFinishTime: '',
|
||||||
|
planAssignQuantity: 0,
|
||||||
|
planQuantity: 0,
|
||||||
|
processFlowId: '',
|
||||||
|
materialMethod: 1,
|
||||||
|
priority: '',
|
||||||
|
productLineId: [],
|
||||||
|
type: '',
|
||||||
|
workers: '',
|
||||||
|
planAssignmentQuantity: ''
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
name: [{ required: true, message: "工单名称不能为空", trigger: "blur" }],
|
||||||
|
planProductId: [{ required: true, message: "产品名称不能为空", trigger: "change" }],
|
||||||
|
planAssignQuantity: [{ required: true, message: "计划投入数量不能为空", trigger: "blur" }],
|
||||||
|
planQuantity: [{ required: true, message: "计划生产数量不能为空", trigger: "blur" }],
|
||||||
|
productLineId: [{ required: true, message: "产品不能为空", trigger: "change" }]
|
||||||
|
},
|
||||||
|
productList: [],
|
||||||
|
processFlowList: [],
|
||||||
|
productLineList: [],
|
||||||
|
workOrderTypeList: [
|
||||||
|
{id: 1,name:'标准工单'},
|
||||||
|
{id: 2, name:'特殊工单'}
|
||||||
|
],
|
||||||
|
planStartTime: '',
|
||||||
|
planFinishTime: '',
|
||||||
|
isBind: false,
|
||||||
|
workOrderList: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
init(id, param) {
|
||||||
|
console.log(id)
|
||||||
|
this.form.orderId = id
|
||||||
|
this.getList()
|
||||||
|
if (param === 'add') {
|
||||||
|
this.isBind = false
|
||||||
|
getWorkOrderCode().then(res => {
|
||||||
|
this.form.code = res.data || ''
|
||||||
|
})
|
||||||
|
}else{//绑定
|
||||||
|
this.isBind = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getList() {
|
||||||
|
// 产品
|
||||||
|
getProductAll().then(res => {
|
||||||
|
this.productList = res.data || []
|
||||||
|
})
|
||||||
|
// 产线
|
||||||
|
getLineAll().then(res => {
|
||||||
|
this.productLineList = res.data || []
|
||||||
|
})
|
||||||
|
// 工艺
|
||||||
|
getProcessFlowList().then(res => {
|
||||||
|
this.processFlowList = res.data || []
|
||||||
|
})
|
||||||
|
// 工单list
|
||||||
|
workOrderList({
|
||||||
|
status: 1
|
||||||
|
}).then(res => {
|
||||||
|
this.workOrderList = res.data || []
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 选产品带出规格
|
||||||
|
selectProduct(val) {
|
||||||
|
if (val) {
|
||||||
|
this.productList.map(item => {
|
||||||
|
if (val === item.id) {
|
||||||
|
this.form.productSpec = item.specifications
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.form.productSpec = ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
addWorkOrderSubmit() {
|
||||||
|
this.$refs['addWorkOrder'].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.form.planStartTime = this.planStartTime ? new Date(this.planStartTime).valueOf() : ''
|
||||||
|
this.form.planFinishTime = this.planFinishTime ? new Date(this.planFinishTime).valueOf() : ''
|
||||||
|
console.log(this.form)
|
||||||
|
orderIssue({ ...this.form }).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$modal.msgSuccess("操作成功")
|
||||||
|
this.$emit('addWorkOrderSubmit')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// 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.addWorkOrder.resetFields()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
@ -0,0 +1,11 @@
|
|||||||
|
<template>
|
||||||
|
<div>111</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'BindWorkOrder',
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
@ -20,7 +20,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span='12'>
|
<el-col :span='12'>
|
||||||
<el-form-item label="产品名称" prop="planProductId">
|
<el-form-item label="产品名称" prop="planProductId">
|
||||||
<el-select v-model="form.planProductId" placeholder="请选择" style="width: 100%;">
|
<el-select v-model="form.planProductId" placeholder="请选择" style="width: 100%;" @change="selectProduct">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in productList"
|
v-for="item in productList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
@ -49,9 +49,9 @@
|
|||||||
<el-select v-model="form.customerId" placeholder="请选择" style="width: 100%;">
|
<el-select v-model="form.customerId" placeholder="请选择" style="width: 100%;">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in customerList"
|
v-for="item in customerList"
|
||||||
:key="item.value"
|
:key="item.id"
|
||||||
:label="item.label"
|
:label="item.name"
|
||||||
:value="item.value">
|
:value="item.id">
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -72,7 +72,14 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span='12'>
|
<el-col :span='12'>
|
||||||
<el-form-item label="包装规格" prop="packSpec">
|
<el-form-item label="包装规格" prop="packSpec">
|
||||||
<el-input v-model="form.packSpec" disabled></el-input>
|
<el-select v-model="form.packSpec" placeholder="请选择" style="width: 100%;">
|
||||||
|
<el-option
|
||||||
|
v-for="item in getDictDatas(DICT_TYPE.PACK_SPEC)"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span='12'>
|
<el-col :span='12'>
|
||||||
@ -86,7 +93,7 @@
|
|||||||
<el-form-item label="关联工艺" prop="processFlowId">
|
<el-form-item label="关联工艺" prop="processFlowId">
|
||||||
<el-select v-model="form.processFlowId" placeholder="请选择" style="width: 100%;">
|
<el-select v-model="form.processFlowId" placeholder="请选择" style="width: 100%;">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in customerList"
|
v-for="item in processFlowList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.name"
|
:label="item.name"
|
||||||
:value="item.id">
|
:value="item.id">
|
||||||
@ -105,20 +112,24 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span='12'>
|
<el-col :span='12'>
|
||||||
<el-form-item label="订单计划开始时间" prop="planStartTime">
|
<el-form-item label="订单计划开始时间">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="form.planStartTime"
|
v-model="planStartTime"
|
||||||
type="date"
|
type="date"
|
||||||
|
format='yyyy-MM-dd'
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
placeholder="选择日期">
|
placeholder="选择日期">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span='12'>
|
<el-col :span='12'>
|
||||||
<el-form-item label="订单计划完成时间" prop="planFinishTime">
|
<el-form-item label="订单计划完成时间">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="form.planFinishTime"
|
v-model="planFinishTime"
|
||||||
type="date"
|
type="date"
|
||||||
|
format='yyyy-MM-dd'
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
placeholder="选择日期">
|
placeholder="选择日期">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
@ -142,9 +153,10 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getOrderCode, getOrderById } from '@/api/base/orderManage'
|
import { getOrderCode, getOrderById, getProcessFlowList, orderUpdate, orderCreate } from '@/api/base/orderManage'
|
||||||
import { getProductAll } from '@/api/base/product'
|
import { getProductAll } from '@/api/base/product'
|
||||||
import { getCustomerList } from '@/api/base/customer'
|
import { getCustomerList } from '@/api/base/customer'
|
||||||
|
import moment from 'moment'
|
||||||
export default {
|
export default {
|
||||||
name: 'OrderAdd',
|
name: 'OrderAdd',
|
||||||
data() {
|
data() {
|
||||||
@ -162,12 +174,14 @@ export default {
|
|||||||
packSpec: '',
|
packSpec: '',
|
||||||
workers: '',
|
workers: '',
|
||||||
processFlowId: '',
|
processFlowId: '',
|
||||||
materialMethod: '1',
|
materialMethod: 1,
|
||||||
|
remark: '',
|
||||||
|
description: '',
|
||||||
|
planStartTime: '',
|
||||||
|
planFinishTime: ''
|
||||||
|
},
|
||||||
planStartTime: '',
|
planStartTime: '',
|
||||||
planFinishTime: '',
|
planFinishTime: '',
|
||||||
remark: '',
|
|
||||||
description: ''
|
|
||||||
},
|
|
||||||
rules: {
|
rules: {
|
||||||
name: [{ required: true, message: "订单名称不能为空", trigger: "blur" }],
|
name: [{ required: true, message: "订单名称不能为空", trigger: "blur" }],
|
||||||
planQuantity: [{ required: true, message: "计划加工数量不能为空", trigger: "blur" }],
|
planQuantity: [{ required: true, message: "计划加工数量不能为空", trigger: "blur" }],
|
||||||
@ -175,6 +189,7 @@ export default {
|
|||||||
},
|
},
|
||||||
productList: [],
|
productList: [],
|
||||||
customerList: [],
|
customerList: [],
|
||||||
|
processFlowList: [],
|
||||||
isEdit: false //是否是编辑
|
isEdit: false //是否是编辑
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -184,10 +199,24 @@ export default {
|
|||||||
if (id) {
|
if (id) {
|
||||||
this.isEdit = true
|
this.isEdit = true
|
||||||
this.form.id = id
|
this.form.id = id
|
||||||
getOrderById(id).then(res => {
|
getOrderById({id: this.form.id}).then(res => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.form = res.data
|
this.form.name = res.data.name
|
||||||
// this.selectLeader()
|
this.form.code = res.data.code
|
||||||
|
this.form.planQuantity = res.data.planQuantity
|
||||||
|
this.form.planProductId = res.data.planProductId
|
||||||
|
this.selectProduct(this.form.planProductId)
|
||||||
|
this.form.price = res.data.price
|
||||||
|
this.form.customerId = res.data.customerId
|
||||||
|
this.form.priority = res.data.priority ? res.data.priority + '' : ''
|
||||||
|
this.planStartTime = res.data.planStartTime ? moment(res.data.planStartTime).format('YYYY-MM-DD') : null
|
||||||
|
this.form.packSpec = res.data.packSpec ? res.data.packSpec+'' : ''
|
||||||
|
this.form.workers = res.data.workers
|
||||||
|
this.form.processFlowId = res.data.processFlowId
|
||||||
|
this.form.materialMethod = res.data.materialMethod
|
||||||
|
this.planFinishTime = res.data.planFinishTime ? moment(res.data.planFinishTime).format('YYYY-MM-DD') : null
|
||||||
|
this.form.remark = res.data.remark
|
||||||
|
this.form.description = res.data.description
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
@ -209,20 +238,40 @@ export default {
|
|||||||
this.customerList = res.data || []
|
this.customerList = res.data || []
|
||||||
})
|
})
|
||||||
// 工艺
|
// 工艺
|
||||||
|
getProcessFlowList().then(res => {
|
||||||
|
this.processFlowList = res.data || []
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 选产品带出规格
|
||||||
|
selectProduct(val) {
|
||||||
|
if (val) {
|
||||||
|
this.productList.map(item => {
|
||||||
|
if (val === item.id) {
|
||||||
|
this.form.productSpec = item.specifications
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.form.productSpec = ''
|
||||||
|
}
|
||||||
},
|
},
|
||||||
submitForm() {
|
submitForm() {
|
||||||
this.$refs['orderAddForm'].validate((valid) => {
|
this.$refs['orderAddForm'].validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
this.form.planStartTime = this.planStartTime ? new Date(this.planStartTime).valueOf() : ''
|
||||||
|
this.form.planFinishTime = this.planFinishTime ? new Date(this.planFinishTime).valueOf() : ''
|
||||||
|
console.log(this.form)
|
||||||
if (this.isEdit) {
|
if (this.isEdit) {
|
||||||
//编辑
|
//编辑
|
||||||
updateGroupTeam({ ...this.form }).then((res) => {
|
orderUpdate({ ...this.form }).then((res) => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.$modal.msgSuccess("操作成功");
|
this.$modal.msgSuccess("操作成功");
|
||||||
this.$emit('successSubmit')
|
this.$emit('successSubmit')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
createGroupTeam({ ...this.form }).then((res) => {
|
this.form.status = 1
|
||||||
|
this.form.triggerOrigin = 1
|
||||||
|
orderCreate({ ...this.form }).then((res) => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.$modal.msgSuccess("操作成功");
|
this.$modal.msgSuccess("操作成功");
|
||||||
this.$emit('successSubmit')
|
this.$emit('successSubmit')
|
||||||
@ -236,6 +285,13 @@ export default {
|
|||||||
},
|
},
|
||||||
formClear() {
|
formClear() {
|
||||||
this.$refs.orderAddForm.resetFields()
|
this.$refs.orderAddForm.resetFields()
|
||||||
|
this.form.materialMethod = 1
|
||||||
|
this.form.price = 0.00
|
||||||
|
this.form.planQuantity = 0
|
||||||
|
this.planFinishTime = ''
|
||||||
|
this.planStartTime = ''
|
||||||
|
this.form.planFinishTime = ''
|
||||||
|
this.form.planStartTime = ''
|
||||||
this.isEdit = false
|
this.isEdit = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<method-btn
|
<method-btn
|
||||||
v-if="tableBtn.length"
|
v-if="tableBtn.length"
|
||||||
slot="handleBtn"
|
slot="handleBtn"
|
||||||
:width="80"
|
:width="250"
|
||||||
label="操作"
|
label="操作"
|
||||||
:method-list="tableBtn"
|
:method-list="tableBtn"
|
||||||
@clickBtn="handleClick"
|
@clickBtn="handleClick"
|
||||||
@ -41,12 +41,37 @@
|
|||||||
<order-add ref="orderAdd" @successSubmit="successSubmit" />
|
<order-add ref="orderAdd" @successSubmit="successSubmit" />
|
||||||
</base-dialog>
|
</base-dialog>
|
||||||
<!-- 查看详情 -->
|
<!-- 查看详情 -->
|
||||||
|
<!-- 新增工单 -->
|
||||||
|
<base-dialog
|
||||||
|
:dialogTitle="workIssueTitle"
|
||||||
|
:dialogVisible="addWorkOrdervisible"
|
||||||
|
@cancel="addWorkOrderCancel"
|
||||||
|
@confirm="addWorkOrderConfirm"
|
||||||
|
:before-close="addWorkOrderCancel"
|
||||||
|
width='70%'
|
||||||
|
>
|
||||||
|
<add-work-order ref="addWorkOrder" @successSubmit="addWorkOrderSubmit" />
|
||||||
|
</base-dialog>
|
||||||
|
<!-- 绑定工单 -->
|
||||||
|
<!-- <base-dialog
|
||||||
|
dialogTitle="绑定工单"
|
||||||
|
:dialogVisible="bindWorkOrdervisible"
|
||||||
|
@cancel="bindWorkOrderCancel"
|
||||||
|
@confirm="bindWorkOrderConfirm"
|
||||||
|
:before-close="bindWorkOrderCancel"
|
||||||
|
width='70%'
|
||||||
|
>
|
||||||
|
<bind-work-order ref="bindWorkOrder" @successSubmit="bindWorkOrderSubmit" />
|
||||||
|
</base-dialog> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { parseTime } from '@/utils/ruoyi'
|
import { parseTime } from '@/utils/ruoyi'
|
||||||
import { getOrderPage } from '@/api/base/orderManage'
|
import { getOrderPage, orderDelete } from '@/api/base/orderManage'
|
||||||
import OrderAdd from './components/orderAdd.vue'
|
import OrderAdd from './components/orderAdd'
|
||||||
|
import AddWorkOrder from './components/addWorkOrder'
|
||||||
|
import BindWorkOrder from './components/bindWorkOrder'
|
||||||
|
import { publicFormatter } from '@/utils/dict';
|
||||||
const tableProps = [
|
const tableProps = [
|
||||||
{
|
{
|
||||||
prop: 'createTime',
|
prop: 'createTime',
|
||||||
@ -61,46 +86,49 @@ const tableProps = [
|
|||||||
{
|
{
|
||||||
prop: 'code',
|
prop: 'code',
|
||||||
label: '订单编码',
|
label: '订单编码',
|
||||||
minWidth: 220
|
minWidth: 180
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'num',
|
prop: 'customerId',
|
||||||
label: '客户'
|
label: '客户(?)'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'leaderName',
|
prop: 'triggerOrigin',
|
||||||
label: '来源'
|
label: '来源',
|
||||||
|
filter: publicFormatter('order_Origin')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'leaderName1',
|
prop: 'priority',
|
||||||
label: '优先级'
|
label: '优先级',
|
||||||
|
filter: publicFormatter('order_priority')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'leaderNam1e',
|
prop: 'status',
|
||||||
label: '订单状态'
|
label: '订单状态',
|
||||||
|
filter: publicFormatter('order_status')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'leaderName3',
|
prop: 'planQuantity',
|
||||||
label: '计划加工量'
|
label: '计划加工量'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'leaderName9',
|
prop: 'actualQuantity',
|
||||||
label: '实际加工量'
|
label: '实际加工量'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'leaderN4ame',
|
prop: 'planProductId',
|
||||||
label: '产品'
|
label: '产品(?)'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'leade2rName',
|
prop: 'unit',
|
||||||
label: '单位'
|
label: '单位(?)'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'leaderN11ame',
|
prop: 'price',
|
||||||
label: '单价(元)'
|
label: '单价(元)'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'leaderName22',
|
prop: 'workOrderNum',
|
||||||
label: '工单数量'
|
label: '工单数量'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -166,6 +194,24 @@ export default {
|
|||||||
list: [],
|
list: [],
|
||||||
tableH: this.tableHeight(260),
|
tableH: this.tableHeight(260),
|
||||||
tableBtn: [
|
tableBtn: [
|
||||||
|
this.$auth.hasPermi('base:group-team:update')
|
||||||
|
? {
|
||||||
|
type: 'add',
|
||||||
|
btnName: '新增工单'
|
||||||
|
}
|
||||||
|
: undefined,
|
||||||
|
this.$auth.hasPermi('base:group-team:update')
|
||||||
|
? {
|
||||||
|
type: 'bind',
|
||||||
|
btnName: '绑定工单'
|
||||||
|
}
|
||||||
|
: undefined,
|
||||||
|
this.$auth.hasPermi('base:group-team:update')
|
||||||
|
? {
|
||||||
|
type: 'detail',
|
||||||
|
btnName: '详情'
|
||||||
|
}
|
||||||
|
: undefined,
|
||||||
this.$auth.hasPermi('base:group-team:update')
|
this.$auth.hasPermi('base:group-team:update')
|
||||||
? {
|
? {
|
||||||
type: 'edit',
|
type: 'edit',
|
||||||
@ -180,20 +226,29 @@ export default {
|
|||||||
: undefined
|
: undefined
|
||||||
].filter((v) => v),
|
].filter((v) => v),
|
||||||
addOrEditTitle: '',
|
addOrEditTitle: '',
|
||||||
centervisible: false
|
centervisible: false,
|
||||||
|
priorityList: this.getDictDatas(this.DICT_TYPE.ORDER_PRIORITY),
|
||||||
|
workIssueTitle: '',
|
||||||
|
addWorkOrdervisible: false
|
||||||
|
// bindWorkOrdervisible: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: { OrderAdd },
|
components: { OrderAdd, AddWorkOrder, BindWorkOrder },
|
||||||
created() {
|
created() {
|
||||||
window.addEventListener('resize', () => {
|
window.addEventListener('resize', () => {
|
||||||
this.tableH = this.tableHeight(260)
|
this.tableH = this.tableHeight(260)
|
||||||
})
|
})
|
||||||
|
this.getSelectList()
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getSelectList() {
|
||||||
|
console.log(this.getDictDatas(this.DICT_TYPE.ORDER_PRIORITY))
|
||||||
|
},
|
||||||
getList() {
|
getList() {
|
||||||
getOrderPage({...this.queryParams}).then(res => {
|
getOrderPage({...this.queryParams}).then(res => {
|
||||||
console.log(res)
|
this.list = res.data.records || []
|
||||||
|
this.total = res.data.total || 0
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
buttonClick(val) {
|
buttonClick(val) {
|
||||||
@ -211,21 +266,52 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.addOrEditTitle = '新增'
|
this.addOrEditTitle = '新增'
|
||||||
this.centervisible = true
|
this.centervisible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.orderAdd.init()
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleClick(val) {
|
handleClick(val) {
|
||||||
|
console.log(val)
|
||||||
switch (val.type) {
|
switch (val.type) {
|
||||||
case 'edit':
|
case 'edit':
|
||||||
this.addOrEditTitle = '编辑'
|
this.addOrEditTitle = '编辑'
|
||||||
this.$nextTick(() => {
|
|
||||||
this.$refs.groupList.init(val.data.id)
|
|
||||||
})
|
|
||||||
this.centervisible = true
|
this.centervisible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.orderAdd.init(val.data.id)
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 'delete':
|
||||||
|
this.handleDelete(val.data)
|
||||||
|
break
|
||||||
|
case 'detail':
|
||||||
|
break
|
||||||
|
case 'add':
|
||||||
|
this.workIssueTitle = '新增工单'
|
||||||
|
this.addWorkOrdervisible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.addWorkOrder.init(val.data.id, 'add')
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 'bind':
|
||||||
|
this.workIssueTitle = '绑定工单'
|
||||||
|
this.addWorkOrdervisible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.addWorkOrder.init(val.data.id, 'bind')
|
||||||
|
})
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
this.handleDelete(val.data)
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// 删除
|
||||||
|
handleDelete(val) {
|
||||||
|
this.$modal.confirm('是否确认删除"' + val.name + '"的数据项?').then(function() {
|
||||||
|
return orderDelete({ id: val.id })
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("操作成功");
|
||||||
|
}).catch(() => {});
|
||||||
|
},
|
||||||
// 新增
|
// 新增
|
||||||
handleCancel() {
|
handleCancel() {
|
||||||
this.$refs.orderAdd.formClear()
|
this.$refs.orderAdd.formClear()
|
||||||
@ -239,6 +325,29 @@ export default {
|
|||||||
this.handleCancel()
|
this.handleCancel()
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
|
// 下发新增
|
||||||
|
addWorkOrderCancel() {
|
||||||
|
this.$refs.addWorkOrder.formClear()
|
||||||
|
this.addWorkOrdervisible = false
|
||||||
|
},
|
||||||
|
addWorkOrderConfirm() {
|
||||||
|
this.$refs.addWorkOrder.addWorkOrderSubmit()
|
||||||
|
},
|
||||||
|
addWorkOrderSubmit() {
|
||||||
|
this.addWorkOrderCancel()
|
||||||
|
this.getList()
|
||||||
|
}
|
||||||
|
// bindWorkOrderCancel() {
|
||||||
|
// this.$refs.bindWorkOrder.formClear()
|
||||||
|
// this.bindWorkOrdervisible = false
|
||||||
|
// },
|
||||||
|
// bindWorkOrderConfirm() {
|
||||||
|
// this.$refs.bindWorkOrder.bindWorkOrderSubmit()
|
||||||
|
// },
|
||||||
|
// bindWorkOrderSubmit() {
|
||||||
|
// this.bindWorkOrderCancel()
|
||||||
|
// this.getList()
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
Loading…
Reference in New Issue
Block a user