修复各种打包错误
This commit is contained in:
parent
48f4020fc8
commit
69b4bf86bd
|
@ -1,126 +0,0 @@
|
||||||
// @/apis/bussiness/bussiness.js - 根据后端接口重新编写
|
|
||||||
import http from '@/utils/http';
|
|
||||||
|
|
||||||
const { request } = http;
|
|
||||||
|
|
||||||
// 获取文件夹列表(分页)
|
|
||||||
export function getFolderListApi(params) {
|
|
||||||
return request({
|
|
||||||
url: '/businessData/folder/list',
|
|
||||||
method: 'get',
|
|
||||||
params: {
|
|
||||||
page: params?.page || 1,
|
|
||||||
pageSize: params?.pageSize || 10,
|
|
||||||
folderName: params?.folderName
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取文件列表(分页)
|
|
||||||
export function getFilesApi(params) {
|
|
||||||
return request({
|
|
||||||
url: '/businessData/file/list',
|
|
||||||
method: 'get',
|
|
||||||
params: {
|
|
||||||
page: params?.page || 1,
|
|
||||||
pageSize: params?.pageSize || 10,
|
|
||||||
folderId: params?.folderId || 0
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 创建文件夹
|
|
||||||
export function createFolderApi(data) {
|
|
||||||
return request({
|
|
||||||
url: '/businessData/folder/creatFolder',
|
|
||||||
method: 'post',
|
|
||||||
data: {
|
|
||||||
name: data.name,
|
|
||||||
parentId: data.parentId || 0
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 重命名文件夹
|
|
||||||
export function updateFolderApi(folderId, newName) {
|
|
||||||
return request({
|
|
||||||
url: '/businessData/folder/rename',
|
|
||||||
method: 'put',
|
|
||||||
params: {
|
|
||||||
folderId: folderId,
|
|
||||||
newName: newName
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 删除文件夹
|
|
||||||
export function deleteFolderApi(folderId) {
|
|
||||||
return request({
|
|
||||||
url: '/businessData/folder/delete',
|
|
||||||
method: 'delete',
|
|
||||||
params: {
|
|
||||||
folderId: folderId
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 上传文件
|
|
||||||
export function uploadFileApi(file, folderId, onUploadProgress, cancelToken) {
|
|
||||||
const formData = new FormData();
|
|
||||||
formData.append('file', file);
|
|
||||||
|
|
||||||
return request({
|
|
||||||
url: '/businessData/file/add',
|
|
||||||
method: 'post',
|
|
||||||
params: {
|
|
||||||
folderId: folderId
|
|
||||||
},
|
|
||||||
data: formData,
|
|
||||||
onUploadProgress,
|
|
||||||
cancelToken,
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'multipart/form-data'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 下载文件
|
|
||||||
export function downloadFileApi(fileId) {
|
|
||||||
return request({
|
|
||||||
url: '/businessData/file/download',
|
|
||||||
method: 'get',
|
|
||||||
params: {
|
|
||||||
fileId: fileId
|
|
||||||
},
|
|
||||||
responseType: 'blob'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 删除文件
|
|
||||||
export function deleteFileApi(fileId) {
|
|
||||||
return request({
|
|
||||||
url: '/businessData/file/delete',
|
|
||||||
method: 'delete',
|
|
||||||
params: {
|
|
||||||
fileId: fileId
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 预览文件(后端没有提供预览接口,使用下载接口)
|
|
||||||
export function previewFileApi(fileId) {
|
|
||||||
return request({
|
|
||||||
url: '/businessData/file/download',
|
|
||||||
method: 'get',
|
|
||||||
params: {
|
|
||||||
fileId: fileId
|
|
||||||
},
|
|
||||||
responseType: 'blob'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 重命名文件(后端没有提供重命名接口,需要先删除再上传)
|
|
||||||
export function updateFileNameApi(fileId, data) {
|
|
||||||
// 注意:后端没有提供文件重命名接口,这里返回一个Promise.reject
|
|
||||||
return Promise.reject(new Error('后端暂不支持文件重命名功能'));
|
|
||||||
}
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
import http from '@/utils/http'
|
||||||
|
import type * as T from '@/types/equipment.d'
|
||||||
|
|
||||||
|
const BASE_URL = '/equipment'
|
||||||
|
|
||||||
|
/** @desc 分页查询设备列表 */
|
||||||
|
export function pageEquipment(query: T.EquipmentPageQuery) {
|
||||||
|
return http.get<T.EquipmentResp[]>(`${BASE_URL}/page`, query)
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @desc 查询设备列表 */
|
||||||
|
export function listEquipment(query?: T.EquipmentPageQuery) {
|
||||||
|
return http.get<T.EquipmentResp[]>(`${BASE_URL}/list`, query)
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @desc 查询设备详情 */
|
||||||
|
export function getEquipmentDetail(equipmentId: string) {
|
||||||
|
return http.get<T.EquipmentResp>(`${BASE_URL}/detail/${equipmentId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @desc 新增设备 */
|
||||||
|
export function createEquipment(data: T.EquipmentReq) {
|
||||||
|
return http.post(`${BASE_URL}`, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @desc 更新设备 */
|
||||||
|
export function updateEquipment(equipmentId: string, data: T.EquipmentReq) {
|
||||||
|
return http.put(`${BASE_URL}/${equipmentId}`, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @desc 删除设备 */
|
||||||
|
export function deleteEquipment(equipmentId: string) {
|
||||||
|
return http.del(`${BASE_URL}/${equipmentId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @desc 设备状态变更 */
|
||||||
|
export function changeEquipmentStatus(equipmentId: string, status: string) {
|
||||||
|
return http.put(`${BASE_URL}/${equipmentId}/status`, { status })
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @desc 设备分配 */
|
||||||
|
export function assignEquipment(equipmentId: string, userId: string) {
|
||||||
|
return http.put(`${BASE_URL}/${equipmentId}/assign`, { userId })
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @desc 设备归还 */
|
||||||
|
export function returnEquipment(equipmentId: string) {
|
||||||
|
return http.put(`${BASE_URL}/${equipmentId}/return`)
|
||||||
|
}
|
|
@ -0,0 +1,277 @@
|
||||||
|
/**
|
||||||
|
* 设备列表查询请求
|
||||||
|
*/
|
||||||
|
export interface EquipmentListReq {
|
||||||
|
/** 最低价格 */
|
||||||
|
minPrice?: number
|
||||||
|
/** 最高价格 */
|
||||||
|
maxPrice?: number
|
||||||
|
/** 设备名称 */
|
||||||
|
equipmentName?: string
|
||||||
|
/** 设备类型 */
|
||||||
|
equipmentType?: string
|
||||||
|
/** 设备状态 */
|
||||||
|
equipmentStatus?: string
|
||||||
|
/** 设备序列号 */
|
||||||
|
equipmentSn?: string
|
||||||
|
/** 资产编号 */
|
||||||
|
assetCode?: string
|
||||||
|
/** 品牌 */
|
||||||
|
brand?: string
|
||||||
|
/** 位置状态 */
|
||||||
|
locationStatus?: string
|
||||||
|
/** 健康状态 */
|
||||||
|
healthStatus?: string
|
||||||
|
/** 负责人 */
|
||||||
|
responsiblePerson?: string
|
||||||
|
/** 使用状态 */
|
||||||
|
useStatus?: string
|
||||||
|
/** 项目ID */
|
||||||
|
projectId?: string
|
||||||
|
/** 使用人ID */
|
||||||
|
userId?: string
|
||||||
|
/** 设备型号 */
|
||||||
|
equipmentModel?: string
|
||||||
|
/** 配置规格/参数 */
|
||||||
|
specification?: string
|
||||||
|
/** 设备当前物理位置 */
|
||||||
|
physicalLocation?: string
|
||||||
|
/** 供应商名称 */
|
||||||
|
supplierName?: string
|
||||||
|
/** 采购订单号 */
|
||||||
|
purchaseOrder?: string
|
||||||
|
/** 维护人员 */
|
||||||
|
maintenancePerson?: string
|
||||||
|
/** 次户号 */
|
||||||
|
accountNumber?: string
|
||||||
|
/** 数量 */
|
||||||
|
quantity?: number
|
||||||
|
/** 单价 */
|
||||||
|
unitPrice?: number
|
||||||
|
/** 总价 */
|
||||||
|
totalPrice?: number
|
||||||
|
/** 盘点依据 */
|
||||||
|
inventoryBasis?: string
|
||||||
|
/** 动态记录 */
|
||||||
|
dynamicRecord?: string
|
||||||
|
/** 资产备注 */
|
||||||
|
assetRemark?: string
|
||||||
|
/** 采购时间开始 */
|
||||||
|
purchaseTimeStart?: string
|
||||||
|
/** 采购时间结束 */
|
||||||
|
purchaseTimeEnd?: string
|
||||||
|
/** 入库时间开始 */
|
||||||
|
inStockTimeStart?: string
|
||||||
|
/** 入库时间结束 */
|
||||||
|
inStockTimeEnd?: string
|
||||||
|
/** 启用时间开始 */
|
||||||
|
activationTimeStart?: string
|
||||||
|
/** 启用时间结束 */
|
||||||
|
activationTimeEnd?: string
|
||||||
|
/** 当前页码 */
|
||||||
|
pageNum?: number
|
||||||
|
/** 每页大小 */
|
||||||
|
pageSize?: number
|
||||||
|
/** 排序字段 */
|
||||||
|
orderBy?: string
|
||||||
|
/** 排序方向 */
|
||||||
|
orderDirection?: string
|
||||||
|
/** 页码 */
|
||||||
|
page?: number
|
||||||
|
/** 库存条码 */
|
||||||
|
inventoryBarcode?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页响应格式
|
||||||
|
*/
|
||||||
|
export interface PageResult<T> {
|
||||||
|
code: number
|
||||||
|
msg: string
|
||||||
|
rows: T[]
|
||||||
|
total: number
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备信息响应
|
||||||
|
*/
|
||||||
|
export interface EquipmentResp {
|
||||||
|
/** 设备ID */
|
||||||
|
equipmentId: string
|
||||||
|
/** 资产编号 */
|
||||||
|
assetCode?: string
|
||||||
|
/** 设备名称 */
|
||||||
|
equipmentName: string
|
||||||
|
/** 设备类型 */
|
||||||
|
equipmentType: string
|
||||||
|
/** 设备类型描述 */
|
||||||
|
equipmentTypeLabel?: string
|
||||||
|
/** 设备型号 */
|
||||||
|
equipmentModel: string
|
||||||
|
/** 设备SN */
|
||||||
|
equipmentSn: string
|
||||||
|
/** 品牌 */
|
||||||
|
brand?: string
|
||||||
|
/** 配置规格/参数 */
|
||||||
|
specification?: string
|
||||||
|
/** 设备状态 */
|
||||||
|
equipmentStatus: string
|
||||||
|
/** 设备状态描述 */
|
||||||
|
equipmentStatusLabel?: string
|
||||||
|
/** 使用状态 */
|
||||||
|
useStatus: string
|
||||||
|
/** 位置状态 */
|
||||||
|
locationStatus?: string
|
||||||
|
/** 位置状态描述 */
|
||||||
|
locationStatusLabel?: string
|
||||||
|
/** 设备当前物理位置 */
|
||||||
|
physicalLocation?: string
|
||||||
|
/** 负责人 */
|
||||||
|
responsiblePerson?: string
|
||||||
|
/** 健康状态 */
|
||||||
|
healthStatus?: string
|
||||||
|
/** 健康状态描述 */
|
||||||
|
healthStatusLabel?: string
|
||||||
|
/** 采购时间 */
|
||||||
|
purchaseTime?: string
|
||||||
|
/** 入库时间 */
|
||||||
|
inStockTime?: string
|
||||||
|
/** 启用时间 */
|
||||||
|
activationTime?: string
|
||||||
|
/** 预计报废时间 */
|
||||||
|
expectedScrapTime?: string
|
||||||
|
/** 实际报废时间 */
|
||||||
|
actualScrapTime?: string
|
||||||
|
/** 状态变更时间 */
|
||||||
|
statusChangeTime?: string
|
||||||
|
/** 采购订单 */
|
||||||
|
purchaseOrder?: string
|
||||||
|
/** 供应商名称 */
|
||||||
|
supplierName?: string
|
||||||
|
/** 采购价格 */
|
||||||
|
purchasePrice?: number
|
||||||
|
/** 当前净值 */
|
||||||
|
currentNetValue?: number
|
||||||
|
/** 折旧方法 */
|
||||||
|
depreciationMethod?: string
|
||||||
|
/** 折旧年限 */
|
||||||
|
depreciationYears?: number
|
||||||
|
/** 残值 */
|
||||||
|
salvageValue?: number
|
||||||
|
/** 保修截止日期 */
|
||||||
|
warrantyExpireDate?: string
|
||||||
|
/** 上次维护日期 */
|
||||||
|
lastMaintenanceDate?: string
|
||||||
|
/** 下次维护日期 */
|
||||||
|
nextMaintenanceDate?: string
|
||||||
|
/** 维护人员 */
|
||||||
|
maintenancePerson?: string
|
||||||
|
/** 库存条码 */
|
||||||
|
inventoryBarcode?: string
|
||||||
|
/** 资产备注 */
|
||||||
|
assetRemark?: string
|
||||||
|
/** 项目ID */
|
||||||
|
projectId?: string
|
||||||
|
/** 项目名称 */
|
||||||
|
projectName?: string
|
||||||
|
/** 使用人ID */
|
||||||
|
userId?: string
|
||||||
|
/** 使用人 */
|
||||||
|
name?: string
|
||||||
|
/** 创建时间 */
|
||||||
|
createTime?: string
|
||||||
|
/** 更新时间 */
|
||||||
|
updateTime?: string
|
||||||
|
/** 次户号 */
|
||||||
|
accountNumber?: string
|
||||||
|
/** 数量 */
|
||||||
|
quantity?: number
|
||||||
|
/** 单价 */
|
||||||
|
unitPrice?: number
|
||||||
|
/** 总价 */
|
||||||
|
totalPrice?: number
|
||||||
|
/** 盘点依据 */
|
||||||
|
inventoryBasis?: string
|
||||||
|
/** 动态记录 */
|
||||||
|
dynamicRecord?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备请求
|
||||||
|
*/
|
||||||
|
export interface EquipmentReq {
|
||||||
|
/** 设备名称 */
|
||||||
|
equipmentName: string
|
||||||
|
/** 设备型号 */
|
||||||
|
equipmentModel: string
|
||||||
|
/** 设备类型 */
|
||||||
|
equipmentType: string
|
||||||
|
/** 设备状态 */
|
||||||
|
equipmentStatus: string
|
||||||
|
/** 使用状态 */
|
||||||
|
useStatus: string
|
||||||
|
/** 设备序列号 */
|
||||||
|
equipmentSn: string
|
||||||
|
/** 资产编号 */
|
||||||
|
assetCode?: string
|
||||||
|
/** 品牌 */
|
||||||
|
brand?: string
|
||||||
|
/** 配置规格/参数 */
|
||||||
|
specification?: string
|
||||||
|
/** 位置状态 */
|
||||||
|
locationStatus?: string
|
||||||
|
/** 设备当前物理位置 */
|
||||||
|
physicalLocation?: string
|
||||||
|
/** 负责人 */
|
||||||
|
responsiblePerson?: string
|
||||||
|
/** 健康状态 */
|
||||||
|
healthStatus?: string
|
||||||
|
/** 采购时间 */
|
||||||
|
purchaseTime?: string
|
||||||
|
/** 入库时间 */
|
||||||
|
inStockTime?: string
|
||||||
|
/** 启用时间 */
|
||||||
|
activationTime?: string
|
||||||
|
/** 预计报废时间 */
|
||||||
|
expectedScrapTime?: string
|
||||||
|
/** 实际报废时间 */
|
||||||
|
actualScrapTime?: string
|
||||||
|
/** 采购订单 */
|
||||||
|
purchaseOrder?: string
|
||||||
|
/** 供应商名称 */
|
||||||
|
supplierName?: string
|
||||||
|
/** 采购价格 */
|
||||||
|
purchasePrice?: number
|
||||||
|
/** 当前净值 */
|
||||||
|
currentNetValue?: number
|
||||||
|
/** 折旧方法 */
|
||||||
|
depreciationMethod?: string
|
||||||
|
/** 折旧年限 */
|
||||||
|
depreciationYears?: number
|
||||||
|
/** 残值 */
|
||||||
|
salvageValue?: number
|
||||||
|
/** 保修截止日期 */
|
||||||
|
warrantyExpireDate?: string
|
||||||
|
/** 上次维护日期 */
|
||||||
|
lastMaintenanceDate?: string
|
||||||
|
/** 下次维护日期 */
|
||||||
|
nextMaintenanceDate?: string
|
||||||
|
/** 维护人员 */
|
||||||
|
maintenancePerson?: string
|
||||||
|
/** 库存条码 */
|
||||||
|
inventoryBarcode?: string
|
||||||
|
/** 资产备注 */
|
||||||
|
assetRemark?: string
|
||||||
|
/** 次户号 */
|
||||||
|
accountNumber?: string
|
||||||
|
/** 数量 */
|
||||||
|
quantity?: number
|
||||||
|
/** 单价 */
|
||||||
|
unitPrice?: number
|
||||||
|
/** 总价 */
|
||||||
|
totalPrice?: number
|
||||||
|
/** 盘点依据 */
|
||||||
|
inventoryBasis?: string
|
||||||
|
/** 动态记录 */
|
||||||
|
dynamicRecord?: string
|
||||||
|
}
|
|
@ -1050,7 +1050,7 @@ export const systemRoutes: RouteRecordRaw[] = [
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: '/user/profile',
|
path: '/user/profile',
|
||||||
name: 'UserProfile',
|
name: 'UsersProfile',
|
||||||
component: () => import('@/views/user/profile/index.vue'),
|
component: () => import('@/views/user/profile/index.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
title: '个人中心',
|
title: '个人中心',
|
||||||
|
|
|
@ -70,6 +70,6 @@ declare global {
|
||||||
// for type re-export
|
// for type re-export
|
||||||
declare global {
|
declare global {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
|
export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
|
||||||
import('vue')
|
import('vue')
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,179 @@
|
||||||
|
export interface EquipmentPageQuery {
|
||||||
|
equipmentName?: string
|
||||||
|
equipmentType?: string
|
||||||
|
equipmentStatus?: string
|
||||||
|
equipmentSn?: string
|
||||||
|
assetCode?: string
|
||||||
|
brand?: string
|
||||||
|
locationStatus?: string
|
||||||
|
healthStatus?: string
|
||||||
|
responsiblePerson?: string
|
||||||
|
useStatus?: string
|
||||||
|
projectId?: string
|
||||||
|
userId?: string
|
||||||
|
equipmentModel?: string
|
||||||
|
specification?: string
|
||||||
|
physicalLocation?: string
|
||||||
|
supplierName?: string
|
||||||
|
maintenancePerson?: string
|
||||||
|
inventoryBarcode?: string
|
||||||
|
assetRemark?: string
|
||||||
|
// 新增搜索字段
|
||||||
|
usingDepartment?: string
|
||||||
|
invoice?: string
|
||||||
|
barcode?: string
|
||||||
|
importer?: string
|
||||||
|
page?: number
|
||||||
|
pageSize?: number
|
||||||
|
orderBy?: string
|
||||||
|
orderDirection?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EquipmentReq {
|
||||||
|
equipmentName: string
|
||||||
|
equipmentModel: string
|
||||||
|
equipmentType: string
|
||||||
|
equipmentStatus: string
|
||||||
|
useStatus: string
|
||||||
|
equipmentSn: string
|
||||||
|
assetCode?: string
|
||||||
|
brand?: string
|
||||||
|
specification?: string
|
||||||
|
locationStatus?: string
|
||||||
|
physicalLocation?: string
|
||||||
|
responsiblePerson?: string
|
||||||
|
healthStatus?: string
|
||||||
|
purchaseTime?: string
|
||||||
|
inStockTime?: string
|
||||||
|
activationTime?: string
|
||||||
|
expectedScrapTime?: string
|
||||||
|
actualScrapTime?: string
|
||||||
|
statusChangeTime?: string
|
||||||
|
purchaseOrder?: string
|
||||||
|
supplierName?: string
|
||||||
|
purchasePrice?: number
|
||||||
|
currentNetValue?: number
|
||||||
|
depreciationMethod?: string
|
||||||
|
depreciationYears?: number
|
||||||
|
salvageValue?: number
|
||||||
|
warrantyExpireDate?: string
|
||||||
|
lastMaintenanceDate?: string
|
||||||
|
nextMaintenanceDate?: string
|
||||||
|
maintenancePerson?: string
|
||||||
|
inventoryBarcode?: string
|
||||||
|
assetRemark?: string
|
||||||
|
// 新增字段
|
||||||
|
usingDepartment?: string
|
||||||
|
borrowingTime?: string
|
||||||
|
returnTime?: string
|
||||||
|
outStockTime?: string
|
||||||
|
totalUsageTime?: string
|
||||||
|
depreciationRate?: number
|
||||||
|
depreciationMethodDesc?: string
|
||||||
|
invoice?: string
|
||||||
|
invoiceStatus?: string
|
||||||
|
attachments?: string
|
||||||
|
photos?: string
|
||||||
|
barcode?: string
|
||||||
|
importer?: string
|
||||||
|
inventoryTimeStatus1?: string
|
||||||
|
inventoryTimeStatus2?: string
|
||||||
|
inventoryTimeStatus3?: string
|
||||||
|
inventoryCheckTimeStatus1?: string
|
||||||
|
inventoryCheckTimeStatus2?: string
|
||||||
|
inventoryCheckTimeStatus3?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EquipmentResp {
|
||||||
|
equipmentId: string
|
||||||
|
assetCode?: string
|
||||||
|
equipmentName: string
|
||||||
|
equipmentType: string
|
||||||
|
equipmentTypeLabel?: string
|
||||||
|
equipmentModel: string
|
||||||
|
equipmentSn: string
|
||||||
|
brand?: string
|
||||||
|
specification?: string
|
||||||
|
equipmentStatus: string
|
||||||
|
equipmentStatusLabel?: string
|
||||||
|
useStatus: string
|
||||||
|
locationStatus?: string
|
||||||
|
locationStatusLabel?: string
|
||||||
|
physicalLocation?: string
|
||||||
|
responsiblePerson?: string
|
||||||
|
healthStatus?: string
|
||||||
|
healthStatusLabel?: string
|
||||||
|
purchaseTime?: string
|
||||||
|
inStockTime?: string
|
||||||
|
activationTime?: string
|
||||||
|
expectedScrapTime?: string
|
||||||
|
actualScrapTime?: string
|
||||||
|
statusChangeTime?: string
|
||||||
|
purchaseOrder?: string
|
||||||
|
supplierName?: string
|
||||||
|
purchasePrice?: number
|
||||||
|
currentNetValue?: number
|
||||||
|
depreciationMethod?: string
|
||||||
|
depreciationYears?: number
|
||||||
|
salvageValue?: number
|
||||||
|
warrantyExpireDate?: string
|
||||||
|
lastMaintenanceDate?: string
|
||||||
|
nextMaintenanceDate?: string
|
||||||
|
maintenancePerson?: string
|
||||||
|
inventoryBarcode?: string
|
||||||
|
assetRemark?: string
|
||||||
|
// 新增字段
|
||||||
|
usingDepartment?: string
|
||||||
|
borrowingTime?: string
|
||||||
|
returnTime?: string
|
||||||
|
outStockTime?: string
|
||||||
|
totalUsageTime?: string
|
||||||
|
depreciationRate?: number
|
||||||
|
depreciationMethodDesc?: string
|
||||||
|
invoice?: string
|
||||||
|
invoiceStatus?: string
|
||||||
|
attachments?: string
|
||||||
|
photos?: string
|
||||||
|
barcode?: string
|
||||||
|
importer?: string
|
||||||
|
inventoryTimeStatus1?: string
|
||||||
|
inventoryTimeStatus2?: string
|
||||||
|
inventoryTimeStatus3?: string
|
||||||
|
inventoryCheckTimeStatus1?: string
|
||||||
|
inventoryCheckTimeStatus2?: string
|
||||||
|
inventoryCheckTimeStatus3?: string
|
||||||
|
projectId?: string
|
||||||
|
projectName?: string
|
||||||
|
userId?: string
|
||||||
|
name?: string
|
||||||
|
createTime?: string
|
||||||
|
updateTime?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EquipmentTypeOption {
|
||||||
|
label: string
|
||||||
|
value: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EquipmentStatusOption {
|
||||||
|
label: string
|
||||||
|
value: string
|
||||||
|
color: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface LocationStatusOption {
|
||||||
|
label: string
|
||||||
|
value: string
|
||||||
|
color: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface HealthStatusOption {
|
||||||
|
label: string
|
||||||
|
value: string
|
||||||
|
color: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DepreciationMethodOption {
|
||||||
|
label: string
|
||||||
|
value: string
|
||||||
|
}
|
|
@ -73,7 +73,7 @@
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import type { BiddingDetail } from './types'
|
import type { BiddingDetail } from '../types'
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
visible: boolean
|
visible: boolean
|
||||||
|
|
|
@ -0,0 +1,344 @@
|
||||||
|
<template>
|
||||||
|
<div class="project-table-container">
|
||||||
|
<a-table
|
||||||
|
:data="data"
|
||||||
|
:columns="columns"
|
||||||
|
:loading="loading"
|
||||||
|
:pagination="false"
|
||||||
|
:scroll="{ x: '100%', y: '100%' }"
|
||||||
|
row-key="id"
|
||||||
|
:stripe="false"
|
||||||
|
size="large"
|
||||||
|
>
|
||||||
|
<!-- 招标项目 -->
|
||||||
|
<template #projectName="{ record }">
|
||||||
|
<div class="project-name">
|
||||||
|
<span class="name-text">{{ record.projectName }}</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 招标单位 -->
|
||||||
|
<template #biddingUnit="{ record }">
|
||||||
|
<span class="bidding-unit">{{ record.biddingUnit }}</span>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 预算金额 -->
|
||||||
|
<template #budgetAmount="{ record }">
|
||||||
|
<span class="budget-text">{{ record.budgetAmount }}</span>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 截止时间 -->
|
||||||
|
<template #deadline="{ record }">
|
||||||
|
<span class="date-text">{{ record.deadline }}</span>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 爬取时间 -->
|
||||||
|
<template #crawlingTime="{ record }">
|
||||||
|
<span class="date-text">{{ record.crawlingTime }}</span>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 来源平台 -->
|
||||||
|
<template #sourcePlatform="{ record }">
|
||||||
|
<span class="source-text">{{ record.sourcePlatform }}</span>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 招标文件 -->
|
||||||
|
<template #biddingDocuments="{ record }">
|
||||||
|
<span class="doc-text">{{ record.biddingDocuments }}</span>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 状态 -->
|
||||||
|
<template #status="{ record }">
|
||||||
|
<a-tag :color="getStatusColor(record.status)">
|
||||||
|
{{ getStatusText(record.status) }}
|
||||||
|
</a-tag>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 操作 -->
|
||||||
|
<template #action="{ record }">
|
||||||
|
<div class="action-buttons">
|
||||||
|
<a-button size="small" @click="handleView(record)">
|
||||||
|
详情
|
||||||
|
</a-button>
|
||||||
|
<a-button
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="handleEnter(record)"
|
||||||
|
>
|
||||||
|
报名
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { computed } from 'vue'
|
||||||
|
import type { TableColumnData } from '@arco-design/web-vue'
|
||||||
|
import type { ProjectData } from '../types'
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
data: ProjectData[]
|
||||||
|
loading?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Emits {
|
||||||
|
(e: 'view', project: ProjectData): void
|
||||||
|
(e: 'enter', project: ProjectData): void
|
||||||
|
}
|
||||||
|
|
||||||
|
const props = withDefaults(defineProps<Props>(), {
|
||||||
|
loading: false
|
||||||
|
})
|
||||||
|
|
||||||
|
const emit = defineEmits<Emits>()
|
||||||
|
|
||||||
|
// 表格列配置
|
||||||
|
const columns: TableColumnData[] = [
|
||||||
|
{
|
||||||
|
title: '招标项目',
|
||||||
|
dataIndex: 'projectName',
|
||||||
|
slotName: 'projectName',
|
||||||
|
width: 300,
|
||||||
|
ellipsis: true,
|
||||||
|
tooltip: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '招标单位',
|
||||||
|
dataIndex: ' biddingUnit',
|
||||||
|
slotName: 'biddingUnit',
|
||||||
|
width: 120,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '预算金额',
|
||||||
|
dataIndex: 'budgetAmount',
|
||||||
|
slotName: 'budgetAmount',
|
||||||
|
width: 120,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '截止时间',
|
||||||
|
dataIndex: 'deadline',
|
||||||
|
slotName: 'deadline',
|
||||||
|
width: 150,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '爬取时间',
|
||||||
|
dataIndex: 'crawlingTime',
|
||||||
|
slotName: 'crawlingTime',
|
||||||
|
width: 150,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '来源平台',
|
||||||
|
dataIndex: 'sourcePlatform',
|
||||||
|
slotName: 'sourcePlatform',
|
||||||
|
width: 150,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '招标文件',
|
||||||
|
dataIndex: ' biddingDocuments',
|
||||||
|
slotName: 'biddingDocuments',
|
||||||
|
width: 150,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '状态',
|
||||||
|
dataIndex: 'status',
|
||||||
|
slotName: 'status',
|
||||||
|
width: 120,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'action',
|
||||||
|
slotName: 'action',
|
||||||
|
width: 150,
|
||||||
|
align: 'center',
|
||||||
|
fixed: 'right'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
// 获取状态颜色
|
||||||
|
const getStatusColor = (status: string) => {
|
||||||
|
const colorMap: Record<string, string> = {
|
||||||
|
'not_started': 'gray',
|
||||||
|
'in_progress': 'blue',
|
||||||
|
'completed': 'green',
|
||||||
|
'paused': 'orange',
|
||||||
|
'cancelled': 'red'
|
||||||
|
}
|
||||||
|
return colorMap[status] || 'gray'
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取状态文本
|
||||||
|
const getStatusText = (status: string) => {
|
||||||
|
const textMap: Record<string, string> = {
|
||||||
|
'not_started': '未开始',
|
||||||
|
'in_progress': '进行中',
|
||||||
|
'completed': '已完成',
|
||||||
|
'paused': '已暂停',
|
||||||
|
'cancelled': '已取消'
|
||||||
|
}
|
||||||
|
return textMap[status] || status
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取进度颜色
|
||||||
|
const getProgressColor = (progress: number) => {
|
||||||
|
if (progress === 0) return '#d9d9d9'
|
||||||
|
if (progress === 100) return '#52c41a'
|
||||||
|
if (progress >= 70) return '#1890ff'
|
||||||
|
if (progress >= 40) return '#faad14'
|
||||||
|
return '#ff4d4f'
|
||||||
|
}
|
||||||
|
|
||||||
|
// 事件处理
|
||||||
|
const handleView = (record: ProjectData) => {
|
||||||
|
emit('view', record)
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleEnter = (record: ProjectData) => {
|
||||||
|
emit('enter', record)
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.project-table-container {
|
||||||
|
height: 100%;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-name {
|
||||||
|
.name-text {
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.unit-count {
|
||||||
|
font-weight: 600;
|
||||||
|
color: #1890ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-text {
|
||||||
|
color: #666;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress-container {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 12px;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.progress-text {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #666;
|
||||||
|
font-weight: 500;
|
||||||
|
min-width: 35px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-buttons {
|
||||||
|
display: flex;
|
||||||
|
gap: 8px;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.arco-table) {
|
||||||
|
.arco-table-thead {
|
||||||
|
.arco-table-th {
|
||||||
|
background-color: #fafafa;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #333;
|
||||||
|
border-bottom: 1px solid #e8e8e8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.arco-table-tbody {
|
||||||
|
.arco-table-tr {
|
||||||
|
&:hover {
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.arco-table-td {
|
||||||
|
border-bottom: 1px solid #f0f0f0;
|
||||||
|
padding: 16px 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.arco-tag) {
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 12px;
|
||||||
|
padding: 2px 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.arco-progress-line-outer) {
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.arco-progress-line-inner) {
|
||||||
|
border-radius: 4px;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 状态标签样式
|
||||||
|
:deep(.arco-tag-gray) {
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
border-color: #d9d9d9;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.arco-tag-blue) {
|
||||||
|
background-color: #e6f7ff;
|
||||||
|
border-color: #91d5ff;
|
||||||
|
color: #1890ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.arco-tag-green) {
|
||||||
|
background-color: #f6ffed;
|
||||||
|
border-color: #b7eb8f;
|
||||||
|
color: #52c41a;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.arco-tag-orange) {
|
||||||
|
background-color: #fff7e6;
|
||||||
|
border-color: #ffd591;
|
||||||
|
color: #fa8c16;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.arco-tag-red) {
|
||||||
|
background-color: #fff1f0;
|
||||||
|
border-color: #ffccc7;
|
||||||
|
color: #ff4d4f;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 响应式处理
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
:deep(.arco-table-td) {
|
||||||
|
padding: 12px 8px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-buttons {
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress-container {
|
||||||
|
gap: 8px;
|
||||||
|
|
||||||
|
.progress-text {
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,64 @@
|
||||||
|
// 项目状态枚举
|
||||||
|
export enum ProjectStatus {
|
||||||
|
NOT_STARTED = 'not_started',
|
||||||
|
IN_PROGRESS = 'in_progress',
|
||||||
|
COMPLETED = 'completed',
|
||||||
|
PAUSED = 'paused',
|
||||||
|
CANCELLED = 'cancelled'
|
||||||
|
}
|
||||||
|
|
||||||
|
// 项目数据接口
|
||||||
|
export interface ProjectData {
|
||||||
|
id: number
|
||||||
|
projectName: string
|
||||||
|
unitCount: number
|
||||||
|
startDate: string
|
||||||
|
endDate: string
|
||||||
|
status: ProjectStatus
|
||||||
|
progress: number
|
||||||
|
manager: string
|
||||||
|
isMyProject: boolean
|
||||||
|
description?: string
|
||||||
|
location?: string
|
||||||
|
client?: string
|
||||||
|
budget?: number
|
||||||
|
team?: string[]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 选项卡类型
|
||||||
|
export type TabKey = 'all' | 'my' | 'pending'
|
||||||
|
|
||||||
|
// 项目筛选条件
|
||||||
|
export interface ProjectFilter {
|
||||||
|
keyword?: string
|
||||||
|
status?: ProjectStatus
|
||||||
|
manager?: string
|
||||||
|
dateRange?: [string, string]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 项目统计信息
|
||||||
|
export interface ProjectStats {
|
||||||
|
total: number
|
||||||
|
inProgress: number
|
||||||
|
completed: number
|
||||||
|
notStarted: number
|
||||||
|
myProjects: number
|
||||||
|
}
|
||||||
|
|
||||||
|
// 招标详情
|
||||||
|
export interface BiddingDetail {
|
||||||
|
id: number
|
||||||
|
projectName: string
|
||||||
|
biddingUnit: string
|
||||||
|
budgetAmount: number
|
||||||
|
deadline: string
|
||||||
|
crawlingTime: string
|
||||||
|
projectLocation: string
|
||||||
|
projectDuration: string
|
||||||
|
biddingScope: string
|
||||||
|
qualificationRequirements: string
|
||||||
|
sourcePlatform: string
|
||||||
|
biddingDocuments: string
|
||||||
|
biddingContent: string
|
||||||
|
contentItems?: string[]
|
||||||
|
}
|
Loading…
Reference in New Issue