songguoqiang
7 months ago
8 changed files with 476 additions and 307 deletions
@ -1,312 +1,236 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
import * as LocationAreaApi from '@/api/eam/basic/locationArea' |
|||
import { LocationArea } from '@/views/eam/basic/locationArea/locationArea.data' |
|||
|
|||
import * as LocationApi from '@/api/eam/basic/location' |
|||
import { Location } from '@/views/eam/basic/location/location.data' |
|||
|
|||
import * as ItemApi from '@/api/eam/basic/item' |
|||
import { Item } from '@/views/eam/basic/item/item.data' |
|||
import { getStrDictOptions } from '@/utils/dict' |
|||
const typeList = getStrDictOptions(DICT_TYPE.ITEM_ACCOUNT_LOCATION_TYPE).filter(item => item.value != '1') |
|||
const typeLists = getStrDictOptions(DICT_TYPE.ITEM_ACCOUNT_LOCATION_TYPE) |
|||
// 表单校验
|
|||
export const ItemAccountsRules = reactive({ |
|||
itemNumber: [required], |
|||
name: [required], |
|||
areaNumber: [required], |
|||
concurrencyStamp: [required], |
|||
type: [required], |
|||
locationNumber: [required], |
|||
qty: [required] |
|||
}) |
|||
|
|||
export const ItemAccounts = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '备件编号', |
|||
field: 'itemNumber', |
|||
sort: 'custom', |
|||
isSearch: true, |
|||
table: { |
|||
width: 180, |
|||
fixed: 'left' |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备件名称', |
|||
field: 'name', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 110 |
|||
}, |
|||
isSearch: false, |
|||
}, |
|||
|
|||
{ |
|||
label: '库位编号', |
|||
field: 'locationNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 110 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库区编号', |
|||
field: 'areaNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 110 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 110 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '是否账内库', |
|||
field: 'isInAccount', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: false, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 130 |
|||
}, |
|||
tableForm: { |
|||
type: 'Select', |
|||
inactiveValue: 'FALSE', |
|||
disabled: true |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
export const ItemAccounts = useCrudSchemas( |
|||
reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '备件编号', |
|||
field: 'itemNumber', |
|||
sort: 'custom', |
|||
isSearch: true, |
|||
form: { |
|||
// labelMessage: '信息提示说明!!!',
|
|||
componentProps: { |
|||
isSearchList: true, // 开启查询弹窗
|
|||
searchListPlaceholder: '请选择备件编号', // 输入框占位文本
|
|||
searchField: 'number', // 查询弹窗赋值字段
|
|||
searchTitle: '备件信息', // 查询弹窗标题
|
|||
searchAllSchemas: Item.allSchemas, // 查询弹窗所需类
|
|||
searchPage: ItemApi.getItemPage, // 查询弹窗所需分页方法
|
|||
searchCondition: [ |
|||
{ |
|||
key: 'available', |
|||
value: 'TRUE', |
|||
isMainValue: false |
|||
} |
|||
] |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
{ |
|||
label: '规格', |
|||
field: 'specifications', |
|||
sort: 'custom', |
|||
}, |
|||
{ |
|||
label: '是否常储', |
|||
field: 'isConstant', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: false, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 110, |
|||
}, |
|||
tableForm: { |
|||
type: 'Select', |
|||
inactiveValue: 'FALSE', |
|||
disabled: true |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
{ |
|||
label: '备件名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 110 |
|||
}, |
|||
form:{ |
|||
componentProps:{ |
|||
disabled:true |
|||
} |
|||
}, |
|||
isSearch: false |
|||
}, |
|||
{ |
|||
label: '库区编号', |
|||
field: 'areaNumber', |
|||
sort: 'custom', |
|||
isSearch: false, |
|||
form: { |
|||
// labelMessage: '信息提示说明!!!',
|
|||
componentProps: { |
|||
isSearchList: true, // 开启查询弹窗
|
|||
searchListPlaceholder: '请选择库区编号', // 输入框占位文本
|
|||
searchField: 'number', // 查询弹窗赋值字段
|
|||
searchTitle: '库区信息', // 查询弹窗标题
|
|||
searchAllSchemas: LocationArea.allSchemas, // 查询弹窗所需类
|
|||
searchPage: LocationAreaApi.getLocationAreaPage, // 查询弹窗所需分页方法
|
|||
searchCondition: [ |
|||
{ |
|||
key: 'available', |
|||
value: 'TRUE', |
|||
isMainValue: false |
|||
} |
|||
] |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
{ |
|||
label: '科目', |
|||
field: 'subject', |
|||
sort: 'custom', |
|||
dictType: DICT_TYPE.ITEM_SUBJECT, |
|||
dictClass: 'string', |
|||
isSearch: false, |
|||
isTable: true, |
|||
tableForm: { |
|||
type: 'Select' |
|||
} |
|||
}, |
|||
|
|||
{ |
|||
label: '科目代码', |
|||
field: 'subjectCode', |
|||
sort: 'custom', |
|||
isTable: true, |
|||
}, |
|||
{ |
|||
label: '单位', |
|||
field: 'uom', |
|||
sort: 'custom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isSearch: false, |
|||
isTable: true, |
|||
tableForm: { |
|||
type: 'Select' |
|||
} |
|||
}, |
|||
{ |
|||
label: '类别', |
|||
field: 'category', |
|||
sort: 'custom', |
|||
dictType: DICT_TYPE.ITEM_CATEGORY, |
|||
dictClass: 'string', |
|||
isSearch: false, |
|||
isTable: true, |
|||
tableForm: { |
|||
type: 'Select' |
|||
} |
|||
}, |
|||
{ |
|||
label: '备件分类', |
|||
field: 'classification', |
|||
sort: 'custom', |
|||
dictType: DICT_TYPE.CLASSIFICATION, |
|||
dictClass: 'string', |
|||
isSearch: false, |
|||
isTable: true, |
|||
tableForm: { |
|||
type: 'Select' |
|||
} |
|||
}, |
|||
{ |
|||
label: '区域', |
|||
field: 'region', |
|||
sort: 'custom', |
|||
dictType: DICT_TYPE.ITEM_REGION, |
|||
dictClass: 'string', |
|||
isSearch: false, |
|||
isTable: true, |
|||
tableForm: { |
|||
type: 'Select' |
|||
} |
|||
}, |
|||
// {
|
|||
// label: '单价',
|
|||
// field: 'singlePrice',
|
|||
// sort: 'custom',
|
|||
// },
|
|||
{ |
|||
label: '重采购点', |
|||
field: 'reprocurement', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 110, |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
value: 0 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '安全库存', |
|||
field: 'safetyStock', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 110, |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
value: 0 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '成本中心', |
|||
field: 'cost', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 110, |
|||
}, |
|||
}, |
|||
{ |
|||
label: '采购员', |
|||
field: 'purchaser', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 100, |
|||
}, |
|||
}, |
|||
{ |
|||
label: '财务', |
|||
field: 'financer', |
|||
sort: 'custom', |
|||
}, |
|||
{ |
|||
label: '是否以旧换新', |
|||
field: 'isRadeIn', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: false, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 140 |
|||
}, |
|||
tableForm: { |
|||
type: 'Select', |
|||
inactiveValue: 'FALSE', |
|||
disabled: true |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
{ |
|||
label: '库区名称', |
|||
field: 'areaName', |
|||
sort: 'custom', |
|||
isSearch: false, |
|||
isForm:false |
|||
}, |
|||
{ |
|||
label: '库位编号', |
|||
field: 'locationNumber', |
|||
sort: 'custom', |
|||
isSearch: false, |
|||
form: { |
|||
// labelMessage: '信息提示说明!!!',
|
|||
componentProps: { |
|||
isSearchList: true, // 开启查询弹窗
|
|||
searchListPlaceholder: '请选择库位编号', // 输入框占位文本
|
|||
searchField: 'number', // 查询弹窗赋值字段
|
|||
searchTitle: '库位信息', // 查询弹窗标题
|
|||
searchAllSchemas: Location.allSchemas, // 查询弹窗所需类
|
|||
searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法
|
|||
searchCondition: [ |
|||
{ |
|||
key: 'available', |
|||
value: 'TRUE', |
|||
isMainValue: false |
|||
}, |
|||
{ |
|||
key: 'areaNumber', |
|||
value: 'areaNumber', |
|||
isMainValue: true |
|||
}, |
|||
] |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
{ |
|||
label: '是否框架协议', |
|||
field: 'isFramework', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: false, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 140 |
|||
}, |
|||
tableForm: { |
|||
type: 'Select', |
|||
inactiveValue: 'FALSE', |
|||
disabled: true |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
{ |
|||
label: '库位名称', |
|||
field: 'locationName', |
|||
sort: 'custom', |
|||
isSearch: false, |
|||
isForm:false |
|||
}, |
|||
// {
|
|||
// label: '库位类型',
|
|||
// field: 'type',
|
|||
// dictType: DICT_TYPE.ITEM_ACCOUNT_LOCATION_TYPE,
|
|||
// dictClass: 'string',
|
|||
// isSearch: true,
|
|||
// isTable: true,
|
|||
// sort: 'custom',
|
|||
// table: {
|
|||
// width: 130
|
|||
// },
|
|||
// form: {
|
|||
// component: 'Select'
|
|||
// }
|
|||
// },
|
|||
{ |
|||
label: '库位类型', |
|||
field: 'type', |
|||
sort: 'custom', |
|||
table: { |
|||
width: '150', |
|||
}, |
|||
isDetail: false, |
|||
formatter: (_: Recordable, __: TableColumn, cellValue: number) => { |
|||
return typeLists.find((account) => account.value == cellValue)?.label |
|||
}, |
|||
// dictType: DICT_TYPE.APP_DEVICE_MOLD_TYPE,
|
|||
isSearch: false, |
|||
search: { |
|||
component: 'Select', |
|||
componentProps: { |
|||
options: typeList, |
|||
optionsAlias: { |
|||
labelField: 'label', |
|||
valueField: 'value' |
|||
}, |
|||
filterable: true, |
|||
}, |
|||
}, |
|||
form: { |
|||
component: 'Select', |
|||
componentProps: { |
|||
options: typeList, |
|||
optionsAlias: { |
|||
labelField: 'label', |
|||
valueField: 'value' |
|||
}, |
|||
//disabled: true,
|
|||
//filterable: true,
|
|||
placeholder: "请选择类型" |
|||
} |
|||
}, |
|||
}, |
|||
// {
|
|||
// label: '库位类型',
|
|||
// field: 'type',
|
|||
// dictType: DICT_TYPE.ITEM_ACCOUNT_LOCATION_TYPE,
|
|||
// dictClass: 'string',
|
|||
// isSearch: true,
|
|||
// isTable: true,
|
|||
// sort: 'custom',
|
|||
// table: {
|
|||
// width: 130
|
|||
// },
|
|||
// form: {
|
|||
// component: 'Select'
|
|||
// }
|
|||
// },
|
|||
{ |
|||
label: '库存数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 110 |
|||
}, |
|||
form:{ |
|||
component: 'InputNumber', |
|||
componentProps:{ |
|||
min: 0,//最小值`
|
|||
precision: 2//精度`
|
|||
} |
|||
} |
|||
} |
|||
}, |
|||
{ |
|||
label: '是否可用', |
|||
field: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: false, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
tableForm: { |
|||
type: 'Select', |
|||
inactiveValue: 'FALSE', |
|||
disabled: true |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
// {
|
|||
// label: '是否账内库',
|
|||
// field: 'isInAccount',
|
|||
// dictType: DICT_TYPE.TRUE_FALSE,
|
|||
// dictClass: 'string',
|
|||
// isSearch: false,
|
|||
// isTable: true,
|
|||
// sort: 'custom',
|
|||
// table: {
|
|||
// width: 130
|
|||
// },
|
|||
|
|||
{ |
|||
label: '操作', |
|||
field: 'action', |
|||
isForm: false, |
|||
table: { |
|||
width: 250, |
|||
fixed: 'right' |
|||
} |
|||
} |
|||
}, |
|||
{ |
|||
label: '操作', |
|||
field: 'action', |
|||
isForm: false, |
|||
table: { |
|||
width: 150, |
|||
fixed: 'right' |
|||
} |
|||
} |
|||
])) |
|||
]) |
|||
) |
|||
|
@ -0,0 +1,175 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
import * as LocationAreaApi from '@/api/eam/basic/locationArea' |
|||
import { LocationArea } from '@/views/eam/basic/locationArea/locationArea.data' |
|||
|
|||
import * as LocationApi from '@/api/eam/basic/location' |
|||
import { Location } from '@/views/eam/basic/location/location.data' |
|||
|
|||
import * as ItemApi from '@/api/eam/basic/item' |
|||
import { Item } from '@/views/eam/basic/item/item.data' |
|||
import { getStrDictOptions } from '@/utils/dict' |
|||
const typeList = getStrDictOptions(DICT_TYPE.ITEM_ACCOUNT_LOCATION_TYPE).filter(item => item.value != '1') |
|||
//const typeList = getStrDictOptions(DICT_TYPE.ITEM_ACCOUNT_LOCATION_TYPE)
|
|||
// 表单校验
|
|||
export const ItemInRules = reactive({ |
|||
// itemNumber: [required],
|
|||
// name: [required],
|
|||
// areaNumber: [required],
|
|||
// type: [required],
|
|||
// locationNumber: [required],
|
|||
qty: [required] |
|||
}) |
|||
|
|||
export const ItemIn = useCrudSchemas( |
|||
reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '备件编号', |
|||
field: 'itemNumber', |
|||
sort: 'custom', |
|||
form:{ |
|||
componentProps:{ |
|||
disabled:true |
|||
} |
|||
} |
|||
}, |
|||
{ |
|||
label: '备件名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 110 |
|||
}, |
|||
form:{ |
|||
componentProps:{ |
|||
disabled:true |
|||
} |
|||
}, |
|||
|
|||
}, |
|||
{ |
|||
label: '库区编号', |
|||
field: 'areaNumber', |
|||
sort: 'custom', |
|||
form:{ |
|||
componentProps:{ |
|||
disabled:true |
|||
} |
|||
}, |
|||
},{ |
|||
label: '库位编号', |
|||
field: 'locationNumber', |
|||
sort: 'custom', |
|||
form:{ |
|||
componentProps:{ |
|||
disabled:true |
|||
} |
|||
}, |
|||
}, |
|||
// {
|
|||
// label: '库位类型',
|
|||
// field: 'type',
|
|||
// dictType: DICT_TYPE.ITEM_ACCOUNT_LOCATION_TYPE,
|
|||
// dictClass: 'string',
|
|||
// isSearch: true,
|
|||
// isTable: true,
|
|||
// sort: 'custom',
|
|||
// table: {
|
|||
// width: 130
|
|||
// },
|
|||
// form: {
|
|||
// component: 'Select'
|
|||
// }
|
|||
// },
|
|||
// {
|
|||
// label: '库位类型',
|
|||
// field: 'type',
|
|||
// sort: 'custom',
|
|||
// table: {
|
|||
// width: '150',
|
|||
// },
|
|||
// isDetail: false,
|
|||
// formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
|
|||
// return typeList.find((account) => account.value == cellValue)?.label
|
|||
// },
|
|||
// // dictType: DICT_TYPE.APP_DEVICE_MOLD_TYPE,
|
|||
// isSearch: false,
|
|||
// search: {
|
|||
// component: 'Select',
|
|||
// componentProps: {
|
|||
// options: typeList,
|
|||
// optionsAlias: {
|
|||
// labelField: 'label',
|
|||
// valueField: 'value'
|
|||
// },
|
|||
// filterable: true,
|
|||
// },
|
|||
// },
|
|||
// form: {
|
|||
// component: 'Select',
|
|||
// componentProps: {
|
|||
// options: typeList,
|
|||
// optionsAlias: {
|
|||
// labelField: 'label',
|
|||
// valueField: 'value'
|
|||
// },
|
|||
// //disabled: true,
|
|||
// //filterable: true,
|
|||
// placeholder: "请选择类型"
|
|||
// }
|
|||
// },
|
|||
// },
|
|||
// {
|
|||
// label: '库位类型',
|
|||
// field: 'type',
|
|||
// dictType: DICT_TYPE.ITEM_ACCOUNT_LOCATION_TYPE,
|
|||
// dictClass: 'string',
|
|||
// isSearch: true,
|
|||
// isTable: true,
|
|||
// sort: 'custom',
|
|||
// table: {
|
|||
// width: 130
|
|||
// },
|
|||
// form: {
|
|||
// component: 'Select'
|
|||
// }
|
|||
// },
|
|||
|
|||
{ |
|||
label: '库存数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 110 |
|||
}, |
|||
form:{ |
|||
component: 'InputNumber', |
|||
componentProps:{ |
|||
min: 0,//最小值`
|
|||
precision: 2//精度`
|
|||
} |
|||
} |
|||
}, |
|||
// {
|
|||
// label: '是否账内库',
|
|||
// field: 'isInAccount',
|
|||
// dictType: DICT_TYPE.TRUE_FALSE,
|
|||
// dictClass: 'string',
|
|||
// isSearch: false,
|
|||
// isTable: true,
|
|||
// sort: 'custom',
|
|||
// table: {
|
|||
// width: 130
|
|||
// },
|
|||
|
|||
{ |
|||
label: '操作', |
|||
field: 'action', |
|||
isForm: false, |
|||
table: { |
|||
width: 150, |
|||
fixed: 'right' |
|||
} |
|||
} |
|||
]) |
|||
) |
Loading…
Reference in new issue