当前位置: 首页 > news >正文

若依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.0Vue Use 是一组实用工具函数集合,旨在简化常见的开发任务。
@wangeditor/editor^5.1.23富文本编辑器,提供丰富的文本编辑功能。
@wangeditor/editor-for-vue^5.1.10WangEditor 的 Vue 封装,方便在 Vue 项目中使用。
@zxcvbn-ts/core^3.0.4密码强度估计库,帮助评估密码的安全性。
animate.css^4.1.1CSS 动画库,提供简单的跨浏览器动画效果。
axios^1.6.8基于 Promise 的 HTTP 客户端,适用于浏览器和 Node.js。
benz-amr-recorder^1.1.5AMR 格式音频录制库。
bpmn-js-token-simulation^0.10.0BPMN 流程图的令牌模拟插件。
camunda-bpmn-moddle^7.0.1BPMN 2.0 模型解析器,用于 Camunda 平台。
cropperjs^1.6.1JavaScript 图片裁剪库。
crypto-js^4.2.0加密算法库,支持多种加密标准如 AES、MD5 等。
dayjs^1.11.10轻量级的日期处理库,类似于 Moment.js 但体积更小。
diagram-js^12.8.0BPMN 和 DMN 图表的渲染引擎。
driver.js^1.3.1引导用户了解网站或应用的新特性。
echarts^5.5.0强大的图表库,支持多种类型的图表展示。
echarts-wordcloud^2.1.0ECharts 的词云扩展插件。
element-plus2.8.4Vue 3 的桌面 UI 库,提供了一系列高质量的组件。
fast-xml-parser^4.3.2快速且可靠的 XML 解析器和转换器。
highlight.js^11.9.0代码高亮库,支持多种编程语言。
jsencrypt^3.3.2JavaScript 的 RSA 加密库。
lodash-es^4.17.21Lodash 的 ES 模块版本,提供了许多实用工具函数。
markdown-it^14.1.0Markdown 解析器,可以将 Markdown 文本转换为 HTML。
markmap-common^0.16.0Markmap 共享库,用于思维导图的渲染。
markmap-lib^0.16.1Markmap 核心库,提供了思维导图的功能。
markmap-toolbar^0.17.0Markmap 工具栏,增加了交互性和功能。
markmap-view^0.16.0Markmap 视图库,用于显示思维导图。
min-dash^4.1.1一个轻量级的流程建模工具包。
mitt^3.0.1一个极简的事件总线实现。
nprogress^0.2.0进度条库,通常用于 AJAX 请求或页面加载时的进度提示。
pinia^2.1.7Vue 3 的状态管理库,类似 Vuex,但更加现代化。
pinia-plugin-persistedstate^3.2.1Pinia 的持久化插件,使得状态可以在会话间保持。
qrcode^1.5.3QR 码生成库。
qs^6.12.0查询字符串解析和字符串化库。
sortablejs^1.15.3使元素可拖拽排序的库。
steady-xml^0.1.0XML 处理库,专注于稳定性和性能。
url^0.11.3URL 解析和格式化库。
video.js^7.21.5开源的 HTML5 视频播放器,支持多种视频格式。
vue3.5.12渐进式 JavaScript 框架,用于构建用户界面。
vue-dompurify-html^4.1.4Vue 插件,用于净化 HTML 内容以防止 XSS 攻击。
vue-i18n9.10.2Vue 的国际化插件,支持多语言切换。
vue-router^4.3.0Vue 的官方路由管理器。
vue-types^5.1.1Vue 类型定义辅助工具,有助于 TypeScript 项目的类型检查。
vuedraggable^4.1.0基于 Sortable.js 的 Vue 拖拽组件。
web-storage-cache^1.1.1使用 localStorage/sessionStorage 缓存数据的库。
xml-js^1.6.11XML 和 JSON 之间的转换库。
若依
依赖项版本号作用说明
@element-plus/icons-vue2.3.1提供了 Element Plus 的 Vue 3 图标组件库。
@vueup/vue-quill1.2.0Vue 3 的 Quill 富文本编辑器封装。
@vueuse/core10.11.0Vue Use 是一组实用工具函数集合,旨在简化常见的开发任务,支持 Vue 3。
axios0.28.1基于 Promise 的 HTTP 客户端,适用于浏览器和 Node.js。
clipboard2.0.11处理剪贴板的 JavaScript 库,用于复制文本到剪贴板。
echarts5.5.1强大的图表库,支持多种类型的图表展示。
element-plus2.7.6Vue 3 的桌面 UI 库,提供了一系列高质量的组件。
file-saver2.0.5在客户端保存文件的库,支持多种文件格式。
fuse.js6.6.2轻量级的模糊搜索库,适用于快速检索列表中的项目。
js-beautify1.14.11美化 JavaScript、CSS 和 HTML 代码的库。
js-cookie3.0.5用于处理浏览器 Cookies 的简单易用的库。
jsencrypt3.3.2JavaScript 的 RSA 加密库。
nprogress0.2.0进度条库,通常用于 AJAX 请求或页面加载时的进度提示。
pinia2.1.7Vue 3 的状态管理库,类似 Vuex,但更加现代化。
splitpanes3.1.5可以创建可调整大小的分割窗格的 Vue 组件。
vue3.4.31渐进式 JavaScript 框架,用于构建用户界面。
vue-cropper1.1.1Vue 的图片裁剪组件。
vue-router4.4.0Vue 的官方路由管理器,适用于 Vue 3。
vuedraggable4.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.11Vue 3 的状态管理库,提供了响应式的状态管理解决方案。
pinia-plugin-persistedstate^3.0.1Pinia 插件,为状态提供持久化存储(如 localStorage),使得刷新页面后状态依旧保持。
qrcode.vue^3.2.2Vue 组件,用于生成二维码,方便集成到 Vue 项目中。
qs^6.10.5查询字符串解析和字符串化库,用于处理 URL 查询参数。
tdesign-icons-vue-next^0.1.1TDesign 图标组件库的 Vue 3 版本,提供了丰富的图标资源。
tdesign-vue-next^0.25.0TDesign 的 Vue 3 组件库,提供了全面的 UI 组件,帮助快速构建界面。
tvision-color^1.3.1用于颜色处理的库,提供了颜色计算、转换等功能。
vue^3.2.31渐进式 JavaScript 框架,用于构建用户界面,特别适合单页应用程序开发。
vue-clipboard3^2.0.0Vue 插件,简化文本复制到剪贴板的操作,易于在 Vue 应用中集成。
vue-router~4.1.5Vue 的官方路由管理器,支持动态路由、路由嵌套等特性,适用于 Vue 3。

devDependencies

芋道
依赖项版本号作用说明
@commitlint/cli^19.0.1提供 Git 提交信息格式的校验工具。
@commitlint/config-conventional^19.0.0基于 Angular 提交规范的 commitlint 配置。
@iconify/json^2.2.187Iconify 的图标数据包,提供大量的图标资源。
@intlify/unplugin-vue-i18n^2.0.0Vue 3 国际化插件的 Vite 插件,简化 i18n 集成。
@purge-icons/generated^0.9.0自动生成 PurgeCSS 图标配置的库。
@types/lodash-es^4.17.12Lodash ES 模块的 TypeScript 类型定义。
@types/node^20.11.21Node.js 的 TypeScript 类型定义。
@types/nprogress^0.2.3NProgress 的 TypeScript 类型定义。
@types/qrcode^1.5.5QRCode 的 TypeScript 类型定义。
@types/qs^6.9.12qs 库的 TypeScript 类型定义。
@typescript-eslint/eslint-plugin^7.1.0ESLint 插件,为 TypeScript 提供额外的 linting 规则。
@typescript-eslint/parser^7.1.0将 TypeScript 转换为 ESLint 可解析的抽象语法树的解析器。
@unocss/eslint-config^0.57.4UnoCSS 的 ESLint 配置。
@unocss/transformer-variant-group^0.58.5UnoCSS 的变体组转换器插件。
@vitejs/plugin-legacy^5.3.1Vite 插件,支持旧版浏览器兼容性。
@vitejs/plugin-vue^5.0.4Vite 的 Vue 插件,支持 Vue 3 单文件组件(SFC)。
@vitejs/plugin-vue-jsx^3.1.0支持 Vue 3 中 JSX 语法的 Vite 插件。
autoprefixer^10.4.17自动为 CSS 添加厂商前缀,确保跨浏览器兼容性。
bpmn-js8.10.0BPMN 2.0 渲染工具和编辑器。
bpmn-js-properties-panel0.46.0BPMN 图形的属性面板扩展。
consola^3.2.3一个功能强大的日志记录库,支持多种输出方式。
eslint^8.57.0JavaScript 和 JSX 的代码检查工具。
eslint-config-prettier^9.1.0关闭所有与 Prettier 冲突的 ESLint 规则的配置。
eslint-define-config^2.1.0简化 ESLint 配置的模块。
eslint-plugin-prettier^5.1.3ESLint 的 Prettier 插件,允许在 ESLint 中使用 Prettier。
eslint-plugin-vue^9.22.0Vue.js 的 ESLint 插件。
lint-staged^15.2.2对 Git 暂存区中的文件运行 linters。
postcss^8.4.35CSS 后处理器,用于处理 CSS 文件并添加厂商前缀等。
postcss-html^1.6.0PostCSS 插件,支持 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.0JavaScript 模块打包器,用于构建项目。
sass^1.69.5CSS 预处理器,支持变量、嵌套规则等功能。
stylelint^16.2.1样式表(如 CSS、SCSS)的代码检查工具。
stylelint-config-html^1.1.0Stylelint 的 HTML 配置。
stylelint-config-recommended^14.0.0Stylelint 推荐的基本配置。
stylelint-config-standard^36.0.0Stylelint 的标准配置。
stylelint-order^6.0.4Stylelint 插件,用于检查样式声明的顺序。
terser^5.28.1JavaScript 压缩和混淆工具。
typescript5.3.3强类型的编程语言,JavaScript 的超集。
unocss^0.58.5原子化 CSS 引擎,快速生成原子化的样式类。
unplugin-auto-import^0.16.7自动导入常用的库或模块,减少手动引入语句的工作量。
unplugin-element-plus^0.8.0Element Plus 组件的自动导入插件。
unplugin-vue-components^0.25.2自动注册 Vue 组件的插件。
vite5.1.4下一代前端构建工具,提供更快的开发体验和优化的构建输出。
vite-plugin-compression^0.5.1Vite 的插件,用于在构建时压缩资源文件。
vite-plugin-ejs^1.7.0Vite 的 EJS 模板引擎插件。
vite-plugin-eslint^1.8.1在 Vite 开发服务器中集成 ESLint。
vite-plugin-progress^0.0.7Vite 构建过程中的进度条显示插件。
vite-plugin-purge-icons^0.10.0Vite 插件,用于清除未使用的图标以减小文件大小。
vite-plugin-svg-icons^2.0.1Vite 插件,支持 SVG 图标作为 Vue 组件使用。
vite-plugin-top-level-await^1.4.4支持顶层 await 语法的 Vite 插件。
vue-eslint-parser^9.3.2专门解析 Vue 单文件组件的 ESLint 解析器。
vue-tsc^1.8.27Vue 项目的 TypeScript 编译器,提供类型检查功能。
若依
依赖项版本号作用说明
@vitejs/plugin-vue5.0.5Vite 的 Vue 插件,支持 Vue 3 单文件组件(SFC)的快速开发和热更新。
sass1.77.5一种 CSS 预处理器,允许使用变量、嵌套规则、混入、函数等功能编写样式表。
unplugin-auto-import0.17.6自动导入常用的库或模块,减少手动引入语句的工作量,提高开发效率。
unplugin-vue-setup-extend-plus1.0.1提供对 Vue 3 setup 函数的扩展能力,简化组件逻辑的组织与管理。
vite5.3.2下一代前端构建工具,提供更快的开发体验和优化的构建输出。
vite-plugin-compression0.5.1Vite 的插件,用于在构建时压缩资源文件(如 HTML、CSS、JS),减小文件大小。
vite-plugin-svg-icons2.0.1Vite 的插件,支持 SVG 图标作为 Vue 组件使用,并可以方便地管理和引用 SVG 图标。
传智
依赖项版本号作用说明
@commitlint/cli^17.0.3提供 Git 提交信息格式的校验工具。
@commitlint/config-conventional^17.0.3基于 Angular 提交规范的 commitlint 配置。
@types/echarts^4.9.10ECharts 的 TypeScript 类型定义。
@types/lodash^4.14.182Lodash 库的 TypeScript 类型定义。
@types/qs^6.9.7qs 库的 TypeScript 类型定义。
@types/ws^8.2.2WebSocket 的 TypeScript 类型定义。
@typescript-eslint/eslint-plugin^4.29.3ESLint 插件,为 TypeScript 提供额外的 linting 规则。
@typescript-eslint/parser^4.29.3将 TypeScript 转换为 ESLint 可解析的抽象语法树的解析器。
@vitejs/plugin-vue^2.3.1Vite 的 Vue 插件,支持 Vue 3 单文件组件(SFC)。
@vitejs/plugin-vue-jsx^1.1.7支持 Vue 3 中 JSX 语法的 Vite 插件。
@vue/compiler-sfc^3.0.5Vue 3 的单文件组件编译器。
@vue/eslint-config-typescript^11.0.0Vue 和 TypeScript 结合使用的 ESLint 配置。
commitizen^4.2.4提供了一种标准化提交信息的方式,简化了 Git 提交流程。
cz-conventional-changelog^3.3.0Commitizen 的适配器,用于生成符合 Conventional Commits 规范的日志。
eslint^7.32.0JavaScript 和 JSX 的代码检查工具。
eslint-config-airbnb-base^14.2.1Airbnb 的 ESLint 配置,提供了严格的编码标准。
eslint-config-prettier^8.3.0关闭所有与 Prettier 冲突的 ESLint 规则的配置。
eslint-plugin-import^2.24.1ESLint 插件,提供了对 import/export 语句的检查规则。
eslint-plugin-prettier^4.0.0ESLint 的 Prettier 插件,允许在 ESLint 中使用 Prettier。
eslint-plugin-vue^9.2.0Vue.js 的 ESLint 插件。
eslint-plugin-vue-scoped-css^2.2.0对 Vue 组件中的 scoped CSS 进行检查的 ESLint 插件。
husky^7.0.4Git Hook 工具,可以在 Git 操作之前或之后运行自定义脚本。
less^4.1.1CSS 预处理器,扩展了 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.3Stylelint 的 Prettier 配置,避免与 Prettier 的冲突。
stylelint-less^1.0.6使 Stylelint 支持 LESS 文件的插件。
stylelint-order~4.1.0Stylelint 插件,用于检查样式声明的顺序。
typescript~4.8.4强类型的编程语言,JavaScript 的超集。
vite^2.7.1下一代前端构建工具,提供更快的开发体验和优化的构建输出。
vite-plugin-mock^2.9.6Vite 插件,用于集成 Mock.js 实现数据模拟。
vite-svg-loader^3.1.0Vite 插件,用于导入和使用 SVG 文件作为 Vue 组件。
vue-tsc^1.0.8Vue 项目的 TypeScript 编译器,提供类型检查功能。

相关文章:

  • LeetCode 21. 合并两个有序链表(Python)
  • 阿里万相,正式开源
  • SLAM文献之-DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB-D Cameras
  • Android中的ANR(Application Not Responding)现象
  • 计算机网络进化史:从烽火台到元宇宙的信息高速公路
  • Android中的AtomicLong:原理、使用与实战指南
  • SpringBoot 整合 Vault - 解决敏感配置信息的动态加密与权限管控问题
  • 一些有用的电子书
  • 四十二:VSCODE打开新文件覆盖上一个文件窗口问题
  • 特征工程如何让KNN准确率提升20%?标准化、筛选与编码全解析
  • 动规【力扣】72. 编辑距离
  • 【Python运维】用Python自动化AWS资源管理:利用boto3实现高效管理S3桶和EC2实例
  • MySQL-简介与基本命令
  • LeetCode 热题 100----1.两数之和
  • 题目 3216 ⭐团建⭐【DFS】蓝桥杯2024年第十五届省赛
  • AI 编译器学习笔记之十六 -- TVM
  • 在 MyBatis 中,若数据库字段名与 SQL 保留字冲突解决办法
  • Spring Boot Gradle 项目中使用 @Slf4j 注解
  • 容器与虚拟机:云时代的底层架构博弈
  • 玩转大语言模型——Ubuntu系统环境下使用llama.cpp进行CPU与GPU混合推理deepseek
  • 潍坊做网站建设/今日国际重大新闻
  • 网站备案是在哪里的/官网排名优化方案
  • 贵阳制作网站/百度识图在线使用
  • jquery 购物网站/app制作
  • 东莞网站制作/郑州网站优化seo
  • 传奇私服发布网网站建设/简单制作html静态网页