767937f2 by xukangle

Merge branch 'dev_20241202_xukangle' into develop

2 parents a27503f7 2d429e72
......@@ -13,6 +13,8 @@ VITE_APP_AUTH_URL = 'ms-daop-auth-service'
# 系统管理 接口地址
VITE_APP_API_BASEURL = ms-daop-zcgl-system-manager-service
# #配置服务
# VITE_APP_CONFIG_URL = 'ms-daop-configure-service'
# 文件上传请求地址
VITE_APP_ADD_FILE = ms-daop-import-data-service
......
......@@ -2,49 +2,49 @@ import request from "@/utils/request";
/** 获取资产目录列表 */
export const getAssetCatalog = (params= {}) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/dam-catalog-table/dam-list`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/dam-catalog-table/dam-list`,
method: 'get',
params
})
/** 获取成本项列表 */
export const getCostList = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/tableentry-index-classify/page-list`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/tableentry-index-classify/page-list`,
method: 'post',
data: params
})
/** 获取成本项详情 */
export const getCostDetail = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/tableentry-index-classify/detail`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/tableentry-index-classify/detail`,
method: 'get',
params
})
/** 新增成本项信息 */
export const costSave = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/tableentry-index-classify/save`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/tableentry-index-classify/save`,
method: 'post',
data: params
});
/** 更新成本项信息 */
export const costUpdate = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/tableentry-index-classify/update`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/tableentry-index-classify/update`,
method: 'post',
data: params
});
/** 删除成本项信息 */
export const costDelete = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/tableentry-index-classify/delete`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/tableentry-index-classify/delete`,
method: 'delete',
data: params
});
/** 发送入表咨询消息提醒 */
export const sendEntryMsg = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/tableentry-index-classify/send-message`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/tableentry-index-classify/send-message`,
method: 'post',
params
});
......
......@@ -6,7 +6,7 @@ import request from "@/utils/request";
/** 获取数据产品下拉列表 */
export const getProductList = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/dam-catalog-table/get-table-select`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/dam-catalog-table/get-table-select`,
method: 'get',
params
})
......@@ -20,7 +20,7 @@ export const getAddedProductList = (params) => request({
/** 获取数据产品上架列表。 */
export const getListingList = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/product-grounding/page-list`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/product-grounding/page-list`,
method: 'post',
data: params
})
......@@ -138,12 +138,17 @@ export const checkDemandName = (params) => request({
})
/** 获取参数类型列表 */
// export const getParamsDataList = (params) => request({
// url:`${import.meta.env.VITE_APP_API_BASEURL}/data-dict/get-data-list`,
// method: 'post',
// data: params
// })
export const getParamsDataList = (params) => request({
url:`${import.meta.env.VITE_APP_API_BASEURL}/data-dict/get-data-list`,
method: 'post',
data: params
url: `${import.meta.env.VITE_APP_CONFIG_URL}/dict/data/get-by-dictType?dictType=${params.dictType}`,
method: 'get',
})
/** 获取产品类型列表 */
export const getProductTypeList = () => request({
url:`${import.meta.env.VITE_APP_API_BASEURL}/data-dict/get-data-tree`,
......
......@@ -3,34 +3,34 @@ import request from "@/utils/request";
/** 入表管理 */
/** 获取资产入表信息 */
export const getEntryList = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/da-intable/page-list`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/da-intable/page-list`,
method: 'post',
data: params
})
/** 获取入表资产信息批量删除 */
export const deleteEntryAll = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/da-intable/delete?guid=${params}`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/da-intable/delete?guid=${params}`,
method: 'delete',
data: params
})
/** 获取资产入表信息新增 */
export const createEntry = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/da-intable/save`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/da-intable/save`,
method: 'post',
data: params
})
/** 获取资产入表信息修改 */
export const intableUpdate = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/da-intable/update`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/da-intable/update`,
method: 'post',
data: params
})
/** A类证书列表查询 */
export const getDocumentList = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/register-document/list-a-document`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/register-document/list-a-document`,
method: 'post',
data: params
})
......@@ -38,27 +38,27 @@ export const getDocumentList = (params) => request({
/** 资产融资管理 */
/** 获取资产融资信息列表 */
export const getFinancingList = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/da-financing/page-list`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/da-financing/page-list`,
method: 'post',
data: params
})
/** 资产融资批量删除 */
export const deleteFinancingAll = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/da-financing/delete?guid=${params}`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/da-financing/delete?guid=${params}`,
method: 'delete',
data: params
})
/** 资产融资信息新增 */
export const createFinancing = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/da-financing/save`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/da-financing/save`,
method: 'post',
data: params
})
/** 资产融资信息修改 */
export const financingUpdate = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/da-financing/update`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/da-financing/update`,
method: 'post',
data: params
})
......@@ -66,27 +66,27 @@ export const financingUpdate = (params) => request({
/** 资产交易管理 */
/** 获取资产交易信息列表 */
export const getTradeList = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/da-trade/page-list`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/da-trade/page-list`,
method: 'post',
data: params
})
/** 资产交易批量删除 */
export const deleteTradeAll = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/da-trade/delete?guid=${params}`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/da-trade/delete?guid=${params}`,
method: 'delete',
data: params
})
/** 资产交易信息新增 */
export const createTrade = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/da-trade/save`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/da-trade/save`,
method: 'post',
data: params
})
/** 资产融资信息修改 */
export const tradeUpdate = (params) => request({
url: `${import.meta.env.VITE_API_ASSET_BASEURL}/da-trade/update`,
url: `${import.meta.env.VITE_API_NEW_PORTAL}/da-trade/update`,
method: 'post',
data: params
})
......
......@@ -42,7 +42,7 @@ export const getUserInfo = () => {
}
// 获取区划数据
export const getAreaData = (params) => request({
url: `${import.meta.env.VITE_APP_API_BASEURL}/area/data/get-areas`,
url: `${import.meta.env.VITE_APP_CONFIG_URL}/area/data/get-areas`,
method: 'get',
params
})
......
import type { RouteRecordRaw } from 'vue-router'
function Layout() {
return import('@/layouts/index.vue')
}
const routes: RouteRecordRaw[] = [
{
path: '/data-asset-register/register-managemant',
component: Layout,
meta: {
title: '数据资产登记',
icon: 'sidebar-videos',
},
children: [
{
path: '',
name: 'registerManagemant',
component: () => import('@/views/data_asset/registerManagemant.vue'),
meta: {
title: '数据资产登记',
sidebar: false,
breadcrumb: false,
cache: true
},
},
{
path: 'register-start',
name: 'registerStart',
component: () => import('@/views/data_asset/registerStart.vue'),
meta: {
title: '新建资产登记',
sidebar: false,
breadcrumb: false,
cache: true,
editPage: true,
reuse: true
},
beforeEnter: (to, from) => {
if (to.query.type) {
to.meta.title = `详情-`;
return;
}
if (to.query.guid) {
to.meta.title = `编辑-`;
to.meta.editPage = true;
}
}
},
{
path: 'register-detail',
name: 'registerInfoDetail',
component: () => import('@/views/data_asset/registerDetail.vue'),
meta: {
title: '详情-',
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true
}
}
],
},
{
path: '/data-asset-register/quality-evaluate',
component: Layout,
meta: {
title: '数据资产质量评估',
icon: 'sidebar-videos',
},
children: [
{
path: '',
name: 'qualityEvaluate',
component: () => import('@/views/data_asset/qualityEvaluate.vue'),
meta: {
title: '数据资产质量评估',
sidebar: false,
breadcrumb: false,
cache: true
},
},
{
path: 'register-detail',
name: 'registerDetail',
component: () => import('@/views/data_asset/registerDetail.vue'),
meta: {
title: '详情-',
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true
}
}
],
},
{
path: '/data-asset-register/value-evaluate',
component: Layout,
meta: {
title: '数据资产价值评估',
icon: 'ep:grid',
},
children: [
{
path: '',
name: 'valueEvaluate',
component: () => import('@/views/data_asset/valueEvaluate.vue'),
meta: {
title: '数据资产价值评估',
sidebar: false,
breadcrumb: false,
cache: true
},
},
{
path: 'register-detail',
name: 'registerValueDetail',
component: () => import('@/views/data_asset/registerDetail.vue'),
meta: {
title: '详情-',
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true
}
}
],
},
{
path: '/data-asset-register/certificate-management',
component: Layout,
meta: {
title: '登记证件管理',
icon: 'ep:grid',
},
children: [
{
path: '',
name: 'certificateManagement',
component: () => import('@/views/data_asset/certificateManagement.vue'),
meta: {
title: '登记证件管理',
sidebar: false,
cache: true,
breadcrumb: false,
},
},
{
path: 'register-detail',
name: 'certificateDetail',
component: () => import('@/views/data_asset/registerDetail.vue'),
meta: {
title: '详情-',
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true
}
}
],
},
]
export default routes
import type { RouteRecordRaw } from 'vue-router'
function Layout() {
return import('@/layouts/index.vue')
}
const routes: RouteRecordRaw[] = [
{
path: '/data-security/security-menu',
component: Layout,
meta: {
title: '数据资产合规信息',
icon: 'sidebar-videos',
},
children: [
{
path: '',
name: 'securityMenu',
component: () => import('@/views/security_menu/index.vue'),
meta: {
title: '数据资产合规信息',
sidebar: false,
breadcrumb: false,
cache: true
},
},
],
},
]
export default routes
......@@ -6,6 +6,9 @@ import DataMeta from './modules/dataMeta';
import DataQuality from './modules/dataQuality';
import DataInventory from './modules/dataInventory';
import AssetIndex from './modules/assetIndex';
import DataAssetRegistry from './modules/dataAssetRegistry';
import DataEntry from './modules/dataEntry';
import SecurityMenu from './modules/securityMenu';
import type { Route } from '#/global'
import useSettingsStore from '@/store/modules/settings'
......@@ -111,7 +114,7 @@ const asyncRoutes: Route.recordMainRaw[] = [
},
{
meta: {
title: '数据资产管理',
title: '数据产品管理',
},
children: [
...DataAssess,
......@@ -119,6 +122,30 @@ const asyncRoutes: Route.recordMainRaw[] = [
},
{
meta: {
title: '数据资产登记',
},
children: [
...DataAssetRegistry,
],
},
{
meta: {
title: '数据资产入表',
},
children: [
...DataEntry,
],
},
{
meta: {
title: '法律风险意见',
},
children: [
...SecurityMenu,
],
},
{
meta: {
title: '元数据',
},
children: [
......
......@@ -232,11 +232,11 @@ const useUserStore = defineStore(
mark = 'data-inventory'
} else if (item.meta.title == '首页') {
mark = 'data-asset-index'
} else if (item.meta.title == '数据服务') {
mark = 'data-service'
} else if (item.meta.title == '数据资产登记') {
mark = 'data-asset-register'
} else if (item.meta.title == '首页') {
mark = 'data-asset-index'
} else if (item.meta.title == '数据资产管理') {
} else if (item.meta.title == '数据产品管理') {
mark = 'data-asset'
} else if (item.meta.title == '入表交易融资') {
mark = 'data-transaction'
......@@ -244,10 +244,10 @@ const useUserStore = defineStore(
mark = 'data-guide'
} else if (item.meta.title == '入表服务管理') {
mark = 'data-entry'
} else if (item.meta.title == '数据产品管理') {
mark = 'data-product'
} else if (item.meta.title == '合作伙伴管理') {
mark = 'data-partners'
} else if (item.meta.title == '数据资产入表') {
mark = 'data-entry'
} else if (item.meta.title == '法律风险意见') {
mark = 'data-security'
} else if (item.meta.title == '金融服务') {
mark = 'data-finance'
} else if (item.meta.title == '系统管理') {
......
......@@ -80,7 +80,9 @@ const handleFileDataChange = (fileFields, files, sheetName, data) => {
}
const getFieldTypeList = () => {
getDataTypeList().then((res: any) => {
getDataTypeList({
dictType: "字段类型"
}).then((res: any) => {
fieldTypes.value = [];
if (res.code == proxy.$passCode) {
fieldTypes.value = res.data || [];
......@@ -91,7 +93,9 @@ const getFieldTypeList = () => {
}
const getParamsListData = () => {
getParamsList().then((res: any) => {
getParamsList({
dictType: "业务归属"
}).then((res: any) => {
paramsList.value = [];
if (res.code == proxy.$passCode) {
paramsList.value = res.data || [];
......@@ -583,10 +587,10 @@ defineExpose({
<template #default="scope">
<el-select v-if="scope.row['isEdit'] && !tableCreateInfo.guid" v-model="scope.row['dataType']"
@change="(val) => dataTypeChange(val, scope)" placeholder="请选择">
<el-option v-for="opt in fieldTypes" :key="opt['paramValue']" :label="opt['paramName']"
:value="opt['paramValue']" />
<el-option v-for="opt in fieldTypes" :key="opt['value']" :label="opt['label']"
:value="opt['value']" />
</el-select>
<span v-else>{{ fieldTypes.find(f => f.paramValue === scope.row["dataType"])?.paramName || "--"
<span v-else>{{ fieldTypes.find(f => f.value === scope.row["dataType"])?.label || "--"
}}</span>
</template>
</el-table-column>
......@@ -611,11 +615,11 @@ defineExpose({
<template #default="scope">
<el-select v-if="scope.row['isEdit'] && !(tableCreateInfo.guid && scope.row['isPrimary'] == 'Y')"
v-model="scope.row['dictionaryCode']" placeholder="请选择" clearable filterable>
<el-option v-for="opt in paramsList" :key="opt['paramCode']" :label="opt['paramType']"
:value="opt['paramCode']" />
<el-option v-for="opt in paramsList" :key="opt['value']" :label="opt['label']"
:value="opt['value']" />
</el-select>
<span v-else>{{ scope.row['dictionaryCode'] ? (paramsList.find(p => p.paramCode ==
scope.row['dictionaryCode'])?.paramType || "--") : '--' }}</span>
<span v-else>{{ scope.row['dictionaryCode'] ? (paramsList.find(p => p.value ==
scope.row['dictionaryCode'])?.label || "--") : '--' }}</span>
</template>
</el-table-column>
<el-table-column prop="isPrimary" label="是否主键" width="130px" align="left" show-overflow-tooltip>
......
......@@ -51,7 +51,7 @@ const parentAreaData: any = ref([]);
const getArea = (node, resolve) => {
const { level } = node
let params = {
parentId: node.value
parentGuid: node.value
}
if (!node.value) {
if (getParentAreaPromise.value) {
......@@ -121,13 +121,22 @@ const baseInfoFormItems = ref([
default: '1',
options: damTypes.value,
props: {
value: 'paramValue',
label: 'paramName'
value: 'value',
label: 'label'
},
required: true,
visible: true
},
{
label: '权力主体',
type: 'input',
placeholder: '请输入',
field: 'rightMain',
maxlength: 20,
default: '',
required: true
},
{
label: '所属主题',
type: 'tree-select',
placeholder: '请选择',
......@@ -137,8 +146,8 @@ const baseInfoFormItems = ref([
checkStrictly: false,//只能选择叶子节点。
lazy: false,
props: {
label: "paramName",
value: "paramValue",
value: 'value',
label: 'label'
},
filterable: true,
clearable: true,
......@@ -204,11 +213,28 @@ const baseInfoFormItems = ref([
type: "radio-group",
placeholder: "",
field: "dataSources",
block: true,
block: false,
default: 1,
options: dataSourcesList,
required: true,
},
// 是否公共数据
{
label: '是否公共数据',
type: 'radio-group',
placeholder: '',
field: 'isPublicData',
block: false,
default: 'N',
options: [{
value: 'Y',
label: '是'
}, {
value: 'N',
label: '否'
}],
required: true,
},
{
label: '资源描述',
type: 'textarea',
......@@ -284,9 +310,11 @@ const assetDataTableInfo = ref({
{ label: "序号", type: "index", width: 56, align: "center" },
{ label: "表中文名称", field: "tableChName", width: 150, align: "left" },
{ label: "表英文名称", field: "tableName", width: 150, align: "left" },
{ label: "表数据总数(条)", field: "dataCount", width: 150, align: "right", getName: (scope) => {
{
label: "表数据总数(条)", field: "dataCount", width: 150, align: "right", getName: (scope) => {
return scope.row["dataCount"] == null ? '--' : changeNum(scope.row["dataCount"], 0)
} },
}
},
{ label: "描述", field: "description", width: 240 },
{ label: "修改人", field: "updateUserName", width: 140 },
{ label: "修改时间", field: "updateTime", width: 180 },
......@@ -530,20 +558,39 @@ onBeforeMount(() => {
}
});
}
getDamTypesList().then((res: any) => {
function replaceChildDictListKey(data) {
if (Array.isArray(data)) {
return data.map(item => replaceChildDictListKey(item));
} else if (data && typeof data === 'object') {
const { childDictList, ...rest } = data;
return {
...rest,
children: childDictList ? replaceChildDictListKey(childDictList) : undefined,
};
}
return data;
}
getDamTypesList({
dictType: "资产类型",
}).then((res: any) => {
if (res.code == proxy.$passCode) {
damTypes.value = res.data || [];
let item = baseInfoFormItems.value.find(item => item.field == 'damType');
item && (item.options = damTypes.value);
baseInfoFormItems.value[1].options = damTypes.value;
// let item = baseInfoFormItems.value.find(item => item.field == 'damType');
// item && (item.options = damTypes.value);
} else {
proxy.$ElMessage.error(res.msg);
}
})
getSubjectDoaminList().then((res: any) => {
getSubjectDoaminList({
dictType: "数据资产目录主题名称",
}).then((res: any) => {
if (res.code == proxy.$passCode) {
subjectDomainListData.value = res.data || [];
let item = baseInfoFormItems.value.find(item => item.field == 'subjectDomain');
item && (item.options = subjectDomainListData.value);
replaceChildDictListKey(subjectDomainListData.value);
baseInfoFormItems.value[3].options = replaceChildDictListKey(subjectDomainListData.value);
// let item = baseInfoFormItems.value.find(item => item.field == 'subjectDomain');
// item && (item.options = subjectDomainListData.value);
} else {
proxy.$ElMessage.error(res.msg);
}
......@@ -735,8 +782,8 @@ const handleImportSave = (val) => {
<div class="content_main">
<ContentWrap id="id-baseInfo" title="资源基本信息" description="" :isExpand="baseInfoExpand" :expand-swicth="true"
class="mb16" @expand="(v) => baseInfoExpand = v">
<Form ref="baseInfoFormRef" :itemList="baseInfoFormItems" formId="base-info-form" :rules="baseInfoFormRules" @selectChange="baseSelectChange"
@checkboxChange="handleBaseInfoCheckboxChange" col="col3" />
<Form ref="baseInfoFormRef" :itemList="baseInfoFormItems" formId="base-info-form" :rules="baseInfoFormRules"
@selectChange="baseSelectChange" @checkboxChange="handleBaseInfoCheckboxChange" col="col3" />
</ContentWrap>
<ContentWrap id="id-tableInfo" title="资源表" description="" :expand-swicth="true" :isExpand="assetTableInfoExpand"
@expand="(v) => assetTableInfoExpand = v">
......
......@@ -46,8 +46,8 @@ const searchItemList = ref([
filterable: true,
options: damTypes.value,
props: {
value: 'paramValue',
label: 'paramName'
value: 'value',
label: 'label'
}
},
{
......@@ -55,7 +55,7 @@ const searchItemList = ref([
type: 'tree-select',
placeholder: '所属主题',
field: 'subjectDomain',
nodeKey: 'paramValue',
nodeKey: 'value',
options: subjectDomainListData.value,
//showAllLevels: false,
checkStrictly: false,//只能选择叶子节点。
......@@ -64,14 +64,30 @@ const searchItemList = ref([
collapseTagsTooltip: true,
collapseTags: true,
props: {
label: "paramName",
value: "paramValue",
label: "label",
value: "value",
},
filterable: true,
clearable: true,
default: [],
showCheckbox: true
},
{
type: "input",
label: "",
field: "damName",
default: "",
placeholder: "来源",
clearable: true,
},
{
type: "input",
label: "",
field: "damName",
default: "",
placeholder: "登记状态",
clearable: true,
},
]);
const pageInfo = ref({
......@@ -201,25 +217,44 @@ onActivated(() => {
});
onBeforeMount(() => {
getDamTypesList().then((res: any) => {
getDamTypesList({
dictType: "资产类型",
}).then((res: any) => {
if (res.code == proxy.$passCode) {
damTypes.value = res.data || [];
let item = searchItemList.value.find(item => item.field == 'damType');
item && (item.options = damTypes.value);
searchItemList.value[1].options = damTypes.value;
// let item = searchItemList.value.find(item => item.field == 'damType');
// item && (item.options = damTypes.value);
} else {
proxy.$ElMessage.error(res.msg);
}
})
getSubjectDoaminList().then((res: any) => {
getSubjectDoaminList({
dictType: "数据资产目录主题名称",
}).then((res: any) => {
if (res.code == proxy.$passCode) {
subjectDomainListData.value = res.data || [];
let item = searchItemList.value.find(item => item.field == 'subjectDomain');
item && (item.options = subjectDomainListData.value);
replaceChildDictListKey(subjectDomainListData.value);
searchItemList.value[2].options = replaceChildDictListKey(subjectDomainListData.value);
// let item = searchItemList.value.find(item => item.field == 'subjectDomain');
// item && (item.options = subjectDomainListData.value);
} else {
proxy.$ElMessage.error(res.msg);
}
})
});
function replaceChildDictListKey(data) {
if (Array.isArray(data)) {
return data.map(item => replaceChildDictListKey(item));
} else if (data && typeof data === 'object') {
const { childDictList, ...rest } = data;
return {
...rest,
children: childDictList ? replaceChildDictListKey(childDictList) : undefined,
};
}
return data;
}
const handleCreate = () => {
router.push({
......
......@@ -15,6 +15,7 @@ import { TableColumnWidth } from '@/utils/enum';
import TableTools from "@/components/Tools/table_tools.vue";
import Table from "@/components/Table/index.vue";
import Dialog from "@/components/Dialog/index.vue";
import { getDamTypesList } from "@/api/modules/dataAsset";
const { proxy } = getCurrentInstance() as any;
const router = useRouter();
......@@ -37,8 +38,8 @@ const searchItemList: any = ref([
field: "damType",
default: "",
props: {
value: 'paramValue',
label: 'paramName'
value: 'value',
label: 'label'
},
placeholder: "产品类型",
options: damTypes.value,
......@@ -97,14 +98,14 @@ const tableInfo = ref({
width: 140,
btns: (scope) => {
let row = scope.row, btnArr: any = [];
if(row.approveState == 'Y'){
if(row.listingStatus == 'Y'){
if (row.approveState == 'Y') {
if (row.listingStatus == 'Y') {
btnArr.splice(0, 0, { label: "详情", value: "detail" });
} else {
btnArr.splice(0, 0, { label: "编辑", value: "edit" }, { label: "详情", value: "detail" }, { label: "删除", value: "delete" });
}
} else {
if(row.approveState == 'A'){
if (row.approveState == 'A') {
btnArr.splice(0, 0, { label: "详情", value: "detail" });
} else {
btnArr.splice(0, 0, { label: "编辑", value: "edit" }, { label: "详情", value: "detail" }, { label: "删除", value: "delete" });
......@@ -207,7 +208,7 @@ const tableBtnClick = (scope, btn) => {
};
const toPatn = (type) => {
if(type == 'add'){
if (type == 'add') {
router.push({
name: "productListingDetail",
query: {
......@@ -274,11 +275,23 @@ onActivated(() => {
})
onBeforeMount(() => {
getParamsDataList({ paramCode: 'DAM-TYPE' }).then((res: any) => {
// getParamsDataList({ paramCode: 'DAM-TYPE' }).then((res: any) => {
// if (res.code == proxy.$passCode) {
// damTypes.value = res.data || [];
// let item = searchItemList.value.find(item => item.field == 'damType');
// item && (item.options = damTypes.value);
// } else {
// proxy.$ElMessage.error(res.msg);
// }
// })
getDamTypesList({
dictType: "资产类型",
}).then((res: any) => {
if (res.code == proxy.$passCode) {
damTypes.value = res.data || [];
let item = searchItemList.value.find(item => item.field == 'damType');
item && (item.options = damTypes.value);
searchItemList.value[1].options = damTypes.value;
// let item = searchItemList.value.find(item => item.field == 'damType');
// item && (item.options = damTypes.value);
} else {
proxy.$ElMessage.error(res.msg);
}
......@@ -296,7 +309,8 @@ onBeforeMount(() => {
</div>
</div>
<div class="table_panel_wrap">
<Table :tableInfo="tableInfo" @tableBtnClick="tableBtnClick" @tablePageChange="tablePageChange" @tableSwitchBeforeChange="tableSwitchBeforeChange" />
<Table :tableInfo="tableInfo" @tableBtnClick="tableBtnClick" @tablePageChange="tablePageChange"
@tableSwitchBeforeChange="tableSwitchBeforeChange" />
</div>
</div>
</template>
......
<route lang="yaml">
name: securityMenu //标签管理
</route>
<script lang="ts" setup name="securityMenu">
import TableTools from '@/components/Tools/table_tools.vue';
const { proxy } = getCurrentInstance() as any;
const dialogLabelFormRef = ref();
onBeforeMount(async () => {
});
// 右侧表格配置
const tableDataList = ref([]);
// 删除标签guids
const deleteLabelGuids = ref<any>([]);
// 保存编辑的guid
const editLabelRow = ref<any>('');
const page = ref({
limit: 50,
curr: 1,
sizes: [
{ label: "10", value: 10 },
{ label: "50", value: 50 },
{ label: "100", value: 100 },
{ label: "150", value: 150 },
{ label: "200", value: 200 },
],
});
const tableInfo = ref({
id: "role-manage-table",
multiple: true,
fixedSelection: true,
fields: [
{ label: "序号", type: "index", width: 56, align: "center" },
{ label: "数据产品编号", field: "label", type: 'text_btn', class: 'drawer-detail-cell', width: 160, value: 'detail', columClass: 'text_btn' },
{
label: "数据产品名称", field: "classifyNames", width: 200,
},
{ label: "数据类型", field: "gradeDetailName", width: 100 },
{
label: '权力主体', field: 'bizState', type: 'switch', activeText: '启用', inactiveText: '停用', activeValue: 'Y', inactiveValue: 'N', switchWidth: 56, width: 100, align: 'center'
},
{ label: "是否公共数据", field: "updateUserName", width: 120 },
{ label: "状态", field: "updateTime", width: 160 },
],
data: tableDataList.value,
page: {
type: "normal",
rows: 0,
...page.value,
},
actionInfo: {
label: "操作",
type: "btn",
width: 120,
fixed: 'right',
btns: [
{
label: "编辑", value: "edit", click: async (scope) => {
console.log('编辑', scope);
}
},
{
label: "删除 ", value: "delete", click: (scope) => {
console.log('删除', scope);
}
},
]
},
loading: false
});
/**弹窗配置 */
const newCreateGradeFormItems = ref<any>([{
label: '标签名',
type: 'input',
placeholder: '请选择',
field: 'label',
default: '',
required: true,
filterable: true,
clearable: true,
visible: true,
block: true,
},
{
label: '分类',
type: 'tree-select',
placeholder: '请选择',
field: 'classifyDetailGuid',
default: '',
options: [],
props: {
label: "classifyName",
value: "guid",
},
required: true,
checkStricty: true,
lazy: false,
filterable: true,
clearable: true,
visible: true,
block: true,
},
{
label: '分级',
type: 'select',
maxlength: 19,
placeholder: '请输入',
field: 'gradeDetailGuid',
default: '',
options: [],
props: {
label: 'name',
value: 'guid',
},
clearable: true,
required: true,
block: true,
},
// {
// label: ' ',
// type: 'label',
// default: '规则配置',
// block: true,
// col: 'title-label'
// },
// {
// label: '精确匹配',
// type: 'textarea',
// maxlength: 200,
// placeholder: '请输入字段中文,中间用英文“,”分号隔开',
// field: 'matchChValue',
// default: '',
// clearable: true,
// required: false,
// },
// {
// label: '',
// type: 'textarea',
// maxlength: 200,
// placeholder: '请输入字段中文,中间用英文“,”分号隔开',
// field: 'matchEnValue',
// default: '',
// clearable: true,
// required: false,
// }
]);
const newCreateGradeFormRules = ref({
label: [
{ required: true, message: '请输入标签名', trigger: 'change' }
],
detailGuid: [
{ required: true, message: '请选择分类', trigger: 'change' }
],
gradeDetailGuid: [
{ required: true, message: '请选择分级', trigger: 'change' }
],
});
const newCreateGradeStandardDialogInfo = ref({
visible: false,
size: 600,
title: "添加标签",
type: "",
formInfo: {
id: "grade-form",
items: newCreateGradeFormItems.value,
rules: newCreateGradeFormRules.value,
},
submitBtnLoading: false,
btns: {
cancel: () => {
newCreateGradeStandardDialogInfo.value.visible = false;
newCreateGradeStandardDialogInfo.value.submitBtnLoading = false;
},
submit: async (btn, info) => {
}
}
})
const classSearchItemList = ref<any>([
{
type: 'select',
multiple: true,
label: '',
field: 'labelName',
default: [],
options: [],
placeholder: '请选择标签名称',
clearable: true,
filterable: true,
visible: true
},
// 状态,可以编辑。
{
type: 'select',
multiple: true,
label: '',
field: 'state',
default: [],
options: [],
placeholder: '状态',
clearable: true,
filterable: true,
visible: true
}
]);
const guids = ref<any>([])
const selectChange = async (val: any, row: any) => {
console.log('selectChange', val, row);
if (val) {
guids.value = val;
}
};
/** 搜索查询分类标准 */
const refCount = ref(0);
const searchClass = async (val: any, clear: boolean = false) => {
console.log('searchClass', val, clear);
if (clear) {
classSearchItemList.value.map(item => item.default = '')
guids.value = []
return;
}
if (val?.labelName?.length !== 0 || refCount.value >= 1) {
}
};
const addNewLabel = () => {
newCreateGradeStandardDialogInfo.value.visible = true;
newCreateGradeStandardDialogInfo.value.title = '新增标签';
newCreateGradeFormItems.value.forEach(item => {
item.default = '';
item.disabled = false;
});
newCreateGradeStandardDialogInfo.value.submitBtnLoading = false;
}
</script>
<template>
<div class="data-label">
<div class="container_wrap">
<div class="main_wrap">
<div class="main_wrap-top-area">
<TableTools :searchItems="classSearchItemList" :searchId="'template-manage-search'" @search="searchClass"
@select-change="selectChange" />
</div>
<div>
<el-button type="primary" class="v-add" @click="addNewLabel">新增</el-button>
<!-- <el-button class="v-import">导入</el-button>
<el-button>导出</el-button> -->
</div>
<div class="table_panel_wrap">
<Table :tableInfo="tableInfo" />
</div>
</div>
</div>
<Dialog_form ref="dialogLabelFormRef" :dialogConfigInfo="newCreateGradeStandardDialogInfo" class="v-dialog-form">
</Dialog_form>
</div>
</template>
<style lang="scss" scoped>
.data-label {
width: 100%;
height: 100%;
.container_wrap {
height: 100%;
.main_wrap {
height: 100%;
padding: 11px 16px 0 16px;
.main_wrap-top-area {
display: flex;
margin-bottom: 10px;
align-items: center;
.v-serach {
margin-left: 10px;
}
}
.table_panel_wrap {
margin-top: 12px;
width: 100%;
height: calc(100% - 105px);
min-height: 210px;
overflow: visible;
}
}
}
}
</style>
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!