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 | 239 +++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 189 insertions(+), 50 deletions(-)
diff --git a/src/views/productManage/productCategory/AddProductCategoryDialog.vue b/src/views/productManage/productCategory/AddProductCategoryDialog.vue
index 32c5b96..9de00eb 100644
--- a/src/views/productManage/productCategory/AddProductCategoryDialog.vue
+++ b/src/views/productManage/productCategory/AddProductCategoryDialog.vue
@@ -17,6 +17,13 @@
<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,47 +33,66 @@
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">
- <div style="margin-left: 20px">绫诲埆</div>
- <el-form-item label="" prop="client_name" label-width="20px">
+ <!-- <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
- v-model="editConfig.infomation.client_name"
+ v-model="editConfig.infomation.name"
placeholder=""
:disabled="!showFooter"
style="width: 85%"
></el-input>
</el-form-item>
- </el-col>
- <el-col :span="24">
- <el-form-item label="涓婄骇鍝佺被" prop="client_name" 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.memberId"
+ v-model="editConfig.infomation.parentId"
placeholder="璇烽�夋嫨"
size="mini"
style="width: 45%"
:disabled="!showFooter"
>
- <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :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>
- <el-form-item label="璺嚎" prop="client_name" style="margin-left: 20px">
+ <!-- <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"
multiple
@@ -78,46 +104,53 @@
<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" style="margin-left: 20px">
+ </el-form-item> -->
+ <el-form-item label="寮哄埗涓嬫灦绛栫暐" prop="forceRemovalStrategy">
<el-select
- v-model="editConfig.infomation.memberId"
- multiple
+ v-model="editConfig.infomation.forceRemovalStrategy"
placeholder="璇烽�夋嫨"
size="mini"
- style="width: 63%"
+ style="width: 85%"
:disabled="!showFooter"
>
- <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
+ <el-option
+ v-for="item in forceRemovalStrategyList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ >
</el-option>
</el-select>
</el-form-item>
</div>
<div class="right">
- <div class="second-label">搴撳瓨璁′环</div>
- <el-form-item label="鎴愭湰鏂规硶" prop="client_name" style="margin-left: 20px">
+ <!-- <div class="second-label">搴撳瓨璁′环</div> -->
+ <el-form-item label="鎴愭湰鏂规硶" prop="costingMethod">
<el-select
- v-model="editConfig.infomation.memberId"
- multiple
+ v-model="editConfig.infomation.costingMethod"
placeholder="璇烽�夋嫨"
size="mini"
- style="width: 63%"
+ style="width: 85%"
:disabled="!showFooter"
>
- <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :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="client_name" style="margin-left: 20px">
+ <el-form-item label="搴撳瓨璁′环" prop="inventoryValuation">
<el-select
- v-model="editConfig.infomation.memberId"
- multiple
+ v-model="editConfig.infomation.inventoryValuation"
placeholder="璇烽�夋嫨"
size="mini"
- style="width: 63%"
+ style="width: 85%"
:disabled="!showFooter"
>
- <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
+ <el-option
+ v-for="item in inventoryValuationList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ >
</el-option>
</el-select>
</el-form-item>
@@ -127,9 +160,9 @@
</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 type="primary" size="small" @click="saveClick('form')" :disabled="!showFooter">淇濆瓨</el-button>
<el-button size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
</div>
</el-dialog>
@@ -137,6 +170,10 @@
</template>
<script>
+import { addProductCategory, updateProductCategory, deleteProductCategory } from "@/api/product/productCategory"
+
+import { getDataByType } from "@/api/data"
+import {getProductList} from "@/api/product/product";
export default {
name: "AddProductCategoryDialog",
props: {
@@ -149,6 +186,12 @@
infomation: { type: [] }
}
}
+ },
+ productCategoryList: {
+ type: Array,
+ default: () => {
+ return []
+ }
}
},
components: {},
@@ -158,24 +201,47 @@
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" }]
},
+ forceRemovalStrategyList: getDataByType("forceRemovalStrategy"),
+ // 鎴愭湰鏂规硶
+ costingMethodList: getDataByType("costingMethod"),
+ // 搴撳瓨璁′环
+ inventoryValuationList: getDataByType("inventoryValuation"),
memberOptions: [],
paymentTypeListOptions: [],
showButton: true,
showEdit: false, // 鏄惁鏄剧ず缂栬緫鎸夐挳
isDelClick: false, // 鍒犻櫎鎸夐挳鏄惁鍙偣鍑�
- showFooter: false // 鏄惁鏄剧ず鍙栨秷淇濆瓨
+ showFooter: false, // 鏄惁鏄剧ず鍙栨秷淇濆瓨,
+ statisticsMap:{
+ product: 0 // 浜у搧鏁伴噺
+ }
}
},
created() {
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 === "鏂板缓") {
@@ -191,19 +257,87 @@
handleClose() {
this.editConfig.visible = false
},
+ // 鍒櫎
+ deleteClick() {
+ 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")
+ } 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 = {
+ costingMethod: data.costingMethod,
+ forceRemovalStrategy: data.forceRemovalStrategy,
+ inventoryValuation: data.inventoryValuation,
+ name: data.name,
+ parentId: data.parentId
+ }
+ 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 === "鏂板缓") {
+ addProductCategory(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 {
+ updateProductCategory(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: "浜у搧" } })
+ 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
+ }
+ })
+ }
+ })
}
}
}
@@ -234,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%;
@@ -337,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