From dcdb0231034810232f2542f3865666ebf72daf11 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 30 四月 2025 16:45:34 +0800
Subject: [PATCH] sf
---
platform/src/views/business/goods.vue | 144 +++++++++++++++++++----------------------------
1 files changed, 59 insertions(+), 85 deletions(-)
diff --git a/platform/src/views/business/goods.vue b/platform/src/views/business/goods.vue
index 64023b5..dcc2e33 100644
--- a/platform/src/views/business/goods.vue
+++ b/platform/src/views/business/goods.vue
@@ -1,6 +1,6 @@
<template>
- <TableLayout :permissions="['business:goods:query']">
+ <TableLayout :permissions="['business:basegoods:query']">
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
<el-form-item label="鍟嗗搧鍚嶇О" prop="name">
@@ -37,18 +37,26 @@
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:goods:create', 'business:goods:delete']">
- <li><el-button type="primary" @click="$refs.operaGoodsWindow.open('鏂板缓鍟嗗搧')" icon="el-icon-plus"
- v-permissions="['business:goods:create']">鏂板缓</el-button></li>
+ <ul class="toolbar" v-permissions="['business:basegoods:create', 'business:basegoods:delete']">
+ <li v-permissions="['business:basegoods:create']">
+ <el-button type="primary" @click="$refs.operaGoodsWindow.open('鏂板缓鍟嗗搧')" icon="el-icon-plus">鏂板缓</el-button>
+ </li>
<!-- <el-button type="primary" :loading="isWorking.export"
@click="$refs.selectProduct.open('閫夋嫨骞冲彴鍟嗗搧')">閫夋嫨骞冲彴鍟嗗搧</el-button> -->
- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:goods:exportExcel']"
- @click="importFile">瀵煎叆</el-button>
- <el-button type="primary" :loading="isWorking.export" @click="downloadFile">涓嬭浇妯℃澘</el-button>
-
- <el-button type="primary" :loading="isWorking.export" @click="bulkOperation(0)">鎵归噺涓婃灦</el-button>
- <el-button type="primary" :loading="isWorking.export" @click="bulkOperation(1)">鎵归噺涓嬫灦</el-button>
- <!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:goods:delete']">鍒犻櫎</el-button></li> -->
+ <li v-permissions="['business:basegoods:exportExcel', 'business:goods:delete']">
+ <ImportButton text="瀵煎叆" template-name="goods_import_modle.xlsx"
+ template-path="/template/goods_import_modle.xlsx" action="/business/baseGoods/importExcel"
+ @success="search" />
+ </li>
+ <li>
+ <el-button type="primary" :loading="isWorking.export" @click="bulkOperation(0)">鎵归噺涓婃灦</el-button>
+ </li>
+ <li>
+ <el-button type="primary" :loading="isWorking.export" @click="bulkOperation(1)">鎵归噺涓嬫灦</el-button>
+ </li>
+ <li v-permissions="['business:goods:delete']">
+ <el-button type="danger" @click="deleteByIdInBatch">鎵归噺鍒犻櫎</el-button>
+ </li>
</ul>
<el-table v-loading="isWorking.search" :data="tableData.list" stripe border :header-cell-style="rowStyle"
:cell-style="rowStyle" @selection-change="handleSelectionChange">
@@ -68,26 +76,26 @@
<el-table-column prop="brandName" label="鍝佺墝" min-width="100px"></el-table-column>
<el-table-column prop="categoryName" label="绫诲埆" min-width="100px"></el-table-column>
<el-table-column prop="zdPrice" label="鎸囧浠凤紙鍏冿級" min-width="100px"></el-table-column>
- <el-table-column prop="price" label="閲囪喘浠�(鍏�)" min-width="100px"></el-table-column>
+ <el-table-column prop="jdPrice" label="閲囪喘浠�(鍏�)" min-width="100px"></el-table-column>
+ <el-table-column prop="price" label="閿�鍞环(鍏�)" min-width="100px"></el-table-column>
<el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="status" label="鐘舵��" min-width="100px">
+ <el-table-column prop="status" v-if="containPermissions(['business:basegoods:update'])" label="鐘舵��" min-width="100px">
<template slot-scope="{row}">
<el-switch v-model="row.status" @change="changeStatus(row)" active-color="#13ce66" inactive-color="#ff4949"
:active-value="0" :inactive-value="1">
</el-switch>
</template>
</el-table-column>
- <el-table-column v-if="containPermissions(['business:goods:update', 'business:goods:delete'])" label="鎿嶄綔"
+ <el-table-column v-if="containPermissions(['business:basegoods:update', 'business:basegoods:delete'])" label="鎿嶄綔"
min-width="120" fixed="right">
<template slot-scope="{row}">
<el-button type="text" @click="edit(row.id)" icon="el-icon-edit"
- v-permissions="['business:goods:update']">缂栬緫</el-button>
+ v-permissions="['business:basegoods:update']">缂栬緫</el-button>
<el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
- v-permissions="['business:goods:delete']">鍒犻櫎</el-button>
+ v-permissions="['business:basegoods:delete']">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
- <input type="file" ref="upload" style="display: none;" @change="uplaodFile" />
<pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
</pagination>
</template>
@@ -104,12 +112,13 @@
import Pagination from '@/components/common/Pagination'
import OperaGoodsWindow from '@/components/business/OperaGoodsWindow'
import selectProduct from '@/components/business/selectProduct'
-import { brand, baseCategory, importExcel } from '@/api/system/common.js'
-import { updateStatusById, queryById, exportDoc, batchUpdateDisableById } from '@/api/business/goods.js'
+import ImportButton from '@/components/common/ImportButton'
+import { brand, baseCategory } from '@/api/system/common.js'
+import { updateStatus, queryById, exportDoc } from '@/api/business/goods.js'
export default {
name: 'Goods',
extends: BaseTable,
- components: { TableLayout, Pagination, OperaGoodsWindow, selectProduct },
+ components: { TableLayout, Pagination, OperaGoodsWindow, selectProduct, ImportButton },
data() {
return {
// 鎼滅储
@@ -121,12 +130,19 @@
brandId: ''
},
ids: '',
+ idList: [],
categoryList: [],
brandList: [],
statusList: [
{ name: '鍚敤', id: 0 },
{ name: '绂佺敤', id: 1 }
]
+ }
+ },
+ provide() {
+ return {
+ brandList: () => this.brandList,
+ categoryList: () => this.categoryList
}
},
created() {
@@ -141,23 +157,25 @@
this.getcategory()
},
methods: {
- handleSelectionChange(e) {
- let arr = e.map(item => item.id)
- this.ids = arr.join(',')
- console.log(this.ids)
- },
+ // handleSelectionChange(e) {
+ // let arr = e.map(item => item.id)
+ // this.ids = arr.join(',')
+ // this.idList = arr;
+ // },
// 鎵归噺涓婁笅鏋�
bulkOperation(type) {
- if (!this.ids) {
- this.$message.warning({ message: '鑷冲皯閫夋嫨涓�椤瑰唴瀹�' })
+ if (this.tableData.selectedRows.length === 0) {
+ this.$tip.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�')
return
}
- batchUpdateDisableById({
- ids: this.ids,
+ let idList = this.tableData.selectedRows.map(item => item.id)
+ updateStatus({
+ idList,
status: type
}).then(res => {
- this.$message.success({ message: res })
- this.search()
+ this.$tip.apiSuccess('鎿嶄綔鎴愬姛');
+ // this.$message.success({ message:res.message })
+ this.handlePageChange()
})
},
downloadFile() {
@@ -172,72 +190,28 @@
rowStyle() {
return "text-align:center";
},
- importFile() {
- this.$refs.upload.click()
- },
- uplaodFile(e) {
- const FORMDATE = new FormData()
- FORMDATE.append('file', e.target.files[0])
- // 璇锋眰鎺ュ彛
- importExcel(FORMDATE)
- .then(res => {
- console.log(res)
- this.search()
- })
- .catch((err) => {
- this.$message.error(err.message)
- })
- this.$refs.upload.value = null
- },
edit(id) {
queryById(id)
.then(res => {
- let obj = {
- id: res.id,
- name: res.name,
- categoryId: res.categoryId,
- brandId: res.brandId,
- zdPrice: res.zdPrice,
- price: res.price,
- attrFirstIds: res.attrFirstIds ? this.turnNum(res.attrFirstIds.split(',')) : [],
- attrFirstNames: res.attrFirstNames,
- attrSecodIds: res.attrSecodIds ? this.turnNum(res.attrSecodIds.split(',')) : [],
- attrSecodNames: res.attrSecodNames,
- imgurl: res.imgurl,
- multifileList: [],
- files: [],
- ztList: res.imgurl ? [{ url: res.prefixUrl + res.imgurl }] : [],
- pzList: [],
- attrFirstList: [],
- attrSecodList: []
- }
- if (res.multifileList.length > 0) {
- res.multifileList.forEach(item => {
- obj.multifileList.push({ fileurl: item.fileurl, name: item.name, url: res.prefixUrl + item.fileurl })
- obj.files.push({ fileurl: item.fileurl, name: item.name, url: res.prefixUrl + item.fileurl })
- })
- }
- this.$refs.operaGoodsWindow.open('缂栬緫鍟嗗搧', obj)
+ this.$refs.operaGoodsWindow.open('缂栬緫鍟嗗搧', res)
})
},
changeStatus(item) {
- updateDisableById({
- id: item.id,
+ updateStatus({
+ idList: [item.id],
status: item.status
}).then(res => {
this.$tip.apiSuccess('鏇存柊鎴愬姛')
- }).finally(() => {
- // this.search()
+ })
+ .catch (err => {
+ this.$message.error(err)
+ } )
+ .finally(() => {
+ this.handlePageChange()
})
},
- turnNum(nums) {
- for (let i = 0; i < nums.length; i++) {
- nums[i] = parseInt(nums[i])
- }
- return nums;
- },
getbrand() {
- brand({type:1})
+ brand({ type: 1 })
.then(res => {
this.brandList = res
})
--
Gitblit v1.9.3