add:解包工单审核

This commit is contained in:
2026-06-30 09:11:11 +08:00
parent 77ee64ed08
commit aa1dda4fa2
24 changed files with 528 additions and 105 deletions

View File

@@ -8,6 +8,7 @@ const getters = {
visitedViews: state => state.tagsView.visitedViews,
cachedViews: state => state.tagsView.cachedViews,
roles: state => state.user.roles,
roleNames: state => state.user.roleNames,
user: state => state.user.user,
loadMenus: state => state.user.loadMenus,
permission_routers: state => state.permission.routers,

View File

@@ -6,6 +6,7 @@ const user = {
token: getToken(),
user: {},
roles: [],
roleNames: [],
// 第一次加载菜单时用到
loadMenus: false
},
@@ -20,6 +21,9 @@ const user = {
SET_ROLES: (state, roles) => {
state.roles = roles
},
SET_ROLE_NAMES: (state, roleNames) => {
state.roleNames = roleNames
},
SET_LOAD_MENUS: (state, loadMenus) => {
state.loadMenus = loadMenus
}
@@ -78,6 +82,7 @@ const user = {
export const logOut = (commit) => {
commit('SET_TOKEN', '')
commit('SET_ROLES', [])
commit('SET_ROLE_NAMES', [])
removeToken()
}
@@ -90,6 +95,7 @@ export const setUserInfo = (res, commit) => {
} else {
commit('SET_ROLES', res.permissions)
}
commit('SET_ROLE_NAMES', res.roleNames || [])
commit('SET_USER', res.user)
}

View File

@@ -71,6 +71,18 @@
>
批量建单
</el-button>
<el-button
v-if="canViewAuditButton()"
slot="right"
class="filter-item"
type="warning"
icon="el-icon-check"
size="mini"
:disabled="!canAudit(crud.selections)"
@click="audit(crud.selections[0])"
>
审核
</el-button>
<el-button
slot="right"
class="filter-item"
@@ -407,16 +419,6 @@
label="计划结束时间"
:min-width="flexWidth('planproduceend_date',crud.data,'计划结束时间')"
/>
<el-table-column
prop="realproducestart_date"
label="实际开始时间"
:min-width="flexWidth('realproducestart_date',crud.data,'实际开始时间')"
/>
<el-table-column
prop="realproduceend_date"
label="实际结束时间"
:min-width="flexWidth('realproduceend_date',crud.data,'实际结束时间')"
/>
<!-- <el-table-column-->
<!-- prop="standing_time"-->
<!-- label="静置时间(分钟)"-->
@@ -436,7 +438,23 @@
<!-- {{ scope.row.is_urgent ? '是' : '否' }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column prop="audit_name" label="审核人" :min-width="flexWidth('audit_name',crud.data,'审核人')" />
<el-table-column
prop="audit_time"
label="审核时间"
:min-width="flexWidth('audit_time',crud.data,'审核时间')"
/>
<el-table-column prop="operator" label="开工人" :min-width="flexWidth('operator',crud.data,'创建人')" />
<el-table-column
prop="realproducestart_date"
label="实际开始时间"
:min-width="flexWidth('realproducestart_date',crud.data,'实际开始时间')"
/>
<el-table-column
prop="realproduceend_date"
label="实际结束时间"
:min-width="flexWidth('realproduceend_date',crud.data,'实际结束时间')"
/>
<el-table-column prop="create_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'创建人')" />
<el-table-column
prop="create_time"
@@ -601,13 +619,24 @@ export default {
},
methods: {
canEditOrDelete(row) {
return String(row.workorder_status) === '1'
return ['1', '2'].includes(String(row.workorder_status))
},
canStart(selections) {
return Array.isArray(selections) &&
selections.length === 1 &&
String(selections[0].workorder_status) === '2'
},
canAudit(selections) {
return Array.isArray(selections) &&
selections.length === 1 &&
String(selections[0].workorder_status) === '1'
},
canViewAuditButton() {
const roleNames = this.$store.getters.roleNames || []
return roleNames.includes('管理员') ||
roleNames.includes('仓库管理员') ||
roleNames.includes('超级管理员')
},
canLoadComplete(selections) {
return Array.isArray(selections) &&
selections.length === 1 &&
@@ -622,7 +651,7 @@ export default {
},
beforeCrudToEdit(crud, form) {
if (!this.canEditOrDelete(form)) {
this.$message.warning('仅工单状态为1时允许修改')
this.$message.warning('仅工单状态为1或2时允许修改')
return false
}
return true
@@ -631,7 +660,7 @@ export default {
const rows = Array.isArray(data) ? data : [data]
const canDelete = rows.every(row => this.canEditOrDelete(row))
if (!canDelete) {
this.$message.warning('仅工单状态为1时允许删除')
this.$message.warning('仅工单状态为1或2时允许删除')
return false
}
return true
@@ -733,10 +762,25 @@ export default {
}
this.crud.toQuery()
},
audit(row) {
if (String(row.workorder_status) !== '1') {
this.$message.warning('仅工单状态为1时允许审核')
return
}
this.fullscreenLoading = true
crudPdmBdWorkorder.audit(row).then(res => {
this.crud.notify('审核成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
}).catch(() => {
this.fullscreenLoading = false
}).finally(() => {
this.fullscreenLoading = false
})
},
// 下发
submits(row) {
if (String(row.workorder_status) !== '1') {
this.$message.warning('仅工单状态为1时允许开工')
if (String(row.workorder_status) !== '2') {
this.$message.warning('仅工单状态为2时允许开工')
return
}
this.fullscreenLoading = true

View File

@@ -32,6 +32,14 @@ export function submits(param) {
})
}
export function audit(param) {
return request({
url: 'api/pdmBdWorkorder/audit',
method: 'post',
data: param
})
}
export function loadComplete(param) {
return request({
url: 'api/pdmBdWorkorder/loadComplete',
@@ -76,4 +84,4 @@ export function batchAddOrders(data) {
})
}
export default { add, edit, del, submits, loadComplete, forceFinish, orderSynchronize, queryMaterials, getCuster, batchAddOrders }
export default { add, edit, del, submits, audit, loadComplete, forceFinish, orderSynchronize, queryMaterials, getCuster, batchAddOrders }