From 5e10fe06e80c7d146cbb5eb8f7b3e1e447a80b88 Mon Sep 17 00:00:00 2001 From: haoyahui <2032914783@qq.com> Date: 星期五, 17 十一月 2023 17:07:53 +0800 Subject: [PATCH] 部门物品:物品分发,物品报废静态。调拨管理联调,price由元改为分,仓库管理库管员 --- admin-web/src/views/departmentitem/itemdis/distribution/edit.vue | 180 ++++++++++++++++++++++++++++++++---------------------------- 1 files changed, 96 insertions(+), 84 deletions(-) diff --git a/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue b/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue index f9c6b1c..2c19940 100644 --- a/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue +++ b/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue @@ -1,13 +1,25 @@ <template> - <win-md class="stock-edit" :title="`${setting.title}閲囪喘鍏ュ簱`" @close="close" :width="'800px'"> + <win-md class="stock-edit" title="鐗╁搧鍒嗗彂" @close="close" :width="'800px'"> <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="warehouseId"> + <el-form-item label="閮ㄩ棬" prop="warehouseId"> <el-select v-model="formData.warehouseId" placeholder="璇烽�夋嫨" style="width: 100%"> - <el-option v-for="item in warehouses" :key="item.id" :label="item.warehouseName" :value="item.id" /> + <el-option v-for="item in departmentOptions" :key="item.id" :label="item.name" :value="item.id" /> </el-select> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="棰嗗彇浜�" prop="warehouseId"> + <el-input v-model="formData.warehouseId" placeholder="璇疯緭鍏�"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="24" class="headerHeight"> + <el-col :span="12"> + <el-form-item label="鑱旂郴鐢佃瘽" prop="buyType"> + <el-input v-model.number="formData.buyType" placeholder="璇疯緭鍏�"></el-input> </el-form-item> </el-col> <el-col :span="12"> @@ -25,17 +37,8 @@ </el-col> </el-row> <el-row :gutter="24" class="headerHeight"> - <el-col :span="12"> - <el-form-item label="閲囪喘绫诲瀷" prop="buyType"> - <el-select v-model="formData.buyType" placeholder="璇烽�夋嫨" style="width: 100%"> - <el-option v-for="item in buyTypeOptions" :key="item.value" :label="item.label" :value="item.value" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row :gutter="24" class="headerHeight"> <el-col :span="24"> - <el-form-item label="閲囪喘鍏ュ簱鎵嬬画" prop="procureDoc"> + <el-form-item label="鍒嗗彂瀹℃壒鎵嬬画" prop="procureDoc"> <upload ref="uploadRef" :values="fileList" :settings="uploadSettings" @on-change="uploadChange"></upload> </el-form-item> </el-col> @@ -114,52 +117,59 @@ </el-select> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item label="渚涜揣鍟�" prop="supplier"> - <el-input v-model="goodsItem.supplier" clearable maxlength="20" show-word-limit /> - </el-form-item> - </el-col> </el-row> - <el-table :data="goodsItem.models" :stripe="true"> - <el-table-column prop="baseGoodsModelsId" label="瑙勬牸鍨嬪彿" align="center"> - <template slot-scope="scope"> - {{ getGoodsModelsName(scope.row.baseGoodsModelsId) }} - </template> - </el-table-column> - <el-table-column label="鍗曚綅" align="center"> - <template slot-scope="scope"> - {{ scope.row.unit }} - </template> - </el-table-column> - <el-table-column prop="priceYuan" label="鍗曚环锛堝厓锛�" align="center"> - <template slot-scope="scope"> - <el-form-item - label-width="0" - style="margin-bottom: 0" - :prop="`procureGoods[${goodsIndex}].models[${scope.$index}].priceYuan`" - :rules="rules.priceYuan" - > - <el-input - type="number" - v-model.number="scope.row.priceYuan" - @change="priceChange($event, goodsIndex, scope.$index)" - ></el-input> + <el-row class="card3" v-for="(mItem, mIndex) in goodsItem.models" :key="mIndex"> + <el-row :gutter="24" type="flex" align="middle" style="height: 50px"> + <el-col :span="8"> + <el-form-item label="瑙勬牸鍨嬪彿:" prop="baseGoodsModelsId" style="margin-bottom: 0"> + {{ getGoodsModelsName(mItem.baseGoodsModelsId) }} </el-form-item> - </template> - </el-table-column> - <el-table-column prop="counts" label="閲囪喘鏁伴噺" align="center"> - <template slot-scope="scope"> - <el-form-item - label-width="0" - style="margin-bottom: 0" - :prop="`procureGoods[${goodsIndex}].models[${scope.$index}].counts`" - :rules="rules.counts" - > - <el-input v-model.number="scope.row.counts"></el-input> + </el-col> + <el-col :span="6"> + <el-form-item label="鍓╀綑鏁伴噺:" prop="baseGoodsModelsId" style="margin-bottom: 0" label-width="80"> + 50 </el-form-item> - </template> - </el-table-column> - </el-table> + </el-col> + <el-col :span="10" v-if="true"> + <el-form-item label="鍒嗗彂鏁伴噺:" prop="baseGoodsModelsId" style="margin-bottom: 0" label-width="80"> + <el-input v-model.number="mItem.count" style="width: 160px;"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-table :data="mItem.clist" :stripe="true" v-if="false"> + <el-table-column prop="count" label="鍒嗗彂鏁伴噺" align="center"> + <template slot-scope="scope"> + <el-input v-model="scope.row.count"></el-input> + </template> + </el-table-column> + <el-table-column prop="count" label="浣跨敤浜�" align="center"> + <template slot-scope="scope"> + <el-input v-model="scope.row.user" maxlength="20"></el-input> + </template> + </el-table-column> + <el-table-column prop="count" label="鑱旂郴鐢佃瘽" align="center"> + <template slot-scope="scope"> + <el-input v-model.number="scope.row.phone" maxlength="11"></el-input> + </template> + </el-table-column> + <el-table-column align="left" width="60"> + <template slot-scope="scope"> + <i + v-if="mItem.clist.length > 1" + class="el-icon-remove-outline" + style="color: #f56c6c; font-size: 16px; cursor: pointer" + @click="handleDel(goodsIndex, mIndex, scope.$index)" + ></i> + <i + v-if="mItem.clist.length - 1 == scope.$index" + class="el-icon-circle-plus-outline" + style="color: #0d997c; font-size: 16px; cursor: pointer" + @click="handleAdd(goodsIndex, mIndex, scope.$index)" + ></i> + </template> + </el-table-column> + </el-table> + </el-row> <div class="btn-group"> <el-button v-if="formData.procureGoods.length > 1" @@ -198,6 +208,7 @@ goodsModel, procureDetail, } from '@/api/stock/procure/purchaseOrder'; +import { departmentListAll } from '@/api/system/deptment'; import { getTree } from '@/api/foudation/classification'; import MyButton from '@/components/myButton/myButton'; import winMd from '@/components/win/win-md'; @@ -205,6 +216,7 @@ import { getUploadUrl, getDownUrl } from '@/utils/base'; import { findParentIds } from '@/utils/index'; import { mapGetters } from 'vuex'; +import * as DateFormatter from '@/utils/DateFormatter'; export default { components: { MyButton, winMd, upload }, @@ -224,18 +236,6 @@ let temp = this.formData.procureGoods.filter((v) => v.baseGoodsTemplateId == value); if (!temp || temp.length != 1) { return callback(new Error('宸查�夎繃姝ょ墿鍝�')); - } - callback(); - }; - // 閲戦鏍¢獙 - var checkPrice = (rule, value, callback) => { - console.log(value); - if (!value) { - return callback(new Error('璇疯緭鍏�')); - } - if (value == 0) { - this.$message.warning('鏁板瓧鍊间笉鑳戒负0'); - return callback(new Error('鏁板瓧鍊间笉鑳戒负0')); } callback(); }; @@ -268,14 +268,13 @@ }, ], fileList: [], - warehouses: [], // 鍏ュ簱浠撳簱鍒楄〃 + departmentOptions: [], // 閮ㄩ棬鍒楄〃 categoryOptions: [], // 鐗╁搧鍒嗙被鍒楄〃 modelList: [], //鍨嬪彿鍒楄〃 formData: { procureDoc: '', warehouseId: '', // 鍏ュ簱浠撳簱id - procureTime: '', // 閲囪喘鏃堕棿 - buyType: '2', // 閲囪喘鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛� + procureTime: DateFormatter.formatDate(new Date()), // 閲囪喘鏃堕棿 procureGoods: [], }, goodsItem: { @@ -292,10 +291,12 @@ }, modelsItem: { baseGoodsModelsId: '', // 瑙勬牸鍨嬪彿缂栧彿 - priceYuan: null, // 鍗曚环(鍏�) - price: null, // 鍗曚环(鍒� 閲囪喘闇�瑕侊紝璋冩嫧涓嶉渶瑕�) - counts: null, // 鎿嶄綔鏁伴噺 - unit: null, //鍗曚綅 + syCount: '', + }, + clistItem: { + count: null, + user: null, + phone: null, }, rules: { warehouseId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }], @@ -306,7 +307,6 @@ baseCategoryIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }], baseGoodsTemplateId: [{ validator: checkGoodsTemplateId, trigger: ['blur', 'change'] }], modelsIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }], - priceYuan: [{ validator: checkPrice, trigger: 'blur' }], counts: [{ validator: checkCounts, trigger: 'blur' }], }, @@ -331,7 +331,7 @@ }, methods: { async init() { - this.getWarehouseList(); + this.getdeptmentList(); this.getgoodsTemplate(); this.getgoodsModel(); // 鑾峰彇鐗╁搧鍒嗙被鍒楄〃 @@ -364,16 +364,16 @@ }, // 鑾峰彇鍏ュ簱浠撳簱鍒楄〃 - getWarehouseList() { - selectTenantWarehouse({ agencyId: this.userInfo.tenantId }) + getdeptmentList() { + departmentListAll({ agencyId: this.userInfo.tenantId }) .then((res) => { - this.warehouses = res; + this.departmentOptions = res; if (!this.setting.id && res.length) { this.formData.procureGoods.push(JSON.parse(JSON.stringify(this.goodsItem))); } - if (this.warehouses.length && !this.formData.warehouseId) { + if (this.departmentOptions.length && !this.formData.warehouseId) { // 榛樿閫変腑绗竴涓粨搴� - this.formData.warehouseId = this.warehouses[0].id; + this.formData.warehouseId = this.departmentOptions[0].id; } }) .catch((err) => { @@ -463,8 +463,8 @@ let str = JSON.stringify(arr); e.forEach((item) => { if (str.indexOf(item) == -1) { - let temp = this.goodsModelAll.find((v) => v.id == item); - arr.push({ ...this.modelsItem, baseGoodsModelsId: item, unit: temp.unit }); + let clist = [JSON.parse(JSON.stringify(this.clistItem))]; + arr.push({ ...this.modelsItem, baseGoodsModelsId: item, clist }); } }); this.formData.procureGoods[index].models = arr; @@ -475,6 +475,14 @@ let arr = this.formData.procureGoods[index].models; let delIndex = arr.findIndex((v) => v.baseGoodsModelsId == e); this.formData.procureGoods[index].models.splice(delIndex, 1); + }, + + //鍨嬪彿鍒嗗彂鏂板 + handleAdd(goodsIndex, mIndex, cIndex) { + this.formData.procureGoods[goodsIndex].models[mIndex].clist.push(JSON.parse(JSON.stringify(this.clistItem))); + }, + handleDel(goodsIndex, mIndex, cIndex) { + this.formData.procureGoods[goodsIndex].models[mIndex].clist.splice(cIndex, 1); }, // 浠锋牸input鐩戝惉 杞负鍒� @@ -546,4 +554,8 @@ </script> <style scoped lang="scss"> @import url(../../../../styles/store.scss); +.card3 { + border-radius: 2px; + background: #ffffff; +} </style> -- Gitblit v1.9.1