From 19fe807c723fd8c4e6479a4f2c2c9de931aefb82 Mon Sep 17 00:00:00 2001 From: 石广澎 <shiguangpeng@163.com> Date: 星期六, 02 十二月 2023 13:11:49 +0800 Subject: [PATCH] fix: 物品退回接口对接 --- admin-web/src/views/departmentitem/itemret/returnNote/edit.vue | 194 +++++++++++++++++++++++------------------------- 1 files changed, 92 insertions(+), 102 deletions(-) diff --git a/admin-web/src/views/departmentitem/itemret/returnNote/edit.vue b/admin-web/src/views/departmentitem/itemret/returnNote/edit.vue index 7042a05..1c245cc 100644 --- a/admin-web/src/views/departmentitem/itemret/returnNote/edit.vue +++ b/admin-web/src/views/departmentitem/itemret/returnNote/edit.vue @@ -20,12 +20,12 @@ <el-col :span="12"> <el-form-item label="閫�鍥炴椂闂�" prop="dealTime"> <el-date-picker - v-model="formData.dealTime" - type="datetime" - value="yyyy-MM-dd HH:mm:ss" - value-format="yyyyMMddHHmmss" - placeholder="璇烽�夋嫨鏃ユ湡" - style="width: 100%" + v-model="formData.dealTime" + type="datetime" + value="yyyy-MM-dd HH:mm:ss" + value-format="yyyyMMddHHmmss" + placeholder="璇烽�夋嫨鏃ユ湡" + style="width: 100%" > </el-date-picker> </el-form-item> @@ -42,64 +42,64 @@ <el-row :gutter="24"> <el-col :span="12"> <el-form-item - label="鐗╁搧鍒嗙被" - :prop="`goods.${goodsIndex}.baseCategoryId`" - :rules="{ + label="鐗╁搧鍒嗙被" + :prop="`goods.${goodsIndex}.baseCategoryId`" + :rules="{ required: true, message: '璇烽�夋嫨鐗╁搧鍒嗙被', trigger: 'change', }" > <el-cascader - v-model="goodsItem.baseCategoryId" - :options="categoryOptions" - :props="{ value: 'id',emitPath: false }" - :show-all-levels="false" - filterable - clearable - @change="categoryChange($event, goodsIndex)" - style="width: 100%" + v-model="goodsItem.baseCategoryId" + :options="categoryOptions" + :props="{ value: 'id',emitPath: false }" + :show-all-levels="false" + filterable + clearable + @change="categoryChange($event, goodsIndex)" + style="width: 100%" ></el-cascader> </el-form-item> </el-col> <el-col :span="12"> <el-form-item - label="鐗╁搧鍚嶇О" - :prop="`goods.${goodsIndex}.baseGoodsTemplateId`" - :rules="rules.baseGoodsTemplateId" + label="鐗╁搧鍚嶇О" + :prop="`goods.${goodsIndex}.baseGoodsTemplateId`" + :rules="rules.baseGoodsTemplateId" > <el-select - v-model="goodsItem.baseGoodsTemplateId" - :placeholder="goodsItem.baseCategoryId?'璇烽�夋嫨鐗╁搧':'璇峰厛閫夋嫨鐗╁搧鍒嗙被'" - filterable - clearable - :disabled="!goodsItem.baseCategoryId" - style="width: 100%" - @change="goodsTemplateChange($event, goodsIndex)" + v-model="goodsItem.baseGoodsTemplateId" + :placeholder="goodsItem.baseCategoryId?'璇烽�夋嫨鐗╁搧':'璇峰厛閫夋嫨鐗╁搧鍒嗙被'" + filterable + clearable + :disabled="!goodsItem.baseCategoryId" + style="width: 100%" + @change="goodsTemplateChange($event, goodsIndex)" > <el-option - v-for="item in goodsItem.goodsOptions" - :key="item.id" - :label="item.goodsName" - :value="item.id" + v-for="item in goodsItem.goodsOptions" + :key="item.id" + :label="item.goodsName" + :value="item.id" /> </el-select> </el-form-item> </el-col> <el-col :span="12"> <el-form-item - label="閫夋嫨鍒嗗彂鍗�" - :prop="`goods.${goodsIndex}.businessFormCode`" - :rules="rules.businessFormCode"> + label="閫夋嫨鍒嗗彂鍗�" + :prop="`goods.${goodsIndex}.businessFormCode`" + :rules="rules.businessFormCode"> <div @click="showFenFa(goodsIndex)"> <el-input - placeholder="璇烽�夋嫨鍒嗗彂鍗�" - readonly - v-model="goodsItem.businessFormCode" - :placeholder="goodsItem.baseGoodsTemplateId?'璇烽�夋嫨鍒嗗彂鍗�':'璇峰厛閫夋嫨鐗╁搧'" - :disabled="!goodsItem.baseGoodsTemplateId" - suffix-icon="el-icon-arrow-down" - class="cursor-p"></el-input> + placeholder="璇烽�夋嫨鍒嗗彂鍗�" + readonly + v-model="goodsItem.businessFormCode" + :placeholder="goodsItem.baseGoodsTemplateId?'璇烽�夋嫨鍒嗗彂鍗�':'璇峰厛閫夋嫨鐗╁搧'" + :disabled="!goodsItem.baseGoodsTemplateId" + suffix-icon="el-icon-arrow-down" + class="cursor-p"></el-input> </div> </el-form-item> </el-col> @@ -142,15 +142,15 @@ <el-table-column prop="counts" label="閫�鍥炴暟閲�" align="center"> <template slot-scope="{row,$index}"> <el-form-item - label-width="0" - :prop="`goods.${goodsIndex}.models.${mIndex}.counts`" - :rules="[ + label-width="0" + :prop="`goods.${goodsIndex}.models.${mIndex}.counts`" + :rules="[ {validator: checkCounts,counts:row.counts,userUseCount: row.userUseCount, trigger: ['blur', 'change']} ]" > <el-input - type="number" - v-model.number="row.counts" + type="number" + v-model.number="row.counts" ></el-input> </el-form-item> </template> @@ -159,22 +159,22 @@ </div> <div class="btn-group"> <el-button - v-if="formData.goods.length > 1" - name="绉婚櫎" - type="danger" - plain - size="mini" - @click="removeGoods(goodsIndex)" + v-if="formData.goods.length > 1" + name="绉婚櫎" + type="danger" + plain + size="mini" + @click="removeGoods(goodsIndex)" >绉婚櫎 </el-button > <el-button - v-if="formData.goods.length - 1 == goodsIndex" - name="鏂板鐗╁搧" - type="primary" - plain - size="mini" - @click="addGoods" + v-if="formData.goods.length - 1 == goodsIndex" + name="鏂板鐗╁搧" + type="primary" + plain + size="mini" + @click="addGoods" >鏂板鐗╁搧 </el-button > @@ -209,7 +209,6 @@ <script> import {departmentListAll} from '@/api/system/deptment'; import {goodsTemplate} from '@/api/baseSetting/finsystenant'; -import {outputAdd} from '@/api/stock/accessStock'; import {getTree} from '@/api/foudation/classification'; import MyButton from '@/components/myButton/myButton'; import winMd from '@/components/win/win-md'; @@ -219,7 +218,7 @@ import {mapGetters} from 'vuex'; import * as DateFormatter from '@/utils/DateFormatter'; import {getFfOrderByGoodsIdAndDept, getGoodsUseInfoByFfOrderAndGoodId} from "@/api/deptGoods/scrap"; -import {getDicts} from "@/api/system/dict/data"; +import {returnAdd} from "@/api/deptGoods/itemret"; export default { components: {MyButton, winMd, winSm, upload}, @@ -231,18 +230,6 @@ }, }, data() { - // 鑷畾涔夋牎楠� - // 鐗╁搧閲嶅鏍¢獙 - var checkBusinessFormCode = (rule, value, callback) => { - if (!value) { - return callback(new Error('璇烽�夋嫨')); - } - let temp = this.formData.goods.filter((v) => v.businessFormCode == value); - if (!temp || temp.length != 1) { - return callback(new Error('宸查�夎繃姝ゅ垎鍙戝崟')); - } - callback(); - }; return { checkCounts: (rule, value, callback) => { if (!rule.counts) { @@ -306,11 +293,7 @@ message: '璇烽�夋嫨鐗╁搧', trigger: 'change' }], - businessFormCode: [{ - required: true, - message: '璇烽�夋嫨鍒嗗彂鍗�', - trigger: 'change' - }, {validator: checkBusinessFormCode, trigger: ['blur', 'change']}], + businessFormCode: [{required: true, message: '璇烽�夋嫨鍒嗗彂鍗�', trigger: 'change'}], counts: [{required: true, message: '璇疯緭鍏�', trigger: 'change'}], reason: [{required: true, message: '璇烽�夋嫨', trigger: 'change'}], }, @@ -349,13 +332,13 @@ // 鑾峰彇閮ㄩ棬鍒楄〃 async getdeptmentList() { await departmentListAll({tenantId: this.userInfo.tenantId}) - .then((res) => { - this.departmentOptions = res; - this.formData.goods.push(JSON.parse(JSON.stringify(this.goodsItem))); - }) - .catch((err) => { - console.log('err', err); - }); + .then((res) => { + this.departmentOptions = res; + this.formData.goods.push(JSON.parse(JSON.stringify(this.goodsItem))); + }) + .catch((err) => { + console.log('err', err); + }); }, removeEmptyChildren(arr) { @@ -411,9 +394,8 @@ // 鐗╁搧鍚嶇О鍒楄〃閫夋嫨 goodsTemplateChange(e, index) { this.formData.goods[index].models = []; - + this.formData.goods[index].businessFormCode = ''; this.formData.goods[index].goodsTemplateName = this.getGoodsTemplateName(e); - }, showFenFa(index) { this.loading = true @@ -457,6 +439,13 @@ this.$message.error('璇烽�夋嫨鍒嗗彂鍗�'); return } + let bIdx = this.formData.goods.findIndex((v) => v.businessFormCode == this.curFenfa.businessFormCode); + let gIdx = this.formData.goods.findIndex((v) => v.baseGoodsTemplateId == this.fenfaSetting.baseGoodsTemplateId); + + if (gIdx !== -1 && gIdx !== this.fenfaSetting.goodsIdx && bIdx !== -1 && bIdx !== this.fenfaSetting.goodsIdx) { + this.$message.error('鍚屼竴涓墿鍝佷笉鑳介�夋嫨鐩稿悓鐨勫垎鍙戝崟'); + return; + } getGoodsUseInfoByFfOrderAndGoodId({ transBusinessId: this.curFenfa.transBusinessId, baseGoodsTemplateId: this.fenfaSetting.baseGoodsTemplateId @@ -482,26 +471,27 @@ this.$refs['ruleForm'].validate((valid) => { if (valid) { let params = JSON.parse(JSON.stringify(this.formData)) - params.goods.map((g,gid)=>{ + params.goods.map((g, gid) => { delete g.goodsOptions - let arr=[] - g.models.map(m=>{ - arr=arr.concat(m) + let arr = [] + g.models.map(m => { + arr = arr.concat(m) }) g.models = arr }) - console.log('params', params); - return - outputAdd(this.formData) - .then((res) => { - this.$message.success('淇濆瓨鎴愬姛锛�'); - this.close(); - this.$emit('search'); - }) - .catch((err) => { - console.log('edit err', err); - this.$message.error('淇濆瓨澶辫触'); - }); + if (this.loading) return + this.loading = true + returnAdd(params) + .then((res) => { + this.loading = false + this.$message.success('淇濆瓨鎴愬姛锛�'); + this.close(); + this.$emit('search'); + }) + .catch((err) => { + this.loading = false + this.$message.error('淇濆瓨澶辫触'); + }); } else { this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��'); } -- Gitblit v1.9.1