From 0b9c144b5110a7e2a85b2e5581ef304bb81a3ebc Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 19 九月 2023 19:24:35 +0800
Subject: [PATCH] 修改
---
company_admin/src/components/business/OperaCategoryWindow.vue | 292 ++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 233 insertions(+), 59 deletions(-)
diff --git a/company_admin/src/components/business/OperaCategoryWindow.vue b/company_admin/src/components/business/OperaCategoryWindow.vue
index b08bb82..eff1478 100644
--- a/company_admin/src/components/business/OperaCategoryWindow.vue
+++ b/company_admin/src/components/business/OperaCategoryWindow.vue
@@ -3,9 +3,28 @@
:title="title"
:visible.sync="visible"
:confirm-working="isWorking"
+ width="50%"
@confirm="confirm"
>
+ <el-alert title="濡傛灉浠庡钩鍙伴�夋嫨鍟嗗搧杩涜鐩存挱锛屽缓璁被鍒�夋嫨浠庡钩鍙板簱閫夋嫨锛岀郴缁熷凡鍋氭暟鎹叧鑱旓紱" type="warning" effect="dark" :closable="false"></el-alert>
+ <h3 style="margin: 20px 0 10px 0;">鍩烘湰淇℃伅</h3>
<el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="绫诲埆鏉ユ簮" prop="type">
+ <el-radio-group v-model="form.type" :disabled="form.id ? true : false" @change="changeRadio">
+ <el-radio :label="1">浠庡钩鍙板簱閫夋嫨</el-radio>
+ <el-radio :label="0">浼佷笟鑷缓</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item label="閫夋嫨绫诲埆" prop="platCateId" v-if="form.type == 1">
+ <el-select v-model="form.platCateId" filterable placeholder="璇烽�夋嫨" @change="changeCategory">
+ <el-option
+ v-for="item in categoryList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
<el-form-item label="绫诲埆鍚嶇О" prop="name">
<el-input v-model="form.name" placeholder="璇疯緭鍏ョ被鍒悕绉帮紝涓嶈秴杩�6涓瓧" maxlength="6" v-trim/>
</el-form-item>
@@ -14,7 +33,7 @@
:action="action"
:class="{ hide: hideUpload }"
:file-list="form.fileList"
- :data="{ folder: 'projects' }"
+ :data="{ folder: 'category_img' }"
list-type="picture-card"
:limit="1"
:on-success="fileSuccess"
@@ -23,13 +42,57 @@
<i class="el-icon-plus"></i>
<div slot="tip" class="el-upload__tip">鍙兘涓婁紶鍥剧墖鏍煎紡锛宲ng鏍煎紡锛屽缓璁昂瀵�120*120px</div>
</el-upload>
- <!-- <el-input v-model="form.imgurl" placeholder="璇疯緭鍏ュ浘鏍�" v-trim/> -->
</el-form-item>
<el-form-item label="鎺掑簭鐮�(鍗囧簭)" prop="sortnum">
<el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
</el-form-item>
- <el-form-item label="绛涢�夊睘鎬�1鍚嶇О" prop="attrFirst">
+ <div style="margin: 20px 0 10px 0; height: 30px; display: flex; justify-content: space-between;">
+ <h3 style="display: flex; align-items: flex-end;">鍙傛暟灞炴�ч厤缃�<h6 style="margin-left: 10px;">閰嶇疆褰撳墠绫诲埆鐨勪骇鍝佸弬鏁板悕</h6></h3>
+ <el-button style="display: inline-block;" type="primary" v-if="form.type == 0" @click="addItem">+ 鏂板</el-button>
+ </div>
+ <el-table
+ :data="form.tableData"
+ border
+ style="width: 100%">
+ <el-table-column label="鍙傛暟鍚�">
+ <template slot-scope="scope">
+ <el-input v-model="scope.row.name" placeholder="璇疯緭鍏ュ悕绉�"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="璁剧疆涓洪�夐」">
+ <template slot-scope="scope">
+ <el-switch
+ v-model="scope.row.isselect"
+ active-color="#13ce66"
+ inactive-color="#ff4949"
+ @change="changeIsselect($event, scope.row)"
+ :active-value="1"
+ :inactive-value="0">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column label="鏄惁鏄剧ず">
+ <template slot-scope="scope">
+ <el-switch
+ v-model="scope.row.isshow"
+ active-color="#13ce66"
+ inactive-color="#ff4949"
+ :active-value="1"
+ :inactive-value="0">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" v-if="form.type == 0">
+ <template slot-scope="scope">
+ <el-button
+ size="mini"
+ type="danger"
+ @click="handleDelete(scope.$index)">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <!-- <el-form-item label="绛涢�夊睘鎬�1鍚嶇О" prop="attrFirst">
<el-input v-model="form.attrFirst" maxlength="6" placeholder="璇疯緭鍏ョ瓫閫夊睘鎬у悕绉帮紝涓嶈秴杩�6涓瓧" v-trim/>
</el-form-item>
<el-form-item label="绛涢�夊睘鎬�1鐨勫��" prop="attrFirst">
@@ -53,8 +116,9 @@
<div style="display: flex; align-items: center; flex-wrap: wrap;">
<el-tag style="margin-right: 10px; margin-top: 10px;" @close="close(index, 3)" closable v-for="(item, index) in form.paramList" :key="index">{{ item.name }}</el-tag>
</div>
- </el-form-item>
+ </el-form-item> -->
+ <h3 style="margin: 20px 0 10px 0; display: flex; align-items: flex-end;">棰勭畻鍖洪棿閰嶇疆<h6 style="margin-left: 10px;">閰嶇疆褰撳墠绫诲埆鐨勯绠楀尯闂寸瓫閫夊�硷紝涓婇檺鍜屼笅闄愪笉鑳藉悓鏃朵负绌�</h6></h3>
<el-form-item label="棰勭畻鍖洪棿" prop="attrSecond">
<div style="display: flex; align-items: center; margin-bottom: 10px;" v-for="(item, index) in form.budgetList" :key="index">
<el-input v-model="item.minamount" type="number" @input="changeInput(1, index)" placeholder="涓嬮檺" v-trim/>
@@ -71,31 +135,35 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
- import { create, updateById } from '@/api/business/category.js'
+ import { baseCategoryList, companyCreate, companyUpdateById } from '@/api/business/category.js'
export default {
name: 'OperaCategoryWindow',
extends: BaseOpera,
components: { GlobalWindow },
data () {
return {
- action: process.env.VUE_APP_API_PREFIX + '/public/uploadLocal',
+ action: process.env.VUE_APP_API_PREFIX + '/public/upload',
hideUpload: false,
+ categoryList: [],
// 琛ㄥ崟鏁版嵁
form: {
id: null,
+ type: 1,
+ platCateId: '',
name: '',
- attrFirst: '',
- attrFirst1: '',
- attrFirstList: [],
- attrSecond: '',
- attrSecond1: '',
- attrSecondList: [],
+ // attrFirst: '',
+ // attrFirst1: '',
+ // attrFirstList: [],
+ // attrSecond: '',
+ // attrSecond1: '',
+ // attrSecondList: [],
sortnum: '',
- parameter: '',
+ // parameter: '',
paramList: [],
imgurl: '',
+ tableData: [],
budgetList: [
{
maxamount: '',
@@ -103,7 +171,7 @@
}
],
fileList: [],
- attributeValueOne: []
+ // attributeValueOne: []
},
// 楠岃瘉瑙勫垯
rules: {
@@ -121,6 +189,103 @@
})
},
methods: {
+ changeIsselect(e, item) {
+ let num = 0
+ this.form.tableData.forEach(row => {
+ if (row.isselect === 1) {
+ num += 1
+ }
+ })
+ if (num > 2) {
+ item.isselect = 0
+ this.$message.warning({ message: '鍙兘璁剧疆涓や釜閫夐」' })
+ }
+ },
+ addItem() {
+ this.form.tableData.push({ name: '', isselect: 0, isshow: 1 })
+ },
+ handleDelete(index) {
+ this.form.tableData.splice(index, 1)
+ },
+ changeRadio(e) {
+ this.form.name = ''
+ this.form.platCateId = ''
+ this.form.sortnum = ''
+ this.form.tableData = []
+ this.form.imgurl = ''
+ this.form.fileList = []
+ this.form.budgetList = [{
+ maxamount: '',
+ minamount: ''
+ }]
+ },
+ confirm() {
+ this.$refs.form.validate((valid) => {
+ if (!valid) return
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ if (!this.form.id) {
+ companyCreate({
+ paramList: this.form.tableData,
+ type: this.form.type,
+ sortnum: this.form.sortnum,
+ platCateId: this.form.platCateId,
+ name: this.form.name,
+ imgurl: this.form.imgurl,
+ budgetList: this.form.budgetList
+ })
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鏂板缓鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ } else {
+ companyUpdateById({
+ id: this.form.id,
+ paramList: this.form.tableData,
+ type: this.form.type,
+ sortnum: this.form.sortnum,
+ platCateId: this.form.platCateId,
+ name: this.form.name,
+ imgurl: this.form.imgurl,
+ budgetList: this.form.budgetList
+ })
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('缂栬緫鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ }
+ })
+ },
+ // 鍒囨崲鍒嗙被
+ changeCategory(id) {
+ this.categoryList.forEach(item => {
+ if (item.id === id) {
+ this.form.name = item.name
+ this.form.sortnum = item.sortnum
+ let arr = []
+ item.baseCateParamList.forEach((row, index) => {
+ arr.push({ name: row.name, baseCateParamId: row.id, isselect: 0, isshow: 1 })
+ })
+ this.form.tableData = arr
+ this.form.imgurl = item.imgurl
+ this.form.fileList = [{ url: item.imgfullurl }]
+ }
+ })
+ },
changeInput(type, index) {
if (type === 1) {
if (!this.form.budgetList[index].minamount) return
@@ -147,42 +312,42 @@
message: '鍙兘涓婁紶涓�涓浘鏍�'
})
},
- confirm() {
- this.$refs.form.validate((valid) => {
- if (valid) {
- this.isWorking = true
- if (!this.form.id) {
- create(this.form)
- .then(() => {
- this.visible = false
- this.$tip.apiSuccess('鏂板缓鎴愬姛')
- this.$emit('success')
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking = false
- })
- } else {
- updateById(this.form)
- .then(() => {
- this.visible = false
- this.$tip.apiSuccess('缂栬緫鎴愬姛')
- this.$emit('success')
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking = false
- })
- }
- } else {
- return false;
- }
- });
- },
+ // confirm() {
+ // this.$refs.form.validate((valid) => {
+ // if (valid) {
+ // this.isWorking = true
+ // if (!this.form.id) {
+ // create(this.form)
+ // .then(() => {
+ // this.visible = false
+ // this.$tip.apiSuccess('鏂板缓鎴愬姛')
+ // this.$emit('success')
+ // })
+ // .catch(e => {
+ // this.$tip.apiFailed(e)
+ // })
+ // .finally(() => {
+ // this.isWorking = false
+ // })
+ // } else {
+ // updateById(this.form)
+ // .then(() => {
+ // this.visible = false
+ // this.$tip.apiSuccess('缂栬緫鎴愬姛')
+ // this.$emit('success')
+ // })
+ // .catch(e => {
+ // this.$tip.apiFailed(e)
+ // })
+ // .finally(() => {
+ // this.isWorking = false
+ // })
+ // }
+ // } else {
+ // return false;
+ // }
+ // });
+ // },
close(index, type) {
if (type === 1) {
this.form.attrFirstList.splice(index, 1)
@@ -230,15 +395,18 @@
this.form = {
id: null,
name: '',
- attrFirst: '',
- attrFirst1: '',
- attrFirstList: [],
- attrSecond: '',
- attrSecond1: '',
- attrSecondList: [],
+ type: 1,
+ platCateId: '',
+ tableData: [],
+ // attrFirst: '',
+ // attrFirst1: '',
+ // attrFirstList: [],
+ // attrSecond: '',
+ // attrSecond1: '',
+ // attrSecondList: [],
sortnum: '',
- parameter: '',
- paramList: [],
+ // parameter: '',
+ // paramList: [],
imgurl: '',
budgetList: [
{
@@ -247,8 +415,14 @@
}
],
fileList: [],
- attributeValueOne: []
+ // attributeValueOne: []
}
+ } else {
+ // 鑾峰彇鍒嗙被鍒楄〃
+ baseCategoryList({})
+ .then(res => {
+ this.categoryList = res
+ })
}
}
}
--
Gitblit v1.9.3