Browse Source

2026-07-20

异常规则配置
master
fengyuan_yang 1 week ago
parent
commit
c980435cf2
  1. 3
      src/api/schedule/todoCenter.js
  2. 10
      src/views/main-sidebar-hover.vue
  3. 6
      src/views/main-sidebar-sub-menu.vue
  4. 2
      src/views/main-sidebar.vue
  5. 115
      src/views/modules/todo/todoCenter.vue

3
src/api/schedule/todoCenter.js

@ -8,3 +8,6 @@ export const searchTodoCenterList = data => createAPI('schedule/searchTodoCenter
// 功能代办中心:查询创建分卷缓存详情 // 功能代办中心:查询创建分卷缓存详情
export const getTodoCacheDetail = data => createAPI('schedule/shiftChange/getUnprocessedData', 'POST', data) export const getTodoCacheDetail = data => createAPI('schedule/shiftChange/getUnprocessedData', 'POST', data)
// 功能代办中心:审核代办消息
export const auditTodoMessage = data => createAPI('schedule/auditTodoMessage', 'POST', data)

10
src/views/main-sidebar-hover.vue

@ -271,7 +271,7 @@ export default {
} }
getTodoCenterStats(query).then(({ data }) => { getTodoCenterStats(query).then(({ data }) => {
if (data && data.code === 200 && data.resultMap) { if (data && data.code === 200 && data.resultMap) {
this.todoPendingCount = Number(data.resultMap.lockPendingCount || 0)
this.todoPendingCount = Number(data.resultMap.unauditedCount || 0)
} }
}).catch(() => { }).catch(() => {
this.todoPendingCount = 0 this.todoPendingCount = 0
@ -726,17 +726,17 @@ export default {
} }
.hover-todo-badge { .hover-todo-badge {
width: calc(100% - 36px);
width: calc(100% - 26px);
} }
.hover-todo-badge /deep/ .el-badge__content.is-fixed { .hover-todo-badge /deep/ .el-badge__content.is-fixed {
top: 11px;
right: -14px;
top: 8px;
right: 92px;
} }
.hover-todo-badge-icon /deep/ .el-badge__content.is-fixed { .hover-todo-badge-icon /deep/ .el-badge__content.is-fixed {
top: 7px; top: 7px;
right: 0;
right: 4px;
} }
.hover-submenu { .hover-submenu {

6
src/views/main-sidebar-sub-menu.vue

@ -84,9 +84,13 @@
<style scoped> <style scoped>
.todo-menu-badge { .todo-menu-badge {
vertical-align: middle; vertical-align: middle;
display: inline-block;
padding-right: 14px;
} }
.todo-menu-badge /deep/ .el-badge__content {
.todo-menu-badge /deep/ .el-badge__content.is-fixed {
top: 10px; top: 10px;
right: 2px;
transform: translateY(-50%) translateX(45%);
} }
</style> </style>

2
src/views/main-sidebar.vue

@ -148,7 +148,7 @@ export default {
} }
getTodoCenterStats(query).then(({data}) => { getTodoCenterStats(query).then(({data}) => {
if (data && data.code === 200 && data.resultMap) { if (data && data.code === 200 && data.resultMap) {
this.todoPendingCount = Number(data.resultMap.lockPendingCount || 0)
this.todoPendingCount = Number(data.resultMap.unauditedCount || 0)
} }
}).catch(() => { }).catch(() => {
this.todoPendingCount = 0 this.todoPendingCount = 0

115
src/views/modules/todo/todoCenter.vue

@ -8,13 +8,13 @@
<el-option <el-option
v-for="item in buList" v-for="item in buList"
:key="item.buNo" :key="item.buNo"
:label="(item.sitename || item.site || '') + '-' + (item.buDesc || item.buNo || '')"
:label="item.buDesc || item.buNo"
:value="item.buNo"> :value="item.buNo">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否强制"> <el-form-item label="是否强制">
<el-select v-model="searchData.forceType" clearable placeholder="全部" style="width: 140px">
<el-select v-model="searchData.forceType" clearable placeholder="全部" style="width: 100px">
<el-option <el-option
v-for="item in forceTypeOptions" v-for="item in forceTypeOptions"
:key="item.value" :key="item.value"
@ -24,7 +24,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="代办状态"> <el-form-item label="代办状态">
<el-select v-model="searchData.todoStatus" clearable placeholder="全部" style="width: 140px">
<el-select v-model="searchData.todoStatus" clearable placeholder="全部" style="width: 100px">
<el-option <el-option
v-for="item in todoStatusOptions" v-for="item in todoStatusOptions"
:key="item.value" :key="item.value"
@ -34,7 +34,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="责任部门"> <el-form-item label="责任部门">
<el-select v-model="searchData.responsibilityDept" clearable filterable placeholder="全部" style="width: 160px">
<el-select v-model="searchData.responsibilityDept" clearable filterable placeholder="全部" style="width: 140px">
<el-option <el-option
v-for="item in roleList" v-for="item in roleList"
:key="item.roleId" :key="item.roleId"
@ -48,7 +48,7 @@
v-model="searchData.keyword" v-model="searchData.keyword"
clearable clearable
placeholder="信息编码/派工单号/订单号" placeholder="信息编码/派工单号/订单号"
style="width: 260px">
style="width: 200px">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label=" "> <el-form-item label=" ">
@ -123,13 +123,23 @@
<div class="todo-footer"> <div class="todo-footer">
<span class="todo-time">{{ formatDateTime(item.createdTime) }}</span> <span class="todo-time">{{ formatDateTime(item.createdTime) }}</span>
<el-button
size="mini"
type="primary"
plain
@click="showDetail(item)">
详情
</el-button>
<div class="todo-action-group">
<el-button
size="mini"
type="warning"
plain
:disabled="item.auditFlag === 'Y'"
@click="openTodoAuditModal(item)">
审核
</el-button>
<el-button
size="mini"
type="primary"
plain
@click="showDetail(item)">
详情
</el-button>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -282,14 +292,24 @@
<el-button type="primary" @click="detailDialogVisible = false">关闭</el-button> <el-button type="primary" @click="detailDialogVisible = false">关闭</el-button>
</span> </span>
</el-dialog> </el-dialog>
<ComMrbRegister
ref="comMrbRegister"
:visible.sync="showMrbRegisterFlag"
@confirmed="onTodoMrbConfirmed">
</ComMrbRegister>
</div> </div>
</template> </template>
<script> <script>
import { getSiteAndBuByUserName, getUserRoleList } from '@/api/qc/qc'
import { getTodoCenterStats, searchTodoCenterList, getTodoCacheDetail } from '@/api/schedule/todoCenter'
import { getSiteAndBuByUserName2, getUserRoleList } from '@/api/qc/qc'
import { getTodoCenterStats, searchTodoCenterList, getTodoCacheDetail, auditTodoMessage } from '@/api/schedule/todoCenter'
import ComMrbRegister from '../yieldReport/com_mrb_register'
export default { export default {
components: {
ComMrbRegister
},
data () { data () {
return { return {
dataListLoading: false, dataListLoading: false,
@ -333,7 +353,9 @@ export default {
rowCount: 0, rowCount: 0,
rollCount: 0 rollCount: 0
}, },
detailRowList: []
detailRowList: [],
showMrbRegisterFlag: false,
currentAuditTodo: null
} }
}, },
created () { created () {
@ -345,7 +367,7 @@ export default {
methods: { methods: {
loadBuList () { loadBuList () {
const params = { username: this.$store.state.user.name } const params = { username: this.$store.state.user.name }
getSiteAndBuByUserName(params).then(({ data }) => {
getSiteAndBuByUserName2(params).then(({ data }) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.buList = data.rows || [] this.buList = data.rows || []
} else { } else {
@ -508,11 +530,65 @@ export default {
} }
}) })
}, },
openTodoAuditModal (row) {
if (!row) {
return
}
if (row.auditFlag === 'Y') {
this.$message.info('该代办已审核')
return
}
const itemNo = this.toInt(row.itemNo)
if (itemNo === null) {
this.$message.warning('未找到工序信息,无法发起审核')
return
}
this.currentAuditTodo = row
const scheduleData = {
site: row.site || this.searchData.site || this.$store.state.user.site,
orderNo: row.orderNo,
itemNo: itemNo,
seqNo: row.seqNo
}
this.showMrbRegisterFlag = false
this.$nextTick(() => {
this.showMrbRegisterFlag = true
this.$nextTick(() => {
if (this.$refs.comMrbRegister && typeof this.$refs.comMrbRegister.init === 'function') {
this.$refs.comMrbRegister.init(scheduleData)
}
})
})
},
onTodoMrbConfirmed () {
if (!this.currentAuditTodo) {
return
}
const todo = this.currentAuditTodo
const params = {
site: todo.site || this.searchData.site || this.$store.state.user.site,
buNo: todo.buNo,
infoCode: todo.infoCode
}
auditTodoMessage(params).then(({ data }) => {
if (data && data.code === 200) {
this.$message.success('代办审核成功')
this.getTodoStats()
this.getDataList()
} else {
this.$message.error((data && data.msg) || '代办审核失败')
}
}).catch(() => {
this.$message.error('代办审核失败')
}).finally(() => {
this.currentAuditTodo = null
})
},
showDetail (row) { showDetail (row) {
if (!row) { if (!row) {
return return
} }
this.detailDialogTitle = `创建分卷缓存详情 - ${row.infoCode || ''}`
this.detailDialogTitle = `创建分卷详情 - ${row.infoCode || ''}`
this.detailDialogVisible = true this.detailDialogVisible = true
this.detailDialogLoading = true this.detailDialogLoading = true
this.resetDetailData() this.resetDetailData()
@ -764,6 +840,11 @@ export default {
align-items: center; align-items: center;
} }
.todo-action-group {
display: inline-flex;
gap: 6px;
}
.todo-time { .todo-time {
font-size: 12px; font-size: 12px;
color: #909399; color: #909399;

Loading…
Cancel
Save