feat(mes): 重构安灯相关组件,优化导入路径,增加注释以提升可读性
parent
a0ac62e0fa
commit
b505744d0c
|
|
@ -0,0 +1,45 @@
|
|||
import request from '@/config/axios'
|
||||
|
||||
// MES 安灯配置 VO
|
||||
export interface ProAndonConfigVO {
|
||||
id: number // 编号
|
||||
reason: string // 呼叫原因
|
||||
level: number // 级别
|
||||
handlerRoleId: number // 处置人角色编号
|
||||
handlerUserId: number // 处置人编号
|
||||
handlerUserNickname: string // 处置人昵称
|
||||
remark: string // 备注
|
||||
}
|
||||
|
||||
// MES 安灯配置 API
|
||||
export const ProAndonConfigApi = {
|
||||
// 查询安灯配置分页
|
||||
getAndonConfigPage: async (params: any) => {
|
||||
return await request.get({ url: `/mes/pro/andon-config/page`, params })
|
||||
},
|
||||
|
||||
// 查询安灯配置列表
|
||||
getAndonConfigList: async () => {
|
||||
return await request.get({ url: `/mes/pro/andon-config/list` })
|
||||
},
|
||||
|
||||
// 查询安灯配置详情
|
||||
getAndonConfig: async (id: number) => {
|
||||
return await request.get({ url: `/mes/pro/andon-config/get?id=` + id })
|
||||
},
|
||||
|
||||
// 新增安灯配置
|
||||
createAndonConfig: async (data: ProAndonConfigVO) => {
|
||||
return await request.post({ url: `/mes/pro/andon-config/create`, data })
|
||||
},
|
||||
|
||||
// 修改安灯配置
|
||||
updateAndonConfig: async (data: ProAndonConfigVO) => {
|
||||
return await request.put({ url: `/mes/pro/andon-config/update`, data })
|
||||
},
|
||||
|
||||
// 删除安灯配置
|
||||
deleteAndonConfig: async (id: number) => {
|
||||
return await request.delete({ url: `/mes/pro/andon-config/delete?id=` + id })
|
||||
}
|
||||
}
|
||||
|
|
@ -1,18 +1,5 @@
|
|||
import request from '@/config/axios'
|
||||
|
||||
// TODO @AI:拆分成 andon/config/index.ts 和 andon/record/index.ts 两个文件
|
||||
|
||||
// MES 安灯配置 VO
|
||||
export interface ProAndonConfigVO {
|
||||
id: number // 编号
|
||||
reason: string // 呼叫原因
|
||||
level: number // 级别
|
||||
handlerRoleId: number // 处置人角色编号
|
||||
handlerUserId: number // 处置人编号
|
||||
handlerUserNickname: string // 处置人昵称
|
||||
remark: string // 备注
|
||||
}
|
||||
|
||||
// MES 安灯记录 VO
|
||||
export interface ProAndonRecordVO {
|
||||
id: number // 编号
|
||||
|
|
@ -35,39 +22,6 @@ export interface ProAndonRecordVO {
|
|||
createTime: Date // 发起时间
|
||||
}
|
||||
|
||||
// MES 安灯配置 API
|
||||
export const ProAndonConfigApi = {
|
||||
// 查询安灯配置分页
|
||||
getAndonConfigPage: async (params: any) => {
|
||||
return await request.get({ url: `/mes/pro/andon-config/page`, params })
|
||||
},
|
||||
|
||||
// 查询安灯配置列表
|
||||
getAndonConfigList: async () => {
|
||||
return await request.get({ url: `/mes/pro/andon-config/list` })
|
||||
},
|
||||
|
||||
// 查询安灯配置详情
|
||||
getAndonConfig: async (id: number) => {
|
||||
return await request.get({ url: `/mes/pro/andon-config/get?id=` + id })
|
||||
},
|
||||
|
||||
// 新增安灯配置
|
||||
createAndonConfig: async (data: ProAndonConfigVO) => {
|
||||
return await request.post({ url: `/mes/pro/andon-config/create`, data })
|
||||
},
|
||||
|
||||
// 修改安灯配置
|
||||
updateAndonConfig: async (data: ProAndonConfigVO) => {
|
||||
return await request.put({ url: `/mes/pro/andon-config/update`, data })
|
||||
},
|
||||
|
||||
// 删除安灯配置
|
||||
deleteAndonConfig: async (id: number) => {
|
||||
return await request.delete({ url: `/mes/pro/andon-config/delete?id=` + id })
|
||||
}
|
||||
}
|
||||
|
||||
// MES 安灯记录 API
|
||||
export const ProAndonRecordApi = {
|
||||
// 查询安灯记录分页
|
||||
|
|
@ -39,6 +39,7 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="处置人" align="center" width="150">
|
||||
<template #default="scope">
|
||||
<!-- TODO @AI:user-select -->
|
||||
<el-input
|
||||
v-if="scope.row.editing"
|
||||
v-model="scope.row.handlerUserId"
|
||||
|
|
@ -91,9 +92,11 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ProAndonConfigApi, ProAndonConfigVO } from '@/api/mes/pro/andon'
|
||||
import { ProAndonConfigApi, ProAndonConfigVO } from '@/api/mes/pro/andon/config'
|
||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
||||
|
||||
// TODO @AI:参考别的模块,增加下注释;
|
||||
|
||||
defineOptions({ name: 'AndonConfigDialog' })
|
||||
|
||||
const message = useMessage()
|
||||
|
|
@ -126,7 +129,7 @@ const handleAdd = () => {
|
|||
list.value.unshift({
|
||||
id: undefined,
|
||||
reason: '',
|
||||
level: 3,
|
||||
level: 3, // TODO @AI:使用枚举;
|
||||
handlerRoleId: undefined,
|
||||
handlerUserId: undefined,
|
||||
remark: '',
|
||||
|
|
@ -152,6 +155,7 @@ const handleSave = async (row: any) => {
|
|||
return
|
||||
}
|
||||
try {
|
||||
// TODO @AI:直接使用 row;后端自己会处理的;
|
||||
const data = {
|
||||
id: row.id,
|
||||
reason: row.reason,
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
<dict-tag :type="DICT_TYPE.MES_PRO_ANDON_LEVEL" :value="recordInfo.level" />
|
||||
</el-form-item>
|
||||
<!-- 可编辑字段 -->
|
||||
<!-- TODO @AI:unocss 简化 style -->
|
||||
<el-form-item label="处置时间" prop="handleTime">
|
||||
<el-date-picker
|
||||
v-model="formData.handleTime"
|
||||
|
|
@ -31,6 +32,7 @@
|
|||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- TODO @AI:可选,user-select;只是默认当前人; -->
|
||||
<el-form-item label="处置人" prop="handlerUserId">
|
||||
<el-input :model-value="handlerNickname" disabled placeholder="当前用户" />
|
||||
</el-form-item>
|
||||
|
|
@ -46,7 +48,7 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ProAndonRecordApi } from '@/api/mes/pro/andon'
|
||||
import { ProAndonRecordApi } from '@/api/mes/pro/andon/record'
|
||||
import { DICT_TYPE } from '@/utils/dict'
|
||||
import { useUserStoreWithOut } from '@/store/modules/user'
|
||||
import { formatDate } from '@/utils/formatTime'
|
||||
|
|
@ -70,6 +72,7 @@ const formRef = ref()
|
|||
const open = async (id: number) => {
|
||||
dialogVisible.value = true
|
||||
formLoading.value = true
|
||||
// TODO @AI:还是老样子,先 reset;参考别的;
|
||||
try {
|
||||
// 加载记录信息
|
||||
recordInfo.value = await ProAndonRecordApi.getAndonRecord(id)
|
||||
|
|
@ -77,6 +80,7 @@ const open = async (id: number) => {
|
|||
const userStore = useUserStoreWithOut()
|
||||
formData.value = {
|
||||
id: id,
|
||||
// TODO @AI:不需要 format;
|
||||
handleTime: formatDate(new Date(), 'YYYY-MM-DD HH:mm:ss'),
|
||||
handlerUserId: userStore.getUser?.id,
|
||||
remark: undefined
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
<!-- 安灯呼叫记录 新增/详情弹窗 -->
|
||||
<!-- TODO @芋艿:需要提供这样的新增么? -->
|
||||
<template>
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible" width="600px">
|
||||
<el-form
|
||||
|
|
@ -13,6 +14,7 @@
|
|||
<MdWorkstationSelect v-model="formData.workstationId" placeholder="请选择工作站" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发起人" prop="userId">
|
||||
<!-- TODO @AI:可以选择,只是默认当前用户;可以在 user-select 组件里,封装下; -->
|
||||
<el-input v-model="formData.userNickname" disabled placeholder="当前用户" />
|
||||
</el-form-item>
|
||||
<el-form-item label="生产工单" prop="workOrderId">
|
||||
|
|
@ -22,6 +24,8 @@
|
|||
<el-input v-model="formData.processId" placeholder="请输入工序编号(可选)" type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item label="呼叫原因" prop="reason">
|
||||
<!-- TODO @AI:unocss 简化 style -->
|
||||
<!-- TODO @AI:是不是做成 select 组件;另外,后端的 reason 存储,是不是增加存储 id? -->
|
||||
<el-select
|
||||
v-model="selectedConfigId"
|
||||
placeholder="请选择呼叫原因"
|
||||
|
|
@ -38,6 +42,7 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="级别" prop="level">
|
||||
<!-- TODO @AI:字典展示不出来; -->
|
||||
<dict-tag :type="DICT_TYPE.MES_PRO_ANDON_LEVEL" :value="formData.level" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
|
|
@ -64,11 +69,14 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ProAndonRecordApi, ProAndonConfigApi, ProAndonConfigVO } from '@/api/mes/pro/andon'
|
||||
import { ProAndonRecordApi } from '@/api/mes/pro/andon/record'
|
||||
import { ProAndonConfigApi, ProAndonConfigVO } from '@/api/mes/pro/andon/config'
|
||||
import { DICT_TYPE } from '@/utils/dict'
|
||||
import MdWorkstationSelect from '@/views/mes/md/workstation/components/MdWorkstationSelect.vue'
|
||||
import { useUserStoreWithOut } from '@/store/modules/user'
|
||||
|
||||
// TODO @AI:注释缺少,参考别的 Form.vue
|
||||
|
||||
defineOptions({ name: 'AndonRecordForm' })
|
||||
|
||||
const { t } = useI18n()
|
||||
|
|
@ -86,7 +94,7 @@ const formRules = reactive({
|
|||
})
|
||||
const formRef = ref()
|
||||
const configList = ref<ProAndonConfigVO[]>([])
|
||||
const selectedConfigId = ref<number>()
|
||||
const selectedConfigId = ref<number>() // TODO @AI:应该是在 formData 里的;
|
||||
|
||||
/** 打开弹窗 */
|
||||
const open = async (type: string, id?: number) => {
|
||||
|
|
@ -107,6 +115,7 @@ const open = async (type: string, id?: number) => {
|
|||
try {
|
||||
formData.value = await ProAndonRecordApi.getAndonRecord(id!)
|
||||
// 回显选中的配置
|
||||
// TODO @AI:后端拼接;
|
||||
const config = configList.value.find((c) => c.reason === formData.value.reason)
|
||||
if (config) {
|
||||
selectedConfigId.value = config.id
|
||||
|
|
|
|||
|
|
@ -16,28 +16,13 @@
|
|||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="级别" prop="level">
|
||||
<el-select
|
||||
v-model="queryParams.level"
|
||||
placeholder="请选择级别"
|
||||
clearable
|
||||
class="!w-240px"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.MES_PRO_ANDON_LEVEL)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="status">
|
||||
<el-select
|
||||
v-model="queryParams.status"
|
||||
placeholder="请选择状态"
|
||||
clearable
|
||||
class="!w-240px"
|
||||
>
|
||||
<!-- TODO @AI:发起人 select -->
|
||||
<!-- TODO @AI:生产工单 select -->
|
||||
<!-- TODO @AI:工序 select -->
|
||||
<!-- TODO @AI:工序名称 select -->
|
||||
<!-- TODO @AI:处置人 select -->
|
||||
<el-form-item label="处理状态" prop="status">
|
||||
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable class="!w-240px">
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.MES_PRO_ANDON_STATUS)"
|
||||
:key="dict.value"
|
||||
|
|
@ -94,6 +79,8 @@
|
|||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
||||
<el-table-column label="工作站编码" align="center" prop="workstationCode" width="120" />
|
||||
<el-table-column label="工作站名称" align="center" prop="workstationName" min-width="120" />
|
||||
<!-- TODO @AI:工单编码 -->
|
||||
<!-- TODO @AI:工序 -->
|
||||
<el-table-column label="发起人" align="center" prop="userNickname" width="100" />
|
||||
<el-table-column
|
||||
label="发起时间"
|
||||
|
|
@ -102,6 +89,13 @@
|
|||
:formatter="dateFormatter"
|
||||
width="180"
|
||||
/>
|
||||
<!-- TODO @AI:发起时间 -->
|
||||
<!-- TODO @AI:呼叫原因 -->
|
||||
<!-- TODO @AI:级别 -->
|
||||
<!-- TODO @AI:处理时间 -->
|
||||
<!-- TODO @AI:处理人 -->
|
||||
<!-- TODO @AI:处置状态 -->
|
||||
<!-- TODO @AI:操作 -->
|
||||
<el-table-column label="工单编码" align="center" prop="workOrderCode" width="140" />
|
||||
<el-table-column label="工序名称" align="center" prop="processName" width="120" />
|
||||
<el-table-column label="呼叫原因" align="center" prop="reason" min-width="150" />
|
||||
|
|
@ -173,10 +167,10 @@
|
|||
<script setup lang="ts">
|
||||
import { dateFormatter } from '@/utils/formatTime'
|
||||
import download from '@/utils/download'
|
||||
import { ProAndonRecordApi, ProAndonRecordVO } from '@/api/mes/pro/andon'
|
||||
import { ProAndonRecordApi, ProAndonRecordVO } from '@/api/mes/pro/andon/record'
|
||||
import AndonRecordForm from './AndonRecordForm.vue'
|
||||
import AndonHandleForm from './AndonHandleForm.vue'
|
||||
import AndonConfigDialog from './AndonConfigDialog.vue'
|
||||
import AndonConfigDialog from '../config/AndonConfigForm.vue'
|
||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
||||
import { MesProAndonStatusEnum } from '@/views/mes/utils/constants'
|
||||
import MdWorkstationSelect from '@/views/mes/md/workstation/components/MdWorkstationSelect.vue'
|
||||
|
|
|
|||
Loading…
Reference in New Issue