若依ruoyi响应json参数
一、若依
page
response
http://localhost/dev-api/stock/warehouse/page?pageNum=1&pageSize=10
{
"msg": "操作成功",
"code": 200,
"data": {
"pageNum": 1,
"pageSize": 10,
"pages": 2,
"total": 14,
"records": [
{
"id": "3",
"createTime": "2025-02-21 19:05:51",
"updateTime": "2025-02-24 16:23:13",
"createBy": "",
"updateBy": "admin",
"name": "仓库1",
"address": "深圳",
"sort": 1,
"principal": "负责人1",
"warehousePrice": 100.000000,
"truckagePrice": 100.000000,
"status": 0,
"defaultStatus": 0,
"deleted": 0,
"tenantId": 0,
"remark": "备注1"
},
{
"id": "1894056959666081793",
"createTime": "2025-02-25 00:09:04",
"updateTime": "2025-02-25 00:09:04",
"createBy": "admin",
"updateBy": "admin",
"name": "12",
"address": "12",
"sort": null,
"principal": "12",
"warehousePrice": 12.000000,
"truckagePrice": 12.000000,
"status": 0,
"defaultStatus": 0,
"deleted": 0,
"tenantId": 0,
"remark": "12"
}
]
}
}
SQL
==> Preparing: SELECT COUNT(1) FROM erp_warehouse WHERE (deleted = ?)
==> Parameters: 0(Integer)
<== Columns: COUNT(1)
<== Row: 14
<== Total: 1
==> Preparing: SELECT id,name,address,sort,principal,warehouse_price,truckage_price,status,default_status,deleted,tenant_id,remark,create_time,update_time,create_by,update_by FROM erp_warehouse WHERE (deleted = ?) LIMIT ?
==> Parameters: 0(Integer), 10(Long)
<== Columns: id, name, address, sort, principal, warehouse_price, truckage_price, status, default_status, deleted, tenant_id, remark, create_time, update_time, create_by, update_by
<== Row: 3, 仓库1, 深圳, 1, 负责人1, 100.000000, 100.000000, 0, 0, 0, 0, 备注1, 2025-02-21 19:05:51, 2025-02-24 16:23:13, , admin
<== Row: 5, 仓库6, 地址6, 6, 负责人6, 180.000000, 180.000000, 1, 0, 0, 0, 备注6, 2025-02-21 20:57:12, 2025-02-21 20:57:11, ,
<== Row: 7, 仓库10, 地址10, null, 负责人10, 10000.000000, 10000.000000, 1, 0, 0, 0, 备注10, 2025-02-21 21:41:20, 2025-02-21 21:41:19, ,、
...
<== Total: 10
list
response
http://localhost/dev-api/stock/warehouse/list?pageNum=1&status=1
{
"msg": "操作成功",
"code": 200,
"data": [
{
"id": "3",
"createTime": "2025-02-21 19:05:51",
"updateTime": "2025-02-24 16:23:13",
"createBy": "",
"updateBy": "admin",
"name": "仓库1",
"address": "深圳",
"sort": 1,
"principal": "负责人1",
"warehousePrice": 100.000000,
"truckagePrice": 100.000000,
"status": 0,
"defaultStatus": 0,
"deleted": 0,
"tenantId": 0,
"remark": "备注1"
}
]
}
create
response
http://localhost/dev-api/stock/warehouse
{"msg":"操作成功","code":200}
SQL
==> Preparing: INSERT INTO erp_warehouse ( id, name, address, principal, warehouse_price, truckage_price, status, remark, create_time, update_time, create_by, update_by ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )
==> Parameters: 1894386669541416961(Long), 123(String), 123(String), 123(String), 123(BigDecimal), 123(BigDecimal), 1(Long), 123(String), 2025-02-25T21:59:12.685535100(LocalDateTime), 2025-02-25T21:59:12.685535100(LocalDateTime), admin(String), admin(String)
<== Updates: 1
==> Preparing: SELECT id,name,address,sort,principal,warehouse_price,truckage_price,status,default_status,deleted,tenant_id,remark,create_time,update_time,create_by,update_by FROM erp_warehouse WHERE (deleted = ?)
==> Parameters: 0(Integer)
get
response
http://localhost/dev-api/stock/warehouse/3
{
"msg": "操作成功",
"code": 200,
"data": {
"id": "3",
"createTime": "2025-02-21 19:05:51",
"updateTime": "2025-02-24 16:23:13",
"createBy": "",
"updateBy": "admin",
"name": "仓库1",
"address": "深圳",
"sort": 1,
"principal": "负责人1",
"warehousePrice": 100.000000,
"truckagePrice": 100.000000,
"status": 0,
"defaultStatus": 0,
"deleted": 0,
"tenantId": 0,
"remark": "备注1"
}
}
SQL
==> Preparing: SELECT id,name,address,sort,principal,warehouse_price,truckage_price,status,default_status,deleted,tenant_id,remark,create_time,update_time,create_by,update_by FROM erp_warehouse WHERE id=?
==> Parameters: 3(Long)
<== Columns: id, name, address, sort, principal, warehouse_price, truckage_price, status, default_status, deleted, tenant_id, remark, create_time, update_time, create_by, update_by
<== Row: 3, 仓库1, 深圳, 1, 负责人1, 100.000000, 100.000000, 0, 0, 0, 0, 备注1, 2025-02-21 19:05:51, 2025-02-24 16:23:13, , admin
<== Total: 1
update
response
http://localhost/dev-api/stock/warehouse
{"msg":"操作成功","code":200}
SQL
==> Preparing: UPDATE erp_warehouse SET name=?, address=?, sort=?, principal=?, warehouse_price=?, truckage_price=?, status=?, default_status=?, deleted=?, tenant_id=?, remark=?, create_time=?, update_time=?, create_by=?, update_by=? WHERE id=?
==> Parameters: 仓库1(String), 深圳(String), 1(Long), 负责人1(String), 100(BigDecimal), 100(BigDecimal), 0(Long), 0(Integer), 0(Integer), 0(Long), 备注1(String), 2025-02-21T19:05:51(LocalDateTime), 2025-02-25T22:02:41.328505900(LocalDateTime), (String), admin(String), 3(Long)
<== Updates: 1
==> Preparing: SELECT id,name,address,sort,principal,warehouse_price,truckage_price,status,default_status,deleted,tenant_id,remark,create_time,update_time,create_by,update_by FROM erp_warehouse WHERE (deleted = ?)
==> Parameters: 0(Integer)
delete
http://localhost/dev-api/stock/warehouse/1894370466672492546
response
{"msg":"操作成功","code":200}
SQL
==> Preparing: DELETE FROM erp_warehouse WHERE id IN ( ? )
==> Parameters: 1894370466672492546(Long)
<== Updates: 1
==> Preparing: SELECT id,name,address,sort,principal,warehouse_price,truckage_price,status,default_status,deleted,tenant_id,remark,create_time,update_time,create_by,update_by FROM erp_warehouse WHERE (deleted = ?)
==> Parameters: 0(Integer)
二、芋道
page
response
http://localhost:48080/admin-api/system/post/page?pageNo=1&pageSize=10&code=&name=
{
"code": 0,
"data": {
"list": [
{
"id": 5,
"name": "人力资源",
"code": "HR",
"sort": 5,
"status": 0,
"remark": "",
"createTime": 1711284340000
},
// ...
{
"id": 1,
"name": "董事长",
"code": "ceo",
"sort": 1,
"status": 0,
"remark": "",
"createTime": 1609923828000
}
],
"total": 4
},
"msg": ""
}
SQL
| ==> Preparing: SELECT COUNT(*) AS total FROM system_post WHERE deleted = 0 AND tenant_id = 1
| ==> Parameters:
| <== Total: 1
| ==> Preparing: SELECT id, name, code, sort, status, remark, create_time, update_time, creator, updater, deleted FROM system_post WHERE deleted = 0 AND tenant_id = 1 ORDER BY id DESC LIMIT ?
| ==> Parameters: 10(Long)
| <== Total: 4
list
http://localhost:48080/admin-api/system/post/page?pageNo=1&pageSize=10&code=&name=&status=0
response
{
"code": 0,
"data": {
"list": [
{
"id": 5,
"name": "人力资源",
"code": "HR",
"sort": 5,
"status": 0,
"remark": "",
"createTime": 1711284340000
},
// ...
{
"id": 1,
"name": "董事长",
"code": "ceo",
"sort": 1,
"status": 0,
"remark": "",
"createTime": 1609923828000
}
],
"total": 4
},
"msg": ""
}
SQL
| ==> Preparing: SELECT id, name, code, sort, status, remark, create_time, update_time, creator, updater, deleted FROM system_post WHERE id = ? AND deleted = 0 AND tenant_id = 1
| ==> Parameters: 5(Long)
| <== Total: 1
create
response
http://localhost:48080/admin-api/system/post/create
{"code":0,"data":6,"msg":""}
SQL
| ==> Preparing: SELECT id, name, code, sort, status, remark, create_time, update_time, creator, updater, deleted FROM system_post WHERE deleted = 0 AND (code = ?) AND tenant_id = 1
| ==> Parameters: 11(String)
| <== Total: 0
| ==> Preparing: INSERT INTO system_post (name, code, sort, status, remark, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 1)
| ==> Parameters: 11(String), 11(String), 11(Integer), 0(Integer), 11(String), 2025-02-25T11:55:30.173975600(LocalDateTime), 2025-02-25T11:55:30.173975600(LocalDateTime), 1(String), 1(String)
| <== Updates: 1
get
response
http://localhost:48080/admin-api/system/post/get?id=6
{
"code": 0,
"data": {
"id": 6,
"name": "111",
"code": "11",
"sort": 11,
"status": 0,
"remark": "11",
"createTime": 1740454993000
},
"msg": ""
}
SQL
| ==> Preparing: SELECT id, name, code, sort, status, remark, create_time, update_time, creator, updater, deleted FROM system_post WHERE id = ? AND deleted = 0 AND tenant_id = 1
| ==> Parameters: 6(Long)
| <== Total: 1
update
response
http://localhost:48080/admin-api/system/post/update
{"code":0,"data":true,"msg":""}
SQL
| ==> Preparing: UPDATE system_post SET name = ?, code = ?, sort = ?, status = ?, remark = ?, update_time = ?, updater = ? WHERE id = ? AND deleted = 0 AND tenant_id = 1
| ==> Parameters: 11(String), 11(String), 11(Integer), 0(Integer), 12(String), 2025-02-25T11:48:28.007249300(LocalDateTime), 1(String), 6(Long)
| <== Updates: 1
delete
response
http://localhost:48080/admin-api/system/post/delete?id=6
{"code":0,"data":true,"msg":""}
SQL
| ==> Preparing: SELECT id, name, code, sort, status, remark, create_time, update_time, creator, updater, deleted FROM system_post WHERE id = ? AND deleted = 0 AND tenant_id = 1
| ==> Parameters: 6(Long)
| <== Total: 1
| ==> Preparing: UPDATE system_post SET update_time = ?, updater = ?, deleted = 1 WHERE | ==> Parameters: 2025-02-25T11:50:27.426057600(LocalDateTime), 1(String), 6(Long)
| <== Updates: 1
vue
index
<!-- ERP 仓库列表 -->
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
>
<el-form-item label="仓库名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入仓库名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="仓库状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择仓库状态"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['erp:warehouse:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['erp:warehouse:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="仓库名称" align="center" prop="name" />
<el-table-column label="仓库地址" align="center" prop="address" />
<el-table-column
label="仓储费"
align="center"
prop="warehousePrice"
:formatter="erpPriceTableColumnFormatter"
/>
<el-table-column
label="搬运费"
align="center"
prop="truckagePrice"
:formatter="erpPriceTableColumnFormatter"
/>
<el-table-column label="负责人" align="center" prop="principal" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="排序" align="center" prop="sort" />
<el-table-column label="状态" align="center" prop="status">
<template #default="scope">
<dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="是否默认" align="center" prop="defaultStatus">
<template #default="scope">
<el-switch
v-model="scope.row.defaultStatus"
:active-value="true"
:inactive-value="false"
@change="handleDefaultStatusChange(scope.row)"
/>
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['erp:warehouse:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['erp:warehouse:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗:添加/修改 -->
<WarehouseForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { WarehouseApi, WarehouseVO } from '@/api/erp/stock/warehouse'
import WarehouseForm from './WarehouseForm.vue'
import { erpPriceTableColumnFormatter } from '@/utils'
/** ERP 仓库列表 */
defineOptions({ name: 'ErpWarehouse' })
const message = useMessage() // 消息弹窗
const { t } = useI18n() // 国际化
const loading = ref(true) // 列表的加载中
const list = ref<WarehouseVO[]>([]) // 列表的数据
const total = ref(0) // 列表的总页数
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
name: undefined,
status: undefined
})
const queryFormRef = ref() // 搜索的表单
const exportLoading = ref(false) // 导出的加载中
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await WarehouseApi.getWarehousePage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
// 删除的二次确认
await message.delConfirm()
// 发起删除
await WarehouseApi.deleteWarehouse(id)
message.success(t('common.delSuccess'))
// 刷新列表
await getList()
} catch {}
}
/** 修改默认状态 */
const handleDefaultStatusChange = async (row: WarehouseVO) => {
try {
// 修改状态的二次确认
const text = row.defaultStatus ? '设置' : '取消'
await message.confirm('确认要' + text + '"' + row.name + '"默认吗?')
// 发起修改状态
await WarehouseApi.updateWarehouseDefaultStatus(row.id, row.defaultStatus)
// 刷新列表
await getList()
} catch (e) {
// 取消后,进行恢复按钮
row.defaultStatus = !row.defaultStatus
}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
// 导出的二次确认
await message.exportConfirm()
// 发起导出
exportLoading.value = true
const data = await WarehouseApi.exportWarehouse(queryParams)
download.excel(data, '仓库.xls')
} catch {
} finally {
exportLoading.value = false
}
}
/** 初始化 **/
onMounted(() => {
getList()
})
</script>
from
<!-- ERP 仓库表单 -->
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="仓库名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入仓库名称" />
</el-form-item>
<el-form-item label="仓库地址" prop="address">
<el-input v-model="formData.address" placeholder="请输入仓库地址" />
</el-form-item>
<el-form-item label="仓库状态" prop="status">
<el-radio-group v-model="formData.status">
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
:key="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="仓储费" prop="warehousePrice">
<el-input-number
v-model="formData.warehousePrice"
placeholder="请输入仓储费,单位:元/天/KG"
:min="0"
:precision="2"
class="!w-1/1"
/>
</el-form-item>
<el-form-item label="搬运费" prop="truckagePrice">
<el-input-number
v-model="formData.truckagePrice"
placeholder="请输入搬运费,单位:元"
:min="0"
:precision="2"
class="!w-1/1"
/>
</el-form-item>
<el-form-item label="负责人" prop="principal">
<el-input v-model="formData.principal" placeholder="请输入负责人" />
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input-number
v-model="formData.sort"
placeholder="请输入排序"
:precision="0"
class="!w-1/1"
/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input type="textarea" v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
<el-button @click="dialogVisible = false">取 消</el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
import { WarehouseApi, WarehouseVO } from '@/api/erp/stock/warehouse'
import { CommonStatusEnum } from '@/utils/constants'
/** ERP 仓库表单 */
defineOptions({ name: 'WarehouseForm' })
const { t } = useI18n() // 国际化
const message = useMessage() // 消息弹窗
const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
const formType = ref('') // 表单的类型:create - 新增;update - 修改
const formData = ref({
id: undefined,
name: undefined,
address: undefined,
sort: undefined,
remark: undefined,
principal: undefined,
warehousePrice: undefined,
truckagePrice: undefined,
status: undefined
})
const formRules = reactive({
name: [{ required: true, message: '仓库名称不能为空', trigger: 'blur' }],
sort: [{ required: true, message: '排序不能为空', trigger: 'blur' }],
status: [{ required: true, message: '开启状态不能为空', trigger: 'blur' }]
})
const formRef = ref() // 表单 Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
// 修改时,设置数据
if (id) {
formLoading.value = true
try {
formData.value = await WarehouseApi.getWarehouse(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
/** 提交表单 */
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
const submitForm = async () => {
// 校验表单
await formRef.value.validate()
// 提交请求
formLoading.value = true
try {
const data = formData.value as unknown as WarehouseVO
if (formType.value === 'create') {
await WarehouseApi.createWarehouse(data)
message.success(t('common.createSuccess'))
} else {
await WarehouseApi.updateWarehouse(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
// 发送操作成功的事件
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
name: undefined,
address: undefined,
sort: undefined,
remark: undefined,
principal: undefined,
warehousePrice: undefined,
truckagePrice: undefined,
status: CommonStatusEnum.ENABLE
}
formRef.value?.resetFields()
}
</script>
api
import request from '@/config/axios'
// ERP 仓库 VO
export interface WarehouseVO {
id: number // 仓库编号
name: string // 仓库名称
address: string // 仓库地址
sort: number // 排序
remark: string // 备注
principal: string // 负责人
warehousePrice: number // 仓储费,单位:元
truckagePrice: number // 搬运费,单位:元
status: number // 开启状态
defaultStatus: boolean // 是否默认
}
// ERP 仓库 API
export const WarehouseApi = {
// 查询仓库分页
getWarehousePage: async (params: any) => {
return await request.get({ url: `/erp/warehouse/page`, params })
},
// 查询仓库精简列表
getWarehouseSimpleList: async () => {
return await request.get({ url: `/erp/warehouse/simple-list` })
},
// 查询仓库详情
getWarehouse: async (id: number) => {
return await request.get({ url: `/erp/warehouse/get?id=` + id })
},
// 新增仓库
createWarehouse: async (data: WarehouseVO) => {
return await request.post({ url: `/erp/warehouse/create`, data })
},
// 修改仓库
updateWarehouse: async (data: WarehouseVO) => {
return await request.put({ url: `/erp/warehouse/update`, data })
},
// 修改仓库默认状态
updateWarehouseDefaultStatus: async (id: number, defaultStatus: boolean) => {
return await request.put({
url: `/erp/warehouse/update-default-status`,
params: {
id,
defaultStatus
}
})
},
// 删除仓库
deleteWarehouse: async (id: number) => {
return await request.delete({ url: `/erp/warehouse/delete?id=` + id })
},
// 导出仓库 Excel
exportWarehouse: async (params) => {
return await request.download({ url: `/erp/warehouse/export-excel`, params })
}
}
三、ts
依赖
dependencies
芋道
依赖项 | 版本号 | 作用说明 | |
---|---|---|---|
@element-plus/icons-vue | ^2.1.0 | 提供了 Element Plus 的 Vue 3 图标组件库。 | √ |
@form-create/designer | ^3.2.6 | 一个表单设计器,用于快速创建和管理表单。 | |
@form-create/element-ui | ^3.2.11 | 集成了 Element UI 组件的表单生成器。 | |
@iconify/iconify | ^3.1.1 | 图标框架,允许使用多种图标集。 | |
@microsoft/fetch-event-source | ^2.0.1 | 用于服务器发送事件(SSE)的 fetch 实现。 | |
@videojs-player/vue | ^1.0.0 | 视频播放器 Video.js 的 Vue 组件封装。 | |
@vueuse/core | ^10.9.0 | Vue Use 是一组实用工具函数集合,旨在简化常见的开发任务。 | √ |
@wangeditor/editor | ^5.1.23 | 富文本编辑器,提供丰富的文本编辑功能。 | |
@wangeditor/editor-for-vue | ^5.1.10 | WangEditor 的 Vue 封装,方便在 Vue 项目中使用。 | |
@zxcvbn-ts/core | ^3.0.4 | 密码强度估计库,帮助评估密码的安全性。 | |
animate.css | ^4.1.1 | CSS 动画库,提供简单的跨浏览器动画效果。 | |
axios | ^1.6.8 | 基于 Promise 的 HTTP 客户端,适用于浏览器和 Node.js。 | √ |
benz-amr-recorder | ^1.1.5 | AMR 格式音频录制库。 | |
bpmn-js-token-simulation | ^0.10.0 | BPMN 流程图的令牌模拟插件。 | |
camunda-bpmn-moddle | ^7.0.1 | BPMN 2.0 模型解析器,用于 Camunda 平台。 | |
cropperjs | ^1.6.1 | JavaScript 图片裁剪库。 | |
crypto-js | ^4.2.0 | 加密算法库,支持多种加密标准如 AES、MD5 等。 | |
dayjs | ^1.11.10 | 轻量级的日期处理库,类似于 Moment.js 但体积更小。 | |
diagram-js | ^12.8.0 | BPMN 和 DMN 图表的渲染引擎。 | |
driver.js | ^1.3.1 | 引导用户了解网站或应用的新特性。 | |
echarts | ^5.5.0 | 强大的图表库,支持多种类型的图表展示。 | √ |
echarts-wordcloud | ^2.1.0 | ECharts 的词云扩展插件。 | |
element-plus | 2.8.4 | Vue 3 的桌面 UI 库,提供了一系列高质量的组件。 | √ |
fast-xml-parser | ^4.3.2 | 快速且可靠的 XML 解析器和转换器。 | |
highlight.js | ^11.9.0 | 代码高亮库,支持多种编程语言。 | |
jsencrypt | ^3.3.2 | JavaScript 的 RSA 加密库。 | √ |
lodash-es | ^4.17.21 | Lodash 的 ES 模块版本,提供了许多实用工具函数。 | |
markdown-it | ^14.1.0 | Markdown 解析器,可以将 Markdown 文本转换为 HTML。 | |
markmap-common | ^0.16.0 | Markmap 共享库,用于思维导图的渲染。 | |
markmap-lib | ^0.16.1 | Markmap 核心库,提供了思维导图的功能。 | |
markmap-toolbar | ^0.17.0 | Markmap 工具栏,增加了交互性和功能。 | |
markmap-view | ^0.16.0 | Markmap 视图库,用于显示思维导图。 | |
min-dash | ^4.1.1 | 一个轻量级的流程建模工具包。 | |
mitt | ^3.0.1 | 一个极简的事件总线实现。 | |
nprogress | ^0.2.0 | 进度条库,通常用于 AJAX 请求或页面加载时的进度提示。 | √ |
pinia | ^2.1.7 | Vue 3 的状态管理库,类似 Vuex,但更加现代化。 | √ |
pinia-plugin-persistedstate | ^3.2.1 | Pinia 的持久化插件,使得状态可以在会话间保持。 | |
qrcode | ^1.5.3 | QR 码生成库。 | |
qs | ^6.12.0 | 查询字符串解析和字符串化库。 | |
sortablejs | ^1.15.3 | 使元素可拖拽排序的库。 | |
steady-xml | ^0.1.0 | XML 处理库,专注于稳定性和性能。 | |
url | ^0.11.3 | URL 解析和格式化库。 | |
video.js | ^7.21.5 | 开源的 HTML5 视频播放器,支持多种视频格式。 | |
vue | 3.5.12 | 渐进式 JavaScript 框架,用于构建用户界面。 | √ |
vue-dompurify-html | ^4.1.4 | Vue 插件,用于净化 HTML 内容以防止 XSS 攻击。 | |
vue-i18n | 9.10.2 | Vue 的国际化插件,支持多语言切换。 | |
vue-router | ^4.3.0 | Vue 的官方路由管理器。 | |
vue-types | ^5.1.1 | Vue 类型定义辅助工具,有助于 TypeScript 项目的类型检查。 | |
vuedraggable | ^4.1.0 | 基于 Sortable.js 的 Vue 拖拽组件。 | |
web-storage-cache | ^1.1.1 | 使用 localStorage/sessionStorage 缓存数据的库。 | |
xml-js | ^1.6.11 | XML 和 JSON 之间的转换库。 |
若依
依赖项 | 版本号 | 作用说明 |
---|---|---|
@element-plus/icons-vue | 2.3.1 | 提供了 Element Plus 的 Vue 3 图标组件库。 |
@vueup/vue-quill | 1.2.0 | Vue 3 的 Quill 富文本编辑器封装。 |
@vueuse/core | 10.11.0 | Vue Use 是一组实用工具函数集合,旨在简化常见的开发任务,支持 Vue 3。 |
axios | 0.28.1 | 基于 Promise 的 HTTP 客户端,适用于浏览器和 Node.js。 |
clipboard | 2.0.11 | 处理剪贴板的 JavaScript 库,用于复制文本到剪贴板。 |
echarts | 5.5.1 | 强大的图表库,支持多种类型的图表展示。 |
element-plus | 2.7.6 | Vue 3 的桌面 UI 库,提供了一系列高质量的组件。 |
file-saver | 2.0.5 | 在客户端保存文件的库,支持多种文件格式。 |
fuse.js | 6.6.2 | 轻量级的模糊搜索库,适用于快速检索列表中的项目。 |
js-beautify | 1.14.11 | 美化 JavaScript、CSS 和 HTML 代码的库。 |
js-cookie | 3.0.5 | 用于处理浏览器 Cookies 的简单易用的库。 |
jsencrypt | 3.3.2 | JavaScript 的 RSA 加密库。 |
nprogress | 0.2.0 | 进度条库,通常用于 AJAX 请求或页面加载时的进度提示。 |
pinia | 2.1.7 | Vue 3 的状态管理库,类似 Vuex,但更加现代化。 |
splitpanes | 3.1.5 | 可以创建可调整大小的分割窗格的 Vue 组件。 |
vue | 3.4.31 | 渐进式 JavaScript 框架,用于构建用户界面。 |
vue-cropper | 1.1.1 | Vue 的图片裁剪组件。 |
vue-router | 4.4.0 | Vue 的官方路由管理器,适用于 Vue 3。 |
vuedraggable | 4.1.0 | 基于 Sortable.js 的 Vue 拖拽组件,支持拖拽排序功能。 |
传智
依赖项 | 版本号 | 作用说明 |
---|---|---|
axios | ^1.1.3 | 基于 Promise 的 HTTP 客户端,适用于浏览器和 Node.js。 |
dayjs | ^1.10.6 | 轻量级的日期处理库,提供简单的跨浏览器日期操作功能。 |
default-passive-events | ^2.0.0 | 解决被动事件监听器问题,提高页面滚动性能。 |
echarts | ^5.4.1 | 强大的图表库,支持多种类型的图表展示和交互。 |
lodash | ^4.17.21 | 提供了大量实用工具函数的 JavaScript 库,用于简化常见的编程任务。 |
moment | ^2.29.4 | 日期处理库,虽然功能强大但因其体积较大,现在更多推荐使用 dayjs 替代。 |
nprogress | ^0.2.0 | 进度条库,通常用于 AJAX 请求或页面加载时显示进度提示。 |
pinia | ^2.0.11 | Vue 3 的状态管理库,提供了响应式的状态管理解决方案。 |
pinia-plugin-persistedstate | ^3.0.1 | Pinia 插件,为状态提供持久化存储(如 localStorage),使得刷新页面后状态依旧保持。 |
qrcode.vue | ^3.2.2 | Vue 组件,用于生成二维码,方便集成到 Vue 项目中。 |
qs | ^6.10.5 | 查询字符串解析和字符串化库,用于处理 URL 查询参数。 |
tdesign-icons-vue-next | ^0.1.1 | TDesign 图标组件库的 Vue 3 版本,提供了丰富的图标资源。 |
tdesign-vue-next | ^0.25.0 | TDesign 的 Vue 3 组件库,提供了全面的 UI 组件,帮助快速构建界面。 |
tvision-color | ^1.3.1 | 用于颜色处理的库,提供了颜色计算、转换等功能。 |
vue | ^3.2.31 | 渐进式 JavaScript 框架,用于构建用户界面,特别适合单页应用程序开发。 |
vue-clipboard3 | ^2.0.0 | Vue 插件,简化文本复制到剪贴板的操作,易于在 Vue 应用中集成。 |
vue-router | ~4.1.5 | Vue 的官方路由管理器,支持动态路由、路由嵌套等特性,适用于 Vue 3。 |
devDependencies
芋道
依赖项 | 版本号 | 作用说明 | |
---|---|---|---|
@commitlint/cli | ^19.0.1 | 提供 Git 提交信息格式的校验工具。 | ❤ |
@commitlint/config-conventional | ^19.0.0 | 基于 Angular 提交规范的 commitlint 配置。 | ❤ |
@iconify/json | ^2.2.187 | Iconify 的图标数据包,提供大量的图标资源。 | |
@intlify/unplugin-vue-i18n | ^2.0.0 | Vue 3 国际化插件的 Vite 插件,简化 i18n 集成。 | |
@purge-icons/generated | ^0.9.0 | 自动生成 PurgeCSS 图标配置的库。 | |
@types/lodash-es | ^4.17.12 | Lodash ES 模块的 TypeScript 类型定义。 | |
@types/node | ^20.11.21 | Node.js 的 TypeScript 类型定义。 | |
@types/nprogress | ^0.2.3 | NProgress 的 TypeScript 类型定义。 | |
@types/qrcode | ^1.5.5 | QRCode 的 TypeScript 类型定义。 | |
@types/qs | ^6.9.12 | qs 库的 TypeScript 类型定义。 | ❤ |
@typescript-eslint/eslint-plugin | ^7.1.0 | ESLint 插件,为 TypeScript 提供额外的 linting 规则。 | ❤ |
@typescript-eslint/parser | ^7.1.0 | 将 TypeScript 转换为 ESLint 可解析的抽象语法树的解析器。 | |
@unocss/eslint-config | ^0.57.4 | UnoCSS 的 ESLint 配置。 | |
@unocss/transformer-variant-group | ^0.58.5 | UnoCSS 的变体组转换器插件。 | |
@vitejs/plugin-legacy | ^5.3.1 | Vite 插件,支持旧版浏览器兼容性。 | |
@vitejs/plugin-vue | ^5.0.4 | Vite 的 Vue 插件,支持 Vue 3 单文件组件(SFC)。 | √ |
@vitejs/plugin-vue-jsx | ^3.1.0 | 支持 Vue 3 中 JSX 语法的 Vite 插件。 | ❤ |
autoprefixer | ^10.4.17 | 自动为 CSS 添加厂商前缀,确保跨浏览器兼容性。 | |
bpmn-js | 8.10.0 | BPMN 2.0 渲染工具和编辑器。 | |
bpmn-js-properties-panel | 0.46.0 | BPMN 图形的属性面板扩展。 | |
consola | ^3.2.3 | 一个功能强大的日志记录库,支持多种输出方式。 | |
eslint | ^8.57.0 | JavaScript 和 JSX 的代码检查工具。 | ❤ |
eslint-config-prettier | ^9.1.0 | 关闭所有与 Prettier 冲突的 ESLint 规则的配置。 | |
eslint-define-config | ^2.1.0 | 简化 ESLint 配置的模块。 | |
eslint-plugin-prettier | ^5.1.3 | ESLint 的 Prettier 插件,允许在 ESLint 中使用 Prettier。 | ❤ |
eslint-plugin-vue | ^9.22.0 | Vue.js 的 ESLint 插件。 | ❤ |
lint-staged | ^15.2.2 | 对 Git 暂存区中的文件运行 linters。 | ❤ |
postcss | ^8.4.35 | CSS 后处理器,用于处理 CSS 文件并添加厂商前缀等。 | |
postcss-html | ^1.6.0 | PostCSS 插件,支持 HTML 文件中的 CSS 处理。 | |
postcss-scss | ^4.0.9 | 允许 PostCSS 解析 SCSS 语法的插件。 | |
prettier | ^3.2.5 | 代码格式化工具,支持多种语言。 | ❤ |
prettier-eslint | ^16.3.0 | 结合 Prettier 和 ESLint 功能的工具。 | |
rimraf | ^5.0.5 | 用于删除文件和目录的命令行工具。 | |
rollup | ^4.12.0 | JavaScript 模块打包器,用于构建项目。 | |
sass | ^1.69.5 | CSS 预处理器,支持变量、嵌套规则等功能。 | √ |
stylelint | ^16.2.1 | 样式表(如 CSS、SCSS)的代码检查工具。 | ❤ |
stylelint-config-html | ^1.1.0 | Stylelint 的 HTML 配置。 | |
stylelint-config-recommended | ^14.0.0 | Stylelint 推荐的基本配置。 | |
stylelint-config-standard | ^36.0.0 | Stylelint 的标准配置。 | |
stylelint-order | ^6.0.4 | Stylelint 插件,用于检查样式声明的顺序。 | |
terser | ^5.28.1 | JavaScript 压缩和混淆工具。 | |
typescript | 5.3.3 | 强类型的编程语言,JavaScript 的超集。 | ❤ |
unocss | ^0.58.5 | 原子化 CSS 引擎,快速生成原子化的样式类。 | |
unplugin-auto-import | ^0.16.7 | 自动导入常用的库或模块,减少手动引入语句的工作量。 | √ |
unplugin-element-plus | ^0.8.0 | Element Plus 组件的自动导入插件。 | |
unplugin-vue-components | ^0.25.2 | 自动注册 Vue 组件的插件。 | |
vite | 5.1.4 | 下一代前端构建工具,提供更快的开发体验和优化的构建输出。 | ❤ |
vite-plugin-compression | ^0.5.1 | Vite 的插件,用于在构建时压缩资源文件。 | |
vite-plugin-ejs | ^1.7.0 | Vite 的 EJS 模板引擎插件。 | |
vite-plugin-eslint | ^1.8.1 | 在 Vite 开发服务器中集成 ESLint。 | |
vite-plugin-progress | ^0.0.7 | Vite 构建过程中的进度条显示插件。 | |
vite-plugin-purge-icons | ^0.10.0 | Vite 插件,用于清除未使用的图标以减小文件大小。 | |
vite-plugin-svg-icons | ^2.0.1 | Vite 插件,支持 SVG 图标作为 Vue 组件使用。 | √ |
vite-plugin-top-level-await | ^1.4.4 | 支持顶层 await 语法的 Vite 插件。 | |
vue-eslint-parser | ^9.3.2 | 专门解析 Vue 单文件组件的 ESLint 解析器。 | |
vue-tsc | ^1.8.27 | Vue 项目的 TypeScript 编译器,提供类型检查功能。 | ❤ |
若依
依赖项 | 版本号 | 作用说明 |
---|---|---|
@vitejs/plugin-vue | 5.0.5 | Vite 的 Vue 插件,支持 Vue 3 单文件组件(SFC)的快速开发和热更新。 |
sass | 1.77.5 | 一种 CSS 预处理器,允许使用变量、嵌套规则、混入、函数等功能编写样式表。 |
unplugin-auto-import | 0.17.6 | 自动导入常用的库或模块,减少手动引入语句的工作量,提高开发效率。 |
unplugin-vue-setup-extend-plus | 1.0.1 | 提供对 Vue 3 setup 函数的扩展能力,简化组件逻辑的组织与管理。 |
vite | 5.3.2 | 下一代前端构建工具,提供更快的开发体验和优化的构建输出。 |
vite-plugin-compression | 0.5.1 | Vite 的插件,用于在构建时压缩资源文件(如 HTML、CSS、JS),减小文件大小。 |
vite-plugin-svg-icons | 2.0.1 | Vite 的插件,支持 SVG 图标作为 Vue 组件使用,并可以方便地管理和引用 SVG 图标。 |
传智
依赖项 | 版本号 | 作用说明 |
---|---|---|
@commitlint/cli | ^17.0.3 | 提供 Git 提交信息格式的校验工具。 |
@commitlint/config-conventional | ^17.0.3 | 基于 Angular 提交规范的 commitlint 配置。 |
@types/echarts | ^4.9.10 | ECharts 的 TypeScript 类型定义。 |
@types/lodash | ^4.14.182 | Lodash 库的 TypeScript 类型定义。 |
@types/qs | ^6.9.7 | qs 库的 TypeScript 类型定义。 |
@types/ws | ^8.2.2 | WebSocket 的 TypeScript 类型定义。 |
@typescript-eslint/eslint-plugin | ^4.29.3 | ESLint 插件,为 TypeScript 提供额外的 linting 规则。 |
@typescript-eslint/parser | ^4.29.3 | 将 TypeScript 转换为 ESLint 可解析的抽象语法树的解析器。 |
@vitejs/plugin-vue | ^2.3.1 | Vite 的 Vue 插件,支持 Vue 3 单文件组件(SFC)。 |
@vitejs/plugin-vue-jsx | ^1.1.7 | 支持 Vue 3 中 JSX 语法的 Vite 插件。 |
@vue/compiler-sfc | ^3.0.5 | Vue 3 的单文件组件编译器。 |
@vue/eslint-config-typescript | ^11.0.0 | Vue 和 TypeScript 结合使用的 ESLint 配置。 |
commitizen | ^4.2.4 | 提供了一种标准化提交信息的方式,简化了 Git 提交流程。 |
cz-conventional-changelog | ^3.3.0 | Commitizen 的适配器,用于生成符合 Conventional Commits 规范的日志。 |
eslint | ^7.32.0 | JavaScript 和 JSX 的代码检查工具。 |
eslint-config-airbnb-base | ^14.2.1 | Airbnb 的 ESLint 配置,提供了严格的编码标准。 |
eslint-config-prettier | ^8.3.0 | 关闭所有与 Prettier 冲突的 ESLint 规则的配置。 |
eslint-plugin-import | ^2.24.1 | ESLint 插件,提供了对 import/export 语句的检查规则。 |
eslint-plugin-prettier | ^4.0.0 | ESLint 的 Prettier 插件,允许在 ESLint 中使用 Prettier。 |
eslint-plugin-vue | ^9.2.0 | Vue.js 的 ESLint 插件。 |
eslint-plugin-vue-scoped-css | ^2.2.0 | 对 Vue 组件中的 scoped CSS 进行检查的 ESLint 插件。 |
husky | ^7.0.4 | Git Hook 工具,可以在 Git 操作之前或之后运行自定义脚本。 |
less | ^4.1.1 | CSS 预处理器,扩展了 CSS 语言,增加了变量、混合、函数等功能。 |
lint-staged | ^12.1.2 | 对 Git 暂存区中的文件运行 linters。 |
mockjs | ^1.1.0 | 用于前端数据模拟的库,可以快速生成随机数据。 |
prettier | ^2.4.1 | 代码格式化工具,支持多种语言。 |
stylelint | ~13.13.1 | 样式表(如 CSS、SCSS)的代码检查工具。 |
stylelint-config-prettier | ~9.0.3 | Stylelint 的 Prettier 配置,避免与 Prettier 的冲突。 |
stylelint-less | ^1.0.6 | 使 Stylelint 支持 LESS 文件的插件。 |
stylelint-order | ~4.1.0 | Stylelint 插件,用于检查样式声明的顺序。 |
typescript | ~4.8.4 | 强类型的编程语言,JavaScript 的超集。 |
vite | ^2.7.1 | 下一代前端构建工具,提供更快的开发体验和优化的构建输出。 |
vite-plugin-mock | ^2.9.6 | Vite 插件,用于集成 Mock.js 实现数据模拟。 |
vite-svg-loader | ^3.1.0 | Vite 插件,用于导入和使用 SVG 文件作为 Vue 组件。 |
vue-tsc | ^1.0.8 | Vue 项目的 TypeScript 编译器,提供类型检查功能。 |