1150f554 by lxs

分级分类任务更新

1 parent 8407c03e
......@@ -31,7 +31,7 @@ service.interceptors.request.use(
* 为每一次请求生成一个cancleToken
*/
const source = axios.CancelToken.source();
config.headers.tenant = '6646dcad76c411eea911fa163e419da9'; //会员guid先写死
config.headers.tenant = '9e5b9d7bfd8c4f4f8079e05de19bf7e0'; //会员guid先写死
config.cancelToken = source.token;
if (config.method === "postfile") {
config.method = "post";
......
......@@ -349,25 +349,20 @@ const tableInfo = ref({
id: "mapping-table",
fields: [
{ label: "序号", type: "index", width: 56, align: "center", fixed: "left" },
{ label: "任务名称", field: "chName", width: 96 },
{ label: "任务名称", field: "taskName", width: 96 },
{
label: "目录名称", field: "dataTypeValue", width: 120, type: "text_btn", columClass: 'text_btn', click: (scope) => {
label: "目录名称", field: "cgDirName", width: 120, type: "text_btn", columClass: 'text_btn', click: (scope) => {
router.push({
name: "templateConfig",
query: { guid: scope.row.damGuid },
});
}
},
{ label: "分类分级模板", field: "dataTypeValue", width: 200 },
{ label: "元数据", field: "fieldStandardCode", width: 200 },
// {
// label: "是否公共数据", field: "isPublicData", width: 120, getName: (scope) => {
// return scope.row.isPublicData == 'Y' ? '是' : '否';
// }
// },
{ label: "分类分级模板", field: "cgTemplateName", width: 200 },
{ label: "元数据", field: "metaNames", width: 200 },
{
label: "执行状态", field: "approveState", width: TableColumnWidth.STATE, align: 'center', type: "tag", getName: (scope) => {
return filterVal(scope.row.approveState, 'approveState');
label: "执行状态", field: "status", width: TableColumnWidth.STATE, align: 'center', type: "tag", getName: (scope) => {
return filterVal(scope.row.status, 'status');
}
},
{ label: "任务修改人", field: "dataCategory", width: 120 },
......
......@@ -8,6 +8,7 @@ import { useRouter, useRoute } from "vue-router";
import useUserStore from "@/store/modules/user";
import { ElMessage, ElMessageBox } from "element-plus";
import { Search } from "@element-plus/icons-vue";
import { setItemsDisabled, tagMethod, tagType, changeNum, } from "@/utils/common";
import useDataAssetStore from "@/store/modules/dataAsset";
import TableTools from '@/components/Tools/table_tools.vue';
import Table from "@/components/Table/index.vue";
......@@ -18,7 +19,6 @@ const router = useRouter();
const userStore = useUserStore();
const userData = JSON.parse(userStore.userData);
const assetStore = useDataAssetStore();
const datas = [
{
"updateTime": "2024-07-16 13:17:00",
......@@ -331,7 +331,307 @@ const datas = [
"ruleType": null
}
]
const data1 = [
{
"children": [
{
"children": null,
"parentGuids": [
"c32ddd77191ff4afe149538ef4b2e0c3"
],
"guid": "9c92df55a19cdce88f61e20a8e1e8a65",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": "11150001",
"organisationName": "链享供应链运营一部",
"bizState": "Y",
"createTime": "2023-10-25 14:23:31",
"createUserName": "测试",
"parentGuid": "c32ddd77191ff4afe149538ef4b2e0c3",
"orderNum": 1,
"level": 2,
"levelCode": "1.1",
"displayCreateTime": "2023-10-25 14:23:31"
}
],
"parentGuids": null,
"guid": "c32ddd77191ff4afe149538ef4b2e0c3",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": "1115004",
"organisationName": "链享供应链",
"bizState": "Y",
"createTime": "2023-08-15 12:59:10",
"createUserName": "测试",
"parentGuid": "",
"orderNum": 2,
"level": 0,
"levelCode": "1",
"displayCreateTime": "2023-08-15 12:59:10"
},
{
"children": [
{
"children": [
{
"children": null,
"parentGuids": [
"e10332122834077907cd5ea61fa576c1",
"cdae7bb3cafb560482cad1b89a1e4b78"
],
"guid": "16ea472a155c07433a63220f2ae1afe9",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": "11160011",
"organisationName": "链享运营一部1组",
"bizState": "S",
"createTime": "2023-10-25 13:15:57",
"createUserName": "测试",
"parentGuid": "cdae7bb3cafb560482cad1b89a1e4b78",
"orderNum": 1,
"level": 2,
"levelCode": "2.1.1",
"displayCreateTime": "2023-10-25 13:15:57"
}
],
"parentGuids": [
"e10332122834077907cd5ea61fa576c1"
],
"guid": "cdae7bb3cafb560482cad1b89a1e4b78",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": "1116001",
"organisationName": "链享运营一部",
"bizState": "S",
"createTime": "2023-10-25 13:14:15",
"createUserName": "测试",
"parentGuid": "e10332122834077907cd5ea61fa576c1",
"orderNum": 1,
"level": 1,
"levelCode": "2.1",
"displayCreateTime": "2023-10-25 13:14:15"
},
{
"children": null,
"parentGuids": [
"e10332122834077907cd5ea61fa576c1"
],
"guid": "d98b44ffb35e4d17cf68f9a922e1c7b7",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": null,
"organisationName": "二部",
"bizState": "Y",
"createTime": "2023-10-26 09:45:36",
"createUserName": "测试",
"parentGuid": "e10332122834077907cd5ea61fa576c1",
"orderNum": 2,
"level": 1,
"levelCode": "2.2",
"displayCreateTime": "2023-10-26 09:45:36"
}
],
"parentGuids": null,
"guid": "e10332122834077907cd5ea61fa576c1",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": "1115005",
"organisationName": "链享医药",
"bizState": "Y",
"createTime": "2023-09-12 15:59:35",
"createUserName": "测试",
"parentGuid": null,
"orderNum": 3,
"level": 0,
"levelCode": "2",
"displayCreateTime": "2023-09-12 15:59:35"
},
{
"children": [
{
"children": null,
"parentGuids": [
"9bd46f0f4fcf429518fae6ecb4849a9e"
],
"guid": "870f23ae47e036eb88b35f726c31959b",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": null,
"organisationName": "运用三部",
"bizState": "Y",
"createTime": "2024-04-28 16:33:24",
"createUserName": "数往知来管理员",
"parentGuid": "9bd46f0f4fcf429518fae6ecb4849a9e",
"orderNum": 3,
"level": 1,
"levelCode": "3.3",
"displayCreateTime": "2024-04-28 16:33:24"
},
{
"children": null,
"parentGuids": [
"9bd46f0f4fcf429518fae6ecb4849a9e"
],
"guid": "e06049046241dd71b153f227dbe7f801",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": null,
"organisationName": "运营二部",
"bizState": "Y",
"createTime": "2023-11-14 16:01:50",
"createUserName": "数往知来管理员",
"parentGuid": "9bd46f0f4fcf429518fae6ecb4849a9e",
"orderNum": 40,
"level": 1,
"levelCode": "3.2",
"displayCreateTime": "2023-11-14 16:01:50"
},
{
"children": null,
"parentGuids": [
"9bd46f0f4fcf429518fae6ecb4849a9e"
],
"guid": "731cd185c868da8af48b492068ffaed4",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": null,
"organisationName": "运营一部",
"bizState": "Y",
"createTime": "2023-11-14 15:19:35",
"createUserName": "测试",
"parentGuid": "9bd46f0f4fcf429518fae6ecb4849a9e",
"orderNum": 41,
"level": 1,
"levelCode": "3.1",
"displayCreateTime": "2023-11-14 15:19:35"
}
],
"parentGuids": null,
"guid": "9bd46f0f4fcf429518fae6ecb4849a9e",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": null,
"organisationName": "药企服务事业部1",
"bizState": "Y",
"createTime": "2023-11-14 14:49:14",
"createUserName": "数往知来管理员",
"parentGuid": "",
"orderNum": 4,
"level": 0,
"levelCode": "3",
"displayCreateTime": "2023-11-14 14:49:14"
},
{
"children": [
{
"children": null,
"parentGuids": [
"23be149ea3167a3f7f2d383023336efe"
],
"guid": "e5f2b4958ee2d99309a41e0c6e1447c8",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": null,
"organisationName": "智能存储装备部",
"bizState": "Y",
"createTime": "2023-11-14 16:09:36",
"createUserName": "数往知来管理员",
"parentGuid": "23be149ea3167a3f7f2d383023336efe",
"orderNum": 51,
"level": 1,
"levelCode": "4.1",
"displayCreateTime": "2023-11-14 16:09:36"
}
],
"parentGuids": null,
"guid": "23be149ea3167a3f7f2d383023336efe",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": null,
"organisationName": "医药物联网事业部",
"bizState": "Y",
"createTime": "2023-11-14 15:11:35",
"createUserName": "数往知来管理员",
"parentGuid": "",
"orderNum": 5,
"level": 0,
"levelCode": "4",
"displayCreateTime": "2023-11-14 15:11:35"
},
{
"children": null,
"parentGuids": null,
"guid": "1d82e875163749ca9ae45809ec432ae8",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": null,
"organisationName": "财务管理中心",
"bizState": "S",
"createTime": "2023-11-14 15:14:07",
"createUserName": "数往知来管理员",
"parentGuid": "",
"orderNum": 6,
"level": 0,
"levelCode": "6",
"displayCreateTime": "2023-11-14 15:14:07"
},
{
"children": null,
"parentGuids": null,
"guid": "cd9e6a0c76102364a9e88b79b28b0b32",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": null,
"organisationName": "资产服务",
"bizState": "Y",
"createTime": "2024-08-14 11:40:33",
"createUserName": "数往知来管理员",
"parentGuid": "",
"orderNum": 7,
"level": 0,
"levelCode": "9",
"displayCreateTime": "2024-08-14 11:40:33"
},
{
"children": [
{
"children": null,
"parentGuids": [
"dac448b77fa35f798bb4a06d8fd86334"
],
"guid": "cb76777efe69182cfb2c75d41944553c",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": null,
"organisationName": "审批1",
"bizState": "Y",
"createTime": "2024-01-17 14:28:36",
"createUserName": "数往知来管理员",
"parentGuid": "dac448b77fa35f798bb4a06d8fd86334",
"orderNum": 100,
"level": 1,
"levelCode": "8.1",
"displayCreateTime": "2024-01-17 14:28:36"
}
],
"parentGuids": null,
"guid": "dac448b77fa35f798bb4a06d8fd86334",
"tenantGuid": "9e5b9d7bfd8c4f4f8079e05de19bf7e0",
"organisationCode": null,
"organisationName": "审批组织",
"bizState": "Y",
"createTime": "2024-01-16 11:38:24",
"createUserName": "数往知来管理员",
"parentGuid": "",
"orderNum": 99,
"level": 0,
"levelCode": "8",
"displayCreateTime": "2024-01-16 11:38:24"
}
]
const data2 = [
{}
]
const treeIndex: any = ref({})
const treeInfo = ref({
id: "data-pickup-tree",
filter: true,
queryValue: "",
queryPlaceholder: "输入组织名称搜索",
props: {
label: "organisationName",
value: "guid",
},
nodeKey: 'guid',
expandedKey: [],
expandOnNodeClick: false,
data: data1 || [],
});
const templateInfo = ref({
title: '医疗数据分类分级模板',
......@@ -497,10 +797,24 @@ const sheetTableInfo = ref({
id: "mapping-table",
fields: [
{ label: "序号", type: "index", width: 56, align: "center", fixed: "left" },
{ label: "标签", field: "damCode", width: 96 },
{ label: "分类", field: "damTypeName", width: 380 },
{ label: "分级", field: "damName", width: 55 },
{ label: "规则", field: "damTypeName", width: 380 },
{
label: "分类分级变更状态", field: "damCode", width: 140, align: 'center', type: "tag", getName: (scope) => {
return filterVal(scope.row.status, 'status');
}
},
{ label: "表中文名", field: "damTypeName", width: 120 },
{
label: "表英文名", field: "damName", width: 200, type: "text_btn", columClass: 'text_btn', click: (scope) => {
router.push({
name: "templateConfig",
query: { guid: scope.row.damGuid },
});
}
},
{ label: "数据库名", field: "damTypeName", width: 120 },
{ label: "字段数", field: "damTypeName", width: 96, align: 'right' },
{ label: "已分类字段数", field: "damTypeName", width: 120, align: 'right' },
{ label: "已分级字段数", field: "damTypeName", width: 120, align: 'right' },
],
loading: false,
data: datas || [],
......@@ -518,13 +832,24 @@ const fieldTableInfo = ref({
id: "metadata-table",
fields: [
{ label: "序号", type: "index", width: 56, align: "center", fixed: "left" },
{ label: "数据库名称", field: "damCode", width: 200 },
{ label: "数据库名", field: "damTypeName", width: 200 },
{ label: "总表数", field: "damName", width: 120, align: "right" },
{ label: "存储量(约/MB)", field: "damTypeName", width: 200, align: "right" },
{
label: "分类分级变更状态", field: "approveState", width: 140, align: 'center', type: "tag", getName: (scope) => {
return filterVal(scope.row.approveState, 'approveState');
}
},
{ label: "字段名", field: "damTypeName", width: 200 },
{ label: "字段中文名", field: "damTypeName", width: 200 },
{ label: "分类", field: "damTypeName", width: 280, type: 'select', columClass: 'edit_cell' },
{ label: "分级", field: "damTypeName", width: 120, type: 'select', columClass: 'edit_cell' },
{ label: "标签", field: "damCode", width: 96 },
{ label: "规则", field: "damCode", width: 200 },
{ label: "表中文名", field: "damTypeName", width: 120 },
{ label: "表英文名", field: "damName", width: 200 },
{ label: "数据库名", field: "damTypeName", width: 120 },
],
loading: false,
data: [],
data: data2 || [],
showPage: true,
page: {
type: "normal",
rows: 0,
......@@ -539,6 +864,10 @@ const tabChange = (val) => {
tabsInfo.value.activeName = val;
}
const nodeClick = (data) => {
treeIndex.value = data
}
const getTableData = () => {
tableInfo.value.loading = true;
getListingList(
......@@ -703,9 +1032,15 @@ onBeforeMount(() => {
<Table :tableInfo="sheetTableInfo" @tableBtnClick="tableBtnClick" @tablePageChange="tablePageChange" />
</div>
</div>
<div class="panel" v-show="tabsInfo.activeName == 'field'">
<div class="panel flex" v-show="tabsInfo.activeName == 'field'">
<div class="box_left">
<div class="aside_title">分类分级目录</div>
<Tree :treeInfo="treeInfo" @nodeClick="nodeClick" />
</div>
<div class="box_right">
<div class="table_tool_wrap">
<TableTools :searchItems="fieldItemList" :searchId="'template-manage-search'" @search="searchTemplate" />
<TableTools :searchItems="fieldItemList" :searchId="'template-manage-search'"
@search="searchTemplate" />
<div class="tools_btns">
<div class="btns">
<el-button type="primary" plain @click="btnClick({ value: 'batch' })">批量变量分类分级</el-button>
......@@ -720,7 +1055,8 @@ onBeforeMount(() => {
</div>
<div class="table_panel_wrap panel">
<div class="table_panel">
<el-table ref="costTableRef" :data="fieldTableInfo.data" show-summary border>
<el-table ref="costTableRef" :data="fieldTableInfo.data" border :height="'100%'"
style="width: 100%; display: inline-block" :style="{ 'min-height': '100%' }">
<el-table-column v-for="(item, i) in fieldTableInfo.fields" :label="item.label" :width="item.width"
:min-width="item.minWidth" :fixed="item.fixed" :align="item.align"
:sortable="item.sortable ?? false" :prop="item.field" :class-name="item.columClass"
......@@ -730,13 +1066,22 @@ onBeforeMount(() => {
<el-select v-model="scope.row[item.field]" :placeholder="item.placeholder"
:disabled="item.disabled" :clearable="item.clearable || true" />
</div>
<div v-else-if="item.type == 'tag'">
<el-tag :type="item.tagType ? item.tagType(scope) : tagType(scope.row, item.field)">{{
item.getName ? item.getName(scope) : tagMethod(scope.row, item.field)
}}</el-tag>
</div>
<span v-else>
{{ item.getName ? item.getName(scope) : scope.row[item.field] !== 0 && !scope.row[item.field] ?
{{ item.getName ? item.getName(scope) : scope.row[item.field] !== 0 && !scope.row[item.field]
?
"--" : scope.row[item.field] }}
</span>
</template>
</el-table-column>
</el-table>
<PageNav :class="[fieldTableInfo.page.type, fieldTableInfo.page.col]" :pageInfo="fieldTableInfo.page"
@pageChange="tablePageChange" />
</div>
</div>
</div>
</div>
......@@ -809,6 +1154,7 @@ onBeforeMount(() => {
display: flex;
flex-direction: column;
height: calc(100% - 45px);
padding: 0 !important;
overflow: hidden auto;
flex: 1;
......@@ -817,7 +1163,7 @@ onBeforeMount(() => {
}
.template_panel {
padding: 0 8px;
padding: 0 16px;
.panel_title {
display: flex;
......@@ -858,23 +1204,56 @@ onBeforeMount(() => {
height: 100%;
.panel {
height: calc(100% - 51px);
height: calc(100% - 47px);
padding: 0 16px;
&.flex {
height: calc(100% - 35px);
display: flex;
justify-content: space-between;
flex: 1;
.box_left {
width: 240px;
height: 100%;
border-right: 1px solid #d9d9d9;
margin-left: -16px;
.aside_title {
padding: 0 8px;
height: 40px;
line-height: 40px;
font-size: 14px;
color: #212121;
font-weight: 600;
margin-top: 8px;
}
.tree_panel {
padding: 0;
}
}
.box_right {
width: calc(100% - 240px);
}
}
}
:deep(.panel_tabs) {
.el-tabs__header {
margin-bottom: 8px;
margin-bottom: 0;
}
.el-tabs__nav-scroll {
// margin: 0 16px;
padding: 0 16px;
}
}
:deep(.table_tool_wrap) {
.table-tools {
.tools_search {
padding-top: 4px;
padding-top: 12px;
}
}
}
......@@ -892,7 +1271,12 @@ onBeforeMount(() => {
padding: 4px 0 0;
&.panel {
height: calc(100% - 80px);
height: calc(100% - 135px);
.table_panel {
width: 100%;
height: 100%;
}
}
}
}
......
......@@ -339,7 +339,7 @@ const currpermissionList: any = ref([
}
])
const templateInfo = ref({
title: '医疗数据分类分级模板',
title: '医疗数据分类',
descGroup: [
{ label: '模型确认人', value: '管理员 ' },
{ label: '模型确认时间', value: '2021-12-12 09:12:13' },
......@@ -611,7 +611,7 @@ onBeforeMount(() => {
<template>
<div class="container_wrap full flex">
<div class="aside_wrap" v-show="step == 0">
<div class="aside_title">选择分类分级模板</div>
<div class="aside_title">选择分类</div>
<div class="aside_search">
<el-input v-model.trim="asideSearchInput" placeholder="请输入关键字" :prefix-icon="Search" clearable
@change="querySearch" />
......
......@@ -360,16 +360,6 @@ const tableInfo = ref({
},
{ label: "分类分级模板", field: "dataTypeValue", width: 200 },
{ label: "元数据", field: "fieldStandardCode", width: 200 },
// {
// label: "是否公共数据", field: "isPublicData", width: 120, getName: (scope) => {
// return scope.row.isPublicData == 'Y' ? '是' : '否';
// }
// },
{
label: "执行状态", field: "approveState", width: TableColumnWidth.STATE, align: 'center', type: "tag", getName: (scope) => {
return filterVal(scope.row.approveState, 'approveState');
}
},
{ label: "任务修改人", field: "dataCategory", width: 120 },
{ label: "修改时间", field: "updateTime", width: TableColumnWidth.DATETIME },
{ label: "确认次数", field: "fieldLength", width: 96, align: 'right' },
......@@ -391,14 +381,10 @@ const tableInfo = ref({
actionInfo: {
label: "操作",
type: "btn",
width: 280,
width: 100,
btns: (scope) => {
let row = scope.row, btnArr: any = [
{ label: "结果确认", value: "confirm" },
{ label: "结果修改", value: "modify" },
{ label: "编辑", value: "edit" },
{ label: "日志", value: "log" },
{ label: "删除", value: "delete" }
{ label: "查看结果", value: "path" },
];
// if (row.approveState == 'Y') {
// if (row.listingStatus == 'Y') {
......@@ -441,7 +427,7 @@ const tableBtnClick = (scope, btn) => {
const type = btn.value;
const row = scope.row;
currTableData.value = row;
if (type == "detail" || type === "edit") {
if (type == "path") {
toPath(type);
} else if (type === "delete") {
open("此操作将永久删除,是否继续?", "warning");
......@@ -449,23 +435,14 @@ const tableBtnClick = (scope, btn) => {
};
const toPath = (type) => {
if (type == 'add') {
router.push({
name: "taskEdit",
query: {
type
},
});
} else {
router.push({
name: "taskEdit",
name: "taskDetail",
query: {
guid: currTableData.value.guid,
name: currTableData.value.damName,
type
},
});
}
}
const tablePageChange = (info) => {
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!