数据产品添加所属科室
Showing
2 changed files
with
91 additions
and
44 deletions
| ... | @@ -63,6 +63,9 @@ const institutionTypeDictList: any = ref([]); | ... | @@ -63,6 +63,9 @@ const institutionTypeDictList: any = ref([]); |
| 63 | /** 更新频率字典列表 */ | 63 | /** 更新频率字典列表 */ |
| 64 | const updateFrequencyDictList: any = ref([]); | 64 | const updateFrequencyDictList: any = ref([]); |
| 65 | 65 | ||
| 66 | /** 所属科室下拉列表 */ | ||
| 67 | const medDepartmentCodeList: any = ref([]); | ||
| 68 | |||
| 66 | const getArea = (node, resolve) => { | 69 | const getArea = (node, resolve) => { |
| 67 | const { level } = node | 70 | const { level } = node |
| 68 | let params = { | 71 | let params = { |
| ... | @@ -178,25 +181,6 @@ const baseInfoFormItems = ref([ | ... | @@ -178,25 +181,6 @@ const baseInfoFormItems = ref([ |
| 178 | disabled: route.query.dataSources == '1' ? false : true, | 181 | disabled: route.query.dataSources == '1' ? false : true, |
| 179 | }, | 182 | }, |
| 180 | { | 183 | { |
| 181 | label: '所属主题', | ||
| 182 | type: 'tree-select', | ||
| 183 | placeholder: '请选择', | ||
| 184 | field: 'subjectDomain', | ||
| 185 | options: subjectDomainListData.value, | ||
| 186 | showAllLevels: false, | ||
| 187 | checkStrictly: false,//只能选择叶子节点。 | ||
| 188 | lazy: false, | ||
| 189 | props: { | ||
| 190 | value: 'value', | ||
| 191 | label: 'label', | ||
| 192 | children: 'childDictList' | ||
| 193 | }, | ||
| 194 | filterable: true, | ||
| 195 | clearable: true, | ||
| 196 | default: '', | ||
| 197 | required: true | ||
| 198 | }, | ||
| 199 | { | ||
| 200 | label: '行业分类', | 184 | label: '行业分类', |
| 201 | type: 'select', | 185 | type: 'select', |
| 202 | placeholder: '请选择', | 186 | placeholder: '请选择', |
| ... | @@ -257,6 +241,46 @@ const baseInfoFormItems = ref([ | ... | @@ -257,6 +241,46 @@ const baseInfoFormItems = ref([ |
| 257 | visible: true | 241 | visible: true |
| 258 | }, | 242 | }, |
| 259 | { | 243 | { |
| 244 | label: '所属科室', | ||
| 245 | type: 'tree-select', | ||
| 246 | placeholder: '请选择', | ||
| 247 | field: 'medDepartmentCode', | ||
| 248 | default: '', | ||
| 249 | options: medDepartmentCodeList.value || [], | ||
| 250 | showAllLevels: false, | ||
| 251 | checkStrictly: false,//只能选择叶子节点。 | ||
| 252 | lazy: false, | ||
| 253 | props: { | ||
| 254 | value: 'value', | ||
| 255 | label: 'label', | ||
| 256 | children: 'childDictList' | ||
| 257 | }, | ||
| 258 | filterable: true, | ||
| 259 | clearable: true, | ||
| 260 | visible: true, | ||
| 261 | required: true | ||
| 262 | }, | ||
| 263 | { | ||
| 264 | label: '所属主题', | ||
| 265 | type: 'tree-select', | ||
| 266 | placeholder: '请选择', | ||
| 267 | field: 'subjectDomain', | ||
| 268 | options: subjectDomainListData.value, | ||
| 269 | showAllLevels: false, | ||
| 270 | checkStrictly: false,//只能选择叶子节点。 | ||
| 271 | lazy: false, | ||
| 272 | props: { | ||
| 273 | value: 'value', | ||
| 274 | label: 'label', | ||
| 275 | children: 'childDictList' | ||
| 276 | }, | ||
| 277 | filterable: true, | ||
| 278 | clearable: true, | ||
| 279 | default: '', | ||
| 280 | visible: false, | ||
| 281 | required: true | ||
| 282 | }, | ||
| 283 | { | ||
| 260 | label: "更新频率", | 284 | label: "更新频率", |
| 261 | type: "select", | 285 | type: "select", |
| 262 | placeholder: "请选择", | 286 | placeholder: "请选择", |
| ... | @@ -469,6 +493,7 @@ const baseInfoFormRules = ref({ | ... | @@ -469,6 +493,7 @@ const baseInfoFormRules = ref({ |
| 469 | institutionType: [required('请选择机构分类')], | 493 | institutionType: [required('请选择机构分类')], |
| 470 | domain: [required('请选择领域')], | 494 | domain: [required('请选择领域')], |
| 471 | scenario: [required('请选择应用场景')], | 495 | scenario: [required('请选择应用场景')], |
| 496 | medDepartmentCode: [required('请选择所属科室')], | ||
| 472 | updateFrequency: [required('请选择更新频率')] | 497 | updateFrequency: [required('请选择更新频率')] |
| 473 | }); | 498 | }); |
| 474 | 499 | ||
| ... | @@ -632,6 +657,10 @@ const setFormItems = (val) => { | ... | @@ -632,6 +657,10 @@ const setFormItems = (val) => { |
| 632 | } | 657 | } |
| 633 | if (item.field == 'scenario') { | 658 | if (item.field == 'scenario') { |
| 634 | item.options = domainDictList.value.find(s => s.value == val['domain'])?.childDictList || [] | 659 | item.options = domainDictList.value.find(s => s.value == val['domain'])?.childDictList || [] |
| 660 | } else if (item.field == 'medDepartmentCode') { | ||
| 661 | item.visible = val['domain'] == '003' | ||
| 662 | } else if (item.field == 'subjectDomain') { | ||
| 663 | item.visible = val['domain'] == '004'; | ||
| 635 | } | 664 | } |
| 636 | }); | 665 | }); |
| 637 | } | 666 | } |
| ... | @@ -674,7 +703,7 @@ const productTableInfo = ref({ | ... | @@ -674,7 +703,7 @@ const productTableInfo = ref({ |
| 674 | { label: "序号", type: "index", width: TableColumnWidth.INDEX, align: "center" }, | 703 | { label: "序号", type: "index", width: TableColumnWidth.INDEX, align: "center" }, |
| 675 | { label: "服务名称", field: "apiGuid", width: 180, required: true, columClass: 'edit-colum', type: 'edit' }, | 704 | { label: "服务名称", field: "apiGuid", width: 180, required: true, columClass: 'edit-colum', type: 'edit' }, |
| 676 | { label: "API类型", field: "apiType", width: 100, getName: (scope) => { | 705 | { label: "API类型", field: "apiType", width: 100, getName: (scope) => { |
| 677 | return scope.row.apiType && apiTypes.find(a => a.value == scope.row.apiType)?.label; | 706 | return scope.row.apiType && apiTypes.find(a => a.value == scope.row.apiType)?.label || '--'; |
| 678 | } }, | 707 | } }, |
| 679 | { label: "API地址", field: "requestUrl", minWidth: 240 }, | 708 | { label: "API地址", field: "requestUrl", minWidth: 240 }, |
| 680 | { label: "描述", field: "apiDescription", width: 300 }, | 709 | { label: "描述", field: "apiDescription", width: 300 }, |
| ... | @@ -759,6 +788,17 @@ const addAssetTable = () => { | ... | @@ -759,6 +788,17 @@ const addAssetTable = () => { |
| 759 | importTableFieldVisible.value = true; | 788 | importTableFieldVisible.value = true; |
| 760 | } | 789 | } |
| 761 | 790 | ||
| 791 | onActivated(() => { | ||
| 792 | getValidApi().then((res: any) => { | ||
| 793 | if (res.code == proxy.$passCode) { | ||
| 794 | apiList.value = res.data || []; | ||
| 795 | productTableInfo.value.editInfo.apiGuid.options = apiList.value; | ||
| 796 | } else { | ||
| 797 | proxy.$ElMessage.error(res.msg); | ||
| 798 | } | ||
| 799 | }) | ||
| 800 | }) | ||
| 801 | |||
| 762 | onBeforeMount(() => { | 802 | onBeforeMount(() => { |
| 763 | getParentAreaPromise.value = getAreaData({ parentId: null }).then((res: any) => { | 803 | getParentAreaPromise.value = getAreaData({ parentId: null }).then((res: any) => { |
| 764 | if (res?.code == proxy.$passCode) { | 804 | if (res?.code == proxy.$passCode) { |
| ... | @@ -776,14 +816,15 @@ onBeforeMount(() => { | ... | @@ -776,14 +816,15 @@ onBeforeMount(() => { |
| 776 | baseInfoFormItems.value.forEach((item: any) => { | 816 | baseInfoFormItems.value.forEach((item: any) => { |
| 777 | item.default = detailInfo.value[item.field] == null ? '' : detailInfo.value[item.field]; | 817 | item.default = detailInfo.value[item.field] == null ? '' : detailInfo.value[item.field]; |
| 778 | if (item.field == 'subjectDomain') { | 818 | if (item.field == 'subjectDomain') { |
| 779 | let tree = detailInfo.value.subjectDomainTree?.[0]; | 819 | item.visible = detailInfo.value['domain'] == '004'; |
| 780 | if (tree) { | 820 | // let tree = detailInfo.value.subjectDomainTree?.[0]; |
| 781 | if (!tree.children[0]?.children?.[0]?.children) { | 821 | // if (tree) { |
| 782 | item.expandKeys = tree.children[0]?.children?.[0].parentGuids; | 822 | // if (!tree.children[0]?.children?.[0]?.children) { |
| 783 | } else if (!tree.children[0]?.children?.[0]?.children?.[0]?.children) { | 823 | // item.expandKeys = tree.children[0]?.children?.[0].parentGuids; |
| 784 | item.expandKeys = tree.children[0]?.children?.[0]?.children?.[0]?.parentGuids; | 824 | // } else if (!tree.children[0]?.children?.[0]?.children?.[0]?.children) { |
| 785 | } | 825 | // item.expandKeys = tree.children[0]?.children?.[0]?.children?.[0]?.parentGuids; |
| 786 | } | 826 | // } |
| 827 | // } | ||
| 787 | } | 828 | } |
| 788 | else if (item.field == 'coverageArea') { | 829 | else if (item.field == 'coverageArea') { |
| 789 | if (detailInfo.value.coverageArea && Array.isArray(detailInfo.value.coverageArea) && detailInfo.value.coverageArea.length > 0) { | 830 | if (detailInfo.value.coverageArea && Array.isArray(detailInfo.value.coverageArea) && detailInfo.value.coverageArea.length > 0) { |
| ... | @@ -820,6 +861,8 @@ onBeforeMount(() => { | ... | @@ -820,6 +861,8 @@ onBeforeMount(() => { |
| 820 | item.default = route.query.dataSources == '1' ? detailInfo.value.rightMain : detailInfo.value.rightMainName; | 861 | item.default = route.query.dataSources == '1' ? detailInfo.value.rightMain : detailInfo.value.rightMainName; |
| 821 | } else if (item.field == 'scenario') { | 862 | } else if (item.field == 'scenario') { |
| 822 | item.options = domainDictList.value.find(s => s.value == detailInfo.value['domain'])?.childDictList || [] | 863 | item.options = domainDictList.value.find(s => s.value == detailInfo.value['domain'])?.childDictList || [] |
| 864 | } else if (item.field == 'medDepartmentCode') { | ||
| 865 | item.visible = detailInfo.value['domain'] == '003' | ||
| 823 | } | 866 | } |
| 824 | }); | 867 | }); |
| 825 | if (route.query.guid && route.query.foundMode == '2') { | 868 | if (route.query.guid && route.query.foundMode == '2') { |
| ... | @@ -886,7 +929,20 @@ onBeforeMount(() => { | ... | @@ -886,7 +929,20 @@ onBeforeMount(() => { |
| 886 | if (res.code == proxy.$passCode) { | 929 | if (res.code == proxy.$passCode) { |
| 887 | subjectDomainListData.value = res.data || []; | 930 | subjectDomainListData.value = res.data || []; |
| 888 | let item = baseInfoFormItems.value.find(item => item.field == 'subjectDomain'); | 931 | let item = baseInfoFormItems.value.find(item => item.field == 'subjectDomain'); |
| 889 | item && (item.options = subjectDomainListData.value); | 932 | // item && (item.options = subjectDomainListData.value); |
| 933 | item && (item.options = subjectDomainListData.value?.find(d => d.value == '1')?.childDictList || []); | ||
| 934 | } else { | ||
| 935 | proxy.$ElMessage.error(res.msg); | ||
| 936 | } | ||
| 937 | }) | ||
| 938 | |||
| 939 | getDamTypesList({ | ||
| 940 | dictType: "科室", | ||
| 941 | }).then((res: any) => { | ||
| 942 | if (res.code == proxy.$passCode) { | ||
| 943 | medDepartmentCodeList.value = res.data || []; | ||
| 944 | let item = baseInfoFormItems.value.find(item => item.field == 'medDepartmentCode'); | ||
| 945 | item && (item.options = medDepartmentCodeList.value); | ||
| 890 | } else { | 946 | } else { |
| 891 | proxy.$ElMessage.error(res.msg); | 947 | proxy.$ElMessage.error(res.msg); |
| 892 | } | 948 | } |
| ... | @@ -940,15 +996,6 @@ onBeforeMount(() => { | ... | @@ -940,15 +996,6 @@ onBeforeMount(() => { |
| 940 | proxy.$ElMessage.error(res.msg); | 996 | proxy.$ElMessage.error(res.msg); |
| 941 | } | 997 | } |
| 942 | }) | 998 | }) |
| 943 | |||
| 944 | getValidApi().then((res: any) => { | ||
| 945 | if (res.code == proxy.$passCode) { | ||
| 946 | apiList.value = res.data || []; | ||
| 947 | productTableInfo.value.editInfo.apiGuid.options = apiList.value; | ||
| 948 | } else { | ||
| 949 | proxy.$ElMessage.error(res.msg); | ||
| 950 | } | ||
| 951 | }) | ||
| 952 | }); | 999 | }); |
| 953 | 1000 | ||
| 954 | const cancel = () => { | 1001 | const cancel = () => { | ... | ... |
| ... | @@ -1218,27 +1218,27 @@ const respParamsTableInfo = ref({ | ... | @@ -1218,27 +1218,27 @@ const respParamsTableInfo = ref({ |
| 1218 | <div @click="handleClick" :class="{ 'foundMode': detailInfo.foundMode == '2', 'title1': true }"><ellipsis-tooltip :content="detailInfo.damName ?? '--'" | 1218 | <div @click="handleClick" :class="{ 'foundMode': detailInfo.foundMode == '2', 'title1': true }"><ellipsis-tooltip :content="detailInfo.damName ?? '--'" |
| 1219 | class-name="w100f" :refName="'tooltipOver' + 'damName'"></ellipsis-tooltip></div> | 1219 | class-name="w100f" :refName="'tooltipOver' + 'damName'"></ellipsis-tooltip></div> |
| 1220 | <div class="dataLabel">{{ detailInfo.damTypeName }}</div> | 1220 | <div class="dataLabel">{{ detailInfo.damTypeName }}</div> |
| 1221 | <div class="dataLabel" v-show="detailInfo.subjectDomain">{{ detailInfo.subjectDomainName || | 1221 | <div class="dataLabel" v-show="detailInfo.domainName">{{ detailInfo.domainName }}</div> |
| 1222 | detailInfo.subjectDomain }}</div> | ||
| 1223 | <div class="dataLabel dataLabel1" v-if="detailInfo.databaseType">{{ detailInfo.databaseType }}</div> | 1222 | <div class="dataLabel dataLabel1" v-if="detailInfo.databaseType">{{ detailInfo.databaseType }}</div> |
| 1224 | <div class="dataLabel dataLabel1">{{ detailInfo.dataSourcesName }}</div> | 1223 | <div class="dataLabel dataLabel1">{{ detailInfo.dataSourcesName }}</div> |
| 1225 | <div class="dataLabel dataLabel1" v-if="detailInfo.updateFrequency">{{ detailInfo.updateFrequencyName }}</div> | 1224 | <div class="dataLabel dataLabel1" v-if="detailInfo.updateFrequency">{{ detailInfo.updateFrequencyName }}</div> |
| 1226 | </div> | 1225 | </div> |
| 1227 | </div> | 1226 | </div> |
| 1228 | <template v-if="detailInfo?.foundMode == 1"> | 1227 | <!-- <template v-if="detailInfo?.foundMode == 1"> --> |
| 1229 | <div class="row-extra-desc"> | 1228 | <div class="row-extra-desc"> |
| 1230 | <div class="per-extra-desc">{{ '行业分类:' + (detailInfo.industryName || '--') }}</div> | 1229 | <div class="per-extra-desc">{{ '行业分类:' + (detailInfo.industryName || '--') }}</div> |
| 1231 | <div>{{ '机构分类:' + (detailInfo.institutionTypeName || '--') }}</div> | 1230 | <div>{{ '机构分类:' + (detailInfo.institutionTypeName || '--') }}</div> |
| 1232 | </div> | 1231 | </div> |
| 1233 | <div class="row-extra-desc"> | 1232 | <div class="row-extra-desc"> |
| 1234 | <div class="per-extra-desc">{{ '领域:' + (detailInfo.domainName || '--') }}</div> | 1233 | <div class="per-extra-desc">{{ '应用场景:' + (detailInfo.scenarioName || '--') }}</div> |
| 1235 | <div>{{ '应用场景:' + (detailInfo.scenarioName || '--') }}</div> | 1234 | <div v-if="detailInfo.medDepartmentCode">{{ '所属科室:' + (detailInfo.medDepartmentCodeName || '--') }}</div> |
| 1235 | <div v-else>{{ '所属主题:' + (detailInfo.subjectDomainName || '--') }}</div> | ||
| 1236 | </div> | 1236 | </div> |
| 1237 | <div class="row-extra-desc"> | 1237 | <div class="row-extra-desc"> |
| 1238 | <div class="per-extra-desc">{{ '是否缓存:' + (detailInfo.isCache == 'Y' ? '是' : '否') }}</div> | 1238 | <div class="per-extra-desc">{{ '是否缓存:' + (detailInfo.isCache == 'Y' ? '是' : '否') }}</div> |
| 1239 | <div>{{ '是否加密存储:' + (detailInfo.scenario == 'Y' ? '是' : '否') }}</div> | 1239 | <div>{{ '是否加密存储:' + (detailInfo.scenario == 'Y' ? '是' : '否') }}</div> |
| 1240 | </div> | 1240 | </div> |
| 1241 | </template> | 1241 | <!-- </template> --> |
| 1242 | <div v-show="detailInfo.rightMainName" class="applicationScenarios">{{ '权利主体:' + detailInfo.rightMainName }} | 1242 | <div v-show="detailInfo.rightMainName" class="applicationScenarios">{{ '权利主体:' + detailInfo.rightMainName }} |
| 1243 | </div> | 1243 | </div> |
| 1244 | <div class="applicationScenarios" | 1244 | <div class="applicationScenarios" | ... | ... |
-
Please register or sign in to post a comment