From cf6a4b874aed82592eea78294715c7c688f9b248 Mon Sep 17 00:00:00 2001 From: songshankun <songshankun@foxmail.com> Date: 星期五, 03 十一月 2023 14:50:31 +0800 Subject: [PATCH] Merge branch 'dev' into songshankun/add-token --- 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