Commit 82bcbf54 authored by xioln's avatar xioln

检验流程

parent 0b39e9bd
<template>
<div class="upload-files">
<dee-form label-position="top" :form="form" :form-data="formData1" />
</div>
</template>
<script>
export default {
name: 'UploadFiles',
props: {
// 系统配置出来的表单
value: {
type: Array,
default: () => []
}
},
data() {
return {
form: {
objFileLinks: []
},
'formData': [
{
'title': '',
'split': 3,
'data': [
{
'name': '上传附件',
'key': 'objFileLinks',
'parentKey': 'objFileLinks',
'component': {
'name': 'DeeUploadTable',
'url': '/dfs/fileManager/feign/uploadFile'
},
'width': 3
}
],
'labelPosition': 'right'
}
],
formData1: [
{
'title': '',
'split': 3,
'appName': 'tf-mom',
'data': [
{
'name': '附件',
'title': '',
'key': 'objFileLinks',
'width': 3,
'hidden': false,
'component': {
'name': 'DeeUploadTable',
'appName': 'tf-mom',
'taleType': 'single',
'showFileList': true,
'filterKey': 'contentType',
'mlimit': 1,
'alimit': 1,
'limit': 5,
'mrequired': true,
'state': 'edit',
'masterTitle': '主内容',
'appendTitle': '附件',
'masterFilter': ['MASTER_FILE', 'PRIMARY'],
'appendFilter': ['ATTACH_FILE', 'SECONDARY', 'FLOW_FILE', 'PROCESS_CONTENTROLE_PDF'],
'url': '/dfs/fileManager/feign/uploadFile',
'masterUploadFilter': 'MASTER_FILE',
'appendUploadFilter': 'ATTACH_FILE'
},
'parentKey': 'objFileLinks',
'premMark': true
}
]
}
]
}
},
watch: {
'form.objFileLinks': function(newForm, oldForm) {
this.$emit('input', newForm)
}
},
mounted() {
const data = this.value
this.form.objFileLinks = data
},
methods: {
}
}
</script>
<style lang='scss'>
.upload-files {
.dee-form2 {
.el-row {
.form-item-container {
height: 100% !important;
width: 100% !important;
.el-form-item__content {
padding-left: 3.75rem;
}
}
}
}
}
</style>
/**
* @Description: 机载系统设备验收单
* @author xioln
* @date 2023-07-14
* @FilePath: applications/dee-mes/src/privateComponents/components/JobResponseInTestProcess/component/equipmenCheckNo.vue
*/
<template>
<div class="equipmen-checkNo">
<div class="dee-form-header-box">
<dee-tools :tools="tools" mode="normal" style="flex-direction: row-reverse;" />
</div>
<div class="sub-title" style="padding-bottom: 8px; font-size: 16px;"> 物料检验详情 </div>
<el-form
ref="form"
:model="form"
:rules="formRules"
>
<el-col :span="8">
<el-form-item label-width="100px" label="验收单号" prop="testNo">
<el-input v-model="form.testNo" placeholder="请输入验收单号" :disabled="subTypeNameDisabled" clearable onchange="this.value=this.value.toUpperCase()" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px" label="封存日期">
<el-date-picker
v-model="form.storagePeriod"
type="date"
clearable
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择日期"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px" label="保质期/贮存期">
<el-date-picker
v-model="form.qualityPeriod"
clearable
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择日期"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px" label=" 保证期">
<el-input
v-model="form.guaranteePeriod"
clearable
placeholder="请输入保证期"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px" label=" 首翻期">
<el-input
v-model="form.firstTurnPeriod"
clearable
placeholder="请输入首翻期"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px" label=" 总寿命">
<el-input
v-model="form.totalLife"
clearable
placeholder="请输入总寿命"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px" label="检验依据">
<el-input v-model="form.checkBill" clearable placeholder="请输入检验依据" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px" label="重量">
<!-- <el-input v-model="form.weight" placeholder="请输入重量" /> -->
<el-input v-model="form.weight" clearable type="number" placeholder="请输入重量" onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/,'$1$2.$3');" onafterpaste="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/,'$1$2.$3');">
<template slot="append">Kg</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px" label="质量证明文件">
<el-select v-model="form.qualityCert" clearable placeholder="请选择">
<el-option label="合格" value="Y" />
<el-option label="不合格" value="N" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px" label="配套件检查">
<el-select v-model="form.accessoryCheck" clearable placeholder="请选择">
<el-option label="合格" value="Y" />
<el-option label="不合格" value="N" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px" label="标识检查">
<el-select v-model="form.flagCheck" clearable placeholder="请选择">
<el-option label="合格" value="Y" />
<el-option label="不合格" value="N" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px" label="外观质量检查">
<el-select v-model="form.performCheck" clearable placeholder="请选择">
<el-option label="合格" value="Y" />
<el-option label="不合格" value="N" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px" label="是否合格" prop="isPass">
<el-select v-model="form.isPass" clearable placeholder="请选择">
<el-option label="合格" value="Y" />
<el-option label="不合格" value="N" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px" label="不合格数" prop="noPassAmount">
<el-input-number
v-model="form.noPassAmount"
clearable
:min="0"
placeholder="不合格数"
:disabled="form.isPass!=='N'"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px" label="处理方式">
<el-select v-model="form.disposeType" clearable placeholder="请选择">
<el-option label="原样使用" value="OriginalSampleTest" />
<el-option label="报废" value="Scrap" />
<el-option label="返修" value="Rework" />
<el-option label="退货" value="Return" />
<el-option label="其他" value="Other" />
<el-option label="无" value="None" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px" label="是否封闭">
<el-select v-model="form.isClosure" clearable placeholder="请选择">
<el-option label="是" :value="true" />
<el-option label="否" :value="false" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="120px" label="不合格品审理单号">
<el-input v-model="form.noPassReviewNo" clearable placeholder="请输入不合格品审理单号" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="入场验收问题描述" label-width="120px">
<el-input
v-model="form.acceptanceProblem"
type="textarea"
resize="none"
clearable
:autosize="{ minRows: 9, maxRows: 10 }"
placeholder="入场验收问题描述:"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="相关单位意见" label-width="120px">
<el-input
v-model="form.relevantOpinions"
type="textarea"
resize="none"
clearable
:autosize="{ minRows: 9, maxRows: 10 }"
placeholder="相关单位意见:"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label-width="100px" label="检验备注" style="margin-bottom:10px">
<el-input
v-model="form.checkRemark"
type="textarea"
clearable
:autosize="{ minRows: 3.6, maxRows: 7 }"
placeholder="检验备注:"
resize="none"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100px">
<upload-files v-if="uploadVisble" v-model="form.objFileLinks" />
</el-form-item>
</el-col>
</el-form>
</div>
</template>
<script>
import UploadFiles from './UploadFiles.vue'
export default {
components: { UploadFiles },
props: {
basicData: {
type: Object,
required: true
}
},
data() {
// var checkAge = (rule, value, callback) => {
// if (value > this.basicData.afterExperimentAmount) {
// callback(new Error(`不合格数不能大于${this.basicData.afterExperimentAmount}`))
// } else {
// callback()
// }
// }
return {
disabled: false,
// 验收单号是否禁用
subTypeNameDisabled: false,
// form表单数据
searchFormData: {
name: '',
startDataRange: '',
processDefKey: ''
},
// 机载设备验收单id
AirEquipmentID: '',
form: {
// operator: 'EDIT',
// 头部第一行
testNo: '',
storagePeriod: '',
qualityPeriod: '',
// 头部第二行
guaranteePeriod: '',
firstTurnPeriod: '',
totalLife: '',
// 头部第三行
checkBill: '',
weight: '',
// 头部第四行
qualityCert: 'Y',
accessoryCheck: 'Y',
noPassAmount: 0,
// 头部第五行
flagCheck: 'Y',
performCheck: 'Y',
// 入场验收问题描述
acceptanceProblem: '',
// 相关单位意见
relevantOpinions: '',
// 右侧处理方式区域
disposeType: '',
noPassReviewNo: '',
isPass: 'Y',
isClosure: '',
checkRemark: '',
// 上传附件
objFileLinks: []
},
formRules: {
testNo: [
{ required: true, message: '请输入验收单号', trigger: 'blur' }
],
isPass: [
{ required: true, message: '请选择是否合格', trigger: 'change' }
]
// noPassAmount: [
// { validator: checkAge, trigger: ['blur', 'change'] }
// ]
},
uploadVisble: false,
tools: [
{
name: '保存',
icon: '/icons/components/new/add.png',
handler: {
click: () => {
this.onSubmit()
}
}
},
{
name: '下载',
icon: '/icons/components/new/addAffectedData.png',
handler: {
click: () => {
this.savePDF()
}
}
}
]
}
},
computed: {
},
watch: {
'form.isPass': {
handler: function(v) {
if (v === 'N') {
this.$set(this.formRules, 'noPassAmount', [{ required: true, message: '请输入不合格数', trigger: 'change' }])
} else {
this.$delete(this.formRules, 'noPassAmount')
}
},
deep: true,
immediate: true
}
},
created() {
// 初始化数据
this.form = this.basicData
this.form.operator = 'MODIFY'
},
methods: {
onSubmit() {
const params = {
...this.form,
operator: 'MODIFY'
}
this.$api.recursion('JobResponseInTest', params).then(res => {
this.$utils.showMessageSuccess('保存成功')
})
},
savePDF() {}
}
}
</script>
<style lang='scss'>
</style>
/**
* @Description: 器材验收单
* @author xioln
* @date 2023-07-14
* @FilePath: applications/dee-mes/src/privateComponents/components/JobResponseInTestProcess/component/materialCheckNo.vue
*/
<template>
<div class="check-no">
<div class="dee-form-header-box">
<dee-tools :tools="tools" mode="normal" style="flex-direction: row-reverse;" />
</div>
<div class="sub-title" style="padding-bottom: 8px; font-size: 16px;"> 物料检验详情 </div>
<el-form
ref="form"
:model="form"
class="checkNo-container"
:rules="formRules"
>
<el-col :span="8">
<el-form-item label="验收单号" label-width="100px" prop="testNo">
<el-input
v-model="form.testNo"
placeholder="请输入验收单号"
:disabled="subTypeNameDisabled"
clearable
onchange="this.checkvalue=this.checkvalue.toUpperCase()"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label=" 封装期" label-width="100px">
<el-date-picker
v-model="form.maskPeriod"
clearable
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label=" 保质期/贮存期" label-width="100px">
<el-date-picker
v-model="form.qualityPeriod"
clearable
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label=" 最长期" label-width="100px">
<el-date-picker
v-model="form.longPeriod"
clearable
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label=" 抽查期" label-width="100px">
<el-input
v-model="form.spotCheckPeriod"
clearable
type="number"
placeholder="整型数字"
onkeypress="return( /[\d]/.test(String.fromCharCode(event.keyCode)))"
>
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="性能复验" label-width="100px">
<el-select
v-model="form.isPerformRetest"
clearable
placeholder="请选择"
disabled
>
<el-option label="是" :value="true" />
<el-option label="否" :value="false" />
</el-select>
<!-- <el-input v-model="form.isPerformRetest" :disabled="true" /> -->
</el-form-item>
</el-col>
<el-col v-if="form.isPerformRetest" :span="24">
<div class="radio-input experiment">
<!-- <span>报告单号:</span> -->
<el-form-item label="报告单号" label-width="100px">
<el-input
v-model="form.reportNo"
clearable
placeholder="报告单号"
:disabled="true"
/>
</el-form-item>
<!-- 是否合格 -->
<el-form-item label="是否合格" label-width="100px">
<el-select
v-model="form.reportNoIsPass"
clearable
placeholder="请选择"
disabled
>
<el-option label="合格" value="Y" />
<el-option label="不合格" value="N" />
</el-select>
</el-form-item>
<!-- 是否报废 -->
<el-form-item label="是否报废" label-width="100px">
<el-select
v-model="form.isDestroy"
clearable
placeholder="请选择"
disabled
>
<el-option label="是" :value="true" />
<el-option label="否" :value="false" />
</el-select>
</el-form-item>
<!-- 报废数量 -->
<el-form-item label="试验数量" label-width="100px">
<el-input
v-model="form.experimentAmount"
clearable
placeholder="试验数量"
:disabled="true"
/>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="质量证明文件" label-width="100px">
<el-select
v-model="form.qualityCert"
clearable
placeholder="请选择"
>
<el-option label="合格" value="Y" />
<el-option label="不合格" value="N" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="标识检查" label-width="100px">
<el-select
v-model="form.flagCheck"
clearable
placeholder="请选择"
>
<el-option label="合格" value="Y" />
<el-option label="不合格" value="N" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="外观质量检查" label-width="120px">
<el-select
v-model="form.performCheck"
clearable
placeholder="请选择"
>
<el-option label="合格" value="Y" />
<el-option label="不合格" value="N" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="尺寸检验" label-width="100px">
<el-select
v-model="form.isSizeCheck"
clearable
placeholder="请选择"
>
<el-option label="是" :value="true" />
<el-option label="否" :value="false" />
</el-select>
</el-form-item>
</el-col>
<el-col v-if="form.isSizeCheck" :span="8">
<div class="radio-input">
<el-form-item label="抽样数" label-width="100px">
<el-input-number
v-model="form.sampleAmount"
clearable
:min="0"
placeholder="抽样数量"
/>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="检验依据" label-width="100px">
<el-input
v-model="form.checkBill"
clearable
placeholder="请输入检验依据"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" label-width="100px">
<el-input v-model="form.remark" clearable placeholder="备注" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="处理方式" label-width="100px">
<el-select
v-model="form.disposeType"
clearable
placeholder="请选择"
>
<el-option label="原样使用" value="OriginalSampleTest" />
<el-option label="报废" value="Scrap" />
<el-option label="返修" value="Rework" />
<el-option label="退货" value="Return" />
<el-option label="其他" value="Other" />
<el-option label="无" value="None" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="是否合格"
prop="isPass"
label-width="100px"
>
<el-select
v-model="form.isPass"
clearable
placeholder="请选择"
>
<el-option label="合格" value="Y" />
<el-option label="不合格" value="N" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="radio-input">
<el-form-item
label="不合格数"
label-width="100px"
prop="noPassAmount"
>
<el-input-number
v-model="form.noPassAmount"
clearable
:min="0"
placeholder="不合格数"
:disabled="form.isPass!=='N'"
/>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="是否封闭" label-width="100px">
<el-select
v-model="form.isClosure"
clearable
placeholder="请选择"
>
<el-option label="是" :value="true" />
<el-option label="否" :value="false" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="不合格品审理单号"
label-width="130px"
>
<el-input
v-model="form.noPassReviewNo"
clearable
placeholder="请输入不合格品审理单号"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="超期复验报告" label-width="100px">
<el-input
v-model="form.overdueReport"
clearable
placeholder="请输入超期复验报告编号"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label=" 结论" label-width="100px">
<el-input
v-model="form.conclusion"
placeholder="请输入复验报告结论"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label=" 延期到" label-width="100px">
<el-date-picker
v-model="form.delayTo"
clearable
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
/>
</el-form-item>
</el-col>
<!-- 表格区域 -->
<el-col :span="24">
<el-form-item label="尺寸检验项目" label-width="100px">
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[0].itemDescription"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[1].itemDescription"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[2].itemDescription"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[3].itemDescription"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[4].itemDescription"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[5].itemDescription"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[6].itemDescription"
clearable
type="text"
placeholder="录入"
/>
</el-col>
</el-form-item>
<el-form-item label="要求尺寸" label-width="100px">
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[0].jobTestCheckItemDetails[0].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[1].jobTestCheckItemDetails[0].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[2].jobTestCheckItemDetails[0].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[3].jobTestCheckItemDetails[0].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[4].jobTestCheckItemDetails[0].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[5].jobTestCheckItemDetails[0].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[6].jobTestCheckItemDetails[0].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
</el-form-item>
<el-form-item label="实测尺寸" label-width="100px">
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[0].jobTestCheckItemDetails[1].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[1].jobTestCheckItemDetails[1].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[2].jobTestCheckItemDetails[1].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[3].jobTestCheckItemDetails[1].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[4].jobTestCheckItemDetails[1].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[5].jobTestCheckItemDetails[1].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[6].jobTestCheckItemDetails[1].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
</el-form-item>
<el-form-item label="量具编号" label-width="100px">
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[0].jobTestCheckItemDetails[2].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[1].jobTestCheckItemDetails[2].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[2].jobTestCheckItemDetails[2].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[3].jobTestCheckItemDetails[2].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[4].jobTestCheckItemDetails[2].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[5].jobTestCheckItemDetails[2].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
<el-col :span="3">
<el-input
v-model="jobTestCheckItems[6].jobTestCheckItemDetails[2].checkvalue"
clearable
type="text"
placeholder="录入"
/>
</el-col>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="入场验收问题描述" label-width="120px">
<el-input
v-model="form.acceptanceProblem"
type="textarea"
resize="none"
clearable
:autosize="{ minRows: 9, maxRows: 10 }"
placeholder="入场验收问题描述"
/>
<!-- 相关单位意见 -->
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="相关单位意见" label-width="120px">
<el-input
v-model="form.relevantOpinions"
type="textarea"
clearable
resize="none"
:autosize="{ minRows: 9, maxRows: 10 }"
placeholder="相关单位意见"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="检验备注" label-width="120px">
<el-input
v-model="form.checkRemark"
clearable
type="textarea"
placeholder="检验备注"
resize="none"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<upload-files v-model="form.objFileLinks" />
</el-col>
</el-form>
</div>
</template>
<script>
import UploadFiles from './UploadFiles.vue'
export default {
components: { UploadFiles },
props: {
basicData: {
type: Object,
required: true
},
jobResponseInTestData: {
type: Object,
required: true
}
},
data() {
var checkAge = (rule, value, callback) => {
if (value > this.row.afterExperimentAmount) {
callback(
new Error(`不合格数不能大于${this.row.afterExperimentAmount}`)
)
} else {
callback()
}
}
return {
// pRowData: '',
loading: false,
// 验收单编号
materialID: '',
// 查看附件弹框
view: false,
uploadVisble: true,
disabled: false,
// 验收单号是否禁用
subTypeNameDisabled: false,
// form表单数据
searchFormData: {
name: '',
startDataRange: '',
processDefKey: ''
},
// JSON.parse(localStorage.getItem('materiaFormData')) ||
ExperimentObjFileLinks: [],
form: {
// 头部第一行
testNo: '',
maskPeriod: '',
qualityPeriod: '',
longPeriod: '',
spotCheckPeriod: '',
// 头部第二行
reportNo: '',
// 新增试验
experimentAmount: '',
isDestroy: '',
reportNoIsPass: '',
// 头部第三行
isPerformRetest: '',
qualityCert: 'Y',
checkBill: '',
flagCheck: 'Y',
performCheck: 'Y',
// 头部第四行
// checkAo: {
// note: ''
// },
remark: '',
isSizeCheck: '',
sampleAmount: '',
noPassAmount: '',
// 入场验收问题描述
acceptanceProblem: '',
// 相关单位意见
relevantOpinions: '',
// 右侧处理方式区域
disposeType: '',
noPassReviewNo: '',
isPass: 'Y',
isClosure: '',
overdueReport: '',
conclusion: '',
delayTo: '',
checkRemark: '',
// 上传附件
objFileLinks: []
},
// 尺寸检验项目
jobTestCheckItems: [
{
operator: 'MODIFY',
itemName: '尺寸检验项目',
itemDescription: '',
jobTestCheckItemDetails: [
{
operator: 'MODIFY',
checkkey: '要求尺寸',
checkvalue: ''
},
{
operator: 'MODIFY',
checkkey: '实际尺寸',
checkvalue: ''
},
{
operator: 'MODIFY',
checkkey: '量具编号',
checkvalue: ''
}
]
},
{
operator: 'MODIFY',
itemName: '尺寸检验项目',
itemDescription: '',
jobTestCheckItemDetails: [
{
operator: 'MODIFY',
checkkey: '要求尺寸',
checkvalue: ''
},
{
operator: 'MODIFY',
checkkey: '实际尺寸',
checkvalue: ''
},
{
operator: 'MODIFY',
checkkey: '量具编号',
checkvalue: ''
}
]
},
{
operator: 'MODIFY',
itemName: '尺寸检验项目',
itemDescription: '',
jobTestCheckItemDetails: [
{
operator: 'MODIFY',
checkkey: '要求尺寸',
checkvalue: ''
},
{
operator: 'MODIFY',
checkkey: '实际尺寸',
checkvalue: ''
},
{
operator: 'MODIFY',
checkkey: '量具编号',
checkvalue: ''
}
]
},
{
operator: 'MODIFY',
itemName: '尺寸检验项目',
itemDescription: '',
jobTestCheckItemDetails: [
{
operator: 'MODIFY',
checkkey: '要求尺寸',
checkvalue: ''
},
{
operator: 'MODIFY',
checkkey: '实际尺寸',
checkvalue: ''
},
{
operator: 'MODIFY',
checkkey: '量具编号',
checkvalue: ''
}
]
},
{
operator: 'MODIFY',
itemName: '尺寸检验项目',
itemDescription: '',
jobTestCheckItemDetails: [
{
operator: 'MODIFY',
checkkey: '要求尺寸',
checkvalue: ''
},
{
operator: 'MODIFY',
checkkey: '实际尺寸',
checkvalue: ''
},
{
operator: 'MODIFY',
checkkey: '量具编号',
checkvalue: ''
}
]
},
{
operator: 'MODIFY',
itemName: '尺寸检验项目',
itemDescription: '',
jobTestCheckItemDetails: [
{
operator: 'MODIFY',
checkkey: '要求尺寸',
checkvalue: ''
},
{
operator: 'MODIFY',
checkkey: '实际尺寸',
checkvalue: ''
},
{
operator: 'MODIFY',
checkkey: '量具编号',
checkvalue: ''
}
]
},
{
operator: 'MODIFY',
itemName: '尺寸检验项目',
itemDescription: '',
jobTestCheckItemDetails: [
{
operator: 'MODIFY',
checkkey: '要求尺寸',
checkvalue: ''
},
{
operator: 'MODIFY',
checkkey: '实际尺寸',
checkvalue: ''
},
{
operator: 'MODIFY',
checkkey: '量具编号',
checkvalue: ''
}
]
}
],
formRules: {
testNo: [
{ required: true, message: '请输入验收单号', trigger: 'blur' }
],
isPass: [
{ required: true, message: '请选择是否合格', trigger: 'change' }
],
sampleAmount: [{ type: 'number', message: '抽样数必须为数字值' }],
noPassAmount: [{ validator: checkAge, trigger: ['blur', 'change'] }]
},
tools: [
{
name: '保存',
icon: '/icons/components/new/add.png',
handler: {
click: () => {
this.onSubmit()
}
}
},
{
name: '下载',
icon: '/icons/components/new/addAffectedData.png',
handler: {
click: () => {
this.savePDF()
}
}
}
]
}
},
computed: {},
watch: {
'form.isPass': {
handler: function(v) {
if (v === 'N') {
this.$set(this.formRules, 'noPassAmount', [{ required: true, message: '请输入不合格数', trigger: 'change' }])
} else {
this.$delete(this.formRules, 'noPassAmount')
}
},
deep: true,
immediate: true
}
// form: {
// handler: function(v) {
// this.form
// },
// deep: true,
// immediate: true
// }
},
created() {
console.log('this.basi', this.basicData)
console.log('this.basi', this)
// 初始化数据
this.form = this.jobResponseInTestData
if (this.form.jobTestCheckItems) {
this.form.jobTestCheckItems.map(
(item) => {
item.operator = 'MODIFY'
item.jobTestCheckItemDetails.map((item1) => {
item1.operator = 'MODIFY'
})
}
)
this.jobTestCheckItems = this.form.jobTestCheckItems
}
},
methods: {
onSubmit() {
console.log('this', this)
const params = {
...this.form,
'jobTestCheckItems': this.jobTestCheckItems
}
params.operator = 'MODIFY'
if (this.$store.state.globalUploader.openUploader.list) {
console.log('2131231', this.$store.state.globalUploader.openUploader.list.map(item => ({ target: { ...item, operator: 'ADD' }, operator: 'ADD' })))
params.objFileLinks = this.$store.state.globalUploader.openUploader.list.map(item => ({ target: { ...item, operator: 'ADD' }, operator: 'ADD' }))
}
this.$api.recursion('JobResponseInTest', params).then(res => {
this.$utils.showMessageSuccess('保存成功')
})
},
savePDF() {
console.log('this', this.$store.state.globalUploader.openUploader)
console.log('this', this.$store.state.globalUploader.activeLoad)
},
viewDialog() {}
}
}
</script>
<style lang='scss'>
</style>
/**
* @Description: 外包产品验收单
* @author xioln
* @date 2023-07-14
* @FilePath: applications/dee-mes/src/privateComponents/components/JobResponseInTestProcess/component/outSourceCheckNo.vue
*/
<template>
<div class="outSource-checkNo">
<div class="dee-form-header-box">
<dee-tools :tools="tools" mode="normal" style="flex-direction: row-reverse;" />
</div>
<div class="sub-title" style="padding-bottom: 8px; font-size: 16px;"> 物料检验详情 </div>
<el-form ref="form" :model="form" class="checkNo-container" :rules="formRules">
<el-col :span="8">
<el-form-item label="验收单号" label-width="100px" prop="testNo">
<el-input v-model="form.testNo" placeholder="请输入验收单号" :disabled="subTypeNameDisabled" clearable onchange="this.value=this.value.toUpperCase()" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label=" 保质期/贮存期" label-width="100px">
<el-date-picker v-model="form.qualityPeriod" clearable type="date" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss" style="width: 100%;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label=" 保证期" label-width="100px">
<el-input v-model="form.guaranteePeriod" clearable placeholder="请输入保证期" style="width: 100%;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验依据" label-width="100px">
<el-input v-model="form.checkBill" clearable placeholder="检验依据" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="重量" label-width="100px">
<el-input v-model="form.weight" type="number" placeholder="请输入重量" clearable onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/,'$1$2.$3');" onafterpaste="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/,'$1$2.$3');">
<template slot="append">Kg</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="质量证明文件" label-width="100px">
<el-select v-model="form.qualityCert" clearable placeholder="请选择">
<el-option label="合格" value="Y" />
<el-option label="不合格" value="N" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="散件检查" label-width="100px">
<el-select v-model="form.bulkCheck" clearable placeholder="请选择">
<el-option label="合格" value="Y" />
<el-option label="不合格" value="N" />
<el-option label="不适用/无" value="W" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="标识检查" label-width="100px">
<el-select v-model="form.flagCheck" clearable placeholder="请选择">
<el-option label="合格" value="Y" />
<el-option label="不合格" value="N" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否关键件" label-width="100px">
<el-select v-model="form.isKeyPart" clearable placeholder="请选择">
<el-option label="是" :value="true" />
<el-option label="否" :value="false" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="外观质量检查" label-width="100px">
<el-select v-model="form.performCheck" clearable placeholder="请选择">
<el-option label="合格" value="Y" />
<el-option label="不合格" value="N" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="接收检验AO" label-width="100px">
<el-input v-model="form.ao" clearable placeholder="请输入接收检验AO" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="处理方式" label-width="100px">
<el-select v-model="form.disposeType" clearable placeholder="请选择">
<el-option label="原样使用" value="OriginalSampleTest" />
<el-option label="报废" value="Scrap" />
<el-option label="返修" value="Rework" />
<el-option label="退货" value="Return" />
<el-option label="其他" value="Other" />
<el-option label="无" value="None" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否合格" prop="isPass" label-width="100px">
<el-select v-model="form.isPass" clearable placeholder="请选择">
<el-option label="合格" value="Y" />
<el-option label="不合格" value="N" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不合格数" label-width="100px" prop="noPassAmount">
<el-input-number
v-model="form.noPassAmount"
clearable
:min="0"
placeholder="不合格数"
:disabled="form.isPass!=='N'"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否封闭" label-width="100px">
<el-select v-model="form.isClosure" clearable placeholder="请选择">
<el-option label="是" :value="true" />
<el-option label="否" :value="false" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不合格品审理单号" label-width="120px">
<el-input v-model="form.noPassReviewNo" clearable placeholder="请输入不合格品审理单号" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="入场验收问题描述" label-width="120px">
<el-input
v-model="form.acceptanceProblem"
type="textarea"
resize="none"
clearable
:autosize="{ minRows: 9, maxRows: 10}"
placeholder="入场验收问题描述"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="相关单位意见" label-width="120px">
<el-input
v-model="form.relevantOpinions"
type="textarea"
resize="none"
clearable
:autosize="{ minRows: 9, maxRows: 10}"
placeholder="相关单位意见"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label-width="120px" label="检验备注" style="margin-bottom:10px">
<el-input
v-model="form.checkRemark"
type="textarea"
clearable
:autosize="{ minRows: 3.6, maxRows: 7 }"
placeholder="检验备注:"
resize="none"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item>
<upload-files v-if="uploadVisble" v-model="form.objFileLinks" />
</el-form-item>
</el-col>
</el-form>
</div>
</template>
<script>
import UploadFiles from './UploadFiles.vue'
export default {
components: { UploadFiles },
props: {
basicData: {
type: Object,
required: true
}
},
data() {
// var checkAge = (rule, value, callback) => {
// if (value > this.row.afterExperimentAmount) {
// callback(new Error(`不合格数不能大于${this.row.afterExperimentAmount}`))
// } else {
// callback()
// }
// }
return {
disabled: false,
// 验收单号是否禁用
subTypeNameDisabled: false,
// form表单数据
searchFormData: {
name: '',
startDataRange: '',
processDefKey: ''
},
// 验收单id
OutSourceID: '',
form: {
// 头部第一行
testNo: '',
qualityPeriod: '',
guaranteePeriod: '',
// 头部第二行
checkBill: '',
weight: '',
// 头部第三行
qualityCert: 'Y',
bulkCheck: 'Y',
// 头部第四行
flagCheck: 'Y',
isKeyPart: '',
// 头部第五行
performCheck: 'Y',
// 头部第六行
noPassAmount: '',
ao: '',
// 入场验收问题描述
acceptanceProblem: '',
// 相关单位意见
relevantOpinions: '',
// 右侧处理方式区域
disposeType: '',
noPassReviewNo: '',
isPass: 'Y',
isClosure: '',
checkRemark: '',
// 上传附件
objFileLinks: []
},
formRules: {
testNo: [
{ required: true, message: '请输入验收单号', trigger: 'blur' }
],
isPass: [
{ required: true, message: '请选择是否合格', trigger: 'change' }
],
noPassAmount: [
{ validator: 1, trigger: ['blur', 'change'] }
]
},
uploadVisble: false,
tools: [
{
name: '保存',
icon: '/icons/components/new/add.png',
handler: {
click: () => {
this.onSubmit()
}
}
},
{
name: '下载',
icon: '/icons/components/new/addAffectedData.png',
handler: {
click: () => {
this.savePDF()
}
}
}
]
}
},
computed: {},
watch: {
'form.isPass': {
handler: function(v) {
if (v === 'N') {
this.$set(this.formRules, 'noPassAmount', [{ required: true, message: '请输入不合格数', trigger: 'change' }])
} else {
this.$delete(this.formRules, 'noPassAmount')
}
},
deep: true,
immediate: true
}
},
created() {
// 初始化数据
this.form = this.basicData
},
methods: {
onSubmit() {
const params = {
...this.form,
operator: 'MODIFY'
}
this.$api.recursion('JobResponseInTest', params).then(res => {
this.$utils.showMessageSuccess('保存成功')
})
},
savePDF() {}
}
}
</script>
<style lang='scss'>
</style>
/**
* @Description: 检验响应流程
* @author xioln
* @date 2023-07-14
* @FilePath: applications/dee-mes/src/privateComponents/components/JobResponseInTestProcess/index.vue
*/
<template>
<div class="jobResponseInTest-process">
<equipmen-check-no v-if="type==='AirEquipment'" :basic-data="basicData" :job-response-in-test-data="data" />
<outSource-check-no v-if="type==='OutSource'" :basic-data="basicData" :job-response-in-test-data="data" />
<material-check-no v-if="type==='Material'" :basic-data="basicData" :job-response-in-test-data="data" />
</div>
</template>
<script>
import EquipmenCheckNo from './component/equipmenCheckNo'
import OutSourceCheckNo from './component/outSourceCheckNo'
import MaterialCheckNo from './component/materialCheckNo'
import { get, post } from '@/utils/http'
export default {
componentName: '检验响应流程',
name: 'JobResponseInTestProcess', // name写在组件的最前方,自定义组件为必填
// components: { EquipmenCheckNo, OutSourceCheckNo },
components: { EquipmenCheckNo, OutSourceCheckNo, MaterialCheckNo },
props: {
basicData: {
type: Object,
default: () => null
}
},
data() {
return {
type: '',
data: null
}
},
computed: {},
watch: {
// basicData: {
// immediate: true,
// deep: true,
// handler: function(val) {
// if (val.inventoryReqId) {
// console.log('val', val)
// // this.getInventoryRequest(val.inventoryReqId)
// }
// }
// },
'basicData.inventoryReqId': {
immediate: true,
deep: true,
handler: function(val) {
console.log('inventoryReqId', val)
this.getInventoryRequest(val)
}
}
},
created() {
// 初始化数据
},
mounted() {
console.log('basicData', this)
},
methods: {
getInventoryRequest(id) {
get(`InventoryRequest/${id}`).then(res => {
console.log('getInventoryRequest', res)
const type = res.items.billType
// switch (type) {
// case '器材':
// case 'Material':
// this.type = 'Material'
// break
// case '机载设备':
// case 'AirEquipment':
// this.initData('AirEquipment')
// break
// case '外包产品':
// case 'OutSource':
// this.initData('OutSource')
// break
// }
this.initData(type)
}).catch((err) => {
console.log(err)
})
},
initData(type) {
const param = {
'pageFrom': 1,
'pageSize': 10,
'searchItems': {
'children': [
{
'items': [
{
'fieldName': 'jobOrderId',
'operator': 'EQ',
'value': this.basicData.id
}
],
'operator': 'AND'
}
],
'items': [],
'operator': 'AND'
},
'openProps': [
{
'name': 'jobTestCheckItems',
'openProps': [{ 'name': 'jobTestCheckItemDetails' }]
},
{
'name': 'objFileLinks',
'openProps': [{ 'name': 'target' }]
}
],
'sortItem': [
{
'fieldName': 'modifyTime',
'sortOrder': 'desc'
}
]
}
post('JobResponseInTest/search', param).then(res => {
const data = res.items.content[0]
console.log('JobResponseInTest', { ...data })
this.data = data
this.type = type
}).catch((err) => {
console.log(err)
})
}
}
}
</script>
<style lang='scss'>
</style>
...@@ -14,16 +14,13 @@ ...@@ -14,16 +14,13 @@
:form-data="formData" :form-data="formData"
:rules="rules" :rules="rules"
@on-submit="submit" @on-submit="submit"
@on-cancel="cancel"
/> />
<div class="sub-title"> 采购入库申请明细 </div> <div class="sub-title"> 采购入库申请明细 </div>
<dee-table <dee-table
ref="treeTable" ref="treeTable"
:key="symbolKey"
:data="tableData" :data="tableData"
:columns="columns" :columns="columns"
:options="optionsTree" :options="optionsTree"
:index-row="{ title: '序号', width: '70', align: 'center' }"
> >
<div slot="header" class="table-title-wrap"> <div slot="header" class="table-title-wrap">
<dee-tools :tools="tools" mode="normal" /> <dee-tools :tools="tools" mode="normal" />
...@@ -245,7 +242,10 @@ export default { ...@@ -245,7 +242,10 @@ export default {
rowKey: 'rowId', rowKey: 'rowId',
'tree-props': { children: 'children' } 'tree-props': { children: 'children' }
}, },
num: 1,
childNum: 1,
columns: [ columns: [
{ title: '序号', key: 'parentIndex', align: 'center', headerAlign: 'center' },
{ {
title: '操作', minWidth: 120, align: 'center', component: { title: '操作', minWidth: 120, align: 'center', component: {
name: 'EditTableRow', name: 'EditTableRow',
...@@ -381,8 +381,7 @@ export default { ...@@ -381,8 +381,7 @@ export default {
tableData: [], tableData: [],
tableParam: [], tableParam: [],
operator: null, operator: null,
addData: {}, addData: {}
symbolKey: ''
} }
}, },
computed: { computed: {
...@@ -661,7 +660,10 @@ export default { ...@@ -661,7 +660,10 @@ export default {
item.component.disabled = true item.component.disabled = true
}) })
} }
this.tableData = data this.treeTableNoArrange(data)
this.num = 1
this.childNum = 1
}).catch((err) => { }).catch((err) => {
console.log(err) console.log(err)
}) })
...@@ -708,12 +710,7 @@ export default { ...@@ -708,12 +710,7 @@ export default {
if (tableDataItem.operateType === 'NEW') { if (tableDataItem.operateType === 'NEW') {
tableData.push(tableDataItem) tableData.push(tableDataItem)
} }
console.log('tableData', tableData) this.treeTableNoArrange(tableData)
tableData.forEach(item => {
this.tableData.push(item)
})
this.symbolKey = Symbol(new Date().toString())
console.log('this.symbolKey', this.symbolKey)
}, },
submit() { submit() {
const tableData = this.tableData.slice() const tableData = this.tableData.slice()
...@@ -757,8 +754,16 @@ export default { ...@@ -757,8 +754,16 @@ export default {
console.log(err) console.log(err)
}) })
}, },
cancel() { treeTableNoArrange(tableData) {
tableData.forEach((item, i) => {
item.parentIndex = i + 1
if (item.children) {
item.children.forEach((child, j) => {
child.parentIndex = item.parentIndex + '.' + (j + 1)
})
}
})
this.tableData = tableData
} }
} }
} }
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
:data="tableData" :data="tableData"
:columns="columns" :columns="columns"
:options="optionsTree" :options="optionsTree"
:index-row="{ title: '序号', width: '70' , align: 'center'}"
/> />
</div> </div>
</template> </template>
...@@ -32,65 +31,66 @@ export default { ...@@ -32,65 +31,66 @@ export default {
return { return {
tableData: [], tableData: [],
columns: [ columns: [
{ title: '单据编号', key: 'inventoryReq.reqNo', width: '120', headerAlign: 'center' }, { title: '序号', key: 'parentIndex', align: 'center', headerAlign: 'center' },
{ title: '所属设备', key: 'subEquipment', headerAlign: 'center' }, { title: '单据编号', key: 'inventoryReq.reqNo', width: '120', align: 'center', headerAlign: 'center' },
{ title: '所属设备', key: 'subEquipment', headerAlign: 'center', align: 'center' },
{ {
title: '物料类型', key: 'typeName', headerAlign: 'center', formatter: (row, column, cellValue, index) => { title: '物料类型', key: 'typeName', align: 'center', headerAlign: 'center', formatter: (row, column, cellValue, index) => {
const value = row.extMaterial ? row.extMaterial.resType2.typeName : row.materialTypeName const value = row.extMaterial ? row.extMaterial.resType2.typeName : row.materialTypeName
return value return value
} }
}, },
{ {
title: '编码', key: 'typeCode', headerAlign: 'center', width: '100', formatter: (row, column, cellValue, index) => { title: '编码', key: 'typeCode', align: 'center', headerAlign: 'center', width: '100', formatter: (row, column, cellValue, index) => {
const value = row.resCode ? row.resCode : row.extMaterial ? row.extMaterial.resCode : '' const value = row.resCode ? row.resCode : row.extMaterial ? row.extMaterial.resCode : ''
return value return value
} }
}, },
{ title: '机型', key: 'airModel', headerAlign: 'center' }, { title: '机型', key: 'airModel', align: 'center', headerAlign: 'center' },
{ title: '架次', key: 'sorties', headerAlign: 'center' }, { title: '架次', key: 'sorties', align: 'center', headerAlign: 'center' },
{ {
title: '计量单位', key: 'unitName', headerAlign: 'center', formatter: (row, column, cellValue, index) => { title: '计量单位', key: 'unitName', align: 'center', headerAlign: 'center', formatter: (row, column, cellValue, index) => {
const value = row.reqUnit ? row.reqUnit : row.extMaterial ? row.extMaterial.extUnit.unitName : '' const value = row.reqUnit ? row.reqUnit : row.extMaterial ? row.extMaterial.extUnit.unitName : ''
return value return value
} }
}, },
{ title: '入库数量', key: 'reqAmount', headerAlign: 'center' }, { title: '入库数量', key: 'reqAmount', align: 'center', headerAlign: 'center' },
{ {
title: '供应商', key: 'supplierFullName', headerAlign: 'center', formatter: (row, column, cellValue, index) => { title: '供应商', key: 'supplierFullName', align: 'center', headerAlign: 'center', formatter: (row, column, cellValue, index) => {
const value = row.extDxSipplier ? row.extDxSipplier.supplierFullName : row.supplier const value = row.extDxSipplier ? row.extDxSipplier.supplierFullName : row.supplier
return value return value
} }
}, },
// { title: '是否合格供应商', key: 'extDxSipplier.isValid', headerAlign: 'center' }, // { title: '是否合格供应商', key: 'extDxSipplier.isValid', headerAlign: 'center' },
{ title: '制造商', key: 'manufacturer', headerAlign: 'center' }, { title: '制造商', key: 'manufacturer', align: 'center', headerAlign: 'center' },
{ title: '到货日期', key: 'arrivalDate', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => { { title: '到货日期', key: 'arrivalDate', align: 'center', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
return row.arrivalDate.split(' ')[0] return row.arrivalDate.split(' ')[0]
} }, } },
{ title: '生产日期', key: 'producedTime', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => { { title: '生产日期', key: 'producedTime', align: 'center', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
return row.arrivalDate.split(' ')[0] return row.arrivalDate.split(' ')[0]
} }, } },
{ {
title: '随产品资料', key: 'withProductMaterial', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => { title: '随产品资料', key: 'withProductMaterial', align: 'center', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
return Array.isArray(row.withProductMaterial) ? row.withProductMaterial.join(';') : row.withProductMaterial return Array.isArray(row.withProductMaterial) ? row.withProductMaterial.join(';') : row.withProductMaterial
} }
}, },
{ title: '紧急程度', key: 'urgency', headerAlign: 'center' }, { title: '紧急程度', key: 'urgency', align: 'center', headerAlign: 'center' },
{ title: '入库单价', key: 'stockUnitPrice', headerAlign: 'center' }, { title: '入库单价', key: 'stockUnitPrice', align: 'center', headerAlign: 'center' },
{ title: '入库金额', key: 'stockPrice', headerAlign: 'center' }, { title: '入库金额', key: 'stockPrice', align: 'center', headerAlign: 'center' },
{ title: '含税单价', key: 'taxUnitPrice', headerAlign: 'center' }, { title: '含税单价', key: 'taxUnitPrice', align: 'center', headerAlign: 'center' },
{ title: '含税金额', key: 'taxPrice', headerAlign: 'center' }, { title: '含税金额', key: 'taxPrice', align: 'center', headerAlign: 'center' },
{ title: '税率', key: 'taxRate', headerAlign: 'center' }, { title: '税率', key: 'taxRate', align: 'center', headerAlign: 'center' },
{ title: '报检人', key: 'applyUserName', headerAlign: 'center' }, { title: '报检人', key: 'applyUserName', align: 'center', headerAlign: 'center' },
{ {
title: '接受仓库', key: 'extname', headerAlign: 'center', formatter: (row, column, cellValue, index) => { title: '接受仓库', key: 'extname', align: 'center', headerAlign: 'center', formatter: (row, column, cellValue, index) => {
const value = row.storageZone ? row.storageZone.extname : row.storageZoneName const value = row.storageZone ? row.storageZone.extname : row.storageZoneName
return value return value
} }
}, },
{ title: '合同号', key: 'contractNo', headerAlign: 'center' }, { title: '合同号', key: 'contractNo', align: 'center', headerAlign: 'center' },
{ title: '备注', key: 'remark', headerAlign: 'center' }, { title: '备注', key: 'remark', align: 'center', headerAlign: 'center' },
{ title: '状态', key: 'state', headerAlign: 'center' }, { title: '状态', key: 'state', align: 'center', headerAlign: 'center' },
{ title: '创建时间', key: 'createTime', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => { { title: '创建时间', key: 'createTime', align: 'center', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
return row.arrivalDate.split(' ')[0] return row.arrivalDate.split(' ')[0]
} } } }
], ],
...@@ -102,20 +102,17 @@ export default { ...@@ -102,20 +102,17 @@ export default {
}, },
computed: {}, computed: {},
watch: { watch: {
basicData: { 'basicData.businessObject.id': {
immediate: true, immediate: true,
deep: true, deep: true,
handler: function(val) { handler: function(val) {
console.log('val', val) this.searchInStorageRequestItem(val)
if (val.businessObject.id) {
this.searchInStorageRequestItem(val.businessObject.id)
}
} }
} }
}, },
created() { created() {
// 初始化数据 // 初始化数据
console.log('this.ba', this.basicData) // this.searchInStorageRequestItem(this.basicData.businessObject.id)
}, },
methods: { methods: {
// 编辑采购入库明细查询InStorageRequestItem/search // 编辑采购入库明细查询InStorageRequestItem/search
...@@ -187,10 +184,21 @@ export default { ...@@ -187,10 +184,21 @@ export default {
post('InStorageRequestItem/treeSearch', param).then(res => { post('InStorageRequestItem/treeSearch', param).then(res => {
const data = res.items const data = res.items
this.tableData = data this.treeTableNoArrange(data)
}).catch((err) => { }).catch((err) => {
console.log(err) console.log(err)
}) })
},
treeTableNoArrange(tableData) {
tableData.forEach((item, i) => {
item.parentIndex = i + 1
if (item.children) {
item.children.forEach((child, j) => {
child.parentIndex = item.parentIndex + '.' + (j + 1)
})
}
})
this.tableData = tableData
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment