|
|
|
<template>
|
|
|
|
<a-spin :spinning="confirmLoading">
|
|
|
|
<j-form-container :disabled="formDisabled">
|
|
|
|
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
|
|
|
|
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail" :disabled="isBianhaoDisabled">
|
|
|
|
<a-row>
|
|
|
|
<a-col :span="24">
|
|
|
|
<a-form-model-item label="选择" :labelCol="labelCol" :wrapperCol="wrapperCol" >
|
|
|
|
<a-radio-group @change="onChange" v-model="selectedValue">
|
|
|
|
<a-radio :value="'0'" >
|
|
|
|
从物料表选择
|
|
|
|
</a-radio>
|
|
|
|
<a-radio :value="'1'">
|
|
|
|
新增
|
|
|
|
</a-radio>
|
|
|
|
</a-radio-group>
|
|
|
|
</a-form-model-item>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="24">
|
|
|
|
<a-form-model-item label="编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="partNumber" v-if="model.chooseStatus ==1">
|
|
|
|
<a-input v-model="model.partNumber" placeholder="请输入编号" ></a-input>
|
|
|
|
</a-form-model-item>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="24">
|
|
|
|
<a-form-model-item label="品名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productName">
|
|
|
|
<a-input v-model="model.productName" placeholder="请输入品名" :disabled="isBianhaoDisabled"></a-input>
|
|
|
|
<a-input v-model="model.productName" placeholder="请输入品名" v-if="model.chooseStatus ==1"></a-input>
|
|
|
|
<a-select size="small" v-model="model.productName" placeholder="请选择品名" allowClear @change = "handleChange" v-if="model.chooseStatus ==0">
|
|
|
|
<a-select-option v-for="(item,index) in materialOptions" :key="index" :value="item.partNumber" :channel="item">{{ item.productName }}</a-select-option>
|
|
|
|
</a-select>
|
|
|
|
</a-form-model-item>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="24">
|
|
|
|
<a-form-model-item label="规格" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="specifications">
|
|
|
|
<a-input v-model="model.specifications" placeholder="请输入规格" :disabled="isBianhaoDisabled"></a-input>
|
|
|
|
<a-input v-model="model.specifications" placeholder="请输入规格" :disabled="model.chooseStatus ==0"></a-input>
|
|
|
|
</a-form-model-item>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="24">
|
|
...
|
...
|
@@ -19,64 +39,47 @@ |
|
|
|
v-model="model.num"
|
|
|
|
placeholder="请输入数量"
|
|
|
|
style="width: 100%"
|
|
|
|
:disabled="isBianhaoDisabled"
|
|
|
|
/>
|
|
|
|
</a-form-model-item>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="24">
|
|
|
|
<a-form-model-item label="单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="danwei">
|
|
|
|
<a-input v-model="model.danwei" placeholder="请输入单位" :disabled="isBianhaoDisabled"></a-input>
|
|
|
|
<a-input v-model="model.danwei" placeholder="请输入单位" :disabled="model.chooseStatus ==0"></a-input>
|
|
|
|
</a-form-model-item>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="24">
|
|
|
|
<a-form-model-item label="物料类别" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="wuType">
|
|
|
|
<a-input v-model="model.wuType" placeholder="请输入物料类别" :disabled="isBianhaoDisabled"></a-input>
|
|
|
|
<a-select size="small" v-model="model.wuType" placeholder="请选择物料类别" allowClear :disabled="model.chooseStatus ==0">
|
|
|
|
<a-select-option v-for="(item,index) in meterialTypeList" :key="index" :value="item.value" :channel="item">{{ item.label }}</a-select-option>
|
|
|
|
</a-select>
|
|
|
|
</a-form-model-item>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="24">
|
|
|
|
<a-form-model-item label="工作令" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workOrder">
|
|
|
|
<a-input v-model="model.workOrder" placeholder="请输入工作令" :disabled="isBianhaoDisabled"></a-input>
|
|
|
|
<a-input v-model="model.workOrder" placeholder="请输入工作令" ></a-input>
|
|
|
|
</a-form-model-item>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="24">
|
|
|
|
<a-form-model-item label="用途" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="purpose">
|
|
|
|
<a-input v-model="model.purpose" placeholder="请输入用途" :disabled="isBianhaoDisabled"></a-input>
|
|
|
|
</a-form-model-item>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="24">
|
|
|
|
<a-form-model-item label="当前库存" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ku">
|
|
|
|
<a-input v-model="model.ku" placeholder="请输入当前库存" :disabled="isBianhaoDisabled"></a-input>
|
|
|
|
</a-form-model-item>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="24">
|
|
|
|
<a-form-model-item label="申请日期" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sqTime">
|
|
|
|
<j-date v-model="model.sqTime" placeholder="请输入申请日期" :disabled="isBianhaoDisabled" />
|
|
|
|
<a-input v-model="model.purpose" placeholder="请输入用途" ></a-input>
|
|
|
|
</a-form-model-item>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="24">
|
|
|
|
<a-form-model-item label="使用日期" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deliveryTime">
|
|
|
|
<j-date v-model="model.deliveryTime" placeholder="请输入使用日期" :disabled="isBianhaoDisabled" />
|
|
|
|
<j-date v-model="model.deliveryTime" placeholder="请输入使用日期" />
|
|
|
|
</a-form-model-item>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="24">
|
|
|
|
<a-form-model-item label="品牌" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="brand">
|
|
|
|
<a-input v-model="model.brand" placeholder="请输入品牌" :disabled="isBianhaoDisabled"></a-input>
|
|
|
|
<a-input v-model="model.brand" placeholder="请输入品牌" ></a-input>
|
|
|
|
</a-form-model-item>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="24">
|
|
|
|
<a-form-model-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="notes">
|
|
|
|
<a-input v-model="model.notes" placeholder="请输入备注" :disabled="isBianhaoDisabled"></a-input>
|
|
|
|
</a-form-model-item>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="24">
|
|
|
|
<a-form-model-item label="申请人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applicant">
|
|
|
|
<a-input v-model="model.applicant" placeholder="请输入申请人" :disabled="isBianhaoDisabled"></a-input>
|
|
|
|
<a-input v-model="model.notes" placeholder="请输入备注"></a-input>
|
|
|
|
</a-form-model-item>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="24">
|
|
|
|
<!-- <a-form-model-item label="一级审批人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="spOne">
|
|
|
|
|
|
|
|
</a-form-model-item> -->
|
|
|
|
<a-form-model-item
|
|
|
|
label="一级审批"
|
|
|
|
:labelCol="labelCol"
|
|
...
|
...
|
@@ -128,6 +131,7 @@ |
|
|
|
import { httpAction, getAction } from '@/api/manage'
|
|
|
|
import { validateDuplicateValue } from '@/utils/util'
|
|
|
|
import { mapGetters } from 'vuex'
|
|
|
|
import { duplicateCheck } from '@/api/api'
|
|
|
|
export default {
|
|
|
|
name: 'TblBiddingShenqForm',
|
|
|
|
|
|
...
|
...
|
@@ -143,6 +147,7 @@ export default { |
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
isBianhaoDisabled: false,
|
|
|
|
materialOptions:[],
|
|
|
|
model: {},
|
|
|
|
labelCol: {
|
|
|
|
xs: { span: 24 },
|
|
...
|
...
|
@@ -154,6 +159,10 @@ export default { |
|
|
|
},
|
|
|
|
confirmLoading: false,
|
|
|
|
validatorRules: {
|
|
|
|
partNumber:[
|
|
|
|
{ required: true, message: '请输入外购件编号!' },
|
|
|
|
{ validator: this.validatePartNumber },
|
|
|
|
],
|
|
|
|
productName: [{ required: true, message: '请输入品名!' }],
|
|
|
|
specifications: [{ required: true, message: '请输入规格!' }],
|
|
|
|
num: [{ required: true, message: '请输入数量!' }],
|
|
...
|
...
|
@@ -169,20 +178,38 @@ export default { |
|
|
|
applicant: [{ required: true, message: '请输入申请人!' }],
|
|
|
|
},
|
|
|
|
url: {
|
|
|
|
add: '/trad/tblBiddingShenq/add',
|
|
|
|
add: '/trad/biddingSq/add',
|
|
|
|
edit: '/trad/tblBiddingShenq/edit',
|
|
|
|
queryById: '/trad/tblBiddingShenq/queryById',
|
|
|
|
listAllMaterial:"/meterial/tblMaterial/listAll"
|
|
|
|
},
|
|
|
|
selectedValue:'0',
|
|
|
|
meterialTypeList:[{
|
|
|
|
value:'1',
|
|
|
|
label:"零件"
|
|
|
|
},{
|
|
|
|
value:'2',
|
|
|
|
label:"半成品"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
value:'3',
|
|
|
|
label:"耗材"
|
|
|
|
},{
|
|
|
|
value:'4',
|
|
|
|
label:"劳保"
|
|
|
|
}]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
computed: {
|
|
|
|
formDisabled() {
|
|
|
|
return this.disabled
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
created() {
|
|
|
|
this.loadTree()
|
|
|
|
this.model.chooseStatus = this.selectedValue
|
|
|
|
//备份model原始值
|
|
|
|
this.modelDefault = JSON.parse(JSON.stringify(this.model))
|
|
|
|
// this.modelDefault = JSON.parse(JSON.stringify(this.model))
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
...mapGetters(['nickname', 'avatar', 'userInfo']),
|
|
...
|
...
|
@@ -197,8 +224,11 @@ export default { |
|
|
|
this.edit(this.modelDefault)
|
|
|
|
this.isBianhaoDisabled = false
|
|
|
|
},
|
|
|
|
edit(record) {
|
|
|
|
edit(record) {
|
|
|
|
this.model = Object.assign({}, record)
|
|
|
|
this.modelDefault = this.model
|
|
|
|
// console.log('this.model:::::',this.model)
|
|
|
|
this.selectedValue = this.model.chooseStatus
|
|
|
|
this.visible = true
|
|
|
|
if (this.userInfo().username === 'admin') {
|
|
|
|
this.isBianhaoDisabled = true
|
|
...
|
...
|
@@ -206,6 +236,74 @@ export default { |
|
|
|
this.isBianhaoDisabled = false
|
|
|
|
}
|
|
|
|
},
|
|
|
|
loadTree(){
|
|
|
|
httpAction(this.url.listAllMaterial,null, "get").then((res) => {
|
|
|
|
if (res.success) {
|
|
|
|
this.materialOptions = res.result
|
|
|
|
} else {
|
|
|
|
// that.$message.warning(res.message);
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
onChange(e) {
|
|
|
|
console.log('this.modelDefault',this.modelDefault)
|
|
|
|
if(!this.modelDefault.id){
|
|
|
|
if(e.target.value == 1){
|
|
|
|
this.model = {}
|
|
|
|
this.model.chooseStatus = 1
|
|
|
|
}else if(e.target.value == 0){
|
|
|
|
this.model = {}
|
|
|
|
this.model.chooseStatus = 0
|
|
|
|
}
|
|
|
|
}else if(this.modelDefault.id){
|
|
|
|
if(e.target.value == 1){
|
|
|
|
this.model = {}
|
|
|
|
this.model.chooseStatus = 1
|
|
|
|
}else if(e.target.value == 0){
|
|
|
|
this.model = this.modelDefault
|
|
|
|
console.log(this.model)
|
|
|
|
// this.model.chooseStatus = 0
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
handleChange (value,option){
|
|
|
|
let tempModel = option.data.attrs.channel
|
|
|
|
console.log('tempModel',tempModel)
|
|
|
|
if(tempModel.partNumber){
|
|
|
|
this.model.partNumber = tempModel.partNumber
|
|
|
|
}
|
|
|
|
if(tempModel.productName){
|
|
|
|
this.model.productName = tempModel.productName
|
|
|
|
}
|
|
|
|
if(tempModel.spec){
|
|
|
|
this.model.specifications = tempModel.spec
|
|
|
|
}
|
|
|
|
if(tempModel.type){
|
|
|
|
this.model.type = tempModel.type
|
|
|
|
}
|
|
|
|
if(tempModel.unit){
|
|
|
|
this.model.danwei = tempModel.unit
|
|
|
|
}
|
|
|
|
if(tempModel.meterialType){
|
|
|
|
this.model.wuType = tempModel.meterialType
|
|
|
|
}
|
|
|
|
},
|
|
|
|
validatePartNumber(rule, value, callback) {
|
|
|
|
var params = {
|
|
|
|
tableName: 'tbl_material',
|
|
|
|
fieldName: 'part_number',
|
|
|
|
fieldVal: value,
|
|
|
|
dataId: this.model.id,
|
|
|
|
}
|
|
|
|
duplicateCheck(params).then((res) => {
|
|
|
|
if (res.success) {
|
|
|
|
callback()
|
|
|
|
} else {
|
|
|
|
callback('编号已存在')
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
submitForm() {
|
|
|
|
const that = this
|
|
|
|
// 触发表单验证
|
...
|
...
|
|