From 9497f101126c9f03dbd7917a3396696bdac6998c Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期五, 01 十二月 2023 10:56:43 +0800
Subject: [PATCH] feat: 部门物品 报废
---
admin-web/src/views/stock/procure/purchaseOrder/edit.vue | 4
admin-web/src/api/deptGoods/scrap.js | 62 ++++++
admin-web/src/views/departmentitem/itemscr/scrapping/edit.vue | 426 ++++++++++++++++++++++++++++-------------------
admin-web/src/views/stock/transfer/transferApplication/edit.vue | 4
admin-web/src/views/departmentitem/itemdis/distribution/edit.vue | 15 -
admin-web/src/views/stock/scrap/itemScrapping/edit.vue | 4
admin-web/src/views/stock/accessStock/outbound/edit.vue | 4
admin-web/public/static/config.js | 4
8 files changed, 329 insertions(+), 194 deletions(-)
diff --git a/admin-web/public/static/config.js b/admin-web/public/static/config.js
index 2c5f21a..b7e2788 100644
--- a/admin-web/public/static/config.js
+++ b/admin-web/public/static/config.js
@@ -4,8 +4,8 @@
// 涓婁紶璺緞
ftpUrl: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙�
// 鎺ュ彛璇锋眰鍦板潃
- apiBaseURL: 'http://172.16.20.2:8083/lowConsum',//寮�鍙�
- // apiBaseURL: 'http://172.16.60.155:8083/lowConsum',//寮�鍙�
+ // apiBaseURL: 'http://172.16.20.2:8083/lowConsum',//寮�鍙�
+ apiBaseURL: 'http://172.16.60.155:8083/lowConsum',//寮�鍙�
// apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙�
debug: false //璋冭瘯寮�鍏� true鏃朵細杈撳嚭璇锋眰鏃ュ織
};
diff --git a/admin-web/src/api/deptGoods/scrap.js b/admin-web/src/api/deptGoods/scrap.js
new file mode 100644
index 0000000..a75f649
--- /dev/null
+++ b/admin-web/src/api/deptGoods/scrap.js
@@ -0,0 +1,62 @@
+import request from '@/utils/request';
+
+// 鐗╁搧鎶ュ簾
+// 鏍规嵁閮ㄩ棬銆佺墿鍝佹煡璇㈠垎鍙戝崟
+export function getFfOrderByGoodsIdAndDept(params) {
+ return request({
+ url: '/pc/warehouse/procureModel/getFfOrderByGoodsIdAndDept',
+ method: 'get',
+ params,
+ });
+}
+// 鏍规嵁鍒嗗彂鍗昳d鍜岀墿鍝佹煡璇㈠湪鐢ㄦ暟閲� 浠ュ強浣跨敤浜轰俊鎭�
+export function getGoodsUseInfoByFfOrderAndGoodId(params) {
+ return request({
+ url: '/pc/warehouse/procureModel/getGoodsUseInfoByFfOrderAndGoodId',
+ method: 'get',
+ params,
+ });
+}
+// 鏂板
+export function scrappedAdd(data) {
+ return request({
+ url: '/pc/l/wh/form/scrapped/add',
+ method: 'post',
+ data,
+ });
+}
+
+// 鍒楄〃
+export function scrappedList(params) {
+ return request({
+ url: '/pc/l/wh/form/scrapped/list',
+ method: 'get',
+ params,
+ });
+}
+
+// 璇︽儏
+export function scrappedDetail(params) {
+ return request({
+ url: '/pc/l/wh/form/scrapped/detail',
+ method: 'get',
+ params,
+ });
+}
+// 瀵煎嚭
+export function scrappedExport(params) {
+ return request({
+ url: '/pc/l/wh/form/scrapped/export',
+ method: 'get',
+ params,
+ });
+}
+
+// 鏄庣粏鍒楄〃
+export function scrappedListDetailList(params) {
+ return request({
+ url: '/pc/l/wh/form/scrapped/list/detailList',
+ method: 'get',
+ params,
+ });
+ }
diff --git a/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue b/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue
index 0bf076a..0e53b54 100644
--- a/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue
+++ b/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue
@@ -61,6 +61,7 @@
:options="categoryOptions"
:props="{ value: 'id',emitPath: false }"
:show-all-levels="false"
+ filterable
clearable
@change="categoryChange($event, goodsIndex)"
style="width: 100%"
@@ -101,8 +102,8 @@
<el-select
v-model="goodsItem.modelsIds"
multiple
- :placeholder="goodsItem.baseCategoryId?'璇烽�夋嫨瑙勬牸鍨嬪彿':'璇峰厛閫夋嫨鐗╁搧鍚嶇О'"
- :disabled="!goodsItem.baseCategoryId"
+ :placeholder="goodsItem.baseGoodsTemplateId?'璇烽�夋嫨瑙勬牸鍨嬪彿':'璇峰厛閫夋嫨鐗╁搧鍚嶇О'"
+ :disabled="!goodsItem.baseGoodsTemplateId"
@change="modelChange($event, goodsIndex)"
@remove-tag="modelRemoveTag($event, goodsIndex)"
style="width: 100%"
@@ -384,18 +385,12 @@
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);
diff --git a/admin-web/src/views/departmentitem/itemscr/scrapping/edit.vue b/admin-web/src/views/departmentitem/itemscr/scrapping/edit.vue
index f2a78ba..a373d23 100644
--- a/admin-web/src/views/departmentitem/itemscr/scrapping/edit.vue
+++ b/admin-web/src/views/departmentitem/itemscr/scrapping/edit.vue
@@ -1,27 +1,31 @@
<template>
- <win-md class="stock-edit" title="鐗╁搧鎶ュ簾" @close="close" :width="'800px'">
+ <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="warehouseId">
- <el-input v-model="formData.departmentName" disabled></el-input>
+ <el-form-item label="閮ㄩ棬" prop="departmentId">
+ <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>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鎶ュ簾浜�" prop="createName">
- <el-input v-model="formData.createName" disabled></el-input>
+ <el-form-item label="鎶ュ簾浜�" prop="operatorName">
+ <el-input v-model="formData.operatorName" disabled></el-input>
</el-form-item>
</el-col>
<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>
@@ -38,124 +42,136 @@
<el-row :gutter="24">
<el-col :span="12">
<el-form-item
- label="鐗╁搧鍒嗙被"
- :prop="`goods[${goodsIndex}].baseCategoryIds`"
- :rules="{
+ label="鐗╁搧鍒嗙被"
+ :prop="`goods.${goodsIndex}.baseCategoryId`"
+ :rules="{
required: true,
- message: '璇烽�夋嫨',
+ message: '璇烽�夋嫨鐗╁搧鍒嗙被',
trigger: 'change',
}"
>
<el-cascader
- v-model="goodsItem.baseCategoryIds"
- :options="categoryOptions"
- :props="{ value: 'id' }"
- @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="璇峰厛鎷╃墿鍝佸垎绫�"
- filterable
- :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-row>
- <el-row :gutter="24">
<el-col :span="12">
- <el-form-item label="閫夋嫨鍒嗗彂鍗�" :prop="`goods[${goodsIndex}].modelsIds`">
- <el-input v-if="!goodsItem.baseGoodsTemplateId" placeholder="璇峰厛鎷╃墿鍝佸悕绉�" readonly suffix-icon="el-icon-arrow-down" class="cursor-p"></el-input>
- <div v-else @click="fenfaSetting.show=true">
- <el-input placeholder="璇烽�夋嫨" readonly suffix-icon="el-icon-arrow-down" class="cursor-p"></el-input>
+ <el-form-item
+ 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>
</div>
</el-form-item>
</el-col>
</el-row>
<div 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-col :span="12">
<el-form-item label="瑙勬牸鍨嬪彿:" prop="baseGoodsModelsId" style="margin-bottom: 0">
- {{ getGoodsModelsName(mItem.baseGoodsModelsId) }}
+ {{ mItem[0].modelName }}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="鍗曚綅:" prop="baseGoodsModelsId" style="margin-bottom: 0" label-width="80">
- 50
+ {{ mItem[0].unit }}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="鐗╁搧绫诲埆:" prop="baseGoodsModelsId" style="margin-bottom: 0" label-width="80">
- A绫�
+ {{ mItem[0].classification }}
</el-form-item>
</el-col>
</el-row>
- <el-table :data="mItem.models" :stripe="true">
+ <el-table :data="mItem" :stripe="true">
<!-- A绫诲晢鍝佹樉绀� -->
- <el-table-column prop="price" label="浣跨敤浜�" align="center" v-if="goodsItem.models.type===1">
+ <el-table-column width="100" prop="price" label="浣跨敤浜�" align="center" v-if="mItem[0].nowUserName">
<template slot-scope="scope">
- {{ scope.row.worehouseCount }}
+ {{ scope.row.nowUserName }}
</template>
</el-table-column>
- <el-table-column prop="price" label="鍒嗗彂鏁伴噺" align="center">
+ <el-table-column width="100" prop="price" label="鍒嗗彂鏁伴噺" align="center">
<template slot-scope="scope">
- {{ scope.row.worehouseCount }}
+ {{ scope.row.goodsNum }}
</template>
</el-table-column>
- <el-table-column prop="price" label="鍐嶇敤鏁伴噺" align="center">
+ <el-table-column width="100" prop="price" label="鍦ㄧ敤鏁伴噺" align="center">
<template slot-scope="scope">
- {{ scope.row.worehouseCount }}
+ {{ scope.row.userUseCount }}
</template>
</el-table-column>
<el-table-column prop="counts" label="鎶ュ簾鏁伴噺" align="center">
- <template slot-scope="scope">
+ <template slot-scope="{row,$index}">
<el-form-item
- label-width="0"
- style="margin-bottom: 0"
- :prop="`goods[${goodsIndex}].models[${scope.$index}].counts`"
- :rules="rules.counts"
+ 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="scope.row.counts"
- @change="countsChange($event, goodsIndex, scope.$index)"
+ type="number"
+ v-model.number="row.counts"
></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="counts" label="鎶ュ簾鍘熷洜" align="center">
- <template slot-scope="scope">
+ <template slot-scope="{row,$index}">
+<!-- <el-form-item
+ label-width="0"
+ :prop="`goods.${goodsIndex}.models.${mIndex}.scrappedCode`"
+ :rules="[{required: true, message: '璇烽�夋嫨', trigger: 'change'}]"
+ >-->
<el-form-item
- label-width="0"
- style="margin-bottom: 0"
- :prop="`goods[${goodsIndex}].models[${scope.$index}].reason`"
- :rules="rules.reason"
+ label-width="0"
>
- <el-select v-model="scope.row.reason" placeholder="璇烽�夋嫨">
+ <el-select v-model="row.scrappedCode" placeholder="璇烽�夋嫨">
<el-option
- v-for="item in reasonOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- @change="countsChange($event, goodsIndex, scope.$index)">
- </el-option>
+ v-for="item in scrapReasonOptions"
+ :key="item.dict_code"
+ :label="item.dict_label"
+ :value="item.dict_code"
+ />
</el-select>
</el-form-item>
</template>
@@ -164,51 +180,56 @@
</div>
<div class="btn-group">
<el-button
- v-if="formData.goods.length > 1"
- name="绉婚櫎"
- type="danger"
- plain
- size="mini"
- @click="removeGoods(goodsIndex)"
- >绉婚櫎</el-button
+ 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"
- >鏂板鐗╁搧</el-button
+ v-if="formData.goods.length - 1 == goodsIndex"
+ name="鏂板鐗╁搧"
+ type="primary"
+ plain
+ size="mini"
+ @click="addGoods"
+ >鏂板鐗╁搧
+ </el-button
>
</div>
</div>
</div>
</el-form>
<div slot="footer" align="center" class="dialog-footer">
- <my-button name="鍙栨秷" site="form" @click="close" />
- <my-button name="淇濆瓨" site="form" @click="handleSubmit" />
+ <my-button name="鍙栨秷" site="form" @click="close"/>
+ <my-button name="淇濆瓨" site="form" @click="handleSubmit"/>
</div>
- <div v-if="fenfaSetting.show">
- <win-sm title="閫夋嫨鍒嗗彂鍗�" @close="fenfaSetting.show=false" :width="'800px'">
- <el-table :data="fenfaData">
- <el-table-column type="selection" width="55"> </el-table-column>
- <el-table-column label="鍒嗗彂鍗曞彿" prop="businessFormCode"></el-table-column>
- <el-table-column label="鐗╁搧鍚嶇О" prop="modelName"></el-table-column>
- <el-table-column label="鍒嗗彂鏁伴噺" prop="fenfaCount"></el-table-column>
- <el-table-column label="鍓╀綑鏁伴噺" prop="count"></el-table-column>
- <el-table-column label="鍒嗗彂鏃堕棿" prop="time"></el-table-column>
+ <win-md v-if="fenfaSetting.show" title="閫夋嫨鍒嗗彂鍗�" @close="fenfaSetting.show=false" :width="'800px'">
+ <el-table @current-change="handleCurrentChange" :data="fenfaData" highlight-current-row height="407">
+ <el-table-column label="鍒嗗彂鍗曞彿" prop="businessFormCode" align="left"></el-table-column>
+ <el-table-column label="鐗╁搧鍚嶇О" prop="baseGoodsTemplateName" align="left"></el-table-column>
+ <el-table-column label="鍒嗗彂鏁伴噺" prop="totalCount" align="center"></el-table-column>
+ <el-table-column label="鍓╀綑鏁伴噺" prop="useCount" align="center"></el-table-column>
+ <el-table-column label="鍒嗗彂鏃堕棿" prop="inTime" width="160" align="center">
+ <template slot-scope="{row}">
+ {{ DateFormatter.LongToDateTime(row.inTime) }}
+ </template>
+ </el-table-column>
</el-table>
<div slot="footer" align="center" class="dialog-footer">
- <my-button name="鍙栨秷" site="form" @click="fenfaSetting.show=false" />
- <my-button name="纭畾" site="form" @click="handleConfirm" />
+ <my-button name="鍙栨秷" site="form"
+ @click="fenfaSetting.show=false;fenfaSetting.baseGoodsTemplateId=null;curFenfa=null;fenfaData=[]"/>
+ <el-button @click="handleConfirm" type="primary" size="medium">纭畾</el-button>
</div>
- </win-sm>
- </div>
+ </win-md>
</win-md>
</template>
<script>
-import {goodsTemplate, selectTenantWarehouse,} from '@/api/baseSetting/finsystenant';
+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';
@@ -217,53 +238,78 @@
import upload from '@/components/upload/index';
import {getUploadUrl} from '@/utils/base';
import {mapGetters} from 'vuex';
+import * as DateFormatter from '@/utils/DateFormatter';
+import {getFfOrderByGoodsIdAndDept, getGoodsUseInfoByFfOrderAndGoodId} from "@/api/deptGoods/scrap";
+import {getDicts} from "@/api/system/dict/data";
export default {
- components: { MyButton, winMd, winSm, upload },
+ components: {MyButton, winMd, winSm, upload},
props: {
setting: {
type: Object,
- default: () => {},
+ default: () => {
+ },
},
},
data() {
// 鑷畾涔夋牎楠�
// 鐗╁搧閲嶅鏍¢獙
- var checkGoodsTemplateId = (rule, value, callback) => {
+ var checkBusinessFormCode= (rule, value, callback) => {
if (!value) {
return callback(new Error('璇烽�夋嫨'));
}
- let temp = this.formData.goods.filter((v) => v.baseGoodsTemplateId == value);
+ let temp = this.formData.goods.filter((v) => v.businessFormCode == value);
if (!temp || temp.length != 1) {
- return callback(new Error('宸查�夎繃姝ょ墿鍝�'));
+ return callback(new Error('宸查�夎繃姝ゅ垎鍙戝崟'));
}
callback();
};
return {
- loading: false,
- warehouseOptions: [], // 鎶ュ簾浠撳簱鍒楄〃
+ checkCounts: (rule, value, callback) => {
+ if (!rule.counts) {
+ return callback(new Error('璇疯緭鍏ユ姤搴熸暟閲�'));
+ }
+ if (!Number.isInteger(rule.counts)) {
+ // this.$message.warning('璇疯緭鍏ユ暟瀛楀��');
+ return callback(new Error('璇疯緭鍏ユ暟瀛楀��'));
+ }
+ if (rule.counts < 1) {
+ // this.$message.warning('鏁板瓧鍊间笉鑳戒负0');
+ return callback(new Error('鏁板瓧鍊煎繀椤诲ぇ浜�0'));
+ }
+ if (rule.counts > rule.userUseCount) {
+ // this.$message.warning('鍒嗗彂鏁伴噺涓嶈兘澶т簬鍓╀綑鏁伴噺');
+ return callback(new Error('鎶ュ簾鏁伴噺涓嶈兘澶т簬鍦ㄧ敤鏁伴噺'));
+ }
+ callback();
+ },
+ DateFormatter: DateFormatter,
+ loading: true,
+ departmentOptions: [], // 閮ㄩ棬鍒楄〃
categoryOptions: [], // 鐗╁搧鍒嗙被鍒楄〃
modelList: [], //鍨嬪彿鍒楄〃
fenfaSetting: {
show: false,
+ goodsIdx: null,
+ baseGoodsTemplateId: null,
id: '',
},
- fenfaData:[],
+ curFenfa: null,
+ fenfaData: [],
formData: {
- warehouseId: '', // 鎶ュ簾浠撳簱id
+ departmentId: '', // 鎶ュ簾閮ㄩ棬id
dealTime: '', // 鎶ュ簾鏃堕棿
procureDoc: '',
goods: [],
},
goodsItem: {
- baseCategoryIds: '', // 鍒嗙被缂栧彿鏁扮粍
+ businessFormCode: '', // 鍒嗗彂鍗昳d
+ transBusinessId: '', // 鍒嗗彂鍗昳d
baseCategoryId: '', // 鍒嗙被缂栧彿
baseGoodsTemplateId: '', // 鐗╁搧妯$増缂栧彿
goodsTemplateName: '', // 鐗╁搧妯$増鍚嶇О
goodsOptions: [], // 鐗╁搧鍒楄〃select
- modelsOptions: [], //瑙勬牸鍨嬪彿select
models: [], // 鐗╁搧鍚嶇О
- modelsIds: [], //瑙勬牸鍨嬪彿
},
modelsItem: {
baseGoodsModelsId: '', // 瑙勬牸鍨嬪彿缂栧彿
@@ -272,14 +318,18 @@
unit: null, //鍗曚綅
},
rules: {
- warehouseId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
- dealTime: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
- buyType: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
- baseCategoryIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
- baseGoodsTemplateId: [{ validator: checkGoodsTemplateId, trigger: ['blur', 'change'] }],
- modelsIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
- counts: [{ required: true, message: '璇疯緭鍏�', trigger: 'change' }],
- reason: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+ departmentId: [{required: true, message: '璇烽�夋嫨閮ㄩ棬', trigger: 'change'}],
+ dealTime: [{required: true, message: '璇烽�夋嫨', trigger: 'change'}],
+ procureDoc: [{required: true, message: '璇蜂笂浼�', trigger: 'change'}],
+ baseCategoryId: [{required: true, message: '璇烽�夋嫨', trigger: 'change'}],
+ baseGoodsTemplateId: [{
+ required: true,
+ message: '璇烽�夋嫨鐗╁搧',
+ trigger: 'change'
+ }],
+ businessFormCode: [{required: true,message: '璇烽�夋嫨鍒嗗彂鍗�',trigger: 'change'}, {validator: checkBusinessFormCode, trigger: ['blur', 'change']}],
+ counts: [{required: true, message: '璇疯緭鍏�', trigger: 'change'}],
+ reason: [{required: true, message: '璇烽�夋嫨', trigger: 'change'}],
},
uploadSettings: {
@@ -293,7 +343,7 @@
disabled: false, // 鏄惁绂佺敤
type: 'picture', // text/picture
},
- reasonOptions:[] // 鎶ュ簾鍘熷洜
+ scrapReasonOptions: [] // 鎶ュ簾鍘熷洜
};
},
computed: {
@@ -304,31 +354,29 @@
},
methods: {
async init() {
- this.getWarehouseList();
- this.getgoodsTemplate();
- // 鑾峰彇鐗╁搧鍒嗙被鍒楄〃
+ await this.getdeptmentList();
const treeRes = await getTree();
this.categoryOptions = this.removeEmptyChildren(treeRes);
- this.formData.departmentName = this.userInfo.sysDeptName;
- this.formData.createName = this.userInfo.userName;
+ this.getgoodsTemplate();
+ // 鑾峰彇鐗╁搧鍒嗙被鍒楄〃
+ this.formData.departmentId = this.userInfo.sysDeptId;
+ this.formData.operatorName = this.userInfo.userName;
+ this.loading = false
+ getDicts('SCRAP_REASON').then((res) => {
+ this.scrapReasonOptions = res;
+ });
},
- // 鑾峰彇鎶ュ簾浠撳簱鍒楄〃
- getWarehouseList() {
- selectTenantWarehouse({ agencyId: this.userInfo.tenantId })
- .then((res) => {
- this.warehouseOptions = res;
- if (res.length) {
+ // 鑾峰彇閮ㄩ棬鍒楄〃
+ async getdeptmentList() {
+ await departmentListAll({tenantId: this.userInfo.tenantId})
+ .then((res) => {
+ this.departmentOptions = res;
this.formData.goods.push(JSON.parse(JSON.stringify(this.goodsItem)));
- }
- if (this.warehouseOptions.length && !this.formData.warehouseId) {
- // 榛樿閫変腑绗竴涓粨搴�
- this.formData.warehouseId = this.warehouseOptions[0].id;
- }
- })
- .catch((err) => {
- console.log('err', err);
- });
+ })
+ .catch((err) => {
+ console.log('err', err);
+ });
},
removeEmptyChildren(arr) {
@@ -344,7 +392,7 @@
// 鑾峰彇鐗╁搧鍚嶇О鍒楄〃
getgoodsTemplate(id, index) {
- goodsTemplate({ categoryId: id || '' }).then((res) => {
+ goodsTemplate({categoryId: id || ''}).then((res) => {
if (index || index == 0) {
this.$set(this.formData.goods[index], 'goodsOptions', res);
} else {
@@ -376,24 +424,37 @@
this.formData.goods[index].goodsOptions = [];
this.formData.goods[index].baseGoodsTemplateId = '';
this.formData.goods[index].goodsTemplateName = '';
- this.formData.goods[index].modelsOptions = [];
- this.formData.goods[index].modelsIds = [];
this.formData.goods[index].models = [];
-
- this.formData.goods[index].baseCategoryId = e[e.length - 1];
// 鏍规嵁閫変腑鍒嗙被璇锋眰鐗╁搧鍚嶇О鍒楄〃
- this.getgoodsTemplate(e[e.length - 1], index);
+ this.getgoodsTemplate(e, index);
},
// 鐗╁搧鍚嶇О鍒楄〃閫夋嫨
goodsTemplateChange(e, index) {
- this.formData.goods[index].modelsOptions = [];
- this.formData.goods[index].modelsIds = [];
this.formData.goods[index].models = [];
this.formData.goods[index].goodsTemplateName = this.getGoodsTemplateName(e);
- },
+ },
+ showFenFa(index) {
+ this.loading = true
+ getFfOrderByGoodsIdAndDept({
+ departmentId: this.formData.departmentId,
+ baseGoodsTemplateId: this.formData.goods[index].baseGoodsTemplateId
+ }).then(res => {
+ this.loading = false
+ if (!res || res.length === 0) {
+ this.$message.error('鏈煡璇㈠埌鍒嗗彂鍗�');
+ return
+ }
+ this.fenfaSetting.show = true
+ this.fenfaSetting.baseGoodsTemplateId = this.formData.goods[index].baseGoodsTemplateId
+ this.fenfaSetting.goodsIdx = index
+ this.fenfaData = res
+ }).catch((err) => {
+ this.loading = false
+ });
+ },
// 涓婁紶
uploadChange() {
let arr = this.$refs.uploadRef.fileList;
@@ -409,36 +470,51 @@
removeGoods(index) {
this.formData.goods.splice(index, 1);
},
-
- // 鎶ュ簾鏁伴噺鏍¢獙
- countsChange(e, goodsIndex, index) {
- const curItem = this.formData.goods[goodsIndex].models[index];
- const worehouseCount = curItem.worehouseCount;
- if (e == 0) {
- this.$message.warning('鏁伴涓嶈兘涓�0');
- curItem.counts = null;
- }
- if (e > worehouseCount) {
- this.$message.warning('鏁伴瓒呰繃鐜版湁搴撳瓨');
- curItem.counts = worehouseCount > 0 ? worehouseCount : null;
- }
+ handleCurrentChange(e) {
+ this.curFenfa = e
},
- handleConfirm(){},
+ handleConfirm() {
+ if (!this.curFenfa) {
+ this.$message.error('璇烽�夋嫨鍒嗗彂鍗�');
+ return
+ }
+ getGoodsUseInfoByFfOrderAndGoodId({
+ transBusinessId: this.curFenfa.transBusinessId,
+ baseGoodsTemplateId: this.fenfaSetting.baseGoodsTemplateId
+ }).then(res => {
+ if (res) {
+ let arr = []
+ for (let resKey in res) {
+ const item = res[resKey]
+ item.map(t => {
+ t.counts = null
+ t.scrappedCode = null
+ })
+ arr.push(item)
+ }
+ console.log(arr)
+ this.formData.goods[this.fenfaSetting.goodsIdx].models = arr
+ this.formData.goods[this.fenfaSetting.goodsIdx].businessFormCode = this.curFenfa.businessFormCode
+ }
+ this.fenfaSetting.show = false
+ })
+ },
// 鎻愪氦
handleSubmit() {
+ console.log('this.formData', this.formData);
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
- console.log('this.formData', this.formData);
+ return;
outputAdd(this.formData)
- .then((res) => {
- this.$message.success('淇濆瓨鎴愬姛锛�');
- this.close();
- this.$emit('search');
- })
- .catch((err) => {
- console.log('edit err', err);
- this.$message.error('淇濆瓨澶辫触');
- });
+ .then((res) => {
+ this.$message.success('淇濆瓨鎴愬姛锛�');
+ this.close();
+ this.$emit('search');
+ })
+ .catch((err) => {
+ console.log('edit err', err);
+ this.$message.error('淇濆瓨澶辫触');
+ });
} else {
this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��');
}
@@ -458,6 +534,7 @@
</script>
<style scoped lang="scss">
@import url(../../../../styles/store.scss);
+
.cursor-p {
::v-deep {
.el-input__inner {
@@ -465,6 +542,7 @@
}
}
}
+
.card3 {
border-radius: 2px;
background: #ffffff;
diff --git a/admin-web/src/views/stock/accessStock/outbound/edit.vue b/admin-web/src/views/stock/accessStock/outbound/edit.vue
index 079826e..91eb146 100644
--- a/admin-web/src/views/stock/accessStock/outbound/edit.vue
+++ b/admin-web/src/views/stock/accessStock/outbound/edit.vue
@@ -102,8 +102,8 @@
v-model="goodsItem.modelsIds"
multiple
clearable
- :placeholder="goodsItem.baseCategoryId?'璇烽�夋嫨瑙勬牸鍨嬪彿':'璇峰厛閫夋嫨鐗╁搧鍚嶇О'"
- :disabled="!goodsItem.baseCategoryId"
+ :placeholder="goodsItem.baseGoodsTemplateId?'璇烽�夋嫨瑙勬牸鍨嬪彿':'璇峰厛閫夋嫨鐗╁搧鍚嶇О'"
+ :disabled="!goodsItem.baseGoodsTemplateId"
@change="modelChange($event, goodsIndex)"
@remove-tag="modelRemoveTag($event, goodsIndex)"
@clear="modelRemoveTag(-1, goodsIndex)"
diff --git a/admin-web/src/views/stock/procure/purchaseOrder/edit.vue b/admin-web/src/views/stock/procure/purchaseOrder/edit.vue
index b934681..2726c9a 100644
--- a/admin-web/src/views/stock/procure/purchaseOrder/edit.vue
+++ b/admin-web/src/views/stock/procure/purchaseOrder/edit.vue
@@ -105,8 +105,8 @@
v-model="goodsItem.modelsIds"
multiple
clearable
- :placeholder="goodsItem.baseCategoryId?'璇烽�夋嫨瑙勬牸鍨嬪彿':'璇峰厛閫夋嫨鐗╁搧鍚嶇О'"
- :disabled="!goodsItem.baseCategoryId"
+ :placeholder="goodsItem.baseGoodsTemplateId?'璇烽�夋嫨瑙勬牸鍨嬪彿':'璇峰厛閫夋嫨鐗╁搧鍚嶇О'"
+ :disabled="!goodsItem.baseGoodsTemplateId"
@change="modelChange($event, goodsIndex)"
@remove-tag="modelRemoveTag($event, goodsIndex)"
@clear="modelRemoveTag(-1, goodsIndex)"
diff --git a/admin-web/src/views/stock/scrap/itemScrapping/edit.vue b/admin-web/src/views/stock/scrap/itemScrapping/edit.vue
index 5fda39f..fb35d81 100644
--- a/admin-web/src/views/stock/scrap/itemScrapping/edit.vue
+++ b/admin-web/src/views/stock/scrap/itemScrapping/edit.vue
@@ -108,8 +108,8 @@
v-model="goodsItem.modelsIds"
multiple
clearable
- :placeholder="goodsItem.baseCategoryId?'璇烽�夋嫨瑙勬牸鍨嬪彿':'璇峰厛閫夋嫨鐗╁搧鍚嶇О'"
- :disabled="!goodsItem.baseCategoryId"
+ :placeholder="goodsItem.baseGoodsTemplateId?'璇烽�夋嫨瑙勬牸鍨嬪彿':'璇峰厛閫夋嫨鐗╁搧鍚嶇О'"
+ :disabled="!goodsItem.baseGoodsTemplateId"
@change="modelChange($event, goodsIndex)"
@remove-tag="modelRemoveTag($event, goodsIndex)"
@clear="modelRemoveTag(-1, goodsIndex)"
diff --git a/admin-web/src/views/stock/transfer/transferApplication/edit.vue b/admin-web/src/views/stock/transfer/transferApplication/edit.vue
index a61c829..0fd2f9f 100644
--- a/admin-web/src/views/stock/transfer/transferApplication/edit.vue
+++ b/admin-web/src/views/stock/transfer/transferApplication/edit.vue
@@ -96,8 +96,8 @@
v-model="goodsItem.modelsIds"
multiple
clearable
- :placeholder="goodsItem.baseCategoryId?'璇烽�夋嫨瑙勬牸鍨嬪彿':'璇峰厛閫夋嫨鐗╁搧鍚嶇О'"
- :disabled="!goodsItem.baseCategoryId"
+ :placeholder="goodsItem.baseGoodsTemplateId?'璇烽�夋嫨瑙勬牸鍨嬪彿':'璇峰厛閫夋嫨鐗╁搧鍚嶇О'"
+ :disabled="!goodsItem.baseGoodsTemplateId"
@change="modelChange($event, goodsIndex)"
@remove-tag="modelRemoveTag($event, goodsIndex)"
@clear="modelRemoveTag(-1, goodsIndex)"
--
Gitblit v1.9.1