8ea54e1e by lihua

数据产品添加所属科室

1 parent 7e0ccf8f
...@@ -62,6 +62,9 @@ const institutionTypeDictList: any = ref([]); ...@@ -62,6 +62,9 @@ const institutionTypeDictList: any = ref([]);
62 /** 更新频率字典列表 */ 62 /** 更新频率字典列表 */
63 const updateFrequencyDictList: any = ref([]); 63 const updateFrequencyDictList: any = ref([]);
64 64
65 /** 所属科室下拉列表 */
66 const medDepartmentCodeList: any = ref([]);
67
65 const getArea = (node, resolve) => { 68 const getArea = (node, resolve) => {
66 const { level } = node 69 const { level } = node
67 let params = { 70 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 = () => {
......
...@@ -1232,27 +1232,27 @@ const respParamsTableInfo = ref({ ...@@ -1232,27 +1232,27 @@ const respParamsTableInfo = ref({
1232 <div @click="handleClick" :class="{ 'foundMode': detailInfo.foundMode == '2', 'title1': true }"><ellipsis-tooltip :content="detailInfo.damName ?? '--'" 1232 <div @click="handleClick" :class="{ 'foundMode': detailInfo.foundMode == '2', 'title1': true }"><ellipsis-tooltip :content="detailInfo.damName ?? '--'"
1233 class-name="w100f" :refName="'tooltipOver' + 'damName'"></ellipsis-tooltip></div> 1233 class-name="w100f" :refName="'tooltipOver' + 'damName'"></ellipsis-tooltip></div>
1234 <div class="dataLabel">{{ detailInfo.damTypeName }}</div> 1234 <div class="dataLabel">{{ detailInfo.damTypeName }}</div>
1235 <div class="dataLabel" v-show="detailInfo.subjectDomain">{{ detailInfo.subjectDomainName || 1235 <div class="dataLabel" v-show="detailInfo.domainName">{{ detailInfo.domainName }}</div>
1236 detailInfo.subjectDomain }}</div>
1237 <div class="dataLabel dataLabel1" v-if="detailInfo.databaseType">{{ detailInfo.databaseType }}</div> 1236 <div class="dataLabel dataLabel1" v-if="detailInfo.databaseType">{{ detailInfo.databaseType }}</div>
1238 <div class="dataLabel dataLabel1">{{ detailInfo.dataSourcesName }}</div> 1237 <div class="dataLabel dataLabel1">{{ detailInfo.dataSourcesName }}</div>
1239 <div class="dataLabel dataLabel1" v-if="detailInfo.updateFrequency">{{ detailInfo.updateFrequencyName }}</div> 1238 <div class="dataLabel dataLabel1" v-if="detailInfo.updateFrequency">{{ detailInfo.updateFrequencyName }}</div>
1240 </div> 1239 </div>
1241 </div> 1240 </div>
1242 <template v-if="detailInfo?.foundMode == 1"> 1241 <!-- <template v-if="detailInfo?.foundMode == 1"> -->
1243 <div class="row-extra-desc"> 1242 <div class="row-extra-desc">
1244 <div class="per-extra-desc">{{ '行业分类:' + (detailInfo.industryName || '--') }}</div> 1243 <div class="per-extra-desc">{{ '行业分类:' + (detailInfo.industryName || '--') }}</div>
1245 <div>{{ '机构分类:' + (detailInfo.institutionTypeName || '--') }}</div> 1244 <div>{{ '机构分类:' + (detailInfo.institutionTypeName || '--') }}</div>
1246 </div> 1245 </div>
1247 <div class="row-extra-desc"> 1246 <div class="row-extra-desc">
1248 <div class="per-extra-desc">{{ '领域:' + (detailInfo.domainName || '--') }}</div> 1247 <div class="per-extra-desc">{{ '应用场景:' + (detailInfo.scenarioName || '--') }}</div>
1249 <div>{{ '应用场景:' + (detailInfo.scenarioName || '--') }}</div> 1248 <div v-if="detailInfo.medDepartmentCode">{{ '所属科室:' + (detailInfo.medDepartmentCodeName || '--') }}</div>
1249 <div v-else>{{ '所属主题:' + (detailInfo.subjectDomainName || '--') }}</div>
1250 </div> 1250 </div>
1251 <div class="row-extra-desc"> 1251 <div class="row-extra-desc">
1252 <div class="per-extra-desc">{{ '是否缓存:' + (detailInfo.isCache == 'Y' ? '是' : '否') }}</div> 1252 <div class="per-extra-desc">{{ '是否缓存:' + (detailInfo.isCache == 'Y' ? '是' : '否') }}</div>
1253 <div>{{ '是否加密存储:' + (detailInfo.scenario == 'Y' ? '是' : '否') }}</div> 1253 <div>{{ '是否加密存储:' + (detailInfo.scenario == 'Y' ? '是' : '否') }}</div>
1254 </div> 1254 </div>
1255 </template> 1255 <!-- </template> -->
1256 <div v-show="detailInfo.rightMainName" class="applicationScenarios">{{ '权利主体:' + detailInfo.rightMainName }} 1256 <div v-show="detailInfo.rightMainName" class="applicationScenarios">{{ '权利主体:' + detailInfo.rightMainName }}
1257 </div> 1257 </div>
1258 <div class="applicationScenarios" 1258 <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!