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 type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
||||
import { dateFormatter } from '@/utils/formatTime' |
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({ |
export const ItemAccountsRules = reactive({ |
||||
itemNumber: [required], |
itemNumber: [required], |
||||
|
name: [required], |
||||
areaNumber: [required], |
areaNumber: [required], |
||||
concurrencyStamp: [required], |
type: [required], |
||||
|
locationNumber: [required], |
||||
|
qty: [required] |
||||
}) |
}) |
||||
|
|
||||
export const ItemAccounts = useCrudSchemas(reactive<CrudSchema[]>([ |
export const ItemAccounts = useCrudSchemas( |
||||
|
reactive<CrudSchema[]>([ |
||||
{ |
{ |
||||
label: '备件编号', |
label: '备件编号', |
||||
field: 'itemNumber', |
field: 'itemNumber', |
||||
sort: 'custom', |
sort: 'custom', |
||||
isSearch: true, |
isSearch: true, |
||||
table: { |
form: { |
||||
width: 180, |
// labelMessage: '信息提示说明!!!',
|
||||
fixed: 'left' |
componentProps: { |
||||
}, |
isSearchList: true, // 开启查询弹窗
|
||||
|
searchListPlaceholder: '请选择备件编号', // 输入框占位文本
|
||||
|
searchField: 'number', // 查询弹窗赋值字段
|
||||
|
searchTitle: '备件信息', // 查询弹窗标题
|
||||
|
searchAllSchemas: Item.allSchemas, // 查询弹窗所需类
|
||||
|
searchPage: ItemApi.getItemPage, // 查询弹窗所需分页方法
|
||||
|
searchCondition: [ |
||||
|
{ |
||||
|
key: 'available', |
||||
|
value: 'TRUE', |
||||
|
isMainValue: false |
||||
|
} |
||||
|
] |
||||
|
} |
||||
|
} |
||||
}, |
}, |
||||
{ |
{ |
||||
label: '备件名称', |
label: '备件名称', |
||||
field: 'name', |
field: 'itemName', |
||||
sort: 'custom', |
sort: 'custom', |
||||
table: { |
table: { |
||||
width: 110 |
width: 110 |
||||
}, |
}, |
||||
isSearch: false, |
form:{ |
||||
}, |
componentProps:{ |
||||
|
disabled:true |
||||
{ |
} |
||||
label: '库位编号', |
|
||||
field: 'locationNumber', |
|
||||
sort: 'custom', |
|
||||
table: { |
|
||||
width: 110 |
|
||||
}, |
}, |
||||
|
isSearch: false |
||||
}, |
}, |
||||
{ |
{ |
||||
label: '库区编号', |
label: '库区编号', |
||||
field: 'areaNumber', |
field: 'areaNumber', |
||||
sort: 'custom', |
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, |
isSearch: false, |
||||
isTable: true, |
|
||||
sort: 'custom', |
|
||||
table: { |
|
||||
width: 130 |
|
||||
}, |
|
||||
tableForm: { |
|
||||
type: 'Select', |
|
||||
inactiveValue: 'FALSE', |
|
||||
disabled: true |
|
||||
}, |
|
||||
form: { |
form: { |
||||
component: 'Switch', |
// labelMessage: '信息提示说明!!!',
|
||||
value: 'TRUE', |
|
||||
componentProps: { |
componentProps: { |
||||
inactiveValue: 'FALSE', |
isSearchList: true, // 开启查询弹窗
|
||||
activeValue: 'TRUE' |
searchListPlaceholder: '请选择库区编号', // 输入框占位文本
|
||||
} |
searchField: 'number', // 查询弹窗赋值字段
|
||||
} |
searchTitle: '库区信息', // 查询弹窗标题
|
||||
}, |
searchAllSchemas: LocationArea.allSchemas, // 查询弹窗所需类
|
||||
{ |
searchPage: LocationAreaApi.getLocationAreaPage, // 查询弹窗所需分页方法
|
||||
label: '规格', |
searchCondition: [ |
||||
field: 'specifications', |
{ |
||||
sort: 'custom', |
key: 'available', |
||||
}, |
|
||||
{ |
|
||||
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', |
value: 'TRUE', |
||||
componentProps: { |
isMainValue: false |
||||
inactiveValue: 'FALSE', |
|
||||
activeValue: 'TRUE' |
|
||||
} |
} |
||||
|
] |
||||
} |
} |
||||
}, |
|
||||
{ |
|
||||
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: '单位', |
label: '库区名称', |
||||
field: 'uom', |
field: 'areaName', |
||||
sort: 'custom', |
sort: 'custom', |
||||
dictType: DICT_TYPE.UOM, |
|
||||
dictClass: 'string', |
|
||||
isSearch: false, |
isSearch: false, |
||||
isTable: true, |
isForm:false |
||||
tableForm: { |
|
||||
type: 'Select' |
|
||||
} |
|
||||
}, |
}, |
||||
{ |
{ |
||||
label: '类别', |
label: '库位编号', |
||||
field: 'category', |
field: 'locationNumber', |
||||
sort: 'custom', |
sort: 'custom', |
||||
dictType: DICT_TYPE.ITEM_CATEGORY, |
|
||||
dictClass: 'string', |
|
||||
isSearch: false, |
isSearch: false, |
||||
isTable: true, |
form: { |
||||
tableForm: { |
// labelMessage: '信息提示说明!!!',
|
||||
type: 'Select' |
componentProps: { |
||||
} |
isSearchList: true, // 开启查询弹窗
|
||||
|
searchListPlaceholder: '请选择库位编号', // 输入框占位文本
|
||||
|
searchField: 'number', // 查询弹窗赋值字段
|
||||
|
searchTitle: '库位信息', // 查询弹窗标题
|
||||
|
searchAllSchemas: Location.allSchemas, // 查询弹窗所需类
|
||||
|
searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法
|
||||
|
searchCondition: [ |
||||
|
{ |
||||
|
key: 'available', |
||||
|
value: 'TRUE', |
||||
|
isMainValue: false |
||||
}, |
}, |
||||
{ |
{ |
||||
label: '备件分类', |
key: 'areaNumber', |
||||
field: 'classification', |
value: 'areaNumber', |
||||
sort: 'custom', |
isMainValue: true |
||||
dictType: DICT_TYPE.CLASSIFICATION, |
}, |
||||
dictClass: 'string', |
] |
||||
isSearch: false, |
} |
||||
isTable: true, |
|
||||
tableForm: { |
|
||||
type: 'Select' |
|
||||
} |
} |
||||
}, |
}, |
||||
{ |
{ |
||||
label: '区域', |
label: '库位名称', |
||||
field: 'region', |
field: 'locationName', |
||||
sort: 'custom', |
sort: 'custom', |
||||
dictType: DICT_TYPE.ITEM_REGION, |
|
||||
dictClass: 'string', |
|
||||
isSearch: false, |
isSearch: false, |
||||
isTable: true, |
isForm:false |
||||
tableForm: { |
|
||||
type: 'Select' |
|
||||
} |
|
||||
}, |
}, |
||||
// {
|
// {
|
||||
// label: '单价',
|
// label: '库位类型',
|
||||
// field: 'singlePrice',
|
// field: 'type',
|
||||
|
// dictType: DICT_TYPE.ITEM_ACCOUNT_LOCATION_TYPE,
|
||||
|
// dictClass: 'string',
|
||||
|
// isSearch: true,
|
||||
|
// isTable: true,
|
||||
// sort: 'custom',
|
// sort: 'custom',
|
||||
|
// table: {
|
||||
|
// width: 130
|
||||
|
// },
|
||||
|
// form: {
|
||||
|
// component: 'Select'
|
||||
|
// }
|
||||
// },
|
// },
|
||||
{ |
{ |
||||
label: '重采购点', |
label: '库位类型', |
||||
field: 'reprocurement', |
field: 'type', |
||||
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', |
sort: 'custom', |
||||
table: { |
table: { |
||||
width: 100, |
width: '150', |
||||
}, |
}, |
||||
|
isDetail: false, |
||||
|
formatter: (_: Recordable, __: TableColumn, cellValue: number) => { |
||||
|
return typeLists.find((account) => account.value == cellValue)?.label |
||||
}, |
}, |
||||
{ |
// dictType: DICT_TYPE.APP_DEVICE_MOLD_TYPE,
|
||||
label: '财务', |
|
||||
field: 'financer', |
|
||||
sort: 'custom', |
|
||||
}, |
|
||||
{ |
|
||||
label: '是否以旧换新', |
|
||||
field: 'isRadeIn', |
|
||||
dictType: DICT_TYPE.TRUE_FALSE, |
|
||||
dictClass: 'string', |
|
||||
isSearch: false, |
isSearch: false, |
||||
isTable: true, |
search: { |
||||
sort: 'custom', |
component: 'Select', |
||||
table: { |
|
||||
width: 140 |
|
||||
}, |
|
||||
tableForm: { |
|
||||
type: 'Select', |
|
||||
inactiveValue: 'FALSE', |
|
||||
disabled: true |
|
||||
}, |
|
||||
form: { |
|
||||
component: 'Switch', |
|
||||
value: 'TRUE', |
|
||||
componentProps: { |
componentProps: { |
||||
inactiveValue: 'FALSE', |
options: typeList, |
||||
activeValue: 'TRUE' |
optionsAlias: { |
||||
} |
labelField: 'label', |
||||
} |
valueField: 'value' |
||||
}, |
}, |
||||
{ |
filterable: 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: { |
form: { |
||||
component: 'Switch', |
component: 'Select', |
||||
value: 'TRUE', |
|
||||
componentProps: { |
componentProps: { |
||||
inactiveValue: 'FALSE', |
options: typeList, |
||||
activeValue: 'TRUE' |
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: '是否可用', |
label: '库存数量', |
||||
field: 'available', |
field: 'qty', |
||||
dictType: DICT_TYPE.TRUE_FALSE, |
|
||||
dictClass: 'string', |
|
||||
isSearch: false, |
|
||||
isTable: true, |
|
||||
sort: 'custom', |
sort: 'custom', |
||||
table: { |
table: { |
||||
width: 150 |
width: 110 |
||||
}, |
|
||||
tableForm: { |
|
||||
type: 'Select', |
|
||||
inactiveValue: 'FALSE', |
|
||||
disabled: true |
|
||||
}, |
}, |
||||
form:{ |
form:{ |
||||
component: 'Switch', |
component: 'InputNumber', |
||||
value: 'TRUE', |
|
||||
componentProps:{ |
componentProps:{ |
||||
inactiveValue: 'FALSE', |
min: 0,//最小值`
|
||||
activeValue: 'TRUE' |
precision: 2//精度`
|
||||
} |
} |
||||
} |
} |
||||
}, |
}, |
||||
|
// {
|
||||
|
// label: '是否账内库',
|
||||
|
// field: 'isInAccount',
|
||||
|
// dictType: DICT_TYPE.TRUE_FALSE,
|
||||
|
// dictClass: 'string',
|
||||
|
// isSearch: false,
|
||||
|
// isTable: true,
|
||||
|
// sort: 'custom',
|
||||
|
// table: {
|
||||
|
// width: 130
|
||||
|
// },
|
||||
|
|
||||
{ |
{ |
||||
label: '操作', |
label: '操作', |
||||
field: 'action', |
field: 'action', |
||||
isForm: false, |
isForm: false, |
||||
table: { |
table: { |
||||
width: 150, |
width: 250, |
||||
fixed: 'right' |
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