【全栈】SprintBoot+vue3迷你商城(10)

【全栈】SprintBoot+vue3迷你商城(10)

往期的文章都在这里啦,大家有兴趣可以看一下

后端部分:

【全栈】SprintBoot+vue3迷你商城(1)
【全栈】SprintBoot+vue3迷你商城(2)
【全栈】SprintBoot+vue3迷你商城-扩展:利用python爬虫爬取商品数据
【全栈】SprintBoot+vue3迷你商城(3)
【全栈】SprintBoot+vue3迷你商城(4)
【全栈】SprintBoot+vue3迷你商城(5)
【全栈】SprintBoot+vue3迷你商城(6)

前端部分:

【全栈】SprintBoot+vue3迷你商城-扩展:vue的基本用法

【全栈】SprintBoot+vue3迷你商城-扩展:vue3项目创建及目录介绍

【全栈】SprintBoot+vue3迷你商城(7)

【全栈】SprintBoot+vue3迷你商城(8)

【全栈】SprintBoot+vue3迷你商城(9)

本期我们来写商品详情页面、我的商品页面(限商家)以及添加商品页面(限商家)

文章目录

  • 【全栈】SprintBoot+vue3迷你商城(10)
    • 1.商品详情页面的开发
      • 1.1.搭建页面,绑定数据与函数
      • 1.2.制定与后端接口交互的函数
      • 1.3.效果展示
    • 2.我的商品页面开发
      • 2.1.搭建页面,绑定数据与函数
      • 2.2.制定与后端接口交互的函数
      • 2.3.效果展示
    • 3.添加商品页面的开发
      • 3.1.搭建页面,绑定数据与函数
      • 3.2.制定与后端接口交互的函数
      • 3.3.效果展示
    • 4.总结

1.商品详情页面的开发

1.1.搭建页面,绑定数据与函数

/src/views/goods/GoodsDetail.vue

<script lang="ts" setup>
import { ref } from 'vue'
import {getGoodsDetailService} from '@/api/goods'
import { useRoute } from 'vue-router';
const route = useRoute();
import { useRouter } from 'vue-router';
const router=useRouter();
const activeIndex = ref('0')
const handleSelect = (key: string, keyPath: string[]) => {
    console.log(key, keyPath)
}
const goodsDetailModel=ref({
    goodsName:'',
    goodsImgUrl:'',
    goodsPrice:'',
    merchantName:'',
    merchantImgUrl:''
})
import { useUserInfoStore } from '@/stores/userInfo';
const userInfoStore = useUserInfoStore();
const userInfoModel= ref(userInfoStore.info)

const goodsDetail=async()=>{
    let result= await getGoodsDetailService(route.query.id);
    goodsDetailModel.value.goodsName=result.data.goodsName;
    goodsDetailModel.value.goodsImgUrl=result.data.goodsImgUrl;
    goodsDetailModel.value.goodsPrice=result.data.goodsPrice;
    goodsDetailModel.value.merchantName=result.data.merchantName;
    goodsDetailModel.value.merchantImgUrl=result.data.merchantImgUrl;
}

import {userAddGoodsToCartService} from "@/api/user"
import { ElMessage } from 'element-plus';
const addGoodsToCart=async()=>{
    await userAddGoodsToCartService(route.query.id)
    ElMessage.success('添加成功')
    router.push('/user/cart')
}

goodsDetail()

import { Avatar,  SwitchButton } from '@element-plus/icons-vue';


import { useTokenStore } from '@/stores/token'; 
const tokenStore=useTokenStore();
const showLogoutDialog = ref(false);
const logout = () => {
  ElMessage.success('成功退出登录');
  tokenStore.removeToken();
  router.push('/login'); 
  showLogoutDialog.value = false; 
};

const handleClose = (done) => {
  ElMessage({
    message: '对话框已关闭',
    type: 'warning'
  });
  done();
};
</script>



<template>
    <div class="common-layout">
        <el-container class="bg">
            <el-header>
                <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" :ellipsis="false"
          @select="handleSelect">
          <el-menu-item index="0" @click="router.push('/')">
            <el-icon><ShoppingTrolley /></el-icon>
            <img style="width: 100px" src="@/assets/logo2.jpg" alt="logo" />
          </el-menu-item>
          <span style="font-size: medium;">
              <el-avatar style="margin-top:5px" :src="userInfoModel.userPic"  />
            
            {{ userInfoModel.userType }}:{{ userInfoModel.username }}
          </span>
          <el-menu-item index="1" @click="router.push('/user/info')"><el-icon>
              <Avatar />
            </el-icon>我的</el-menu-item>
          <el-sub-menu index="2">
            <template #title>工具栏</template>
            <el-menu-item v-if="userInfoModel.userType==='商家'" index="2-1" @click="router.push('/user/goods')">我的商品</el-menu-item>
            <el-menu-item index="2-2" @click="router.push('/user/cart')">购物车</el-menu-item>
            <el-menu-item index="2-3" @click="showLogoutDialog = true;">
              <el-icon>
                <SwitchButton />
              </el-icon>
              退出登录
            </el-menu-item>
          </el-sub-menu>
        </el-menu>
        <el-dialog title="确认退出登录" v-model="showLogoutDialog" width="30%" :before-close="handleClose">
              <span>确定要退出登录吗?</span>
              <template #footer>
                <span class="dialog-footer">
                  <el-button @click="showLogoutDialog = false">取消</el-button>
                  <el-button type="primary" @click="logout">确定</el-button>
                </span>
              </template>
            </el-dialog>
            </el-header>
            <el-main>
                <el-card style="max-width: 100%">
                    <template #header>
                        <div class="card-header">
                            <span>
                                <el-icon>
                                    <ShoppingBag />
                                </el-icon>
                                商品
                            </span>
                        </div>
                    </template>

                    <el-row :gutter="20">

                        <el-col :span="12">
                            <div class="grid-content ep-bg-purple" />
                            <img :src="goodsDetailModel.goodsImgUrl"
                                style="width: 80%" />
                        </el-col>
                        <el-col :span="12">
                            <div class="grid-content ep-bg-purple" />
                            <div style="font-size: 30px;margin-bottom: 30px;">{{ goodsDetailModel.goodsName }}</div>
                            商家:
                            <el-avatar style="margin-top:5px"
                                :src="goodsDetailModel.merchantImgUrl" />
                            {{ goodsDetailModel.merchantName }}
                            <div class="price" style="font-size: 50px;">{{ goodsDetailModel.goodsPrice }}¥</div>

                            <el-button type="danger" style="margin-top: 50px;" @click="ElMessage.success('成功购买该商品')">购买</el-button>
                            <el-button type="danger" style="margin-top: 50px;margin-left: 100px;" @click="addGoodsToCart()">添加到购物车</el-button>

                        </el-col>

                    </el-row>




                </el-card>
            </el-main>
        </el-container>
    </div>
    <hr>
    <div style="width: 300px;height: 200px;margin-left: auto;margin-right: auto;">
        <div style="margin-top: 100px;">
            <p style="text-align: center;margin-top: 10px;filter: opacity(50%);font-size: small;">迷你商城,本网站为练习网站。
                本站商品全在淘宝:"https://www.taobao.com"中获取,若对站内商品感兴趣,请到淘宝搜索相关商品并购买</p>
        </div>
    </div>
</template>




<style>
.el-menu--horizontal>.el-menu-item:nth-child(1) {
    margin-right: auto;
}

.bg {
    background-color: pink;
}

.el-menu-demo {
    background-color: coral;
}

.list div {
    display: inline-block;
    width: 300px;
    height: 300px;
}



.el-row {
    margin-bottom: 20px;
}

.el-row:last-child {
    margin-bottom: 0;
}

.el-col {
    border-radius: 4px;
}

.grid-content {
    border-radius: 4px;
    min-height: 36px;
}

.price {
    text-align: end;
    margin-top: 30%;
}
</style>

1.2.制定与后端接口交互的函数

/src/api/goods.js

export const getGoodsDetailService=(id)=>{
    return request.get('/goods/detail?id='+id)
}

1.3.效果展示

在这里插入图片描述

2.我的商品页面开发

2.1.搭建页面,绑定数据与函数

/src/views/user/UserGoods.vue

<script lang="ts" setup>
import { useUserInfoStore } from '@/stores/userInfo';
const userInfoStore = useUserInfoStore();
const userInfoModel= ref(userInfoStore.info)
import { ref } from 'vue'
import { useRouter } from 'vue-router';
const router=useRouter();
const activeIndex = ref('2-1')
const handleSelect = (key: string, keyPath: string[]) => {
  console.log(key, keyPath)
}

import {userGoodsService} from "@/api/user"
const userGoodsList=ref([])
const userGoods=async()=>{
  let result =await userGoodsService();
  userGoodsList.value=result.data;
}
userGoods();


import { ElMessage } from 'element-plus';
import { Avatar,  SwitchButton } from '@element-plus/icons-vue';


import { useTokenStore } from '@/stores/token'; 
const tokenStore=useTokenStore();
const showLogoutDialog = ref(false);
const logout = () => {
  ElMessage.success('成功退出登录');
  tokenStore.removeToken();
  router.push('/login'); 
  showLogoutDialog.value = false; 
};

const handleClose = (done) => {
  ElMessage({
    message: '对话框已关闭',
    type: 'warning'
  });
  done();
};
</script>

<template>
  <div class="common-layout">
    <el-container class="bg">
      <el-header>
        <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" :ellipsis="false"
          @select="handleSelect">
          <el-menu-item index="0" @click="router.push('/')">
            <el-icon><ShoppingTrolley /></el-icon>
            <img style="width: 100px" src="@/assets/logo2.jpg" alt="logo" />
          </el-menu-item>
          <span style="font-size: medium;">
              <el-avatar style="margin-top:5px" :src="userInfoModel.userPic"  />
            
            {{ userInfoModel.userType }}:{{ userInfoModel.username }}
          </span>
          <el-menu-item index="1" @click="router.push('/user/info')"><el-icon>
              <Avatar />
            </el-icon>我的</el-menu-item>
          <el-sub-menu index="2">
            <template #title>工具栏</template>
            <el-menu-item v-if="userInfoModel.userType==='商家'" index="2-1" @click="router.push('/user/goods')">我的商品</el-menu-item>
            <el-menu-item index="2-2" @click="router.push('/user/cart')">购物车</el-menu-item>
            <el-menu-item index="2-3" @click="showLogoutDialog = true;">
                            <el-icon>
                                <SwitchButton />
                            </el-icon>
                            退出登录
                        </el-menu-item>
          </el-sub-menu>
        </el-menu>
        <el-dialog title="确认退出登录" v-model="showLogoutDialog" width="30%" :before-close="handleClose">
              <span>确定要退出登录吗?</span>
              <template #footer>
                <span class="dialog-footer">
                  <el-button @click="showLogoutDialog = false">取消</el-button>
                  <el-button type="primary" @click="logout">确定</el-button>
                </span>
              </template>
            </el-dialog>
      </el-header>
      <el-main>

        <div style="font-size: 50px;">
          <el-icon>
            <GoodsFilled />
          </el-icon>
          我的商品

          <el-button type="danger" @click="router.push('/user/goods/add')">添加商品</el-button>
        </div>
        <el-descriptions direction="vertical" border style="margin-top: 20px" v-for="goods in userGoodsList">
          <el-descriptions-item :rowspan="2" :width="140" label="商品图片" align="center">
            <el-image style="width: 100px; height: 100px"
              :src="goods.goodsImgUrl" />
          </el-descriptions-item>

          <el-descriptions-item label="商品名/价格">
            {{goods.goodsName}}
            <span style="font-size: large;margin-left: 100px;">{{goods.goodsPrice}}¥</span>
          </el-descriptions-item>
          <el-descriptions-item label="商家">{{ goods.merchantName }}</el-descriptions-item>
        </el-descriptions>



      </el-main>
    </el-container>
  </div>
  <hr>
  <div style="width: 300px;height: 200px;margin-left: auto;margin-right: auto;">
    <div style="margin-top: 100px;">
      <p style="text-align: center;margin-top: 10px;filter: opacity(50%);font-size: small;">迷你商城,本网站为练习网站。
        本站商品全在淘宝:"https://www.taobao.com"中获取,若对站内商品感兴趣,请到淘宝搜索相关商品并购买</p>
    </div>
  </div>
</template>




<style>
.el-menu--horizontal>.el-menu-item:nth-child(1) {
  margin-right: auto;
}

.bg {
  background-color: pink;
}

.el-menu-demo {
  background-color: coral;
}
</style>

2.2.制定与后端接口交互的函数

/src/api/user.js

export const userGoodsService=()=>{
    return request.get('/user/myGoods')
}

2.3.效果展示

在这里插入图片描述

3.添加商品页面的开发

3.1.搭建页面,绑定数据与函数

/src/views/user/UserAddGoods.vue

<script lang="ts" setup>
import { ref } from 'vue'
import { ElMessage } from 'element-plus'
import { Plus } from '@element-plus/icons-vue'

import type { UploadProps } from 'element-plus'

import { useUserInfoStore } from '@/stores/userInfo';
const userInfoStore = useUserInfoStore();
const userInfoModel = ref(userInfoStore.info)

const imageUrl = ref('')

const handleAvatarSuccess: UploadProps['onSuccess'] = (
    response,
    uploadFile
) => {
    imageUrl.value = URL.createObjectURL(uploadFile.raw!)
}



import { addGoodsService } from "@/api/goods"

const activeIndex = ref('1')
const handleSelect = (key: string, keyPath: string[]) => {
    console.log(key, keyPath)
}

import { useRouter } from 'vue-router';
const router = useRouter();
const price = ref()

const goodsAddModel = ref({
    goodsName: '',
    goodsImgUrl: '',
    goodsPrice: ''
})


const addGoods = async () => {
    await addGoodsService(goodsAddModel.value)
    ElMessage.success('添加成功')
}
const clearGoodsData = () => {
    goodsAddModel.value.goodsName = '';
    goodsAddModel.value.goodsImgUrl = '';
    goodsAddModel.value.goodsPrice = '';
}


import { Avatar, SwitchButton } from '@element-plus/icons-vue';


import { useTokenStore } from '@/stores/token';
const tokenStore = useTokenStore();
const showLogoutDialog = ref(false);
const logout = () => {
    ElMessage.success('成功退出登录');
    tokenStore.removeToken();
    router.push('/login');
    showLogoutDialog.value = false;
};

const handleClose = (done) => {
    ElMessage({
        message: '对话框已关闭',
        type: 'warning'
    });
    done();
};
</script>


<template>
    <div class="common-layout">
        <el-container class="bg">
            <el-header>
                <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" :ellipsis="false"
                    @select="handleSelect">
                    <el-menu-item index="0" @click="router.push('/')">
                        <el-icon>
                            <ShoppingTrolley />
                        </el-icon>
                        <img style="width: 100px" src="@/assets/logo2.jpg" alt="logo" />
                    </el-menu-item>
                    <span style="font-size: medium;">
                        <el-avatar style="margin-top:5px" :src="userInfoModel.userPic" />

                        {{ userInfoModel.userType }}:{{ userInfoModel.username }}
                    </span>
                    <el-menu-item index="1" @click="router.push('/user/info')"><el-icon>
                            <Avatar />
                        </el-icon>我的</el-menu-item>
                    <el-sub-menu index="2">
                        <template #title>工具栏</template>
                        <el-menu-item v-if="userInfoModel.userType === '商家'" index="2-1"
                            @click="router.push('/user/goods')">我的商品</el-menu-item>
                        <el-menu-item index="2-2" @click="router.push('/user/cart')">购物车</el-menu-item>
                        <el-menu-item index="2-3" @click="showLogoutDialog = true;">
                            <el-icon>
                                <SwitchButton />
                            </el-icon>
                            退出登录
                        </el-menu-item>
                    </el-sub-menu>
                </el-menu>
                <el-dialog title="确认退出登录" v-model="showLogoutDialog" width="30%" :before-close="handleClose">
              <span>确定要退出登录吗?</span>
              <template #footer>
                <span class="dialog-footer">
                  <el-button @click="showLogoutDialog = false">取消</el-button>
                  <el-button type="primary" @click="logout">确定</el-button>
                </span>
              </template>
            </el-dialog>
            </el-header>
            <el-main>
                <el-card class="page-container" style="background-color: coral;">
                    <template #header>
                        <div class="header">
                            <span>添加商品</span>
                        </div>
                    </template>

                    <el-row>
                        <el-col :span="12">
                            <el-form label-width="100px" size="large">
                                <el-form-item label="商品名称">
                                    <el-input v-model="goodsAddModel.goodsName" type="textarea" />
                                </el-form-item>

                                <el-form-item label="商品图片地址">
                                    <el-input v-model="goodsAddModel.goodsImgUrl"></el-input>
                                </el-form-item>

                                <el-form-item label="商品价格">
                                    <el-input-number v-model="goodsAddModel.goodsPrice" :step="1" />
                                </el-form-item>

                                <el-form-item>
                                    <el-button type="primary" @click="addGoods(); clearGoodsData()">添加</el-button>
                                </el-form-item>
                            </el-form>
                        </el-col>
                    </el-row>
                </el-card>
            </el-main>
        </el-container>
    </div>
    <hr>
    <div style="width: 300px;height: 200px;margin-left: auto;margin-right: auto;">
        <div style="margin-top: 100px;">
            <p style="text-align: center;margin-top: 10px;filter: opacity(50%);font-size: small;">迷你商城,本网站为练习网站。
                本站商品全在淘宝:"https://www.taobao.com"中获取,若对站内商品感兴趣,请到淘宝搜索相关商品并购买</p>
        </div>
    </div>
</template>




<style>
.avatar-uploader .avatar {
    width: 178px;
    height: 178px;
    display: block;
}
</style>

<style>
.avatar-uploader .el-upload {
    margin-bottom: 100px;
    margin-left: 200px;
    border: 1px dashed var(--el-border-color);
    border-radius: 6px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: var(--el-transition-duration-fast);
}

.avatar-uploader .el-upload:hover {
    border-color: var(--el-color-primary);
}

.el-icon.avatar-uploader-icon {
    font-size: 28px;
    color: #8c939d;
    width: 178px;
    height: 178px;
    text-align: center;
}

.el-menu--horizontal>.el-menu-item:nth-child(1) {
    margin-right: auto;
}

.bg {
    background-color: pink;
}

.el-menu-demo {
    background-color: coral;
}
</style>

3.2.制定与后端接口交互的函数

/src/api/user.js

export const userAddGoodsToCartService=(id)=>{
    return request.patch('/user/cart/add?id='+id);
}

3.3.效果展示

在这里插入图片描述

4.总结

​ 本期我们开发的商品详情、我的商品、添加商品这些页面。到此为止,我们前端的一些基本页面也都开发完毕了,这个网站的基本功能也都可以运行了。不过仍然有着很多细节以及功能还没有实现,对比我们第一期【全栈】SprintBoot+vue3迷你商城(1)提出的要求,还有用户上传、修改头像、搜索、分页等等功能没有实现,我会在以后陆续更新。而且之后肯定还会添加一些新的功能,我会在后面陆续更新。本人在这方面也是尝试阶段,有很多不懂的地方,希望边做边记录边进步。对于不足的地方,我会虚心接受大家的建议。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/963058.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.27 线性代数王国:矩阵分解实战指南

1.27 线性代数王国&#xff1a;矩阵分解实战指南 #mermaid-svg-JWrp2JAP9qkdS2A7 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-JWrp2JAP9qkdS2A7 .error-icon{fill:#552222;}#mermaid-svg-JWrp2JAP9qkdS2A7 .erro…

【愚公系列】《循序渐进Vue.js 3.x前端开发实践》030-自定义组件的插槽Mixin

标题详情作者简介愚公搬代码头衔华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xff0c;阿里云签约作者&#xff0c;腾讯云优秀博主&…

langchain 实现多智能体多轮对话

这里写目录标题 工具定义模型选择graph节点函数定义graph 运行 工具定义 import random from typing import Annotated, Literalfrom langchain_core.tools import tool from langchain_core.tools.base import InjectedToolCallId from langgraph.prebuilt import InjectedSt…

pytorch生成对抗网络

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 生成对抗网络&#xff08;GAN&#xff0c;Generative Adversarial Network&#xff09;是一种深度学习模型&#xff0c;由两个神经网络组成&#xff1a;生成器&#xff08;Generator&#xff09;和判别器&#xff0…

ui-automator定位官网文档下载及使用

一、ui-automator定位官网文档简介及下载 AndroidUiAutomator&#xff1a;移动端特有的定位方式&#xff0c;uiautomator是java实现的&#xff0c;定位类型必须写成java类型 官方地址&#xff1a;https://developer.android.com/training/testing/ui-automator.html#ui-autom…

RabbitMQ持久化队列配置修改问题

文章目录 1.问题产生2.问题解决1.询问gpt2.独立思考 1.问题产生 我在给一个普通队列去绑定死信交换机和死信队列的时候&#xff0c;发现总是报错x-dead-letter-exchange的属性为none ERROR [PFTID:] [Module:defaultModule] org.springframework.amqp.rabbit.connection.Cach…

MySQL常用数据类型和表的操作

文章目录 (一)常用数据类型1.数值类2.字符串类型3.二进制类型4.日期类型 (二)表的操作1查看指定库中所有表2.创建表3.查看表结构和查看表的创建语句4.修改表5.删除表 (三)总代码 (一)常用数据类型 1.数值类 BIT([M]) 大小:bit M表示每个数的位数&#xff0c;取值范围为1~64,若…

OpenCV:图像轮廓

目录 简述 1. 什么是图像轮廓&#xff1f; 2. 查找图像轮廓 2.1 接口定义 2.2 参数说明 2.3 代码示例 2.4 运行结果 3. 绘制图像轮廓 3.1 接口定义 3.2 参数说明 3.3 代码示例 3.4 运行结果 4. 计算轮廓周长 5. 计算轮廓面积 6. 示例&#xff1a;计算图像轮廓的面…

C++哈希(链地址法)(二)详解

文章目录 1.开放地址法1.1key不能取模的问题1.1.1将字符串转为整型1.1.2将日期类转为整型 2.哈希函数2.1乘法散列法&#xff08;了解&#xff09;2.2全域散列法&#xff08;了解&#xff09; 3.处理哈希冲突3.1线性探测&#xff08;挨着找&#xff09;3.2二次探测&#xff08;跳…

记6(人工神经网络

目录 1、M-P神经元2、感知机3、Delta法则4、前馈型神经网络&#xff08;Feedforward Neural Networks&#xff09;5、鸢尾花数据集——单层前馈型神经网络&#xff1a;6、多层神经网络&#xff1a;增加隐含层7、实现异或运算&#xff08;01、10为1,00、11为0&#xff09;8、线性…

增删改查(CRUD)操作

文章目录 MySQL系列&#xff1a;1.CRUD简介2.Create(创建)2.1单行数据全列插入2.2 单行数据指定插入2.3 多⾏数据指定列插⼊ 3.Retrieve(读取)3.1 Select查询3.1.1 全列查询3.1.2 指定列查询3.1.3 查询字段为表达式&#xff08;都是临时表不会对原有表数据产生影响&#xff09;…

python 语音识别

目录 一、语音识别 二、代码实践 2.1 使用vosk三方库 2.2 使用SpeechRecognition 2.3 使用Whisper 一、语音识别 今天识别了别人做的这个app,觉得虽然是个日记app 但是用来学英语也挺好的,能进行语音识别,然后矫正语法,自己说的时候 ,实在不知道怎么说可以先乱说,然…

openssl 生成证书 windows导入证书

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

深度学习编译器的演进:从计算图到跨硬件部署的自动化之路

第一章 问题的诞生——深度学习部署的硬件困境 1.1 计算图的理想化抽象 什么是计算图&#xff1f; 想象你正在组装乐高积木。每个积木块代表一个数学运算&#xff08;如加法、乘法&#xff09;&#xff0c;积木之间的连接代表数据流动。深度学习框架正是用这种"积木拼接…

Agentic Automation:基于Agent的企业认知架构重构与数字化转型跃迁---我的AI经典战例

文章目录 Agent代理Agent组成 我在企业实战AI Agent企业痛点我构建的AI Agent App 项目开源 & 安装包下载 大家好&#xff0c;我是工程师令狐&#xff0c;今天想给大家讲解一下AI智能体&#xff0c;以及企业与AI智能体的结合&#xff0c;文章中我会列举自己在企业中Agent实…

论文阅读:Realistic Noise Synthesis with Diffusion Models

这篇文章是 2025 AAAI 的一篇工作&#xff0c;主要介绍的是用扩散模型实现对真实噪声的仿真模拟 Abstract 深度去噪模型需要大量来自现实世界的训练数据&#xff0c;而获取这些数据颇具挑战性。当前的噪声合成技术难以准确模拟复杂的噪声分布。我们提出一种新颖的逼真噪声合成…

Baklib揭示内容中台与人工智能技术的创新协同效应

内容概要 在当今信息爆炸的时代&#xff0c;内容的高效生产与分发已成为各行业竞争的关键。内容中台与人工智能技术的结合&#xff0c;为企业提供了一种新颖的解决方案&#xff0c;使得内容创造的流程更加智能化和高效化。 内容中台作为信息流动的核心&#xff0c;能够集中管…

Spring Boot 中的事件发布与监听:深入理解 ApplicationEventPublisher(附Demo)

目录 前言1. 基本知识2. Demo3. 实战代码 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 基本的Java知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&am…

DeepSeek 第二弹:Janus-Pro 文生图模型

最近&#xff0c;DeepSeek 可谓是科技圈的焦点&#xff0c;还火出了圈外&#xff0c;掀起了一场全民创作热潮。大家纷纷借助 DeepSeek R1 挥洒才情&#xff0c;实现诗人、小说家的梦想。然而&#xff0c;就在这场文字狂欢之际&#xff0c;DeepSeek 又悄然推出了一款重磅产品——…

leetcode 2563. 统计公平数对的数目

题目如下 数据范围 显然数组长度最大可以到10的5次方n方的复杂度必然超时&#xff0c;阅读题目实际上就是寻找两个位置不同的数满足不等式即可(实际上i j无所谓是哪个 我们只要把位置小的想成i就行)。 按照上面的思路我们只需要排序数组然后从前往后遍历数组然后利用二分查找…