element ui中 :summary-method=“getSummaries“的使用与注释

这段代码展示了如何在HTML的el-table组件中利用JavaScript计算表格数据的汇总,并在表格下方显示合计行。通过遍历columns和data,对数值型列进行求和,对非数值型列显示'N/A',最后将结果返回。模板插槽用于格式化单价和总价,显示带有货币符号的值。
JS部分

getSummaries(param){
        const { columns, data } = param;
        const sums = [];
        columns.forEach((column, index) => {
          if (index === 0) {//只找第一列放合计
            sums[index] = '合计:';
            return;
          }
          const values = data.map(item => Number(item[column.property]));//把对应一列中的之全部取出,放到一个数组中
          if (!values.every(value => isNaN(value))) {//如果el-table-column中没有prop属性,这里的column.property是undefined,所以判断一下values数组是否为空
            sums[index] = values.reduce((prev, curr) => {
              console.log(prev, curr);
              const value = Number(curr);//将values中的每个值转换为number类型
              if (!isNaN(value)) {
                return prev + curr;
              } else {
                return prev;
              }
            }, 0);
            sums[index] += '元';
          } else {
            sums[index] = 'N/A';
          }
        });
        return sums;
    }

Html部分

<el-table :data="goodsDate" show-summary :summary-method="getSummaries"  ref="" stripe size="small">
<el-table-column header-align="center" align="left" prop="goodsName" :show-overflow-tooltip="true" label="商品名称"></el-table-column>
         <el-table-column header-align="center" prop="goodsPrice" align="center" label="单价" width="150">
           <template slot-scope="scope">
             <span>¥{{scope.row.goodsPrice | MoneyFormat}}</span>
           </template>
         </el-table-column>
         <el-table-column header-align="center" prop="goodsNum" align="center" label="数量" width="150">
           <template slot-scope="scope">
             <span>{{scope.row.goodsNum}}</span>
           </template>
         </el-table-column>
         <el-table-column header-align="center" prop="goodsAllPrice" align="center" label="总价" width="150">
           <template slot-scope="scope">
             <span>¥{{scope.row.goodsAllPrice | MoneyFormat}}</span>
           </template>
         </el-table-column>
</el-table>

效果图:

from selenium import webdriver from selenium.webdriver.edge.service import Service as EdgeService from selenium.webdriver.edge.options import Options as EdgeOptions from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import time def fetch_book_details(): # 设置Edge浏览器选项 edge_options = EdgeOptions() edge_options.add_argument(“–start-maximized”) # 初始化Edge浏览器 service = EdgeService() # 如果Edge驱动不是默认路径,可以指定完整路径 driver = webdriver.Edge(service=service, options=edge_options) try: target_url = "https://www.ptpress.com.cn/" driver.get(target_url) # 设置隐式等待,确保页面元素有足够时间加载 driver.implicitly_wait(10) # 确保页面完全加载 WebDriverWait(driver, 20).until( EC.visibility_of_element_located((By.XPATH, '//div[@id="newBook"]/div/div[2]/span')) ) # 获取当前分类 category_tab = driver.find_element(By.XPATH, '//div[@id="newBook"]/div/div[2]/span') print(f"当前分类: {category_tab.text}") category_tab.click() # 确保分类切换完成 WebDriverWait(driver, 20).until( EC.visibility_of_element_located((By.XPATH, '//*[@id="newBook"]/div/div[3]//a')) ) # 获取所有书籍链接 book_links = [link.get_attribute("href") for link in driver.find_elements(By.XPATH, '//*[@id="newBook"]/div/div[3]//a')] print(f"找到 {len(book_links)} 本书籍链接") book_data = [] for idx, link in enumerate(book_links, 1): try: # 访问书籍详情页 driver.get(link) # 确保书籍详情页完全加载 WebDriverWait(driver, 30).until( EC.visibility_of_element_located((By.CLASS_NAME, "book-name")) ) # 添加额外的短暂停顿,确保页面完全加载 time.sleep(2) # 获取书籍详细信息 book_info = { "书名": driver.find_element(By.CLASS_NAME, "book-name").text.strip(), "作者": driver.find_element(By.CLASS_NAME, "book-author").text.strip(), "价格": driver.find_element(By.CLASS_NAME, "price").text.strip() } print(f"已获取书籍 {idx} 信息: {book_info}") book_data.append(book_info) except Exception as e: print(f"处理书籍 {idx} 时出错: {e}") return book_data finally: driver.quit() if name == “main”: print(“开始爬取人民邮电出版社新书信息…”) books = fetch_book_details() if books: print("\n成功获取以下书籍信息:") for idx, book in enumerate(books, 1): print(f"\n书籍 {idx}:") for key, value in book.items(): print(f"{key}: {value}") else: print("未获取到任何书籍信息") 按照图片要求修改代码
05-30
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值