mirror of
https://github.com/pipipi-pikachu/PPTist.git
synced 2025-04-15 02:20:00 +08:00
perf: 一些代码优化
This commit is contained in:
parent
ad2a7cb32d
commit
83e9871c80
16
README.md
16
README.md
@ -198,22 +198,24 @@ If you wish to use this project for commercial gain, I hope you will respect ope
|
||||
- 你给本项目提交过重要的 PR 并且被合并(由作者主观判断);
|
||||
- 你长期参与到本项目的维护/推进工作中,如为本项目:提供了有效的周边工具、制作了大量模板等(由作者主观判断);
|
||||
3. [邮件联系作者](mailto:pipipi_pikachu@163.com)付费获取独立的商业授权。独立授权价格:
|
||||
- 一年1999
|
||||
- 三年2999
|
||||
- 一年1999(无发票)
|
||||
- 三年2999(无发票)
|
||||
- 永久5499(无发票)
|
||||
- 永久6999(可开电子发票)
|
||||
- 如需付费获取独立的商业授权,请注意:
|
||||
- 仅授权,不提供额外的商业化版本和技术支持
|
||||
- 务必提前做好调研,判断PPTist是否符合需求(无论功能还是开发)
|
||||
- 独立商业授权的意思是:单独授权您将代码用于商业行为,且不必执行 AGPL-3.0 协议;
|
||||
- 不提供额外的“高级版本”和技术支持,也不提供可直接交付的产品;
|
||||
- 如有需要,可提供AIPPT相关后台逻辑和当前模板数据(但都非常简单,建议自己实现);
|
||||
- 务必提前做好调研,判断PPTist是否符合需求(无论功能还是开发)。
|
||||
|
||||
---
|
||||
# 🔔 其他说明
|
||||
## 什么是 AGPL-3.0 协议
|
||||
协议的核心要求用通俗的语言解释如下:
|
||||
- **开源义务**:如果你用了 AGPL 的代码,无论你或你的下游怎么使用/修改,都必须把你最终的代码全部完整公开出来(不只是给出修改的部分),并继续以 AGPL 协议开源,保持传染性。
|
||||
- **网络服务也要开源**:即使你只是用 AGPL 的代码做了一个网站或网络服务,别人通过网络用你的服务时,你也需要遵守上一条**开源义务**。
|
||||
- **开源义务**:如果你用了 AGPL 的代码,无论你或你的下游怎么使用/修改,都必须把你最终的代码全部完整公开出来(不只是给出修改的部分),并继续以 AGPL 协议开源,保持开源的传染性。
|
||||
- **网络服务也要开源**:哪怕你只是用 AGPL 的代码做了一个网站或网络服务,别人通过网络用你的服务时,你也需要遵守上一条**开源义务**。
|
||||
- **保留版权声明**:你不能删掉代码里原来的作者信息和许可证声明,得告诉大家这代码是从哪儿来的。
|
||||
- **不能加额外限制**:你不能在 AGPL 代码上加一些限制,比如不让别人再分发,或者要求别人付费才能用。
|
||||
- **不能加额外限制**:你不能在 AGPL 代码上加一些限制,比如不让别人再分发,或者要求别人付费才能使用代码。
|
||||
- **免责声明**:作者不保证代码没有 bug,也不对使用后果负责。
|
||||
|
||||
详细协议内容见官方文档:[AGPL-3.0 协议](https://www.gnu.org/licenses/agpl-3.0.html)
|
||||
|
16
README_zh.md
16
README_zh.md
@ -182,22 +182,24 @@ npm run dev
|
||||
- 你给本项目提交过重要的 PR 并且被合并(由作者主观判断);
|
||||
- 你长期参与到本项目的维护/推进工作中,如为本项目:提供了有效的周边工具、制作了大量模板等(由作者主观判断);
|
||||
3. [邮件联系作者](mailto:pipipi_pikachu@163.com)付费获取独立的商业授权。独立授权价格:
|
||||
- 一年1999
|
||||
- 三年2999
|
||||
- 一年1999(无发票)
|
||||
- 三年2999(无发票)
|
||||
- 永久5499(无发票)
|
||||
- 永久6999(可开电子发票)
|
||||
- 如需付费获取独立的商业授权,请注意:
|
||||
- 仅授权,不提供额外的商业化版本和技术支持
|
||||
- 务必提前做好调研,判断PPTist是否符合需求(无论功能还是开发)
|
||||
- 独立商业授权的意思是:单独授权您将代码用于商业行为,且不必执行 AGPL-3.0 协议;
|
||||
- 不提供额外的“高级版本”和技术支持,也不提供可直接交付的产品;
|
||||
- 如有需要,可提供AIPPT相关后台逻辑和当前模板数据(但都非常简单,建议自己实现);
|
||||
- 务必提前做好调研,判断PPTist是否符合需求(无论功能还是开发)。
|
||||
|
||||
---
|
||||
# 🔔 其他说明
|
||||
## 什么是 AGPL-3.0 协议
|
||||
协议的核心要求用通俗的语言解释如下:
|
||||
- **开源义务**:如果你用了 AGPL 的代码,无论你或你的下游怎么使用/修改,都必须把你最终的代码全部完整公开出来(不只是给出修改的部分),并继续以 AGPL 协议开源,保持传染性。
|
||||
- **网络服务也要开源**:即使你只是用 AGPL 的代码做了一个网站或网络服务,别人通过网络用你的服务时,你也需要遵守上一条**开源义务**。
|
||||
- **开源义务**:如果你用了 AGPL 的代码,无论你或你的下游怎么使用/修改,都必须把你最终的代码全部完整公开出来(不只是给出修改的部分),并继续以 AGPL 协议开源,保持开源的传染性。
|
||||
- **网络服务也要开源**:哪怕你只是用 AGPL 的代码做了一个网站或网络服务,别人通过网络用你的服务时,你也需要遵守上一条**开源义务**。
|
||||
- **保留版权声明**:你不能删掉代码里原来的作者信息和许可证声明,得告诉大家这代码是从哪儿来的。
|
||||
- **不能加额外限制**:你不能在 AGPL 代码上加一些限制,比如不让别人再分发,或者要求别人付费才能用。
|
||||
- **不能加额外限制**:你不能在 AGPL 代码上加一些限制,比如不让别人再分发,或者要求别人付费才能使用代码。
|
||||
- **免责声明**:作者不保证代码没有 bug,也不对使用后果负责。
|
||||
|
||||
详细协议内容见官方文档:[AGPL-3.0 协议](https://www.gnu.org/licenses/agpl-3.0.html)
|
||||
|
@ -6,7 +6,7 @@ import { useSlidesStore } from '@/store'
|
||||
import useAddSlidesOrElements from './useAddSlidesOrElements'
|
||||
import useSlideHandler from './useSlideHandler'
|
||||
|
||||
interface PexelsImage {
|
||||
interface ImgPoolItem {
|
||||
id: string
|
||||
src: string
|
||||
width: number
|
||||
@ -18,7 +18,7 @@ export default () => {
|
||||
const { addSlidesFromData } = useAddSlidesOrElements()
|
||||
const { isEmptySlide } = useSlideHandler()
|
||||
|
||||
const imgPool = ref<PexelsImage[]>([])
|
||||
const imgPool = ref<ImgPoolItem[]>([])
|
||||
const transitionIndex = ref(0)
|
||||
const transitionTemplate = ref<Slide | null>(null)
|
||||
|
||||
@ -169,8 +169,8 @@ export default () => {
|
||||
return el.type === 'text' ? { ...el, content, lineHeight: size < 15 ? 1.2 : el.lineHeight } : { ...el, text: { ...el.text!, content } }
|
||||
}
|
||||
|
||||
const getUseableImage = (el: PPTImageElement): PexelsImage | null => {
|
||||
let img: PexelsImage | null = null
|
||||
const getUseableImage = (el: PPTImageElement): ImgPoolItem | null => {
|
||||
let img: ImgPoolItem | null = null
|
||||
|
||||
let imgs = []
|
||||
|
||||
@ -227,7 +227,7 @@ export default () => {
|
||||
return content.replace('```json', '').replace('```', '')
|
||||
}
|
||||
|
||||
const AIPPT = (templateSlides: Slide[], _AISlides: AIPPTSlide[], imgs?: PexelsImage[]) => {
|
||||
const AIPPT = (templateSlides: Slide[], _AISlides: AIPPTSlide[], imgs?: ImgPoolItem[]) => {
|
||||
slidesStore.updateSlideIndex(slidesStore.slides.length - 1)
|
||||
|
||||
if (imgs) imgPool.value = imgs
|
||||
|
@ -7,7 +7,7 @@
|
||||
<div class="tool-btn" :class="{ 'active': timerlVisible }" @click="timerlVisible = !timerlVisible"><IconStopwatchStart class="tool-icon" /><span>计时器</span></div>
|
||||
<div class="tool-btn" @click="() => fullscreenState ? manualExitFullscreen() : enterFullscreen()">
|
||||
<IconOffScreenOne class="tool-icon" v-if="fullscreenState" />
|
||||
<IconOffScreenOne class="tool-icon" v-else />
|
||||
<IconFullScreenOne class="tool-icon" v-else />
|
||||
<span>{{ fullscreenState ? '退出全屏' : '全屏' }}</span>
|
||||
</div>
|
||||
<Divider class="divider" />
|
||||
|
Loading…
x
Reference in New Issue
Block a user