96af58b9 by lihua

数据质量联调部分修改

1 parent 975c6e0b
This diff could not be displayed because it is too large.
...@@ -76,7 +76,7 @@ export const updateRuleBizState = (params) => request({ ...@@ -76,7 +76,7 @@ export const updateRuleBizState = (params) => request({
76 76
77 /** 获取数据库表列表 */ 77 /** 获取数据库表列表 */
78 export const getDatabase = (params) => request({ 78 export const getDatabase = (params) => request({
79 url: `${import.meta.env.VITE_APP_API_BASEURL}/data-source/get-source-list`, 79 url: `${import.meta.env.VITE_APP_DATA_SOURCE_URL}/data-source/get-source-list`,
80 method: 'post', 80 method: 'post',
81 data: params 81 data: params
82 }) 82 })
...@@ -138,23 +138,20 @@ export const getRuleTypeList = () => request({ ...@@ -138,23 +138,20 @@ export const getRuleTypeList = () => request({
138 138
139 // 获取规则大类的接口 139 // 获取规则大类的接口
140 export const getLargeCategoryList = () => request({ 140 export const getLargeCategoryList = () => request({
141 url:`${import.meta.env.VITE_APP_API_BASEURL}/data-dict/get-data-list`, 141 url: `${import.meta.env.VITE_APP_CONFIG_URL}/dict/data/get-by-dictType?dictType=${'规则大类'}`,
142 method: 'post', 142 method: 'get',
143 data: { paramCode: "LARGE-CATEGORY" }
144 }) 143 })
145 144
146 // 获取规则小类的接口 145 // 获取规则小类的接口
147 export const getSmallCategoryList = () => request({ 146 export const getSmallCategoryList = () => request({
148 url:`${import.meta.env.VITE_APP_API_BASEURL}/data-dict/get-data-list`, 147 url: `${import.meta.env.VITE_APP_CONFIG_URL}/dict/data/get-by-dictType?dictType=${'规则小类'}`,
149 method: 'post', 148 method: 'get',
150 data: { paramCode: "SMALL-CATEGORY" }
151 }) 149 })
152 150
153 // 获取规范性检验规则。 151 // 获取规范性检验规则。
154 export const getCheckRulesList = () => request({ 152 export const getCheckRulesList = () => request({
155 url:`${import.meta.env.VITE_APP_API_BASEURL}/data-dict/get-data-list`, 153 url: `${import.meta.env.VITE_APP_CONFIG_URL}/dict/data/get-by-dictType?dictType=${'正则校验'}`,
156 method: 'post', 154 method: 'get',
157 data: { paramCode: "REGULAR_RULE" }
158 }) 155 })
159 156
160 // 根据规则guid获取规则的详情信息。 157 // 根据规则guid获取规则的详情信息。
......
...@@ -144,7 +144,7 @@ const getMetaChangeTableData = () => { ...@@ -144,7 +144,7 @@ const getMetaChangeTableData = () => {
144 } 144 }
145 145
146 146
147 const activeTabName = ref('task'); 147 const activeTabName = ref('meta');
148 148
149 watch(() => activeTabName.value, (val) => { 149 watch(() => activeTabName.value, (val) => {
150 if(val==="task"){ 150 if(val==="task"){
...@@ -420,9 +420,7 @@ const metaChangeTableInfo = ref({ ...@@ -420,9 +420,7 @@ const metaChangeTableInfo = ref({
420 // { label: "状态", field: "changeTime", width: 180, }, 420 // { label: "状态", field: "changeTime", width: 180, },
421 // { label: "操作时间", field: "changeTime", width: 180, }, 421 // { label: "操作时间", field: "changeTime", width: 180, },
422 ], 422 ],
423 data: [{ 423 data: [],
424 guid: 1
425 }],
426 page: { 424 page: {
427 type: "normal", 425 type: "normal",
428 rows: 0, 426 rows: 0,
...@@ -486,6 +484,7 @@ onBeforeMount(() => { ...@@ -486,6 +484,7 @@ onBeforeMount(() => {
486 </div> 484 </div>
487 <div class="main_wrap"> 485 <div class="main_wrap">
488 <el-tabs v-model="activeTabName"> 486 <el-tabs v-model="activeTabName">
487 <!--
489 <el-tab-pane label="同步任务变更记录" name="task"> 488 <el-tab-pane label="同步任务变更记录" name="task">
490 <div class="table_tool_wrap"> 489 <div class="table_tool_wrap">
491 <TableTools :searchItems="tableSearchItemList" :init="false" searchId="detect-table-search" 490 <TableTools :searchItems="tableSearchItemList" :init="false" searchId="detect-table-search"
...@@ -496,6 +495,7 @@ onBeforeMount(() => { ...@@ -496,6 +495,7 @@ onBeforeMount(() => {
496 @tablePageChange="taskChangeTablePageChange" /> 495 @tablePageChange="taskChangeTablePageChange" />
497 </div> 496 </div>
498 </el-tab-pane> 497 </el-tab-pane>
498 -->
499 <el-tab-pane label="元数据变更记录" name="meta"> 499 <el-tab-pane label="元数据变更记录" name="meta">
500 <div class="table_tool_wrap"> 500 <div class="table_tool_wrap">
501 <TableTools :searchItems="metaTableSearchItemList" :init="false" searchId="meta-detect-table-search" 501 <TableTools :searchItems="metaTableSearchItemList" :init="false" searchId="meta-detect-table-search"
......
...@@ -238,12 +238,12 @@ const rulesDetailTableBtnClick = (scope, btn) => { ...@@ -238,12 +238,12 @@ const rulesDetailTableBtnClick = (scope, btn) => {
238 label: row.ruleName 238 label: row.ruleName
239 }]; 239 }];
240 smallCategoryList.value = [{ 240 smallCategoryList.value = [{
241 paramValue: detailInfo.value.smallCategory, 241 value: detailInfo.value.smallCategory,
242 paramName: row.smallCategory 242 label: row.smallCategory
243 }]; 243 }];
244 largeCategoryList.value = [{ 244 largeCategoryList.value = [{
245 paramValue: detailInfo.value.largeCategory, 245 value: detailInfo.value.largeCategory,
246 paramName: row.largeCategory 246 label: row.largeCategory
247 }]; 247 }];
248 oneRulesDetailDialogVisible.value = true; 248 oneRulesDetailDialogVisible.value = true;
249 } else { 249 } else {
...@@ -268,12 +268,12 @@ const rulesDetailTableBtnClick = (scope, btn) => { ...@@ -268,12 +268,12 @@ const rulesDetailTableBtnClick = (scope, btn) => {
268 label: row.ruleName 268 label: row.ruleName
269 }]; 269 }];
270 smallCategoryList.value = [{ 270 smallCategoryList.value = [{
271 paramValue: detailInfo.value.smallCategory, 271 value: detailInfo.value.smallCategory,
272 paramName: row.smallCategory 272 label: row.smallCategory
273 }]; 273 }];
274 largeCategoryList.value = [{ 274 largeCategoryList.value = [{
275 paramValue: detailInfo.value.largeCategory, 275 value: detailInfo.value.largeCategory,
276 paramName: row.largeCategory 276 label: row.largeCategory
277 }]; 277 }];
278 } else { 278 } else {
279 ElMessage.error(res.msg); 279 ElMessage.error(res.msg);
......
...@@ -135,18 +135,18 @@ const rulesListByType: any = computed(() => { ...@@ -135,18 +135,18 @@ const rulesListByType: any = computed(() => {
135 return {}; 135 return {};
136 } 136 }
137 return { 137 return {
138 char: checkRulesList.value.filter(r => r.paramValue == 'length_rule' || r.paramValue == 'ch_rule' || r.paramValue == 'en_rule' || r.paramValue == 'num_value_rule' || r.paramValue == 'custom_regular_rule'), 138 char: checkRulesList.value.filter(r => r.value == 'length_rule' || r.value == 'ch_rule' || r.value == 'en_rule' || r.value == 'num_value_rule' || r.value == 'custom_regular_rule'),
139 varchar: checkRulesList.value.filter(r => r.paramValue == 'length_rule' || r.paramValue == 'id_card_rule' || r.paramValue == 'phone_number_rule' || r.paramValue == 'ch_rule' || r.paramValue == 'en_rule' || r.paramValue == 'num_value_rule' || r.paramValue == 'custom_regular_rule'), 139 varchar: checkRulesList.value.filter(r => r.value == 'length_rule' || r.value == 'id_card_rule' || r.value == 'phone_number_rule' || r.value == 'ch_rule' || r.value == 'en_rule' || r.value == 'num_value_rule' || r.value == 'custom_regular_rule'),
140 int: checkRulesList.value.filter(r => r.paramValue == 'length_rule' || r.paramValue == 'num_value_rule' || r.paramValue == 'custom_regular_rule'), 140 int: checkRulesList.value.filter(r => r.value == 'length_rule' || r.value == 'num_value_rule' || r.value == 'custom_regular_rule'),
141 date: checkRulesList.value.filter(r => r.paramValue == 'date_format_rule' || r.paramValue == 'custom_regular_rule'), 141 date: checkRulesList.value.filter(r => r.value == 'date_format_rule' || r.value == 'custom_regular_rule'),
142 datetime: checkRulesList.value.filter(r => r.paramValue == 'date_format_rule' || r.paramValue == 'custom_regular_rule'), 142 datetime: checkRulesList.value.filter(r => r.value == 'date_format_rule' || r.value == 'custom_regular_rule'),
143 timestamp: checkRulesList.value.filter(r => r.paramValue == 'custom_regular_rule' || r.paramValue == 'custom_regular_rule'), 143 timestamp: checkRulesList.value.filter(r => r.value == 'custom_regular_rule' || r.value == 'custom_regular_rule'),
144 // text: checkRulesList.value.filter(r => r.paramValue == ''), 144 // text: checkRulesList.value.filter(r => r.value == ''),
145 decimal: checkRulesList.value.filter(r => r.paramValue == 'length_rule' || r.paramValue == 'precision_rule' || r.paramValue == 'num_value_rule' || r.paramValue == 'custom_regular_rule'), 145 decimal: checkRulesList.value.filter(r => r.value == 'length_rule' || r.value == 'precision_rule' || r.value == 'num_value_rule' || r.value == 'custom_regular_rule'),
146 // json: checkRulesList.value.filter(r => r.paramValue == ''), 146 // json: checkRulesList.value.filter(r => r.value == ''),
147 tinyint: checkRulesList.value.filter(r => r.paramValue == 'length_rule' || r.paramValue == 'num_value_rule' || r.paramValue == 'custom_regular_rule'), 147 tinyint: checkRulesList.value.filter(r => r.value == 'length_rule' || r.value == 'num_value_rule' || r.value == 'custom_regular_rule'),
148 time: checkRulesList.value.filter(r => r.paramValue == 'custom_regular_rule'), 148 time: checkRulesList.value.filter(r => r.value == 'custom_regular_rule'),
149 bit: checkRulesList.value.filter(r => r.paramValue == 'ch_rule' || r.paramValue == 'en_rule' || r.paramValue == 'custom_regular_rule'), 149 bit: checkRulesList.value.filter(r => r.value == 'ch_rule' || r.value == 'en_rule' || r.value == 'custom_regular_rule'),
150 } 150 }
151 }); 151 });
152 152
...@@ -238,8 +238,8 @@ const panelList: any = ref([ ...@@ -238,8 +238,8 @@ const panelList: any = ref([
238 default: '1', 238 default: '1',
239 options: props.largeCategoryList, 239 options: props.largeCategoryList,
240 props: { 240 props: {
241 label: 'paramName', 241 label: 'label',
242 value: 'paramValue' 242 value: 'value'
243 }, 243 },
244 required: true, 244 required: true,
245 visible: true 245 visible: true
...@@ -249,8 +249,8 @@ const panelList: any = ref([ ...@@ -249,8 +249,8 @@ const panelList: any = ref([
249 placeholder: '请选择', 249 placeholder: '请选择',
250 field: 'smallCategory', 250 field: 'smallCategory',
251 props: { 251 props: {
252 label: 'paramName', 252 label: 'label',
253 value: 'paramValue' 253 value: 'value'
254 }, 254 },
255 default: '', 255 default: '',
256 options: props.smallCategoryList.slice(6), 256 options: props.smallCategoryList.slice(6),
...@@ -1006,7 +1006,7 @@ const setPanelListValue = (item, isSelectChange = false, init = false, radioGrou ...@@ -1006,7 +1006,7 @@ const setPanelListValue = (item, isSelectChange = false, init = false, radioGrou
1006 } 1006 }
1007 } 1007 }
1008 if (isSelectChange) { 1008 if (isSelectChange) {
1009 val['smallCategory'] = panelList.value[2].options[0]?.paramValue; 1009 val['smallCategory'] = panelList.value[2].options[0]?.value;
1010 } else if (!val['smallCategory']) { 1010 } else if (!val['smallCategory']) {
1011 val['smallCategory'] = getDefaultSmallCategory(formItems.value[0].default); 1011 val['smallCategory'] = getDefaultSmallCategory(formItems.value[0].default);
1012 } else if (radioGroupChange && !init) {//切换规则类型。 1012 } else if (radioGroupChange && !init) {//切换规则类型。
...@@ -2306,8 +2306,8 @@ defineExpose({ ...@@ -2306,8 +2306,8 @@ defineExpose({
2306 <template #default="scope"> 2306 <template #default="scope">
2307 <el-select v-if="!props.readonly || (scope.row.dataType == 'text' || scope.row.dataType == 'json')" 2307 <el-select v-if="!props.readonly || (scope.row.dataType == 'text' || scope.row.dataType == 'json')"
2308 v-model="scope.row['checkRule']" placeholder="请选择" filterable clearable> 2308 v-model="scope.row['checkRule']" placeholder="请选择" filterable clearable>
2309 <el-option v-for="opt in rulesListByType[scope.row.dataType]" :key="opt['paramValue']" 2309 <el-option v-for="opt in rulesListByType[scope.row.dataType]" :key="opt['value']"
2310 :label="opt['paramName']" :value="opt['paramValue']" /> 2310 :label="opt['label']" :value="opt['value']" />
2311 </el-select> 2311 </el-select>
2312 <span v-else>{{ scope.row.checkRuleName ?? '--' }}</span> 2312 <span v-else>{{ scope.row.checkRuleName ?? '--' }}</span>
2313 </template> 2313 </template>
......
...@@ -16,6 +16,9 @@ import { ...@@ -16,6 +16,9 @@ import {
16 getSmallCategoryList, 16 getSmallCategoryList,
17 getLargeCategoryList, 17 getLargeCategoryList,
18 } from '@/api/modules/dataQuality'; 18 } from '@/api/modules/dataQuality';
19 import {
20 getMetaTreeData
21 } from '@/api/modules/dataMetaService';
19 import ruleForm from "../data_quality/ruleForm.vue"; 22 import ruleForm from "../data_quality/ruleForm.vue";
20 import useUserStore from "@/store/modules/user"; 23 import useUserStore from "@/store/modules/user";
21 import useDataQualityStore from "@/store/modules/dataQuality"; 24 import useDataQualityStore from "@/store/modules/dataQuality";
...@@ -60,7 +63,7 @@ const toSubjectTables: any = ref([]); ...@@ -60,7 +63,7 @@ const toSubjectTables: any = ref([]);
60 63
61 const getSubjectTableTreeData = () => { 64 const getSubjectTableTreeData = () => {
62 dsFromTreeDataLoading.value = true; 65 dsFromTreeDataLoading.value = true;
63 getSubjectTableTree({}).then((res: any) => { 66 getMetaTreeData({}).then((res: any) => {
64 dsFromTreeDataLoading.value = false; 67 dsFromTreeDataLoading.value = false;
65 if (res.code == proxy.$passCode) { 68 if (res.code == proxy.$passCode) {
66 dsFromTreeData.value = res.data?.map(d => { 69 dsFromTreeData.value = res.data?.map(d => {
...@@ -428,17 +431,17 @@ const save = () => { ...@@ -428,17 +431,17 @@ const save = () => {
428 <div class="operator_panel is-block"> 431 <div class="operator_panel is-block">
429 <div class="panel_title"> 432 <div class="panel_title">
430 <div class="title_text"> 433 <div class="title_text">
431 <span>选择主题</span> 434 <span>选择表</span>
432 <span class="tips_text">选择需要添加质检规则的主题表</span> 435 <span class="tips_text">选择需要添加质检规则的表,请确保数据库为脱产环境,避免数据质检影响您的生产环境,且允许在该脱产环境建脏数据的库,请知晓!</span>
433 </div> 436 </div>
434 </div> 437 </div>
435 <TreeTransfer mode="transfer" :title="['主题表', '已选表']" pid="parentGuid" 438 <TreeTransfer mode="transfer" :title="['可选表', '已选表']" pid="parentGuid"
436 :from-tree-data-loading="dsFromTreeDataLoading" :lazy="true" :checkOnClickNode="true" 439 :from-tree-data-loading="dsFromTreeDataLoading" :checkOnClickNode="true"
437 :from_checked_all="false" :from_data="dsFromTreeData" :to_data="dsToTreeData" node_key="guid" 440 :from_checked_all="false" :from_data="dsFromTreeData" :to_data="dsToTreeData" node_key="guid"
438 :transferOpenNode="true" width="70%" :defaultProps="{ 441 :transferOpenNode="true" width="70%" :defaultProps="{
439 label: 'name', 442 label: 'name',
440 value: 'guid' 443 value: 'guid'
441 }" :lazyFn="handleSubjectTableLazyFn" @left-check-change="handleSubjectCheckedChange" 444 }"
442 height="calc(100% - 64px)"> 445 height="calc(100% - 64px)">
443 </TreeTransfer> 446 </TreeTransfer>
444 </div> 447 </div>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!