feat(wcs):初始化hw-wcs业务模块

main
zch 2 months ago
parent 1fc3e6b94a
commit 2f64e50d3f

@ -0,0 +1,99 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { DeviceHostVO, DeviceHostForm, DeviceHostId, DeviceHostIds, DeviceHostQuery } from '@/api/wcs/deviceHost/types';
/**
*
* @param query
* @returns {*}
*/
export const listDeviceHost = (query?: DeviceHostQuery): AxiosPromise<DeviceHostVO[]> => {
return request({
url: '/wcs/deviceHost/list',
method: 'get',
params: query
});
};
/**
*
* @param objId
*/
export const getDeviceHost = (objId: DeviceHostId): AxiosPromise<DeviceHostVO> => {
return request({
url: '/wcs/deviceHost/' + objId,
method: 'get'
});
};
/**
*
* @param ids
*/
export const getDeviceHostByIds = (ids: DeviceHostIds): AxiosPromise<DeviceHostVO[]> => {
return request({
url: '/wcs/deviceHost/listByIds',
method: 'post',
data: ids
});
};
/**
*
* @param query
*/
export const countDeviceHost = (query?: DeviceHostQuery): AxiosPromise<number> => {
return request({
url: '/wcs/deviceHost/count',
method: 'get',
params: query
});
};
/**
*
* @param query
*/
export const existsDeviceHost = (query?: DeviceHostQuery): AxiosPromise<boolean> => {
return request({
url: '/wcs/deviceHost/exists',
method: 'get',
params: query
});
};
/**
*
* @param data
*/
export const addDeviceHost = (data: DeviceHostForm) => {
return request({
url: '/wcs/deviceHost',
method: 'post',
data: data
});
};
/**
*
* @param data
*/
export const updateDeviceHost = (data: DeviceHostForm) => {
return request({
url: '/wcs/deviceHost',
method: 'put',
data: data
});
};
/**
*
* @param objId
*/
export const delDeviceHost = (objId: DeviceHostId | DeviceHostIds) => {
return request({
url: '/wcs/deviceHost/' + objId,
method: 'delete'
});
};

@ -0,0 +1,141 @@
export type DeviceHostId = string | number;
export type DeviceHostIds = DeviceHostId[];
export interface DeviceHostVO {
/**
*
*/
objId: string | number;
/**
*
*/
hostCode: string;
/**
*
*/
hostName: string;
/**
* IP
*/
hostIp: string;
/**
*
*/
hostPort: number;
/**
*
*/
hostPath: string;
/**
* 1-0-
*/
isFlag: number;
/**
*
*/
remark: string;
/**
*
*/
createdTime: string;
}
export interface DeviceHostForm extends BaseEntity {
/**
*
*/
objId?: string | number;
/**
*
*/
hostCode?: string;
/**
*
*/
hostName?: string;
/**
* IP
*/
hostIp?: string;
/**
*
*/
hostPort?: number;
/**
*
*/
hostPath?: string;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
remark?: string;
/**
*
*/
createdTime?: string;
}
export interface DeviceHostQuery extends PageQuery {
/**
*
*/
hostCode?: string;
/**
*
*/
hostName?: string;
/**
* IP
*/
hostIp?: string;
/**
*
*/
hostPort?: number;
/**
*
*/
hostPath?: string;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
createdTime?: string;
/**
*
*/
params?: any;
}

@ -0,0 +1,99 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { DeviceInfoVO, DeviceInfoForm, DeviceInfoId, DeviceInfoIds, DeviceInfoQuery } from '@/api/wcs/deviceInfo/types';
/**
*
* @param query
* @returns {*}
*/
export const listDeviceInfo = (query?: DeviceInfoQuery): AxiosPromise<DeviceInfoVO[]> => {
return request({
url: '/wcs/deviceInfo/list',
method: 'get',
params: query
});
};
/**
*
* @param objId
*/
export const getDeviceInfo = (objId: DeviceInfoId): AxiosPromise<DeviceInfoVO> => {
return request({
url: '/wcs/deviceInfo/' + objId,
method: 'get'
});
};
/**
*
* @param ids
*/
export const getDeviceInfoByIds = (ids: DeviceInfoIds): AxiosPromise<DeviceInfoVO[]> => {
return request({
url: '/wcs/deviceInfo/listByIds',
method: 'post',
data: ids
});
};
/**
*
* @param query
*/
export const countDeviceInfo = (query?: DeviceInfoQuery): AxiosPromise<number> => {
return request({
url: '/wcs/deviceInfo/count',
method: 'get',
params: query
});
};
/**
*
* @param query
*/
export const existsDeviceInfo = (query?: DeviceInfoQuery): AxiosPromise<boolean> => {
return request({
url: '/wcs/deviceInfo/exists',
method: 'get',
params: query
});
};
/**
*
* @param data
*/
export const addDeviceInfo = (data: DeviceInfoForm) => {
return request({
url: '/wcs/deviceInfo',
method: 'post',
data: data
});
};
/**
*
* @param data
*/
export const updateDeviceInfo = (data: DeviceInfoForm) => {
return request({
url: '/wcs/deviceInfo',
method: 'put',
data: data
});
};
/**
*
* @param objId
*/
export const delDeviceInfo = (objId: DeviceInfoId | DeviceInfoIds) => {
return request({
url: '/wcs/deviceInfo/' + objId,
method: 'delete'
});
};

@ -0,0 +1,141 @@
export type DeviceInfoId = string | number;
export type DeviceInfoIds = DeviceInfoId[];
export interface DeviceInfoVO {
/**
*
*/
objId: string | number;
/**
*
*/
deviceCode: string;
/**
*
*/
deviceName: string;
/**
*
*/
hostCode: string;
/**
* 0-线1-AGV2-
*/
deviceType: number;
/**
* 0-1-2-
*/
deviceStatus: number;
/**
* 1-0-
*/
isFlag: number;
/**
*
*/
remark: string;
/**
*
*/
createdTime: string;
}
export interface DeviceInfoForm extends BaseEntity {
/**
*
*/
objId?: string | number;
/**
*
*/
deviceCode?: string;
/**
*
*/
deviceName?: string;
/**
*
*/
hostCode?: string;
/**
* 0-线1-AGV2-
*/
deviceType?: number;
/**
* 0-1-2-
*/
deviceStatus?: number;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
remark?: string;
/**
*
*/
createdTime?: string;
}
export interface DeviceInfoQuery extends PageQuery {
/**
*
*/
deviceCode?: string;
/**
*
*/
deviceName?: string;
/**
*
*/
hostCode?: string;
/**
* 0-线1-AGV2-
*/
deviceType?: number;
/**
* 0-1-2-
*/
deviceStatus?: number;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
createdTime?: string;
/**
*
*/
params?: any;
}

@ -0,0 +1,99 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { DeviceParamVO, DeviceParamForm, DeviceParamId, DeviceParamIds, DeviceParamQuery } from '@/api/wcs/deviceParam/types';
/**
*
* @param query
* @returns {*}
*/
export const listDeviceParam = (query?: DeviceParamQuery): AxiosPromise<DeviceParamVO[]> => {
return request({
url: '/wcs/deviceParam/list',
method: 'get',
params: query
});
};
/**
*
* @param objId
*/
export const getDeviceParam = (objId: DeviceParamId): AxiosPromise<DeviceParamVO> => {
return request({
url: '/wcs/deviceParam/' + objId,
method: 'get'
});
};
/**
*
* @param ids
*/
export const getDeviceParamByIds = (ids: DeviceParamIds): AxiosPromise<DeviceParamVO[]> => {
return request({
url: '/wcs/deviceParam/listByIds',
method: 'post',
data: ids
});
};
/**
*
* @param query
*/
export const countDeviceParam = (query?: DeviceParamQuery): AxiosPromise<number> => {
return request({
url: '/wcs/deviceParam/count',
method: 'get',
params: query
});
};
/**
*
* @param query
*/
export const existsDeviceParam = (query?: DeviceParamQuery): AxiosPromise<boolean> => {
return request({
url: '/wcs/deviceParam/exists',
method: 'get',
params: query
});
};
/**
*
* @param data
*/
export const addDeviceParam = (data: DeviceParamForm) => {
return request({
url: '/wcs/deviceParam',
method: 'post',
data: data
});
};
/**
*
* @param data
*/
export const updateDeviceParam = (data: DeviceParamForm) => {
return request({
url: '/wcs/deviceParam',
method: 'put',
data: data
});
};
/**
*
* @param objId
*/
export const delDeviceParam = (objId: DeviceParamId | DeviceParamIds) => {
return request({
url: '/wcs/deviceParam/' + objId,
method: 'delete'
});
};

@ -0,0 +1,171 @@
export type DeviceParamId = string | number;
export type DeviceParamIds = DeviceParamId[];
export interface DeviceParamVO {
/**
*
*/
objId: string | number;
/**
*
*/
paramCode: string;
/**
*
*/
deviceCode: string;
/**
*
*/
paramName: string;
/**
*
*/
paramAddress: string;
/**
*
*/
paramType: string;
/**
* 1-2-0-
*/
operationType: number;
/**
*
*/
operationFrequency: number;
/**
* 1-0-
*/
isFlag: number;
/**
*
*/
remark: string;
/**
*
*/
createdTime: string;
}
export interface DeviceParamForm extends BaseEntity {
/**
*
*/
objId?: string | number;
/**
*
*/
paramCode?: string;
/**
*
*/
deviceCode?: string;
/**
*
*/
paramName?: string;
/**
*
*/
paramAddress?: string;
/**
*
*/
paramType?: string;
/**
* 1-2-0-
*/
operationType?: number;
/**
*
*/
operationFrequency?: number;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
remark?: string;
/**
*
*/
createdTime?: string;
}
export interface DeviceParamQuery extends PageQuery {
/**
*
*/
paramCode?: string;
/**
*
*/
deviceCode?: string;
/**
*
*/
paramName?: string;
/**
*
*/
paramAddress?: string;
/**
*
*/
paramType?: string;
/**
* 1-2-0-
*/
operationType?: number;
/**
*
*/
operationFrequency?: number;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
createdTime?: string;
/**
*
*/
params?: any;
}

@ -0,0 +1,99 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { LocationInfoVO, LocationInfoForm, LocationInfoId, LocationInfoIds, LocationInfoQuery } from '@/api/wcs/locationInfo/types';
/**
*
* @param query
* @returns {*}
*/
export const listLocationInfo = (query?: LocationInfoQuery): AxiosPromise<LocationInfoVO[]> => {
return request({
url: '/wcs/locationInfo/list',
method: 'get',
params: query
});
};
/**
*
* @param objId
*/
export const getLocationInfo = (objId: LocationInfoId): AxiosPromise<LocationInfoVO> => {
return request({
url: '/wcs/locationInfo/' + objId,
method: 'get'
});
};
/**
*
* @param ids
*/
export const getLocationInfoByIds = (ids: LocationInfoIds): AxiosPromise<LocationInfoVO[]> => {
return request({
url: '/wcs/locationInfo/listByIds',
method: 'post',
data: ids
});
};
/**
*
* @param query
*/
export const countLocationInfo = (query?: LocationInfoQuery): AxiosPromise<number> => {
return request({
url: '/wcs/locationInfo/count',
method: 'get',
params: query
});
};
/**
*
* @param query
*/
export const existsLocationInfo = (query?: LocationInfoQuery): AxiosPromise<boolean> => {
return request({
url: '/wcs/locationInfo/exists',
method: 'get',
params: query
});
};
/**
*
* @param data
*/
export const addLocationInfo = (data: LocationInfoForm) => {
return request({
url: '/wcs/locationInfo',
method: 'post',
data: data
});
};
/**
*
* @param data
*/
export const updateLocationInfo = (data: LocationInfoForm) => {
return request({
url: '/wcs/locationInfo',
method: 'put',
data: data
});
};
/**
*
* @param objId
*/
export const delLocationInfo = (objId: LocationInfoId | LocationInfoIds) => {
return request({
url: '/wcs/locationInfo/' + objId,
method: 'delete'
});
};

@ -0,0 +1,246 @@
export type LocationInfoId = string | number;
export type LocationInfoIds = LocationInfoId[];
export interface LocationInfoVO {
/**
*
*/
objId: string | number;
/**
*
*/
locationCode: string;
/**
*
*/
locationName: string;
/**
*
*/
locationArea: string;
/**
*
*/
storeCode: string;
/**
*
*/
locationRows: number;
/**
*
*/
locationColumns: number;
/**
*
*/
locationLayers: number;
/**
* AGV
*/
agvPosition: string;
/**
*
*/
materialCode: string;
/**
*
*/
palletBarcode: string;
/**
*
*/
stackCount: string;
/**
* ;0-使;1-使;2-;3-
*/
locationStatus: number;
/**
* 1-0-
*/
isFlag: number;
/**
*
*/
remark: string;
/**
*
*/
createdTime: string;
}
export interface LocationInfoForm extends BaseEntity {
/**
*
*/
objId?: string | number;
/**
*
*/
locationCode?: string;
/**
*
*/
locationName?: string;
/**
*
*/
locationArea?: string;
/**
*
*/
storeCode?: string;
/**
*
*/
locationRows?: number;
/**
*
*/
locationColumns?: number;
/**
*
*/
locationLayers?: number;
/**
* AGV
*/
agvPosition?: string;
/**
*
*/
materialCode?: string;
/**
*
*/
palletBarcode?: string;
/**
*
*/
stackCount?: string;
/**
* ;0-使;1-使;2-;3-
*/
locationStatus?: number;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
remark?: string;
/**
*
*/
createdTime?: string;
}
export interface LocationInfoQuery extends PageQuery {
/**
*
*/
locationCode?: string;
/**
*
*/
locationName?: string;
/**
*
*/
locationArea?: string;
/**
*
*/
storeCode?: string;
/**
*
*/
locationRows?: number;
/**
*
*/
locationColumns?: number;
/**
*
*/
locationLayers?: number;
/**
* AGV
*/
agvPosition?: string;
/**
*
*/
materialCode?: string;
/**
*
*/
palletBarcode?: string;
/**
*
*/
stackCount?: string;
/**
* ;0-使;1-使;2-;3-
*/
locationStatus?: number;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
createdTime?: string;
/**
*
*/
params?: any;
}

@ -0,0 +1,99 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { MaterialInfoVO, MaterialInfoForm, MaterialInfoId, MaterialInfoIds, MaterialInfoQuery } from '@/api/wcs/materialInfo/types';
/**
*
* @param query
* @returns {*}
*/
export const listMaterialInfo = (query?: MaterialInfoQuery): AxiosPromise<MaterialInfoVO[]> => {
return request({
url: '/wcs/materialInfo/list',
method: 'get',
params: query
});
};
/**
*
* @param objId
*/
export const getMaterialInfo = (objId: MaterialInfoId): AxiosPromise<MaterialInfoVO> => {
return request({
url: '/wcs/materialInfo/' + objId,
method: 'get'
});
};
/**
*
* @param ids
*/
export const getMaterialInfoByIds = (ids: MaterialInfoIds): AxiosPromise<MaterialInfoVO[]> => {
return request({
url: '/wcs/materialInfo/listByIds',
method: 'post',
data: ids
});
};
/**
*
* @param query
*/
export const countMaterialInfo = (query?: MaterialInfoQuery): AxiosPromise<number> => {
return request({
url: '/wcs/materialInfo/count',
method: 'get',
params: query
});
};
/**
*
* @param query
*/
export const existsMaterialInfo = (query?: MaterialInfoQuery): AxiosPromise<boolean> => {
return request({
url: '/wcs/materialInfo/exists',
method: 'get',
params: query
});
};
/**
*
* @param data
*/
export const addMaterialInfo = (data: MaterialInfoForm) => {
return request({
url: '/wcs/materialInfo',
method: 'post',
data: data
});
};
/**
*
* @param data
*/
export const updateMaterialInfo = (data: MaterialInfoForm) => {
return request({
url: '/wcs/materialInfo',
method: 'put',
data: data
});
};
/**
*
* @param objId
*/
export const delMaterialInfo = (objId: MaterialInfoId | MaterialInfoIds) => {
return request({
url: '/wcs/materialInfo/' + objId,
method: 'delete'
});
};

@ -0,0 +1,156 @@
export type MaterialInfoId = string | number;
export type MaterialInfoIds = MaterialInfoId[];
export interface MaterialInfoVO {
/**
*
*/
objId: string | number;
/**
*
*/
materialCode: string;
/**
*
*/
materialName: string;
/**
*
*/
materialType: string;
/**
*
*/
materialBarcode: string;
/**
*
*/
minStorageCycle: number;
/**
*
*/
maxStorageCycle: number;
/**
* 1-0-
*/
isFlag: number;
/**
*
*/
remark: string;
/**
*
*/
createdTime: string;
}
export interface MaterialInfoForm extends BaseEntity {
/**
*
*/
objId?: string | number;
/**
*
*/
materialCode?: string;
/**
*
*/
materialName?: string;
/**
*
*/
materialType?: string;
/**
*
*/
materialBarcode?: string;
/**
*
*/
minStorageCycle?: number;
/**
*
*/
maxStorageCycle?: number;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
remark?: string;
/**
*
*/
createdTime?: string;
}
export interface MaterialInfoQuery extends PageQuery {
/**
*
*/
materialCode?: string;
/**
*
*/
materialName?: string;
/**
*
*/
materialType?: string;
/**
*
*/
materialBarcode?: string;
/**
*
*/
minStorageCycle?: number;
/**
*
*/
maxStorageCycle?: number;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
createdTime?: string;
/**
*
*/
params?: any;
}

@ -0,0 +1,99 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { PathDetailsVO, PathDetailsForm, PathDetailsId, PathDetailsIds, PathDetailsQuery } from '@/api/wcs/pathDetails/types';
/**
*
* @param query
* @returns {*}
*/
export const listPathDetails = (query?: PathDetailsQuery): AxiosPromise<PathDetailsVO[]> => {
return request({
url: '/wcs/pathDetails/list',
method: 'get',
params: query
});
};
/**
*
* @param objId
*/
export const getPathDetails = (objId: PathDetailsId): AxiosPromise<PathDetailsVO> => {
return request({
url: '/wcs/pathDetails/' + objId,
method: 'get'
});
};
/**
*
* @param ids
*/
export const getPathDetailsByIds = (ids: PathDetailsIds): AxiosPromise<PathDetailsVO[]> => {
return request({
url: '/wcs/pathDetails/listByIds',
method: 'post',
data: ids
});
};
/**
*
* @param query
*/
export const countPathDetails = (query?: PathDetailsQuery): AxiosPromise<number> => {
return request({
url: '/wcs/pathDetails/count',
method: 'get',
params: query
});
};
/**
*
* @param query
*/
export const existsPathDetails = (query?: PathDetailsQuery): AxiosPromise<boolean> => {
return request({
url: '/wcs/pathDetails/exists',
method: 'get',
params: query
});
};
/**
*
* @param data
*/
export const addPathDetails = (data: PathDetailsForm) => {
return request({
url: '/wcs/pathDetails',
method: 'post',
data: data
});
};
/**
*
* @param data
*/
export const updatePathDetails = (data: PathDetailsForm) => {
return request({
url: '/wcs/pathDetails',
method: 'put',
data: data
});
};
/**
*
* @param objId
*/
export const delPathDetails = (objId: PathDetailsId | PathDetailsIds) => {
return request({
url: '/wcs/pathDetails/' + objId,
method: 'delete'
});
};

@ -0,0 +1,111 @@
export type PathDetailsId = string | number;
export type PathDetailsIds = PathDetailsId[];
export interface PathDetailsVO {
/**
*
*/
objId: string | number;
/**
*
*/
pathCode: string;
/**
*
*/
startPoint: string;
/**
*
*/
endPoint: string;
/**
* 1-0-
*/
isFlag: number;
/**
*
*/
remark: string;
/**
*
*/
createdTime: string;
}
export interface PathDetailsForm extends BaseEntity {
/**
*
*/
objId?: string | number;
/**
*
*/
pathCode?: string;
/**
*
*/
startPoint?: string;
/**
*
*/
endPoint?: string;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
remark?: string;
/**
*
*/
createdTime?: string;
}
export interface PathDetailsQuery extends PageQuery {
/**
*
*/
pathCode?: string;
/**
*
*/
startPoint?: string;
/**
*
*/
endPoint?: string;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
createdTime?: string;
/**
*
*/
params?: any;
}

@ -0,0 +1,99 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { PathInfoVO, PathInfoForm, PathInfoId, PathInfoIds, PathInfoQuery } from '@/api/wcs/pathInfo/types';
/**
*
* @param query
* @returns {*}
*/
export const listPathInfo = (query?: PathInfoQuery): AxiosPromise<PathInfoVO[]> => {
return request({
url: '/wcs/pathInfo/list',
method: 'get',
params: query
});
};
/**
*
* @param objId
*/
export const getPathInfo = (objId: PathInfoId): AxiosPromise<PathInfoVO> => {
return request({
url: '/wcs/pathInfo/' + objId,
method: 'get'
});
};
/**
*
* @param ids
*/
export const getPathInfoByIds = (ids: PathInfoIds): AxiosPromise<PathInfoVO[]> => {
return request({
url: '/wcs/pathInfo/listByIds',
method: 'post',
data: ids
});
};
/**
*
* @param query
*/
export const countPathInfo = (query?: PathInfoQuery): AxiosPromise<number> => {
return request({
url: '/wcs/pathInfo/count',
method: 'get',
params: query
});
};
/**
*
* @param query
*/
export const existsPathInfo = (query?: PathInfoQuery): AxiosPromise<boolean> => {
return request({
url: '/wcs/pathInfo/exists',
method: 'get',
params: query
});
};
/**
*
* @param data
*/
export const addPathInfo = (data: PathInfoForm) => {
return request({
url: '/wcs/pathInfo',
method: 'post',
data: data
});
};
/**
*
* @param data
*/
export const updatePathInfo = (data: PathInfoForm) => {
return request({
url: '/wcs/pathInfo',
method: 'put',
data: data
});
};
/**
*
* @param objId
*/
export const delPathInfo = (objId: PathInfoId | PathInfoIds) => {
return request({
url: '/wcs/pathInfo/' + objId,
method: 'delete'
});
};

@ -0,0 +1,96 @@
export type PathInfoId = string | number;
export type PathInfoIds = PathInfoId[];
export interface PathInfoVO {
/**
*
*/
objId: string | number;
/**
*
*/
pathCode: string;
/**
*
*/
pathName: string;
/**
* 1-0-
*/
isFlag: number;
/**
*
*/
remark: string;
/**
*
*/
createdTime: string;
}
export interface PathInfoForm extends BaseEntity {
/**
*
*/
objId?: string | number;
/**
*
*/
pathCode?: string;
/**
*
*/
pathName?: string;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
remark?: string;
/**
*
*/
createdTime?: string;
}
export interface PathInfoQuery extends PageQuery {
/**
*
*/
pathCode?: string;
/**
*
*/
pathName?: string;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
createdTime?: string;
/**
*
*/
params?: any;
}

@ -0,0 +1,99 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StoreInfoVO, StoreInfoForm, StoreInfoId, StoreInfoIds, StoreInfoQuery } from '@/api/wcs/storeInfo/types';
/**
*
* @param query
* @returns {*}
*/
export const listStoreInfo = (query?: StoreInfoQuery): AxiosPromise<StoreInfoVO[]> => {
return request({
url: '/wcs/storeInfo/list',
method: 'get',
params: query
});
};
/**
*
* @param objId
*/
export const getStoreInfo = (objId: StoreInfoId): AxiosPromise<StoreInfoVO> => {
return request({
url: '/wcs/storeInfo/' + objId,
method: 'get'
});
};
/**
*
* @param ids
*/
export const getStoreInfoByIds = (ids: StoreInfoIds): AxiosPromise<StoreInfoVO[]> => {
return request({
url: '/wcs/storeInfo/listByIds',
method: 'post',
data: ids
});
};
/**
*
* @param query
*/
export const countStoreInfo = (query?: StoreInfoQuery): AxiosPromise<number> => {
return request({
url: '/wcs/storeInfo/count',
method: 'get',
params: query
});
};
/**
*
* @param query
*/
export const existsStoreInfo = (query?: StoreInfoQuery): AxiosPromise<boolean> => {
return request({
url: '/wcs/storeInfo/exists',
method: 'get',
params: query
});
};
/**
*
* @param data
*/
export const addStoreInfo = (data: StoreInfoForm) => {
return request({
url: '/wcs/storeInfo',
method: 'post',
data: data
});
};
/**
*
* @param data
*/
export const updateStoreInfo = (data: StoreInfoForm) => {
return request({
url: '/wcs/storeInfo',
method: 'put',
data: data
});
};
/**
*
* @param objId
*/
export const delStoreInfo = (objId: StoreInfoId | StoreInfoIds) => {
return request({
url: '/wcs/storeInfo/' + objId,
method: 'delete'
});
};

@ -0,0 +1,96 @@
export type StoreInfoId = string | number;
export type StoreInfoIds = StoreInfoId[];
export interface StoreInfoVO {
/**
*
*/
objId: string | number;
/**
*
*/
storeCode: string;
/**
*
*/
storeName: string;
/**
* 1-0-
*/
isFlag: number;
/**
*
*/
remark: string;
/**
*
*/
createdTime: string;
}
export interface StoreInfoForm extends BaseEntity {
/**
*
*/
objId?: string | number;
/**
*
*/
storeCode?: string;
/**
*
*/
storeName?: string;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
remark?: string;
/**
*
*/
createdTime?: string;
}
export interface StoreInfoQuery extends PageQuery {
/**
*
*/
storeCode?: string;
/**
*
*/
storeName?: string;
/**
* 1-0-
*/
isFlag?: number;
/**
*
*/
createdTime?: string;
/**
*
*/
params?: any;
}

@ -0,0 +1,297 @@
<template>
<div class="p-2">
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
<div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover">
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="主机编号" prop="hostCode">
<el-input v-model="queryParams.hostCode" placeholder="请输入主机编号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="主机名称" prop="hostName">
<el-input v-model="queryParams.hostName" placeholder="请输入主机名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="主机IP" prop="hostIp">
<el-input v-model="queryParams.hostIp" placeholder="请输入主机IP" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="主机端口" prop="hostPort">
<el-input v-model="queryParams.hostPort" placeholder="请输入主机端口" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="主机路径" prop="hostPath">
<el-input v-model="queryParams.hostPath" placeholder="请输入主机路径" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="是否标识1-是0-否" prop="isFlag">
<el-select v-model="queryParams.isFlag" placeholder="请选择是否标识1-是0-否" clearable >
<el-option v-for="dict in wcs_is_flag" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="queryParams.createdTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择创建时间"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
</el-card>
</div>
</transition>
<el-card shadow="never">
<template #header>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['wcs:deviceHost:add']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['wcs:deviceHost:edit']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['wcs:deviceHost:remove']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['wcs:deviceHost:export']"></el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</template>
<el-table v-loading="loading" border :data="deviceHostList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键标识" align="center" prop="objId" v-if="true" />
<el-table-column label="主机编号" align="center" prop="hostCode" />
<el-table-column label="主机名称" align="center" prop="hostName" />
<el-table-column label="主机IP" align="center" prop="hostIp" />
<el-table-column label="主机端口" align="center" prop="hostPort" />
<el-table-column label="主机路径" align="center" prop="hostPath" />
<el-table-column label="是否标识1-是0-否" align="center" prop="isFlag">
<template #default="scope">
<dict-tag :options="wcs_is_flag" :value="scope.row.isFlag"/>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="创建时间" align="center" prop="createdTime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="修改" placement="top">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['wcs:deviceHost:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['wcs:deviceHost:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 添加或修改设备主机对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-form ref="deviceHostFormRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="主机编号" prop="hostCode">
<el-input v-model="form.hostCode" placeholder="请输入主机编号" />
</el-form-item>
<el-form-item label="主机名称" prop="hostName">
<el-input v-model="form.hostName" placeholder="请输入主机名称" />
</el-form-item>
<el-form-item label="主机IP" prop="hostIp">
<el-input v-model="form.hostIp" placeholder="请输入主机IP" />
</el-form-item>
<el-form-item label="主机端口" prop="hostPort">
<el-input v-model="form.hostPort" placeholder="请输入主机端口" />
</el-form-item>
<el-form-item label="主机路径" prop="hostPath">
<el-input v-model="form.hostPath" placeholder="请输入主机路径" />
</el-form-item>
<el-form-item label="是否标识1-是0-否" prop="isFlag">
<el-radio-group v-model="form.isFlag">
<el-radio
v-for="dict in wcs_is_flag"
:key="dict.value"
:value="parseInt(dict.value)"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="form.createdTime"
type="datetime"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择创建时间">
</el-date-picker>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="DeviceHost" lang="ts">
import { listDeviceHost, getDeviceHost, delDeviceHost, addDeviceHost, updateDeviceHost } from '@/api/wcs/deviceHost';
import { DeviceHostVO, DeviceHostQuery, DeviceHostForm } from '@/api/wcs/deviceHost/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { wcs_is_flag } = toRefs<any>(proxy?.useDict('wcs_is_flag'));
const deviceHostList = ref<DeviceHostVO[]>([]);
const buttonLoading = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref<Array<string | number>>([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const queryFormRef = ref<ElFormInstance>();
const deviceHostFormRef = ref<ElFormInstance>();
const dialog = reactive<DialogOption>({
visible: false,
title: ''
});
const initFormData: DeviceHostForm = {
objId: undefined,
hostCode: undefined,
hostName: undefined,
hostIp: undefined,
hostPort: undefined,
hostPath: undefined,
isFlag: undefined,
remark: undefined,
createdTime: undefined,
}
const data = reactive<PageData<DeviceHostForm, DeviceHostQuery>>({
form: {...initFormData},
queryParams: {
pageNum: 1,
pageSize: 10,
hostCode: undefined,
hostName: undefined,
hostIp: undefined,
hostPort: undefined,
hostPath: undefined,
isFlag: undefined,
createdTime: undefined,
params: {
}
},
rules: {
objId: [
{ required: true, message: "主键标识不能为空", trigger: "blur" }
],
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询设备主机列表 */
const getList = async () => {
loading.value = true;
const res = await listDeviceHost(queryParams.value);
deviceHostList.value = res.rows;
total.value = res.total;
loading.value = false;
}
/** 取消按钮 */
const cancel = () => {
reset();
dialog.visible = false;
}
/** 表单重置 */
const reset = () => {
form.value = {...initFormData};
deviceHostFormRef.value?.resetFields();
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value?.resetFields();
handleQuery();
}
/** 多选框选中数据 */
const handleSelectionChange = (selection: DeviceHostVO[]) => {
ids.value = selection.map(item => item.objId);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
const handleAdd = () => {
reset();
dialog.visible = true;
dialog.title = "添加设备主机";
}
/** 修改按钮操作 */
const handleUpdate = async (row?: DeviceHostVO) => {
reset();
const _objId = row?.objId || ids.value[0]
const res = await getDeviceHost(_objId);
Object.assign(form.value, res.data);
dialog.visible = true;
dialog.title = "修改设备主机";
}
/** 提交按钮 */
const submitForm = () => {
deviceHostFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
buttonLoading.value = true;
if (form.value.objId) {
await updateDeviceHost(form.value).finally(() => buttonLoading.value = false);
} else {
await addDeviceHost(form.value).finally(() => buttonLoading.value = false);
}
proxy?.$modal.msgSuccess("操作成功");
dialog.visible = false;
await getList();
}
});
}
/** 删除按钮操作 */
const handleDelete = async (row?: DeviceHostVO) => {
const _objIds = row?.objId || ids.value;
await proxy?.$modal.confirm('是否确认删除设备主机编号为"' + _objIds + '"的数据项?').finally(() => loading.value = false);
await delDeviceHost(_objIds);
proxy?.$modal.msgSuccess("删除成功");
await getList();
}
/** 导出按钮操作 */
const handleExport = () => {
proxy?.download('wcs/deviceHost/export', {
...queryParams.value
}, `deviceHost_${new Date().getTime()}.xlsx`)
}
onMounted(() => {
getList();
});
</script>

@ -0,0 +1,275 @@
<template>
<div class="p-2">
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
<div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover">
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="设备编号" prop="deviceCode">
<el-input v-model="queryParams.deviceCode" placeholder="请输入设备编号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="设备名称" prop="deviceName">
<el-input v-model="queryParams.deviceName" placeholder="请输入设备名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="所属主机" prop="hostCode">
<el-input v-model="queryParams.hostCode" placeholder="请输入所属主机" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="是否标识1-是0-否" prop="isFlag">
<el-input v-model="queryParams.isFlag" placeholder="请输入是否标识1-是0-否" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="queryParams.createdTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择创建时间"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
</el-card>
</div>
</transition>
<el-card shadow="never">
<template #header>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['wcs:deviceInfo:add']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['wcs:deviceInfo:edit']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['wcs:deviceInfo:remove']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['wcs:deviceInfo:export']"></el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</template>
<el-table v-loading="loading" border :data="deviceInfoList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键标识" align="center" prop="objId" v-if="true" />
<el-table-column label="设备编号" align="center" prop="deviceCode" />
<el-table-column label="设备名称" align="center" prop="deviceName" />
<el-table-column label="所属主机" align="center" prop="hostCode" />
<el-table-column label="设备类型0-输送线1-AGV2-提升机" align="center" prop="deviceType" />
<el-table-column label="设备状态0-正常1-在忙2-异常" align="center" prop="deviceStatus" />
<el-table-column label="是否标识1-是0-否" align="center" prop="isFlag" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="创建时间" align="center" prop="createdTime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="修改" placement="top">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['wcs:deviceInfo:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['wcs:deviceInfo:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 添加或修改设备信息对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-form ref="deviceInfoFormRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="设备编号" prop="deviceCode">
<el-input v-model="form.deviceCode" placeholder="请输入设备编号" />
</el-form-item>
<el-form-item label="设备名称" prop="deviceName">
<el-input v-model="form.deviceName" placeholder="请输入设备名称" />
</el-form-item>
<el-form-item label="所属主机" prop="hostCode">
<el-input v-model="form.hostCode" placeholder="请输入所属主机" />
</el-form-item>
<el-form-item label="是否标识1-是0-否" prop="isFlag">
<el-input v-model="form.isFlag" placeholder="请输入是否标识1-是0-否" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="form.createdTime"
type="datetime"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择创建时间">
</el-date-picker>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="DeviceInfo" lang="ts">
import { listDeviceInfo, getDeviceInfo, delDeviceInfo, addDeviceInfo, updateDeviceInfo } from '@/api/wcs/deviceInfo';
import { DeviceInfoVO, DeviceInfoQuery, DeviceInfoForm } from '@/api/wcs/deviceInfo/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const deviceInfoList = ref<DeviceInfoVO[]>([]);
const buttonLoading = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref<Array<string | number>>([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const queryFormRef = ref<ElFormInstance>();
const deviceInfoFormRef = ref<ElFormInstance>();
const dialog = reactive<DialogOption>({
visible: false,
title: ''
});
const initFormData: DeviceInfoForm = {
objId: undefined,
deviceCode: undefined,
deviceName: undefined,
hostCode: undefined,
deviceType: undefined,
deviceStatus: undefined,
isFlag: undefined,
remark: undefined,
createdTime: undefined,
}
const data = reactive<PageData<DeviceInfoForm, DeviceInfoQuery>>({
form: {...initFormData},
queryParams: {
pageNum: 1,
pageSize: 10,
deviceCode: undefined,
deviceName: undefined,
hostCode: undefined,
deviceType: undefined,
deviceStatus: undefined,
isFlag: undefined,
createdTime: undefined,
params: {
}
},
rules: {
objId: [
{ required: true, message: "主键标识不能为空", trigger: "blur" }
],
deviceCode: [
{ required: true, message: "设备编号不能为空", trigger: "blur" }
],
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询设备信息列表 */
const getList = async () => {
loading.value = true;
const res = await listDeviceInfo(queryParams.value);
deviceInfoList.value = res.rows;
total.value = res.total;
loading.value = false;
}
/** 取消按钮 */
const cancel = () => {
reset();
dialog.visible = false;
}
/** 表单重置 */
const reset = () => {
form.value = {...initFormData};
deviceInfoFormRef.value?.resetFields();
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value?.resetFields();
handleQuery();
}
/** 多选框选中数据 */
const handleSelectionChange = (selection: DeviceInfoVO[]) => {
ids.value = selection.map(item => item.objId);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
const handleAdd = () => {
reset();
dialog.visible = true;
dialog.title = "添加设备信息";
}
/** 修改按钮操作 */
const handleUpdate = async (row?: DeviceInfoVO) => {
reset();
const _objId = row?.objId || ids.value[0]
const res = await getDeviceInfo(_objId);
Object.assign(form.value, res.data);
dialog.visible = true;
dialog.title = "修改设备信息";
}
/** 提交按钮 */
const submitForm = () => {
deviceInfoFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
buttonLoading.value = true;
if (form.value.objId) {
await updateDeviceInfo(form.value).finally(() => buttonLoading.value = false);
} else {
await addDeviceInfo(form.value).finally(() => buttonLoading.value = false);
}
proxy?.$modal.msgSuccess("操作成功");
dialog.visible = false;
await getList();
}
});
}
/** 删除按钮操作 */
const handleDelete = async (row?: DeviceInfoVO) => {
const _objIds = row?.objId || ids.value;
await proxy?.$modal.confirm('是否确认删除设备信息编号为"' + _objIds + '"的数据项?').finally(() => loading.value = false);
await delDeviceInfo(_objIds);
proxy?.$modal.msgSuccess("删除成功");
await getList();
}
/** 导出按钮操作 */
const handleExport = () => {
proxy?.download('wcs/deviceInfo/export', {
...queryParams.value
}, `deviceInfo_${new Date().getTime()}.xlsx`)
}
onMounted(() => {
getList();
});
</script>

@ -0,0 +1,293 @@
<template>
<div class="p-2">
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
<div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover">
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="参数编号" prop="paramCode">
<el-input v-model="queryParams.paramCode" placeholder="请输入参数编号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="设备编号" prop="deviceCode">
<el-input v-model="queryParams.deviceCode" placeholder="请输入设备编号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="参数名称" prop="paramName">
<el-input v-model="queryParams.paramName" placeholder="请输入参数名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="参数地址" prop="paramAddress">
<el-input v-model="queryParams.paramAddress" placeholder="请输入参数地址" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="操作频率" prop="operationFrequency">
<el-input v-model="queryParams.operationFrequency" placeholder="请输入操作频率" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="是否标识1-是0-否" prop="isFlag">
<el-input v-model="queryParams.isFlag" placeholder="请输入是否标识1-是0-否" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="queryParams.createdTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择创建时间"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
</el-card>
</div>
</transition>
<el-card shadow="never">
<template #header>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['wcs:deviceParam:add']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['wcs:deviceParam:edit']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['wcs:deviceParam:remove']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['wcs:deviceParam:export']"></el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</template>
<el-table v-loading="loading" border :data="deviceParamList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键标识" align="center" prop="objId" v-if="true" />
<el-table-column label="参数编号" align="center" prop="paramCode" />
<el-table-column label="设备编号" align="center" prop="deviceCode" />
<el-table-column label="参数名称" align="center" prop="paramName" />
<el-table-column label="参数地址" align="center" prop="paramAddress" />
<el-table-column label="参数类型" align="center" prop="paramType" />
<el-table-column label="操作类型1-只读2-只写0-默认读写" align="center" prop="operationType" />
<el-table-column label="操作频率" align="center" prop="operationFrequency" />
<el-table-column label="是否标识1-是0-否" align="center" prop="isFlag" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="创建时间" align="center" prop="createdTime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="修改" placement="top">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['wcs:deviceParam:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['wcs:deviceParam:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 添加或修改设备参数对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-form ref="deviceParamFormRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="参数编号" prop="paramCode">
<el-input v-model="form.paramCode" placeholder="请输入参数编号" />
</el-form-item>
<el-form-item label="设备编号" prop="deviceCode">
<el-input v-model="form.deviceCode" placeholder="请输入设备编号" />
</el-form-item>
<el-form-item label="参数名称" prop="paramName">
<el-input v-model="form.paramName" placeholder="请输入参数名称" />
</el-form-item>
<el-form-item label="参数地址" prop="paramAddress">
<el-input v-model="form.paramAddress" placeholder="请输入参数地址" />
</el-form-item>
<el-form-item label="操作频率" prop="operationFrequency">
<el-input v-model="form.operationFrequency" placeholder="请输入操作频率" />
</el-form-item>
<el-form-item label="是否标识1-是0-否" prop="isFlag">
<el-input v-model="form.isFlag" placeholder="请输入是否标识1-是0-否" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="form.createdTime"
type="datetime"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择创建时间">
</el-date-picker>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="DeviceParam" lang="ts">
import { listDeviceParam, getDeviceParam, delDeviceParam, addDeviceParam, updateDeviceParam } from '@/api/wcs/deviceParam';
import { DeviceParamVO, DeviceParamQuery, DeviceParamForm } from '@/api/wcs/deviceParam/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const deviceParamList = ref<DeviceParamVO[]>([]);
const buttonLoading = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref<Array<string | number>>([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const queryFormRef = ref<ElFormInstance>();
const deviceParamFormRef = ref<ElFormInstance>();
const dialog = reactive<DialogOption>({
visible: false,
title: ''
});
const initFormData: DeviceParamForm = {
objId: undefined,
paramCode: undefined,
deviceCode: undefined,
paramName: undefined,
paramAddress: undefined,
paramType: undefined,
operationType: undefined,
operationFrequency: undefined,
isFlag: undefined,
remark: undefined,
createdTime: undefined,
}
const data = reactive<PageData<DeviceParamForm, DeviceParamQuery>>({
form: {...initFormData},
queryParams: {
pageNum: 1,
pageSize: 10,
paramCode: undefined,
deviceCode: undefined,
paramName: undefined,
paramAddress: undefined,
paramType: undefined,
operationType: undefined,
operationFrequency: undefined,
isFlag: undefined,
createdTime: undefined,
params: {
}
},
rules: {
objId: [
{ required: true, message: "主键标识不能为空", trigger: "blur" }
],
deviceCode: [
{ required: true, message: "设备编号不能为空", trigger: "blur" }
],
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询设备参数列表 */
const getList = async () => {
loading.value = true;
const res = await listDeviceParam(queryParams.value);
deviceParamList.value = res.rows;
total.value = res.total;
loading.value = false;
}
/** 取消按钮 */
const cancel = () => {
reset();
dialog.visible = false;
}
/** 表单重置 */
const reset = () => {
form.value = {...initFormData};
deviceParamFormRef.value?.resetFields();
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value?.resetFields();
handleQuery();
}
/** 多选框选中数据 */
const handleSelectionChange = (selection: DeviceParamVO[]) => {
ids.value = selection.map(item => item.objId);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
const handleAdd = () => {
reset();
dialog.visible = true;
dialog.title = "添加设备参数";
}
/** 修改按钮操作 */
const handleUpdate = async (row?: DeviceParamVO) => {
reset();
const _objId = row?.objId || ids.value[0]
const res = await getDeviceParam(_objId);
Object.assign(form.value, res.data);
dialog.visible = true;
dialog.title = "修改设备参数";
}
/** 提交按钮 */
const submitForm = () => {
deviceParamFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
buttonLoading.value = true;
if (form.value.objId) {
await updateDeviceParam(form.value).finally(() => buttonLoading.value = false);
} else {
await addDeviceParam(form.value).finally(() => buttonLoading.value = false);
}
proxy?.$modal.msgSuccess("操作成功");
dialog.visible = false;
await getList();
}
});
}
/** 删除按钮操作 */
const handleDelete = async (row?: DeviceParamVO) => {
const _objIds = row?.objId || ids.value;
await proxy?.$modal.confirm('是否确认删除设备参数编号为"' + _objIds + '"的数据项?').finally(() => loading.value = false);
await delDeviceParam(_objIds);
proxy?.$modal.msgSuccess("删除成功");
await getList();
}
/** 导出按钮操作 */
const handleExport = () => {
proxy?.download('wcs/deviceParam/export', {
...queryParams.value
}, `deviceParam_${new Date().getTime()}.xlsx`)
}
onMounted(() => {
getList();
});
</script>

@ -0,0 +1,375 @@
<template>
<div class="p-2">
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
<div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover">
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="库位编号" prop="locationCode">
<el-input v-model="queryParams.locationCode" placeholder="请输入库位编号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="库位名称" prop="locationName">
<el-input v-model="queryParams.locationName" placeholder="请输入库位名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="库位区域" prop="locationArea">
<el-input v-model="queryParams.locationArea" placeholder="请输入库位区域" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="仓库编号" prop="storeCode">
<el-input v-model="queryParams.storeCode" placeholder="请输入仓库编号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="排" prop="locationRows">
<el-input v-model="queryParams.locationRows" placeholder="请输入排" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="列" prop="locationColumns">
<el-input v-model="queryParams.locationColumns" placeholder="请输入列" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="层" prop="locationLayers">
<el-input v-model="queryParams.locationLayers" placeholder="请输入层" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="AGV定位" prop="agvPosition">
<el-input v-model="queryParams.agvPosition" placeholder="请输入AGV定位" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="物料信息" prop="materialCode">
<el-input v-model="queryParams.materialCode" placeholder="请输入物料信息" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="托盘条码" prop="palletBarcode">
<el-input v-model="queryParams.palletBarcode" placeholder="请输入托盘条码" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="库存数量" prop="stackCount">
<el-input v-model="queryParams.stackCount" placeholder="请输入库存数量" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="库位状态;0-未使用;1-已使用;2-锁库;3-异常" prop="locationStatus">
<el-select v-model="queryParams.locationStatus" placeholder="请选择库位状态;0-未使用;1-已使用;2-锁库;3-异常" clearable >
<el-option v-for="dict in wcs_location_status" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="是否标识1-是0-否" prop="isFlag">
<el-select v-model="queryParams.isFlag" placeholder="请选择是否标识1-是0-否" clearable >
<el-option v-for="dict in wcs_is_flag" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="queryParams.createdTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择创建时间"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
</el-card>
</div>
</transition>
<el-card shadow="never">
<template #header>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['wcs:locationInfo:add']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['wcs:locationInfo:edit']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['wcs:locationInfo:remove']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['wcs:locationInfo:export']"></el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</template>
<el-table v-loading="loading" border :data="locationInfoList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键标识" align="center" prop="objId" v-if="true" />
<el-table-column label="库位编号" align="center" prop="locationCode" />
<el-table-column label="库位名称" align="center" prop="locationName" />
<el-table-column label="库位区域" align="center" prop="locationArea" />
<el-table-column label="仓库编号" align="center" prop="storeCode" />
<el-table-column label="排" align="center" prop="locationRows" />
<el-table-column label="列" align="center" prop="locationColumns" />
<el-table-column label="层" align="center" prop="locationLayers" />
<el-table-column label="AGV定位" align="center" prop="agvPosition" />
<el-table-column label="物料信息" align="center" prop="materialCode" />
<el-table-column label="托盘条码" align="center" prop="palletBarcode" />
<el-table-column label="库存数量" align="center" prop="stackCount" />
<el-table-column label="库位状态;0-未使用;1-已使用;2-锁库;3-异常" align="center" prop="locationStatus">
<template #default="scope">
<dict-tag :options="wcs_location_status" :value="scope.row.locationStatus"/>
</template>
</el-table-column>
<el-table-column label="是否标识1-是0-否" align="center" prop="isFlag">
<template #default="scope">
<dict-tag :options="wcs_is_flag" :value="scope.row.isFlag"/>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="创建时间" align="center" prop="createdTime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="修改" placement="top">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['wcs:locationInfo:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['wcs:locationInfo:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 添加或修改库位信息对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-form ref="locationInfoFormRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="库位编号" prop="locationCode">
<el-input v-model="form.locationCode" placeholder="请输入库位编号" />
</el-form-item>
<el-form-item label="库位名称" prop="locationName">
<el-input v-model="form.locationName" placeholder="请输入库位名称" />
</el-form-item>
<el-form-item label="库位区域" prop="locationArea">
<el-input v-model="form.locationArea" placeholder="请输入库位区域" />
</el-form-item>
<el-form-item label="仓库编号" prop="storeCode">
<el-input v-model="form.storeCode" placeholder="请输入仓库编号" />
</el-form-item>
<el-form-item label="排" prop="locationRows">
<el-input v-model="form.locationRows" placeholder="请输入排" />
</el-form-item>
<el-form-item label="列" prop="locationColumns">
<el-input v-model="form.locationColumns" placeholder="请输入列" />
</el-form-item>
<el-form-item label="层" prop="locationLayers">
<el-input v-model="form.locationLayers" placeholder="请输入层" />
</el-form-item>
<el-form-item label="AGV定位" prop="agvPosition">
<el-input v-model="form.agvPosition" placeholder="请输入AGV定位" />
</el-form-item>
<el-form-item label="物料信息" prop="materialCode">
<el-input v-model="form.materialCode" placeholder="请输入物料信息" />
</el-form-item>
<el-form-item label="托盘条码" prop="palletBarcode">
<el-input v-model="form.palletBarcode" placeholder="请输入托盘条码" />
</el-form-item>
<el-form-item label="库存数量" prop="stackCount">
<el-input v-model="form.stackCount" placeholder="请输入库存数量" />
</el-form-item>
<el-form-item label="库位状态;0-未使用;1-已使用;2-锁库;3-异常" prop="locationStatus">
<el-radio-group v-model="form.locationStatus">
<el-radio
v-for="dict in wcs_location_status"
:key="dict.value"
:value="parseInt(dict.value)"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="是否标识1-是0-否" prop="isFlag">
<el-radio-group v-model="form.isFlag">
<el-radio
v-for="dict in wcs_is_flag"
:key="dict.value"
:value="parseInt(dict.value)"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="form.createdTime"
type="datetime"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择创建时间">
</el-date-picker>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="LocationInfo" lang="ts">
import { listLocationInfo, getLocationInfo, delLocationInfo, addLocationInfo, updateLocationInfo } from '@/api/wcs/locationInfo';
import { LocationInfoVO, LocationInfoQuery, LocationInfoForm } from '@/api/wcs/locationInfo/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { wcs_location_status, wcs_is_flag } = toRefs<any>(proxy?.useDict('wcs_location_status', 'wcs_is_flag'));
const locationInfoList = ref<LocationInfoVO[]>([]);
const buttonLoading = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref<Array<string | number>>([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const queryFormRef = ref<ElFormInstance>();
const locationInfoFormRef = ref<ElFormInstance>();
const dialog = reactive<DialogOption>({
visible: false,
title: ''
});
const initFormData: LocationInfoForm = {
objId: undefined,
locationCode: undefined,
locationName: undefined,
locationArea: undefined,
storeCode: undefined,
locationRows: undefined,
locationColumns: undefined,
locationLayers: undefined,
agvPosition: undefined,
materialCode: undefined,
palletBarcode: undefined,
stackCount: undefined,
locationStatus: undefined,
isFlag: undefined,
remark: undefined,
createdTime: undefined,
}
const data = reactive<PageData<LocationInfoForm, LocationInfoQuery>>({
form: {...initFormData},
queryParams: {
pageNum: 1,
pageSize: 10,
locationCode: undefined,
locationName: undefined,
locationArea: undefined,
storeCode: undefined,
locationRows: undefined,
locationColumns: undefined,
locationLayers: undefined,
agvPosition: undefined,
materialCode: undefined,
palletBarcode: undefined,
stackCount: undefined,
locationStatus: undefined,
isFlag: undefined,
createdTime: undefined,
params: {
}
},
rules: {
objId: [
{ required: true, message: "主键标识不能为空", trigger: "blur" }
],
storeCode: [
{ required: true, message: "仓库编号不能为空", trigger: "blur" }
],
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询库位信息列表 */
const getList = async () => {
loading.value = true;
const res = await listLocationInfo(queryParams.value);
locationInfoList.value = res.rows;
total.value = res.total;
loading.value = false;
}
/** 取消按钮 */
const cancel = () => {
reset();
dialog.visible = false;
}
/** 表单重置 */
const reset = () => {
form.value = {...initFormData};
locationInfoFormRef.value?.resetFields();
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value?.resetFields();
handleQuery();
}
/** 多选框选中数据 */
const handleSelectionChange = (selection: LocationInfoVO[]) => {
ids.value = selection.map(item => item.objId);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
const handleAdd = () => {
reset();
dialog.visible = true;
dialog.title = "添加库位信息";
}
/** 修改按钮操作 */
const handleUpdate = async (row?: LocationInfoVO) => {
reset();
const _objId = row?.objId || ids.value[0]
const res = await getLocationInfo(_objId);
Object.assign(form.value, res.data);
dialog.visible = true;
dialog.title = "修改库位信息";
}
/** 提交按钮 */
const submitForm = () => {
locationInfoFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
buttonLoading.value = true;
if (form.value.objId) {
await updateLocationInfo(form.value).finally(() => buttonLoading.value = false);
} else {
await addLocationInfo(form.value).finally(() => buttonLoading.value = false);
}
proxy?.$modal.msgSuccess("操作成功");
dialog.visible = false;
await getList();
}
});
}
/** 删除按钮操作 */
const handleDelete = async (row?: LocationInfoVO) => {
const _objIds = row?.objId || ids.value;
await proxy?.$modal.confirm('是否确认删除库位信息编号为"' + _objIds + '"的数据项?').finally(() => loading.value = false);
await delLocationInfo(_objIds);
proxy?.$modal.msgSuccess("删除成功");
await getList();
}
/** 导出按钮操作 */
const handleExport = () => {
proxy?.download('wcs/locationInfo/export', {
...queryParams.value
}, `locationInfo_${new Date().getTime()}.xlsx`)
}
onMounted(() => {
getList();
});
</script>

@ -0,0 +1,303 @@
<template>
<div class="p-2">
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
<div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover">
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="物料编号" prop="materialCode">
<el-input v-model="queryParams.materialCode" placeholder="请输入物料编号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="物料名称" prop="materialName">
<el-input v-model="queryParams.materialName" placeholder="请输入物料名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="物料条码" prop="materialBarcode">
<el-input v-model="queryParams.materialBarcode" placeholder="请输入物料条码" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="最短存放周期" prop="minStorageCycle">
<el-input v-model="queryParams.minStorageCycle" placeholder="请输入最短存放周期" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="最长存放周期" prop="maxStorageCycle">
<el-input v-model="queryParams.maxStorageCycle" placeholder="请输入最长存放周期" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="是否标识1-是0-否" prop="isFlag">
<el-select v-model="queryParams.isFlag" placeholder="请选择是否标识1-是0-否" clearable >
<el-option v-for="dict in wcs_is_flag" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="queryParams.createdTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择创建时间"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
</el-card>
</div>
</transition>
<el-card shadow="never">
<template #header>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['wcs:materialInfo:add']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['wcs:materialInfo:edit']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['wcs:materialInfo:remove']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['wcs:materialInfo:export']"></el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</template>
<el-table v-loading="loading" border :data="materialInfoList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键标识" align="center" prop="objId" v-if="true" />
<el-table-column label="物料编号" align="center" prop="materialCode" />
<el-table-column label="物料名称" align="center" prop="materialName" />
<el-table-column label="物料类型" align="center" prop="materialType" />
<el-table-column label="物料条码" align="center" prop="materialBarcode" />
<el-table-column label="最短存放周期" align="center" prop="minStorageCycle" />
<el-table-column label="最长存放周期" align="center" prop="maxStorageCycle" />
<el-table-column label="是否标识1-是0-否" align="center" prop="isFlag">
<template #default="scope">
<dict-tag :options="wcs_is_flag" :value="scope.row.isFlag"/>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="创建时间" align="center" prop="createdTime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="修改" placement="top">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['wcs:materialInfo:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['wcs:materialInfo:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 添加或修改物料信息对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-form ref="materialInfoFormRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="物料编号" prop="materialCode">
<el-input v-model="form.materialCode" placeholder="请输入物料编号" />
</el-form-item>
<el-form-item label="物料名称" prop="materialName">
<el-input v-model="form.materialName" placeholder="请输入物料名称" />
</el-form-item>
<el-form-item label="物料条码" prop="materialBarcode">
<el-input v-model="form.materialBarcode" placeholder="请输入物料条码" />
</el-form-item>
<el-form-item label="最短存放周期" prop="minStorageCycle">
<el-input v-model="form.minStorageCycle" placeholder="请输入最短存放周期" />
</el-form-item>
<el-form-item label="最长存放周期" prop="maxStorageCycle">
<el-input v-model="form.maxStorageCycle" placeholder="请输入最长存放周期" />
</el-form-item>
<el-form-item label="是否标识1-是0-否" prop="isFlag">
<el-radio-group v-model="form.isFlag">
<el-radio
v-for="dict in wcs_is_flag"
:key="dict.value"
:value="parseInt(dict.value)"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="form.createdTime"
type="datetime"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择创建时间">
</el-date-picker>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="MaterialInfo" lang="ts">
import { listMaterialInfo, getMaterialInfo, delMaterialInfo, addMaterialInfo, updateMaterialInfo } from '@/api/wcs/materialInfo';
import { MaterialInfoVO, MaterialInfoQuery, MaterialInfoForm } from '@/api/wcs/materialInfo/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { wcs_is_flag } = toRefs<any>(proxy?.useDict('wcs_is_flag'));
const materialInfoList = ref<MaterialInfoVO[]>([]);
const buttonLoading = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref<Array<string | number>>([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const queryFormRef = ref<ElFormInstance>();
const materialInfoFormRef = ref<ElFormInstance>();
const dialog = reactive<DialogOption>({
visible: false,
title: ''
});
const initFormData: MaterialInfoForm = {
objId: undefined,
materialCode: undefined,
materialName: undefined,
materialType: undefined,
materialBarcode: undefined,
minStorageCycle: undefined,
maxStorageCycle: undefined,
isFlag: undefined,
remark: undefined,
createdTime: undefined,
}
const data = reactive<PageData<MaterialInfoForm, MaterialInfoQuery>>({
form: {...initFormData},
queryParams: {
pageNum: 1,
pageSize: 10,
materialCode: undefined,
materialName: undefined,
materialType: undefined,
materialBarcode: undefined,
minStorageCycle: undefined,
maxStorageCycle: undefined,
isFlag: undefined,
createdTime: undefined,
params: {
}
},
rules: {
objId: [
{ required: true, message: "主键标识不能为空", trigger: "blur" }
],
materialCode: [
{ required: true, message: "物料编号不能为空", trigger: "blur" }
],
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询物料信息列表 */
const getList = async () => {
loading.value = true;
const res = await listMaterialInfo(queryParams.value);
materialInfoList.value = res.rows;
total.value = res.total;
loading.value = false;
}
/** 取消按钮 */
const cancel = () => {
reset();
dialog.visible = false;
}
/** 表单重置 */
const reset = () => {
form.value = {...initFormData};
materialInfoFormRef.value?.resetFields();
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value?.resetFields();
handleQuery();
}
/** 多选框选中数据 */
const handleSelectionChange = (selection: MaterialInfoVO[]) => {
ids.value = selection.map(item => item.objId);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
const handleAdd = () => {
reset();
dialog.visible = true;
dialog.title = "添加物料信息";
}
/** 修改按钮操作 */
const handleUpdate = async (row?: MaterialInfoVO) => {
reset();
const _objId = row?.objId || ids.value[0]
const res = await getMaterialInfo(_objId);
Object.assign(form.value, res.data);
dialog.visible = true;
dialog.title = "修改物料信息";
}
/** 提交按钮 */
const submitForm = () => {
materialInfoFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
buttonLoading.value = true;
if (form.value.objId) {
await updateMaterialInfo(form.value).finally(() => buttonLoading.value = false);
} else {
await addMaterialInfo(form.value).finally(() => buttonLoading.value = false);
}
proxy?.$modal.msgSuccess("操作成功");
dialog.visible = false;
await getList();
}
});
}
/** 删除按钮操作 */
const handleDelete = async (row?: MaterialInfoVO) => {
const _objIds = row?.objId || ids.value;
await proxy?.$modal.confirm('是否确认删除物料信息编号为"' + _objIds + '"的数据项?').finally(() => loading.value = false);
await delMaterialInfo(_objIds);
proxy?.$modal.msgSuccess("删除成功");
await getList();
}
/** 导出按钮操作 */
const handleExport = () => {
proxy?.download('wcs/materialInfo/export', {
...queryParams.value
}, `materialInfo_${new Date().getTime()}.xlsx`)
}
onMounted(() => {
getList();
});
</script>

@ -0,0 +1,279 @@
<template>
<div class="p-2">
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
<div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover">
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="路径编号" prop="pathCode">
<el-input v-model="queryParams.pathCode" placeholder="请输入路径编号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="起点" prop="startPoint">
<el-input v-model="queryParams.startPoint" placeholder="请输入起点" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="终点" prop="endPoint">
<el-input v-model="queryParams.endPoint" placeholder="请输入终点" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="是否标识1-是0-否" prop="isFlag">
<el-select v-model="queryParams.isFlag" placeholder="请选择是否标识1-是0-否" clearable >
<el-option v-for="dict in wcs_is_flag" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="queryParams.createdTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择创建时间"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
</el-card>
</div>
</transition>
<el-card shadow="never">
<template #header>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['wcs:pathDetails:add']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['wcs:pathDetails:edit']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['wcs:pathDetails:remove']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['wcs:pathDetails:export']"></el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</template>
<el-table v-loading="loading" border :data="pathDetailsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键标识" align="center" prop="objId" v-if="true" />
<el-table-column label="路径编号" align="center" prop="pathCode" />
<el-table-column label="起点" align="center" prop="startPoint" />
<el-table-column label="终点" align="center" prop="endPoint" />
<el-table-column label="是否标识1-是0-否" align="center" prop="isFlag">
<template #default="scope">
<dict-tag :options="wcs_is_flag" :value="scope.row.isFlag"/>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="创建时间" align="center" prop="createdTime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="修改" placement="top">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['wcs:pathDetails:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['wcs:pathDetails:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 添加或修改路径明细对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-form ref="pathDetailsFormRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="路径编号" prop="pathCode">
<el-input v-model="form.pathCode" placeholder="请输入路径编号" />
</el-form-item>
<el-form-item label="起点" prop="startPoint">
<el-input v-model="form.startPoint" placeholder="请输入起点" />
</el-form-item>
<el-form-item label="终点" prop="endPoint">
<el-input v-model="form.endPoint" placeholder="请输入终点" />
</el-form-item>
<el-form-item label="是否标识1-是0-否" prop="isFlag">
<el-radio-group v-model="form.isFlag">
<el-radio
v-for="dict in wcs_is_flag"
:key="dict.value"
:value="parseInt(dict.value)"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="form.createdTime"
type="datetime"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择创建时间">
</el-date-picker>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="PathDetails" lang="ts">
import { listPathDetails, getPathDetails, delPathDetails, addPathDetails, updatePathDetails } from '@/api/wcs/pathDetails';
import { PathDetailsVO, PathDetailsQuery, PathDetailsForm } from '@/api/wcs/pathDetails/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { wcs_is_flag } = toRefs<any>(proxy?.useDict('wcs_is_flag'));
const pathDetailsList = ref<PathDetailsVO[]>([]);
const buttonLoading = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref<Array<string | number>>([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const queryFormRef = ref<ElFormInstance>();
const pathDetailsFormRef = ref<ElFormInstance>();
const dialog = reactive<DialogOption>({
visible: false,
title: ''
});
const initFormData: PathDetailsForm = {
objId: undefined,
pathCode: undefined,
startPoint: undefined,
endPoint: undefined,
isFlag: undefined,
remark: undefined,
createdTime: undefined,
}
const data = reactive<PageData<PathDetailsForm, PathDetailsQuery>>({
form: {...initFormData},
queryParams: {
pageNum: 1,
pageSize: 10,
pathCode: undefined,
startPoint: undefined,
endPoint: undefined,
isFlag: undefined,
createdTime: undefined,
params: {
}
},
rules: {
objId: [
{ required: true, message: "主键标识不能为空", trigger: "blur" }
],
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询路径明细列表 */
const getList = async () => {
loading.value = true;
const res = await listPathDetails(queryParams.value);
pathDetailsList.value = res.rows;
total.value = res.total;
loading.value = false;
}
/** 取消按钮 */
const cancel = () => {
reset();
dialog.visible = false;
}
/** 表单重置 */
const reset = () => {
form.value = {...initFormData};
pathDetailsFormRef.value?.resetFields();
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value?.resetFields();
handleQuery();
}
/** 多选框选中数据 */
const handleSelectionChange = (selection: PathDetailsVO[]) => {
ids.value = selection.map(item => item.objId);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
const handleAdd = () => {
reset();
dialog.visible = true;
dialog.title = "添加路径明细";
}
/** 修改按钮操作 */
const handleUpdate = async (row?: PathDetailsVO) => {
reset();
const _objId = row?.objId || ids.value[0]
const res = await getPathDetails(_objId);
Object.assign(form.value, res.data);
dialog.visible = true;
dialog.title = "修改路径明细";
}
/** 提交按钮 */
const submitForm = () => {
pathDetailsFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
buttonLoading.value = true;
if (form.value.objId) {
await updatePathDetails(form.value).finally(() => buttonLoading.value = false);
} else {
await addPathDetails(form.value).finally(() => buttonLoading.value = false);
}
proxy?.$modal.msgSuccess("操作成功");
dialog.visible = false;
await getList();
}
});
}
/** 删除按钮操作 */
const handleDelete = async (row?: PathDetailsVO) => {
const _objIds = row?.objId || ids.value;
await proxy?.$modal.confirm('是否确认删除路径明细编号为"' + _objIds + '"的数据项?').finally(() => loading.value = false);
await delPathDetails(_objIds);
proxy?.$modal.msgSuccess("删除成功");
await getList();
}
/** 导出按钮操作 */
const handleExport = () => {
proxy?.download('wcs/pathDetails/export', {
...queryParams.value
}, `pathDetails_${new Date().getTime()}.xlsx`)
}
onMounted(() => {
getList();
});
</script>

@ -0,0 +1,270 @@
<template>
<div class="p-2">
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
<div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover">
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="路径编号" prop="pathCode">
<el-input v-model="queryParams.pathCode" placeholder="请输入路径编号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="路径名称" prop="pathName">
<el-input v-model="queryParams.pathName" placeholder="请输入路径名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="是否标识1-是0-否" prop="isFlag">
<el-select v-model="queryParams.isFlag" placeholder="请选择是否标识1-是0-否" clearable >
<el-option v-for="dict in wcs_is_flag" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="queryParams.createdTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择创建时间"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
</el-card>
</div>
</transition>
<el-card shadow="never">
<template #header>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['wcs:pathInfo:add']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['wcs:pathInfo:edit']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['wcs:pathInfo:remove']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['wcs:pathInfo:export']"></el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</template>
<el-table v-loading="loading" border :data="pathInfoList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键标识" align="center" prop="objId" v-if="true" />
<el-table-column label="路径编号" align="center" prop="pathCode" />
<el-table-column label="路径名称" align="center" prop="pathName" />
<el-table-column label="是否标识1-是0-否" align="center" prop="isFlag">
<template #default="scope">
<dict-tag :options="wcs_is_flag" :value="scope.row.isFlag"/>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="创建时间" align="center" prop="createdTime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="修改" placement="top">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['wcs:pathInfo:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['wcs:pathInfo:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 添加或修改路径信息对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-form ref="pathInfoFormRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="路径编号" prop="pathCode">
<el-input v-model="form.pathCode" placeholder="请输入路径编号" />
</el-form-item>
<el-form-item label="路径名称" prop="pathName">
<el-input v-model="form.pathName" placeholder="请输入路径名称" />
</el-form-item>
<el-form-item label="是否标识1-是0-否" prop="isFlag">
<el-radio-group v-model="form.isFlag">
<el-radio
v-for="dict in wcs_is_flag"
:key="dict.value"
:value="parseInt(dict.value)"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="form.createdTime"
type="datetime"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择创建时间">
</el-date-picker>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="PathInfo" lang="ts">
import { listPathInfo, getPathInfo, delPathInfo, addPathInfo, updatePathInfo } from '@/api/wcs/pathInfo';
import { PathInfoVO, PathInfoQuery, PathInfoForm } from '@/api/wcs/pathInfo/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { wcs_is_flag } = toRefs<any>(proxy?.useDict('wcs_is_flag'));
const pathInfoList = ref<PathInfoVO[]>([]);
const buttonLoading = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref<Array<string | number>>([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const queryFormRef = ref<ElFormInstance>();
const pathInfoFormRef = ref<ElFormInstance>();
const dialog = reactive<DialogOption>({
visible: false,
title: ''
});
const initFormData: PathInfoForm = {
objId: undefined,
pathCode: undefined,
pathName: undefined,
isFlag: undefined,
remark: undefined,
createdTime: undefined,
}
const data = reactive<PageData<PathInfoForm, PathInfoQuery>>({
form: {...initFormData},
queryParams: {
pageNum: 1,
pageSize: 10,
pathCode: undefined,
pathName: undefined,
isFlag: undefined,
createdTime: undefined,
params: {
}
},
rules: {
objId: [
{ required: true, message: "主键标识不能为空", trigger: "blur" }
],
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询路径信息列表 */
const getList = async () => {
loading.value = true;
const res = await listPathInfo(queryParams.value);
pathInfoList.value = res.rows;
total.value = res.total;
loading.value = false;
}
/** 取消按钮 */
const cancel = () => {
reset();
dialog.visible = false;
}
/** 表单重置 */
const reset = () => {
form.value = {...initFormData};
pathInfoFormRef.value?.resetFields();
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value?.resetFields();
handleQuery();
}
/** 多选框选中数据 */
const handleSelectionChange = (selection: PathInfoVO[]) => {
ids.value = selection.map(item => item.objId);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
const handleAdd = () => {
reset();
dialog.visible = true;
dialog.title = "添加路径信息";
}
/** 修改按钮操作 */
const handleUpdate = async (row?: PathInfoVO) => {
reset();
const _objId = row?.objId || ids.value[0]
const res = await getPathInfo(_objId);
Object.assign(form.value, res.data);
dialog.visible = true;
dialog.title = "修改路径信息";
}
/** 提交按钮 */
const submitForm = () => {
pathInfoFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
buttonLoading.value = true;
if (form.value.objId) {
await updatePathInfo(form.value).finally(() => buttonLoading.value = false);
} else {
await addPathInfo(form.value).finally(() => buttonLoading.value = false);
}
proxy?.$modal.msgSuccess("操作成功");
dialog.visible = false;
await getList();
}
});
}
/** 删除按钮操作 */
const handleDelete = async (row?: PathInfoVO) => {
const _objIds = row?.objId || ids.value;
await proxy?.$modal.confirm('是否确认删除路径信息编号为"' + _objIds + '"的数据项?').finally(() => loading.value = false);
await delPathInfo(_objIds);
proxy?.$modal.msgSuccess("删除成功");
await getList();
}
/** 导出按钮操作 */
const handleExport = () => {
proxy?.download('wcs/pathInfo/export', {
...queryParams.value
}, `pathInfo_${new Date().getTime()}.xlsx`)
}
onMounted(() => {
getList();
});
</script>

@ -0,0 +1,273 @@
<template>
<div class="p-2">
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
<div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover">
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="仓库编号" prop="storeCode">
<el-input v-model="queryParams.storeCode" placeholder="请输入仓库编号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="仓库名称" prop="storeName">
<el-input v-model="queryParams.storeName" placeholder="请输入仓库名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="是否表示1-是0-否" prop="isFlag">
<el-select v-model="queryParams.isFlag" placeholder="请选择是否表示1-是0-否" clearable >
<el-option v-for="dict in wcs_is_flag" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="queryParams.createdTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择创建时间"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
</el-card>
</div>
</transition>
<el-card shadow="never">
<template #header>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['wcs:storeInfo:add']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['wcs:storeInfo:edit']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['wcs:storeInfo:remove']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['wcs:storeInfo:export']"></el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</template>
<el-table v-loading="loading" border :data="storeInfoList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键标识" align="center" prop="objId" v-if="true" />
<el-table-column label="仓库编号" align="center" prop="storeCode" />
<el-table-column label="仓库名称" align="center" prop="storeName" />
<el-table-column label="是否表示1-是0-否" align="center" prop="isFlag">
<template #default="scope">
<dict-tag :options="wcs_is_flag" :value="scope.row.isFlag"/>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="创建时间" align="center" prop="createdTime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="修改" placement="top">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['wcs:storeInfo:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['wcs:storeInfo:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 添加或修改仓库信息对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-form ref="storeInfoFormRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="仓库编号" prop="storeCode">
<el-input v-model="form.storeCode" placeholder="请输入仓库编号" />
</el-form-item>
<el-form-item label="仓库名称" prop="storeName">
<el-input v-model="form.storeName" placeholder="请输入仓库名称" />
</el-form-item>
<el-form-item label="是否表示1-是0-否" prop="isFlag">
<el-radio-group v-model="form.isFlag">
<el-radio
v-for="dict in wcs_is_flag"
:key="dict.value"
:value="parseInt(dict.value)"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker clearable
v-model="form.createdTime"
type="datetime"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择创建时间">
</el-date-picker>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="StoreInfo" lang="ts">
import { listStoreInfo, getStoreInfo, delStoreInfo, addStoreInfo, updateStoreInfo } from '@/api/wcs/storeInfo';
import { StoreInfoVO, StoreInfoQuery, StoreInfoForm } from '@/api/wcs/storeInfo/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { wcs_is_flag } = toRefs<any>(proxy?.useDict('wcs_is_flag'));
const storeInfoList = ref<StoreInfoVO[]>([]);
const buttonLoading = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref<Array<string | number>>([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const queryFormRef = ref<ElFormInstance>();
const storeInfoFormRef = ref<ElFormInstance>();
const dialog = reactive<DialogOption>({
visible: false,
title: ''
});
const initFormData: StoreInfoForm = {
objId: undefined,
storeCode: undefined,
storeName: undefined,
isFlag: undefined,
remark: undefined,
createdTime: undefined,
}
const data = reactive<PageData<StoreInfoForm, StoreInfoQuery>>({
form: {...initFormData},
queryParams: {
pageNum: 1,
pageSize: 10,
storeCode: undefined,
storeName: undefined,
isFlag: undefined,
createdTime: undefined,
params: {
}
},
rules: {
objId: [
{ required: true, message: "主键标识不能为空", trigger: "blur" }
],
storeCode: [
{ required: true, message: "仓库编号不能为空", trigger: "blur" }
],
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询仓库信息列表 */
const getList = async () => {
loading.value = true;
const res = await listStoreInfo(queryParams.value);
storeInfoList.value = res.rows;
total.value = res.total;
loading.value = false;
}
/** 取消按钮 */
const cancel = () => {
reset();
dialog.visible = false;
}
/** 表单重置 */
const reset = () => {
form.value = {...initFormData};
storeInfoFormRef.value?.resetFields();
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value?.resetFields();
handleQuery();
}
/** 多选框选中数据 */
const handleSelectionChange = (selection: StoreInfoVO[]) => {
ids.value = selection.map(item => item.objId);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
const handleAdd = () => {
reset();
dialog.visible = true;
dialog.title = "添加仓库信息";
}
/** 修改按钮操作 */
const handleUpdate = async (row?: StoreInfoVO) => {
reset();
const _objId = row?.objId || ids.value[0]
const res = await getStoreInfo(_objId);
Object.assign(form.value, res.data);
dialog.visible = true;
dialog.title = "修改仓库信息";
}
/** 提交按钮 */
const submitForm = () => {
storeInfoFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
buttonLoading.value = true;
if (form.value.objId) {
await updateStoreInfo(form.value).finally(() => buttonLoading.value = false);
} else {
await addStoreInfo(form.value).finally(() => buttonLoading.value = false);
}
proxy?.$modal.msgSuccess("操作成功");
dialog.visible = false;
await getList();
}
});
}
/** 删除按钮操作 */
const handleDelete = async (row?: StoreInfoVO) => {
const _objIds = row?.objId || ids.value;
await proxy?.$modal.confirm('是否确认删除仓库信息编号为"' + _objIds + '"的数据项?').finally(() => loading.value = false);
await delStoreInfo(_objIds);
proxy?.$modal.msgSuccess("删除成功");
await getList();
}
/** 导出按钮操作 */
const handleExport = () => {
proxy?.download('wcs/storeInfo/export', {
...queryParams.value
}, `storeInfo_${new Date().getTime()}.xlsx`)
}
onMounted(() => {
getList();
});
</script>
Loading…
Cancel
Save