From 40fc2783a9c4b102ca298fb91aa1e04614405af8 Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期一, 18 九月 2023 14:49:27 +0800 Subject: [PATCH] 仓库管理 仓库和位置 新建和编辑的前端开发 --- src/views/warehouseManage/position/AddDialog.vue | 363 +++++++++++++++++++++++++++++++++++++++++++++ src/components/makepager/FormBtnsView.vue | 2 src/views/warehouseManage/position/index.vue | 6 src/views/warehouseManage/warehouse/AddDialog.vue | 76 +++++--- 4 files changed, 412 insertions(+), 35 deletions(-) diff --git a/src/components/makepager/FormBtnsView.vue b/src/components/makepager/FormBtnsView.vue index cc75469..c223bb0 100644 --- a/src/components/makepager/FormBtnsView.vue +++ b/src/components/makepager/FormBtnsView.vue @@ -49,7 +49,7 @@ </div> </div> <div v-if="!showWarehouse" class="sub-number"> - <div class="left"><i class="el-icon-help"></i></div> + <div class="left"><i class="el-icon-refresh"></i></div> <div class="right"> <div class="right-one">涓婃灦瑙勫垯</div> </div> diff --git a/src/views/warehouseManage/position/AddDialog.vue b/src/views/warehouseManage/position/AddDialog.vue new file mode 100644 index 0000000..8eb8bc8 --- /dev/null +++ b/src/views/warehouseManage/position/AddDialog.vue @@ -0,0 +1,363 @@ +<template> + <div class="add-common"> + <el-dialog + :title="editCommonConfig.title + '浣嶇疆'" + :visible.sync="editConfig.visible" + :width="dialogWidth" + :before-close="handleClose" + > + <!-- 澶� --> + <div slot="title" class="dialog-header"> + <span>{{ editCommonConfig.title + "浣嶇疆" }}</span> + <div class="header_btns"> + <span class="btn"> + <i class="el-icon-printer"></i> + <span>鎵撳嵃</span> + </span> + <span class="btn" style="margin-left: 15px"> + <i class="el-icon-s-tools"></i> + <span>鍔ㄤ綔</span> + </span> + <el-button v-if="showEdit" plain size="mini" style="margin-left: 15px" @click="editClick">缂栬緫</el-button> + </div> + </div> + <!-- 鍐呭 --> + <el-form + ref="form" + :model="editConfig.infomation" + :rules="rules" + label-position="left" + label-width="110px" + size="mini" + style="height: 60vh; overflow-x: hidden" + > + <div> + <!-- <div>aaa</div> --> + <FormBtnsView :showPosition="true" :showWarehouse=false @productClick="productClick" /> + </div> + <div class="basic-info"> + <div class="basic-info-view"> + + <el-row> + <el-col :span="24" class="line_height_30px"> + <el-form-item label="浣嶇疆鍚嶇О" prop="client_name"> + <el-input + :disabled="showEdit" + v-model="editConfig.infomation.inspectionScale" + placeholder="璇疯緭鍏�" + ></el-input> + </el-form-item> + </el-col> + <el-col :span="24"> + <el-form-item label="涓婄骇浣嶇疆" prop="client_name"> + <el-input + :disabled="showEdit" + v-model="editConfig.infomation.inspectionScale" + placeholder="璇疯緭鍏�" + ></el-input> + </el-form-item> + </el-col> + </el-row> + </div> + <div class="bottom"> + <div class="left"> + <div class="second-label">鍏朵粬淇℃伅</div> + <el-form-item label="浣嶇疆绫诲瀷" prop="desc"> + <el-select + v-model="editConfig.value1" + filterable + :disabled="showEdit" + clearable + placeholder="璇烽�夋嫨" + style="width: 100%" + no-data-text="鏆傛棤鏁版嵁" + > + <el-option + v-for="item in wareList" + :key="item.id" + :label="item.name" + :value="item.id" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="鏄竴涓姤搴熶綅缃�" prop="desc"> + <el-checkbox + :disabled="showEdit" + v-model="editConfig.value2" + > + </el-checkbox> + </el-form-item> + <el-form-item label="鏄竴涓��鍥炰綅缃�" prop="desc"> + <el-checkbox + :disabled="showEdit" + v-model="editConfig.value2" + > + </el-checkbox> + </el-form-item> + <el-form-item label="琛ュ厖浣嶇疆" prop="desc"> + <el-checkbox + :disabled="showEdit" + v-model="editConfig.value2" + > + </el-checkbox> + </el-form-item> + </div> + <div class="left"> + <div class="second-label">寰幆璁℃暟</div> + <el-form-item label="鐩樼偣棰戠巼锛堝ぉ锛�" prop="desc"> + <el-input + :disabled="showEdit" + v-model="editConfig.infomation.inspectionScale" + placeholder="璇疯緭鍏�" + ></el-input> + </el-form-item> + <el-form-item label="鏈�杩戞湁鏁堢洏鐐�" prop="desc"> + <el-input + :disabled="showEdit" + v-model="editConfig.infomation.inspectionScale" + placeholder="璇疯緭鍏�" + ></el-input> + </el-form-item> + <el-form-item label="棰勮涓嬩竴娆$洏鐐�" prop="desc"> + <el-input + :disabled="showEdit" + v-model="editConfig.infomation.inspectionScale" + placeholder="璇疯緭鍏�" + ></el-input> + </el-form-item> + </div> + </div> + <div class="bottom"> + <div class="left"> + <div class="second-label">鐗╂祦</div> + <el-form-item label="涓嬭浇绛栫暐" prop="desc"> + <el-select + v-model="editConfig.value1" + filterable + :disabled="showEdit" + clearable + placeholder="璇烽�夋嫨" + style="width: 100%" + no-data-text="鏆傛棤鏁版嵁" + > + <el-option + v-for="item in wareList" + :key="item.id" + :label="item.name" + :value="item.id" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="澶栭儴澶囨敞" prop="desc"> + <el-input + :disabled="showEdit" + type="textarea" + :autosize="{ minRows: 3, maxRows: 4 }" + maxlength="500" + clearable + v-model="editConfig.value1" + ></el-input> + </el-form-item> + </div> + </div> + </div> + </el-form> + <!-- 灏� --> + <div v-if="showFooter" slot="footer" class="dialog-footer"> + <el-button size="small" @click="editConfig.visible = false">鍙栨秷</el-button> + <el-button type="primary" size="small" @click="saveClick('form')">淇濆瓨</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +export default { + name: "AddScrapDialog", + props: { + editCommonConfig: { + type: Object, + default: () => { + return { + visible: false, + title: "鏂板缓", + infomation: {} + } + } + } + }, + components: {}, + computed: {}, + data() { + return { + dialogWidth: "50%", + editConfig: this.editCommonConfig, + rules: { + + 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" }] + }, + memberOptions: [], + paymentTypeListOptions: [], + showEdit: false, // 鏄惁鏄剧ず缂栬緫鎸夐挳 + showFooter: false, // 鏄惁鏄剧ず鍙栨秷淇濆瓨 + currentState: "todo", // 褰撳墠鐘舵�� + wareList:[ + { + name:'鐩存帴鎺ユ敹浜у搧锛�1姝ユ敹璐э級', + id:1, + disabled:false, + }, + { + name:'鎺ュ埌浜у搧鍒版敹鏂欏尯锛屽啀鍏ュ簱锛�2姝ユ敹璐э級', + id:2, + disabled:true, + }, + { + name:'鎺ユ敹浜у搧鍒版敹鏂欏尯锛屾楠岋紝鐒跺悗鍏ュ簱锛�3姝ユ敹璐э級', + id:3, + disabled:true, + } + ], + wareoutList:[ + { + name:'鐩存帴鍑哄簱锛�1姝ワ級', + id:1, + disabled:false, + }, + { + name:'閫佸埌寰呭嚭搴撳尯锛屽啀閫佽揣锛�2姝ュ彂璐э級', + id:2, + disabled:true, + }, + { + name:'鍖呰浜у搧锛屽彂閫佸埌寰呭嚭搴撳尯锛屽啀閫佽揣锛�3姝ュ彂璐э級', + id:3, + disabled:true, + } + ], + } + }, + created() { + this.setBottonView() + }, + methods: { + // 璺嚎 + productClick() { + + }, + // 璁剧疆鍒犻櫎/鎵撳嵃/缂栬緫鏄惁鏄剧ず + setBottonView() { + if (this.editConfig.title === "鏂板缓") { + this.showEdit = false + this.showFooter = true + } else if (this.editConfig.infomation.status === "瀹屾垚") { + this.showEdit = false + this.showFooter = false + } else { + this.showEdit = true + this.showFooter = false + } + }, + // 鍏抽棴 + handleClose() { + this.editConfig.visible = false + }, + // 缂栬緫 + editClick() { + this.showEdit = false + this.showFooter = true + }, + // 淇濆瓨 + saveClick() {} + } +} +</script> + +<!-- Add "scoped" attribute to limit CSS to this component only --> +<style lang="scss" scoped> +.dialog-header { + display: flex; + align-items: center; + font-size: 14px; + color: #333; + .header_btns { + margin-left: auto; + margin-right: 60px; + .btn { + cursor: no-drop; + } + } +} +.content-status { + display: flex; +} +.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; + .basic-info-view { + margin-top: 20px; + padding:0 20px; + + } + .bottom{ + display: flex; + margin-left: 20px; + .left { + width: calc(50% - 10px); + margin-right:20px; + } + .right { + width: calc(50% - 10px); + } + .second-label { + + border-bottom: 1px solid #d9d9d9; + margin-bottom: 10px; + } + ::v-deep .el-tabs__content{ + padding: 0 20px; + } + } + +} +.purchase-view { + display: flex; + .left { + width: 50%; + } + .right { + width: 50%; + } +} + +::v-deep { + .el-dialog__headerbtn { + position: absolute; + top: 18px; + } + .el-button { + &:hover { + border: 1px solid #dcdfe6; + color: #333; + } + } + .el-tabs--card > .el-tabs__header .el-tabs__nav { + margin-left: 20px; + } + .el-tabs__item { + height: 30px; + line-height: 30px; + font-size: 13px; + } +} +</style> diff --git a/src/views/warehouseManage/position/index.vue b/src/views/warehouseManage/position/index.vue index eb15f44..fe6eb63 100644 --- a/src/views/warehouseManage/position/index.vue +++ b/src/views/warehouseManage/position/index.vue @@ -23,7 +23,7 @@ </div> </div> <!-- 鏂板缓/缂栬緫 --> - <AddScrapDialog v-if="editConfig.visible" :edit-common-config="editConfig" /> + <AddDialog v-if="editConfig.visible" :edit-common-config="editConfig" /> </div> </template> @@ -31,12 +31,12 @@ import pageMixin from "@/components/makepager/pager/mixin/pageMixin" import { getProductList } from "@/api/product/product" // import DetailProduct from "@/views/productManage/product/DetailProduct" -import AddScrapDialog from "@/views/operate/scrap/AddScrapDialog" +import AddDialog from "@/views/warehouseManage/position/AddDialog" export default { name: "WarehouseView", props: {}, - components: { AddScrapDialog }, + components: { AddDialog }, mixins: [pageMixin], computed: {}, data() { diff --git a/src/views/warehouseManage/warehouse/AddDialog.vue b/src/views/warehouseManage/warehouse/AddDialog.vue index 9377289..b3dd77e 100644 --- a/src/views/warehouseManage/warehouse/AddDialog.vue +++ b/src/views/warehouseManage/warehouse/AddDialog.vue @@ -33,22 +33,38 @@ > <div> <!-- <div>aaa</div> --> - <!-- <StatusCommonView :list="list" showWarehouse="true" /> --> <FormBtnsView :showWarehouse="true" @productClick="productClick" /> </div> <div class="basic-info"> <div class="basic-info-view"> <el-row> - <el-col :span="24" class="line_height_30px">浠撳簱鍚嶇О-warehouse#</el-col> - <el-col :span="12"> - <el-form-item label="缂╁啓" prop="client_name"> - 瀵瑰瀵� + <el-col :span="24" class="line_height_30px"> + <el-form-item label="浠撳簱" prop="client_name"> + <el-input + :disabled="showEdit" + v-model="editConfig.infomation.inspectionScale" + placeholder="璇疯緭鍏�" + ></el-input> </el-form-item> </el-col> - <el-col :span="12"> + <el-col :span="11"> + <el-form-item label="缂╁啓" prop="client_name"> + <el-input + :disabled="showEdit" + v-model="editConfig.infomation.inspectionScale" + placeholder="璇疯緭鍏�" + ></el-input> + </el-form-item> + </el-col> + <el-col :span="2"> </el-col> + <el-col :span="11"> <el-form-item label="鍦板潃" prop="client_name"> - 瀵瑰瀵� + <el-input + :disabled="showEdit" + v-model="editConfig.infomation.inspectionScale" + placeholder="璇疯緭鍏�" + ></el-input> </el-form-item> </el-col> </el-row> @@ -59,22 +75,29 @@ <div class="second-label">杩愯緭</div> <el-form-item label="鍏ュ悜杩愯緭" prop="desc"> <el-radio-group - + :disabled="showEdit" + v-model="editConfig.value1" > - <el-radio style="width:100%;" class="line_height_30px" v-for="(item,index) in wareList" :key='index' :label="item.id">{{item.name}}</el-radio> + <el-radio style="width:100%;" class="line_height_30px" + v-for="(item,index) in wareList" + :key='index' + :disabled="item.disabled" + :label="item.id" + >{{item.name}}</el-radio> </el-radio-group> </el-form-item> <el-form-item label="鍑哄簱杩愯緭" prop="desc"> <el-radio-group - + :disabled="showEdit" + v-model="editConfig.value2" > - <el-radio style="width:100%;" class="line_height_30px" v-for="(item,index) in wareoutList" :key='index' :label="item.id">{{item.name}}</el-radio> + <el-radio style="width:100%;" class="line_height_30px" + v-for="(item,index) in wareoutList" + :key='index' + :disabled="item.disabled" + :label="item.id" + >{{item.name}}</el-radio> </el-radio-group> - </el-form-item> - </el-tab-pane> - <el-tab-pane label="鎶�鏈俊鎭�" name="third"> - <el-form-item label="澶囨敞" prop="desc"> - </el-form-item> </el-tab-pane> </el-tabs> @@ -121,10 +144,6 @@ }, memberOptions: [], paymentTypeListOptions: [], - list: [ - { label: "鑽夌", status: "todo" }, - { label: "瀹屾垚", status: "todo" } - ], showEdit: false, // 鏄惁鏄剧ず缂栬緫鎸夐挳 showFooter: false, // 鏄惁鏄剧ず鍙栨秷淇濆瓨 currentState: "todo", // 褰撳墠鐘舵�� @@ -132,28 +151,34 @@ { name:'鐩存帴鎺ユ敹浜у搧锛�1姝ユ敹璐э級', id:1, + disabled:false, }, { name:'鎺ュ埌浜у搧鍒版敹鏂欏尯锛屽啀鍏ュ簱锛�2姝ユ敹璐э級', id:2, + disabled:true, }, { name:'鎺ユ敹浜у搧鍒版敹鏂欏尯锛屾楠岋紝鐒跺悗鍏ュ簱锛�3姝ユ敹璐э級', id:3, + disabled:true, } ], wareoutList:[ { name:'鐩存帴鍑哄簱锛�1姝ワ級', id:1, + disabled:false, }, { name:'閫佸埌寰呭嚭搴撳尯锛屽啀閫佽揣锛�2姝ュ彂璐э級', id:2, + disabled:true, }, { name:'鍖呰浜у搧锛屽彂閫佸埌寰呭嚭搴撳尯锛屽啀閫佽揣锛�3姝ュ彂璐э級', id:3, + disabled:true, } ], } @@ -177,17 +202,6 @@ } else { this.showEdit = true this.showFooter = false - } - if (this.editConfig.title === "鏂板缓") { - this.list[0].status = "active" - } else { - this.list.map((item) => { - if (item.label === this.editConfig.infomation.status) { - item.status = "active" - } else { - item.status = "todo" - } - }) } }, // 鍏抽棴 -- Gitblit v1.8.0