| | |
| | | <template> |
| | | <win-md class="stock-edit" title="物品分发" @close="close" width="900px"> |
| | | <el-form v-loading="loading" class="form" ref="ruleForm" :model="formData" :rules="rules" label-width="120px"> |
| | | <win-md class="stock-edit" title="物品分发" @close="close" width="900px" :loading="loading"> |
| | | <el-form class="form" ref="ruleForm" :model="formData" :rules="rules" label-width="120px"> |
| | | <div class="main-w"> |
| | | <el-row :gutter="24" class="headerHeight"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="部门" prop="departmentId"> |
| | | <el-select ref="department" v-model="formData.departmentId" placeholder="请选择" style="width: 100%"> |
| | | <el-select ref="department" v-model="formData.departmentId" clearable placeholder="请选择" style="width: 100%"> |
| | | <el-option v-for="item in departmentOptions" :key="item.id" :label="item.name" :value="item.id" |
| | | clearable/> |
| | | </el-select> |
| | |
| | | :options="categoryOptions" |
| | | :props="{ value: 'id',emitPath: false }" |
| | | :show-all-levels="false" |
| | | filterable |
| | | clearable |
| | | @change="categoryChange($event, goodsIndex)" |
| | | style="width: 100%" |
| | |
| | | > |
| | | <el-select |
| | | v-model="goodsItem.baseGoodsTemplateId" |
| | | placeholder="请选择物品" |
| | | :placeholder="goodsItem.baseCategoryId?'请选择物品':'请先选择物品分类'" |
| | | filterable |
| | | clearable |
| | | :disabled="!goodsItem.baseCategoryId" |
| | |
| | | <el-form-item |
| | | label="规格型号" |
| | | :prop="`transferGoods.${goodsIndex}.modelsIds`" |
| | | :rules="{required: true,message: '请选择',trigger: 'change',}"> |
| | | :rules="{required: true,message: '请选择规格型号',trigger: 'change',}"> |
| | | <el-select |
| | | v-model="goodsItem.modelsIds" |
| | | multiple |
| | | placeholder="请选择物品规格型号" |
| | | :disabled="!goodsItem.baseCategoryId" |
| | | :placeholder="goodsItem.baseGoodsTemplateId?'请选择规格型号':'请先选择物品名称'" |
| | | :disabled="!goodsItem.baseGoodsTemplateId" |
| | | @change="modelChange($event, goodsIndex)" |
| | | @remove-tag="modelRemoveTag($event, goodsIndex)" |
| | | style="width: 100%" |
| | |
| | | import {getUploadUrl} from '@/utils/base'; |
| | | import {mapGetters} from 'vuex'; |
| | | import * as DateFormatter from '@/utils/DateFormatter'; |
| | | import {warehouseSelectNumber} from "@/api/baseSetting/finsystenant"; |
| | | import {warehouseAllSelectNumber} from "@/api/baseSetting/finsystenant"; |
| | | |
| | | export default { |
| | | components: {MyButton, winMd, upload}, |
| | |
| | | } |
| | | callback(); |
| | | }, |
| | | loading: false, |
| | | buyTypeOptions: [ |
| | | { |
| | | label: '集采', |
| | | value: '1', |
| | | }, |
| | | { |
| | | label: '自采', |
| | | value: '2', |
| | | }, |
| | | ], |
| | | loading: true, |
| | | fileList: [], |
| | | departmentOptions: [], // 部门列表 |
| | | categoryOptions: [], // 物品分类列表 |
| | |
| | | operatorName: [{required: true, message: '请填写领取人', trigger: 'blur'}], |
| | | tel: [{required: true, message: '请填写联系电话', trigger: 'blur'}], |
| | | createTime: [{required: true, message: '请选择分发时间', trigger: 'change'}], |
| | | // 增加了分发的中间流程,若后期序号此流程(下载分发单,上传分发单)则注掉procureDoc |
| | | procureDoc: [{required: true, message: '请上传审批手续', trigger: 'change'}], |
| | | baseCategoryIds: [{required: true, message: '请选择', trigger: 'change'}], |
| | | baseGoodsTemplateId: [{validator: checkGoodsTemplateId, trigger: ['blur', 'change']}], |
| | | baseGoodsTemplateId: [{required: true, message: '请选择', trigger: 'change'},{validator: checkGoodsTemplateId, trigger: ['blur', 'change']}], |
| | | modelsIds: [{required: true, message: '请选择', trigger: 'change'}], |
| | | transferGoods: [ |
| | | { |
| | |
| | | title: '上传', |
| | | max: 20, // 最大大小,单位M |
| | | num: 10, // 支持上传图片个数 |
| | | accept: '.jpg,.png', // 限制格式 |
| | | tip: '', // 提示 默认:`只能上传${this.defaultSettings.num}个${this.defaultSettings.accept}文件,且不超过${this.defaultSettings.max}kb` |
| | | uploadUrl: getUploadUrl(), // 上传路径 |
| | | multiple: true, // 是否支持批量上传 |
| | | disabled: false, // 是否禁用 |
| | | type: 'picture', // text/picture |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | }, |
| | | methods: { |
| | | async init() { |
| | | this.getdeptmentList(); |
| | | this.getgoodsTemplate(); |
| | | this.getgoodsModel(); |
| | | await this.getdeptmentList(); |
| | | // 获取物品分类列表 |
| | | const treeRes = await getTree(); |
| | | this.categoryOptions = this.removeEmptyChildren(treeRes); |
| | | /*if (this.setting.id) { |
| | | const detail = await procureDetail({ id: this.setting.id }); |
| | | this.formData = Object.assign(this.formData, detail); |
| | | if (this.formData.procureDoc) { |
| | | this.fileList = JSON.parse(this.formData.procureDoc); |
| | | } |
| | | this.$set(this.formData, 'buyType', this.formData.buyType.toString()); |
| | | this.formData.procureTime = this.formData.procureTime.toString(); |
| | | this.formData.transferGoods.map((item, index) => { |
| | | this.$set( |
| | | this.formData.transferGoods[index], |
| | | 'modelsIds', |
| | | item.models.map((v) => v.baseGoodsModelsId), |
| | | ); |
| | | this.getgoodsTemplate(item.baseCategoryId, index); |
| | | this.getgoodsModel(item.baseGoodsTemplateId, index); |
| | | item.models.forEach((child, childIndex) => { |
| | | this.$set(this.formData.transferGoods[index].models[childIndex], 'priceYuan', child.price / 100); |
| | | }); |
| | | return item; |
| | | }); |
| | | }*/ |
| | | this.loading = false |
| | | this.getgoodsTemplate(); |
| | | this.getgoodsModel(); |
| | | }, |
| | | |
| | | // 获取入库仓库列表 |
| | | // 获取部门列表 |
| | | getdeptmentList() { |
| | | departmentListAll({tenantId: this.userInfo.tenantId}) |
| | | .then((res) => { |
| | | this.departmentOptions = res; |
| | | if (!this.setting.id && res.length) { |
| | | this.formData.transferGoods.push(JSON.parse(JSON.stringify(this.goodsItem))); |
| | | } |
| | | if (this.departmentOptions.length && !this.formData.warehouseId) { |
| | | // 默认选中第一个仓库 |
| | | this.formData.warehouseId = this.departmentOptions[0].id; |
| | | } |
| | | this.formData.transferGoods.push(JSON.parse(JSON.stringify(this.goodsItem))); |
| | | }) |
| | | .catch((err) => { |
| | | console.log('err', err); |
| | |
| | | let str = JSON.stringify(arr); |
| | | for (const item of e) { |
| | | if (str.indexOf(item) === -1) { |
| | | let num = await warehouseSelectNumber({ |
| | | let num = await warehouseAllSelectNumber({ |
| | | baseGoodsModelsId: item, |
| | | warehouseType: 0, |
| | | states: 1, |
| | | agencyId: this.userInfo.tenantId, |
| | | }); |
| | |
| | | |
| | | this.formData.departmentName = this.$refs.department.selected.currentLabel |
| | | this.formData.outAgencyId = this.userInfo.tenantId |
| | | if(this.loading) return |
| | | this.loading = true |
| | | transferAdd(this.formData) |
| | | .then((res) => { |
| | |
| | | .catch((err) => { |
| | | this.loading = false |
| | | console.log('create err', err); |
| | | this.$message.error('保存失败'); |
| | | //this.$message.error('保存失败'); |
| | | }); |
| | | } else { |
| | | this.$message.error('校验未通过,请检查。'); |