diff --git a/src/api/supervision-boot/database/index.ts b/src/api/supervision-boot/database/index.ts index d6332095..7caebb75 100644 --- a/src/api/supervision-boot/database/index.ts +++ b/src/api/supervision-boot/database/index.ts @@ -25,7 +25,7 @@ export const deleteyById = (data: any) => { return createAxios({ url: '/supervision-boot/libalgorithm/deleteyById', method: 'GET', - params:data + params: data }) } /** @@ -55,7 +55,7 @@ export const libcaseBeleteyById = (data: any) => { return createAxios({ url: '/supervision-boot/libcase/deleteyById', method: 'GET', - params:data + params: data }) } /** @@ -68,3 +68,72 @@ export const updateCaseLibrary = (data: any) => { data }) } +/** + * 标准库查询 + */ +export const queryAll = () => { + return createAxios({ + url: '/supervision-boot/libstandard/queryAll', + method: 'GET' + }) +} +/** + * 标准库删除 + */ +export const deleteyLibstandard = (data: any) => { + return createAxios({ + url: '/supervision-boot/libstandard/deleteyById', + method: 'GET', + params: data + }) +} +/** + * 标准库新增 + */ +export const libstandardAdd = (data: any) => { + return createAxios({ + url: '/supervision-boot/libstandard/add', + method: 'POST', + data + }) +} +/** + * 标准库更新 + */ +export const updateStandardLibrary = (data: any) => { + return createAxios({ + url: '/supervision-boot/libstandard/updateStandardLibrary', + method: 'POST', + data + }) +} +/** + * 模版更新 + */ +export const updateTemplate = (data: any) => { + return createAxios({ + url: '/supervision-boot/libtemplate/updateTemplate', + method: 'POST', + data + }) +} +/** + * 新增模版 + */ +export const libtemplateAdd = (data: any) => { + return createAxios({ + url: '/supervision-boot/libtemplate/add', + method: 'POST', + data + }) +} +/** + * 新增删除 + */ +export const libtemplateDel = (data: any) => { + return createAxios({ + url: '/supervision-boot/libtemplate/deleteyById', + method: 'GET', + params: data + }) +} diff --git a/src/components/tree/pqs/algorithmTree.vue b/src/components/tree/pqs/algorithmTree.vue index 681ebb8f..0cf2bdca 100644 --- a/src/components/tree/pqs/algorithmTree.vue +++ b/src/components/tree/pqs/algorithmTree.vue @@ -85,3 +85,4 @@ defineExpose({ loadData }) border: 1px solid var(--el-border-color); } + \ No newline at end of file diff --git a/src/components/tree/pqs/standardTree.vue b/src/components/tree/pqs/standardTree.vue index 2cb237a9..fe7bd282 100644 --- a/src/components/tree/pqs/standardTree.vue +++ b/src/components/tree/pqs/standardTree.vue @@ -1,7 +1,15 @@ - + @@ -13,11 +21,11 @@ import { useAdminInfo } from '@/stores/adminInfo' import { useDictData } from '@/stores/dictData' import { getTerminalTreeForFive } from '@/api/device-boot/terminalTree' import { useConfig } from '@/stores/config' - +import { queryAll } from '@/api/supervision-boot/database/index' defineOptions({ name: 'pms/pointTree' }) -const emit = defineEmits(['init']) +const emit = defineEmits(['init', 'onAddTree']) const attrs = useAttrs() const adminInfo = useAdminInfo() const dictData = useDictData() @@ -26,48 +34,45 @@ const classificationData = dictData.getBasicData('Statistical_Type', ['Report_Ty const tree = ref() const treeRef = ref() -const loadData = () => { +const loadData = (id?: any) => { + console.log('🚀 ~ loadData ~ id:', id) let nodeKey = '' - let res = { - data: [ - { - name: '运行管理', - id: '1', - children: [ - { - name: '运行指标', - id: '2' - }, - { - name: '数据质量核查', - id: '3' - } - ] - } - ] - } - // getTerminalTreeForFive(form).then(res => { - res.data.forEach((item: any) => { - item.icon = 'el-icon-FolderOpened' - item.color = config.getColorVal('elementUiPrimary') - item.children.forEach((item2: any) => { - item2.icon = 'el-icon-Document' + queryAll().then(res => { + res.data.forEach((item: any) => { + item.icon = 'el-icon-FolderOpened' item.color = config.getColorVal('elementUiPrimary') + item.children.forEach((item2: any) => { + item2.icon = 'el-icon-Document' + item2.color = config.getColorVal('elementUiPrimary') + item2.childrens = item2.children + item2.children = [] + if (item2.id == id) { + emit('init', item2) + } + }) }) + + nodeKey = res.data[0].children[0]?.id? res.data[0].children[0].id: res.data[0].id + + tree.value = res.data + if (id) { + setTimeout(() => { + treeRef.value.treeRef.setCurrentKey(id) + }, 10) + } else { + setTimeout(() => { + treeRef.value.treeRef.setCurrentKey(nodeKey) + emit('init', res.data[0].children[0]) + }, 10) + } }) +} - nodeKey = res.data[0].children[0].id - emit('init', res.data[0].children[0]) - - tree.value = res.data - if (nodeKey) { - setTimeout(() => { - treeRef.value.treeRef.setCurrentKey(nodeKey) - }, 10) - } - // }) +const onAddTree = () => { + emit('onAddTree') } loadData() +defineExpose({ loadData }) diff --git a/src/views/pqs/database/standard/index.vue b/src/views/pqs/database/standard/index.vue index 7e1fd624..63c89416 100644 --- a/src/views/pqs/database/standard/index.vue +++ b/src/views/pqs/database/standard/index.vue @@ -1,10 +1,11 @@ + - 新增 - 修改 - 删除 + 新增 + 修改 + 删除 + + + + + + + - + + + - diff --git a/src/views/pqs/database/stencil/components/form.vue b/src/views/pqs/database/stencil/components/form.vue index 1f6a4832..a520b7ae 100644 --- a/src/views/pqs/database/stencil/components/form.vue +++ b/src/views/pqs/database/stencil/components/form.vue @@ -1,55 +1,14 @@ - + - - - - - - - - - + + + - - - - - - - - - - - - - - - Click to upload - - jpg/png files with a size less than 500KB. - + + + 上传 @@ -66,35 +25,46 @@ import { ref, inject } from 'vue' import { reactive } from 'vue' import { ElMessage } from 'element-plus' -import TableStore from '@/utils/tableStore' // 若不是列表页面弹框可删除 - +import { libtemplateAdd, updateTemplate } from '@/api/supervision-boot/database/index' +import { uploadFile, getFileNameAndFilePath } from '@/api/system-boot/file' const dialogVisible = ref(false) const title = ref('') -const tableStore = inject('tableStore') as TableStore +const emit = defineEmits([ 'onSubmit']) const formRef = ref() -const fileList = ref([]) // 注意不要和表单ref的命名冲突 const form = reactive({ - code: '', name: '', - remark: '', - id: '' + url: '' }) -const rules = { - name: [{ required: true, message: '角色名称不能为空', trigger: 'blur' }], - code: [{ required: true, message: '角色编码不能为空', trigger: 'blur' }] +const urlList: any = ref([]) +const defaultProps = { + children: 'children', + label: 'name', + value: 'id' } - -const handleExceed = (files: any, uploadFiles: any) => {} - +const rules = { + name: [{ required: true, message: '角色名称不能为空', trigger: 'blur' }] +} +const dataTree: any = ref([]) const open = (text: string, data?: anyObj) => { title.value = text + urlList.value = [] dialogVisible.value = true if (data) { // 表单赋值 for (let key in form) { form[key] = data[key] } + form.id = data.id + + if (data.url?.length > 0) { + getFileNameAndFilePath({ filePath: data.url }).then(res => { + urlList.value.push({ + name: res.data.fileName, + url: res.data.name + }) + }) + } } else { // 在此处恢复默认表单 for (let key in form) { @@ -102,20 +72,70 @@ const open = (text: string, data?: anyObj) => { } } } + const submit = () => { formRef.value.validate(async (valid: boolean) => { if (valid) { - if (form.id) { - // await update(form) + if (urlList.value.length > 0) { + const promises = urlList.value.map(async (item: any) => { + if (urlList.value[0].raw) { + return new Promise((resolve, reject) => { + uploadFile(item.raw, '/supervision/') + .then((res: any) => { + resolve(res.data.name) + }) + .catch(reject) + }) + } else { + return item.url + } + }) + + try { + const fileNames = await Promise.all(promises) + form.url = fileNames.join(',') + '' + } catch (error) { + console.error('上传文件出错', error) + return + } } else { - // await create(form) + form.url = '' } - ElMessage.success('保存成功') - tableStore.index() - dialogVisible.value = false + + setTimeout(() => { + if (title.value == '新增模版') { + libtemplateAdd({ + name: form.name, + url: form.url + }).then(res => { + ElMessage.success('新增成功') + handleClose() + dialogVisible.value = false + }) + } else { + updateTemplate({ + name: form.name, + url: form.url, + id: form.id + }).then(res => { + ElMessage.success('修改成功') + handleClose() + dialogVisible.value = false + }) + } + }, 100) } }) } - +const handleClose = () => { + urlList.value = [] + emit('onSubmit') + dialogVisible.value = false +} defineExpose({ open }) + diff --git a/src/views/pqs/database/stencil/index.vue b/src/views/pqs/database/stencil/index.vue index d187e524..a75ad611 100644 --- a/src/views/pqs/database/stencil/index.vue +++ b/src/views/pqs/database/stencil/index.vue @@ -8,7 +8,7 @@ - +