Browse Source

完成,,审核,

master_hella_20240701
张立 8 months ago
parent
commit
b21b5b4e06
  1. 1
      src/api/eam/itemAccounts/index.ts
  2. 4
      src/api/eam/sparePartsInLocationMain/index.ts
  3. 72
      src/api/eam/sparePartsOutLocationRecordDetail/index.ts
  4. 6
      src/locales/en-US.ts
  5. 6
      src/locales/zh-CN.ts
  6. 205
      src/views/eam/SparePartsOutLocationRecord/SparePartsOutLocationRecord.data.ts
  7. 6
      src/views/eam/SparePartsOutLocationRecord/index.vue
  8. 112
      src/views/eam/sparepartsinlocation/index.vue
  9. 43
      src/views/eam/sparepartsinlocation/sparePartsInLocationMain.data.ts

1
src/api/eam/itemAccounts/index.ts

@ -61,3 +61,4 @@ export const replaceLocation = async (data: Array<ItemAccountsVO>) => {
export const getItemAccountsNoPage = async (params) => { export const getItemAccountsNoPage = async (params) => {
return await request.get({ url: `/eam/item-accounts/noPage`, params }) return await request.get({ url: `/eam/item-accounts/noPage`, params })
} }

4
src/api/eam/sparePartsInLocationMain/index.ts

@ -85,3 +85,7 @@ export const rejectSparePartsInLocation = async (id) => {
export const approveSparePartsInLocation = async (data) => { export const approveSparePartsInLocation = async (data) => {
return await request.post({ url: `/eam/spare-parts-in-location-main/approve`,data }) return await request.post({ url: `/eam/spare-parts-in-location-main/approve`,data })
} }
// 完成
export const finishSparePartsInLocation = async (id) => {
return await request.post({ url: `/eam/spare-parts-in-location-main/finish?id=` + id })
}

72
src/api/eam/sparePartsOutLocationRecordDetail/index.ts

@ -0,0 +1,72 @@
import request from '@/config/axios'
export interface SparePartsOutLocationRecordDetailVO {
id: number
number: string
theme: string
status: string
applyer: string
approver: number
approveContent: string
approveTime: Date
autoExamine: string
autoAgree: string
directCreateRecord: string
areaCode: string
locationCode: string
departmentCode: string
remark: string
siteId: string
available: string
deletionTime: Date
deleterId: byte[]
concurrencyStamp: number
}
// 查询备件入库记录主列表
export const getSparePartsOutLocationDetailRecordPage = async (params) => {
if (params.isSearch) {
delete params.isSearch
const data = { ...params }
return await request.post({ url: '/eam/spare-parts-in-location-main-record/senior', data })
} else {
return await request.get({ url: `/eam/spare-parts-in-location-main-record/page`, params })
}
}
// 查询备件入库记录主详情
export const getSparePartsOutLocationDetailRecord = async (id: number) => {
return await request.get({ url: `/eam/spare-parts-in-location-main-record/get?id=` + id })
}
// 新增备件入库记录主
export const createSparePartsOutLocationDetailRecord = async (
data: SparePartsInLocationMainRecordVO
) => {
return await request.post({ url: `/eam/spare-parts-in-location-main-record/create`, data })
}
// 修改备件入库记录主
export const updateSparePartsOutLocationDetailRecord = async (
data: SparePartsInLocationMainRecordVO
) => {
return await request.put({ url: `/eam/spare-parts-in-location-main-record/update`, data })
}
// 删除备件入库记录主
export const deleteSparePartsOutLocationDetailRecord = async (id: number) => {
return await request.delete({ url: `/eam/spare-parts-in-location-main-record/delete?id=` + id })
}
// 导出备件入库记录主 Excel
export const exportSparePartsOutLocationDetailRecord = async (params) => {
return await request.download({
url: `/eam/spare-parts-in-location-main-record/export-excel`,
params
})
}
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/eam/spare-parts-in-location-main-record/get-import-template' })
}

6
src/locales/en-US.ts

@ -946,6 +946,7 @@ export default {
'是否发布所选中数据?':'Do you publish the selected data?', '是否发布所选中数据?':'Do you publish the selected data?',
'是否关闭所选中数据?':'Do you want to close the selected data?', '是否关闭所选中数据?':'Do you want to close the selected data?',
'是否作废所选中数据?':'Do you want to void the selected data?', '是否作废所选中数据?':'Do you want to void the selected data?',
'是否完成所选中数据?':'Do you want to finish the selected data?',
'发布成功!':'Release Successfully!', '发布成功!':'Release Successfully!',
'是否下架所选中数据?':'Do you want to remove selected data?', '是否下架所选中数据?':'Do you want to remove selected data?',
'下架成功!':'Removed Successfully!', '下架成功!':'Removed Successfully!',
@ -955,6 +956,7 @@ export default {
'打开成功!':'Open Successfully!', '打开成功!':'Open Successfully!',
'关闭成功!':'Closed Successfully', '关闭成功!':'Closed Successfully',
'作废成功!':'Invalid successfully', '作废成功!':'Invalid successfully',
'完成成功!':'Finish successfully',
'失效时间要大于生效时间':'The expiration time must be longer than the effective time', '失效时间要大于生效时间':'The expiration time must be longer than the effective time',
'供应商导入模版':'Supplier import template', '供应商导入模版':'Supplier import template',
'供应商物料':'Supplier Material', '供应商物料':'Supplier Material',
@ -1055,8 +1057,8 @@ export default {
:'Supplier delivery request is led into the template', :'Supplier delivery request is led into the template',
:'Supplier invoice request details', :'Supplier invoice request details',
:'Supplier invoice record master data', :'Supplier invoice record master data',
:'Pass the audit', '审核通过!':'Pass the audit',
:'Recall successful', '撤回成功!':'Recall successful',
:'Cancellation', :'Cancellation',
'是否审批拒绝所选中数据?':'Do you want to approve and reject selected data?', '是否审批拒绝所选中数据?':'Do you want to approve and reject selected data?',
'审批成功!':'Approval is successful!', '审批成功!':'Approval is successful!',

6
src/locales/zh-CN.ts

@ -946,6 +946,7 @@ export default {
'是否发布所选中数据?':'是否发布所选中数据?', '是否发布所选中数据?':'是否发布所选中数据?',
'是否关闭所选中数据?':'是否关闭所选中数据?', '是否关闭所选中数据?':'是否关闭所选中数据?',
'是否作废所选中数据?':'是否作废所选中数据?', '是否作废所选中数据?':'是否作废所选中数据?',
'是否完成所选中数据?':'是否完成所选中数据?',
'发布成功!':'发布成功!', '发布成功!':'发布成功!',
'是否下架所选中数据?':'是否下架所选中数据?', '是否下架所选中数据?':'是否下架所选中数据?',
'下架成功!':'下架成功!', '下架成功!':'下架成功!',
@ -955,6 +956,7 @@ export default {
'打开成功!':'打开成功!', '打开成功!':'打开成功!',
'关闭成功!':'关闭成功!', '关闭成功!':'关闭成功!',
'作废成功!':'作废成功!', '作废成功!':'作废成功!',
'完成成功!':'完成成功!',
'失效时间要大于生效时间':'失效时间要大于生效时间', '失效时间要大于生效时间':'失效时间要大于生效时间',
'供应商导入模版':'供应商导入模版', '供应商导入模版':'供应商导入模版',
'供应商物料':'供应商物料', '供应商物料':'供应商物料',
@ -1055,8 +1057,8 @@ export default {
:'供应商发货申请主导入模版', :'供应商发货申请主导入模版',
:'供应商发票申请明细', :'供应商发票申请明细',
:'供应商发票记录主', :'供应商发票记录主',
:'审核通过', '审核通过!':'审核通过!',
:'撤回成功', '撤回成功!':'撤回成功!',
:'作废', :'作废',
'是否审批拒绝所选中数据?':'是否审批拒绝所选中数据?', '是否审批拒绝所选中数据?':'是否审批拒绝所选中数据?',
'审批成功!':'审批成功!', '审批成功!':'审批成功!',

205
src/views/eam/SparePartsOutLocationRecord/SparePartsOutLocationRecord.data.ts

@ -11,63 +11,54 @@ import { dateFormatter } from '@/utils/formatTime'
export const SparePartsOutLocationRecordMain = useCrudSchemas( export const SparePartsOutLocationRecordMain = useCrudSchemas(
reactive<CrudSchema[]>([ reactive<CrudSchema[]>([
{ {
label: '申请编号', label: '编号',
field: 'number', field: 'number',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
isForm: false isForm: false,
}, },
{ {
label: '描述', label: '入库主题',
field: 'description', field: 'theme',
sort: 'custom', sort: 'custom',
isSearch: true isSearch: true,
}, },{
{ label: '入库类型',
label: '申领备件总价', field: 'type',
field: 'sumVal',
sort: 'custom', sort: 'custom',
isSearch: false, dictType: DICT_TYPE.PUT_IN_TYPE,
isTable: false, dictClass: 'string',
isForm: false
}, },
{ {
label: '流程状态', label: '流程状态',
field: 'status', field: 'status',
sort: 'custom', sort: 'custom',
isSearch: false,
isForm:false,
dictType: DICT_TYPE.SPAREPARTS_APPLY_STATUS_ENUM, dictType: DICT_TYPE.SPAREPARTS_APPLY_STATUS_ENUM,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑 dictClass: 'string',
isSearch: true,
form: {
component: 'Select'
}
}, },
{ {
label: '申请人', label: '入库申请人',
field: 'applyer', field: 'applyer',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isTable: false,
isForm: false
}, },
{ {
label: '审核人', label: '审核人',
field: 'approver', field: 'approver',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isTable: false, isForm:false
isForm: false,
form: {
component: 'InputNumber',
value: 0
}
}, },
{ {
label: '审核内容', label: '审核内容',
field: 'approveContent', field: 'approveContent',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: false,
isTable: false,
isForm:false isForm:false
}, },
{ {
@ -76,7 +67,6 @@ export const SparePartsOutLocationRecordMain = useCrudSchemas(
sort: 'custom', sort: 'custom',
formatter: dateFormatter, formatter: dateFormatter,
isSearch: false, isSearch: false,
isTable: false,
isForm:false, isForm:false,
search: { search: {
component: 'DatePicker', component: 'DatePicker',
@ -92,39 +82,17 @@ export const SparePartsOutLocationRecordMain = useCrudSchemas(
type: 'datetime', type: 'datetime',
valueFormat: 'x' valueFormat: 'x'
} }
}
},
{
label: '自动审核',
field: 'autoExamine',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false
}, },
{ detail: {
label: '自动通过', dateFormat: 'YYYY-MM-DD HH:mm:ss'
field: 'autoAgree',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false
}, },
{
label: '直接生成记录',
field: 'directCreateRecord',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false
}, },
{ {
label: '创建时间', label: '入库时间',
field: 'createTime', field: 'createTime',
sort: 'custom', sort: 'custom',
formatter: dateFormatter, formatter: dateFormatter,
isSearch: false, isSearch: false,
isTable: false,
search: { search: {
component: 'DatePicker', component: 'DatePicker',
componentProps: { componentProps: {
@ -133,17 +101,20 @@ export const SparePartsOutLocationRecordMain = useCrudSchemas(
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
} }
}, },
isForm: false isForm: false,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
}, },
},
{ {
label: '操作', label: '备注',
field: 'action', field: 'remark',
isForm: false, sort: 'custom',
table: { isSearch: false,
width: 150, },
fixed: 'right'
}
}
]) ])
) )
@ -157,19 +128,17 @@ export const SparePartsOutLocationRecordMainRules = reactive({
export const SparePartsOutLocationRecordDetail = useCrudSchemas( export const SparePartsOutLocationRecordDetail = useCrudSchemas(
reactive<CrudSchema[]>([ reactive<CrudSchema[]>([
{ {
label: '备件编号', label: '库位编号',
field: 'sparePartsCode', field: 'locationCode',
sort: 'custom', sort: 'custom',
table: { isSearch: false,
width: 150
},
form: { form: {
// labelMessage: '信息提示说明!!!',
componentProps: { componentProps: {
isSearchList: true, // 开启查询弹窗 isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择备件编号', // 输入框占位文本 searchListPlaceholder: '请选择库位编号', // 输入框占位文本
searchField: 'itemNumber', // 查询弹窗赋值字段 searchField: 'code', // 查询弹窗赋值字段
searchTitle: '备件信息', // 查询弹窗标题 searchTitle: '库位信息', // 查询弹窗标题
searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类 searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法 searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
searchCondition: [ searchCondition: [
@ -186,6 +155,7 @@ export const SparePartsOutLocationRecordDetail = useCrudSchemas(
searchListPlaceholder: '请选择备件编号', // 输入框占位文本 searchListPlaceholder: '请选择备件编号', // 输入框占位文本
searchField: 'itemNumber', // 查询弹窗赋值字段 searchField: 'itemNumber', // 查询弹窗赋值字段
searchTitle: '备件信息', // 查询弹窗标题 searchTitle: '备件信息', // 查询弹窗标题
searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类 searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法 searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
searchCondition: [ searchCondition: [
@ -198,67 +168,35 @@ export const SparePartsOutLocationRecordDetail = useCrudSchemas(
} }
}, },
{ {
label: '设备类别', label: '库区编号',
field: 'type', field: 'areaCode',
dictType: DICT_TYPE.DEVICE_TYPE,
dictClass: 'string',
isTable: true,
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
table: { form: {
width: 150 componentProps: {
disabled: true
}
}, },
tableForm:{ tableForm:{
type: 'Select' disabled: true
} }
}, },
{ {
label: '设备工装编号', label: '备件编号',
field: 'equipmentCode', field: 'sparePartsCode',
sort: 'custom', sort: 'custom',
table: { table: {
width: 150 width: 150
}, },
form: { form: {
// labelMessage: '信息提示说明!!!',
componentProps: { componentProps: {
isSearchList: true, // 开启查询弹窗 disabled: true
searchTitle: '设备信息', // 查询弹窗标题
searchListPlaceholder: '请选择 设备编号', // 输入框占位文本
searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
searchField: 'code', // 查询弹窗赋值字段
searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
multiple: true,
searchCondition: [
{
key: 'status',
value: 'NORMAL',
action: '==',
isSearch: true,
isMainValue: false
}
]
} }
}, },
tableForm:{ tableForm:{
isInpuFocusShow: true, disabled: true
searchListPlaceholder: '请选择备件编号', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '备件信息', // 查询弹窗标题
searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'status',
value: 'NORMAL',
action: '==',
isSearch: true,
isMainValue: false
}
]
} }
}, },
{ {
label: '库存数量', label: '库存数量',
field: 'currentQty', field: 'currentQty',
@ -266,8 +204,15 @@ export const SparePartsOutLocationRecordDetail = useCrudSchemas(
isSearch: false, isSearch: false,
tableForm: { tableForm: {
disabled: true disabled: true
},
form:{
componentProps:{
disabled: true
} }
}, },
isDetail:false,
isTable:false
},
{ {
label: '申领数量', label: '申领数量',
field: 'applyQty', field: 'applyQty',
@ -275,22 +220,28 @@ export const SparePartsOutLocationRecordDetail = useCrudSchemas(
isSearch: false isSearch: false
}, },
{ {
label: '备注', label: '创建时间',
field: 'remark', field: 'createTime',
sort: 'custom', sort: 'custom',
isSearch: false formatter: dateFormatter,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
}, },
{
label: '操作',
field: 'action',
isDetail: false,
isForm: false, isForm: false,
table: {
width: 150,
fixed: 'right'
},
isTableForm:false isTableForm:false
} },
{
label: '备注',
field: 'remark',
sort: 'custom',
isSearch: true,
},
]) ])
) )

6
src/views/eam/SparePartsOutLocationRecord/index.vue

@ -95,9 +95,9 @@ import {
SparePartsOutLocationRecordMainRules, SparePartsOutLocationRecordMainRules,
SparePartsOutLocationRecordDetail, SparePartsOutLocationRecordDetail,
SparePartsOutLocationRecordDetailRules SparePartsOutLocationRecordDetailRules
} from './SparePartsOutLocationRecord.data' } from './sparePartsOutLocationRecord.data'
import * as SparePartsOutLocationRecordMainApi from '@/api/eam/sparePartsOutLocationRecordMain/index' import * as SparePartsOutLocationRecordMainApi from '@/api/eam/sparePartsOutLocationRecordMain/index'
import * as SparePartsOutLocationRecordDetailApi from '@/api/eam/sparePartsOutLocationRecordDetail/sparePartsOutLocationDetailRecord.js' import * as SparePartsOutLocationRecordDetailApi from '@/api/eam/sparePartsOutLocationRecordDetail/index'
import * as defaultButtons from '@/utils/disposition/defaultButtons' import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue' import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue' import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -161,7 +161,7 @@ const { getList, setSearchParams } = tableMethods
// //
const HeadButttondata = [ const HeadButttondata = [
defaultButtons.defaultAddBtn(null), // // defaultButtons.defaultAddBtn(null), //
// defaultButtons.defaultImportBtn(null), // // defaultButtons.defaultImportBtn(null), //
// defaultButtons.defaultExportBtn(null), // // defaultButtons.defaultExportBtn(null), //
defaultButtons.defaultFreshBtn(null), // defaultButtons.defaultFreshBtn(null), //

112
src/views/eam/sparepartsinlocation/index.vue

@ -76,7 +76,8 @@
:apiDelete="SparePartsInLocationDetailApi.deleteSparePartsInLocationDetail" :apiDelete="SparePartsInLocationDetailApi.deleteSparePartsInLocationDetail"
@searchTableSuccessDetail="searchTableSuccessDetail" @searchTableSuccessDetail="searchTableSuccessDetail"
:isShowAddBtn="true" :isShowAddBtn="true"
:detailButtonIsShowAdd="false" :detailButtonIsShowAdd="true"
:detailButtonIsShowAddStatusArray="['0']"
/> />
<!-- 审核页面 --> <!-- 审核页面 -->
<!-- <AudiForm ref="audiFormRef" @success="handleApprove"/> --> <!-- <AudiForm ref="audiFormRef" @success="handleApprove"/> -->
@ -85,6 +86,7 @@
:rules="SparePartsInLocationMainRules" :rules="SparePartsInLocationMainRules"
:formAllSchemas="SparePartsInLocationExamine.allSchemas" :formAllSchemas="SparePartsInLocationExamine.allSchemas"
@submitForm="approveSparePartsInLocation" @submitForm="approveSparePartsInLocation"
:isCol="false"
/> />
<!-- 导入 --> <!-- 导入 -->
<ImportForm <ImportForm
@ -134,23 +136,22 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row) =>
nextTick(() => { nextTick(() => {
const setV = {} const setV = {}
setV[formField] = val[0][searchField] setV[formField] = val[0][searchField]
console.log(11, val[0])
if (type == 'tableForm') { if (type == 'tableForm') {
if (formField == 'locationCode') { if (formField == 'locationCode') {
// row['sparePartsCode'] = val[0].itemNumber row['locationCode'] = val[0].locationNumber
row['locationCode'] = val[0].code row['areaCode'] = val[0].areaNumber
row['areaCode'] = val[0].areaCode row['sparePartsCode'] = val[0].itemNumber
row['sparePartsCode'] = val[0].sparePartsCode
row['currentQty'] = val[0].qty row['currentQty'] = val[0].qty
row['isRadeIn'] = val[0].isRadeIn row['isRadeIn'] = val[0].isRadeIn
} }
} else { } else {
if (formField == 'locationCode') { if (formField == 'locationCode') {
setV['locationCode'] = val[0].code setV['locationCode'] = val[0].locationNumber
setV['areaCode'] = val[0].areaCode setV['areaCode'] = val[0].areaNumber
setV['sparePartsCode'] = val[0].sparePartsCode setV['sparePartsCode'] = val[0].itemNumber
setV['currentQty'] = val[0].qty setV['currentQty'] = val[0].qty
setV['isRadeIn'] = val[0].isRadeIn setV['isRadeIn'] = val[0].isRadeIn
} }
} }
formRef.setValues(setV) formRef.setValues(setV)
@ -162,9 +163,9 @@ const searchTableSuccessDetail = (formField, searchField, val, formRef) => {
nextTick(async () => { nextTick(async () => {
const setV = {} const setV = {}
if (formField == 'locationCode') { if (formField == 'locationCode') {
setV['locationCode'] = val[0].code setV['locationCode'] = val[0].locationNumber
setV['areaCode'] = val[0].areaCode setV['areaCode'] = val[0].areaNumber
setV['sparePartsCode'] = val[0].sparePartsCode setV['sparePartsCode'] = val[0].itemNumber
setV['currentQty'] = val[0].qty setV['currentQty'] = val[0].qty
setV['isRadeIn'] = val[0].isRadeIn setV['isRadeIn'] = val[0].isRadeIn
} }
@ -233,12 +234,34 @@ const isShowMainButton = (row, val) => {
// - // -
const butttondata = (row) => { const butttondata = (row) => {
return [ return [
defaultButtons.mainListEditBtn({hide: isShowStatusButton(row, ['0']), hasPermi: 'eam:spare-parts-in-location-main:update' }), // defaultButtons.mainListEditBtn({
defaultButtons.mainListDeleteBtn({hide: isShowStatusButton(row, ['0']), hasPermi: 'eam:spare-parts-in-location-main:delete' }), // hide: isShowStatusButton(row, ['0']),
defaultButtons.mainListAuditingBtn({hide: isShowStatusButton(row, ['0']), hasPermi: 'eam:spare-parts-in-location-main:examine' }), // hasPermi: 'eam:spare-parts-in-location-main:update'
defaultButtons.mainListRevokeBtn({hide: isShowStatusButton(row, ['3']), hasPermi: 'eam:spare-parts-in-location-main:cancel'}), // }), //
defaultButtons.mainListTurnDownBtn({hide: isShowStatusButton(row, ['3']), hasPermi: 'eam:spare-parts-in-location-main:rejecte' }), // defaultButtons.mainListDeleteBtn({
defaultButtons.mainListApproveBtn({hide: isShowStatusButton(row, ['3']), hasPermi: 'eam:spare-parts-in-location-main:approve' }), // hide: isShowStatusButton(row, ['0']),
hasPermi: 'eam:spare-parts-in-location-main:delete'
}), //
defaultButtons.mainListAuditingBtn({
hide: isShowStatusButton(row, ['0']),
hasPermi: 'eam:spare-parts-in-location-main:examine'
}), //
defaultButtons.mainListRevokeBtn({
hide: isShowStatusButton(row, ['3']),
hasPermi: 'eam:spare-parts-in-location-main:cancel'
}), //
defaultButtons.mainListTurnDownBtn({
hide: isShowStatusButton(row, ['3']),
hasPermi: 'eam:spare-parts-in-location-main:rejecte'
}), //
defaultButtons.mainListApproveBtn({
hide: isShowStatusButton(row, ['3']),
hasPermi: 'eam:spare-parts-in-location-main:approve'
}), //
defaultButtons.mainListFinishBtn({
hide: isShowStatusButton(row, ['4']),
hasPermi: 'eam:spare-parts-in-location-main:finish'
}) //
] ]
} }
@ -247,23 +270,22 @@ const buttonTableClick = async (val, row) => {
if (val == 'edit') { if (val == 'edit') {
// //
openForm('update', row) openForm('update', row)
} } else if (val == 'auditing') {
else if (val == 'auditing') {
// //
handleSubmitExamine(row.id) handleSubmitExamine(row.id)
} } else if (val == 'mainTurnDown') {
else if (val == 'mainTurnDown') {
// //
handleRejecte(row.id) handleRejecte(row.id)
} } else if (val == 'mainApprove') {
else if (val == 'mainApprove') {
// //
formRefApproved.value.open('update', row, { masterId: row.id }, 'auditing') formRefApproved.value.open('update', row, { masterId: row.id }, 'auditing')
} } else if (val == 'revoke') {
else if (val == 'revoke') { // //
handleCancel(row.id) handleCancel(row.id)
} } else if (val == 'finish') {
else if (val == 'delete') { //
handleFinish(row.id)
} else if (val == 'delete') {
// //
handleDelete(row.id) handleDelete(row.id)
} }
@ -343,6 +365,11 @@ const submitForm = async (formType, data) => {
data.subList = tableData.value // data.subList = tableData.value //
console.log(formRef.value) console.log(formRef.value)
formRef.value.formLoading = true formRef.value.formLoading = true
let isHave = data.subList.some(item=>item.applyQty>item.currentQty)
if(isHave){
message.warning('申领数量不能大于库存数量')
return
}
try { try {
if (formType === 'create') { if (formType === 'create') {
await SparePartsInLocationMainApi.createSparePartsInLocationMain(data) await SparePartsInLocationMainApi.createSparePartsInLocationMain(data)
@ -386,7 +413,7 @@ const searchFormClick = (searchData) => {
} }
// //
const handleSubmitExamine = async (id: number) => { const handleSubmitExamine = async (id: number) => {
await message.delConfirm(t('ts.是否提交审核?')); await message.delConfirm(t('ts.是否提交审核?'))
try { try {
await SparePartsInLocationMainApi.submitExamineSparePartsInLocation(id) await SparePartsInLocationMainApi.submitExamineSparePartsInLocation(id)
message.success(t('ts.提交审批成功!')) message.success(t('ts.提交审批成功!'))
@ -396,10 +423,10 @@ const handleSubmitExamine = async (id: number) => {
} }
/** 撤回按钮操作 */ /** 撤回按钮操作 */
const handleCancel = async (id: number) => { const handleCancel = async (id: number) => {
await message.delConfirm(t('ts.是否撤回所选中数据?')); await message.delConfirm(t('ts.是否撤回所选中数据?'))
try { try {
await SparePartsInLocationMainApi.cancelSparePartsInLocation(id) await SparePartsInLocationMainApi.cancelSparePartsInLocation(id)
message.success(t('ts.撤回成功')) message.success(t('ts.撤回成功!'))
// //
await getList() await getList()
} catch {} } catch {}
@ -407,7 +434,7 @@ const handleCancel = async (id: number) => {
// //
const handleRejecte = async (id: number) => { const handleRejecte = async (id: number) => {
await message.delConfirm(t('ts.是否驳回所选中数据?')); await message.delConfirm(t('ts.是否驳回所选中数据?'))
try { try {
await SparePartsInLocationMainApi.rejectSparePartsInLocation(id) await SparePartsInLocationMainApi.rejectSparePartsInLocation(id)
message.success(t('ts.驳回成功!')) message.success(t('ts.驳回成功!'))
@ -417,19 +444,28 @@ const handleRejecte=async(id: number)=> {
} }
// //
const approveSparePartsInLocation = async (formType, data) => { const approveSparePartsInLocation = async (formType, data) => {
console.log(data)
try { try {
// const params = {
// id:
// }
await SparePartsInLocationMainApi.approveSparePartsInLocation(data) await SparePartsInLocationMainApi.approveSparePartsInLocation(data)
message.success(t('ts.审核通过!')) message.success(t('ts.审核通过!'))
// //
formRefApproved.value.dialogVisible = false
await getList() await getList()
} catch {} } finally {
formRefApproved.value.formLoading = false
}
}
//
const handleFinish = async (id: number) => {
await message.delConfirm(t('ts.是否完成所选中数据?'))
try {
await SparePartsInLocationMainApi.finishSparePartsInLocation(id)
message.success(t('ts.完成成功!'))
//
await getList()
} catch {}
} }
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
getList() getList()

43
src/views/eam/sparepartsinlocation/sparePartsInLocationMain.data.ts

@ -1,7 +1,5 @@
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 LocationApi from '@/api/wms/location'
import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data'
import * as ItemAccountsApi from '@/api/eam/itemAccounts' import * as ItemAccountsApi from '@/api/eam/itemAccounts'
import { ItemAccounts } from '@/views/eam/itemAccounts/itemAccounts.data' import { ItemAccounts } from '@/views/eam/itemAccounts/itemAccounts.data'
@ -161,8 +159,9 @@ export const SparePartsInLocationDetail = useCrudSchemas(reactive<CrudSchema[]>(
searchListPlaceholder: '请选择库位编号', // 输入框占位文本 searchListPlaceholder: '请选择库位编号', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段 searchField: 'code', // 查询弹窗赋值字段
searchTitle: '库位信息', // 查询弹窗标题 searchTitle: '库位信息', // 查询弹窗标题
searchAllSchemas: Location.allSchemas, // 查询弹窗所需类
searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
searchCondition: [ searchCondition: [
{ {
key: 'available', key: 'available',
@ -173,19 +172,20 @@ export const SparePartsInLocationDetail = useCrudSchemas(reactive<CrudSchema[]>(
} }
}, },
tableForm: { tableForm: {
// isInpuFocusShow: true, isInpuFocusShow: true,
// searchListPlaceholder: '请选择备件编号', // 输入框占位文本 searchListPlaceholder: '请选择备件编号', // 输入框占位文本
// searchField: 'itemNumber', // 查询弹窗赋值字段 searchField: 'itemNumber', // 查询弹窗赋值字段
// searchTitle: '备件信息', // 查询弹窗标题 searchTitle: '备件信息', // 查询弹窗标题
// searchAllSchemas: Location.allSchemas, // 查询弹窗所需类
// searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
// searchCondition: [ searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
// { searchCondition: [
// key: 'available', {
// value: 'TRUE', key: 'available',
// isMainValue: false value: 'TRUE',
// } isMainValue: false
// ] }
]
} }
}, },
{ {
@ -199,7 +199,7 @@ export const SparePartsInLocationDetail = useCrudSchemas(reactive<CrudSchema[]>(
} }
}, },
tableForm:{ tableForm:{
// disabled: true disabled: true
} }
}, },
{ {
@ -215,7 +215,7 @@ export const SparePartsInLocationDetail = useCrudSchemas(reactive<CrudSchema[]>(
} }
}, },
tableForm:{ tableForm:{
// disabled: true disabled: true
} }
}, },
{ {
@ -272,7 +272,7 @@ export const SparePartsInLocationDetail = useCrudSchemas(reactive<CrudSchema[]>(
fixed: 'right' fixed: 'right'
}, },
isTableForm:false, isTableForm:false,
isTable:false
} }
])) ]))
export const SparePartsInLocationExamineRules = reactive({ export const SparePartsInLocationExamineRules = reactive({
@ -288,8 +288,9 @@ export const SparePartsInLocationExamine = useCrudSchemas(reactive<CrudSchema[]>
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
form:{ form:{
component: 'Input',
componentProps: { componentProps: {
type: 'textarea'
} }
} }
}, },

Loading…
Cancel
Save