<!-- * @Author: zwq * @Date: 2021-11-18 14:16:25 * @LastEditors: zwq * @LastEditTime: 2024-10-14 09:26:53 * @Description: --> <template> <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px" label-position="top"> <el-row :gutter="20"> <el-col :span="8"> <el-form-item label="物料名称" prop="materialId"> <el-select v-model="dataForm.materialId" placeholder="请选择物料" clearable filterable @change="setCode" style="width: 100%"> <el-option v-for="dict in materialList" :key="dict.id" :label="dict.name" :value="dict.id" /> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="物料编码" prop="materialCode"> <el-input v-model="dataForm.materialCode" clearable disabled placeholder="请输入物料编码" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="物料批次" prop="materialDateId"> <el-select v-model="dataForm.materialDateId" clearable filterable placeholder="请选择物料批次" style="width: 100%"> <el-option v-for="dict in materialDateList" :key="dict.id" :label="dict.code" :value="dict.id" /> </el-select> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <el-col :span="8"> <el-form-item label="使用设备" prop="equipmentId"> <el-select v-model="dataForm.equipmentId" clearable filterable placeholder="请选择使用设备" style="width: 100%"> <el-option v-for="dict in eqList" :key="dict.id" :label="dict.name" :value="dict.id" /> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="使用时间" prop="useTime"> <el-date-picker v-model="dataForm.useTime" type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" placeholder="选择日期时间" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="操作员" prop="userNames"> <el-select v-model="dataForm.userNames" clearable filterable multiple placeholder="请选择操作员" style="width: 100%"> <el-option v-for="dict in workersList" :key="dict.id" :label="dict.nickname" :value="dict.nickname" /> </el-select> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <el-col :span="8"> <el-form-item label="使用数量" prop="num"> <el-input-number v-model="dataForm.num" clearable controls-position="right" placeholder="请输入使用数量" style="width: 100%" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="数据来源" prop="source"> <el-select v-model="dataForm.source" clearable placeholder="请选择数据来源"> <el-option v-for="dict in this.dataSourceList" :key="dict.id" :label="dict.name" :value="dict.id" /> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="备注" prop="remark"> <el-input v-model="dataForm.remark" clearable placeholder="请输入备注" /> </el-form-item> </el-col> </el-row> </el-form> </template> <script> import basicAdd from '@/mixins/basic-add'; import { createMaterialLog, updateMaterialLog, getMaterialLog, getEqListAll, } from '@/api/base/materialUseLog'; import { getMaterialTree,getMaterialList } from '@/api/base/material'; import { getMaterDateList } from '@/api/base/materialDate'; import { listSimpleUsers } from '@/api/system/user'; export default { mixins: [basicAdd], data() { return { urlOptions: { createURL: createMaterialLog, updateURL: updateMaterialLog, infoURL: getMaterialLog, }, dataForm: { id: undefined, materialId: undefined, materialCode: undefined, materialDateId: undefined, equipmentId: undefined, userName: undefined, userNames: [], useTime: new Date().getTime(), address: undefined, num: 0, source: undefined, remark: undefined, }, dataSourceList: [ { id: 1, name: '手动', }, { id: 2, name: 'PDA', }, ], materialList: [], materialDateList: [], eqList: [], workersList: [], dataRule: { materialId: [ { required: true, message: '物料不能为空', trigger: 'blur' }, ], useTime: [ { required: true, message: '使用时间不能为空', trigger: 'blur' }, ], userNames: [ { required: true, message: '操作员不能为空', trigger: 'blur' }, ], num: [{ required: true, message: '使用数量不能为空', trigger: 'blur' }], }, }; }, mounted() { this.getDictData(); }, methods: { async getDictData() { const materRes = await getMaterialTree(); // let typeId = materRes.data.find(item=>item.product === 0).id const listQuery= { typeId:typeId } const materData = await getMaterialList(listQuery); this.materialList = []; this.materialList = materData.data; const dateRes = await getMaterDateList(); this.materialDateList = dateRes.data; const eqRes = await getEqListAll(); this.eqList = eqRes.data; const workerRes = await listSimpleUsers(); this.workersList = workerRes.data; }, // 表单提交 dataFormSubmit() { this.dataForm.userName = this.dataForm.userNames.join(','); this.$refs['dataForm'].validate((valid) => { if (!valid) { return false; } // 修改的提交 if (this.dataForm.id) { this.urlOptions.updateURL(this.dataForm).then((response) => { this.$modal.msgSuccess('修改成功'); this.visible = false; this.$emit('refreshDataList'); }); return; } // 添加的提交 this.urlOptions.createURL(this.dataForm).then((response) => { this.$modal.msgSuccess('新增成功'); this.visible = false; this.$emit('refreshDataList'); }); }); }, init(id) { this.dataForm.id = id || undefined; this.visible = true; this.$nextTick(() => { this.$refs['dataForm'].resetFields(); if (this.dataForm.id) { this.urlOptions.infoURL(id).then((response) => { this.dataForm.id = response.data.id; this.dataForm.materialCode = response.data.materialCode; this.dataForm.materialId = response.data.materialId; this.dataForm.materialDateId = response.data.materialDateId; this.dataForm.equipmentId = response.data.equipmentId; this.dataForm.useTime = response.data.useTime; // this.dataForm.userName = response.data.userName this.dataForm.num = response.data.num; this.dataForm.source = response.data.source; this.dataForm.remark = response.data.remark; this.dataForm.userNames = response.data.userName.split(','); }); } else { } }); }, setCode() { const tempMaterial = this.materialList.filter((item) => { return item.id === this.dataForm.materialId; }); this.dataForm.materialCode = tempMaterial[0].code; getMaterDateList({ materialId: this.dataForm.materialId }).then((res) => { this.materialDateList = res.data; }); }, }, }; </script>