You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

674 lines
27 KiB

11 months ago
<template>
<div class="content">
<el-tabs
v-model="editableTabsValue"
editable
class="demo-tabs"
@edit="handleTabsEdit"
type="border-card"
tab-position="left"
:stretch="false"
>
<el-tab-pane
11 months ago
v-for="item in subList"
11 months ago
:key="item.name"
11 months ago
:label="item.sequenceCode"
11 months ago
:name="item.name"
>
11 months ago
<el-form :model="item" label-width="auto" :rules="qualityBatchRules" ref="qualityBatchFormRef" :disabled='disabled'>
11 months ago
<el-row :gutter="20">
11 months ago
<!-- <el-col :span="12">
11 months ago
<el-form-item label="质量通知单号" prop="qualityNoticeNumber">
<el-input v-model="item.qualityNoticeNumber" placeholder="请输入质量通知单号" />
</el-form-item>
11 months ago
</el-col> -->
11 months ago
<el-col :span="12">
<el-form-item label="顺序号" prop="sequenceCode">
11 months ago
<el-input v-model="item.sequenceCode" placeholder="请输入顺序号" type="number" disabled/>
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="品番" prop="itemCode">
<el-input v-model="item.itemCode" placeholder="请输入品番" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="批次" prop="batch">
<el-input v-model="item.batch" placeholder="请输入批次" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="检验批次" prop="inspectionBatch">
<el-input v-model="item.inspectionBatch" placeholder="请输入检验批次" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物料描述" prop="itemDesc">
<el-input v-model="item.itemDesc" placeholder="请输入物料描述" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="总数量" prop="totalAmount">
11 months ago
<el-input v-model="item.totalAmount" placeholder="请输入总数量" type="number"/>
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="计量单位" prop="uom">
<el-input v-model="item.uom" placeholder="请输入计量单位" />
11 months ago
</el-form-item>
</el-col>
</el-row>
</el-form>
11 months ago
<div class="title-btn">
<div class="title">质量通知包装</div>
11 months ago
<el-button type="primary" plain @click="handleAdd('package',item)" v-if="!disabled">添加包装</el-button>
11 months ago
</div>
11 months ago
<el-table :data="item.packageList" style="width: 100%" border>
<!-- <el-table-column prop="qualityNoticeNumber" label="质量通知单号" align="center"/>-->
11 months ago
<el-table-column label="" width="60" align="center" v-if="!disabled">
11 months ago
<template #default="scope">
<Icon icon="ep:remove" @click="det(scope.$index,item.packageList)" size='24' style="cursor: pointer;"/>
</template>
</el-table-column>
<el-table-column prop="packageCode" label="包装编码" align="center"/>
<el-table-column prop="sequenceCode" label="顺序号" align="center" type="number"/>
<el-table-column prop="amount" label="数量" align="center" type="number"/>
11 months ago
<el-table-column prop="uom" label="计量单位" align="center"/>
<el-table-column prop="packUnit" label="包装规格" align="center"/>
</el-table>
<div class="title-btn">
<div class="title">质量通知任务</div>
11 months ago
<el-button type="primary" plain @click="handleAdd('task',item)" v-if="!disabled">添加任务</el-button>
11 months ago
</div>
11 months ago
<el-table :data="item.taskList" style="width: 100%" border>
<!-- <el-table-column prop="qualityNoticeNumber" label="质量通知单号" align="center" width="150"/>
<el-table-column prop="code" label="编码" align="center" width="150"/> -->
11 months ago
<el-table-column label="" width="60" align="center" v-if="!disabled">
11 months ago
<template #default="scope">
<Icon icon="ep:remove" @click="det(scope.$index,item.taskList)" size='24' style="cursor: pointer;"/>
</template>
</el-table-column>
<el-table-column prop="sequenceCode" label="顺序号" align="center" width="150" type="number"/>
11 months ago
<el-table-column prop="status" label="状态" align="center" width="150"/>
<el-table-column prop="type" label="类型" align="center" width="150"/>
<el-table-column prop="taskGroupCode" label="任务代码组" align="center" width="150"/>
<el-table-column prop="taskCode" label="任务代码" align="center" width="150"/>
<el-table-column prop="taskDesc" label="任务描述" align="center" width="150"/>
<el-table-column prop="taskDetail" label="任务详情" align="center" width="150"/>
<el-table-column prop="leaderType" label="负责人类型" align="center" width="150"/>
<el-table-column prop="leader" label="负责人" align="center"/>
<el-table-column prop="planStartTime" label="计划开始时间" align="center" width="150"/>
<el-table-column prop="planEndTime" label="计划结束时间" align="center" width="150"/>
<el-table-column prop="finishTime" label="完成时间" align="center" width="150"/>
<el-table-column prop="finishNumber" label="完成单据号" align="center" width="150"/>
</el-table>
<div class="title-btn">
<div class="title">质量通知缺陷</div>
11 months ago
<el-button type="primary" plain @click="handleAdd('defect',item)" v-if="!disabled">添加缺陷</el-button>
11 months ago
</div>
11 months ago
<el-table :data="item.defectList" style="width: 100%" border>
11 months ago
<el-table-column label="" width="60" align="center" v-if="!disabled">
11 months ago
<template #default="scope">
<Icon icon="ep:remove" @click="det(scope.$index,item.defectList)" size='24' style="cursor: pointer;"/>
</template>
</el-table-column>
<!-- <el-table-column prop="qualityNoticeNumber" label="质量通知单号" align="center" width="150"/> -->
<el-table-column prop="sequenceCode" label="顺序号" align="center" width="150" type="number"/>
11 months ago
<el-table-column prop="defectLocationCodeGroup" label="缺陷位置代码组" align="center" width="150"/>
<el-table-column prop="defectLocationCode" label="缺陷位置代码" align="center" width="150"/>
11 months ago
<el-table-column prop="defectTypeCodeGroup" label="缺陷类型代码组" align="center" width="150"/>
11 months ago
<el-table-column prop="defectTypeCode" label="缺陷类型代码" align="center" width="150"/>
<el-table-column prop="defectDesc" label="缺陷描述" align="center" width="150"/>
<el-table-column prop="defectSonItemCode" label="缺陷子品番" align="center" width="150"/>
11 months ago
<el-table-column prop="defectCount" label="缺陷数量" align="center" width="150"/>
<el-table-column prop="defectLevel" label="缺陷级别" align="center" width="150"/>
<el-table-column prop="sampleNumber" label="样本编号" align="center" width="150"/>
<el-table-column prop="inspectionRecordNumber" label="检验记录编号" align="center" width="150"/>
<el-table-column prop="reasonCodeGroup" label="原因代码组" align="center" width="150"/>
<el-table-column prop="reasonCode" label="原因代码" align="center" width="150"/>
<el-table-column prop="reasonDesc" label="原因描述" align="center" width="150"/>
</el-table>
11 months ago
</el-tab-pane>
</el-tabs>
<Dialog
11 months ago
:title="dialogTitle"
v-model="dialogVisible"
width="800px"
11 months ago
:close-on-click-modal="false"
>
<div style="padding: 0px 20px">
11 months ago
<!-- 包装弹窗 -->
<el-form ref="packageFormRef" label-width="100px" :model="packageForm" :rules="packageRules" v-if="source == 'package'">
<el-row :gutter="20">
11 months ago
<!-- <el-col :span="12">
11 months ago
<el-form-item prop="qualityNoticeNumber" label="质量通知单号" >
<el-input v-model="packageForm.qualityNoticeNumber" placeholder="请输入包装编码" />
</el-form-item>
11 months ago
</el-col>-->
11 months ago
<el-col :span="12">
<el-form-item prop="packageCode" label="包装编码" >
<el-input v-model="packageForm.packageCode" placeholder="请输入包装编码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="sequenceCode" label="顺序号" >
11 months ago
<el-input v-model="packageForm.sequenceCode" placeholder="请输入顺序号" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="amount" label="数量" >
11 months ago
<el-input v-model="packageForm.amount" placeholder="请输入数量" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="uom" label="计量单位" >
11 months ago
<el-input v-model="packageForm.uom" placeholder="请输入计量单位" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="packUnit" label="包装规格" >
11 months ago
<el-input v-model="packageForm.packUnit" placeholder="请输入包装规格" />
11 months ago
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 任务弹窗 -->
11 months ago
<el-form ref="taskFormRef" label-width="120px" :model="taskForm" :rules="taskRules" v-else-if="source == 'task'">
11 months ago
<el-row :gutter="20">
11 months ago
<!-- <el-col :span="12">
11 months ago
<el-form-item prop="qualityNoticeNumber" label="质量通知单号" >
11 months ago
<el-input v-model="taskFormRef.qualityNoticeNumber" placeholder="请输入质量通知单号" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
11 months ago
<el-form-item prop="code" label="包装编码" >
11 months ago
<el-input v-model="taskFormRef.code" placeholder="请输入包装编码" />
</el-form-item>
11 months ago
</el-col>-->
11 months ago
<el-col :span="12">
<el-form-item prop="sequenceCode" label="顺序号" >
11 months ago
<el-input v-model="taskForm.sequenceCode" placeholder="请输入顺序号" type="number"/>
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="status" label="状态" >
11 months ago
<!-- <el-input v-model="taskForm.status" placeholder="请输入状态" /> -->
<el-select v-model="taskForm.status" placeholder="请选择状态">
11 months ago
<el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value" />
11 months ago
</el-select>
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="type" label="类型" >
11 months ago
<el-input v-model="taskForm.type" placeholder="请输入类型" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="taskGroupCode" label="任务代码组" >
11 months ago
<el-input v-model="taskForm.taskGroupCode" placeholder="请输入任务代码组" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="taskCode" label="任务代码" >
11 months ago
<el-input v-model="taskForm.taskCode" placeholder="请输入任务代码" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="taskDesc" label="任务描述" >
11 months ago
<el-input v-model="taskForm.taskDesc" placeholder="请输入任务描述" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="taskDetail" label="任务详情" >
11 months ago
<el-input v-model="taskForm.taskDetail" placeholder="请输入任务详情" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="leaderType" label="负责人类型" >
11 months ago
<el-input v-model="taskForm.leaderType" placeholder="请输入负责人类型" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="leader" label="负责人" >
11 months ago
<el-input v-model="taskForm.leader" placeholder="请输入负责人" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="planStartTime" label="计划开始时间" >
11 months ago
<el-date-picker v-model="taskForm.planStartTime" type="datetime" placeholder="请选择计划开始时间" style="width: 100%;" value-format="x"/>
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="planEndTime" label="计划结束时间" >
11 months ago
<el-date-picker v-model="taskForm.planEndTime" type="datetime" placeholder="请选择计划结束时间" style="width: 100%;" value-format="x"/>
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="finishTime" label="完成时间" >
11 months ago
<el-date-picker v-model="taskForm.finishTime" type="datetime" placeholder="请输入完成时间" style="width: 100%;" value-format="x"/>
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="finishNumber" label="完成单据号" >
11 months ago
<el-input v-model="taskForm.finishNumber" placeholder="请输入完成单据号" />
11 months ago
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 缺陷弹窗 -->
11 months ago
<el-form ref="defectFormRef" label-width="140px" :model="defectForm" :rules="defectRules" v-else-if="source == 'defect'">
11 months ago
<el-row :gutter="20">
11 months ago
<!-- <el-col :span="12">
11 months ago
<el-form-item prop="qualityNoticeNumber" label="质量通知单号" >
11 months ago
<el-input v-model="defectForm.qualityNoticeNumber" placeholder="请输入包装编码" />
11 months ago
</el-form-item>
11 months ago
</el-col> -->
11 months ago
<el-col :span="12">
<el-form-item prop="sequenceCode" label="顺序号" >
11 months ago
<el-input v-model="defectForm.sequenceCode" placeholder="请输入顺序号" type="number"/>
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="defectLocationCodeGroup" label="缺陷位置代码组" >
11 months ago
<el-input v-model="defectForm.defectLocationCodeGroup" placeholder="请输入缺陷位置代码组" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="defectLocationCode" label="缺陷位置代码" >
11 months ago
<el-input v-model="defectForm.defectLocationCode" placeholder="请输入缺陷位置代码" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
11 months ago
<el-form-item prop="defectTypeCodeGroup" label="缺陷类型代码组" >
<el-input v-model="defectForm.defectTypeCodeGroup" placeholder="请输入缺陷类型代码组" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="defectTypeCode" label="缺陷类型代码" >
<el-input v-model="defectForm.defectTypeCode" placeholder="请输入缺陷类型代码" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="defectDesc" label="缺陷描述" >
11 months ago
<el-input v-model="defectForm.defectDesc" placeholder="请输入缺陷描述" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="defectSonItemCode" label="缺陷子品番" >
<el-input v-model="defectForm.defectSonItemCode" placeholder="请输入缺陷子品番" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="defectCount" label="缺陷数量" >
11 months ago
<el-input v-model="defectForm.defectCount" placeholder="请输入缺陷数量" type="number"/>
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="defectLevel" label="缺陷级别" >
11 months ago
<el-input v-model="defectForm.defectLevel" placeholder="请输入缺陷级别" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="sampleNumber" label="样本编号" >
11 months ago
<el-input v-model="defectForm.sampleNumber" placeholder="请输入样本编号" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="inspectionRecordNumber" label="检验记录编号" >
11 months ago
<el-input v-model="defectForm.inspectionRecordNumber" placeholder="请输入检验记录编号" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="reasonCodeGroup" label="原因代码组" >
11 months ago
<el-input v-model="defectForm.reasonCodeGroup" placeholder="请输入原因代码组" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
11 months ago
<el-form-item prop="reasonCode" label="原因代码" >
<el-input v-model="defectForm.reasonCode" placeholder="请输入原因代码" />
11 months ago
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="reasonDesc" label="原因描述" >
11 months ago
<el-input v-model="defectForm.reasonDesc" placeholder="请输入原因描述" />
11 months ago
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form ref="nameRef" :model="nameForm" v-else>
11 months ago
<el-form-item :rules="[{ required: true, message: '请输入顺序号', trigger: 'blur' }]" prop="name">
<el-input v-model="nameForm.name" type="number" style="width: 240px" placeholder="请输入顺序号" />
11 months ago
</el-form-item>
</el-form>
</div>
<template #footer>
<ButtonBase :Butttondata="Butttondata" @button-base-click="buttonBaseClick1" />
</template>
</Dialog>
11 months ago
11 months ago
</div>
</template>
<script setup lang="ts">
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
11 months ago
import { validateInteger,validateTwoNum } from '@/utils/validator'
const message = useMessage() // 消息弹窗
const props = defineProps({
// 数据
subListData: {
type: Array,
default: null
11 months ago
},
number: {
type: String,
default: ''
},
11 months ago
// 是否可输入
disabled:{
type:Boolean,
default: false
}
11 months ago
})
11 months ago
const editableTabsValue = ref('1')
11 months ago
const dialogVisible = ref(false)//弹窗
const dialogTitle = ref('')//弹窗名称
11 months ago
const nameRef = ref(false)
11 months ago
//质量物料表单
11 months ago
const qualityBatchFormRef = ref(null)
const qualityBatchRules = ref({
sequenceCode: [
required,
{ validator:validateInteger, message: '请输入正确的整数', trigger: 'blur'}
],
itemCode: [required],
batch: [required],
totalAmount: [
required,
{ validator:validateTwoNum, message: '小数点后最多2位', trigger: 'blur'}
],
uom: [required],
})
11 months ago
const nameForm = ref({
name: ''
11 months ago
})//物料批次名字
11 months ago
const subList = ref([])
11 months ago
const statusList = ref()
11 months ago
// 编辑赋值
nextTick(()=>{
subList.value =props.subListData
subList.value.forEach((item,index)=>{
editableTabsValue.value = index + 1
item.name = index + 1
11 months ago
})
if(props.number){
statusList.value = getIntDictOptions(DICT_TYPE.QUALITY_NOTICE_STATUS)
}else{
statusList.value =getIntDictOptions(DICT_TYPE.QUALITY_NOTICE_STATUS).filter(item=>item.value == 1)
}
11 months ago
})
11 months ago
11 months ago
//质量包装表单
const packageFormRef = ref()
11 months ago
const packageRules = ref({
sequenceCode: [
required,
{ validator:validateInteger, message: '请输入正确的整数', trigger: 'blur'}
],
packageCode: [required],
amount: [
required,
{ validator:validateTwoNum, message: '小数点后最多2位', trigger: 'blur'}
],
uom: [required],
11 months ago
})
11 months ago
const packageForm = ref({})
11 months ago
//质量任务表单
const taskFormRef = ref()
11 months ago
const taskRules = ref({
sequenceCode: [
required,
{ validator:validateInteger, message: '请输入正确的整数', trigger: 'blur'}
],
status: [required],
type: [required],
taskGroupCode: [required],
taskCode: [required],
leaderType: [required],
leader: [required],
planStartTime: [required],
planEndTime: [required],
})
const taskForm = ref({})
11 months ago
//质量缺陷表单
const defectFormRef = ref()
11 months ago
const defectRules = ref({
sequenceCode: [
required,
{ validator:validateInteger, message: '请输入正确的整数', trigger: 'blur'}
],
defectLocationCodeGroup: [required],
defectLocationCode: [required],
defectTypeCodeGroup: [required],
defectTypeCode: [required],
defectCount: [
required,
{ validator:validateTwoNum, message: '小数点后最多2位', trigger: 'blur'}
],
defectLevel: [required],
reasonCodeGroup: [required],
reasonCode: [required],
})
const defectForm = ref({})
11 months ago
const source = ref('')//点击新增来源
11 months ago
const sourceItem = ref('')//点击新增来源
11 months ago
const tableData = ref([])
11 months ago
// 数据格式
const itemBatch = ref({
itemCode:'',
batch:'',
inspectionBatch:'',
itemDesc:'',
totalAmount:'',
uom:'',
packageList:[],
taskList:[],
defectList:[],
})
11 months ago
/** 弹窗按钮 */
let Butttondata: any = []
Butttondata = [
11 months ago
defaultButtons.formSaveBtn(null), // 保存
defaultButtons.formCloseBtn(null) // 关闭
]
// 添加移除物料批次
11 months ago
const handleTabsEdit = (targetName: TabPaneName | undefined, action: 'remove' | 'add') => {
if (action === 'add') {
nameForm.value.name = ''
11 months ago
source.value = ''
11 months ago
dialogVisible.value = true
11 months ago
dialogTitle.value = '添加物料批次顺序号'
11 months ago
} else if (action === 'remove') {
11 months ago
const tabs =subList.value
11 months ago
let activeName = editableTabsValue.value
if (activeName === targetName) {
tabs.forEach((tab, index) => {
if (tab.name === targetName) {
const nextTab = tabs[index + 1] || tabs[index - 1]
if (nextTab) {
activeName = nextTab.name
}
}
})
}
editableTabsValue.value = activeName
11 months ago
subList.value = tabs.filter((tab) => tab.name !== targetName)
11 months ago
}
}
11 months ago
// 添加包装任务缺陷按钮
11 months ago
const handleAdd=(sourceArg,item)=>{
11 months ago
source.value = sourceArg
11 months ago
sourceItem.value = item
11 months ago
if(sourceArg == 'package'){
dialogTitle.value = '添加包装'
11 months ago
packageForm.value = {}
11 months ago
}else if(sourceArg == 'task'){
dialogTitle.value = '添加任务'
11 months ago
taskForm.value = {}
}else if(sourceArg == 'defect'){
11 months ago
dialogTitle.value = '添加缺陷'
11 months ago
defectForm.value = {}
11 months ago
}
dialogVisible.value = true
}
11 months ago
/** 修改名称时间 */
let tabIndex = 1
const buttonBaseClick1 = (val) => {
// 保存
if (val == 'save') {
11 months ago
// 包装弹窗点击保存
if(source.value == 'package'){
packageFormRef.value.validate((valid, fields) => {
if (valid) {
for(let i =0;i<subList.value.length;i++){
if(subList.value[i].sequenceCode == sourceItem.value.sequenceCode){
const isRepeat = subList.value[i].packageList.some(cur=>cur.sequenceCode==packageForm.value.sequenceCode)
if(isRepeat){
message.error('列表中已存在该顺序号')
return;
}
subList.value[i].packageList.push(packageForm.value)
}
}
dialogVisible.value = false
} else {
return false
}
})
}else if(source.value == 'task'){
taskFormRef.value.validate((valid, fields) => {
if (valid) {
if (taskForm.value.planStartTime > taskForm.value.planEndTime) {
message.error('计划开始时间应小于计划结束时间')
return;
}
for(let i =0;i<subList.value.length;i++){
if(subList.value[i].sequenceCode == sourceItem.value.sequenceCode){
// if(data.value.subList[i].packageList)
const isRepeat = subList.value[i].taskList.some(cur=>cur.sequenceCode==taskForm.value.sequenceCode)
if(isRepeat){
message.error('列表中已存在该顺序号')
return;
}
subList.value[i].taskList.push(taskForm.value)
}
}
dialogVisible.value = false
} else {
return false
}
})
}else if(source.value == 'defect'){
defectFormRef.value.validate((valid, fields) => {
if (valid) {
for(let i =0;i<subList.value.length;i++){
if(subList.value[i].sequenceCode == sourceItem.value.sequenceCode){
// if(data.value.subList[i].packageList)
const isRepeat = subList.value[i].defectList.some(cur=>cur.sequenceCode==defectForm.value.sequenceCode)
if(isRepeat){
message.error('列表中已存在该顺序号')
return;
}
subList.value[i].defectList.push(defectForm.value)
}
}
dialogVisible.value = false
} else {
return false
}
})
}
11 months ago
if (!nameRef.value) return
nameRef.value.validate((valid, fields) => {
if (valid) {
11 months ago
const isRepeat = subList.value.some(item=>item.sequenceCode == nameForm.value.name)
if(isRepeat){
message.error('列表中已存在该顺序号')
return;
}
11 months ago
const newTabName = `${++tabIndex}`
11 months ago
itemBatch.value = {
itemCode:'',
batch:'',
inspectionBatch:'',
itemDesc:'',
totalAmount:'',
uom:'',
packageList:[],
taskList:[],
defectList:[],
}
11 months ago
subList.value.push({
sequenceCode: nameForm.value.name,
11 months ago
name: newTabName,
11 months ago
...itemBatch.value
11 months ago
})
editableTabsValue.value = newTabName
11 months ago
dialogVisible.value = false
11 months ago
} else {
return false
}
})
}
// 关闭
else if (val == 'close') {
11 months ago
dialogVisible.value = false
11 months ago
}
}
11 months ago
// 删除包装任务和缺陷
const det = (index,array)=>{
array.splice(index,1)
}
defineExpose({qualityBatchFormRef, subList})
11 months ago
</script>
<style scoped lang="scss">
.content {
padding: 20px;
.type {
padding: 0px 20px 20px;
}
}
11 months ago
.title-btn{
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 10px;
margin-top: 10px;
}
.title{
font-weight: bold;
font-size: 16px;
position: relative;
padding-left: 12px;
line-height: 16px;
&::after{
content:'';
position: absolute;
left: 0px;
width: 4px;
height: 16px;
top: 50%;
transform: translateY(-50%);
background: #409eff;
}
}
11 months ago
</style>