流转确认
This commit is contained in:
parent
f9ba34d72a
commit
da1f401a7e
@ -4,6 +4,7 @@ export interface AssingWork {
|
||||
id:number,
|
||||
processId:number,
|
||||
processName:number,
|
||||
processCode?:string,
|
||||
userId:string,
|
||||
quantity:number,
|
||||
rework:number,
|
||||
@ -22,6 +23,11 @@ export interface AssingWork {
|
||||
workshopId:number,
|
||||
sectionId:number,
|
||||
deviceId:number,
|
||||
deviceName?:string,
|
||||
workshopName?:string,
|
||||
sectionName?:string,
|
||||
materialCode?:string,
|
||||
materialName?:string,
|
||||
traceId:number,
|
||||
qcNum:number
|
||||
}
|
||||
@ -65,7 +71,15 @@ export function pauseresume(data:any) {
|
||||
}
|
||||
|
||||
//我的派工任务
|
||||
export function mytasks(params:{page:number,pageSize:number,processName:string}) {
|
||||
export function mytasks(params:{
|
||||
page:number
|
||||
pageSize:number
|
||||
processName?:string
|
||||
processId?:number | string
|
||||
assingCode?:string
|
||||
materialCode?:string
|
||||
materialName?:string
|
||||
}) {
|
||||
return request({
|
||||
url: `/mes/dispatch/my-tasks`,
|
||||
method: 'get',
|
||||
|
||||
@ -50,6 +50,7 @@
|
||||
|
||||
<!-- 表格 -->
|
||||
<n-data-table
|
||||
remote
|
||||
:columns="columns"
|
||||
:data="tableData"
|
||||
:loading="loading"
|
||||
|
||||
@ -1,16 +1,5 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="toolbar">
|
||||
<n-space>
|
||||
<n-button
|
||||
size="small"
|
||||
:disabled="tableLoading || !AssingWorkTableData.length"
|
||||
@click="AssingWorkToggleExpandAll"
|
||||
>
|
||||
{{ AssingWorkAllExpanded ? '全部收起' : '全部展开' }}
|
||||
</n-button>
|
||||
</n-space>
|
||||
</div>
|
||||
<n-scrollbar x-scrollable>
|
||||
<n-data-table
|
||||
v-model:expanded-row-keys="AssingWorkExpandedKeys"
|
||||
@ -18,7 +7,7 @@
|
||||
:data="AssingWorkTableData"
|
||||
:loading="tableLoading"
|
||||
:row-key="RowKey"
|
||||
:scroll-x="1800"
|
||||
:scroll-x="1700"
|
||||
:max-height="1000"
|
||||
size="small"
|
||||
style="margin-bottom:15px"
|
||||
@ -26,7 +15,15 @@
|
||||
/>
|
||||
</n-scrollbar>
|
||||
|
||||
<div class="pagination-container" style="display: flex; justify-content: flex-end; margin-top: 12px">
|
||||
<div class="pagination-container">
|
||||
<n-button
|
||||
size="small"
|
||||
quaternary
|
||||
:disabled="tableLoading || !AssingWorkTableData.length"
|
||||
@click="AssingWorkToggleExpandAll"
|
||||
>
|
||||
{{ AssingWorkAllExpanded ? '全部收起' : '全部展开' }}
|
||||
</n-button>
|
||||
<n-pagination
|
||||
v-model:page="pagination.page"
|
||||
v-model:page-size="pagination.pageSize"
|
||||
@ -135,6 +132,9 @@ const AssingWorkTableData = ref<AssingWork[]>([])
|
||||
const AssingWorkExpandedKeys = ref<Array<string |number>>([])
|
||||
|
||||
const processName = ref<string>()
|
||||
const assingCode = ref<string>()
|
||||
const materialCode = ref<string>()
|
||||
const materialName = ref<string>()
|
||||
|
||||
|
||||
//派工详情弹窗
|
||||
@ -153,7 +153,7 @@ const AssingWorkColumns :DataTableColumns<AssingWork> = [
|
||||
align:"center",
|
||||
title:"派工编号",
|
||||
key:"assingCode",
|
||||
minWidth:150,
|
||||
width: 170,
|
||||
render(row:any) {
|
||||
return h(
|
||||
'a',
|
||||
@ -175,21 +175,43 @@ const AssingWorkColumns :DataTableColumns<AssingWork> = [
|
||||
},
|
||||
{
|
||||
align:'center',
|
||||
title: '工序名称',
|
||||
key: 'processName',
|
||||
minWidth: 200
|
||||
title: '物料编码',
|
||||
key: 'materialCode',
|
||||
width: 120,
|
||||
ellipsis: { tooltip: true },
|
||||
render(row:any) {
|
||||
return row.materialCode || '-'
|
||||
}
|
||||
},
|
||||
{
|
||||
align:'center',
|
||||
title: '物料名称',
|
||||
key: 'materialName',
|
||||
width: 140,
|
||||
ellipsis: { tooltip: true },
|
||||
render(row:any) {
|
||||
return row.materialName || '-'
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
align:'center',
|
||||
title: '工序名称',
|
||||
key: 'processName',
|
||||
width: 120,
|
||||
ellipsis: { tooltip: true }
|
||||
},
|
||||
/*{
|
||||
align:'center',
|
||||
title: '工序编号',
|
||||
key: 'processCode',
|
||||
minWidth: 200
|
||||
},
|
||||
width: 100
|
||||
}, */
|
||||
{
|
||||
align:'center',
|
||||
title: '是否质检',
|
||||
key: 'qualityInspection',
|
||||
minWidth: 200,
|
||||
width: 90,
|
||||
render(row) {
|
||||
var opt = row.qualityInspection
|
||||
if (opt == 0) {
|
||||
@ -204,7 +226,7 @@ const AssingWorkColumns :DataTableColumns<AssingWork> = [
|
||||
align:'center',
|
||||
title: '是否入库',
|
||||
key: 'storageEntry',
|
||||
minWidth: 200,
|
||||
width: 90,
|
||||
render(row) {
|
||||
var opt = row.storageEntry
|
||||
if (opt == 0) {
|
||||
@ -220,7 +242,7 @@ const AssingWorkColumns :DataTableColumns<AssingWork> = [
|
||||
align:'center',
|
||||
title: '派工状态',
|
||||
key: 'assingStatus',
|
||||
minWidth: 150,
|
||||
width: 90,
|
||||
render(row:any) {
|
||||
const val = row.assingStatus
|
||||
const opt = qcAssingStatusOptions.value.find(o => o.value === val || String(o.value) === String(val))
|
||||
@ -246,31 +268,32 @@ const AssingWorkColumns :DataTableColumns<AssingWork> = [
|
||||
align:'center',
|
||||
title: '工位/设备',
|
||||
key: 'deviceName',
|
||||
minWidth: 200
|
||||
width: 110,
|
||||
ellipsis: { tooltip: true }
|
||||
},
|
||||
{
|
||||
align:'center',
|
||||
title: '数量',
|
||||
minWidth: 100,
|
||||
width: 70,
|
||||
key: 'quantity'
|
||||
},
|
||||
{
|
||||
align:'center',
|
||||
title: '完成数量',
|
||||
key: 'completedQuantity',
|
||||
minWidth: 150
|
||||
width: 80
|
||||
},
|
||||
{
|
||||
align:'center',
|
||||
title: '完成时间',
|
||||
key: 'completedTime',
|
||||
minWidth: 180
|
||||
width: 160
|
||||
},
|
||||
{
|
||||
align:'center',
|
||||
title: '状态',
|
||||
key: 'status',
|
||||
minWidth: 100,
|
||||
width: 80,
|
||||
render(row:any) {
|
||||
if(row.status == 0){
|
||||
return h(NTag, {
|
||||
@ -309,7 +332,7 @@ const AssingWorkColumns :DataTableColumns<AssingWork> = [
|
||||
align:'center',
|
||||
title: '操作',
|
||||
key: 'action',
|
||||
width: 250,
|
||||
width: 180,
|
||||
fixed: 'right',
|
||||
render(row:any) {
|
||||
const buttons:any = []
|
||||
@ -433,25 +456,34 @@ function handlePageSizeChange(pageSize: number) {
|
||||
}
|
||||
|
||||
// //获取列表数据
|
||||
function getlist() {
|
||||
try{
|
||||
mytasks({
|
||||
page:pagination.page,
|
||||
pageSize:pagination.pageSize,
|
||||
processName:processName.value
|
||||
}).then((rps:any) => {
|
||||
AssingWorkTableData.value = rps.records
|
||||
pagination.itemCount = rps.total
|
||||
async function getlist() {
|
||||
tableLoading.value = true
|
||||
try {
|
||||
const rps: any = await mytasks({
|
||||
page: pagination.page,
|
||||
pageSize: pagination.pageSize,
|
||||
processName: processName.value || undefined,
|
||||
assingCode: assingCode.value || undefined,
|
||||
materialCode: materialCode.value || undefined,
|
||||
materialName: materialName.value || undefined,
|
||||
})
|
||||
}catch(error) {
|
||||
console.log(error);
|
||||
|
||||
AssingWorkTableData.value = rps?.records ?? []
|
||||
pagination.itemCount = rps?.total ?? 0
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
} finally {
|
||||
tableLoading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
const loadTableData = async(params:Record<string,any>) => {
|
||||
processName.value = params.processName
|
||||
getlist()
|
||||
const loadTableData = async (params: Record<string, any> = {}) => {
|
||||
processName.value = params.processName || undefined
|
||||
assingCode.value = params.assingCode || undefined
|
||||
materialCode.value = params.materialCode || undefined
|
||||
materialName.value = params.materialName || undefined
|
||||
pagination.page = 1
|
||||
AssingWorkExpandedKeys.value = []
|
||||
await getlist()
|
||||
}
|
||||
|
||||
|
||||
@ -659,8 +691,11 @@ defineExpose({
|
||||
|
||||
|
||||
<style scoped>
|
||||
.toolbar {
|
||||
margin-bottom: 12px;
|
||||
.pagination-container {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-top: 12px;
|
||||
}
|
||||
.pgClass {
|
||||
font-weight: bold;
|
||||
|
||||
@ -9,22 +9,24 @@
|
||||
label-placement="left"
|
||||
>
|
||||
<n-grid :cols="24" :x-gap="24">
|
||||
<!-- <n-form-item-gi :span="6" label="工序编码">
|
||||
<n-input v-model:value="searchForm.processId" placeholder="请输入工序编号" clearable />
|
||||
</n-form-item-gi> -->
|
||||
<n-form-item-gi :span="6" label="工序名称">
|
||||
<n-form-item-gi :span="4" label="派工编号">
|
||||
<n-input v-model:value="searchForm.assingCode" placeholder="请输入派工编号" clearable />
|
||||
</n-form-item-gi>
|
||||
<n-form-item-gi :span="4" label="物料编码">
|
||||
<n-input v-model:value="searchForm.materialCode" placeholder="请输入物料编码" clearable />
|
||||
</n-form-item-gi>
|
||||
<n-form-item-gi :span="4" label="物料名称">
|
||||
<n-input v-model:value="searchForm.materialName" placeholder="请输入物料名称" clearable />
|
||||
</n-form-item-gi>
|
||||
<n-form-item-gi :span="4" label="工序名称">
|
||||
<n-input v-model:value="searchForm.processName" placeholder="请输入工序名称" clearable />
|
||||
</n-form-item-gi>
|
||||
<n-form-item-gi :span="6">
|
||||
<n-form-item-gi :span="4">
|
||||
<n-space>
|
||||
<n-button type="primary" @click="search">
|
||||
<template #icon><n-icon><SearchOutline /></n-icon></template>
|
||||
搜索
|
||||
</n-button>
|
||||
<!-- <n-button type="primary" @click="search">
|
||||
<template #icon><n-icon><SearchOutline /></n-icon></template>
|
||||
我的派工
|
||||
</n-button> -->
|
||||
<n-button @click="reset">
|
||||
<template #icon><n-icon><RefreshOutline /></n-icon></template>
|
||||
重置
|
||||
@ -263,6 +265,9 @@ const searchForm = reactive({
|
||||
pageSize: 20,
|
||||
processId:'',
|
||||
processName:'',
|
||||
assingCode:'',
|
||||
materialCode:'',
|
||||
materialName:'',
|
||||
})
|
||||
|
||||
|
||||
@ -489,23 +494,31 @@ const columns = [
|
||||
|
||||
//搜索数据
|
||||
function search() {
|
||||
treeTableRef.value?.loadTableData({...searchForm})
|
||||
treeTableRef.value?.loadTableData({
|
||||
processName: searchForm.processName,
|
||||
assingCode: searchForm.assingCode,
|
||||
materialCode: searchForm.materialCode,
|
||||
materialName: searchForm.materialName,
|
||||
})
|
||||
}
|
||||
|
||||
//重置
|
||||
function reset() {
|
||||
searchForm.processId =''
|
||||
searchForm.processId = ''
|
||||
searchForm.processName = ''
|
||||
treeTableRef.value?.loadTableData({...searchForm})
|
||||
searchForm.assingCode = ''
|
||||
searchForm.materialCode = ''
|
||||
searchForm.materialName = ''
|
||||
treeTableRef.value?.loadTableData({})
|
||||
}
|
||||
|
||||
//获取列表数据
|
||||
function getlist() {
|
||||
searchForm.page = pagination.page
|
||||
searchForm.pageSize = pagination.pageSize
|
||||
mytasks(searchForm).then((rps:any) => {
|
||||
datalist.value = rps.records
|
||||
pagination.itemCount = rps.total
|
||||
treeTableRef.value?.loadTableData({
|
||||
processName: searchForm.processName,
|
||||
assingCode: searchForm.assingCode,
|
||||
materialCode: searchForm.materialCode,
|
||||
materialName: searchForm.materialName,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user