配件新购优化
This commit is contained in:
		
							parent
							
								
									c870b2e079
								
							
						
					
					
						commit
						ae32826796
					
				| 
						 | 
				
			
			@ -71,3 +71,12 @@ export function getInBoundForm(query) {
 | 
			
		|||
    params: query
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 根据id查3级树
 | 
			
		||||
export function getSelectPartListApi(query) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/material/part_lease/selectPartList',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: query
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -56,23 +56,40 @@
 | 
			
		|||
                <span>%</span>
 | 
			
		||||
            </el-form-item>
 | 
			
		||||
 | 
			
		||||
            <el-form-item label="类型规格" prop="deviceType">
 | 
			
		||||
            <el-form-item label="类型名称" prop="deviceType">
 | 
			
		||||
                <el-cascader
 | 
			
		||||
                    :key="propsKey"
 | 
			
		||||
                    v-model="deviceType"
 | 
			
		||||
                    :show-all-levels="false"
 | 
			
		||||
                    :options="equipmentTypeList"
 | 
			
		||||
                    :props="deviceTypeTreeProps"
 | 
			
		||||
                    filterable
 | 
			
		||||
                    clearable
 | 
			
		||||
                    collapse-tags
 | 
			
		||||
                    style="width: 240px"
 | 
			
		||||
                    placeholder="请选择规格型号"
 | 
			
		||||
                    placeholder="请选择类型名称"
 | 
			
		||||
                    ref="deviceTypeCascader"
 | 
			
		||||
                    popper-class="popper-select"
 | 
			
		||||
                    @change="deviceTypeChange"
 | 
			
		||||
                    @change="deviceTypeChange2"
 | 
			
		||||
                ></el-cascader>
 | 
			
		||||
            </el-form-item>
 | 
			
		||||
 | 
			
		||||
            <el-form-item label="规格型号" prop="maType">
 | 
			
		||||
                <el-select
 | 
			
		||||
                    v-model="maForm.maType"
 | 
			
		||||
                    placeholder="请选择规格型号"
 | 
			
		||||
                    filterable
 | 
			
		||||
                    style="width: 240px"
 | 
			
		||||
                    @change="maTypeChange"
 | 
			
		||||
                >
 | 
			
		||||
                    <el-option
 | 
			
		||||
                        v-for="item in maTypeList"
 | 
			
		||||
                        :key="item.id"
 | 
			
		||||
                        :label="item.paName"
 | 
			
		||||
                        :value="item.id"
 | 
			
		||||
                    />
 | 
			
		||||
                </el-select>
 | 
			
		||||
            </el-form-item>
 | 
			
		||||
 | 
			
		||||
            <el-form-item label="备注" prop="remark">
 | 
			
		||||
                <el-input
 | 
			
		||||
                    v-model="maForm.remark"
 | 
			
		||||
| 
						 | 
				
			
			@ -124,7 +141,7 @@
 | 
			
		|||
                    <el-input
 | 
			
		||||
                        v-model.number="scope.row.purchaseNum"
 | 
			
		||||
                        controls-position="right" type="number"
 | 
			
		||||
                        style="width: 100%" :disabled="scope.row.status!=0"
 | 
			
		||||
                        style="width: 100%"
 | 
			
		||||
                        :min="0"
 | 
			
		||||
                    ></el-input>
 | 
			
		||||
                </template>
 | 
			
		||||
| 
						 | 
				
			
			@ -139,7 +156,7 @@
 | 
			
		|||
                        v-model="scope.row.purchaseTaxPrice"
 | 
			
		||||
                        controls-position="right"
 | 
			
		||||
                        style="width: 100%" @blur="scope.row.purchaseTaxPrice = scope.row.purchaseTaxPrice>0? scope.row.purchaseTaxPrice:0"
 | 
			
		||||
                        :min="0" :step="1" :disabled="scope.row.status!=0"
 | 
			
		||||
                        :min="0" :step="1"
 | 
			
		||||
                        @change="purchaseTaxPriceChange(scope.row,scope.$index)"
 | 
			
		||||
                    ></el-input-number>
 | 
			
		||||
                </template>
 | 
			
		||||
| 
						 | 
				
			
			@ -170,7 +187,7 @@
 | 
			
		|||
                        v-model="scope.row.productionTime"
 | 
			
		||||
                        style="width: 100%"
 | 
			
		||||
                        value-format="yyyy-MM-dd"
 | 
			
		||||
                        type="date"  :disabled="scope.row.status!=0"
 | 
			
		||||
                        type="date"
 | 
			
		||||
                        placeholder="出厂日期"
 | 
			
		||||
                        clearable
 | 
			
		||||
                    ></el-date-picker>
 | 
			
		||||
| 
						 | 
				
			
			@ -281,7 +298,7 @@
 | 
			
		|||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { getTypeTree,addPartInfo,getPartTypeCheckInfo,updatePartInfo,getPartTypeFileList } from '@/api/part/partArrived';
 | 
			
		||||
import { getTypeTree,addPartInfo,getPartTypeCheckInfo,updatePartInfo,getPartTypeFileList, getSelectPartListApi } from '@/api/part/partArrived';
 | 
			
		||||
import { getListFacturer } from '@/api/ma/supplier';
 | 
			
		||||
import { getToken } from '@/utils/auth'
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -371,7 +388,9 @@ export default {
 | 
			
		|||
                purchaser: '',
 | 
			
		||||
                remark: '',
 | 
			
		||||
                purchaseNumber: '',
 | 
			
		||||
                maType: null
 | 
			
		||||
            },
 | 
			
		||||
            maTypeList: [],
 | 
			
		||||
            // 表单参数
 | 
			
		||||
            form: {},
 | 
			
		||||
            defaultProps: {
 | 
			
		||||
| 
						 | 
				
			
			@ -403,7 +422,7 @@ export default {
 | 
			
		|||
                label: 'partName',
 | 
			
		||||
                // multiple: false,
 | 
			
		||||
                value: 'partId',
 | 
			
		||||
                multiple: true,
 | 
			
		||||
                multiple: false,
 | 
			
		||||
            },
 | 
			
		||||
            deviceType: [],
 | 
			
		||||
            propsKey: 1000,
 | 
			
		||||
| 
						 | 
				
			
			@ -478,16 +497,17 @@ export default {
 | 
			
		|||
                this.equipmentTypeList.forEach((item, index) => {
 | 
			
		||||
                    if (item.children && item.children.length > 0) {
 | 
			
		||||
                        item.children.forEach((item2, index2) => {
 | 
			
		||||
                            if (item2.children && item2.children.length > 0) {
 | 
			
		||||
                                item2.children.forEach((item3) => {
 | 
			
		||||
                                        item2.children.forEach((item3) => {
 | 
			
		||||
                                            item3.maTypeName = item2.partName
 | 
			
		||||
                                            item3.specificationType = item3.partName
 | 
			
		||||
                                            this.$set(item3, 'purchaseTaxPrice', 0)
 | 
			
		||||
                                            this.$set(item3, 'purchasePrice', 0)
 | 
			
		||||
                                        })
 | 
			
		||||
                                })
 | 
			
		||||
                            }
 | 
			
		||||
                            delete item2.children
 | 
			
		||||
                            // if (item2.children && item2.children.length > 0) {
 | 
			
		||||
                            //     item2.children.forEach((item3) => {
 | 
			
		||||
                            //             item2.children.forEach((item3) => {
 | 
			
		||||
                            //                 item3.maTypeName = item2.partName
 | 
			
		||||
                            //                 item3.specificationType = item3.partName
 | 
			
		||||
                            //                 this.$set(item3, 'purchaseTaxPrice', 0)
 | 
			
		||||
                            //                 this.$set(item3, 'purchasePrice', 0)
 | 
			
		||||
                            //             })
 | 
			
		||||
                            //     })
 | 
			
		||||
                            // }
 | 
			
		||||
                        })
 | 
			
		||||
                    }
 | 
			
		||||
                })
 | 
			
		||||
| 
						 | 
				
			
			@ -572,6 +592,55 @@ export default {
 | 
			
		|||
                this.equipmentList = []
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        deviceTypeChange2(val) {
 | 
			
		||||
            console.log('🚀 ~ deviceTypeChange2 ~ val:', val)
 | 
			
		||||
            this.maTypeList = []
 | 
			
		||||
            this.maForm.maType = ''
 | 
			
		||||
            if (val.length > 0) {
 | 
			
		||||
                this.getMaTypeList(val[1]) 
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        async getMaTypeList(id) {
 | 
			
		||||
            try {
 | 
			
		||||
                const res = await getSelectPartListApi({ id: id })
 | 
			
		||||
                console.log('🚀 ~ getMaTypeList ~ res:', res)
 | 
			
		||||
                this.maTypeList = res.data
 | 
			
		||||
                
 | 
			
		||||
            } catch (error) {
 | 
			
		||||
                console.log('🚀 ~ getMaTypeList ~ error:', error)
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        maTypeChange (val) {
 | 
			
		||||
            console.log('🚀 ~ maTypeChange ~ val:', this.maForm.maType)
 | 
			
		||||
            if (val) {
 | 
			
		||||
                const obj = this.maTypeList.find(item => item.id === val)
 | 
			
		||||
                console.log('🚀 ~ maTypeChange ~ obj:', obj)
 | 
			
		||||
                // 如果 当前 id 在this.equipmentList 已有 则提示 已添加并阻断
 | 
			
		||||
                const isExist = this.equipmentList.find(item => item.id === obj.id || item.partId == obj.id)
 | 
			
		||||
                console.log('🚀 ~ maTypeChange ~ isExist:', isExist)
 | 
			
		||||
                if (isExist) {
 | 
			
		||||
                    this.$message({
 | 
			
		||||
                        message: `当前配件 ${obj.paName} 已添加`,
 | 
			
		||||
                        type: 'warning'
 | 
			
		||||
                    })
 | 
			
		||||
                    return
 | 
			
		||||
                } else {
 | 
			
		||||
                    this.equipmentList.push({
 | 
			
		||||
                        ...obj,
 | 
			
		||||
                        maTypeName: obj.partName,
 | 
			
		||||
                        partId: obj.id,
 | 
			
		||||
                        partName: obj.paName,
 | 
			
		||||
                        createTime: null,
 | 
			
		||||
                        productionTime: this.maForm.productionTime,
 | 
			
		||||
                        purchaseTaxPrice: 0,
 | 
			
		||||
                        purchaseNum: 0,
 | 
			
		||||
                        status: 0,
 | 
			
		||||
                        isExitFile: '1',
 | 
			
		||||
                        bmFileInfo:[]
 | 
			
		||||
                    })
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        //选择出厂日期
 | 
			
		||||
        productionTimeChange(val){
 | 
			
		||||
            this.equipmentList.forEach(item=>{
 | 
			
		||||
| 
						 | 
				
			
			@ -613,12 +682,12 @@ export default {
 | 
			
		|||
                this.$refs['maForm'].validate((valid) => {
 | 
			
		||||
                    if (valid) {
 | 
			
		||||
                        this.maForm.taskId = this.taskId;
 | 
			
		||||
                        let index =this.equipmentList.findIndex(item=>item.purchaseNum==0)
 | 
			
		||||
                        let index2 =this.equipmentList.findIndex(item=>item.purchaseTaxPrice==0)
 | 
			
		||||
                        let index =this.equipmentList.findIndex(item=>item.purchaseNum == 0 || !item.purchaseNum)
 | 
			
		||||
                        let index2 =this.equipmentList.findIndex(item=>item.purchaseTaxPrice == 0 || !item.purchaseTaxPrice)
 | 
			
		||||
                        if(index>-1){
 | 
			
		||||
                            this.$modal.msgError('采购数量不能为0!')
 | 
			
		||||
                            this.$modal.msgError(`第${index + 1}行采购数量不能为0!`)
 | 
			
		||||
                        }else if(index2>-1){
 | 
			
		||||
                            this.$modal.msgError('含税单价不能为0!')
 | 
			
		||||
                            this.$modal.msgError(`第${index2 + 1}行采购含税价格不能为0!`)
 | 
			
		||||
                        }else {
 | 
			
		||||
                            this.$modal.confirm('是否确认保存当前页面').then(function () {})
 | 
			
		||||
                            .then(() => {
 | 
			
		||||
| 
						 | 
				
			
			@ -635,7 +704,7 @@ export default {
 | 
			
		|||
                                            )
 | 
			
		||||
                                        }
 | 
			
		||||
                                        this.loading = false
 | 
			
		||||
                                    })
 | 
			
		||||
                                    }).catch(() => { this.loading = false })
 | 
			
		||||
                                } else if (!this.isEdit) {
 | 
			
		||||
                                    console.log('新增')
 | 
			
		||||
                                    // console.log(this.equipmentList)
 | 
			
		||||
| 
						 | 
				
			
			@ -650,7 +719,7 @@ export default {
 | 
			
		|||
                                            )
 | 
			
		||||
                                        }
 | 
			
		||||
                                        this.loading = false
 | 
			
		||||
                                    })
 | 
			
		||||
                                    }).catch(() => { this.loading = false })
 | 
			
		||||
                                }
 | 
			
		||||
                            }).catch(() => {})
 | 
			
		||||
                        }
 | 
			
		||||
| 
						 | 
				
			
			@ -913,12 +982,12 @@ export default {
 | 
			
		|||
            this.$modal
 | 
			
		||||
                .confirm('是否确认删除所选择的数据项?')
 | 
			
		||||
                .then(() => {
 | 
			
		||||
                    this.deviceType.forEach((e, index) => {
 | 
			
		||||
                        if (e[2] === row.partId) {
 | 
			
		||||
                            this.deviceType.splice(index, 1)
 | 
			
		||||
                            this.propsKey++
 | 
			
		||||
                        }
 | 
			
		||||
                    })
 | 
			
		||||
                    // this.deviceType.forEach((e, index) => {
 | 
			
		||||
                    //     if (e[2] === row.partId) {
 | 
			
		||||
                    //         this.deviceType.splice(index, 1)
 | 
			
		||||
                    //         this.propsKey++
 | 
			
		||||
                    //     }
 | 
			
		||||
                    // })
 | 
			
		||||
                    this.equipmentList.forEach((item, index) => {
 | 
			
		||||
                        if (item.partId == row.partId) {
 | 
			
		||||
                            this.equipmentList.splice(index, 1)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue