|
|
@@ -4,17 +4,20 @@
|
|
|
<el-radio-button label="craftInfo">工艺信息</el-radio-button>
|
|
|
<el-radio-button label="deviceList">设备列表</el-radio-button>
|
|
|
<el-radio-button label="Loto">锁定站</el-radio-button>
|
|
|
- <el-radio-button label="sopList">SOP列表</el-radio-button>
|
|
|
+ <!-- <el-radio-button label="sopList">SOP列表</el-radio-button>-->
|
|
|
</el-radio-group>
|
|
|
|
|
|
<!-- 工艺信息 -->
|
|
|
<div v-if="tabPosition === 'craftInfo'">
|
|
|
<TinyMCE
|
|
|
- v-model:value="formData.content"
|
|
|
+ v-model:value="formData.remark"
|
|
|
:height="700"
|
|
|
placeholder="请输入内容..."
|
|
|
@update:value="handleContentChange"
|
|
|
/>
|
|
|
+ <el-button type="primary" @click="handleSave" :loading="loading">
|
|
|
+ {{ loading ? '保存中...' : '保存内容' }}
|
|
|
+ </el-button>
|
|
|
</div>
|
|
|
|
|
|
<!-- 设备列表 -->
|
|
|
@@ -102,63 +105,68 @@
|
|
|
<!-- SOP列表 -->
|
|
|
<div v-if="tabPosition === 'sopList'">
|
|
|
<ContentWrap>
|
|
|
- <el-button v-hasPermi="['iscs:machinery:create']" type="primary" plain @click="handleAddSop">
|
|
|
- <Icon icon="ep:plus" />
|
|
|
- 新增
|
|
|
- </el-button>
|
|
|
-
|
|
|
- <el-button
|
|
|
- v-hasPermi="['iscs:machinery:delete']"
|
|
|
- type="danger"
|
|
|
- plain
|
|
|
- :disabled="multiple"
|
|
|
- @click="handleSopDelete"
|
|
|
- >
|
|
|
- <Icon icon="ep:delete" />
|
|
|
- 批量删除
|
|
|
- </el-button>
|
|
|
+ <el-button
|
|
|
+ v-hasPermi="['iscs:machinery:create']"
|
|
|
+ type="primary"
|
|
|
+ plain
|
|
|
+ @click="handleAddSop"
|
|
|
+ >
|
|
|
+ <Icon icon="ep:plus" />
|
|
|
+ 新增
|
|
|
+ </el-button>
|
|
|
+
|
|
|
+ <el-button
|
|
|
+ v-hasPermi="['iscs:machinery:delete']"
|
|
|
+ type="danger"
|
|
|
+ plain
|
|
|
+ :disabled="multiple"
|
|
|
+ @click="handleSopDelete"
|
|
|
+ >
|
|
|
+ <Icon icon="ep:delete" />
|
|
|
+ 批量删除
|
|
|
+ </el-button>
|
|
|
</ContentWrap>
|
|
|
<ContentWrap>
|
|
|
- <el-table
|
|
|
- v-loading="loading"
|
|
|
- :data="sopList"
|
|
|
- row-key="sopId"
|
|
|
- @selection-change="handleSopSelectionChange"
|
|
|
- >
|
|
|
- <el-table-column type="selection" width="55" align="center" />
|
|
|
- <el-table-column prop="sopName" label="SOP名称" />
|
|
|
- <el-table-column prop="machineryName" label="工作内容" />
|
|
|
- <el-table-column label="操作" align="center" width="200">
|
|
|
- <template #default="{ row }">
|
|
|
- <el-button
|
|
|
- v-hasPermi="['iscs:machinery:edit']"
|
|
|
- type="primary"
|
|
|
- link
|
|
|
- @click="handleSopUpdate(row)"
|
|
|
- >
|
|
|
- <Icon icon="ep:edit" />
|
|
|
- 编辑
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- v-hasPermi="['iscs:machinery:remove']"
|
|
|
- type="danger"
|
|
|
- link
|
|
|
- @click="handleSopDelete(row)"
|
|
|
- >
|
|
|
- <Icon icon="ep:delete" />
|
|
|
- 删除
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
-
|
|
|
- <pagination
|
|
|
- v-if="sopTotal > 0"
|
|
|
- v-model:total="sopTotal"
|
|
|
- v-model:page="queryParams.pageNo"
|
|
|
- v-model:limit="queryParams.pageSize"
|
|
|
- @pagination="getSopList"
|
|
|
- />
|
|
|
+ <el-table
|
|
|
+ v-loading="loading"
|
|
|
+ :data="sopList"
|
|
|
+ row-key="sopId"
|
|
|
+ @selection-change="handleSopSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column type="selection" width="55" align="center" />
|
|
|
+ <el-table-column prop="sopName" label="SOP名称" />
|
|
|
+ <el-table-column prop="machineryName" label="工作内容" />
|
|
|
+ <el-table-column label="操作" align="center" width="200">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-button
|
|
|
+ v-hasPermi="['iscs:machinery:edit']"
|
|
|
+ type="primary"
|
|
|
+ link
|
|
|
+ @click="handleSopUpdate(row)"
|
|
|
+ >
|
|
|
+ <Icon icon="ep:edit" />
|
|
|
+ 编辑
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ v-hasPermi="['iscs:machinery:remove']"
|
|
|
+ type="danger"
|
|
|
+ link
|
|
|
+ @click="handleSopDelete(row)"
|
|
|
+ >
|
|
|
+ <Icon icon="ep:delete" />
|
|
|
+ 删除
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ <pagination
|
|
|
+ v-if="sopTotal > 0"
|
|
|
+ v-model:total="sopTotal"
|
|
|
+ v-model:page="queryParams.pageNo"
|
|
|
+ v-model:limit="queryParams.pageSize"
|
|
|
+ @pagination="getSopList"
|
|
|
+ />
|
|
|
</ContentWrap>
|
|
|
</div>
|
|
|
|
|
|
@@ -283,13 +291,12 @@ import { useI18n } from 'vue-i18n'
|
|
|
import { useMessage } from '@/hooks/web/useMessage'
|
|
|
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
|
|
import * as TechnologyApi from '@/api/dv/technology'
|
|
|
-import * as MardDeptApi from "@/api/system/marsdept/index"
|
|
|
+import * as MardDeptApi from '@/api/system/marsdept/index'
|
|
|
import * as LotoApi from '@/api/dv/lotoStation'
|
|
|
import * as SopApi from '@/api/sop/index'
|
|
|
|
|
|
import MapData from './MapData.vue'
|
|
|
import TinyMCE from '@/components/TinyMCE/index.vue'
|
|
|
-import {getSopPage} from "@/api/sop/index";
|
|
|
|
|
|
defineOptions({ name: 'TechnologyDetail' })
|
|
|
|
|
|
@@ -323,7 +330,7 @@ const dialogTitle = ref('')
|
|
|
const formLoading = ref(false)
|
|
|
const formRef = ref()
|
|
|
const formData = ref({
|
|
|
- machineryId: undefined,
|
|
|
+ id: undefined,
|
|
|
parentId: undefined,
|
|
|
machineryName: '',
|
|
|
machineryCode: '',
|
|
|
@@ -331,10 +338,37 @@ const formData = ref({
|
|
|
lotoId: undefined,
|
|
|
machineryImg: undefined,
|
|
|
machineryType: '设备',
|
|
|
- content: undefined
|
|
|
+ remark: undefined
|
|
|
})
|
|
|
-const handleContentChange = (content: string) => {
|
|
|
+// 保存设备信息数据
|
|
|
+const handleSave = async () => {
|
|
|
+ if (!formData.value.remark.trim()) {
|
|
|
+ return ElMessage.warning('请输入内容')
|
|
|
+ }
|
|
|
+ const data = await TechnologyApi.getTechnologyInfo(route.query.machineryId)
|
|
|
+ formData.value.id = data.id
|
|
|
+ formData.value.parentId = data.parentId
|
|
|
+ formData.value.machineryName = data.machineryName
|
|
|
+ formData.value.machineryCode = data.machineryCode
|
|
|
+ formData.value.workstationId = data.workstationId
|
|
|
+ formData.value.lotoId = data.lotoId
|
|
|
+ formData.value.machineryImg = data.machineryImg
|
|
|
+ formData.value.machineryType = data.machineryType
|
|
|
+ loading.value = true
|
|
|
+
|
|
|
+ try {
|
|
|
+ await TechnologyApi.updateTechnology(formData.value)
|
|
|
+ ElMessage.success('保存成功')
|
|
|
+ } catch (error) {
|
|
|
+ ElMessage.error('保存失败')
|
|
|
+ console.error('API错误:', error)
|
|
|
+ } finally {
|
|
|
+ loading.value = false
|
|
|
+ }
|
|
|
+}
|
|
|
+const handleContentChange = async (content: string) => {
|
|
|
console.log('内容变化:', content)
|
|
|
+ formData.value.remark = content
|
|
|
}
|
|
|
|
|
|
// 表单校验规则
|
|
|
@@ -383,6 +417,8 @@ const getList = async () => {
|
|
|
machineryType: '设备'
|
|
|
}
|
|
|
const res = await TechnologyApi.listTechnology(data)
|
|
|
+ const dataById = await TechnologyApi.getTechnologyInfo(route.query.machineryId)
|
|
|
+ formData.value = dataById
|
|
|
deviceList.value = res.list
|
|
|
total.value = res.total
|
|
|
} finally {
|
|
|
@@ -408,17 +444,15 @@ const getSopList = async () => {
|
|
|
|
|
|
/** 获取选项数据 */
|
|
|
const getOptions = async () => {
|
|
|
-
|
|
|
-
|
|
|
// 获取设备工艺树
|
|
|
- const techRes = await TechnologyApi.listTechnology({ pageNo:1,pageSize: -1 })
|
|
|
+ const techRes = await TechnologyApi.listTechnology({ pageNo: 1, pageSize: -1 })
|
|
|
machineryOptions.value = techRes.list
|
|
|
// 获取岗位树
|
|
|
- const marsRes = await MardDeptApi.listMarsDept({ pageNo:1,pageSize: -1 })
|
|
|
+ const marsRes = await MardDeptApi.listMarsDept({ pageNo: 1, pageSize: -1 })
|
|
|
workstationOptions.value = marsRes.list
|
|
|
|
|
|
// 获取电柜列表
|
|
|
- const lotoRes = await LotoApi.listLoto({ pageNo:1,pageSize: -1 })
|
|
|
+ const lotoRes = await LotoApi.listLoto({ pageNo: 1, pageSize: -1 })
|
|
|
lotoOptions.value = lotoRes.list.map((item) => ({
|
|
|
value: item.id,
|
|
|
label: item.lotoName
|
|
|
@@ -431,20 +465,20 @@ const open = async (type: string, id?: number) => {
|
|
|
dialogTitle.value = t('action.' + type)
|
|
|
|
|
|
resetForm()
|
|
|
-
|
|
|
- console.log(formData.value,'formData')
|
|
|
if (id) {
|
|
|
formLoading.value = true
|
|
|
try {
|
|
|
- formData.value = await TechnologyApi.getTechnologyInfo(id)
|
|
|
+ const data = await TechnologyApi.getTechnologyInfo(id)
|
|
|
+ console.log(data, 'data')
|
|
|
+ formData.value = data
|
|
|
} finally {
|
|
|
formLoading.value = false
|
|
|
}
|
|
|
- }else{
|
|
|
- const detail= await TechnologyApi.getTechnologyInfo(route.query.machineryId)
|
|
|
- formData.value.lotoId=detail.lotoId
|
|
|
- formData.value.workstationId=detail.workstationId
|
|
|
- formData.value.parentId=route.query.machineryId
|
|
|
+ } else {
|
|
|
+ const detail = await TechnologyApi.getTechnologyInfo(route.query.machineryId)
|
|
|
+ formData.value.lotoId = detail.lotoId
|
|
|
+ formData.value.workstationId = detail.workstationId
|
|
|
+ formData.value.parentId = route.query.machineryId
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -456,7 +490,7 @@ const openSop = async (type: string, id?: number) => {
|
|
|
if (id) {
|
|
|
formLoading.value = true
|
|
|
try {
|
|
|
- // sopFormData.value = await SopApi.selectIsMarsSopById(id)
|
|
|
+ sopFormData.value = await SopApi.selectSopById(id)
|
|
|
} finally {
|
|
|
formLoading.value = false
|
|
|
}
|
|
|
@@ -475,7 +509,7 @@ const handleAddSop = () => {
|
|
|
|
|
|
/** 修改设备 */
|
|
|
const handleUpdate = (row: any) => {
|
|
|
- open('update', row.machineryId)
|
|
|
+ open('update', row.id)
|
|
|
}
|
|
|
|
|
|
/** 修改SOP */
|
|
|
@@ -513,7 +547,7 @@ const submitForm = async () => {
|
|
|
formLoading.value = true
|
|
|
try {
|
|
|
const data = formData.value
|
|
|
- if (data.machineryId) {
|
|
|
+ if (data.id) {
|
|
|
await TechnologyApi.updateTechnology(data)
|
|
|
message.success(t('common.updateSuccess'))
|
|
|
} else {
|
|
|
@@ -559,8 +593,6 @@ const submitSopForm = async () => {
|
|
|
// }
|
|
|
// }
|
|
|
|
|
|
-
|
|
|
-
|
|
|
/** 重置设备表单 */
|
|
|
const resetForm = () => {
|
|
|
formData.value = {
|