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