Browse Source

Merge branch 'master_hella' of http://dev.ccwin-in.com:3000/sfms3.0/sfms3.0-ui into master_hella

master_hella_20240701
songguoqiang 4 months ago
parent
commit
d568ca6209
  1. 12
      src/api/eam/equipmentReportRepairRequest/index.ts
  2. 11
      src/api/wms/qadproductionplan/index.ts
  3. 26
      src/utils/disposition/defaultButtons.ts
  4. 141
      src/views/eam/equipmentReportRepairRequest/audiForm.vue
  5. 70
      src/views/eam/equipmentReportRepairRequest/equipmentReportRepairRequest.data.ts
  6. 145
      src/views/eam/equipmentReportRepairRequest/index.vue
  7. 72
      src/views/home/components/material.vue
  8. 91
      src/views/home/components/produce.vue
  9. 63
      src/views/home/components/supplierIndex.vue
  10. 40
      src/views/wms/basicDataManage/itemManage/itempackage/index.vue
  11. 2
      src/views/wms/basicDataManage/itemManage/itempackage/itempackage.data.ts
  12. 5
      src/views/wms/deliversettlementManage/customersettle/customersettleRequestMain/customersettleRequestMain.data.ts
  13. 5
      src/views/wms/deliversettlementManage/saleShipmentMainRequest/saleShipmentMain.data.ts
  14. 24
      src/views/wms/deliversettlementManage/stockup/stockupMainRequest/stockupMainRequest.data.ts
  15. 11
      src/views/wms/inventoryjobManage/inventoryinitial/inventoryinitRequestMain/index.vue
  16. 209
      src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/preparetoissueMain.data.ts
  17. 7
      src/views/wms/productionManage/processproduction/processproductionRequest/processproductionRequestMain.data.ts
  18. 2
      src/views/wms/productionManage/productionplan/qadproductionplan/index.vue
  19. 91
      src/views/wms/productionManage/productionplan/qadproductionplan/qadProductionPlanMain.data.ts
  20. 4
      src/views/wms/productionManage/productputaway/productputawayRequestMain/index.vue
  21. 96
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/supplierinvoiceRecordMain.data.ts
  22. 5
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/index.vue
  23. 3
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts

12
src/api/eam/equipmentReportRepairRequest/index.ts

@ -70,4 +70,14 @@ export const exportEquipmentReportRepairRequest = async (params) => {
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/eam/equipment-report-repair-request/get-import-template' })
}
}
// 修改报修工单状态
export const updateEquipmentReportRepairOrder = async (data: EquipmentReportRepairRequestVO) => {
return await request.post({ url: `/eam/equipment-report-repair-request/updateOrder`, data })
}
// 完成并创建维修工单
export const createEquipmentWeixiuOrder = async (data: EquipmentReportRepairRequestVO) => {
return await request.post({ url: `/eam/equipment-report-repair-request/updateCreateOrder`, data })
}

11
src/api/wms/qadproductionplan/index.ts

@ -26,6 +26,17 @@ export const getQadProductionPlanMainPage = async (params) => {
return await request.get({ url: `/wms/qad-production-plan-main/page`, params })
}
}
export const getQadProductionPlanDetailPage = async (params) => {
if (params.isSearch) {
delete params.isSearch
const data = {...params}
return await request.post({ url: '/wms/qad-production-plan-detail/senior', data })
} else {
return await request.get({ url: `/wms/qad-production-plan-detail/page`, params })
}
}
// 查询QAD生产计划主详情
export const getQadProductionPlanMain = async (id: number) => {

26
src/utils/disposition/defaultButtons.ts

@ -390,6 +390,32 @@ export function mainListAuditingBtn(option:any) {
})
}
// 主列表-审核完成按钮
export function mainListAuditedBtn(option:any) {
return __defaultBtnOption(option,{
label: t(`ts.审核完成`).replace('ts.', ''),
name: 'audited',
hide: false,
type: 'primary',
color: '',
link: true, // 文本展现按钮
hasPermi: ''
})
}
// 主列表-撤回按钮
export function mainListRevokeBtn(option:any) {
return __defaultBtnOption(option,{
label: t(`ts.撤回`).replace('ts.', ''),
name: 'revoke',
hide: false,
type: 'primary',
color: '',
link: true, // 文本展现按钮
hasPermi: ''
})
}
// 主列表-绑定
export function mainListBindBtn(option:any) {
return __defaultBtnOption(option,{

141
src/views/eam/equipmentReportRepairRequest/audiForm.vue

@ -0,0 +1,141 @@
<template>
<Dialog v-model="dialogVisible" :title="dialogTitle" :close-on-click-modal="false">
<el-form ref="basicFormRef" v-loading="formLoading" :model="formData" :rules="formRules" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="审核人" prop="approver">
<el-input v-model="formData.approver" placeholder="请输入审核人" :disabled="isDisabled"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核内容" prop="approveContent">
<el-input v-model="formData.approveContent" placeholder="请输入审核内容" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="审核时间" prop="approveTime">
<el-date-picker
v-model="formData.approveTime"
type="datetime"
value-format="x"
placeholder="选择审核时间">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<el-button :disabled="formLoading" type="primary" @click="submitForm('success')"> </el-button>
<el-button @click="handleClose('close')"> </el-button>
</template>
</Dialog>
<!--添加巡检项弹窗-->
<SearchTable ref="searchTableRef" @searchTableSuccess="searchTableSuccess" />
</template>
<script lang="ts" setup>
import { SearchTable } from '@/components/SearchTable'
import {ElInput} from "element-plus";
import * as EquipmentReportRepairRequestApi from "@/api/eam/equipmentReportRepairRequest";
defineOptions({ name: 'TeamForm' })
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const tags=ref([])
const inputValue = ref('')
const inputVisible = ref(false)
const isDisabled = ref(false)
const InputRef = ref<InstanceType<typeof ElInput>>()
const formData = ref({
id:'',
number:'',
approver: '',
approveContent: '',
approveTime: '',
})
const formRules = reactive({
approver: [
{ required: true, message: '审核人不能为空', trigger: 'blur' },
{ max: 50, message: '不得超过50个字符', trigger: 'blur' }
],
approveContent: [
{ required: true, message: '审核内容不能为空', trigger: 'blur' },
{ max: 50, message: '不得超过50个字符', trigger: 'blur' }
],
approveTime: [
{ required: true, message: '审核时间不能为空', trigger: 'blur' },
],
})
const basicFormRef = ref() // Ref
/** 初始化弹窗 */
const open = async (type: string, row?: object) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
//
formData.value.id = row.id
formData.value.number = row.number
}
defineExpose({ open }) // open
/** 提交表单 */
const submitForm = async (val) => {
//success
emit('success',formData.value.id)
//
if (!basicFormRef) return
const valid = await basicFormRef.value.validate()
if (!valid) return
//
await EquipmentReportRepairRequestApi.updateEquipmentReportRepairRequest(formData.value)
dialogVisible.value = false
}
const handleClose=(val)=>{
dialogVisible.value = false
emit('close',val)
}
//
const emit = defineEmits(['close','success'])
</script>
<style scoped>
.tag-container {
margin-top: 10px; /* 可根据需要调整标签容器与表单项之间的间距 */
border: 1px solid #ccc; /* 添加边框样式 */
padding: 10px; /* 可根据需要调整容器内边距 */
width: 950px; /* 设置固定宽度为 950px */
overflow-y: auto; /* 当内容溢出容器高度时显示滚动条 */
word-wrap: break-word; /* 使用 word-wrap 属性实现超出范围换行 */
overflow-wrap: break-word; /* 兼容性更好的写法 */
flex-wrap: wrap;
}
.input-with-button {
display: flex;
align-items: center;
width: 100%;
}
.input-with-button > .el-input {
flex: 1;
/*margin-right: 10px;*/
}
</style>

70
src/views/eam/equipmentReportRepairRequest/equipmentReportRepairRequest.data.ts

@ -1,9 +1,9 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
import {EquipmentAccounts} from "@/views/eam/equipmentAccounts/equipmentAccounts.data";
import * as EquipmentItemApi from "@/api/eam/equipmentAccounts";
import {Workshop} from "@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data";
import * as WorkshopApi from "@/api/wms/workshop";
import {dateFormatter} from '@/utils/formatTime'
// 表单校验
export const EquipmentReportRepairRequestRules = reactive({
@ -149,40 +149,40 @@ export const EquipmentReportRepairRequest = useCrudSchemas(reactive<CrudSchema[]
isSearch: false,
isForm: false,
},
// {
// label: '审核人',
// field: 'approver',
// sort: 'custom',
// isSearch: false,
// },
// {
// label: '审核内容',
// field: 'approveContent',
// sort: 'custom',
// isSearch: false,
// },
// {
// label: '审核时间',
// field: 'approveTime',
// sort: 'custom',
// formatter: dateFormatter,
// isSearch: false,
// 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')]
// }
// },
// form: {
// component: 'DatePicker',
// componentProps: {
// type: 'datetime',
// valueFormat: 'x'
// }
// }
// },
{
label: '审核人',
field: 'approver',
sort: 'custom',
isSearch: false,
},
{
label: '审核内容',
field: 'approveContent',
sort: 'custom',
isSearch: false,
},
{
label: '审核时间',
field: 'approveTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: false,
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')]
}
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
valueFormat: 'x'
}
}
},
// {
// label: '自动审核',
// field: 'autoExamine',

145
src/views/eam/equipmentReportRepairRequest/index.vue

@ -27,13 +27,13 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
<template #number="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.number)">
<span>{{ row.number }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
@ -54,6 +54,9 @@
<!-- 详情 -->
<Detail ref="detailRef" :isBasic="true" :allSchemas="EquipmentReportRepairRequest.allSchemas" />
<!-- 审核页面 -->
<AudiForm ref="audiFormRef" @success="getData" @close="getClosed"/>
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/eam/equipment-report-repair-request/import" :importTemplateData="importTemplateData" @success="importSuccess" />
</template>
@ -66,7 +69,7 @@ import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue'
import {Maintenance} from "@/views/eam/maintenance/maintenance.data";
import AudiForm from '@/views/eam/equipmentReportRepairRequest/audiForm.vue'
import {EquipmentAccounts} from "@/views/eam/equipmentAccounts/equipmentAccounts.data";
import * as EquipmentItemApi from "@/api/eam/equipmentAccounts";
import {ToolAccounts} from "@/views/eam/toolAccounts/toolAccounts.data";
@ -137,11 +140,26 @@ const buttonBaseClick = (val, item) => {
}
}
const isShowStatusButton = (row,val) => {
if (val.indexOf(row.status) > -1) {
return false
} else {
return true
}
}
// -
const butttondata = [
defaultButtons.mainListEditBtn({hasPermi:'eam:equipmentReportRepairRequest:update'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'eam:equipmentReportRepairRequest:delete'}), //
]
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hide: isShowStatusButton(row, ['0']),hasPermi: 'eam:equipmentReportRepairRequest:update'}), //
defaultButtons.mainListAuditingBtn({hide: isShowStatusButton(row, ['0']), hasPermi: 'eam:equipmentReportRepairRequest:update'}), //
defaultButtons.mainListAuditedBtn({hide: isShowStatusButton(row, ['2']), hasPermi: 'eam:equipmentReportRepairRequest:update'}), //
defaultButtons.mainListRevokeBtn({hide: isShowStatusButton(row, ['0']), hasPermi: 'eam:equipmentReportRepairRequest:update'}), //
defaultButtons.mainListFinishBtn({hide: isShowStatusButton(row,['3']),hasPermi:'eam:equipmentReportRepairRequest:update'}),
defaultButtons.mainListDeleteBtn({hasPermi:'eam:equipmentReportRepairRequest:update'}), //
]
}
// -
const buttonTableClick = async (val, row) => {
@ -149,6 +167,14 @@ const buttonTableClick = async (val, row) => {
openForm('update', row)
} else if (val == 'delete') { //
handleDelete(row.id)
} else if (val == 'auditing') { //
handleAuditing(row.id)
} else if (val == 'revoke') { //
handleRevoke(row.id)
} else if (val == 'audited') { //
handleAudited(row)
} else if (val == 'finish') { //
handleFinish(row.id)
}
}
@ -199,6 +225,79 @@ const openDetail = (row: any, titleName: any, titleValue: any) => {
detailRef.value.openDetail(row, titleName, titleValue, 'basicEquipmentReportRepairRequest')
}
//
const handleFinish = async (id: number) => {
await message.delConfirm('是否完成,并创建维修工单?');
try {
const params = ref({
id: '',
status:'',
})
params.value.id = id
params.value.status = '5'
await EquipmentReportRepairRequestApi.updateEquipmentReportRepairOrder(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
//
const handleAudited = async (row) => {
message.confirmAudi(t('')).then(async () => {
//
audiFormRef.value.open('update', row);
}).catch(async (action: Action) => {
if(action === 'cancel'){
const params = ref({
id: '',
status:'',
})
params.value.id = row.id
params.value.status = '4'
await EquipmentReportRepairRequestApi.updateEquipmentReportRepairOrder(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
}
})
}
//
const audiFormRef = ref()
const handleAuditing = async (id: number) => {
await message.delConfirm('是否审核所选中工单?');
try {
const params = ref({
id: '',
status:'',
})
params.value.id = id
params.value.status = '2'
await EquipmentReportRepairRequestApi.updateEquipmentReportRepairOrder(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
/** 撤回按钮操作 */
const handleRevoke = async (id: number) => {
await message.delConfirm('是否撤回所选中工单?');
try {
const params = ref({
id: '',
status:'',
})
params.value.id = id
params.value.status = '1'
await EquipmentReportRepairRequestApi.updateEquipmentReportRepairOrder(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
@ -243,6 +342,34 @@ const importSuccess = () => {
getList()
}
//audiForm
const getClosed=(val)=> {
nextTick?.(() => {
getList()
})
}
//audiForm
const getData=(val)=> {
nextTick?.(async () => {
try {
const params = ref({
id: '',
status:'',
})
params.value.id = val
params.value.status = '3'
await EquipmentReportRepairRequestApi.updateEquipmentReportRepairOrder(params.value)
message.success(t('工单已流转'))
//
await getList()
} catch {}
}
)
}
const onChange = (field, item) => {
//

72
src/views/home/components/material.vue

@ -36,10 +36,11 @@
<!-- 呆滞库存预警 -->
<div class="title">{{ t('home.slack_stock_warning')}}</div>
<el-table
:data="materialData?.stagnantBalanceList"
:data="stagnantBalanceList"
style="width: 100%"
stripe
height="240px"
row-key="id"
>
<el-table-column prop="itemCode" :label="t('home.material_code')" width="180px" />
<el-table-column prop="batch" :label="t('home.batch')" width="180px" />
@ -88,7 +89,7 @@
</template>
</el-table-column>
</el-table>
<!-- <el-pagination style="margin-top:10px"
<el-pagination style="margin-top:10px"
v-model:current-page="currentPage_stagnantBalance"
v-model:page-size="pageSize_stagnantBalance"
:page-sizes="[10, 20, 30, 50, 100]"
@ -96,17 +97,19 @@
:background="false"
layout="total, sizes, prev, pager, next, jumper"
:total="total_stagnantBalance"
@current-change="handleCurrentChange_stagnantBalance"
/> -->
@size-change="getStagnantBalance"
@current-change="getStagnantBalance"
/>
</div>
<div class="data1 w-[47.3%]">
<!-- 超期库存预警 -->
<div class="title">{{ t('home.overstock_warning') }}</div>
<el-table
:data="materialData?.overdueBalanceList"
:data="overdueBalanceList"
style="width: 100%"
stripe
height="240px"
row-key="id"
>
<el-table-column prop="itemCode" :label="t('home.material_code')" width="180px" />
<el-table-column prop="batch" :label="t('home.batch')" width="180px" />
@ -155,7 +158,7 @@
</template>
</el-table-column>
</el-table>
<!-- <el-pagination style="margin-top:10px"
<el-pagination style="margin-top:10px"
v-model:current-page="currentPage_overdueBalance"
v-model:page-size="pageSize_overdueBalance"
:page-sizes="[10, 20, 30, 50, 100]"
@ -163,8 +166,9 @@
:background="false"
layout="total, sizes, prev, pager, next, jumper"
:total="total_overdueBalance"
@current-change="handleCurrentChange_overdueBalance"
/> -->
@size-change="getOverdueBalance"
@current-change="getOverdueBalance"
/>
</div>
</div>
<div class="two-row mt-14px">
@ -172,7 +176,7 @@
<!-- 高低储预警 -->
<div class="title">{{ t('home.high_and_low_storage_warning') }}</div>
<el-table
:data="materialData?.warningBalanceList"
:data="warningBalanceList"
style="width: 100%"
stripe
height="240px"
@ -224,7 +228,7 @@
</template>
</el-table-column>
</el-table>
<!-- <el-pagination style="margin-top:10px"
<el-pagination style="margin-top:10px"
v-model:current-page="currentPage_warningBalance"
v-model:page-size="pageSize_warningBalance"
:page-sizes="[10, 20, 30, 50, 100]"
@ -232,8 +236,9 @@
:background="false"
layout="total, sizes, prev, pager, next, jumper"
:total="total_warningBalance"
@current-change="handleCurrentChange_warningBalance"
/> -->
@size-change="getWarningBalance"
@current-change="getWarningBalance"
/>
</div>
<div class="data1 w-[47.3%]">
<!-- 待处理任务 -->
@ -262,6 +267,7 @@ const getMaterialData = () => {
getJobCharts()
})
}
const formatter = (type, dict) => {
let str = getStrDictOptions(dict).filter((item) => type == item.value)[0]?.label
return str
@ -285,32 +291,58 @@ const getJobCharts = async () => {
lineIndex.value++
}
onMounted(() => {
// getMaterialData()
getMaterialData()
//
Promise.all([ getStagnantBalance(),getOverdueBalance(),getWarningBalance()])
})
//
const currentPage_stagnantBalance = ref(1)
const pageSize_stagnantBalance = ref(10)
const total_stagnantBalance= ref(100)
const handleCurrentChange_stagnantBalance = (val)=>{
console.log('呆滞库存预警',val)
const stagnantBalanceList = ref([])
const getStagnantBalance = ()=>{
IndexApi.getStagnantBalance({
pageNo: currentPage_stagnantBalance.value,
pageSize: pageSize_stagnantBalance.value
}).then((res) => {
console.log('getStagnantBalance',res)
stagnantBalanceList.value = res.list
total_stagnantBalance.value = res.total
})
}
//
const currentPage_overdueBalance = ref(1)
const pageSize_overdueBalance = ref(10)
const total_overdueBalance= ref(100)
const handleCurrentChange_overdueBalance = (val)=>{
console.log('超期库存预警',val)
const overdueBalanceList = ref([])
const getOverdueBalance = ()=>{
IndexApi.getOverdueBalance({
pageNo: currentPage_overdueBalance.value,
pageSize: pageSize_overdueBalance.value
}).then((res) => {
console.log('getOverdueBalance',res)
overdueBalanceList.value = res.list
total_overdueBalance.value = res.total
})
}
//
const currentPage_warningBalance = ref(1)
const pageSize_warningBalance = ref(10)
const total_warningBalance= ref(100)
const handleCurrentChange_warningBalance = (val)=>{
console.log('高低储预警',val)
const warningBalanceList = ref([])
const getWarningBalance = ()=>{
IndexApi.getWarningBalance({
pageNo: currentPage_warningBalance.value,
pageSize: pageSize_warningBalance.value
}).then((res) => {
console.log('getWarningBalance',res)
warningBalanceList.value = res.list
total_warningBalance.value = res.total
})
}
</script>
<style scoped lang="scss">
.title {

91
src/views/home/components/produce.vue

@ -3,9 +3,10 @@
<div class="row">
<div class="two-row">
<div class="data1 w-[47.3%]">
<!-- 今日生产计划 -->
<div class="title">{{ t('home.today_production_plan')}}</div>
<el-table
:data="produceData?.productionTodayList"
:data="productionTodayList"
style="width: 100%"
stripe
height="240px"
@ -33,10 +34,22 @@
</el-table-column>
<el-table-column prop="businessType" :label="t('home.business_type')" />
</el-table>
<el-pagination style="margin-top:10px"
v-model:current-page="currentPage_productionToday"
v-model:page-size="pageSize_productionToday"
:page-sizes="[10, 20, 30, 50, 100]"
:small="true"
:background="false"
layout="total, sizes, prev, pager, next, jumper"
:total="total_productionToday"
@size-change="getProductionToday"
@current-change="getProductionToday"
/>
</div>
<div class="data1 w-[47.3%]">
<!-- 线边安全库存 -->
<div class="title">{{ t('home.line_side_safety_stock') }}</div>
<el-table :data="produceData?.safeLocationList" style="width: 100%" stripe height="240px">
<el-table :data="safeLocationList" style="width: 100%" stripe height="240px">
<el-table-column prop="code" :label="t('home.code')" width="180" />
<el-table-column prop="name" :label="t('home.name')" width="180" />
<el-table-column prop="warehouseCode" :label="t('home.warehouse_code')" width="180" />
@ -64,13 +77,25 @@
</template>
</el-table-column>
</el-table>
<el-pagination style="margin-top:10px"
v-model:current-page="currentPage_safeLocation"
v-model:page-size="pageSize_safeLocation"
:page-sizes="[10, 20, 30, 50, 100]"
:small="true"
:background="false"
layout="total, sizes, prev, pager, next, jumper"
:total="total_safeLocation"
@size-change="getSafeLocation"
@current-change="getSafeLocation"
/>
</div>
</div>
<div class="two-row mt-14px">
<div class="data1 w-[47.3%]">
<!-- 待上架成品库存 -->
<div class="title">{{t('home.inventory_of_finished_products_waiting_to_be_putway')}}</div>
<el-table
:data="produceData?.productputawayJobDetailList"
:data="productputawayJobDetailList"
style="width: 100%"
stripe
height="240px"
@ -153,6 +178,17 @@
</template>
</el-table-column>
</el-table>
<el-pagination style="margin-top:10px"
v-model:current-page="currentPage_productputawayJobDetail"
v-model:page-size="pageSize_productputawayJobDetail"
:page-sizes="[10, 20, 30, 50, 100]"
:small="true"
:background="false"
layout="total, sizes, prev, pager, next, jumper"
:total="total_productputawayJobDetail"
@size-change="getProductputawayJobDetail"
@current-change="getProductputawayJobDetail"
/>
</div>
<div class="data1 w-[47.3%]">
<div class="title">{{t('home.waiting_tasks')}}</div>
@ -201,8 +237,57 @@ const getJobCharts = async () => {
])
lineIndex.value++
}
//
const currentPage_productionToday = ref(1)
const pageSize_productionToday = ref(10)
const total_productionToday= ref(100)
const productionTodayList = ref([])
const getProductionToday = ()=>{
IndexApi.getProductionToday({
pageNo: currentPage_productionToday.value,
pageSize: pageSize_productionToday.value
}).then((res) => {
console.log('getPurchasereturnRecordMonth',res)
productionTodayList.value = res.list
total_productionToday.value = res.total
})
}
// 线
const currentPage_safeLocation = ref(1)
const pageSize_safeLocation = ref(10)
const total_safeLocation= ref(100)
const safeLocationList = ref([])
const getSafeLocation = ()=>{
IndexApi.getSafeLocation({
pageNo: currentPage_safeLocation.value,
pageSize: pageSize_safeLocation.value
}).then((res) => {
console.log('getPurchasereturnRecordMonth',res)
safeLocationList.value = res.list
total_safeLocation.value = res.total
})
}
//
const currentPage_productputawayJobDetail = ref(1)
const pageSize_productputawayJobDetail = ref(10)
const total_productputawayJobDetail= ref(100)
const productputawayJobDetailList = ref([])
const getProductputawayJobDetail = ()=>{
IndexApi.getProductputawayJobDetail({
pageNo: currentPage_productputawayJobDetail.value,
pageSize: pageSize_productputawayJobDetail.value
}).then((res) => {
console.log('待上架成品库存',res)
productputawayJobDetailList.value = res.list
total_productputawayJobDetail.value = res.total
})
}
onMounted( () => {
// getProduceData()
Promise.all([getProductionToday(),getSafeLocation(),getProductputawayJobDetail()])
})
</script>
<style scoped lang="scss">

63
src/views/home/components/supplierIndex.vue

@ -147,9 +147,10 @@
</div>
<div class="two-row mt-14px">
<div class="data1 w-[47.3%]">
<!-- 本月退货明细 -->
<div class="title">{{t('home.month_return_detials')}}</div>
<el-table
:data="supplierData?.purchasereturnRecordMonth"
:data="purchasereturnRecordMonth"
style="width: 100%"
stripe
height="240px"
@ -199,11 +200,23 @@
</el-table-column>
<el-table-column prop="creator" :label="t('home.creater')" width="120" />
</el-table>
<el-pagination style="margin-top:10px"
v-model:current-page="currentPage_purchasereturn"
v-model:page-size="pageSize_purchasereturn"
:page-sizes="[10, 20, 30, 50, 100]"
:small="true"
:background="false"
layout="total, sizes, prev, pager, next, jumper"
:total="total_purchasereturn"
@size-change="getPurchasereturnRecordMonth"
@current-change="getPurchasereturnRecordMonth"
/>
</div>
<div class="data1 w-[47.3%]">
<!-- 本月索赔明细 -->
<div class="title">{{t('home.claim_details_month')}}</div>
<el-table
:data="supplierData?.purchasereturnRecordMonth"
:data="purchaseclaimRecordMonth"
style="width: 100%"
stripe
height="240px"
@ -223,6 +236,17 @@
</el-table-column>
<el-table-column prop="creator" :label="t('home.creater')" width="120" />
</el-table>
<el-pagination style="margin-top:10px"
v-model:current-page="currentPage_purchaseclaim"
v-model:page-size="pageSize_purchaseclaim"
:page-sizes="[10, 20, 30, 50, 100]"
:small="true"
:background="false"
layout="total, sizes, prev, pager, next, jumper"
:total="total_purchaseclaim"
@size-change="getPurchaseclaimRecordMonth"
@current-change="getPurchaseclaimRecordMonth"
/>
</div>
</div>
</div>
@ -354,9 +378,42 @@ const formatter = (type,dict) => {
let str = getStrDictOptions(dict).filter((item) => type == item.value)[0]?.label
return str
}
// 退
const currentPage_purchasereturn = ref(1)
const pageSize_purchasereturn = ref(10)
const total_purchasereturn= ref(100)
const purchasereturnRecordMonth = ref([])
const getPurchasereturnRecordMonth = ()=>{
IndexApi.getPurchasereturnRecordMonth({
pageNo: currentPage_purchasereturn.value,
pageSize: pageSize_purchasereturn.value
}).then((res) => {
console.log('getPurchasereturnRecordMonth',res)
purchasereturnRecordMonth.value = res.list
total_purchasereturn.value = res.total
})
}
//
const currentPage_purchaseclaim = ref(1)
const pageSize_purchaseclaim = ref(10)
const total_purchaseclaim= ref(100)
const purchaseclaimRecordMonth = ref([])
const getPurchaseclaimRecordMonth = ()=>{
IndexApi.getPurchaseclaimRecordMonth({
pageNo: currentPage_purchaseclaim.value,
pageSize: pageSize_purchaseclaim.value
}).then((res) => {
console.log('getPurchaseclaimRecordMonth',res)
purchaseclaimRecordMonth.value = res.list
total_purchaseclaim.value = res.total
})
}
onMounted( () => {
// getSupplierData()
getSupplierData()
getList()
//
Promise.all([getPurchaseclaimRecordMonth(),getPurchasereturnRecordMonth()])
})
</script>
<style scoped lang="scss">

40
src/views/wms/basicDataManage/itemManage/itempackage/index.vue

@ -52,6 +52,7 @@
:apiCreate="ItempackagingApi.createItempackaging"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
@onEnter="onEnter"
/>
<!-- 详情 -->
@ -75,6 +76,10 @@ import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue'
import * as ItembasicApi from '@/api/wms/itembasic'
import { Itembasic } from '../itembasic/itembasic.data'
import * as PackageunitApi from '@/api/wms/packageunit'
import { Packageunit } from '../packageunit/packageunit.data'
defineOptions({ name: 'Itempackaging' })
@ -205,6 +210,41 @@ const formsSuccess = async (formType, data) => {
basicFormRef.value.dialogVisible = false
getList()
}
const onEnter = async (field,value)=>{
console.log('onEnter',field,value)
if('itemCode'==field){
//
basicFormRef.value.opensearchTable('itemCode', 'code', '物料基础信息', Itembasic.allSchemas, ItembasicApi.getItembasicPage,[{
key: 'available',
value: 'TRUE',
action: '==',
isSearch: true,
isMainValue: false
},{
key: 'code',
value: value,
action: '==',
isSearch: true,
isMainValue: false
}])
}else if('packUnit'==field){
//
basicFormRef.value.opensearchTable('packUnit', 'code', '包装规格信息', Packageunit.allSchemas, PackageunitApi.getPackageunitPage,[{
key: 'available',
value: 'TRUE',
action: '==',
isSearch: true,
isMainValue: false
},{
key: 'code',
value: value,
action: '==',
isSearch: true,
isMainValue: false
}])
}
}
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
nextTick(() => {

2
src/views/wms/basicDataManage/itemManage/itempackage/itempackage.data.ts

@ -23,6 +23,7 @@ export const Itempackaging = useCrudSchemas(reactive<CrudSchema[]>([
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true, //可输入回车
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
@ -64,6 +65,7 @@ export const Itempackaging = useCrudSchemas(reactive<CrudSchema[]>([
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true, //可输入回车
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择包装规格', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段

5
src/views/wms/deliversettlementManage/customersettle/customersettleRequestMain/customersettleRequestMain.data.ts

@ -421,6 +421,8 @@ export const CustomersettleRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
label: '单据号',
field: 'number',
sort: 'custom',
isTable: false,
isForm: false,
table: {
width: 180,
fixed: 'left'
@ -717,6 +719,7 @@ export const CustomersettleRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
field: 'action',
isDetail: false,
isForm: false ,
isTable: false,
table: {
width: 150,
fixed: 'right'
@ -745,4 +748,4 @@ export const CustomersettleRequestDetailRules = reactive({
itemCode: [
{ required: true, message: '请选择物料代码', trigger: 'change' }
],
})
})

5
src/views/wms/deliversettlementManage/saleShipmentMainRequest/saleShipmentMain.data.ts

@ -219,6 +219,9 @@ export const SaleShipmentMain = useCrudSchemas(reactive<CrudSchema[]>([
field: 'createTime',
sort: 'custom',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
search: {
component: 'DatePicker',
componentProps: {
@ -507,4 +510,4 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
hiddenInMain:true,
isTableForm:false,
}
]))
]))

24
src/views/wms/deliversettlementManage/stockup/stockupMainRequest/stockupMainRequest.data.ts

@ -165,6 +165,9 @@ export const StockupMainRequest = useCrudSchemas(reactive<CrudSchema[]>([
sort: 'custom',
formatter: dateFormatter,
isSearch: false,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
search: {
component: 'DatePicker',
componentProps: {
@ -186,6 +189,9 @@ export const StockupMainRequest = useCrudSchemas(reactive<CrudSchema[]>([
formatter: dateFormatter,
isSearch: false,
isTable: false,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
search: {
component: 'DatePicker',
componentProps: {
@ -212,6 +218,9 @@ export const StockupMainRequest = useCrudSchemas(reactive<CrudSchema[]>([
formatter: dateFormatter,
isSearch: false,
isTable: false,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
search: {
component: 'DatePicker',
componentProps: {
@ -238,6 +247,9 @@ export const StockupMainRequest = useCrudSchemas(reactive<CrudSchema[]>([
formatter: dateFormatter,
isSearch: false,
isTable: false,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
search: {
component: 'DatePicker',
componentProps: {
@ -489,7 +501,7 @@ export const StockupDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
table: {
width: 180
},
hiddenInMain: true
hiddenInMain: true
},
// {
// label: '包装号',
@ -508,7 +520,7 @@ export const StockupDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
// searchCondition: [
// // {
// // key:'customerCode', // 查询列表中字段
// // value:'customerCode', // 指主表某字段
// // value:'customerCode', // 指主表某字段
// // message: '请选择客户代码!', // 当前置条件为空时 弹出信息提示
// // isMainValue: true // 表示查询条件是主表的字段的值
// // }
@ -526,7 +538,7 @@ export const StockupDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
// searchCondition: [
// // {
// // key:'customerCode', // 查询列表中字段
// // value:'customerCode', // 指主表某字段
// // value:'customerCode', // 指主表某字段
// // message: '请选择客户代码!', // 当前置条件为空时 弹出信息提示
// // isMainValue: true // 表示查询条件是主表的字段的值
// // }
@ -633,7 +645,7 @@ export const StockupDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
table: {
width: 120
},
hiddenInMain: true
hiddenInMain: true
},
{
label: '物品描述2',
@ -644,7 +656,7 @@ export const StockupDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
table: {
width: 120
},
hiddenInMain: true
hiddenInMain: true
},
{
label: '项目代码',
@ -655,7 +667,7 @@ export const StockupDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
table: {
width: 120
},
hiddenInMain: true
hiddenInMain: true
},
{
label: '数量',

11
src/views/wms/inventoryjobManage/inventoryinitial/inventoryinitRequestMain/index.vue

@ -109,7 +109,16 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
if (type == 'tableForm') {
//
row[formField] = val[0][searchField]
row['uom'] = val[0]['uom']
if(formField=='itemCode'){
//
row['uom'] = val[0]['uom']
}else if(formField=='packUnit'){
//1
row['packQty'] = val[0]['packQty']
}else if(formField=='secondPackUnit'){
//2
row['secondPackQty'] = val[0]['packQty']
}
} else {
const setV = {}
setV[formField] = val[0][searchField]

209
src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/preparetoissueMain.data.ts

@ -1,42 +1,45 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter,dateFormatter2 } from '@/utils/formatTime'
import type {CrudSchema} from '@/hooks/web/useCrudSchemas'
import {dateFormatter, dateFormatter2} from '@/utils/formatTime'
import * as ProductionMainApi from '@/api/wms/productionMain'
import { ProductionMain } from '@/views/wms/productionManage/productionplan/productionMain/productionMain.data'
import {
ProductionMain
} from '@/views/wms/productionManage/productionplan/productionMain/productionMain.data'
import * as WorkshopApi from '@/api/wms/workshop'
import { Workshop } from '@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data'
import {Workshop} from '@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data'
import * as ProductionlineApi from '@/api/wms/productionline'
import { Productionline } from '@/views/wms/basicDataManage/factoryModeling/productionline/productionline.data'
import {
Productionline
} from '@/views/wms/basicDataManage/factoryModeling/productionline/productionline.data'
import * as ShiftApi from '@/api/wms/shift'
import { Shift } from '@/views/wms/basicDataManage/orderManage/shift/shift.data'
import {Shift} from '@/views/wms/basicDataManage/orderManage/shift/shift.data'
import * as TeamApi from '@/api/wms/team'
import { Team } from '@/views/wms/basicDataManage/orderManage/team/team.data'
import {Team} from '@/views/wms/basicDataManage/orderManage/team/team.data'
import * as ProductionlineitemApi from '@/api/wms/productionlineitem'
// import { Productionlineitem } from '@/views/wms/basicDataManage/itemManage/bom/bom.data'
// import * as BomApi from '@/api/wms/bom'
import { Bom } from '@/views/wms/basicDataManage/itemManage/bom/bom.data'
import {Bom} from '@/views/wms/basicDataManage/itemManage/bom/bom.data'
import * as WorkStationApi from '@/api/wms/workstation'
import { Workstation } from '@/views/wms/basicDataManage/factoryModeling/workstation/workstation.data'
import {Workstation} from '@/views/wms/basicDataManage/factoryModeling/workstation/workstation.data'
import * as getPlansettingApi from '@/api/wms/plansetting/index'
import * as getPlansettingApi from '@/api/wms/plansetting/index'
const { t } = useI18n() // 国际化
const {t} = useI18n() // 国际化
// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值
const queryParams = {
pageSize:10,
pageNo:1,
code:'PreparetoissuePlan'
pageSize: 10,
pageNo: 1,
code: 'PreparetoissuePlan'
}
const data = await getPlansettingApi.getPlansettingPage(queryParams)
const plansettingData =data?.list[0]||{}
const data = await getPlansettingApi.getPlansettingPage(queryParams)
const plansettingData = data?.list[0] || {}
/**
* @returns {Array}
@ -63,7 +66,7 @@ export const PreparetoissueMain = useCrudSchemas(reactive<CrudSchema[]>([
dictType: DICT_TYPE.PLAN_STATUS,
dictClass: 'string',
isSearch: true,
isForm:false,
isForm: false,
form: {
value: '1',
componentProps: {
@ -182,7 +185,7 @@ export const PreparetoissueMain = useCrudSchemas(reactive<CrudSchema[]>([
form: {
component: 'DatePicker',
componentProps: {
style: {width:'100%'},
style: {width: '100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
@ -203,7 +206,7 @@ export const PreparetoissueMain = useCrudSchemas(reactive<CrudSchema[]>([
form: {
component: 'DatePicker',
componentProps: {
style: {width:'100%'},
style: {width: '100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
@ -228,14 +231,20 @@ export const PreparetoissueMain = useCrudSchemas(reactive<CrudSchema[]>([
searchAllSchemas: ProductionMain.allSchemas, // 查询弹窗所需类
searchPage: ProductionMainApi.getProductionMainPage, // 查询弹窗所需分页方法
searchCondition: [{
key:'status',
value:'6',
key: 'status',
value: '6',
isMainValue: false
},
{
key: 'available',
value: 'TRUE',
isMainValue: false
},{
key:'available',
value:'TRUE',
},
{
key: 'planType',
value: 'predict',
isMainValue: false
}]
}]
}
}
},
@ -253,7 +262,7 @@ export const PreparetoissueMain = useCrudSchemas(reactive<CrudSchema[]>([
field: 'available',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isSearch: true,
isSearch: false,
isTable: false,
sort: 'custom',
table: {
@ -290,7 +299,7 @@ export const PreparetoissueMain = useCrudSchemas(reactive<CrudSchema[]>([
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
isForm:false,
isForm: false,
sort: 'custom',
table: {
width: 150
@ -311,7 +320,7 @@ export const PreparetoissueMain = useCrudSchemas(reactive<CrudSchema[]>([
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
isForm:false,
isForm: false,
sort: 'custom',
table: {
width: 150
@ -332,7 +341,7 @@ export const PreparetoissueMain = useCrudSchemas(reactive<CrudSchema[]>([
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
isForm:false,
isForm: false,
sort: 'custom',
table: {
width: 150
@ -362,7 +371,7 @@ export const PreparetoissueMain = useCrudSchemas(reactive<CrudSchema[]>([
form: {
component: 'DatePicker',
componentProps: {
style: {width:'100%'},
style: {width: '100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
@ -395,7 +404,7 @@ export const PreparetoissueMain = useCrudSchemas(reactive<CrudSchema[]>([
form: {
component: 'DatePicker',
componentProps: {
style: {width:'100%'},
style: {width: '100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
@ -428,31 +437,31 @@ export const PreparetoissueMain = useCrudSchemas(reactive<CrudSchema[]>([
//表单校验
export const PreparetoissueMainRules = reactive({
workshop: [
{ required: true, message: '请选择车间', trigger: 'change' }
{required: true, message: '请选择车间', trigger: 'change'}
],
prodLine: [
{ required: true, message: '请选择生产线', trigger: 'change' }
{required: true, message: '请选择生产线', trigger: 'change'}
],
shift: [
{ required: true, message: '请选择班次', trigger: 'change' }
{required: true, message: '请选择班次', trigger: 'change'}
],
team: [
{ required: true, message: '请选择班组', trigger: 'change' }
{required: true, message: '请选择班组', trigger: 'change'}
],
planDate: [
{ required: true, message: '请输入计划日期', trigger: 'change' }
{required: true, message: '请输入计划日期', trigger: 'change'}
],
available: [
{ required: true, message: '请选择是否可用', trigger: 'change' }
{required: true, message: '请选择是否可用', trigger: 'change'}
],
status: [
{ required: true, message: '请选择状态', trigger: 'change' }
{required: true, message: '请选择状态', trigger: 'change'}
],
businessType: [
{ required: true, message: '请输入业务类型', trigger: 'blur' }
{required: true, message: '请输入业务类型', trigger: 'blur'}
],
remark: [
{ max: 50, message: '不得超过50个字符', trigger: 'blur' }
remark: [
{max: 50, message: '不得超过50个字符', trigger: 'blur'}
],
})
@ -477,44 +486,44 @@ export const PreparetoissueDetail = useCrudSchemas(reactive<CrudSchema[]>([
searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类
searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法
searchCondition: [{
key:'productionLineCode',
value:'prodLine',
key: 'productionLineCode',
value: 'prodLine',
message: '请填写生产线代码!',
isMainValue: true
},{
key:'workshopCode',
value:'workshop',
}, {
key: 'workshopCode',
value: 'workshop',
message: '请填写车间代码!',
isMainValue: true
},{
key:'available',
value:'TRUE',
}, {
key: 'available',
value: 'TRUE',
isMainValue: false
}]
}]
}
},
tableForm:{
tableForm: {
isInpuFocusShow: true,
searchListPlaceholder: '请选择工位', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '工位信息', // 查询弹窗标题
searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类
searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法
searchCondition: [{
key:'productionLineCode',
value:'prodLine',
message: '请填写生产线代码!',
isMainValue: true
},{
key:'workshopCode',
value:'workshop',
message: '请填写车间代码!',
isMainValue: true
},{
key:'available',
value:'TRUE',
isMainValue: false
}]
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '工位信息', // 查询弹窗标题
searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类
searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法
searchCondition: [{
key: 'productionLineCode',
value: 'prodLine',
message: '请填写生产线代码!',
isMainValue: true
}, {
key: 'workshopCode',
value: 'workshop',
message: '请填写车间代码!',
isMainValue: true
}, {
key: 'available',
value: 'TRUE',
isMainValue: false
}]
},
},
{
@ -534,14 +543,14 @@ export const PreparetoissueDetail = useCrudSchemas(reactive<CrudSchema[]>([
searchAllSchemas: Bom.allSchemas, // 查询弹窗所需类
searchPage: ProductionlineitemApi.getProductionlineitemPageByItemtype, // 查询弹窗所需分页方法
searchCondition: [{
key:'productionLineCode',
value:'prodLine',
key: 'productionLineCode',
value: 'prodLine',
message: '请填写生产线代码!',
isMainValue: true
}]
}
},
tableForm:{
tableForm: {
isInpuFocusShow: true,
searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchField: 'itemCode', // 查询弹窗赋值字段
@ -549,11 +558,11 @@ export const PreparetoissueDetail = useCrudSchemas(reactive<CrudSchema[]>([
searchAllSchemas: Bom.allSchemas, // 查询弹窗所需类
searchPage: ProductionlineitemApi.getProductionlineitemPageByItemtype, // 查询弹窗所需分页方法
searchCondition: [{
key:'productionLineCode',
value:'prodLine',
key: 'productionLineCode',
value: 'prodLine',
message: '请填写生产线代码!',
isMainValue: true
}]
}]
},
},
{
@ -566,7 +575,7 @@ export const PreparetoissueDetail = useCrudSchemas(reactive<CrudSchema[]>([
form: {
component: 'InputNumber',
},
tableForm:{
tableForm: {
type: 'InputNumber',
min: 1,
precision: 6
@ -589,7 +598,7 @@ export const PreparetoissueDetail = useCrudSchemas(reactive<CrudSchema[]>([
table: {
width: 150
},
tableForm:{
tableForm: {
type: 'Select',
disabled: true
},
@ -607,11 +616,11 @@ export const PreparetoissueDetail = useCrudSchemas(reactive<CrudSchema[]>([
disabled: true
}
},
tableForm:{
tableForm: {
disabled: true
},
},
{
label: '截止时间',
field: 'dueTime',
@ -632,7 +641,7 @@ export const PreparetoissueDetail = useCrudSchemas(reactive<CrudSchema[]>([
form: {
component: 'DatePicker',
componentProps: {
style: {width:'100%'},
style: {width: '100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
@ -678,7 +687,7 @@ export const PreparetoissueDetail = useCrudSchemas(reactive<CrudSchema[]>([
form: {
component: 'DatePicker',
componentProps: {
style: {width:'100%'},
style: {width: '100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
@ -724,7 +733,7 @@ export const PreparetoissueDetail = useCrudSchemas(reactive<CrudSchema[]>([
form: {
component: 'DatePicker',
componentProps: {
style: {width:'100%'},
style: {width: '100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
@ -738,14 +747,14 @@ export const PreparetoissueDetail = useCrudSchemas(reactive<CrudSchema[]>([
field: 'available',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isSearch: true,
isTable: true,
isSearch: false,
isTable: false,
sort: 'custom',
table: {
width: 150
},
hiddenInMain: true,
tableForm:{
tableForm: {
type: 'Select',
default: 'TRUE'
},
@ -760,42 +769,42 @@ export const PreparetoissueDetail = useCrudSchemas(reactive<CrudSchema[]>([
},
{
label: '操作',
hiddenInMain:true,
hiddenInMain: true,
field: 'action',
isDetail: false,
isForm: false ,
isForm: false,
table: {
width: 150,
fixed: 'right'
},
isTableForm:false,
isTableForm: false,
}
]))
//表单校验
export const PreparetoissueDetailRules = reactive({
available: [
{ required: true, message: '请选择是否可用', trigger: 'blur' }
{required: true, message: '请选择是否可用', trigger: 'blur'}
],
uom: [
{ required: true, message: '请选择计量单位', trigger: 'change' }
{required: true, message: '请选择计量单位', trigger: 'change'}
],
planQty: [
{ required: true, message: '请输入计划数量', trigger: 'blur' }
{required: true, message: '请输入计划数量', trigger: 'blur'}
],
number: [
{ required: true, message: '请输入单据号', trigger: 'blur' }
{required: true, message: '请输入单据号', trigger: 'blur'}
],
itemCode: [
{ required: true, message: '请选择物料代码', trigger: 'change' }
{required: true, message: '请选择物料代码', trigger: 'change'}
],
workStation: [
{ required: true, message: '请选择工位', trigger: 'change' }
{required: true, message: '请选择工位', trigger: 'change'}
],
remark: [
{ max: 50, message: '不得超过50个字符', trigger: 'blur' }
remark: [
{max: 50, message: '不得超过50个字符', trigger: 'blur'}
],
dueTime: [
{ required: true, message: '请选择截止时间', trigger: 'change' }
dueTime: [
{required: true, message: '请选择截止时间', trigger: 'change'}
]
})

7
src/views/wms/productionManage/processproduction/processproductionRequest/processproductionRequestMain.data.ts

@ -1,5 +1,5 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
import {dateFormatter, dateFormatter2} from '@/utils/formatTime'
import * as ItembasicApi from '@/api/wms/itembasic'
import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data'
import * as ProductionlineitemApi from '@/api/wms/productionlineitem'
@ -289,7 +289,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
key: 'available',
value: 'TRUE',
isMainValue: false
}],
}],
},
},
{
@ -456,6 +456,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
label: '生效日期',
field: 'effectiveDate',
sort: 'custom',
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
@ -625,4 +626,4 @@ export const ProcessproductionRequestDetailRules = reactive({
effectiveDate:[
{ required: true, message: '请输入生效日期', trigger: 'change' }
],
})
})

2
src/views/wms/productionManage/productionplan/qadproductionplan/index.vue

@ -91,7 +91,7 @@ const updataTableColumns = (val) => {
}
const { tableObject, tableMethods } = useTable({
getListApi: QadProductionPlanMainApi.getQadProductionPlanMainPage //
getListApi: QadProductionPlanMainApi.getQadProductionPlanDetailPage //
})
//

91
src/views/wms/productionManage/productionplan/qadproductionplan/qadProductionPlanMain.data.ts

@ -1,5 +1,5 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
import { dateFormatter2 } from '@/utils/formatTime'
// 表单校验
export const QadProductionPlanMainRules = reactive({
@ -9,35 +9,31 @@ export const QadProductionPlanMainRules = reactive({
})
export const QadProductionPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '顺序',
field: 'displayOrder',
sort: 'custom',
form: {
component: 'InputNumber',
value: 0
},
},
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 350,
}
},
{
label: '车间',
field: 'workshop',
label: '物料代码',
field: 'itemCode',
sort: 'custom',
isSearch: true,
table: {
width: 150,
}
},
{
label: '生产线',
field: 'productionLine',
label: '计划数量',
field: 'planQty',
sort: 'custom',
isSearch: true,
},
{
label: '班次',
field: 'shift',
label: '生产线',
field: 'productionLine',
sort: 'custom',
isSearch: true,
},
@ -50,7 +46,7 @@ export const QadProductionPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
label: '计划日期',
field: 'planDate',
sort: 'custom',
formatter: dateFormatter,
formatter: dateFormatter2,
form: {
component: 'DatePicker',
componentProps: {
@ -59,11 +55,6 @@ export const QadProductionPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
}
},
},
{
label: '明细列表',
field: 'details',
sort: 'custom',
},
{
label: '计划类型',
field: 'planType',
@ -80,33 +71,33 @@ export const QadProductionPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
component: 'SelectV2'
},
},
{
label: '备注',
field: 'remark',
sort: 'custom',
},
{
label: '是否可用',
field: 'available',
sort: 'custom',
isForm: false,
},
{
label: '状态',
field: 'status',
sort: 'custom',
isForm: false,
},
{
label: '订单号',
field: 'woNumber',
sort: 'custom',
},
{
label: '订单行',
field: 'woLine',
sort: 'custom',
},
// {
// label: '备注',
// field: 'remark',
// sort: 'custom',
// },
// {
// label: '是否可用',
// field: 'available',
// sort: 'custom',
// isForm: false,
// },
// {
// label: '状态',
// field: 'status',
// sort: 'custom',
// isForm: false,
// },
// {
// label: '订单号',
// field: 'woNumber',
// sort: 'custom',
// },
// {
// label: '订单行',
// field: 'woLine',
// sort: 'custom',
// },
// {
// label: '操作',
// field: 'action',

4
src/views/wms/productionManage/productputaway/productputawayRequestMain/index.vue

@ -77,8 +77,8 @@
/>
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/wms/productputaway-request-main/import" :importTemplateData="importTemplateData"
@success="importSuccess" :updateIsDisable="true" :coverIsDisable="true" :mode="2" />
<ImportForm ref="importFormRef" url="/wms/productputaway-request-main/import" :importTemplateData="importTemplateData"
@success="importSuccess" :updateIsDisable="true" :coverIsDisable="true" :mode="2" :extend="'predict'"/>
</template>
<script setup lang="ts">

96
src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/supplierinvoiceRecordMain.data.ts

@ -15,15 +15,6 @@ export const SupplierinvoiceRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
},
isSearch: true
},
{
label: '申请单号',
field: 'requestNumber',
sort: 'custom',
table: {
width: 180,
},
isSearch: true
},
{
label: '供应商代码',
field: 'supplierCode',
@ -31,6 +22,7 @@ export const SupplierinvoiceRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
table: {
width: 150
},
sortTableDefault:1,
isSearch: true
},
{
@ -40,8 +32,38 @@ export const SupplierinvoiceRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
table: {
width: 180,
},
sortTableDefault:2,
isForm: false
},
{
label: '状态',
field: 'status',
dictType: DICT_TYPE.SUPPLIERINVOICE_REQUEST_STATUS,
dictClass: 'string',
isTable: true,
sortTableDefault:10,
isForm:false,
sort: 'custom',
table: {
width: 150
},
isSearch: true,
form: {
value: '1',
componentProps: {
disabled: true
}
}
},
{
label: '申请单号',
field: 'requestNumber',
sort: 'custom',
table: {
width: 180,
},
isSearch: true
},
{
label: '订单号',
field: 'poNumber',
@ -541,6 +563,7 @@ export const SupplierinvoiceRecordDetail = useCrudSchemas(reactive<CrudSchema[]>
table: {
width: 150
},
sortTableDefault:7,
},
{
label: '订单行',
@ -550,6 +573,22 @@ export const SupplierinvoiceRecordDetail = useCrudSchemas(reactive<CrudSchema[]>
width: 150
},
},
{
label: '物流收货单号',
field: 'recvBillNum',
table: {
width: 150
},
sortTableDefault:9,
form: {
componentProps: {
disabled: true
}
},
tableForm:{
disabled: true
}
},
{
label: '单据号',
field: 'number',
@ -566,6 +605,7 @@ export const SupplierinvoiceRecordDetail = useCrudSchemas(reactive<CrudSchema[]>
table: {
width: 180
},
sortTableDefault:8,
},
{
label: '供应商代码',
@ -579,10 +619,48 @@ export const SupplierinvoiceRecordDetail = useCrudSchemas(reactive<CrudSchema[]>
label: '物料代码',
field: 'itemCode',
sort: 'custom',
sortTableDefault:3,
table: {
width: 150
},
},
{
label: '物料描述',
field: 'itemDesc',
table: {
width: 150
},
sortTableDefault:4,
isForm:false,
isTableForm:false,
isDetail: false,
isTable: true,
},
{
label: '到货时间',
field: 'planArriveTime',
table: {
width: 150
},
formatter: dateFormatter2,
sortTableDefault:5,
isForm:false,
isTableForm:false,
isDetail: false,
isTable: true,
},
{
label: '到货数量',
field: 'arrivalQty',
table: {
width: 150
},
sortTableDefault:6,
isForm:false,
isTableForm:false,
isDetail: false,
isTable: true,
},
{
label: '物料名称',
field: 'itemName',

5
src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/index.vue

@ -409,6 +409,11 @@ const handleImport = () => {
/** 添加/修改操作 */
const formRef = ref()
const openForm = async (type : string, row ?: number) => {
if(type=='update'){
SupplierinvoiceRequestMainRules.invoiceTime[0].required = true
}else{
SupplierinvoiceRequestMainRules.invoiceTime[0].required = false
}
if(row&&row.procurementCreator) row.procurementCreator = Number(row.procurementCreator)
//
SupplierinvoiceRequestMainApi.checkInvoicingCalendar({}).then(res => {

3
src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts

@ -765,6 +765,9 @@ export const SupplierinvoiceRequestMainRules = reactive({
supplierCode: [
{ required: true, message: '请选择供应商代码', trigger: 'change' }
],
invoiceTime:[
{ required: false, message: '请选择发票日期', trigger: 'blur' }
],
departmentCode: [
{ required: true, message: '请输入部门', trigger: 'blur' }
],

Loading…
Cancel
Save