指标种类管理代码

main
zhangxiaodi1 10 months ago
parent 6742875503
commit 542a11dbdc

@ -0,0 +1,50 @@
import request from '@/config/axios';
import type { TableData } from './types';
/** 获取表格数据 */
export const getIndexCategoryListApi = (data: any) => {
return request.postJson({ url: '/dataset/spi/dataset/IndexCategory/IndexCategoryQueryPage', data });
};
/** 批量删除 */
export const delIndexCategoryListApi = (list: string[] | number[]): Promise<IResponse> => {
const _list = list.map(v => {
return {
id: v,
};
});
return request.postJson({
url: '/dataset/spi/dataset/IndexCategory/IndexCategoryBatchDelete',
data: {
list: _list,
},
});
};
/** 删除 */
export const delIndexCategoryApi = (id?: string | number): Promise<IResponse> => {
return request.postJson({ url: '/dataset/spi/dataset/IndexCategory/IndexCategoryDelete', data: { id } });
};
/** 查询单条数据 */
export const queryIndexCategoryApi = (id?: string | number): Promise<IResponse> => {
return request.postJson({ url: '/dataset/spi/dataset/IndexCategory/IndexCategoryQueryOne', data: { id } });
}
/** 菜单树,增加默认排序 */
export const getIndexCategoryTreeApi = async () => {
const res = await request.post({
url: '/dataset/spi/dataset/IndexCategory/IndexCategoryTree',
});
if (res?.body?.menutree?.length > 0) {
const data = res.body.menutree
return data.sort((a:AppCustomRouteRecordRaw, b:AppCustomRouteRecordRaw) => {
return a?.props?.sort && b?.props?.sort ? a.props.sort - b.props.sort : 0
});
}
return [];
};

@ -0,0 +1,20 @@
import {integer} from "vue-types";
export type TableData = {
/** 主键 */
dicid?: string
/** 分类名称 */
dicname?: string
/** 分类值 */
dicvalue?: string
/** 上级菜单 */
parentName?: string
/** 分类描述 */
description?: string
/** 分类状态 */
status?: string
/** 分类类型 */
dictype?: string
parentid?: string
}

@ -1,12 +1,12 @@
<script setup lang="tsx">
import { onMounted, reactive, ref, unref } from 'vue'
import {
getSysMenuListApi,
saveSysMenuApi,
delSysMenuListApi,
delSysMenuApi,
querySysMenuApi
} from '@/api/system/SysMenu'
getIndexCategoryListApi,
delIndexCategoryListApi,
delIndexCategoryApi,
queryIndexCategoryApi,
getIndexCategoryTreeApi
} from '@/api/dataset/IndexCategory'
import { TableData } from '@/api/role/types'
import { useTable } from '@/hooks/web/useTable'
import { useI18n } from '@/hooks/web/useI18n'
@ -27,11 +27,7 @@ import { ContentWrap } from '@/components/ContentWrap'
import Write from './components/Write.vue'
import Detail from './components/Detail.vue'
import { Dialog } from '@/components/Dialog'
import { getMenuTreeApi } from '@/api/common'
defineOptions({
name: 'SysMenu'
})
const { t } = useI18n()
@ -40,7 +36,7 @@ const ids = ref<string[]>([])
const { tableRegister, tableState, tableMethods } = useTable({
fetchDataApi: async () => {
const { currentPage, pageSize } = tableState
const res = await getSysMenuListApi({
const res = await getIndexCategoryListApi({
pageNum: unref(currentPage),
pageSize: unref(pageSize),
...unref(searchParams)
@ -51,7 +47,7 @@ const { tableRegister, tableState, tableMethods } = useTable({
}
},
fetchDelApi: async () => {
const res = await delSysMenuListApi(unref(ids))
const res = await delIndexCategoryListApi(unref(ids))
return !!res
}
})
@ -65,27 +61,27 @@ const tableColumns = reactive<TableColumn[]>([
type: 'selection'
},
{
field: 'name',
field: 'dicid',
label: '分类编号'
},
{
field: 'parentId',
field: 'dicname',
label: '分类名称'
},
{
field: 'systemCode',
field: 'dicvalue',
label: '分类值'
},
{
field: 'sort',
field: 'parentName',
label: '上级分类'
},
{
field: 'sort',
field: 'description',
label: '分类描述'
},
{
field: 'sort',
field: 'status',
label: '分类状态'
},
{
@ -124,7 +120,7 @@ const tableColumns = reactive<TableColumn[]>([
const searchSchema = reactive<FormSchema[]>([
{
field: 'name',
field: 'dicname',
label: '指标名称',
component: 'Input'
}
@ -149,7 +145,7 @@ const action = async (row: any, type: string) => {
let detailLoading = ElLoading.service({
background: 'rgba(0, 0, 0, 0.7)'
})
const res = await querySysMenuApi(row.id)
const res = await queryIndexCategoryApi(row.dicid)
.catch(() => {})
.finally(() => {
detailLoading.close()
@ -168,36 +164,17 @@ const AddAction = (e: MouseEvent, node?: TableData) => {
e.preventDefault()
e.stopPropagation()
dialogTitle.value = t('tableDemo.add')
currentRow.value = node ? { parentId: node.id, type: '1' } : undefined
currentRow.value = node ? { parentid: node.id, type: '1' } : undefined
dialogVisible.value = true
actionType.value = ''
}
const saveLoading = ref(false)
/** 保存 **/
const save = async () => {
const write = unref(writeRef)
const formData = await write?.submit()
if (formData) {
saveLoading.value = true
const res = await saveSysMenuApi(formData)
.catch(() => {})
.finally(() => {
saveLoading.value = false
})
if (res) {
dialogVisible.value = false
currentPage.value = 1
getList()
getMenuTreeApi().then((res) => (treeData.value = res))
}
}
}
/** 单行删除 */
const delData = async (row: TableData) => {
const res = await delSysMenuApi(row.id)
const res = await delIndexCategoryApi(row.dicid)
if (res) {
const { code, errMsg } = res.head
if (code === '0') {
@ -218,10 +195,23 @@ const onSelectionChange = (selection: TableData[]) => {
const treeData = ref<any>([])
onMounted(() => {
getMenuTreeApi().then((res) => (treeData.value = res))
getIndexCategoryTreeApi().then((res) => (treeData.value = res))
})
const defaultProps = { children: 'childs', label: 'nodeName' }
const queryOntInfo = (node,data)=>{
console.log(node,data)
setSearchParams({dicid:data.props.dicid});
/*queryIndexCategoryApi(data.props.dicid).then(res=>{
console.log(res,"查询的信息");
dataList = [];
if(res.body.result){
dataList.push(res.body.result);
}
})*/
}
</script>
<template>
@ -233,7 +223,7 @@ const defaultProps = { children: 'childs', label: 'nodeName' }
><ElTree :data="treeData" :props="defaultProps" nodeKey="id">
<template #default="{ node, data }">
<span class="r-tree-title">
<span class="r-plain-tree-title">{{ node.label }}</span>
<span class="r-plain-tree-title" @click="queryOntInfo(node,data)">{{ node.label }}</span>
<span>
<ElLink :underline="false" @click="(e) => AddAction(e, data)">
<Icon icon="ep:circle-plus" :size="14" />

@ -1,33 +1,34 @@
<script setup lang="tsx">
import { PropType, ref } from 'vue'
import { TableData } from '@/api/reporting/RepDataProblem/RepDataProblem/types'
import { TableData } from '@/api/dataset/IndexCategory/types'
import { Descriptions, DescriptionsSchema } from '@/components/Descriptions'
import { TYPE_DICT_LIST, COMMON_DICT_LIST, STATUS_DICT_LIST } from '../constants'
const detailSchema = ref<DescriptionsSchema[]>([
{
field: 'dataDate',
label: '数据日期'
},
{
field: 'createTime',
label: '生成时间'
},
{
field: 'tId',
label: '模板表id'
},
{
field: 'tName',
label: '报告名称'
},
{
field: 'tCategory',
label: '报告分类'
},
{
field: 'organCode',
label: '所属机构'
}
field: 'dicid',
label: '分类编号'
},
{
field: 'dicname',
label: '分类名称'
},
{
field: 'dicvalue',
label: '分类值'
},
{
field: 'parentName',
label: '上级分类'
},
{
field: 'description',
label: '分类描述'
},
{
field: 'status',
label: '分类状态'
}
])
defineProps({

@ -21,59 +21,30 @@ const { formRegister, formMethods } = useForm()
const { setValues, getFormData, getElFormExpose } = formMethods
const formSchema = reactive<FormSchema[]>([
{
field: 'pId',
label: '主键',
component: 'Input',
hidden: true
},{
field: 'dataDate',
label: '数据日期',
component: 'Input',
componentProps: {
},
},
{
field: 'createTime',
label: '生成时间',
component: 'DatePicker',
componentProps: {
type: 'daterange'
},
},
{
field: 'tId',
label: '模板表id',
component: 'Input',
componentProps: {
},
},
{
field: 'tName',
label: '报告名称',
component: 'Input',
componentProps: {
},
},
{
field: 'tCategory',
label: '报告分类',
component: 'Select',
componentProps: {
},
},
{
field: 'organCode',
label: '所属机构',
component: 'Select',
componentProps: {
},
}
{
field: 'dicid',
label: '分类编号'
},
{
field: 'dicname',
label: '分类名称'
},
{
field: 'dicvalue',
label: '分类值'
},
{
field: 'parentName',
label: '上级分类'
},
{
field: 'description',
label: '分类描述'
},
{
field: 'status',
label: '分类状态'
}
])
const rules = reactive({

Loading…
Cancel
Save