35d7268e by xukangle

Merge branch 'develop' of http://117.78.60.236:8000/csbr-daop/fe-data-asset-management into develop

2 parents 7364348a 54ec9cc5
......@@ -63,7 +63,7 @@ const routes: RouteRecordRaw[] = [
to.meta.title = `${to.query.name}-${to.query.status == 'Y'?'查看结果':'结果确认'}`;
to.meta.editPage = to.query.status == 'Y'? false: true;
} else {
to.meta.title = `${to.query.name}-${to.query.type == 'confirm'?'结果确认':'结果修改'}`;
to.meta.title = `${to.query.name}-${to.query.status == 'Y'?'结果修改':'结果确认'}`;
to.meta.editPage = true;
}
}
......
......@@ -85,11 +85,12 @@ const sheetItemList = ref([
value: 'dbGuid'
},
clearable: true,
filterable: true,
},
{
type: "select",
label: "",
placeholder: '表中文/英文名',
placeholder: '表中文名',
field: 'tableGuid',
default: '',
options: [],
......@@ -98,6 +99,7 @@ const sheetItemList = ref([
value: 'dbGuid'
},
clearable: true,
filterable: true,
disabled: true
},
]);
......@@ -128,11 +130,12 @@ const fieldItemList = ref([
value: 'dbGuid'
},
clearable: true,
filterable: true,
},
{
type: "select",
label: "",
placeholder: '表中文/英文名',
placeholder: '表中文名',
field: 'tableGuid',
default: '',
options: [],
......@@ -141,12 +144,13 @@ const fieldItemList = ref([
value: 'dbGuid'
},
clearable: true,
filterable: true,
disabled: true
},
{
type: "select",
label: "",
placeholder: '字段中文/英文名',
placeholder: '字段中文名',
field: 'fieldGuid',
default: '',
options: [],
......@@ -155,6 +159,7 @@ const fieldItemList = ref([
value: 'dbGuid'
},
clearable: true,
filterable: true,
disabled: true
},
{
......@@ -167,10 +172,7 @@ const fieldItemList = ref([
{ label: '已分类', value: 'Y' },
{ label: '未分类', value: 'N' },
],
props: {
// label: 'name',
// value: 'dbGuid'
},
props: {},
clearable: true,
},
{
......@@ -187,7 +189,6 @@ const fieldItemList = ref([
label: "classifyName",
value: "classifyDetailGuid",
},
// popperClass: 'strictiy_cascader',
filterable: true,
clearable: true,
blur: true
......@@ -226,17 +227,13 @@ const sheetTableInfo = ref({
id: "mapping-table",
fields: [
{ label: "序号", type: "index", width: 56, align: "center", fixed: "left" },
// {
// label: "分类分级变更状态", field: "isCgChange", width: 140, align: 'center', type: "tag", getName: (scope) => {
// return filterVal(scope.row.isCgChange, 'isCgChange');
// }
// },
{ label: "表中文名", field: "tableChName", width: 120 },
{ label: "表中文名", field: "tableChName", width: 180 },
{
label: "表英文名", field: "tableName", width: 200, type: "text_btn", value: 'tab'
},
{ label: "数据库名", field: "database", width: 120 },
{ label: "字段数", field: "fieldNum", width: 96, align: 'right' },
{ label: "数据库名", field: "databaseChName", width: 140 },
{ label: "数据库名称", field: "database", width: 200 },
{ label: "字段数", field: "fieldNum", width: 80, align: 'right' },
{ label: "已分类字段数", field: "classifyFieldNum", width: 120, align: 'right' },
{ label: "已分级字段数", field: "gradeFieldNum", width: 120, align: 'right' },
],
......@@ -297,8 +294,9 @@ const fieldTableInfo = ref({
{ label: "标签", field: "label", width: 120 },
{ label: "规则", field: "ruleDetail", width: 200 },
{ label: "表英文名", field: "tableName", width: 200 },
{ label: "表中文名", field: "tableChName", width: 120 },
{ label: "数据库名", field: "database", width: 120 },
{ label: "表中文名", field: "tableChName", width: 140 },
{ label: "数据库名", field: "databaseChName", width: 140 },
{ label: "数据库名称", field: "database", width: 200 },
],
loading: false,
data: [],
......@@ -390,14 +388,29 @@ const dialogInfo: any = ref({
},
})
/**
* 传入多个promise对象,当全部结束时取消Loading
* @param promises 传入多个promise对象,当全部结束时取消Loading
*/
const promiseList = async (...promises: Promise<void>[]) => {
// loading方法全局封装成一个组件
loading.value = true;
try {
await Promise.all(promises);
} catch (e) {
loading.value = false;
} finally {
loading.value = false;
}
};
// 获取任务详情
const getTaskDetail = (param) => {
loading.value = true;
getCgTaskDetail(param).then((res: any) => {
loading.value = false;
// loading.value = false;
if (res.code == proxy.$passCode) {
taskDetail.value = res.data || {};
// taskDetail.value.confirmStatus != 'Y' && (showBtns.value = true);
getFieldCount()
getSheetFieldList({ type: 1 });
getFieldTree()
......@@ -408,7 +421,6 @@ const getTaskDetail = (param) => {
})
} else {
ElMessage.error(res.msg);
loading.value = false;
}
}).catch(() => {
loading.value = false;
......@@ -438,7 +450,7 @@ const getGradeData = () => {
data.map(d => d.gradeName = d.dataGrade + '级');
gradeList.value = JSON.parse(JSON.stringify(data));
formItems.value[1].options = JSON.parse(JSON.stringify(data));
fieldItemList.value[5].options = JSON.parse(JSON.stringify(data));
fieldItemList.value[6].options = JSON.parse(JSON.stringify(data));
fieldTableInfo.value.fields[5].options = JSON.parse(JSON.stringify(data));
} else {
ElMessage.error(res.msg);
......@@ -559,7 +571,6 @@ const getFieldTableData = () => {
isMergeClassify: checked1.value ? 'Y' : 'N'
}
const classifyName = params.classifyName?.at(-1) || undefined;
// params.isClassify = classifyName === undefined ? '' : classifyName == 'unclassified' ? 'N' : 'Y';
if (classifyName && classifyName != 'unclassified') {
params.classifyDetail = classifyName;
}
......@@ -622,7 +633,6 @@ const tableBtnClick = (scope, btn) => {
row.classifyDetailGuid = cascaderData.length ? cascaderData[0].value : '';
row.classifyDetailName = cascaderData.length ? cascaderData[0].label : '';
row.gradeDetailName = gradeList.value.find(item => item.guid == row.gradeDetailGuid)?.gradeName;
row.STATE = '';
if (cascaderData.length && row.gradeDetailGuid) {
const params = [
{
......@@ -632,9 +642,19 @@ const tableBtnClick = (scope, btn) => {
classifyDetailName: row.classifyDetailName,
gradeDetailGuid: row.gradeDetailGuid,
gradeDetailName: row.gradeDetailName,
execGuid: taskDetail.value.execGuid
}
];
saveFields(params)
row.STATE = '';
} else {
if (row.classifyDetailGuid && row.gradeDetailGuid == '') {
ElMessage.error('分级不能为空');
} else if (row.classifyDetailGuid == '' && row.gradeDetailGuid) {
ElMessage.error('分类不能为空');
} else {
ElMessage.error('分类和分级均不能为空');
}
}
}
};
......@@ -695,11 +715,13 @@ const saveFields = (params, isBatch = false) => {
loading.value = false;
if (res.code == proxy.$passCode) {
ElMessage.success('保存成功');
if (isBatch) {
// if (isBatch) {
// getFieldTableData();
// } else {
// currTableData.value.changeStatus = 'Y';
// }
getFieldTableData();
} else {
currTableData.value.changeStatus = 'Y';
}
getFieldCount();
} else {
ElMessage.error(res.msg);
}
......@@ -785,12 +807,15 @@ const selectChange = (val, item, scope = null) => {
} else if (item.field == 'databaseGuid' || item.field == 'tableGuid') {
const params: any = scope;
if (tabsInfo.value.activeName == 'sheet') {
if (item.field == "databaseGuid") {
if (!val) {
sheetItemList.value[1].default = '';
sheetItemList.value[1].disabled = true;
} else {
sheetItemList.value[1].disabled = false;
}
}
item.field == "databaseGuid" && (params.tableGuid = '');
if (val && item.field != "tableGuid") {
const params = {
......@@ -854,6 +879,7 @@ const dialogBtnClick = (btn, info) => {
classifyDetailName: cascaderData[0].label,
gradeDetailGuid: info.gradeGuid,
gradeDetailName: gradeName,
execGuid: taskDetail.value.execGuid
}
params.push(param)
})
......@@ -913,7 +939,7 @@ onMounted(() => {
</div>
<div class="desc_item">
<span class="desc_label">执行时间:</span>
<span class="desc_value">{{ taskDetail.updateTime || '--' }}</span>
<span class="desc_value">{{ taskDetail.execTime || '--' }}</span>
</div>
</div>
<div class="desc_group">
......@@ -967,20 +993,20 @@ onMounted(() => {
<div class="table_tool_wrap" ref="tableToolRef">
<TableTools ref="fieldSearchRef" :searchItems="fieldItemList" :searchId="'field-search'" :init="false"
@selectChange="selectChange" @cascaderChange="cascaderChange" @search="searchField" />
<div class="tools_btns">
<div class="btns" v-if="showBtns" >
<div class="tools_btns" v-if="showBtns">
<div class="btns">
<el-button type="primary" plain @click="btnClick({ value: 'batch' })">批量变更分类分级</el-button>
<el-button type="primary" plain @click="btnClick({ value: 'status' })">批量确认</el-button>
<!-- <el-button plain @click="btnClick({ value: 'export' })">导出</el-button> -->
</div>
<!-- <div class="checkboxs">
<div class="checkboxs">
<el-checkbox v-model="checked1" @change="getFieldTableData()">仅看多分类</el-checkbox>
<el-tooltip effect="light" placement="top" content="一个字段只能有一个分类,多分类的字段需要人工确定分类">
<el-icon style="margin-left: 8px;">
<svg-icon name="icon-tip" />
</el-icon>
</el-tooltip>
</div> -->
</div>
</div>
</div>
<div class="table_panel_wrap panel" :style="{ height: 'calc(100% - ' + toolH + 'px)' }">
......
......@@ -155,7 +155,9 @@ const metadataTableInfo = ref({
})
const getTaskDetail = (data) => {
loading.value = true;
getCgTaskDetail(data).then((res: any) => {
loading.value = false;
if (res.code == proxy.$passCode) {
const data = res.data || {};
taskDetail.value = data;
......@@ -166,6 +168,8 @@ const getTaskDetail = (data) => {
getPermissionList({});
getMetaTableData();
}
}).catch(() => {
loading.value = false;
})
}
......@@ -177,14 +181,14 @@ const nodeClick = (data) => {
// 获取标签数据
const getTableData = () => {
tableInfo.value.loading = true;
loading.value = true;
getCgLabelPageList(
Object.assign({}, searchItemValue.value, {
pageIndex: page.value.curr,
pageSize: page.value.limit,
})
).then((res: any) => {
tableInfo.value.loading = false;
loading.value = false;
if (res.code == proxy.$passCode) {
tableInfo.value.data = res.data.records || [];
tableInfo.value.page.curr = res.data.pageIndex;
......@@ -193,7 +197,7 @@ const getTableData = () => {
}
})
.catch((res) => {
tableInfo.value.loading = false;
loading.value = false;
});
};
......@@ -223,8 +227,9 @@ const tablePageChange = (info) => {
// 获取元数据表格
const getMetaTableData = () => {
loading.value = true;
getMetaTableCollectList({}).then((res: any) => {
metadataTableInfo.value.loading = false;
loading.value = false;
if (res.code == proxy.$passCode) {
const data = res.data.records || [];
metadataTableInfo.value.data = data;
......@@ -236,16 +241,18 @@ const getMetaTableData = () => {
})
}
}
}).catch(()=> {
loading.value = false;
})
}
const querySearch = (queryString: string) => {
listLoading.value = true
loading.value = true;
const results = queryString
? currpermissionList.value.filter(item => item.dataPermissionName.indexOf(queryString) > -1)
: permissionList.value;
currpermissionList.value = results
listLoading.value = false
loading.value = false;
}
const btnClick = async (btn, bType = null) => {
......@@ -340,6 +347,7 @@ const handleScroll = () => {
const listClick = (row) => {
selectIndex.value = row.guid;
templateInfo.value = row;
loading.value = true;
getClassifyTree();
searchItemValue.value.classifyGuid = row.guid;
searchItemValue.value.detailGuid = '';
......@@ -352,8 +360,9 @@ const getPermissionList = (val, init = true) => {
params.pageIndex = listPage.value.curr;
params.pageSize = listPage.value.limit;
params.type = 'C';
listLoading.value = true
loading.value = true;
getClassifyGradList(params).then((res: any) => {
loading.value = false;
if (res.code == proxy.$passCode) {
const data = res.data?.records || []
if (init) {
......@@ -375,9 +384,8 @@ const getPermissionList = (val, init = true) => {
querySearch(asideSearchInput.value)
}
}
listLoading.value = false
}).catch(() => {
listLoading.value = false
loading.value = false;
})
}
......@@ -386,16 +394,16 @@ const getClassifyTree = () => {
const params = {
classifyGradeGuid: templateInfo.value.guid
}
treeInfo.value.loading = true;
loading.value = true;
getClassifyTreeList(params).then((res: any) => {
treeInfo.value.loading = false;
loading.value = false;
if (res.code == proxy.$passCode) {
const data = res.data || [];
treeInfo.value.data = data;
treeInfoRef.value.setCurrentKey('');
}
}).catch(() => {
treeInfo.value.loading = false;
loading.value = false;
})
}
......@@ -433,7 +441,7 @@ onMounted(() => {
<el-input v-model.trim="asideSearchInput" placeholder="请输入关键字" :prefix-icon="Search" clearable
@change="querySearch" />
</div> -->
<div class="aside_list" v-loading="listLoading" v-infinite-scroll="handleScroll">
<div class="aside_list" v-infinite-scroll="handleScroll">
<div class="list_item" v-for="(item, i) in currpermissionList" :class="{ active: selectIndex == item.guid }"
@click="listClick(item);" v-preReClick>{{ item.name }}</div>
</div>
......
......@@ -107,7 +107,7 @@ const toPath = (type) => {
guid: currTableData.value.taskGuid,
name: currTableData.value.taskName,
status: currTableData.value.status,
type: currTableData.value.status == 'Y'? 'modify':'confirm'
type: currTableData.value.status == 'Y'? 'detail':'confirm'
},
});
}
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!