Commit cf072ca2 authored by arvin's avatar arvin

Merge branch 'dev' of http://94.191.100.41/tfmom/tf-mom-web into dev

parents 64347f1f 82bcbf54
// 测试环境
// const VUE_APP_BASE_API = 'http://119.29.37.87:9007' // eslint-disable-line
const VUE_APP_BASE_API = 'http://1.14.146.148:9002' // eslint-disable-line
// const VUE_APP_BASE_API = 'http://36.41.67.68:9002' // eslint-disable-line
// 开发环境
// const VUE_APP_BASE_API = 'http://106.52.20.189:9002' // eslint-disable-line
// const VUE_APP_BASE_API = 'http://192.168.0.38:8002' // eslint-disable-line
......
(window["webpackJsonp-dee-workflow"]=window["webpackJsonp-dee-workflow"]||[]).push([["chunk-12d55490"],{"13d6":function(e,a,t){var n={"./":"7ca9","./DeeSelectRule":"7e69","./DeeSelectRule.vue":"7e69","./basicInfo":"9891","./basicInfo.vue":"9891","./current-task-owner":"5894","./current-task-owner.vue":"5894","./help-setting":"f006","./help-setting.vue":"f006","./index":"7ca9","./index.js":"7ca9","./moveAndZoom":"750a","./moveAndZoom.js":"750a","./participant-authOrg":"ba31","./participant-authOrg.vue":"ba31","./participant-creator":"7677","./participant-creator.vue":"7677","./participant-group":"c096","./participant-group.vue":"c096","./participant-org":"90ee","./participant-org.vue":"90ee","./participant-pboVar":"11e9","./participant-pboVar.vue":"11e9","./participant-rule":"9ea8","./participant-rule.vue":"9ea8","./participant-starter":"e09c","./participant-starter.vue":"e09c","./participant-team":"c26c","./participant-team.vue":"c26c","./participant-user":"b170","./participant-user.vue":"b170","./participant-var":"8275","./participant-var.vue":"8275","./process-owner":"07eb","./process-owner.vue":"07eb"};function r(e){var a=c(e);return t(a)}function c(e){if(!t.o(n,e)){var a=new Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}return n[e]}r.keys=function(){return Object.keys(n)},r.resolve=c,e.exports=r,r.id="13d6"},"7e69":function(e,a,t){"use strict";t.r(a);var n=function(){var e=this,a=e._self._c;return a("div",{staticClass:"-page"},[a("el-cascader",{attrs:{props:{expandTrigger:"click",lazy:!0,lazyLoad:e.lazyLoad,checkStrictly:!0},options:e.options},on:{change:e.handleChange},model:{value:e.cascaderData,callback:function(a){e.cascaderData=a},expression:"cascaderData"}})],1)},r=[],c=(t("a7e1"),t("a74e")),o=(t("e285"),t("9ebb"),t("df26"),t("42c2")),i=(t("c880"),t("ce9c"),t("8f6b")),p={components:{},props:{value:{type:[Object,Array,String,Number],default:null},itemObj:{type:Object,default:function(){}}},data:function(){return{showCascader:!1,hasObjOptions:!1,cascaderData:"",options:[],hasGetConfigData:!1}},computed:{},watch:{},mounted:function(){this.options.length||this.getFirstOptions()},methods:{getFirstOptions:function(){var e=this;Object(i["c"])({}).then((function(a){e.options=a.items.content?a.items.content.map((function(e){return{label:e.name,value:e.innerName,data:e,leaf:""}})):[]}))},lazyLoad:function(){var e=Object(o["a"])(Object(c["a"])().mark((function e(a,t){var n;return Object(c["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:a&&a.data&&(a.data.children?setTimeout((function(){var e=Array.from(a.data);t(e)})):1===a.level?Object(i["findModelDefByServer"])({modelType:"BASE",serverName:a.value}).then((function(e){var a=e.items.map((function(e){return{value:e.name,label:e.displayName,leaf:"",data:e}}));t(a)})):2===a.level&&(n={indices:["DxDynamicCodeScope"],pageFrom:1,pageSize:10,openProps:[{name:"dynamicCode",pageFrom:1,pageSize:9999,items:[{fieldName:"serverName",operator:"EQ",value:a.parent.value},{fieldName:"modelName",operator:"EQ",value:a.value}]}],searchItems:{operator:"AND",children:[{operator:"AND",items:[{fieldName:"displayName",operator:"EQ",value:"pbo通用作用域"}]}]}},Object(i["getRules"])(n).then((function(e){var a=e.items.content.map((function(e){return{value:e.name,label:e.displayName,leaf:"leaf",data:e}}));t(a)}))));case 1:case"end":return e.stop()}}),e)})));function a(a,t){return e.apply(this,arguments)}return a}(),handleChange:function(e){console.log("vai=======",e)},isObj:function(e){return"[object Object]"===Object.prototype.toString.call(e)}}},u=p,s=t("2be6"),l=Object(s["a"])(u,n,r,!1,null,null,null);a["default"]=l.exports},9891:function(e,a,t){"use strict";t.r(a);var n=function(){var e=this,a=e._self._c;return a("div",{staticClass:"basicInfo-com"},[a("dee-readable-form",{attrs:{"form-data":e.basicInfo}})],1)},r=[],c={name:"BasicInfo",components:{},props:{basicInfo:{type:Array,default:function(){return[]}}},data:function(){return{}},watch:{basicInfo:{handler:function(e,a){this.basicInfo=e}}},mounted:function(){},methods:{}},o=c,i=t("2be6"),p=Object(i["a"])(o,n,r,!1,null,null,null);a["default"]=p.exports}}]);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -367,6 +367,7 @@ export default {
<style lang="scss">
.OrgLazyLoadSelectCmp {
font-size: 14px;
// height: 40px;
.text-tag{
.el-tag{
margin: 0 4px
......@@ -374,30 +375,31 @@ export default {
}
.content-wrap {
display: flex;
height: 100%;
align-items: center;
.text {
width: auto;
line-height: 40px;
height: 40px;
}
// .el-icon-close{
// width: 20px;
// text-align: right;
// cursor: pointer;
// &:hover {
// color: #409eff;
// font-size: 18px;
// }
// }
.el-icon-close{
// width: 20px;
// text-align: center;
cursor: pointer;
// &:hover {
// color: #409eff;
// font-size: 18px;
// }
}
.el-icon-edit {
width: 20px;
text-align: right;
// width: 20px;
// text-align: center;
margin-left: 20px;
cursor: pointer;
&:hover {
color: #409eff;
font-size: 18px;
}
// &:hover {
// color: #409eff;
// font-size: 18px;
// }
}
}
}
......
<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 @@
:form-data="formData"
:rules="rules"
@on-submit="submit"
@on-cancel="cancel"
/>
<div class="sub-title"> 采购入库申请明细 </div>
<dee-table
ref="treeTable"
:key="symbolKey"
:data="tableData"
:columns="columns"
:options="optionsTree"
:index-row="{ title: '序号', width: '70', align: 'center' }"
>
<div slot="header" class="table-title-wrap">
<dee-tools :tools="tools" mode="normal" />
......@@ -245,7 +242,10 @@ export default {
rowKey: 'rowId',
'tree-props': { children: 'children' }
},
num: 1,
childNum: 1,
columns: [
{ title: '序号', key: 'parentIndex', align: 'center', headerAlign: 'center' },
{
title: '操作', minWidth: 120, align: 'center', component: {
name: 'EditTableRow',
......@@ -381,8 +381,7 @@ export default {
tableData: [],
tableParam: [],
operator: null,
addData: {},
symbolKey: ''
addData: {}
}
},
computed: {
......@@ -661,7 +660,10 @@ export default {
item.component.disabled = true
})
}
this.tableData = data
this.treeTableNoArrange(data)
this.num = 1
this.childNum = 1
}).catch((err) => {
console.log(err)
})
......@@ -708,12 +710,7 @@ export default {
if (tableDataItem.operateType === 'NEW') {
tableData.push(tableDataItem)
}
console.log('tableData', tableData)
tableData.forEach(item => {
this.tableData.push(item)
})
this.symbolKey = Symbol(new Date().toString())
console.log('this.symbolKey', this.symbolKey)
this.treeTableNoArrange(tableData)
},
submit() {
const tableData = this.tableData.slice()
......@@ -757,8 +754,16 @@ export default {
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 @@
:data="tableData"
:columns="columns"
:options="optionsTree"
:index-row="{ title: '序号', width: '70' , align: 'center'}"
/>
</div>
</template>
......@@ -32,65 +31,66 @@ export default {
return {
tableData: [],
columns: [
{ title: '单据编号', key: 'inventoryReq.reqNo', width: '120', headerAlign: 'center' },
{ title: '所属设备', key: 'subEquipment', headerAlign: 'center' },
{ title: '序号', key: 'parentIndex', align: 'center', 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
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 : ''
return value
}
},
{ title: '机型', key: 'airModel', headerAlign: 'center' },
{ title: '架次', key: 'sorties', headerAlign: 'center' },
{ title: '机型', key: 'airModel', align: 'center', 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 : ''
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
return value
}
},
// { title: '是否合格供应商', key: 'extDxSipplier.isValid', headerAlign: 'center' },
{ title: '制造商', key: 'manufacturer', headerAlign: 'center' },
{ title: '到货日期', key: 'arrivalDate', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
{ title: '制造商', key: 'manufacturer', align: 'center', headerAlign: 'center' },
{ title: '到货日期', key: 'arrivalDate', align: 'center', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
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]
} },
{
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
}
},
{ title: '紧急程度', key: 'urgency', headerAlign: 'center' },
{ title: '入库单价', key: 'stockUnitPrice', headerAlign: 'center' },
{ title: '入库金额', key: 'stockPrice', headerAlign: 'center' },
{ title: '含税单价', key: 'taxUnitPrice', headerAlign: 'center' },
{ title: '含税金额', key: 'taxPrice', headerAlign: 'center' },
{ title: '税率', key: 'taxRate', headerAlign: 'center' },
{ title: '报检人', key: 'applyUserName', headerAlign: 'center' },
{ title: '紧急程度', key: 'urgency', align: 'center', headerAlign: 'center' },
{ title: '入库单价', key: 'stockUnitPrice', align: 'center', headerAlign: 'center' },
{ title: '入库金额', key: 'stockPrice', align: 'center', headerAlign: 'center' },
{ title: '含税单价', key: 'taxUnitPrice', align: 'center', headerAlign: 'center' },
{ title: '含税金额', key: 'taxPrice', align: 'center', headerAlign: 'center' },
{ title: '税率', key: 'taxRate', align: 'center', 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
return value
}
},
{ title: '合同号', key: 'contractNo', headerAlign: 'center' },
{ title: '备注', key: 'remark', headerAlign: 'center' },
{ title: '状态', key: 'state', headerAlign: 'center' },
{ title: '创建时间', key: 'createTime', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
{ title: '合同号', key: 'contractNo', align: 'center', headerAlign: 'center' },
{ title: '备注', key: 'remark', align: 'center', headerAlign: 'center' },
{ title: '状态', key: 'state', align: 'center', headerAlign: 'center' },
{ title: '创建时间', key: 'createTime', align: 'center', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
return row.arrivalDate.split(' ')[0]
} }
],
......@@ -102,20 +102,17 @@ export default {
},
computed: {},
watch: {
basicData: {
'basicData.businessObject.id': {
immediate: true,
deep: true,
handler: function(val) {
console.log('val', val)
if (val.businessObject.id) {
this.searchInStorageRequestItem(val.businessObject.id)
}
this.searchInStorageRequestItem(val)
}
}
},
created() {
// 初始化数据
console.log('this.ba', this.basicData)
// this.searchInStorageRequestItem(this.basicData.businessObject.id)
},
methods: {
// 编辑采购入库明细查询InStorageRequestItem/search
......@@ -187,10 +184,21 @@ export default {
post('InStorageRequestItem/treeSearch', param).then(res => {
const data = res.items
this.tableData = data
this.treeTableNoArrange(data)
}).catch((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