| | |
| | | </el-col> |
| | | </el-row> |
| | | <el-row class="card3" v-for="(mItem, mIndex) in goodsItem.models" :key="mIndex"> |
| | | <el-col style="padding: 10px 0" :span="10"> |
| | | <el-col style="padding: 15px 0" :span="10"> |
| | | <el-form-item label="规格型号:" style="margin-bottom: 0"> |
| | | {{ getGoodsModelsName(mItem.baseGoodsModelsId) }} |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col style="padding: 10px 0" :span="4"> |
| | | <el-col style="padding: 15px 0" :span="4"> |
| | | <el-form-item label="剩余数量:" style="margin-bottom: 0" label-width="80"> |
| | | {{ mItem.worehouseCount }} |
| | | </el-form-item> |
| | |
| | | <template slot-scope="{$index,row}"> |
| | | <el-form-item |
| | | :prop="`transferGoods.${goodsIndex}.models.${mIndex}.procureModelUserList.${$index}.goodsNum`" |
| | | :rules="[ |
| | | {validator: checkCounts,type: 1, userList: mItem.procureModelUserList,worehouseCount: mItem.worehouseCount, trigger: ['blur', 'change']} |
| | | ]" |
| | | label-width="0" |
| | | > |
| | | <el-input v-model="row.goodsNum" style="width: 100%"></el-input> |
| | | <el-input v-model.number="row.goodsNum" style="width: 100%"></el-input> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <template slot-scope="{$index,row}"> |
| | | <el-form-item |
| | | :prop="`transferGoods.${goodsIndex}.models.${mIndex}.procureModelUserList.${$index}.nowUserName`" |
| | | :rules="[{required: true, message: '请输入使用人姓名', trigger: ['blur', 'change']}]" |
| | | label-width="0" |
| | | > |
| | | <el-input v-model="row.nowUserName" style="width: 100%"></el-input> |
| | |
| | | <el-table-column prop="nowUserPhone" label="联系电话" align="center"> |
| | | <template slot-scope="{$index,row}"> |
| | | <el-form-item |
| | | :prop="`transferGoods.${goodsIndex}.models.${mIndex}].procureModelUserList.${$index}.nowUserPhone`" |
| | | :prop="`transferGoods.${goodsIndex}.models.${mIndex}.procureModelUserList.${$index}.nowUserPhone`" |
| | | :rules="[{required: true, message: '请输入联系电话', trigger: ['blur', 'change']}]" |
| | | label-width="0" |
| | | > |
| | | <el-input v-model="row.nowUserPhone" style="width: 100%"></el-input> |
| | |
| | | </el-table> |
| | | </el-col> |
| | | <!--BC类商品 --> |
| | | <el-col style="padding: 10px 0" :span="10" v-else> |
| | | <el-col style="padding: 15px 0" :span="10" v-else> |
| | | <el-form-item |
| | | label="分发数量:" |
| | | :prop="`transferGoods.${goodsIndex}.models.${mIndex}.counts`" |
| | | :rules="[ |
| | | {validator: checkCounts, type: 2,worehouseCount: mItem.worehouseCount, trigger: ['blur', 'change']} |
| | | ]" |
| | | style="margin-bottom: 0" label-width="80"> |
| | | <el-input v-model.number="goodsItem.models[mIndex].counts" style="width: 160px;"></el-input> |
| | | <el-input v-model.number="mItem.counts" style="width: 160px;"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </win-md> |
| | | </template> |
| | | <script> |
| | | import { |
| | | goodsTemplate, |
| | | goodsModel, |
| | | } from '@/api/stock/procure/purchaseOrder'; |
| | | import { |
| | | transferAdd |
| | | } from '@/api/stock/transfer'; |
| | | import {goodsModel, goodsTemplate,} from '@/api/stock/procure/purchaseOrder'; |
| | | import {transferAdd} from '@/api/stock/transfer'; |
| | | import {departmentListAll} from '@/api/system/deptment'; |
| | | import {getTree} from '@/api/foudation/classification'; |
| | | import MyButton from '@/components/myButton/myButton'; |
| | |
| | | } |
| | | callback(); |
| | | }; |
| | | // 数量校验 |
| | | var checkCounts = (rule, value, callback) => { |
| | | console.log(value); |
| | | if (!value) { |
| | | return callback(new Error('请输入')); |
| | | } |
| | | if (!Number.isInteger(value)) { |
| | | this.$message.warning('请输入数字值'); |
| | | return callback(new Error('请输入数字值')); |
| | | } |
| | | if (value == 0) { |
| | | this.$message.warning('数字值不能为0'); |
| | | return callback(new Error('数字值不能为0')); |
| | | } |
| | | callback(); |
| | | }; |
| | | return { |
| | | checkCounts: (rule, value, callback) => { |
| | | if (!value) { |
| | | return callback(new Error('请输入分发数量')); |
| | | } |
| | | if (!Number.isInteger(value)) { |
| | | // this.$message.warning('请输入数字值'); |
| | | return callback(new Error('请输入数字值')); |
| | | } |
| | | if (value < 1) { |
| | | // this.$message.warning('数字值不能为0'); |
| | | return callback(new Error('数字值必须大于0')); |
| | | } |
| | | if (value > rule.worehouseCount) { |
| | | // this.$message.warning('分发数量不能大于剩余数量'); |
| | | return callback(new Error('分发数量不能大于剩余数量')); |
| | | } |
| | | if(rule.type===1){ |
| | | let sum = 0 |
| | | rule.userList.map(item=>{ |
| | | sum+=(item.goodsNum||0) |
| | | }) |
| | | if (sum > rule.worehouseCount) { |
| | | // this.$message.warning('分发数量总和不能大于剩余数量'); |
| | | return callback(new Error('分发数量总和不能大于剩余数量')); |
| | | } |
| | | } |
| | | callback(); |
| | | }, |
| | | loading: false, |
| | | buyTypeOptions: [ |
| | | { |
| | |
| | | baseCategoryIds: [{required: true, message: '请选择', trigger: 'change'}], |
| | | baseGoodsTemplateId: [{validator: checkGoodsTemplateId, trigger: ['blur', 'change']}], |
| | | modelsIds: [{required: true, message: '请选择', trigger: 'change'}], |
| | | transferGoods:{ |
| | | models:{ |
| | | counts: [ |
| | | { required: true, message: '请输入', trigger: 'change' }, |
| | | { type: 'number', message: '数量必须为整数' }, |
| | | ], |
| | | procureModelUserList:{ |
| | | goodsNum: [ { required: true, message: '请输入', trigger: 'blur' }], |
| | | nowUserName: [ { required: true, message: '请输入', trigger: 'blur' }], |
| | | nowUserPhone: [ { required: true, message: '请输入', trigger: 'blur' }], |
| | | } |
| | | transferGoods: [ |
| | | { |
| | | models: [ |
| | | { |
| | | counts: [ |
| | | {required: true, message: '请输入', trigger: 'change'}, |
| | | {type: 'number', message: '数量必须为整数'}, |
| | | ], |
| | | procureModelUserList: [ |
| | | { |
| | | goodsNum: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | nowUserName: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | nowUserPhone: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | |
| | | |
| | | ] |
| | | }, |
| | | |
| | | uploadSettings: { |
| | |
| | | |
| | | // 获取入库仓库列表 |
| | | getdeptmentList() { |
| | | departmentListAll({agencyId: this.userInfo.tenantId}) |
| | | departmentListAll({tenantId: this.userInfo.tenantId}) |
| | | .then((res) => { |
| | | this.departmentOptions = res; |
| | | if (!this.setting.id && res.length) { |