From cabafcce20d0ae702449957dba99fd7d4d32e5f6 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期五, 22 三月 2024 18:07:24 +0800
Subject: [PATCH] 概述模块的出库保存报错的问题修改+出库产品信息增加调入位置的选择
---
src/views/warehouseManage/bussinessType/AddBussinessType.vue | 374 +++++++++++++++++++++++++++++++++++-----------------
1 files changed, 250 insertions(+), 124 deletions(-)
diff --git a/src/views/warehouseManage/bussinessType/AddBussinessType.vue b/src/views/warehouseManage/bussinessType/AddBussinessType.vue
index 102d20b..b3d2827 100644
--- a/src/views/warehouseManage/bussinessType/AddBussinessType.vue
+++ b/src/views/warehouseManage/bussinessType/AddBussinessType.vue
@@ -17,6 +17,7 @@
<span class="btn" style="margin-left: 15px">
<i class="el-icon-s-tools"></i>
<span>鍔ㄤ綔</span>
+ <!-- <el-button plain size="mini" style="margin-left: 15px" @click="deleteClick">鍒犻櫎</el-button> -->
</span>
<el-button v-if="showEdit" plain size="mini" style="margin-left: 15px" @click="editClick">缂栬緫</el-button>
</div>
@@ -26,79 +27,65 @@
ref="form"
:model="editConfig.infomation"
:rules="rules"
- label-position="left"
- label-width="110px"
+ label-position="right"
+ label-width="120px"
size="mini"
- style="height: 60vh; overflow-x: hidden"
>
<div class="basic-info">
<!-- <FormBtnsView :showProduct="true" @productClick="productClick" /> -->
<div class="basic-info-view">
- <el-row>
- <el-col :span="24">
- <div style="margin-left: 20px">鍏ュ簱绫诲瀷</div>
- <el-form-item label="" prop="client_name" label-width="20px">
+ <div class="purchase-view">
+ <div class="left">
+ <el-form-item label="鍗曟嵁绫诲瀷" prop="name">
<el-input
- v-model="editConfig.infomation.client_name"
- placeholder=""
+ v-model="editConfig.infomation.name"
+ placeholder="璇峰~鍐�"
:disabled="!showFooter"
- style="width: 85%"
+ style="width: 100%"
></el-input>
</el-form-item>
- </el-col>
- </el-row>
- <div class="purchase-view">
- <div class="left" style="margin-left: 20px">
- <el-form-item label="浣滀笟绫诲瀷" prop="operate_type" :label-width="labelWidth">
+ <el-form-item label="浣滀笟绫诲瀷" prop="baseOperationType">
<el-select
- v-model="editConfig.infomation.operate_type"
+ v-model="editConfig.infomation.baseOperationType"
placeholder="璇烽�夋嫨"
size="mini"
- style="width: 85%"
+ style="width: 100%"
:disabled="!showFooter"
>
- <el-option v-for="item in operateTypeOptions" :key="item" :label="item" :value="item"> </el-option>
+ <el-option v-for="item in baseOperationTypeList" :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
</el-select>
</el-form-item>
- <el-form-item label="搴忓彿鍓嶇紑" prop="client_name" :label-width="labelWidth">
- <el-input
- v-model="editConfig.infomation.client_name"
- placeholder=""
- :disabled="!showFooter"
- style="width: 85%"
- ></el-input>
- </el-form-item>
- <el-form-item label="浠撳簱" prop="client_name" :label-width="labelWidth">
+ <el-form-item label="榛樿婧愪綅缃�" prop="defaultLocationSrcId">
<el-select
- v-model="editConfig.infomation.memberId"
- multiple
+ v-model="editConfig.infomation.defaultLocationSrcId"
placeholder="璇烽�夋嫨"
size="mini"
- style="width: 85%"
+ style="width: 100%"
:disabled="!showFooter"
>
- <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
+ <el-option v-for="item in positionlist" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item
- v-if="editConfig.infomation.operate_type !== '鏀惰揣'"
- label="淇濈暀鏂瑰紡"
- prop="resource"
- :label-width="labelWidth"
+ v-if="editConfig.infomation.baseOperationType !== 1"
+ label="榛樿鐩殑浣嶇疆"
+ prop="defaultLocationDestId"
>
- <el-radio-group
- v-model="editConfig.infomation.resource"
- @input="reserveMethodClick"
+ <el-select
+ v-model="editConfig.infomation.defaultLocationDestId"
+ placeholder="璇烽�夋嫨"
+ size="mini"
+ style="width: 100%"
:disabled="!showFooter"
>
- <div style="margin-top: 8px"><el-radio label="纭鏃�"></el-radio></div>
- <div style="margin-top: 10px"><el-radio label="鎵嬪伐"></el-radio></div>
- <div style="margin-top: 10px"><el-radio label="鍦ㄩ瀹氭棩鏈熶箣鍓�"></el-radio></div>
- </el-radio-group>
+ <el-option v-for="item in positionlist" :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
+ </el-select>
</el-form-item>
- <el-form-item
- v-if="editConfig.infomation.operate_type !== '鏀惰揣'"
+ <!-- <el-form-item
+ v-if="editConfig.infomation.resource == '鍦ㄩ瀹氭棩鏈熶箣鍓�'"
label="鍦ㄩ瀹氭棩鏈熷墠棰勫畾"
prop="client_name"
:label-width="labelWidth"
@@ -109,91 +96,107 @@
:disabled="!showFooter"
style="width: 85%"
></el-input>
- </el-form-item>
+ </el-form-item> -->
</div>
<div class="right">
- <el-form-item label="閫�璐х被鍨�" prop="client_name">
- <el-select
- v-model="editConfig.infomation.memberId"
- multiple
- placeholder="璇烽�夋嫨"
- size="mini"
- style="width: 85%"
+ <el-form-item label="搴忓彿鍓嶇紑" prop="prefix">
+ <el-input
+ v-model="editConfig.infomation.prefix"
+ placeholder=""
:disabled="!showFooter"
- >
- <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鍒涘缓娆犲崟" prop="client_name">
- <el-select
- v-model="editConfig.infomation.memberId"
- multiple
- placeholder="璇烽�夋嫨"
- size="mini"
- style="width: 85%"
- :disabled="!showFooter"
- >
- <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鏄剧ず浣滀笟璇︽儏" prop="showDetail">
- <el-checkbox v-model="editConfig.infomation.showDetail"></el-checkbox>
+ style="width: 100%"
+ ></el-input>
</el-form-item>
<el-form-item
- v-if="editConfig.infomation.operate_type === '鏀惰揣'"
- label="棰勫~鍐欎綔涓氳鎯�"
- prop="showDetail"
+ v-if="editConfig.infomation.baseOperationType !== 1"
+ label="淇濈暀鏂瑰紡"
+ prop="reservationMethod"
>
- <el-checkbox v-model="editConfig.infomation.showDetail"></el-checkbox>
+ <el-radio-group v-model="editConfig.infomation.reservationMethod" :disabled="!showFooter">
+ <el-radio v-for="item in reservationMethodList" :key="item.id" :value="item.id" :label="item.id"
+ >{{ item.name }}
+ </el-radio>
+ </el-radio-group>
</el-form-item>
- </div>
- </div>
- <!-- <el-col :span="24">
-
- </el-col> -->
- </div>
- <div class="bottom">
- <div class="purchase-view">
- <div class="left">
- <div class="second-label">浣嶇疆</div>
- <el-form-item label="榛樿婧愪綅缃�" prop="client_name" style="margin-left: 20px">
+ <el-form-item label="浠撳簱" prop="warehouseId">
<el-select
- v-model="editConfig.infomation.memberId"
- multiple
+ v-model="editConfig.infomation.warehouseId"
placeholder="璇烽�夋嫨"
size="mini"
- style="width: 85%"
+ style="width: 100%"
:disabled="!showFooter"
>
- <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
+ <el-option v-for="item in warehouseList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
- <el-form-item label="榛樿鐩殑浣嶇疆" prop="client_name" style="margin-left: 20px">
+ <el-form-item
+ v-if="editConfig.infomation.baseOperationType === 1"
+ label="榛樿鐩殑浣嶇疆"
+ prop="defaultLocationDestId"
+ >
<el-select
- v-model="editConfig.infomation.memberId"
- multiple
+ v-model="editConfig.infomation.defaultLocationDestId"
placeholder="璇烽�夋嫨"
size="mini"
- style="width: 85%"
+ style="width: 100%"
:disabled="!showFooter"
>
- <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
+ <el-option v-for="item in positionlist" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
+ <!-- <el-form-item
+ v-if="editConfig.infomation.baseOperationType"
+ label="閫�璐х被鍨�"
+ prop="returnOperationTypeID"
+ >
+ <el-select
+ v-model="editConfig.infomation.returnOperationTypeID"
+ placeholder="璇烽�夋嫨"
+ size="mini"
+ style="width: 100%"
+ :disabled="!showFooter"
+ >
+ <el-option
+ v-for="item in returnOperationTypeList"
+ :key="item.id"
+ :label="item.username"
+ :value="item.id"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鍒涘缓娆犲崟" prop="createBackorder">
+ <el-select
+ v-model="editConfig.infomation.createBackorder"
+ placeholder="璇烽�夋嫨"
+ size="mini"
+ style="width: 100%"
+ :disabled="!showFooter"
+ >
+ <el-option v-for="item in createBackorderList" :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鏄剧ず浣滀笟璇︽儏" prop="showOperations">
+ <el-checkbox v-model="editConfig.infomation.showOperations" :disabled="!showFooter"></el-checkbox>
+ </el-form-item>
+ <el-form-item
+ v-if="editConfig.infomation.baseOperationType === 1"
+ label="棰勫~鍐欎綔涓氳鎯�"
+ prop="earlyOperations"
+ >
+ <el-checkbox v-model="editConfig.infomation.earlyOperations" :disabled="!showFooter"></el-checkbox>
+ </el-form-item> -->
</div>
- <div class="right"></div>
</div>
</div>
</div>
</el-form>
<!-- 灏� -->
- <div v-if="showFooter" slot="footer" class="dialog-footer">
- <!-- <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆苟鎻愪氦瀹℃壒</el-button> -->
- <el-button type="primary" size="small" @click="saveClick('form')">淇濆瓨</el-button>
+ <div slot="footer" class="dialog-footer">
+ <el-button type="primary" size="small" @click="saveClick('form')" :disabled="!showFooter">淇濆瓨</el-button>
<el-button size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
</div>
</el-dialog>
@@ -201,6 +204,14 @@
</template>
<script>
+import {
+ addOperationType,
+ updateOperationType,
+ getWarehouseList,
+ deleteOperationType,
+ getLocationList
+} from "@/api/warehouseManage/warehouse"
+import { getDataByType } from "@/api/data"
export default {
name: "AddBussinessType",
props: {
@@ -222,29 +233,68 @@
dialogWidth: "50%",
editConfig: this.editCommonConfig,
rules: {
- client_name: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }],
- number: [{ required: true, message: "璇疯緭鍏ラ��娆惧崟缂栧彿", trigger: "blur" }],
- refundDate: [{ required: true, message: "璇烽�夋嫨閫�娆炬棩鏈�", trigger: "change" }],
- memberId: [{ required: true, message: "璇烽�夋嫨閿�鍞礋璐d汉", trigger: "change" }],
- sale_return_nunber: [{ required: true, message: "璇烽�夋嫨閿�鍞��璐у崟", trigger: "change" }]
+ // 涓氬姟绫诲瀷
+ name: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
+ // 鍓嶇紑
+ prefix: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
+ baseOperationType: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
},
- memberOptions: [],
- operateTypeOptions: ["鏀惰揣", "鍙戣揣", "鍐呴儴璋冩嫧"], // 鎿嶄綔绫诲瀷
+ // 浣嶇疆
+ locationList: [],
+ warehouseList: [],
+ // 閫�璐х被鍨�
+ returnOperationTypeList: [],
+ // 浣滀笟绫诲瀷
+ baseOperationTypeList: getDataByType("baseOperationType"),
+ // 鍒涘缓娆犲崟
+ createBackorderList: getDataByType("createBackorder"),
+ // 淇濈暀鏂瑰紡
+ reservationMethodList: getDataByType("reservationMethod"),
showButton: true,
showEdit: false, // 鏄惁鏄剧ず缂栬緫鎸夐挳
isDelClick: false, // 鍒犻櫎鎸夐挳鏄惁鍙偣鍑�
showFooter: false, // 鏄惁鏄剧ず鍙栨秷淇濆瓨
- labelWidth: "80px"
+ labelWidth: "90px",
+ positionlist: []
}
},
created() {
+ this.getList()
this.setBottonView()
},
methods: {
+ // 浠撳簱
+ async getWarehouse() {
+ await getLocationList({
+ keyword: "",
+ page: 0,
+ pageSize: 0
+ }).then((res) => {
+ if (res.code === 200) {
+ this.positionlist = res.data ? res.data : []
+ this.$forceUpdate()
+ }
+ })
+ await getWarehouseList({
+ keyword: "",
+ page: 0,
+ pageSize: 0
+ }).then((res) => {
+ if (res.code == 200) {
+ this.warehouseList = res.data ? res.data : []
+ }
+ })
+ },
+ getList() {
+ this.getWarehouse()
+ },
// 璁剧疆鍒犻櫎/鎵撳嵃/缂栬緫鏄惁鏄剧ず
setBottonView() {
if (this.editConfig.title === "鏂板缓") {
this.showButton = false
+ this.showEdit = false
+ this.showFooter = true
+ } else if (this.editConfig.title === "缂栬緫") {
this.showEdit = false
this.showFooter = true
} else {
@@ -256,28 +306,102 @@
handleClose() {
this.editConfig.visible = false
},
+ // 鍒櫎
+ deleteClick() {
+ let data = JSON.parse(JSON.stringify(this.editConfig.infomation))
+ deleteOperationType({ id: data.id }).then((res) => {
+ if (res.code === 200) {
+ this.editConfig.visible = false
+ this.$message.success("鍒櫎鎴愬姛!")
+ this.$emit("refresh")
+ } else {
+ this.$message.warning(res.msg ? res.msg : "鍒犻櫎澶辫触!")
+ }
+ })
+ },
// 缂栬緫
editClick() {
this.showEdit = false
this.showButton = false
this.showFooter = true
},
+ saveParams() {
+ let data = JSON.parse(JSON.stringify(this.editConfig.infomation))
+
+ let params = {
+ // 涓氬姟绫诲瀷
+ name: data.name,
+ // 鍓嶇紑
+ prefix: data.prefix,
+ // 浣滀笟绫诲瀷
+ baseOperationType: data.baseOperationType,
+ // 閫�璐х被鍨�
+ returnOperationTypeID: data.returnOperationTypeID,
+ // 鍒涘缓娆犲崟
+ createBackorder: data.createBackorder,
+ // 浠撳簱
+ warehouseId: data.warehouseId,
+ // 鏄剧ず浣滀笟璇︽儏
+ showOperations: data.showOperations ? data.showOperations : false,
+ earlyOperations: data.earlyOperations,
+ // 淇濈暀鏂瑰紡
+ reservationMethod: data.reservationMethod ? data.reservationMethod : 0,
+ // 榛樿鍘熶綅缃�
+ defaultLocationSrcId: data.defaultLocationSrcId,
+ // 榛樿鐩爣浣嶇疆
+ defaultLocationDestId: data.defaultLocationDestId
+ }
+ if (data.id) {
+ params.id = data.id
+ }
+ return params
+ },
// 淇濆瓨
- saveClick() {},
+ saveClick(formName) {
+ this.$refs[formName].validate((valid) => {
+ if (valid) {
+ const params = this.saveParams()
+ if (this.editConfig.title === "鏂板缓") {
+ addOperationType(params).then((res) => {
+ if (res.code === 200) {
+ this.editConfig.visible = false
+ this.$message.success("娣诲姞鎴愬姛!")
+ this.$emit("refresh")
+ } else {
+ this.$message.warning(res.msg ? res.msg : "娣诲姞澶辫触!")
+ }
+ })
+ } else {
+ updateOperationType(params).then((res) => {
+ if (res.code === 200) {
+ this.editConfig.visible = false
+ this.$message.success("缂栬緫鎴愬姛!")
+ this.$emit("refresh")
+ } else {
+ this.$message.warning(res.msg ? res.msg : "缂栬緫澶辫触!")
+ }
+ })
+ }
+ } else {
+ console.log("error submit")
+ return false
+ }
+ })
+ },
// 鍒犻櫎
delClick() {},
// 浜у搧
productClick() {
this.$router.push({ path: "/productManage/productList", query: { name: "浜у搧" } })
- },
- // 淇濈暀鏂瑰紡
- reserveMethodClick(val) {
- if (val === "鍦ㄩ瀹氭棩鏈熶箣鍓�") {
- this.labelWidth = "140px"
- } else {
- this.labelWidth = "80px"
- }
}
+ // 淇濈暀鏂瑰紡
+ // reserveMethodClick(val) {
+ // if (val === "鍦ㄩ瀹氭棩鏈熶箣鍓�") {
+ // this.labelWidth = "140px"
+ // } else {
+ // this.labelWidth = "80px"
+ // }
+ // }
}
}
</script>
@@ -304,13 +428,15 @@
border-bottom: 1px solid #e9e9e9;
}
.basic-info {
- height: calc(100% - 80px);
- overflow: auto;
- margin: 20px;
- border: 1px solid #dcdfe6;
- box-shadow: inset 0 0 2px #dee2e6;
- -moz-box-shadow: inset 0 0 2px #dee2e6;
- -webkit-box-shadow: inset 0 0 2px #dee2e6;
+ // height: 350px;
+ // overflow-y: auto;
+ // overflow-x: hidden;
+ width: calc(100% - 60px);
+ margin: 30px;
+ // border: 1px solid #dcdfe6;
+ // box-shadow: inset 0 0 2px #dee2e6;
+ // -moz-box-shadow: inset 0 0 2px #dee2e6;
+ // -webkit-box-shadow: inset 0 0 2px #dee2e6;
.content-number {
display: flex;
justify-content: right;
--
Gitblit v1.8.0