上传文件至 /
This commit is contained in:
76
README.md
Normal file
76
README.md
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
# 报销单数据提取插件
|
||||||
|
|
||||||
|
一个Chrome浏览器插件,用于从胜意费控云报销单页面提取数据并生成PDF文件。
|
||||||
|
|
||||||
|
## 功能特点
|
||||||
|
|
||||||
|
- 自动提取报销单页面的基本信息、费用明细和审批信息
|
||||||
|
- 根据指定模板生成PDF文件
|
||||||
|
- 支持自定义输出路径
|
||||||
|
|
||||||
|
## 安装方法
|
||||||
|
|
||||||
|
1. 克隆或下载本项目
|
||||||
|
2. 在Chrome浏览器中打开 `chrome://extensions/`
|
||||||
|
3. 启用"开发者模式"
|
||||||
|
4. 点击"加载已解压的扩展程序"
|
||||||
|
5. 选择本项目的根目录
|
||||||
|
|
||||||
|
## 使用说明
|
||||||
|
|
||||||
|
1. 打开胜意费控云报销单页面,例如:`https://djrj.easyfees.cn/fcc/fcecf/entry/index.html?czlx=C&djlx=99006&bxdh=FYBX20251226164`
|
||||||
|
2. 点击浏览器右上角的插件图标
|
||||||
|
3. 点击"提取数据并生成PDF"按钮
|
||||||
|
4. 等待数据提取和PDF生成完成
|
||||||
|
5. 下载生成的PDF文件
|
||||||
|
|
||||||
|
## 项目结构
|
||||||
|
|
||||||
|
```
|
||||||
|
.
|
||||||
|
├── dist/ # 构建后的文件
|
||||||
|
├── icons/ # 插件图标
|
||||||
|
├── src/ # 源代码
|
||||||
|
│ ├── content.js # 内容脚本,用于提取页面数据
|
||||||
|
│ └── popup.js # 弹窗脚本,用于生成PDF
|
||||||
|
├── manifest.json # 插件配置文件
|
||||||
|
├── package.json # 项目依赖配置
|
||||||
|
├── vite.config.js # Vite配置文件
|
||||||
|
└── README.md # 项目说明
|
||||||
|
```
|
||||||
|
|
||||||
|
## 技术栈
|
||||||
|
|
||||||
|
- Vue 3 + Vite
|
||||||
|
- Chrome Extension API
|
||||||
|
- pdf-lib
|
||||||
|
|
||||||
|
## 注意事项
|
||||||
|
|
||||||
|
1. 请确保已正确配置manifest.json中的权限
|
||||||
|
2. 请确保模板PDF文件路径正确
|
||||||
|
3. 若页面结构发生变化,可能需要更新content.js中的选择器
|
||||||
|
|
||||||
|
## 开发说明
|
||||||
|
|
||||||
|
### 安装依赖
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
### 构建项目
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
### 开发模式
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
|
||||||
|
MIT
|
||||||
17
manifest.json
Normal file
17
manifest.json
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"manifest_version": 3,
|
||||||
|
"name": "报销单数据提取插件",
|
||||||
|
"version": "1.0",
|
||||||
|
"description": "提取报销单网页数据并生成PDF",
|
||||||
|
"permissions": ["activeTab", "tabs", "scripting"],
|
||||||
|
"host_permissions": ["https://djrj.easyfees.cn/*"],
|
||||||
|
"action": {
|
||||||
|
"default_popup": "dist/popup.html"
|
||||||
|
},
|
||||||
|
"content_scripts": [
|
||||||
|
{
|
||||||
|
"matches": ["https://djrj.easyfees.cn/fcc/fcecf/entry/index.html*"],
|
||||||
|
"js": ["dist/assets/content.js"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
1322
package-lock.json
generated
Normal file
1322
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
19
package.json
Normal file
19
package.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "baoxiaochajian",
|
||||||
|
"private": true,
|
||||||
|
"version": "0.0.0",
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "vite",
|
||||||
|
"build": "vite build",
|
||||||
|
"preview": "vite preview"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"vue": "^3.5.13",
|
||||||
|
"pdf-lib": "^1.17.1"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@vitejs/plugin-vue": "^5.2.1",
|
||||||
|
"vite": "^6.0.3"
|
||||||
|
}
|
||||||
|
}
|
||||||
48
popup.html
Normal file
48
popup.html
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>报销单数据提取</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
width: 300px;
|
||||||
|
height: 200px;
|
||||||
|
padding: 10px;
|
||||||
|
font-family: Arial, sans-serif;
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
width: 100%;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 10px 0;
|
||||||
|
background-color: #4CAF50;
|
||||||
|
color: white;
|
||||||
|
border: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
button:hover {
|
||||||
|
background-color: #45a049;
|
||||||
|
}
|
||||||
|
.status {
|
||||||
|
margin-top: 10px;
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
.success {
|
||||||
|
background-color: #d4edda;
|
||||||
|
color: #155724;
|
||||||
|
}
|
||||||
|
.error {
|
||||||
|
background-color: #f8d7da;
|
||||||
|
color: #721c24;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h2>报销单数据提取</h2>
|
||||||
|
<button id="extractBtn">提取数据并生成PDF</button>
|
||||||
|
<div id="status" class="status"></div>
|
||||||
|
<script type="module" src="src/popup.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user