You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

237 lines
5.1 KiB

2 months ago
<template>
<el-tabs v-model="activeName" style="margin-top: 8px">
<el-tab-pane label="图谱" name="1">
<treeNodeg6 ref="treeGraph" :mockData="mockData" />
</el-tab-pane>
<el-tab-pane label="表格" name="2">
<el-form :model="form" ref="formRef" label-width="120px" >
<div class="form-container">
<el-row :gutter="20">
<!-- 代码归属 -->
<el-col :span="8">
<span class="info-text" >
标准系统:{{ getSrcSysName(form.srcSys) }}
</span>
</el-col>
<!-- 代码编号 -->
<el-col :span="8">
<span class="info-text">标准英文名称: {{ form.dataStdEngName || '暂无标准英文名称' }}</span>
</el-col>
<!-- 代码名称 -->
<el-col :span="8">
<span class="info-text">标准中文名称: {{ form.dataStdCnName || '暂无标准中文名称' }}</span>
</el-col>
</el-row>
</div>
</el-form>
<!-- 表格展示 -->
<el-table
v-loading="loading"
:data="tableData"
@selection-change="handleSelectionChange"
border
style="width: 100%"
>
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="源系统" align="center" prop="targetSysName">
<template #default="scope">
<span >
{{
getSrcSysName(scope.row.targetSysName)
}}
</span>
</template>
</el-table-column> -->
<el-table-column label="标准编号" prop="dataStdNo" align="center" />
<el-table-column label="标准英文名称" prop="dataStdEngName" align="center" />
<el-table-column label="标准中文名称" prop="dataStdCnName" align="center" />
<el-table-column label="字典编号" prop="dataDictNo" align="center" />
<el-table-column label="字典英文名称" prop="dataDictEngName" align="center" />
<el-table-column label="字典中文名称" prop="dataDictCnName" align="center" />
</el-table>
</el-tab-pane>
</el-tabs>
</template>
<script setup>
import { ref, reactive, onMounted, toRefs } from 'vue';
import { listStdCodemap2,getStdMain,getStdMap} from "@/api/datastd/std"; // 更新为新的接口
import treeNodeg6 from "../stdcode/treeNodeg6.vue";
const { proxy } = getCurrentInstance();
const { std_code_status } = proxy.useDict("std_code_status");
import useUserStore from '@/store/modules/user'; // 注意路径是否正确
const userStore = useUserStore(); // 正确调用
const dsSysList = userStore.dsSysList; // 访问属性
const props = defineProps({
codeId: {
type: Object,
required: false
},
});
const getSrcSysName = (id) => {
const match = dsSysList.find(item => item.id === id);
return match ? match.name : id;
};
const queryParams = ref({
cdNo: '',
onum: props.codeId,
cdValCnMean: '',
cdType: '',
sysName: '',
sysId: '',
pageNum: 1,
pageSize: 100
});
const form = ref({
id: "",
cdNo: '',
cdValCnMean: '',
cdType: 'company',
cdValStat: '',
sysName: '',
classId: 'code',
codeMapId: '',
codeMapName: '',
codeMapNum: '',
});
const activeName = ref("1"); // 默认打开图谱
const tableData = ref([]);
const selections = ref([]);
const loading = ref(false);
const showSys = ref(false);
const multiple = ref(false);
//初始话判断展示系统及映射下拉选
if (props.codeId) {
form.value = { ...props.rowData };
if (form.value.cdType == "sys") {
showSys.value = true;
} else {
showSys.value = false;
}
}
// 获取数据列表
const getList = async () => {
loading.value = true;
console.log(queryParams.value,"queryParams.value")
const response = await listStdCodemap2(queryParams.value);
tableData.value = response.rows.map(item => ({ ...item}));
loading.value = false;
};
const handleCodeClick = (row) => {
console.log('点击了标准代码名称', row);
};
const handleSelectionChange = (selection) => {
multiple.value = selection.length > 0;
selections.value = selection; // 保存选中的行数据
console.log(selections.value,"子页面选中")
};
// 搜索
const handleQuery = () => {
queryParams.value.pageNum = 1;
getList();
};
defineExpose({
selections
});
const treeGraph = ref(null);
const mockData = ref({
id: "g1",
name: "",
count: 123456,
label: "",
rate: 1.0,
status: "G",
variableValue: "代码",
variableUp: true,
children:[]
});
onMounted(() => {
nextTick(() => {
getStdMain(props.codeId).then(response => {
form.value = response.data;
mockData.value.variableValue="数据标准"
mockData.value.name=form.value.dataStdCnName
mockData.value.label=form.value.dataStdNo
getStdMap(form.value.onum).then(response => {
mockData.value.children = response.data.children;
tableData.value = response.data.tableData;
if (treeGraph.value) {
treeGraph.value.refreshGraph();
}
});
getList();
});
});
});
</script>
<style scoped>
.app-container {
padding: 20px;
}
.query-form-container {
margin-bottom: 20px;
}
.el-table .el-input {
width: 100%;
}
.form-container {
margin-bottom: 20px;
}
.info-text {
font-size: 18px; /* 调整字体大小 */
line-height: 1.6; /* 行高,使文字更易于阅读 */
color: #333; /* 字体颜色 */
font-weight: 500; /* 设置字体加粗 */
display: inline-block;
width: 100%;
}
</style>