mirror of
				https://gitee.com/hhyykk/ipms-sjy-ui.git
				synced 2025-11-04 12:18:43 +08:00 
			
		
		
		
	Merge branch 'dev-to-dev' of https://gitee.com/puhui999/yudao-ui-admin-vue3 into dev
Conflicts: src/views/mall/product/spu/index.vue
This commit is contained in:
		@@ -86,7 +86,7 @@ export const deleteSpu = (id: number) => {
 | 
				
			|||||||
  return request.delete({ url: `/product/spu/delete?id=${id}` })
 | 
					  return request.delete({ url: `/product/spu/delete?id=${id}` })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 导出商品 Spu
 | 
					// 导出商品 Spu Excel
 | 
				
			||||||
export const exportUser = (params) => {
 | 
					export const exportSpu = async (params) => {
 | 
				
			||||||
  return request.download({ url: '/product/spu/export', params })
 | 
					  return await request.download({ url: '/product/spu/export', params })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -51,11 +51,21 @@
 | 
				
			|||||||
          <Icon class="mr-5px" icon="ep:refresh" />
 | 
					          <Icon class="mr-5px" icon="ep:refresh" />
 | 
				
			||||||
          重置
 | 
					          重置
 | 
				
			||||||
        </el-button>
 | 
					        </el-button>
 | 
				
			||||||
        <el-button v-hasPermi="['product:brand:create']" plain type="primary" @click="openForm">
 | 
					        <el-button v-hasPermi="['product:spu:create']" plain type="primary" @click="openForm">
 | 
				
			||||||
          <Icon class="mr-5px" icon="ep:plus" />
 | 
					          <Icon class="mr-5px" icon="ep:plus" />
 | 
				
			||||||
          新增
 | 
					          新增
 | 
				
			||||||
        </el-button>
 | 
					        </el-button>
 | 
				
			||||||
        <!-- TODO @puhui999:增加一个【导出】操作 -->
 | 
					        <!-- TODO @puhui999:增加一个【导出】操作 -->
 | 
				
			||||||
 | 
					        <el-button
 | 
				
			||||||
 | 
					          v-hasPermi="['product:spu:export']"
 | 
				
			||||||
 | 
					          :loading="exportLoading"
 | 
				
			||||||
 | 
					          plain
 | 
				
			||||||
 | 
					          type="success"
 | 
				
			||||||
 | 
					          @click="handleExport"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          <Icon class="mr-5px" icon="ep:download" />
 | 
				
			||||||
 | 
					          导出
 | 
				
			||||||
 | 
					        </el-button>
 | 
				
			||||||
      </el-form-item>
 | 
					      </el-form-item>
 | 
				
			||||||
    </el-form>
 | 
					    </el-form>
 | 
				
			||||||
  </ContentWrap>
 | 
					  </ContentWrap>
 | 
				
			||||||
@@ -195,15 +205,17 @@ import { createImageViewer } from '@/components/ImageViewer'
 | 
				
			|||||||
import { dateFormatter } from '@/utils/formatTime'
 | 
					import { dateFormatter } from '@/utils/formatTime'
 | 
				
			||||||
import { defaultProps, handleTree } from '@/utils/tree'
 | 
					import { defaultProps, handleTree } from '@/utils/tree'
 | 
				
			||||||
import { ProductSpuStatusEnum } from '@/utils/constants'
 | 
					import { ProductSpuStatusEnum } from '@/utils/constants'
 | 
				
			||||||
 | 
					import { formatToFraction } from '@/utils'
 | 
				
			||||||
 | 
					import download from '@/utils/download'
 | 
				
			||||||
import * as ProductSpuApi from '@/api/mall/product/spu'
 | 
					import * as ProductSpuApi from '@/api/mall/product/spu'
 | 
				
			||||||
import * as ProductCategoryApi from '@/api/mall/product/category'
 | 
					import * as ProductCategoryApi from '@/api/mall/product/category'
 | 
				
			||||||
import { formatToFraction } from '@/utils'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const message = useMessage() // 消息弹窗
 | 
					const message = useMessage() // 消息弹窗
 | 
				
			||||||
const { t } = useI18n() // 国际化
 | 
					const { t } = useI18n() // 国际化
 | 
				
			||||||
const { currentRoute, push } = useRouter() // 路由跳转
 | 
					const { currentRoute, push } = useRouter() // 路由跳转
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const loading = ref(false) // 列表的加载中
 | 
					const loading = ref(false) // 列表的加载中
 | 
				
			||||||
 | 
					const exportLoading = ref(false) // 导出的加载中
 | 
				
			||||||
const total = ref(0) // 列表的总页数
 | 
					const total = ref(0) // 列表的总页数
 | 
				
			||||||
const list = ref<any[]>([]) // 列表的数据
 | 
					const list = ref<any[]>([]) // 列表的数据
 | 
				
			||||||
// tabs 数据
 | 
					// tabs 数据
 | 
				
			||||||
@@ -365,7 +377,22 @@ const openDetail = () => {
 | 
				
			|||||||
  message.alert('查看详情未完善!!!')
 | 
					  message.alert('查看详情未完善!!!')
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 监听路由变化更新列表,解决商品保存后,列表不刷新的问题。
 | 
					/** 导出按钮操作 */
 | 
				
			||||||
 | 
					const handleExport = async () => {
 | 
				
			||||||
 | 
					  try {
 | 
				
			||||||
 | 
					    // 导出的二次确认
 | 
				
			||||||
 | 
					    await message.exportConfirm()
 | 
				
			||||||
 | 
					    // 发起导出
 | 
				
			||||||
 | 
					    exportLoading.value = true
 | 
				
			||||||
 | 
					    const data = await ProductSpuApi.exportSpu(queryParams)
 | 
				
			||||||
 | 
					    download.excel(data, '商品spu.xls')
 | 
				
			||||||
 | 
					  } catch {
 | 
				
			||||||
 | 
					  } finally {
 | 
				
			||||||
 | 
					    exportLoading.value = false
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 监听路由变化更新列表 TODO @puhui999:这个是必须加的么?fix: 因为编辑表单是以路由的方式打开,保存表单后列表不会刷新
 | 
				
			||||||
watch(
 | 
					watch(
 | 
				
			||||||
  () => currentRoute.value,
 | 
					  () => currentRoute.value,
 | 
				
			||||||
  () => {
 | 
					  () => {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user