9f1b769f by lihua

数据产品添加所属科室

1 parent 23afe970
......@@ -62,6 +62,9 @@ const institutionTypeDictList: any = ref([]);
/** 更新频率字典列表 */
const updateFrequencyDictList: any = ref([]);
/** 所属科室下拉列表 */
const medDepartmentCodeList: any = ref([]);
const getArea = (node, resolve) => {
const { level } = node
let params = {
......@@ -178,25 +181,6 @@ const baseInfoFormItems = ref([
disabled: route.query.dataSources == '1' ? false : true,
},
{
label: '所属主题',
type: 'tree-select',
placeholder: '请选择',
field: 'subjectDomain',
options: subjectDomainListData.value,
showAllLevels: false,
checkStrictly: false,//只能选择叶子节点。
lazy: false,
props: {
value: 'value',
label: 'label',
children: 'childDictList'
},
filterable: true,
clearable: true,
default: '',
required: true
},
{
label: '行业分类',
type: 'select',
placeholder: '请选择',
......@@ -257,6 +241,46 @@ const baseInfoFormItems = ref([
visible: true
},
{
label: '所属科室',
type: 'tree-select',
placeholder: '请选择',
field: 'medDepartmentCode',
default: '',
options: medDepartmentCodeList.value || [],
showAllLevels: false,
checkStrictly: false,//只能选择叶子节点。
lazy: false,
props: {
value: 'value',
label: 'label',
children: 'childDictList'
},
filterable: true,
clearable: true,
visible: true,
required: true
},
{
label: '所属主题',
type: 'tree-select',
placeholder: '请选择',
field: 'subjectDomain',
options: subjectDomainListData.value,
showAllLevels: false,
checkStrictly: false,//只能选择叶子节点。
lazy: false,
props: {
value: 'value',
label: 'label',
children: 'childDictList'
},
filterable: true,
clearable: true,
default: '',
visible: false,
required: true
},
{
label: "更新频率",
type: "select",
placeholder: "请选择",
......@@ -469,6 +493,7 @@ const baseInfoFormRules = ref({
institutionType: [required('请选择机构分类')],
domain: [required('请选择领域')],
scenario: [required('请选择应用场景')],
medDepartmentCode: [required('请选择所属科室')],
updateFrequency: [required('请选择更新频率')]
});
......@@ -632,6 +657,10 @@ const setFormItems = (val) => {
}
if (item.field == 'scenario') {
item.options = domainDictList.value.find(s => s.value == val['domain'])?.childDictList || []
} else if (item.field == 'medDepartmentCode') {
item.visible = val['domain'] == '003'
} else if (item.field == 'subjectDomain') {
item.visible = val['domain'] == '004';
}
});
}
......@@ -674,7 +703,7 @@ const productTableInfo = ref({
{ label: "序号", type: "index", width: TableColumnWidth.INDEX, align: "center" },
{ label: "服务名称", field: "apiGuid", width: 180, required: true, columClass: 'edit-colum', type: 'edit' },
{ label: "API类型", field: "apiType", width: 100, getName: (scope) => {
return scope.row.apiType && apiTypes.find(a => a.value == scope.row.apiType)?.label;
return scope.row.apiType && apiTypes.find(a => a.value == scope.row.apiType)?.label || '--';
} },
{ label: "API地址", field: "requestUrl", minWidth: 240 },
{ label: "描述", field: "apiDescription", width: 300 },
......@@ -759,6 +788,17 @@ const addAssetTable = () => {
importTableFieldVisible.value = true;
}
onActivated(() => {
getValidApi().then((res: any) => {
if (res.code == proxy.$passCode) {
apiList.value = res.data || [];
productTableInfo.value.editInfo.apiGuid.options = apiList.value;
} else {
proxy.$ElMessage.error(res.msg);
}
})
})
onBeforeMount(() => {
getParentAreaPromise.value = getAreaData({ parentId: null }).then((res: any) => {
if (res?.code == proxy.$passCode) {
......@@ -776,14 +816,15 @@ onBeforeMount(() => {
baseInfoFormItems.value.forEach((item: any) => {
item.default = detailInfo.value[item.field] == null ? '' : detailInfo.value[item.field];
if (item.field == 'subjectDomain') {
let tree = detailInfo.value.subjectDomainTree?.[0];
if (tree) {
if (!tree.children[0]?.children?.[0]?.children) {
item.expandKeys = tree.children[0]?.children?.[0].parentGuids;
} else if (!tree.children[0]?.children?.[0]?.children?.[0]?.children) {
item.expandKeys = tree.children[0]?.children?.[0]?.children?.[0]?.parentGuids;
}
}
item.visible = detailInfo.value['domain'] == '004';
// let tree = detailInfo.value.subjectDomainTree?.[0];
// if (tree) {
// if (!tree.children[0]?.children?.[0]?.children) {
// item.expandKeys = tree.children[0]?.children?.[0].parentGuids;
// } else if (!tree.children[0]?.children?.[0]?.children?.[0]?.children) {
// item.expandKeys = tree.children[0]?.children?.[0]?.children?.[0]?.parentGuids;
// }
// }
}
else if (item.field == 'coverageArea') {
if (detailInfo.value.coverageArea && Array.isArray(detailInfo.value.coverageArea) && detailInfo.value.coverageArea.length > 0) {
......@@ -820,6 +861,8 @@ onBeforeMount(() => {
item.default = route.query.dataSources == '1' ? detailInfo.value.rightMain : detailInfo.value.rightMainName;
} else if (item.field == 'scenario') {
item.options = domainDictList.value.find(s => s.value == detailInfo.value['domain'])?.childDictList || []
} else if (item.field == 'medDepartmentCode') {
item.visible = detailInfo.value['domain'] == '003'
}
});
if (route.query.guid && route.query.foundMode == '2') {
......@@ -886,7 +929,20 @@ onBeforeMount(() => {
if (res.code == proxy.$passCode) {
subjectDomainListData.value = res.data || [];
let item = baseInfoFormItems.value.find(item => item.field == 'subjectDomain');
item && (item.options = subjectDomainListData.value);
// item && (item.options = subjectDomainListData.value);
item && (item.options = subjectDomainListData.value?.find(d => d.value == '1')?.childDictList || []);
} else {
proxy.$ElMessage.error(res.msg);
}
})
getDamTypesList({
dictType: "科室",
}).then((res: any) => {
if (res.code == proxy.$passCode) {
medDepartmentCodeList.value = res.data || [];
let item = baseInfoFormItems.value.find(item => item.field == 'medDepartmentCode');
item && (item.options = medDepartmentCodeList.value);
} else {
proxy.$ElMessage.error(res.msg);
}
......@@ -940,15 +996,6 @@ onBeforeMount(() => {
proxy.$ElMessage.error(res.msg);
}
})
getValidApi().then((res: any) => {
if (res.code == proxy.$passCode) {
apiList.value = res.data || [];
productTableInfo.value.editInfo.apiGuid.options = apiList.value;
} else {
proxy.$ElMessage.error(res.msg);
}
})
});
const cancel = () => {
......
......@@ -1233,27 +1233,27 @@ const respParamsTableInfo = ref({
<div @click="handleClick" :class="{ 'foundMode': detailInfo.foundMode == '2', 'title1': true }"><ellipsis-tooltip :content="detailInfo.damName ?? '--'"
class-name="w100f" :refName="'tooltipOver' + 'damName'"></ellipsis-tooltip></div>
<div class="dataLabel">{{ detailInfo.damTypeName }}</div>
<div class="dataLabel" v-show="detailInfo.subjectDomain">{{ detailInfo.subjectDomainName ||
detailInfo.subjectDomain }}</div>
<div class="dataLabel" v-show="detailInfo.domainName">{{ detailInfo.domainName }}</div>
<div class="dataLabel dataLabel1" v-if="detailInfo.databaseType">{{ detailInfo.databaseType }}</div>
<div class="dataLabel dataLabel1">{{ detailInfo.dataSourcesName }}</div>
<div class="dataLabel dataLabel1" v-if="detailInfo.updateFrequency">{{ detailInfo.updateFrequencyName }}</div>
</div>
</div>
<template v-if="detailInfo?.foundMode == 1">
<!-- <template v-if="detailInfo?.foundMode == 1"> -->
<div class="row-extra-desc">
<div class="per-extra-desc">{{ '行业分类:' + (detailInfo.industryName || '--') }}</div>
<div>{{ '机构分类:' + (detailInfo.institutionTypeName || '--') }}</div>
</div>
<div class="row-extra-desc">
<div class="per-extra-desc">{{ '领域:' + (detailInfo.domainName || '--') }}</div>
<div>{{ '应用场景:' + (detailInfo.scenarioName || '--') }}</div>
<div class="per-extra-desc">{{ '应用场景:' + (detailInfo.scenarioName || '--') }}</div>
<div v-if="detailInfo.medDepartmentCode">{{ '所属科室:' + (detailInfo.medDepartmentCodeName || '--') }}</div>
<div v-else>{{ '所属主题:' + (detailInfo.subjectDomainName || '--') }}</div>
</div>
<div class="row-extra-desc">
<div class="per-extra-desc">{{ '是否缓存:' + (detailInfo.isCache == 'Y' ? '是' : '否') }}</div>
<div>{{ '是否加密存储:' + (detailInfo.scenario == 'Y' ? '是' : '否') }}</div>
</div>
</template>
<!-- </template> -->
<div v-show="detailInfo.rightMainName" class="applicationScenarios">{{ '权利主体:' + detailInfo.rightMainName }}
</div>
<div class="applicationScenarios"
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!