From 718a51c732a9e932447ccf1c70fc69f2af5d10e0 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期三, 18 十月 2023 19:49:55 +0800
Subject: [PATCH] 位置类型,上级位置除添加可以编辑,其他时候多不可
---
src/views/productManage/productCategory/AddProductCategoryDialog.vue | 275 +++++++++++++++++++++++++++++--------------------------
1 files changed, 145 insertions(+), 130 deletions(-)
diff --git a/src/views/productManage/productCategory/AddProductCategoryDialog.vue b/src/views/productManage/productCategory/AddProductCategoryDialog.vue
index afa9934..9de00eb 100644
--- a/src/views/productManage/productCategory/AddProductCategoryDialog.vue
+++ b/src/views/productManage/productCategory/AddProductCategoryDialog.vue
@@ -15,22 +15,17 @@
<span>鎵撳嵃</span>
</span> -->
<span class="btn" style="margin-left: 15px">
- <el-button
+ <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
- >
+ <el-button v-if="showEdit" plain size="mini" style="margin-left: 15px" @click="editClick">缂栬緫</el-button>
</div>
</div>
<!-- 鍐呭 -->
@@ -38,16 +33,15 @@
ref="form"
:model="editConfig.infomation"
:rules="rules"
- label-position="left"
+ label-position="right"
label-width="110px"
size="mini"
- style="height: 60vh; overflow-x: hidden"
>
<div class="basic-info">
- <FormBtnsView :showProduct="true" @productClick="productClick" />
+ <FormBtnsView :showProduct="true" :countObject="statisticsMap" @productClick="productClick" />
<div class="basic-info-view">
- <el-row>
- <el-col :span="24">
+ <!-- <el-row> -->
+ <!-- <el-col :span="24">
<div style="margin-left: 20px"><span class="color_F56C6C">*</span>绫诲埆</div>
<el-form-item label="" prop="name" label-width="20px">
<el-input
@@ -57,13 +51,9 @@
style="width: 85%"
></el-input>
</el-form-item>
- </el-col>
- <el-col :span="24">
- <el-form-item
- label="涓婄骇鍝佺被"
- prop="parentId"
- style="margin-left: 20px"
- >
+ </el-col> -->
+ <!-- <el-col :span="24">
+ <el-form-item label="涓婄骇鍝佺被" prop="parentId" style="margin-left: 20px">
<el-select
v-model="editConfig.infomation.parentId"
placeholder="璇烽�夋嫨"
@@ -71,22 +61,37 @@
style="width: 45%"
:disabled="!showFooter"
>
- <el-option
- v-for="item in productCategoryList"
- :key="item.id"
- :label="item.name"
- :value="item.id"
- >
+ <el-option v-for="item in productCategoryList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
- </el-row>
+ </el-row> -->
</div>
<div class="bottom">
<div class="purchase-view">
<div class="left">
- <div class="second-label">鐗╂祦</div>
+ <!-- <div class="second-label">鐗╂祦</div> -->
+ <el-form-item label="绫诲埆" prop="name">
+ <el-input
+ v-model="editConfig.infomation.name"
+ placeholder=""
+ :disabled="!showFooter"
+ style="width: 85%"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="涓婄骇鍝佺被" prop="parentId">
+ <el-select
+ v-model="editConfig.infomation.parentId"
+ placeholder="璇烽�夋嫨"
+ size="mini"
+ style="width: 85%"
+ :disabled="!showFooter"
+ >
+ <el-option v-for="item in productCategoryList" :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-select
v-model="editConfig.infomation.memberId"
@@ -100,16 +105,12 @@
</el-option>
</el-select>
</el-form-item> -->
- <el-form-item
- label="寮哄埗涓嬫灦绛栫暐"
- prop="forceRemovalStrategy"
- style="margin-left: 20px"
- >
+ <el-form-item label="寮哄埗涓嬫灦绛栫暐" prop="forceRemovalStrategy">
<el-select
v-model="editConfig.infomation.forceRemovalStrategy"
placeholder="璇烽�夋嫨"
size="mini"
- style="width: 63%"
+ style="width: 85%"
:disabled="!showFooter"
>
<el-option
@@ -123,38 +124,25 @@
</el-form-item>
</div>
<div class="right">
- <div class="second-label">搴撳瓨璁′环</div>
- <el-form-item
- label="鎴愭湰鏂规硶"
- prop="costingMethod"
- style="margin-left: 20px"
- >
+ <!-- <div class="second-label">搴撳瓨璁′环</div> -->
+ <el-form-item label="鎴愭湰鏂规硶" prop="costingMethod">
<el-select
v-model="editConfig.infomation.costingMethod"
placeholder="璇烽�夋嫨"
size="mini"
- style="width: 63%"
+ style="width: 85%"
:disabled="!showFooter"
>
- <el-option
- v-for="item in costingMethodList"
- :key="item.id"
- :label="item.name"
- :value="item.id"
- >
+ <el-option v-for="item in costingMethodList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
- <el-form-item
- label="搴撳瓨璁′环"
- prop="inventoryValuation"
- style="margin-left: 20px"
- >
+ <el-form-item label="搴撳瓨璁′环" prop="inventoryValuation">
<el-select
v-model="editConfig.infomation.inventoryValuation"
placeholder="璇烽�夋嫨"
size="mini"
- style="width: 63%"
+ style="width: 85%"
:disabled="!showFooter"
>
<el-option
@@ -172,27 +160,20 @@
</div>
</el-form>
<!-- 灏� -->
- <div v-if="showFooter" slot="footer" class="dialog-footer">
+ <div 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
- >
- <el-button size="small" @click="editConfig.visible = false"
- >鍙栨秷</el-button
- >
+ <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>
</div>
</template>
<script>
-import {
- addProductCategory,
- updateProductCategory,
- deleteProductCategory,
-} from "@/api/product/productCategory";
+import { addProductCategory, updateProductCategory, deleteProductCategory } from "@/api/product/productCategory"
-import { getDataByType } from "@/api/data";
+import { getDataByType } from "@/api/data"
+import {getProductList} from "@/api/product/product";
export default {
name: "AddProductCategoryDialog",
props: {
@@ -202,16 +183,16 @@
return {
visible: false,
title: "鏂板缓",
- infomation: { type: [] },
- };
- },
+ infomation: { type: [] }
+ }
+ }
},
productCategoryList: {
type: Array,
default: () => {
- return [];
- },
- },
+ return []
+ }
+ }
},
components: {},
computed: {},
@@ -220,7 +201,7 @@
dialogWidth: "50%",
editConfig: this.editCommonConfig,
rules: {
- name: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
+ name: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }]
},
forceRemovalStrategyList: getDataByType("forceRemovalStrategy"),
// 鎴愭湰鏂规硶
@@ -232,105 +213,134 @@
showButton: true,
showEdit: false, // 鏄惁鏄剧ず缂栬緫鎸夐挳
isDelClick: false, // 鍒犻櫎鎸夐挳鏄惁鍙偣鍑�
- showFooter: false, // 鏄惁鏄剧ず鍙栨秷淇濆瓨
- };
+ showFooter: false, // 鏄惁鏄剧ず鍙栨秷淇濆瓨,
+ statisticsMap:{
+ product: 0 // 浜у搧鏁伴噺
+ }
+ }
},
created() {
- this.setBottonView();
+ this.setBottonView()
+ this.getProductCount()
},
methods: {
+ // 鑾峰彇浜у搧鏁伴噺
+ getProductCount(){
+ getProductList({
+ keyWord: '',
+ categoryId: this.editConfig.title === "鏂板缓" ? null : this.editConfig.infomation.id,
+ page: 1,
+ pageSize: 1
+ }).then((res) => {
+ if (res.code === 200) {
+ this.statisticsMap.product = res?.total ?? 0
+ }else{
+ this.statisticsMap.product = 0
+ }
+ }).catch(err=>{
+ console.error(err)
+ this.statisticsMap.product = 0
+ })
+ },
// 璁剧疆鍒犻櫎/鎵撳嵃/缂栬緫鏄惁鏄剧ず
setBottonView() {
if (this.editConfig.title === "鏂板缓") {
- this.showButton = false;
- this.showEdit = false;
- this.showFooter = true;
+ this.showButton = false
+ this.showEdit = false
+ this.showFooter = true
} else {
- this.showEdit = true;
- this.showFooter = false;
+ this.showEdit = true
+ this.showFooter = false
}
},
// 鍏抽棴
handleClose() {
- this.editConfig.visible = false;
+ this.editConfig.visible = false
},
// 鍒櫎
deleteClick() {
- let data = JSON.parse(JSON.stringify(this.editConfig.infomation));
+ let data = JSON.parse(JSON.stringify(this.editConfig.infomation))
deleteProductCategory({ id: data.id }).then((res) => {
if (res.code === 200) {
- this.editConfig.visible = false;
- this.$message.success("鍒櫎鎴愬姛!");
- this.$emit("refresh");
+ this.editConfig.visible = false
+ this.$message.success("鍒櫎鎴愬姛!")
+ this.$emit("refresh")
} else {
- this.$message.warning(res.msg?res.msg:"鍒犻櫎澶辫触!")
- }
- });
+ this.$message.warning(res.msg ? res.msg : "鍒犻櫎澶辫触!")
+ }
+ })
},
// 缂栬緫
editClick() {
- this.showEdit = false;
- this.showButton = false;
- this.showFooter = true;
+ this.showEdit = false
+ this.showButton = false
+ this.showFooter = true
},
saveParams() {
- let data = JSON.parse(JSON.stringify(this.editConfig.infomation));
+ let data = JSON.parse(JSON.stringify(this.editConfig.infomation))
let params = {
costingMethod: data.costingMethod,
forceRemovalStrategy: data.forceRemovalStrategy,
inventoryValuation: data.inventoryValuation,
name: data.name,
- parentId: data.parentId,
- };
- if (data.id) {
- params.id = data.id;
+ parentId: data.parentId
}
- return params;
+ if (data.id) {
+ params.id = data.id
+ }
+ return params
},
// 淇濆瓨
saveClick(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
- const params = this.saveParams();
+ const params = this.saveParams()
if (this.editConfig.title === "鏂板缓") {
addProductCategory(params).then((res) => {
if (res.code === 200) {
- this.editConfig.visible = false;
- this.$message.success("娣诲姞鎴愬姛!");
- this.$emit("refresh");
+ this.editConfig.visible = false
+ this.$message.success("娣诲姞鎴愬姛!")
+ this.$emit("refresh")
} else {
- this.$message.warning(res.msg?res.msg:"娣诲姞澶辫触!")
- }
- });
+ this.$message.warning(res.msg ? res.msg : "娣诲姞澶辫触!")
+ }
+ })
} else {
updateProductCategory(params).then((res) => {
if (res.code === 200) {
- this.editConfig.visible = false;
- this.$message.success("缂栬緫鎴愬姛!");
- this.$emit("refresh");
+ this.editConfig.visible = false
+ this.$message.success("缂栬緫鎴愬姛!")
+ this.$emit("refresh")
} else {
- this.$message.warning(res.msg?res.msg:"缂栬緫澶辫触!")
- }
- });
+ this.$message.warning(res.msg ? res.msg : "缂栬緫澶辫触!")
+ }
+ })
}
} else {
- console.log("error submit");
- return false;
+ console.log("error submit")
+ return false
}
- });
+ })
},
// 鍒犻櫎
delClick() {},
// 浜у搧
productClick() {
- this.$router.push({
- path: "/productManage/productList",
- query: { name: "浜у搧" },
- });
- },
- },
-};
+ this.$refs.form.validate((valid) => {
+ if (valid) {
+ this.$router.push({
+ path: "/productManage/product",
+ query: {
+ categoryName: this.editConfig.infomation.name,
+ id: this.editConfig.title === "鏂板缓" ? "" : this.editConfig.infomation.id
+ }
+ })
+ }
+ })
+ }
+ }
+}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
@@ -358,15 +368,15 @@
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;
+ // 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;
height: 44px;
- border-bottom: 1px solid #e9e9e9;
+ // border-bottom: 1px solid #e9e9e9;
font-size: 13px;
.sub-number {
width: 12.5%;
@@ -461,13 +471,18 @@
color: #333;
}
}
- .el-tabs--card > .el-tabs__header .el-tabs__nav {
- margin-left: 20px;
+ .el-tabs--card > .el-tabs__header {
+ border-bottom: none;
+ }
+ .el-tabs__item.is-active {
+ color: #fff;
+ background: #2a78fb;
}
.el-tabs__item {
height: 30px;
line-height: 30px;
font-size: 13px;
+ background: #f3f3f3;
}
}
</style>
--
Gitblit v1.8.0