|
@@ -10,22 +10,38 @@
|
|
|
@row-save="createRow"
|
|
|
@row-update="updateRow"
|
|
|
@row-del="deleteRow"
|
|
|
+ @tree-load="treeLoad"
|
|
|
@search-change="searchChange"
|
|
|
@search-reset="resetChange"
|
|
|
@size-change="dataList"
|
|
|
@current-change="dataList"
|
|
|
@selection-change="selectionChange"
|
|
|
+ :span-method="spanMethod"
|
|
|
>
|
|
|
-
|
|
|
+ <template #orderCode="{ row }">
|
|
|
+ <el-text v-if="row.orderCode">{{row.orderCode}}</el-text>
|
|
|
+ <div style="width: 100%; height: 100%;display: flex" v-if="!row.orderCode && row.operationDetails">
|
|
|
+ <div style="width: 120px;height: 100%" v-for="item in row.operationDetails">
|
|
|
+ <el-progress
|
|
|
+ :text-inside="true"
|
|
|
+ :stroke-width="35"
|
|
|
+ :percentage="item.completeNum/row.workOrderNum * 100"
|
|
|
+ status="success"
|
|
|
+ >{{item.operationName}}(完成{{item.completeNum}})
|
|
|
+ </el-progress>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-tag v-if="row.workOrderCode === '-'" type="primary">库存数量:{{ row.stockNum }}</el-tag>
|
|
|
+ </template>
|
|
|
<template #menu="{size,row,index}">
|
|
|
- <el-button
|
|
|
+<!-- <el-button
|
|
|
type="primary"
|
|
|
link
|
|
|
v-if="row.bom === '0' || row.dataFile === '0'|| row.routeId === '0'|| row.craftFile === '0'"
|
|
|
size="small"
|
|
|
@click="handleEdit(row,0)"
|
|
|
><i-ep-edit />编辑
|
|
|
- </el-button>
|
|
|
+ </el-button>-->
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
link
|
|
@@ -69,7 +85,7 @@
|
|
|
import { ref, getCurrentInstance } from "vue";
|
|
|
import { useCrud } from "@/hooks/userCrud";
|
|
|
import {prepareCheckInfo,refreshPrepareCheckInfo} from "@/api/order"
|
|
|
-
|
|
|
+import {queryChildrenInfo} from "@/api/process"
|
|
|
import { useCommonStoreHook } from "@/store";
|
|
|
const { isShowTable, tableType } = toRefs(useCommonStoreHook());
|
|
|
const test = () => {
|
|
@@ -91,6 +107,26 @@ const dialog = reactive({
|
|
|
title: "订单选择",
|
|
|
visible: false,
|
|
|
});
|
|
|
+const merginState = ref(false)
|
|
|
+const spanMethod = ({ row, column, rowIndex, columnIndex })=>{
|
|
|
+ if(row.hasParent){
|
|
|
+ if(columnIndex === 6){
|
|
|
+ merginState.value = true
|
|
|
+ return [1, 11]
|
|
|
+ }else if(columnIndex > 6 && merginState){
|
|
|
+ return [0,0]
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ merginState.value = false
|
|
|
+ }
|
|
|
+ /*if (rowIndex % 2 === 0) {
|
|
|
+ if (columnIndex === 0) {
|
|
|
+ return [1, 2]
|
|
|
+ } else if (columnIndex === 1) {
|
|
|
+ return [0, 0]
|
|
|
+ }
|
|
|
+ }*/
|
|
|
+}
|
|
|
const checkInfo = (code) =>{
|
|
|
prepareCheckInfo(code).then((data)=>{
|
|
|
form.value.deviceStr = data.data.deviceStr
|
|
@@ -99,6 +135,11 @@ const checkInfo = (code) =>{
|
|
|
form.value.materialStr = data.data.materialStr
|
|
|
})
|
|
|
}
|
|
|
+const treeLoad = (tree, treeNode, resolve) =>{
|
|
|
+ queryChildrenInfo(tree.workOrderCode).then((data)=>{
|
|
|
+ resolve(data.data)
|
|
|
+ })
|
|
|
+}
|
|
|
const handleEdit =(row,index)=>{
|
|
|
crudRef.value && crudRef.value.rowEdit(row,index);
|
|
|
}
|
|
@@ -126,6 +167,11 @@ option.value = Object.assign(option.value, {
|
|
|
delBtn: false,
|
|
|
selection: false,
|
|
|
editBtn: false,
|
|
|
+ tree: true,
|
|
|
+ viewBtn: false,
|
|
|
+ lazy: true,
|
|
|
+ menuWidth: 100,
|
|
|
+ rowKey: 'workOrderCode',
|
|
|
addBtn: false,
|
|
|
dialogWidth: '45%', // 设置编辑弹窗的宽度为50%
|
|
|
column: [
|
|
@@ -133,8 +179,7 @@ option.value = Object.assign(option.value, {
|
|
|
label: "工单号",
|
|
|
prop: "workOrderCode",
|
|
|
search: true,
|
|
|
- width: 140,
|
|
|
- overHidden: true,
|
|
|
+ minWidth: 200,
|
|
|
editDisabled : true,
|
|
|
rules: [
|
|
|
{
|
|
@@ -155,76 +200,83 @@ option.value = Object.assign(option.value, {
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
- label: "计划单号",
|
|
|
- prop: "orderCode",
|
|
|
+ label: "产品编码",
|
|
|
+ prop: "materialCode",
|
|
|
search: true,
|
|
|
- width: 140,
|
|
|
+ width: 130,
|
|
|
overHidden: true,
|
|
|
disabled: true,
|
|
|
rules: [
|
|
|
{
|
|
|
required: true,
|
|
|
- message: "计划单号不能为空",
|
|
|
+ message: "产品编码不能为空",
|
|
|
trigger: "trigger",
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
- label: "计划名称",
|
|
|
- prop: "orderName",
|
|
|
- search: true,
|
|
|
+ label: "产品名称",
|
|
|
+ prop: "materialName",
|
|
|
disabled: true,
|
|
|
- width: 150,
|
|
|
+ width: 140,
|
|
|
overHidden: true,
|
|
|
+ search: true,
|
|
|
rules: [
|
|
|
{
|
|
|
required: true,
|
|
|
- message: "计划名称不能为空",
|
|
|
+ message: "产品名称不能为空",
|
|
|
trigger: "trigger",
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
- label: "产品编码",
|
|
|
- prop: "materialCode",
|
|
|
+ label: "产品规格",
|
|
|
+ prop: "materialModel",
|
|
|
+ disabled: true,
|
|
|
search: true,
|
|
|
width: 140,
|
|
|
overHidden: true,
|
|
|
- disabled: true,
|
|
|
rules: [
|
|
|
{
|
|
|
required: true,
|
|
|
- message: "产品编码不能为空",
|
|
|
+ message: "产品规格不能为空",
|
|
|
trigger: "trigger",
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
- label: "产品名称",
|
|
|
- prop: "materialName",
|
|
|
+ label: "数量",
|
|
|
+ prop: "workOrderNum",
|
|
|
disabled: true,
|
|
|
- width: 150,
|
|
|
+ width: 80,
|
|
|
overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "计划单号",
|
|
|
+ prop: "orderCode",
|
|
|
search: true,
|
|
|
+ width: 130,
|
|
|
+ overHidden: true,
|
|
|
+ disabled: true,
|
|
|
rules: [
|
|
|
{
|
|
|
required: true,
|
|
|
- message: "产品名称不能为空",
|
|
|
+ message: "计划单号不能为空",
|
|
|
trigger: "trigger",
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
- label: "产品规格",
|
|
|
- prop: "materialModel",
|
|
|
- disabled: true,
|
|
|
+ label: "计划名称",
|
|
|
+ prop: "orderName",
|
|
|
search: true,
|
|
|
+ disabled: true,
|
|
|
width: 150,
|
|
|
overHidden: true,
|
|
|
rules: [
|
|
|
{
|
|
|
required: true,
|
|
|
- message: "产品规格不能为空",
|
|
|
+ message: "计划名称不能为空",
|
|
|
trigger: "trigger",
|
|
|
},
|
|
|
],
|
|
@@ -391,11 +443,12 @@ option.value = Object.assign(option.value, {
|
|
|
{
|
|
|
label: "创建时间",
|
|
|
prop: "created",
|
|
|
- width: 160,
|
|
|
+ width: 200,
|
|
|
display: false
|
|
|
},
|
|
|
{
|
|
|
label: "创建人",
|
|
|
+ width: 200,
|
|
|
prop: "creator",
|
|
|
display: false
|
|
|
},
|
|
@@ -411,3 +464,6 @@ onMounted(() => {
|
|
|
});
|
|
|
|
|
|
</script>
|
|
|
+<style>
|
|
|
+
|
|
|
+</style>
|