Compare commits

..

No commits in common. "319e0ac90ddc7ed627c165e1c273ec14172da5c4" and "4bf610eeb1bbdd82e52765b380d805ba51fd2f8b" have entirely different histories.

6 changed files with 863 additions and 1033 deletions

View File

@ -1,7 +1,7 @@
### ###
# @Author: Do not edit # @Author: Do not edit
# @Date: 2023-08-29 09:40:39 # @Date: 2023-08-29 09:40:39
# @LastEditTime: 2024-11-07 09:29:23 # @LastEditTime: 2024-10-21 16:41:54
# @LastEditors: zwq # @LastEditors: zwq
# @Description: # @Description:
### ###
@ -12,7 +12,16 @@ ENV = 'development'
VUE_APP_TITLE = MES系统 VUE_APP_TITLE = MES系统
# 芋道管理系统/开发环境 # 芋道管理系统/开发环境
# VUE_APP_BASE_API = 'http://172.16.21.222:48082' # 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.4.173:48080'
# VUE_APP_BASE_API = 'http://192.168.2.173:48080'
# VUE_APP_BASE_API = 'http://192.168.1.81:48082'
# VUE_APP_BASE_API = 'http://192.168.1.8:48082'
# VUE_APP_BASE_API = 'http://192.168.4.159:48080'
# 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://mes2.kszny.picaiba.com' VUE_APP_BASE_API = 'http://mes2.kszny.picaiba.com'

View File

@ -207,11 +207,11 @@ export function getDetailTree(data) {
params: data params: data
}) })
} }
export function getDetailTreeInfo(query) { export function getDetailTreeInfo(data) {
return request({ return request({
url: 'base/order/getDetailTreeInfoByIdNew', url: 'base/order/getDetailTreeInfoById',
method: 'get', method: 'get',
params: query params: data
}) })
} }

View File

@ -1,221 +1,135 @@
<template> <template>
<el-form <el-form ref="addWorkOrder" :rules="rules" label-width="130px" :model="form" label-position='top'>
ref="addWorkOrder"
:rules="rules"
label-width="130px"
:model="form"
label-position="top">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="6"> <el-col :span='6'>
<el-form-item label="工单模式"> <el-form-item label="工单名称" prop="name" v-if='!isBind'>
<el-radio-group v-model="isBind">
<el-radio :label="true">绑定工单</el-radio>
<el-radio :label="false">新增工单</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="工单名称" prop="name" v-if="!isBind">
<el-input v-model="form.name"></el-input> <el-input v-model="form.name"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="工单名称" prop="workOrderId" v-if="isBind"> <el-form-item label="工单名称" prop="workOrderId" v-if='isBind'>
<el-select <el-select v-model="form.workOrderId" placeholder="请选择" style="width: 100%;" filterable
v-model="form.workOrderId"
placeholder="请选择"
style="width: 100%"
filterable
@change="getWorkOrderMsg"> @change="getWorkOrderMsg">
<el-option <el-option v-for="item in workOrderList" :key="item.id" :label="item.name" :value="item.id">
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="6">
<el-form-item label="工单编码" prop="code">
<el-input v-model="form.code" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="产品名称" prop="planProductId">
<el-select
v-model="form.planProductId"
placeholder="请选择"
disabled
style="width: 100%">
<el-option
v-for="item in productList"
:key="item.id"
:label="item.name + ' | ' + item.specifications"
:value="item.id">
<span style="float: left">{{ item.name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">
{{ item.specifications }}
</span>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span='6'>
<el-form-item label="计划开始时间"> <el-form-item label="工单编码" prop="code">
<el-date-picker <el-input v-model="form.code" disabled></el-input>
v-model="planStartTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
placeholder="选择日期"
:disabled="isBind"></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span='6'>
<el-form-item label="计划完成时间"> <el-form-item label="产品名称" prop="planProductId">
<el-date-picker <el-select v-model="form.planProductId" placeholder="请选择" disabled style="width: 100%;">
v-model="planFinishTime" <el-option v-for="item in productList" :key="item.id" :label="item.name+' | '+item.specifications"
type="datetime" :value="item.id">
value-format="yyyy-MM-dd HH:mm:ss" <span style="float: left">{{ item.name }}</span>
style="width: 100%" <span style="float: right; color: #8492a6; font-size: 13px">{{ item.specifications }}</span>
placeholder="选择日期" </el-option>
:disabled="isBind"></el-date-picker>
</el-form-item>
</el-col>
<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-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="6">
<el-form-item label="关联工艺" prop="processFlowId">
<el-select
v-model="form.processFlowId"
placeholder="请选择"
disabled
style="width: 100%">
<el-option
v-for="item in processFlowList"
:key="item.id"
:label="item.name"
:value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span='6'>
<el-form-item label="计划开始时间">
<el-date-picker v-model="planStartTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%;" placeholder="选择日期" :disabled="isBind">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="计划完成时间">
<el-date-picker v-model="planFinishTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%;" placeholder="选择日期" :disabled="isBind">
</el-date-picker>
</el-form-item>
</el-col>
<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-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='6'>
<el-form-item label="关联工艺" prop="processFlowId">
<el-select v-model="form.processFlowId" placeholder="请选择" disabled 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-row>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="物料计算方式" prop="materialMethod"> <el-form-item label="物料计算方式" prop="materialMethod">
<el-select <el-select v-model="form.materialMethod" placeholder="请选择" style="width: 100%;" disabled>
v-model="form.materialMethod"
placeholder="请选择"
style="width: 100%"
disabled>
<el-option label="产品基础BOM" :value="1"></el-option> <el-option label="产品基础BOM" :value="1"></el-option>
<el-option label="工艺扩展BOM" :value="2"></el-option> <el-option label="工艺扩展BOM" :value="2"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span='6'>
<el-form-item label="优先级" prop="priority"> <el-form-item label="优先级" prop="priority">
<el-select <el-select v-model="form.priority" placeholder="请选择" style="width: 100%;" :disabled="isBind">
v-model="form.priority" <el-option v-for="item in getDictDatas(DICT_TYPE.ORDER_PRIORITY)" :key="item.value" :label="item.label"
placeholder="请选择" :value="item.value">
style="width: 100%" </el-option>
:disabled="isBind">
<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-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span='6'>
<el-form-item label="工单类型" prop="type"> <el-form-item label="工单类型" prop="type">
<el-select <el-select v-model="form.type" placeholder="请选择" style="width: 100%;" :disabled="isBind">
v-model="form.type" <el-option v-for="item in workOrderTypeList" :key="item.id" :label="item.name" :value="item.id">
placeholder="请选择" </el-option>
style="width: 100%"
:disabled="isBind">
<el-option
v-for="item in workOrderTypeList"
:key="item.id"
:label="item.name"
:value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span='6'>
<el-form-item label="关联产线" prop="productLineId"> <el-form-item label="关联产线" prop="productLineId">
<el-select <el-select v-model="form.productLineId" placeholder="请选择" multiple style="width: 100%;" :disabled="isBind">
v-model="form.productLineId" <el-option v-for="item in productLineList" :key="item.id" :label="item.name" :value="item.id">
placeholder="请选择" </el-option>
multiple
style="width: 100%"
:disabled="isBind">
<el-option
v-for="item in productLineList"
:key="item.id"
:label="item.name"
:value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> </el-row>
<el-row :gutter="20">
<el-col :span='6'>
<el-form-item label="负责人" prop="workers"> <el-form-item label="负责人" prop="workers">
<el-input v-model="form.workers" :disabled="isBind"></el-input> <el-input v-model="form.workers" :disabled="isBind"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span='6'>
<el-form-item label="负责部门" prop="deptId"> <el-form-item label="负责部门" prop="deptId">
<el-select <el-select v-model="form.deptId" placeholder="请选择关联产线" style="width: 100%;">
v-model="form.deptId" <el-option v-for="item in deptList" :key="item.id" :label="item.name" :value="item.id">
placeholder="请选择关联产线" </el-option>
style="width: 100%">
<el-option
v-for="item in deptList"
:key="item.id"
:label="item.name"
:value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span='6'>
<el-form-item label="计划分配订单量" prop="planAssignmentQuantity"> <el-form-item label="计划分配订单量" prop="planAssignmentQuantity">
<el-input-number <el-input-number v-model="form.planAssignmentQuantity" :min="0" :max="9999999999999" style="width: 100%;">
v-model="form.planAssignmentQuantity" </el-input-number>
:min="0"
:max="9999999999999"
style="width: 100%"></el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</template> </template>
<script> <script>
import { getProductAll } from '@/api/base/product'; import { getProductAll } from '@/api/base/product'
import { import { getProcessFlowList, getWorkOrderCode, orderIssue, workOrderList, getWorkOrderById } from '@/api/base/orderManage'
getProcessFlowList, import { getLineAll } from '@/api/base/productionLine'
getWorkOrderCode,
orderIssue,
workOrderList,
getWorkOrderById,
} from '@/api/base/orderManage';
import { getLineAll } from '@/api/base/productionLine';
import { listDept } from '@/api/system/dept'; import { listDept } from '@/api/system/dept';
import moment from 'moment'; import moment from 'moment'
export default { export default {
name: 'AddWorkOrder', name: 'AddWorkOrder',
data() { data() {
@ -229,7 +143,7 @@ export default {
planStartTime: '', planStartTime: '',
planFinishTime: '', planFinishTime: '',
planAssignQuantity: 0, planAssignQuantity: 0,
deptId: undefined, deptId:undefined,
planQuantity: 0, planQuantity: 0,
processFlowId: '', processFlowId: '',
materialMethod: 1, materialMethod: 1,
@ -237,95 +151,68 @@ export default {
productLineId: [], productLineId: [],
type: '', type: '',
workers: '', workers: '',
planAssignmentQuantity: '', planAssignmentQuantity: ''
}, },
deptList: [], deptList:[],
rules: { rules: {
name: [ name: [{ required: true, message: "工单名称不能为空", trigger: "blur" }],
{ required: true, message: '工单名称不能为空', trigger: 'blur' }, planProductId: [{ required: true, message: "产品名称不能为空", trigger: "change" }],
], planAssignQuantity: [{ required: true, message: "计划投入数量不能为空", trigger: "blur" }],
planProductId: [ planQuantity: [{ required: true, message: "计划生产数量不能为空", trigger: "blur" }],
{ required: true, message: '产品名称不能为空', trigger: 'change' }, productLineId: [{ required: true, message: "产线不能为空", trigger: "change" }],
], planAssignmentQuantity: [{ required: true, message: "计划分配订单量不能为空", trigger: "blur" }]
planAssignQuantity: [
{ required: true, message: '计划投入数量不能为空', trigger: 'blur' },
],
planQuantity: [
{ required: true, message: '计划生产数量不能为空', trigger: 'blur' },
],
productLineId: [
{ required: true, message: '产线不能为空', trigger: 'change' },
],
planAssignmentQuantity: [
{
required: true,
message: '计划分配订单量不能为空',
trigger: 'blur',
},
],
}, },
productList: [], productList: [],
processFlowList: [], processFlowList: [],
productLineList: [], productLineList: [],
workOrderTypeList: [ workOrderTypeList: [
{ id: 1, name: '标准工单' }, {id: 1,name:'标准工单'},
{ id: 2, name: '特殊工单' }, {id: 2, name:'特殊工单'}
], ],
planStartTime: '', planStartTime: '',
planFinishTime: '', planFinishTime: '',
isBind: false, isBind: false,
workOrderList: [], workOrderList: []
orderData: {}, }
};
}, },
methods: { methods: {
init(data, param) { init(data, param) {
this.isBind = true; this.form.orderId = data.id
this.orderData = data; this.getList()
this.form.orderId = data.id; if (param === 'add') {
this.getList(); this.isBind = false
}, getWorkOrderCode().then(res => {
changeAdd() { this.form.code = res.data || ''
if (this.isBind) { })
this.isBind = false; this.form.planProductId = data.planProductId
getWorkOrderCode().then((res) => { this.form.processFlowId = data.processFlowId
this.form.code = res.data || ''; this.form.materialMethod = data.materialMethod
}); }else{//
this.form.orderId = null; this.isBind = true
this.form.planProductId = this.orderData.planProductId;
this.form.processFlowId = this.orderData.processFlowId;
this.form.materialMethod = this.orderData.materialMethod;
} else {
this.isBind = true;
this.form.orderId = this.orderData.id;
this.form.planProductId = null;
this.form.processFlowId = null;
this.form.materialMethod = null;
this.form.code = null;
} }
}, },
getList() { getList() {
listDept().then((res) => { listDept().then(res => {
this.deptList = res.data || []; this.deptList = res.data || []
}); })
// //
getProductAll().then((res) => { getProductAll().then(res => {
this.productList = res.data || []; this.productList = res.data || []
}); })
// 线 // 线
getLineAll().then((res) => { getLineAll().then(res => {
this.productLineList = res.data || []; this.productLineList = res.data || []
}); })
// //
getProcessFlowList().then((res) => { getProcessFlowList().then(res => {
this.processFlowList = res.data || []; this.processFlowList = res.data || []
}); })
// list // list
workOrderList({ workOrderList({
status: 1, status: 1
}).then((res) => { }).then(res => {
this.workOrderList = res.data || []; this.workOrderList = res.data || []
}); })
}, },
addWorkOrderSubmit() { addWorkOrderSubmit() {
this.$refs['addWorkOrder'].validate((valid) => { this.$refs['addWorkOrder'].validate((valid) => {
@ -335,27 +222,23 @@ export default {
orderIssue({ orderIssue({
workOrderId: this.form.workOrderId, workOrderId: this.form.workOrderId,
orderId: this.form.orderId, orderId: this.form.orderId,
planAssignmentQuantity: this.form.planAssignmentQuantity, planAssignmentQuantity: this.form.planAssignmentQuantity
}).then((res) => { }).then((res) => {
if (res.code === 0) { if (res.code === 0) {
this.$modal.msgSuccess('操作成功'); this.$modal.msgSuccess("操作成功")
this.$emit('addWorkOrderSubmit'); this.$emit('addWorkOrderSubmit')
} }
}); })
} else { } else {
// //
let _this = this; let _this = this
_this.form.planStartTime = _this.planStartTime _this.form.planStartTime = _this.planStartTime ? new Date(_this.planStartTime).valueOf() : ''
? new Date(_this.planStartTime).valueOf() _this.form.planFinishTime = _this.planFinishTime ? new Date(_this.planFinishTime).valueOf() : ''
: ''; orderIssue({ ..._this.form }).then(res => {
_this.form.planFinishTime = _this.planFinishTime
? new Date(_this.planFinishTime).valueOf()
: '';
orderIssue({ ..._this.form }).then((res) => {
if (res.code === 0) { if (res.code === 0) {
_this.$modal.msgSuccess('操作成功'); _this.$modal.msgSuccess("操作成功")
let name = this.form.name; let name = this.form.name
_this.$emit('addWorkOrderSubmit'); _this.$emit('addWorkOrderSubmit')
// 使 // 使
// _this.$modal.confirm('使?').then(function() { // _this.$modal.confirm('使?').then(function() {
// _this.$router.push({ // _this.$router.push({
@ -363,55 +246,45 @@ export default {
// }) // })
// }) // })
} }
}); })
} }
} else { } else {
return false; return false
} }
}); })
}, },
formClear() { formClear() {
this.$refs.addWorkOrder.resetFields(); this.$refs.addWorkOrder.resetFields()
this.form.materialMethod = 1; this.form.materialMethod = 1
this.form.planAssignQuantity = 0; this.form.planAssignQuantity = 0
this.form.planQuantity = 0; this.form.planQuantity = 0
this.planFinishTime = ''; this.planFinishTime = ''
this.planStartTime = ''; this.planStartTime = ''
this.form.planFinishTime = ''; this.form.planFinishTime = ''
this.form.planStartTime = ''; this.form.planStartTime = ''
this.isBind = false; this.isBind = false
}, },
// //
getWorkOrderMsg() { getWorkOrderMsg() {
if (this.form.workOrderId) { if (this.form.workOrderId) {
getWorkOrderById({ id: this.form.workOrderId }).then((res) => { getWorkOrderById({id:this.form.workOrderId}).then(res => {
if (res.code === 0) { if (res.code === 0) {
this.form.code = res.data.code; this.form.code = res.data.code
this.form.planProductId = res.data.planProductId; this.form.planProductId = res.data.planProductId
this.planStartTime = res.data.planStartTime this.planStartTime = res.data.planStartTime ? moment.unix(res.data.planStartTime).format('YYYY-MM-DD HH:mm:ss') : null
? moment this.planFinishTime = res.data.planFinishTime ? moment.unix(res.data.planFinishTime).format('YYYY-MM-DD HH:mm:ss') : null
.unix(res.data.planStartTime) this.form.planAssignQuantity = res.data.planAssignQuantity
.format('YYYY-MM-DD HH:mm:ss') this.form.planQuantity = res.data.planQuantity
: null; this.form.processFlowId = res.data.processFlowId
this.planFinishTime = res.data.planFinishTime this.form.materialMethod = res.data.materialMethod
? moment this.form.priority = res.data.priority ? res.data.priority + '' : ''
.unix(res.data.planFinishTime) this.form.productLineId = res.data.productLineIds
.format('YYYY-MM-DD HH:mm:ss') this.form.type = res.data.type
: null; this.form.workers = res.data.workers
this.form.planAssignQuantity = res.data.planAssignQuantity;
this.form.planQuantity = res.data.planQuantity;
this.form.processFlowId = res.data.processFlowId;
this.form.materialMethod = res.data.materialMethod;
this.form.priority = res.data.priority
? res.data.priority + ''
: '';
this.form.productLineId = res.data.productLineIds;
this.form.type = res.data.type;
this.form.workers = res.data.workers;
} }
}); })
} }
}, }
}, }
}; }
</script> </script>

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2024-09-26 14:08:58 * @Date: 2024-09-26 14:08:58
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2024-11-06 09:52:59 * @LastEditTime: 2024-11-05 14:19:46
* @Description: * @Description:
--> -->
<template> <template>
@ -49,7 +49,6 @@ import { parseTime } from '@/utils/ruoyi';
import inputArea from './inputArea.vue'; import inputArea from './inputArea.vue';
import selectMember from './selectMember'; import selectMember from './selectMember';
import selectTime from './selectTime'; import selectTime from './selectTime';
import { publicFormatter } from '@/utils/dict'
const tableProps = [ const tableProps = [
{ {
prop: 'name', prop: 'name',
@ -62,16 +61,19 @@ const tableProps = [
prop: 'code', prop: 'code',
label: '订单编码', label: '订单编码',
minWidth: 180, minWidth: 180,
subcomponent: inputArea,
}, },
{ {
prop: 'productName', prop: 'productName',
label: '产品', label: '产品',
showOverflowtooltip: true, showOverflowtooltip: true,
subcomponent: inputArea,
}, },
{ {
prop: 'specifications', prop: 'specifications',
label: '产品规格', label: '产品规格',
showOverflowtooltip: true, showOverflowtooltip: true,
subcomponent: inputArea,
}, },
// { // {
// prop: 'priority', // prop: 'priority',
@ -95,20 +97,19 @@ const tableProps = [
prop: 'customerId', prop: 'customerId',
label: '客户', label: '客户',
showOverflowtooltip: true, showOverflowtooltip: true,
// subcomponent: selectMember, subcomponent: selectMember,
}, },
{ {
prop: 'price', prop: 'price',
label: '单价', label: '单价',
width: 100, width: 100,
// subcomponent: inputArea, subcomponent: inputArea,
}, },
{ {
prop: 'packSpec', prop: 'packSpec',
label: '包装规格', label: '包装规格',
width: 100, width: 100,
filter: publicFormatter('pack_spec') subcomponent: selectMember,
// subcomponent: selectMember,
}, },
{ {
prop: 'remark', prop: 'remark',
@ -170,7 +171,6 @@ export default {
this.list = res.data; this.list = res.data;
this.list.forEach((item, index) => { this.list.forEach((item, index) => {
item.name = item.name + '-' + (index + 1); item.name = item.name + '-' + (index + 1);
item.code = item.code + '-' + (index + 1);
}); });
}); });
} else { } else {
@ -249,6 +249,7 @@ export default {
// } // }
// }, // },
inputChange(data) { inputChange(data) {
console.log(data)
switch (data.sType) { switch (data.sType) {
case 1: case 1:
this.list[data._pageIndex - 1][data.prop] = data[data.prop]; this.list[data._pageIndex - 1][data.prop] = data[data.prop];

View File

@ -1,209 +1,108 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<search-bar <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
:formConfigs="formConfig" <!-- 列表 -->
ref="searchBarForm" <base-table ref="table" @row-click="handleRowClick" row-key="id"
@headBtnClick="buttonClick" /> :tree-props="{ children: 'children'}"
:page="queryParams.pageNo" :limit="queryParams.pageSize" :table-props="tableProps" :table-data="list"
<el-table :max-height="tableH">
:data="list" <method-btn v-if="tableBtn.length" slot="handleBtn" :width="240" label="操作" :method-list="tableBtn"
:header-cell-style="{ @clickBtn="handleClick" />
background: '#F2F4F9', </base-table>
color: '#606266', <pagination :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" :total="total"
}"
class="orderTable"
v-loading="loading"
border
style="width: 100%"
:max-height="tableH"
:row-class-name="tableRowClassName"
ref="table"
row-key="id"
lazy
:load="load"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
<el-table-column prop="grade" label="订单类型" width="150">
<template slot-scope="scope">
{{
scope.row.grade != null
? ['一级订单', '二级订单', '三级订单'][scope.row.grade - 1]
: '-'
}}
</template>
</el-table-column>
<el-table-column prop="createTime" label="添加时间" width="160">
<template v-slot="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column
prop="name"
label="订单名称"
show-overflow-tooltip
min-width="120" />
<el-table-column prop="code" label="订单编码" width="160" />
<el-table-column
prop="customerName"
label="客户"
show-overflow-tooltip
min-width="120" />
<el-table-column prop="status" label="订单状态">
<template v-slot="scope">
<span>
{{ getDictDataLabel(DICT_TYPE.ORDER_STATUS, scope.row.status) }}
</span>
</template>
</el-table-column>
<el-table-column prop="planQuantity" label="计划加工量" width="100" />
<el-table-column prop="actualQuantity" label="实际加工量" width="100" />
<el-table-column
prop="productName"
label="产品"
show-overflow-tooltip
min-width="120" />
<el-table-column prop="deliveTime" label="交货时间" width="160">
<template v-slot="scope">
<span>{{ parseTime(scope.row.deliveTime) }}</span>
</template>
</el-table-column>
<el-table-column prop="workOrderNum" label="工单数量" width="140">
<template v-slot="scope">
<el-button @click="handleRoute" type="text">
{{ scope.row.workOrderNum }}
</el-button>
</template>
</el-table-column>
<el-table-column label="操作" width="340">
<template v-slot="scope">
<el-button
type="text"
:disabled="!(scope.row.status != 5 && scope.row.workOrderNum === 0)"
@click="handleClick({ data: scope.row, type: 'split' })"
v-hasPermi="['base:order-manage:split']">
拆分订单
</el-button>
<span style="margin: 0 4px; font-size: 18px; color: #e5e7eb">|</span>
<el-button
type="text"
:disabled="
!(
scope.row.status === 1 ||
scope.row.status === 2 ||
scope.row.status === 3
)
"
@click="handleClick({ data: scope.row, type: 'bind' })"
v-hasPermi="['base:order-manage:bindWorkOrder']">
绑定工单
</el-button>
<!-- addWorkOrder -->
<span style="margin: 0 4px; font-size: 18px; color: #e5e7eb">|</span>
<el-button
type="text"
:disabled="!(scope.row.status === 2 || scope.row.status === 3)"
@click="handleClick({ data: scope.row, type: 'complete' })"
v-hasPermi="['base:order-manage:bindWorkOrder']">
完成
</el-button>
<span style="margin: 0 4px; font-size: 18px; color: #e5e7eb">|</span>
<el-button
type="text"
@click="handleClick({ data: scope.row, type: 'detail' })"
v-hasPermi="['base:order-manage:detail']">
<span class="iconfont icon-detail primary-color" />
</el-button>
<span style="margin: 0 4px; font-size: 18px; color: #e5e7eb">|</span>
<el-button
type="text"
:disabled="
!(scope.row.status === 1 && scope.row.triggerOrigin === 1)
"
@click="handleClick({ data: scope.row, type: 'edit' })"
v-hasPermi="['base:order-manage:edit']">
<span
class="iconfont icon-edit"
:class="
!(scope.row.status === 1 && scope.row.triggerOrigin === 1)
? ''
: 'primary-color'
" />
</el-button>
<span style="margin: 0 4px; font-size: 18px; color: #e5e7eb">|</span>
<el-button
type="text"
:disabled="scope.row.status != 1"
@click="handleClick({ data: scope.row, type: 'void' })"
v-hasPermi="['base:order-manage:delete']">
作废
</el-button>
<span style="margin: 0 4px; font-size: 18px; color: #e5e7eb">|</span>
<el-button
type="text"
@click="handleClick({ data: scope.row, type: 'stop' })"
v-hasPermi="['base:order-manage:stop']">
终止
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
:total="total"
@pagination="getList" /> @pagination="getList" />
<!-- 新增&编辑 --> <!-- 新增&编辑 -->
<base-dialog <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="centervisible" @cancel="handleCancel"
:dialogTitle="addOrEditTitle" @confirm="handleConfirm" :before-close="handleCancel" width='60%'>
:dialogVisible="centervisible"
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
width="60%">
<order-add ref="orderAdd" @successSubmit="successSubmit" /> <order-add ref="orderAdd" @successSubmit="successSubmit" />
</base-dialog> </base-dialog>
<!-- 查看详情 --> <!-- 查看详情 -->
<!-- 新增工单 --> <!-- 新增工单 -->
<base-dialog <base-dialog :dialogTitle="workIssueTitle" :dialogVisible="addWorkOrdervisible" @cancel="addWorkOrderCancel"
:dialogTitle="workIssueTitle" @confirm="addWorkOrderConfirm" :before-close="addWorkOrderCancel" width='70%'>
:dialogVisible="addWorkOrdervisible" <add-work-order ref="addWorkOrder" @addWorkOrderSubmit="addWorkOrderSubmit" />
@cancel="addWorkOrderCancel"
@confirm="addWorkOrderConfirm"
:before-close="addWorkOrderCancel"
width="70%">
<add-work-order
ref="addWorkOrder"
@addWorkOrderSubmit="addWorkOrderSubmit" />
</base-dialog> </base-dialog>
<base-dialog <base-dialog :dialogTitle="splitTitle" :dialogVisible="splitWorkOrdervisible" @cancel="splitWorkOrderCancel"
:dialogTitle="splitTitle" @confirm="splitWorkOrderConfirm" :before-close="splitWorkOrderCancel" width='70%'>
:dialogVisible="splitWorkOrdervisible" <order-split ref="splitWorkOrder" @splitWorkOrderSubmit="splitWorkOrderSubmit" />
@cancel="splitWorkOrderCancel"
@confirm="splitWorkOrderConfirm"
:before-close="splitWorkOrderCancel"
width="70%">
<order-split
ref="splitWorkOrder"
@splitWorkOrderSubmit="splitWorkOrderSubmit" />
</base-dialog> </base-dialog>
</div> </div>
</template> </template>
<script> <script>
import { parseTime } from '@/utils/ruoyi'; import { parseTime } from '@/utils/ruoyi'
import { import { getOrderPage, orderDelete, customerList, orderFinish, orderVoid, orderStop } from '@/api/base/orderManage'
getOrderPage, import OrderAdd from './components/orderAdd'
orderDelete, import orderSplit from './components/orderSplit'
orderAssignmentList, import orderNum from './components/orderNum.vue'
orderFinish,
orderVoid,
orderStop,
} from '@/api/base/orderManage';
import OrderAdd from './components/orderAdd';
import orderSplit from './components/orderSplit';
import AddWorkOrder from './components/addWorkOrder';
import AddWorkOrder from './components/addWorkOrder'
import { publicFormatter } from '@/utils/dict'
const tableProps = [
// {
// prop: 'type',
// label: '',
// showOverflowtooltip: true
// },
{
prop: 'createTime',
label: '添加时间',
filter: parseTime,
minWidth: 160
},
{
prop: 'name',
label: '订单名称',
minWidth: 120,
showOverflowtooltip: true
},
{
prop: 'code',
label: '订单编码',
minWidth: 160
},
{
prop: 'customerName',
label: '客户',
showOverflowtooltip: true
},
// {
// prop: 'priority',
// label: '',
// filter: publicFormatter('order_priority')
// },
{
prop: 'status',
label: '订单状态',
filter: publicFormatter('order_status')
},
{
prop: 'planQuantity',
label: '计划加工量',
width: 100
},
{
prop: 'actualQuantity',
label: '实际加工量',
width: 100
},
{
prop: 'productName',
label: '产品',
showOverflowtooltip: true
},
{
prop: 'deliveTime',
label: '交货时间',
filter: parseTime,
minWidth: 160
},
{
prop: 'workOrderNum',
label: '工单数量',
subcomponent: orderNum,
}
]
export default { export default {
name: 'OrderManage', name: 'OrderManage',
data() { data() {
@ -213,7 +112,7 @@ export default {
type: 'input', type: 'input',
label: '订单名称', label: '订单名称',
placeholder: '订单名称', placeholder: '订单名称',
param: 'name', param: 'name'
}, },
{ {
type: 'select', type: 'select',
@ -221,124 +120,260 @@ export default {
selectOptions: this.getDictDatas(this.DICT_TYPE.ORDER_STATUS), selectOptions: this.getDictDatas(this.DICT_TYPE.ORDER_STATUS),
labelField: 'label', labelField: 'label',
valueField: 'value', valueField: 'value',
param: 'status', param: 'status'
}, },
{ {
type: 'datePicker', type: 'datePicker',
label: '时间段', label: '时间段',
dateType: 'daterange', dateType: 'daterange',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd',
valueFormat: 'yyyy-MM-dd', valueFormat: "yyyy-MM-dd",
rangeSeparator: '-', rangeSeparator: '-',
startPlaceholder: '开始时间', startPlaceholder: '开始时间',
endPlaceholder: '结束时间', endPlaceholder: '结束时间',
param: 'timeVal', param: 'timeVal',
defaultSelect: [], defaultSelect: [],
width: 250, width: 250
}, },
{ {
type: 'button', type: 'button',
btnName: '查询', btnName: '查询',
name: 'search', name: 'search',
color: 'primary', color: 'primary'
}, },
{ {
type: this.$auth.hasPermi('base:order-manage:create') type: this.$auth.hasPermi('base:order-manage:create') ? 'separate' : '',
? 'separate'
: '',
}, },
{ {
type: this.$auth.hasPermi('base:order-manage:create') ? 'button' : '', type: this.$auth.hasPermi('base:order-manage:create') ? 'button' : '',
btnName: '新增', btnName: '新增',
name: 'add', name: 'add',
color: 'success', color: 'success',
plain: true, plain: true
}, }
], ],
loading: false,
splitTitle: '拆分订单', splitTitle: '拆分订单',
splitWorkOrdervisible: false, splitWorkOrdervisible:false,
// //
queryParams: { queryParams: {
pageNo: 1, pageNo: 1,
pageSize: 20, pageSize: 20,
name: null, name: null,
status: null, status: null,
lastIssuedTime: [], lastIssuedTime: []
}, },
total: 0, total: 0,
tableProps,
list: [], list: [],
tableH: this.tableHeight(260), tableH: this.tableHeight(260),
tableBtn: [
this.$auth.hasPermi('base:order-manage:split')
? {
type: 'split',
btnName: '拆分订单',
showTip: '拆分订单',
showParam: {
type: '&',
data: [
{
type: 'unequal',
name: 'status',
value: 5
},
{
type: 'equal',
name: 'workOrderNum',
value: 0
},
]
}
}
: undefined,
this.$auth.hasPermi('base:order-manage:addWorkOrder')
? {
type: 'add',
btnName: '新增',
showTip: '新增工单',
showParam: {
type: '|',
data: [
{
type: 'equal',
name: 'status',
value: 1
},
{
type: 'equal',
name: 'status',
value: 2
},
{
type: 'equal',
name: 'status',
value: 3
}
]
}
}
: undefined,
this.$auth.hasPermi('base:order-manage:bindWorkOrder')
? {
type: 'bind',
btnName: '绑定',
showTip: '绑定工单',
showParam: {
type: '|',
data: [
{
type: 'equal',
name: 'status',
value: 1
},
{
type: 'equal',
name: 'status',
value: 2
},
{
type: 'equal',
name: 'status',
value: 3
}
]
}
}
: undefined,
this.$auth.hasPermi('base:order-manage:bindWorkOrder')
? {
type: 'complete',
btnName: '完成',
showTip: '完成订单',
showParam: {
type: '|',
data: [
{
type: 'equal',
name: 'status',
value: 2
},
{
type: 'equal',
name: 'status',
value: 3
}
]
}
}
: undefined,
this.$auth.hasPermi('base:order-manage:detail')
? {
type: 'detail',
btnName: '详情'
}
: undefined,
this.$auth.hasPermi('base:order-manage:edit')
? {
type: 'edit',
btnName: '编辑',
showParam: {
type: '&',
data: [
{
type: 'equal',
name: 'triggerOrigin',
value: 1
},
{
type: 'equal',
name: 'status',
value: 1
}
]
}
}
: undefined,
this.$auth.hasPermi('base:order-manage:delete')
? {
type: 'void',
btnName: '作废',
showParam: {
type: '&',
data: [
{
type: 'equal',
name: 'status',
value: 1
}
]
}
}
: undefined,
this.$auth.hasPermi('base:order-manage:stop')
? {
type: 'stop',
btnName: '终止',
// showParam: {
// type: '&',
// data: [
// {
// type: 'equal',
// name: 'status',
// value: 1
// }
// ]
// }
}
: undefined
].filter((v) => v),
addOrEditTitle: '', addOrEditTitle: '',
centervisible: false, centervisible: false,
expandedRowKeys: [], expandedRowKeys:[],
priorityList: this.getDictDatas(this.DICT_TYPE.ORDER_PRIORITY), priorityList: this.getDictDatas(this.DICT_TYPE.ORDER_PRIORITY),
workIssueTitle: '', workIssueTitle: '',
addWorkOrdervisible: false, addWorkOrdervisible: false,
orderDetailVisible: false, orderDetailVisible: false
}; }
}, },
components: { OrderAdd, AddWorkOrder, orderSplit }, components: { OrderAdd, AddWorkOrder,orderSplit },
created() { created() {
window.addEventListener('resize', () => { window.addEventListener('resize', () => {
this.tableH = this.tableHeight(260); this.tableH = this.tableHeight(260)
}); })
this.getList(); this.getList()
}, },
methods: { methods: {
load(tree, treeNode, resolve) { async handleRowClick(row) {
setTimeout(() => { console.log(row)
getOrderPage({ ...this.queryParams, parentId: tree.id }).then((res) => { if (!row.children) {
let arr = res.data.records || []; const queryParams = {
// if (arr.length > 0) { pageNo: this.queryParams.pageNo,
// arr.forEach((item) => { pageSize: this.queryParams.pageSize,
// item.hasChildren = true; name: this.queryParams.name,
// }); status: this.queryParams.status,
// } else { lastIssuedTime: this.queryParams.lastIssuedTime,
// this.$message(''); parentId: row.id
// } }
resolve(arr); const response = await getOrderPage(queryParams)
}); // row.children = response.data.records
}, 1000); this.list.forEach((ele) => {
if (ele.id === row.id) {
this.$set(this.list[row._pageIndex-1], 'children', response.data.records); //
}
})
row.hasChildren = true;
this.$set(row, 'expanded', true); //
} else {
row.expanded = !row.expanded; // /
}
// this.$nextTick(() => {
// const tableInstance = this.$refs.table.getTableRef();
// tableInstance.toggleRowExpansion(row);
// })
}, },
// async handleRowClick(row) {
// console.log(row);
// if (!row.children) {
// const queryParams = {
// pageNo: this.queryParams.pageNo,
// pageSize: this.queryParams.pageSize,
// name: this.queryParams.name,
// status: this.queryParams.status,
// lastIssuedTime: this.queryParams.lastIssuedTime,
// parentId: row.id,
// };
// const response = await getOrderPage(queryParams);
// // row.children = response.data.records
// this.list.forEach((ele) => {
// if (ele.id === row.id) {
// this.$set(
// this.list[row._pageIndex - 1],
// 'children',
// response.data.records
// ); //
// }
// });
// row.hasChildren = true;
// this.$set(row, 'expanded', true); //
// } else {
// row.expanded = !row.expanded; // /
// }
// // this.$nextTick(() => {
// // const tableInstance = this.$refs.table.getTableRef();
// // tableInstance.toggleRowExpansion(row);
// // })
// },
getList() { getList() {
this.loading = true; getOrderPage({...this.queryParams}).then(res => {
this.list = []; let arr = res.data.records || []
getOrderPage({ ...this.queryParams }).then((res) => { this.total = res.data.total || 0
let arr = res.data.records || [];
this.total = res.data.total || 0;
// if (arr.length > 0) { // if (arr.length > 0) {
// customerList().then(result => { // customerList().then(result => {
// let tempData = result.data || [] // let tempData = result.data || []
@ -351,178 +386,144 @@ export default {
// } // }
// item.price = item.price.toFixed(2) // item.price = item.price.toFixed(2)
// }) // })
this.list = arr; this.list = arr
this.loading = false;
// } // }
// }) // })
// }else { // }else {
// this.list = arr // this.list = arr
// } // }
}); })
}, },
buttonClick(val) { buttonClick(val) {
console.log(val)
if (val.btnName === 'search') { if (val.btnName === 'search') {
this.queryParams.name = val.name; this.queryParams.name = val.name
this.queryParams.status = val.status; this.queryParams.status = val.status
if (val.timeVal && val.timeVal.length > 0) { if (val.timeVal && val.timeVal.length > 0) {
this.queryParams.lastIssuedTime[0] = val.timeVal[0] + ' 00:00:00'; this.queryParams.lastIssuedTime[0] = val.timeVal[0] + ' 00:00:00'
this.queryParams.lastIssuedTime[1] = val.timeVal[1] + ' 23:59:59'; this.queryParams.lastIssuedTime[1] = val.timeVal[1] + ' 23:59:59'
} else { } else {
this.queryParams.lastIssuedTime = []; this.queryParams.lastIssuedTime = []
} }
this.getList(); this.getList()
} else { } else {
this.addOrEditTitle = '新增'; this.addOrEditTitle = '新增'
this.centervisible = true; this.centervisible = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.orderAdd.init(); this.$refs.orderAdd.init()
}); })
} }
}, },
handleClick(val) { handleClick(val) {
console.log(val); console.log(val)
switch (val.type) { switch (val.type) {
case 'edit': case 'edit':
this.addOrEditTitle = '编辑'; this.addOrEditTitle = '编辑'
this.centervisible = true; this.centervisible = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.orderAdd.init(val.data.id); this.$refs.orderAdd.init(val.data.id)
}); })
break; break
case 'delete': case 'delete':
this.handleDelete(val.data); this.handleDelete(val.data)
break; break
case 'detail': case 'detail':
this.$router.push({ this.$router.push({path: 'order-detail-data?orderId='+ val.data.id})
path: 'order-detail-data?orderId=' + val.data.id, break
});
break;
case 'add': case 'add':
this.workIssueTitle = '新增工单'; this.workIssueTitle = '新增工单'
this.addWorkOrdervisible = true; this.addWorkOrdervisible = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.addWorkOrder.init(val.data, 'add'); this.$refs.addWorkOrder.init(val.data, 'add')
}); })
break; break
case 'void': case 'void':
orderVoid({ id: val.data.id }).then((res) => { orderVoid({ id: val.data.id }).then((res) => {
console.log(res); console.log(res)
}); })
break; break
case 'split': case 'split':
this.splitTitle = '拆分订单'; this.splitTitle = '拆分订单'
this.splitWorkOrdervisible = true; this.splitWorkOrdervisible = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.splitWorkOrder.init(val.data); this.$refs.splitWorkOrder.init(val.data)
}); })
// orderVoid({ id: val.data.id }).then((res) => { // orderVoid({ id: val.data.id }).then((res) => {
// console.log(res) // console.log(res)
// }) // })
break; break
case 'bind': case 'bind':
this.workIssueTitle = '绑定工单'; this.workIssueTitle = '绑定工单'
this.addWorkOrdervisible = true; this.addWorkOrdervisible = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.addWorkOrder.init(val.data, 'bind'); this.$refs.addWorkOrder.init(val.data, 'bind')
}); })
break; break
case 'complete': case 'complete':
this.handleComplete(val.data); this.handleComplete(val.data)
break; break
case 'stop': case 'stop':
orderStop({ id: val.data.id }).then((res) => { orderStop({ id: val.data.id }).then((res) => {
this.getList(); this.getList()
}); })
break; break
default: default:
} }
}, },
// //
handleDelete(val) { handleDelete(val) {
this.$modal this.$modal.confirm('是否确认删除"' + val.name + '"的数据项?').then(function() {
.confirm('是否确认删除"' + val.name + '"的数据项?') return orderDelete({ id: val.id })
.then(function () { }).then(() => {
return orderDelete({ id: val.id });
})
.then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess('操作成功'); this.$modal.msgSuccess("操作成功");
}) }).catch(() => {});
.catch(() => {});
}, },
// //
handleComplete(val) { handleComplete(val) {
this.$modal this.$modal.confirm('是否确认完成订单"' + val.name + '"?').then(function() {
.confirm('是否确认完成订单"' + val.name + '"?') return orderFinish({ id: val.id })
.then(function () { }).then(() => {
return orderFinish({ id: val.id });
})
.then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess('操作成功'); this.$modal.msgSuccess("操作成功");
}) }).catch(() => {});
.catch(() => {});
}, },
// //
handleCancel() { handleCancel() {
this.$refs.orderAdd.formClear(); this.$refs.orderAdd.formClear()
this.centervisible = false; this.centervisible = false
this.addOrEditTitle = ''; this.addOrEditTitle = ''
}, },
handleConfirm() { handleConfirm() {
this.$refs.orderAdd.submitForm(); this.$refs.orderAdd.submitForm()
}, },
successSubmit() { successSubmit() {
this.handleCancel(); this.handleCancel()
this.getList(); this.getList()
}, },
// //
addWorkOrderCancel() { addWorkOrderCancel() {
this.$refs.addWorkOrder.formClear(); this.$refs.addWorkOrder.formClear()
this.addWorkOrdervisible = false; this.addWorkOrdervisible = false
}, },
addWorkOrderConfirm() { addWorkOrderConfirm() {
this.$refs.addWorkOrder.addWorkOrderSubmit(); this.$refs.addWorkOrder.addWorkOrderSubmit()
}, },
addWorkOrderSubmit() { addWorkOrderSubmit() {
this.addWorkOrderCancel(); this.addWorkOrderCancel()
this.getList(); this.getList()
}, },
splitWorkOrderCancel() { splitWorkOrderCancel() {
this.$refs.splitWorkOrder.formClear(); this.$refs.splitWorkOrder.formClear()
this.splitWorkOrdervisible = false; this.splitWorkOrdervisible = false
}, },
splitWorkOrderConfirm() { splitWorkOrderConfirm() {
this.$refs.splitWorkOrder.submitForm(); this.$refs.splitWorkOrder.submitForm()
}, },
splitWorkOrderSubmit() { splitWorkOrderSubmit() {
this.splitWorkOrderCancel(); this.splitWorkOrderCancel()
this.getList(); this.getList()
},
async handleRoute() {
const res = await orderAssignmentList({
orderIdList: [this.injectData.id],
});
console.log(res.data);
let arr = [];
res.data[this.injectData.id].forEach((ele) => {
arr.push(ele.workOrderId);
});
let woIdString = arr.join(',');
console.log(woIdString);
this.$router.push({
path: '/produce/core-work-order-detail?woIdString=' + woIdString,
});
},
tableRowClassName({ row, rowIndex }) {
if (row.grade === 2) {
return 'warning-row';
} else if (row.grade === 3) {
return 'success-row';
} }
return '';
},
// bindWorkOrderCancel() { // bindWorkOrderCancel() {
// this.$refs.bindWorkOrder.formClear() // this.$refs.bindWorkOrder.formClear()
// this.bindWorkOrdervisible = false // this.bindWorkOrdervisible = false
@ -534,40 +535,6 @@ export default {
// this.bindWorkOrderCancel() // this.bindWorkOrderCancel()
// this.getList() // this.getList()
// } // }
}, }
}; }
</script> </script>
<style scoped>
.iconfont {
font-family: 'iconfont' !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.delete-color {
color: #ff5454;
}
.primary-color {
color: #0b58ff;
}
.icon-detail:before {
content: '\e601';
}
.icon-edit:before {
content: '\e602';
}
.orderTable >>> .warning-row {
background: oldlace;
}
.orderTable >>> .success-row {
background: #f0f9eb;
}
.orderTable >>> tbody tr:hover > td {
background-color: unset !important;
}
</style>

View File

@ -38,16 +38,9 @@
{{ getDictDataLabel(DICT_TYPE.PACK_SPEC, orderMsg.packSpec) }} {{ getDictDataLabel(DICT_TYPE.PACK_SPEC, orderMsg.packSpec) }}
</div> </div>
</el-col> </el-col>
<el-col :span="3"> <el-col :span='3'>
<div class="blodTip">物料计算方式</div> <div class="blodTip">物料计算方式</div>
<div class="lightTip"> <div class="lightTip">{{orderMsg.materialMethod ? (orderMsg.materialMethod === 1 ? '产品基础' : '工艺扩展') : ''}}
{{
orderMsg.materialMethod
? orderMsg.materialMethod === 1
? '产品基础'
: '工艺扩展'
: ''
}}
</div> </div>
</el-col> </el-col>
<!-- <el-col :span="3"> <!-- <el-col :span="3">
@ -150,7 +143,6 @@
<el-tree <el-tree
:data="treeData" :data="treeData"
:props="defaultProps" :props="defaultProps"
default-expand-all
@node-click="handleNodeClick"></el-tree> @node-click="handleNodeClick"></el-tree>
</el-col> </el-col>
<el-col :span="18"> <el-col :span="18">
@ -193,23 +185,16 @@ const tableProps1 = [
filter: parseTime, filter: parseTime,
minWidth: 160, minWidth: 160,
}, },
{
prop: 'type',
label: '订单/工单类型',
minWidth: 140,
showOverflowtooltip: true,
sortable:true
},
{ {
prop: 'name', prop: 'name',
label: '订单/工单名', label: '工单名',
minWidth: 100, minWidth: 100,
showOverflowtooltip: true, showOverflowtooltip: true,
}, },
{ {
prop: 'code', prop: 'code',
label: '订单/工单编码', label: '工单编码',
minWidth: 165, minWidth: 150,
}, },
{ {
prop: 'planAssignmentQuantity', prop: 'planAssignmentQuantity',
@ -221,11 +206,11 @@ const tableProps1 = [
label: '实际加工量', label: '实际加工量',
width: 100, width: 100,
}, },
// { {
// prop: 'actualArea', prop: 'actualArea',
// label: '', label: '加工平方数',
// width: 100, width: 100,
// }, },
{ {
prop: 'status', prop: 'status',
label: '状态', label: '状态',
@ -313,10 +298,12 @@ export default {
this.activeModule = val; this.activeModule = val;
}, },
handleNodeClick(val) { handleNodeClick(val) {
console.log(val);
getDetailTreeInfo({ getDetailTreeInfo({
id: val.id, id: val.id,
}).then((res) => { }).then((res) => {
this.list1 = res.data; this.list1 = res.data.order;
console.log(res);
}); });
}, },
initData(to) { initData(to) {
@ -326,10 +313,12 @@ export default {
} }
}, },
getMsg() { getMsg() {
console.log(this.orderId)
orderDetail({ orderDetail({
id: this.orderId, id: this.orderId,
}).then((res) => { }).then((res) => {
this.orderMsg = res.data; this.orderMsg = res.data;
this.list1 = res.data.coreWorkOrderRespVOS;
getOrderRemainNum(this.orderId).then((resNum) => { getOrderRemainNum(this.orderId).then((resNum) => {
bomUseNum({ bomUseNum({
@ -350,20 +339,11 @@ export default {
} }
}); });
}); });
getDetailTreeInfo({
id: this.orderId,
}).then((res) => {
this.list1 = res.data;
});
getDetailTree({ getDetailTree({
id: this.orderId, id: this.orderId,
}).then((res) => { }).then((res) => {
console.log(res);
this.treeData = res.data; this.treeData = res.data;
this.treeData.unshift({
id:this.orderId,
name:'全部'
})
}); });
// //
getProcessFlowList().then((res) => { getProcessFlowList().then((res) => {