751d9bbf by xukangle

Merge branch 'develop' into dev_20241202_xukangle

2 parents 1fec05c1 a36959df
......@@ -230,6 +230,17 @@ export const getClassifyGradList = (data) => request({
data
})
/**
* 分级列表详情
* @param {Object}
* @path /classify-grade/page-list
*/
export const getClassifyGradDetail = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/classify-grade/detail`,
method: 'get',
params: data
})
/**
* 分级新增
......@@ -397,6 +408,178 @@ export const getCgDirFieldPageList = (data) => request({
data
})
// 分来分级任务-分页
export const getCgTaskPageList = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/cg-task/page-list`,
method: 'post',
data
})
// 分来分级任务-详情
export const getCgTaskDetail = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/cg-task/detail`,
method: 'get',
params: data
})
// 分来分级任务-新增
export const cgTaskSave = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/cg-task/save`,
method: 'post',
data
})
// 分来分级任务-修改
export const cgTaskUpdate = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/cg-task/update`,
method: 'put',
data
})
// 分来分级任务-删除
export const cgTaskDelete = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/cg-task/delete`,
method: 'delete',
data
})
// 手动执行任务
export const runExecTask = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/cg-task/exec-task`,
method: 'post',
params: data
})
// 分类分级任务日志
export const getTaskExecPageList = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/cg-task-exec/page-list`,
method: 'post',
data
})
// 分类分级任务执行树形数据
export const getTaskExeTreeList = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/cg-task-exec/classify/tree-list`,
method: 'get',
params: data
})
// 分类分级任务执行字段统计
export const getTaskFieldCount = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/cg-task-exec-result/confirm-field-cnt`,
method: 'get',
params: data
})
// 分类分级任务执行数据库信息查询
export const getDbFieldList = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/cg-task-exec-result/confirm-query-db-list`,
method: 'get',
params: data
})
// 分类分级任务执行字段查询
export const execTaskFieldList = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/cg-task-exec-result/confirm-field-list-query`,
method: 'post',
data
})
// 分类分级任务执行库表查询
export const execTaskSheetList = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/cg-task-exec-result/confirm-db-list-query`,
method: 'post',
data
})
// 分类分级任务执行任务确认
export const execTaskConfirm = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/cg-task-exec-result/confirm-task`,
method: 'post',
params: data
})
// 分类分级任务执行字段确认
export const execFieldConfirm = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/cg-task-exec-result/confirm-field`,
method: 'post',
data
})
// 标签规则-分页
export const getCgLabelPageList = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/cg-label/page-list`,
method: 'post',
data
})
// 元数据采集任务-分页
export const getMetaTableCollectList = (data) => request({
url: `${import.meta.env.VITE_APP_CHECK_BASEURL}/meta-table/meta-table-collect-list`,
method: 'post',
data
})
export const filterVal = (val, type) => {
let status = '--';
if(type == 'status'){
switch (val) {
case 'N':
status = '未运行';
break;
case 'Y':
status = '成功';
break;
case 'E':
status = '失败';
break;
case 'R':
status = '运行中';
break;
default:
status = '未运行';
break;
}
} else if(type == 'confirmStatus'){
switch (val) {
case 'N':
status = '待确认';
break;
case 'Y':
status = '已确认';
break;
default:
status = '--';
break;
}
} else if(type == 'isCgChange'){
switch (val) {
case 'N':
status = '待确认';
break;
case 'Y':
status = '已确认';
break;
default:
status = '待确认';
break;
}
} else if(type == 'changeStatus'){
switch (val) {
case 'N':
status = '待确认';
break;
case 'Y':
status = '已确认';
break;
default:
status = '--';
break;
}
}
return status;
}
/** 获取字典列表
* VITE_APP_PLAN_BASEURL 为环境变量 现在只是mock数据
*/
......
......@@ -498,6 +498,11 @@ const scheduleChange = (val, rowValue) => {
const treeSelectNodeChange = (node, item, nodeObj) => {
emits("treeSelectNodeChange", node, item, nodeObj);
}
const getCascaderCheckedData = () => {
const dialogForm = dialogFormRef.value[0] || dialogFormRef.value;
return dialogForm.getCascaderCheckedData();
}
const setTreeChecked = (checkedKeys, leafOnly: boolean = false) => {
nextTick(() => {
const formTree = formTreeRef.value[0] || formTreeRef.value;
......@@ -533,7 +538,8 @@ defineExpose({
formTreeRef,
setTableRowSelected,
setTreeChecked,
getDialogConRef
getDialogConRef,
getCascaderCheckedData
});
</script>
......
......@@ -3,7 +3,17 @@ import { computed, reactive, ref } from 'vue'
import { Search } from '@element-plus/icons-vue'
import type { FormInstance, FormRules } from 'element-plus'
import { debounce } from "@/utils/common"
const emits = defineEmits(["tableSearch", "toolFilterChange", "loadMore","remoteMethod","treeSelectLoad","selectChange","treeSelectNodeChange","treeSelectNodeClick"]);
const emits = defineEmits([
"tableSearch",
"toolFilterChange",
"loadMore",
"remoteMethod",
"treeSelectLoad",
"selectChange",
"treeSelectNodeChange",
"treeSelectNodeClick",
"cascaderChange",
]);
const props = defineProps({
itemList: {
type: Array,
......@@ -34,6 +44,7 @@ const resetForm = (formEl: FormInstance | undefined) => {
emits('tableSearch', form, true)
})
}
defineExpose({
formInline,
formRef
......@@ -68,10 +79,13 @@ const selectChange = (val, row) => {
const handleTreeSelectNodeChange = (node, item) => {
emits("treeSelectNodeChange", node, item);
}
const handleTreeSelectNodeClick = (node, item)=>{
const handleTreeSelectNodeClick = (node, item) => {
emits("treeSelectNodeClick", node, item);
}
const inputChange = (val)=>{
const cascaderChange = (val, item) => {
emits("cascaderChange", val, item);
}
const inputChange = (val) => {
onSubmit()
}
onMounted(() => {
......@@ -86,58 +100,49 @@ onMounted(() => {
:class="{ 'width_auto': item.type == 'radio-button' }" :prop="item.field">
<template v-if="item.type == 'select'">
<el-select :class="{ 'is-multiple': item.multiple }" v-model="formInline[item.field]"
:placeholder="item.placeholder" :clearable="item.clearable" :filterable="item.filterable" @change="(val) => selectChange(val, item)">
<el-option v-for="opt in item.options" :label="item.props?.label ? opt[item.props.label] : opt.label" :value="item.props?.value ? opt[item.props.value] : opt.value" />
:placeholder="item.placeholder" :clearable="item.clearable" :filterable="item.filterable"
:disabled="item.disabled ?? false" @change="(val) => selectChange(val, item)">
<el-option v-for="opt in item.options" :label="item.props?.label ? opt[item.props.label] : opt.label"
:value="item.props?.value ? opt[item.props.value] : opt.value" />
</el-select>
</template>
<template v-else-if="item.type == 'input-select'">
<el-input v-model.trim="formInline[item.field]" :placeholder="item.placeholder" class="input-with-select" :maxlength="item.maxlength ?? ''"
:suffix-icon="Search">
<el-input v-model.trim="formInline[item.field]" :placeholder="item.placeholder" class="input-with-select"
:maxlength="item.maxlength ?? ''" :suffix-icon="Search">
<template #prepend>
<span v-for="child in item.children">
<el-select v-model="formItemList[child.field]" :placeholder="child.placeholder"
:clearable="item.clearable" style="vertical-align: inherit;">
<el-option v-for="opts in child.options" :label="child.props?.label ? opts[item.props.label] : opts.label" :value="child.props?.value ? opts[item.props.value] : opts.value" />
<el-option v-for="opts in child.options"
:label="child.props?.label ? opts[item.props.label] : opts.label"
:value="child.props?.value ? opts[item.props.value] : opts.value" />
</el-select>
</span>
</template>
</el-input>
</template>
<template v-else-if="item.type=='tree-select'">
<template v-else-if="item.type == 'tree-select'">
<div class="select_slots_panel">
<div class="slot-prefix" v-for="child in item.children">
<el-select v-model="formInline[child.field]" :placeholder="child.placeholder" @change="(val) => selectChange(val, child)" >
<el-select v-model="formInline[child.field]" :placeholder="child.placeholder"
@change="(val) => selectChange(val, child)">
<el-option v-for="cpt in child.options" :label="cpt.label" :value="cpt.value" />
</el-select>
</div>
</div>
<div class="slot-default">
<el-tree-select
v-model="formInline[item.field]"
:data="item.options"
:placeholder="item.placeholder"
:clearable="item.clearable"
:filterable="item.filterable"
:disabled="item.disabled"
:lazy="item.lazy ?? true"
:check-strictly = "item.checkStrictly ?? false"
:node-key="item.nodeKey ?? 'guid'"
:load="(node, resolve) => treeSelectLoad(node, resolve, item)"
:props="item.props"
:multiple="item.multiple ?? false"
:render-after-expand="true"
:teleported="item.teleported ?? true"
:default-expanded-keys="item.expandKeys"
:collapse-tags-tooltip="item.collapseTagsTooltip ?? false"
:collapse-tags="item.collapseTags ?? false"
:max-collapse-tags="item.maxTags ?? 1"
:show-checkbox="item.showCheckbox ?? false"
@change="(val) => selectChange(val, item)"
@current-change="(node) => handleTreeSelectNodeChange(node, item)"
@node-click = "(node)=>handleTreeSelectNodeClick(node, item)"
>
</div>
<div class="slot-default">
<el-tree-select v-model="formInline[item.field]" :data="item.options" :placeholder="item.placeholder"
:clearable="item.clearable" :filterable="item.filterable" :disabled="item.disabled"
:lazy="item.lazy ?? true" :check-strictly="item.checkStrictly ?? false" :node-key="item.nodeKey ?? 'guid'"
:load="(node, resolve) => treeSelectLoad(node, resolve, item)" :props="item.props"
:multiple="item.multiple ?? false" :render-after-expand="true" :teleported="item.teleported ?? true"
:default-expanded-keys="item.expandKeys" :collapse-tags-tooltip="item.collapseTagsTooltip ?? false"
:collapse-tags="item.collapseTags ?? false" :max-collapse-tags="item.maxTags ?? 1"
:show-checkbox="item.showCheckbox ?? false" @change="(val) => selectChange(val, item)"
@current-change="(node) => handleTreeSelectNodeChange(node, item)"
@node-click="(node) => handleTreeSelectNodeClick(node, item)">
<!-- <template #default="{ node, data }">
<!-- <template #default="{ node, data }">
<template v-if="item.getName">
<div
class="left-code"
......@@ -153,10 +158,10 @@ onMounted(() => {
{{ item.getName(data, node) }}
</div>
</template>
<span v-else>{{ data[item.props.label] }}</span>
</template> -->
</el-tree-select>
</div>
<span v-else>{{ data[item.props.label] }}</span>
</template> -->
</el-tree-select>
</div>
</template>
<template v-else-if="item.type == 'date-time'">
......@@ -178,13 +183,21 @@ onMounted(() => {
<div class="slot-default">
<el-select :class="{ 'is-multiple': item.multiple }" v-model="formInline[item.field]"
:placeholder="item.placeholder" :multiple="item.multiple" collapse-tags collapse-tags-tooltip
@change="(val) => selectChange(val, item)"
:max-collapse-tags="3" :filterable="item.filterable" :clearable="item.clearable" v-loadmore="loadMore">
@change="(val) => selectChange(val, item)" :max-collapse-tags="3" :filterable="item.filterable"
:clearable="item.clearable" v-loadmore="loadMore">
<el-option v-for="opt in item.options" :label="opt.label" :value="opt.value" />
</el-select>
</div>
</div>
</template>
<template v-else-if="item.type == 'cascader'">
<el-cascader ref="formCascaderRef" :class="[item.col, { is_block: item.block }]"
v-model="formInline[item.field]" :options="item.options" :props="item.props" :placeholder="item.placeholder"
:show-all-levels="item.showAllLevels ?? true" :clearable="item.clearable"
:filterable="item.filterable ?? false" :collapse-tags="item.collapse ?? false"
:collapse-tags-tooltip="item.tagsTooltip ?? false" :max-collapse-tags="item.maxTags ?? 1"
:disabled="item.disabled ?? false" @change="(val) => cascaderChange(val, item)" />
</template>
<template v-else>
<el-input v-model.trim="formInline[item.field]" :placeholder="item.placeholder" :clearable="item.clearable"
@clear="inputChange" />
......
<script lang="ts" setup name="TableTools">
import TableSearch from './table_search.vue'
const emits = defineEmits(["search", "filterChange","loadMore","remoteMethod","treeSelectLoad","selectChange","treeSelectNodeChange","treeSelectNodeClick"]);
const emits = defineEmits(["search", "filterChange","loadMore","remoteMethod","treeSelectLoad","selectChange","treeSelectNodeChange","treeSelectNodeClick","cascaderChange"]);
const props = defineProps({
searchItems: {
type: Array,
......@@ -53,6 +53,10 @@ const handleTreeSelectNodeChange = (node, item) => {
const treeSelectNodeClick = (node, item)=>{
emits("treeSelectNodeClick", node, item);
}
const cascaderChange = (val, item) => {
emits("cascaderChange", val, item);
}
defineExpose({
toolSearch,
})
......@@ -61,14 +65,15 @@ defineExpose({
<template>
<div class="table-tools">
<div class="tools_search">
<TableSearch ref="toolSearch" :itemList="itemList" :init="props.init??true"
:formId="formId"
@tableSearch="tableSearch"
<TableSearch ref="toolSearch" :itemList="itemList" :init="props.init??true"
:formId="formId"
@tableSearch="tableSearch"
@toolFilterChange="toolFilterChange" @loadMore="loadMore"
@treeSelectLoad="treeSelectLoad"
@selectChange="selectChange"
@treeSelectNodeChange="handleTreeSelectNodeChange"
@treeSelectNodeClick="treeSelectNodeClick"
@cascaderChange="cascaderChange"
/>
</div>
<div class="tools_bar" v-if="bars?.length">
......
......@@ -55,7 +55,7 @@ const getSvgElement = async (item:any)=>{
}
// reslove(122)
// })
}
</script>
......@@ -67,7 +67,7 @@ const getSvgElement = async (item:any)=>{
<el-menu-item :title="item1.meta?.title ?? '[ 无标题 ]'" :index="resolveRoutePath(basePath, item1.path || '')">
<el-icon v-if="item1.meta?.icon" class="title-icon" >
<!-- <img :src="item.meta.icon" v-if="item.meta.icon.indexOf('http')>-1" alt=""> -->
<!-- {{ item.meta.icon }} -->
<template v-if="item1.meta.icon.indexOf('svg')>-1">
<i v-html="item1.meta.icon" :key="item1.meta.icon" v-if="!item1.meta.isEle"></i>
......
......@@ -74,15 +74,8 @@ const routes: RouteRecordRaw[] = [
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true,
editPage: true,
activeMenu: '/data-inventory/classify-grade-manage/task-config'
},
beforeEnter: (to, from) => {
// if (to.query.name) {
// to.meta.title = `编辑-${to.query.name}`;
// }
}
},
{
path: 'template-config',
......@@ -119,7 +112,7 @@ const routes: RouteRecordRaw[] = [
},
beforeEnter: (to, from) => {
if (to.query.classStandardName) {
to.meta.title = `编辑-${to.query.classStandardName}`;
to.meta.title = `编辑-${to.query.classStandardName}`;
}
}
},
......
......@@ -33,12 +33,8 @@ const useUserStore = defineStore(
function getToken(data, state) {
data.platformGuid = "7f16f697aec111ef8656fa163e60becd";
data.userType = 2;
data.validateUri = location.origin + '/';
debugger
debugger
data.validateUri = location.origin == 'http://localhost:9000' ? 'http://localhost:9000/' : location.origin + '/';
return getTokenPromise.value = getTokenByCode(data).then((res: any) => {
debugger
debugger
getTokenPromise.value = null;
console.log(res);
if (res.code == '00000') {
......@@ -105,9 +101,9 @@ const useUserStore = defineStore(
}).then((resInfo: any) => {
getTokenPromise.value = null;
if (resInfo.code == '00000'){
localStorage.setItem('token',resInfo.data.access_token);
token.value = resInfo.data.access_token;
localStorage.setItem('refresh_token',resInfo.data.refresh_token);
localStorage.setItem('token',resInfo.data.accessToken);
token.value = resInfo.data.accessToken;
localStorage.setItem('refresh_token',resInfo.data.refreshToken);
const expiresIn = (Date.now() + 1700000) + "";
localStorage.setItem('expiresIn', expiresIn);
} else {
......
......@@ -112,7 +112,7 @@ service.interceptors.request.use(
return config;
};
/** 若是刷新token的请求,则不需要等refreshToken完成。 */
if (config.url.includes('/csbr-zuul/user/refreshToken')) {
if (config.url.includes('/user/refreshToken')) {
return process();
}
let expiresIn = localStorage.getItem('expiresIn');
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!