Commit 8f28908e by ningjihai

项目管理新增第二步bug

(发现梳理新增组件变成页面组件)
parent 10ff4b11
import request from '@/utils/request'
/**
* 发现梳理列表
* @param {*} query
* @returns
*/
export function queryDiscoverList(data) {
return request({
url: '/core/tdatadiscovery/query',
method: 'post',
data: data
})
}
export function querybyprojectid(data) {
return request({
url: '/core/searchregex/querybyprojectid',
method: 'post',
data: data
})
}
export function querydatasystem(data) {
return request({
url: '/core/searchsensitivedata/querydatasystem',
method: 'post',
data: data
})
}
// export function checkProjectNum(data) {
// return request({
// url: '/core/tdataproject/checkProjectNum',
// method: 'post',
// data: data
// })
// }
// export function getdatascopeprojectlist(data) {
// return request({
// url: '/core/datascopeproject/getdatascopeprojectlist',
// method: 'post',
// data: data
// })
// }
// export function checkDatasystemName(data) {
// return request({
// url: '/core/tdataproject/checkDatasystemName',
// method: 'post',
// data: data
// })
// }
// export function checkDatasystem(data) {
// return request({
// url: '/core/tdataproject/checkDatasystem',
// method: 'post',
// data: data
// })
// }
// export function queryByEditSort(data) {
// return request({
// url: '/core/tdatasource/queryByEditSort',
// method: 'post',
// data: data
// })
// }
// export function selectProDataSource(data) {
// return request({
// url: '/core/tdatasource/selectProDataSource',
// method: 'post',
// data: data
// })
// }
// export function queryShemas(data) {
// return request({
// url: '/core/searchsensitivedata/queryShemas',
// method: 'post',
// data: data
// })
// }
// export function getAllDataAreaAndRule(data) {
// return request({
// url: '/core/tdataarea/getAllDataAreaAndRule',
// method: 'post',
// data: data
// })
// }
// export function addDataProject(data) {
// return request({
// url: '/core/tdataproject/addDataProject',
// method: 'post',
// data: data
// })
// }
// export function deleteDataProject(data) {
// return request({
// url: '/core/tdataproject/deleteDataProject',
// method: 'post',
// data: data
// })
// }
// export function getDataProjectDetail(data) {
// return request({
// url: '/core/tdataproject/getDataProjectDetail',
// method: 'post',
// data: data
// })
// }
// export function updateDataProject(data) {
// return request({
// url: '/core/tdataproject/updateDataProject',
// method: 'post',
// data: data
// })
// }
// export function showProxyInfo(data) {
// return request({
// url: '/core/encryptionconfig/showProxyInfo',
// method: 'post',
// data: data
// })
// }
// export function saveProxyJarInfo(data) {
// return request({
// url: '/core/encryptionconfig/saveProxyJarInfo',
// method: 'post',
// data: data
// })
// }
// export function getProjectTree(data) {
// return request({
// url: '/core/encryptionconfig/getProjectTree',
// method: 'post',
// data: data
// })
// }
// export function getEncryptExcel(data) {
// return request({
// url: '/core/encryptionconfig/getEncryptExcel',
// method: 'post',
// data: data,
// responseType: 'blob' //
// })
// }
// export function checkEncryptExcel(data) {
// return request({
// url: '/core/encryptionconfig/checkEncryptExcel',
// method: 'post',
// data: data
// })
// }
// export function exportToExcel(data) {
// return request({
// url: '/core/encryptionconfig/exportToExcel',
// method: 'post',
// data: data,
// responseType: 'blob' //
// })
// }
// export function tdatasourceQuery(data) {
// return request({
// url: '/core/tdatasource/query',
// method: 'post',
// data: data
// })
// }
// export function queryShemasmodifysubsettask(data) {
// return request({
// url: '/core/modifysubsettask/queryShemas',
// method: 'post',
// data: data
// })
// }
// export function rowsensitivelevelType(type,data) {
// return request({
// url: '/core/rowsensitivelevel/' + type,
// method: 'post',
// data: data
// })
// }
...@@ -34,7 +34,7 @@ function onSearch() { ...@@ -34,7 +34,7 @@ function onSearch() {
// 重置 // 重置
function onReset(formRef: FormInstance) { function onReset(formRef: FormInstance) {
queryForm.value.title = '' queryForm.value.taskname = ''
emit('reset', formRef) emit('reset', formRef)
} }
...@@ -48,9 +48,9 @@ function onReset(formRef: FormInstance) { ...@@ -48,9 +48,9 @@ function onReset(formRef: FormInstance) {
:model="queryForm" :model="queryForm"
@search="onSearch" @search="onSearch"
@reset="onReset"> @reset="onReset">
<el-form-item label="发现任务名称" prop="title"> <el-form-item label="发现任务名称" prop="taskname">
<el-input <el-input
v-model="queryForm.title" v-model="queryForm.taskname"
placeholder="请输入发现任务名称" placeholder="请输入发现任务名称"
clearable clearable
/> />
......
<template> <template>
<el-dialog <div class="app-container scroller">
v-model="dialogVisible" <PageTitle :back="true" @back="backListPage">
:title="dialogTitle" <template #title>
width="800px" 新增发现任务
:before-close="handleClose" </template>
>
<!-- 步骤导航 - 按照图片样式重新设计 --> </PageTitle>
<div class="steps-navigation">
<div class="steps-container"> <div class="app-container__body">
<div class="step-item" :class="{ 'step-active': currentStep === 1, 'step-completed': currentStep > 1 }">
<div class="step-number">1</div> <div class="steps-navigation">
<div class="step-title">新建任务</div> <div class="steps-container">
<div class="step-status">{{ currentStep === 1 ? '进行中' : currentStep > 1 ? '已完成' : '待进行' }}</div> <div class="step-item" :class="{ 'step-active': currentStep === 1, 'step-completed': currentStep > 1 }">
</div> <div class="step-number">1</div>
<div class="step-connector"></div> <div class="step-title">新建任务</div>
<div class="step-item" :class="{ 'step-active': currentStep === 2, 'step-completed': currentStep > 2 }"> <div class="step-status">{{ currentStep === 1 ? '进行中' : currentStep > 1 ? '已完成' : '待进行' }}</div>
<div class="step-number">2</div> </div>
<div class="step-title">选择数据源</div> <div class="step-connector"></div>
<div class="step-status">{{ currentStep === 2 ? '进行中' : currentStep > 2 ? '已完成' : '待进行' }}</div> <div class="step-item" :class="{ 'step-active': currentStep === 2, 'step-completed': currentStep > 2 }">
</div> <div class="step-number">2</div>
<div class="step-connector"></div> <div class="step-title">选择数据源</div>
<div class="step-item" :class="{ 'step-active': currentStep === 3, 'step-completed': currentStep === 3 }"> <div class="step-status">{{ currentStep === 2 ? '进行中' : currentStep > 2 ? '已完成' : '待进行' }}</div>
<div class="step-number">3</div> </div>
<div class="step-title">配置规则</div> <div class="step-connector"></div>
<div class="step-status">{{ currentStep === 3 ? '进行中' : '待进行' }}</div> <div class="step-item" :class="{ 'step-active': currentStep === 3, 'step-completed': currentStep === 3 }">
</div> <div class="step-number">3</div>
</div> <div class="step-title">配置规则</div>
</div> <div class="step-status">{{ currentStep === 3 ? '进行中' : '待进行' }}</div>
</div>
<!-- 步骤1:新建任务 --> </div>
<div v-if="currentStep === 1" class="step-content">
<el-form :model="formData" :rules="rules" ref="step1Form" label-width="120px">
<el-form-item label="发现任务名称" prop="tname" required>
<el-input
v-model="formData.tname"
placeholder="请输入发现任务名称"
clearable
maxlength="50"
/>
</el-form-item>
<el-form-item label="备注">
<el-input
v-model="formData.remark"
type="textarea"
:rows="4"
placeholder="请输入备注信息"
maxlength="200"
show-word-limit
/>
</el-form-item>
</el-form>
</div>
<!-- 步骤2:选择数据源 -->
<div v-else-if="currentStep === 2" class="step-content">
<div class="data-source-section">
<div class="data-source-header">
<span class="label">数据源:</span>
<el-select v-model="selectedDataSource" placeholder="请选择数据源">
<el-option
v-for="source in dataSources"
:key="source.value"
:label="source.label"
:value="source.value"
/>
</el-select>
</div> </div>
<div class="selection-content"> <!-- 步骤1:新建任务 -->
<!-- 左侧SCHEMA列表 --> <div v-if="currentStep === 1" class="step-content">
<div class="schema-list"> <el-form :model="formData" :rules="rules" ref="step1Form" label-width="120px">
<div class="schema-header"> <el-form-item label="发现任务名称" prop="taskname" required>
<h4>SCHEMA列表</h4>
<el-input <el-input
v-model="schemaSearch" v-model="formData.taskname"
placeholder="搜索SCHEMA" placeholder="请输入发现任务名称"
size="small"
prefix-icon="Search"
clearable clearable
class="search-input" maxlength="50"
/>
</el-form-item>
<el-form-item label="备注">
<el-input
v-model="formData.remark"
type="textarea"
:rows="4"
placeholder="请输入备注信息"
maxlength="200"
show-word-limit
/> />
</el-form-item>
</el-form>
</div>
<!-- 步骤2:选择数据源 -->
<div v-else-if="currentStep === 2" class="step-content">
<div class="data-source-section">
<div class="data-source-header">
<span class="label">数据源:</span>
<el-select v-model="selectedDataSource" placeholder="请选择数据源">
<el-option
v-for="source in dataSources"
:key="source.value"
:label="source.label"
:value="source.value"
/>
</el-select>
</div> </div>
<div class="list-container">
<div <div class="selection-content">
v-for="schema in filteredSchemaList" <!-- 左侧SCHEMA列表 -->
:key="schema.id" <div class="schema-list">
class="schema-item" <div class="schema-header">
:class="{ 'schema-selected': selectedSchema === schema.id }" <h4>SCHEMA列表</h4>
@click="selectSchema(schema)" <el-input
> v-model="schemaSearch"
<span class="schema-name">{{ schema.name }}</span> placeholder="搜索SCHEMA"
size="small"
prefix-icon="Search"
clearable
class="search-input"
/>
</div>
<div class="list-container">
<div
v-for="schema in filteredSchemaList"
:key="schema.id"
class="schema-item"
:class="{ 'schema-selected': selectedSchema === schema.id }"
@click="selectSchema(schema)"
>
<span class="schema-name">{{ schema.name }}</span>
</div>
</div>
</div>
<el-divider direction="vertical" />
<!-- 右侧表列表 -->
<div class="table-list">
<div class="table-header">
<div class="table-header-top">
<h4>表列表</h4>
<span class="selected-count">{{ selectedTables.length }}/{{ filteredTableList.length }}</span>
</div>
<div class="table-header-bottom">
<el-checkbox v-model="selectAll" @change="handleSelectAll" class="select-all-checkbox">全选</el-checkbox>
<el-input
v-model="tableSearch"
placeholder="搜索表"
size="small"
prefix-icon="Search"
clearable
class="search-input"
/>
</div>
</div>
<div class="list-container">
<el-checkbox-group v-model="selectedTables">
<div
v-for="table in filteredTableList"
:key="table.id"
class="table-item"
>
<el-checkbox :label="table.id">
<span class="table-name">{{ table.name }}</span>
</el-checkbox>
</div>
</el-checkbox-group>
</div>
</div> </div>
</div> </div>
</div> </div>
</div>
<el-divider direction="vertical" /> <!-- 步骤3:配置规则 -->
<div v-else class="step-content">
<el-form :model="ruleConfig" :rules="ruleRules" ref="step3Form" label-width="120px">
<el-form-item label="采样方式" prop="samplingMethod" required>
<el-radio-group v-model="ruleConfig.samplingMethod">
<el-radio label="sequential">顺序</el-radio>
<el-radio label="random">随机</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="最大采样数" prop="maxSamples" required>
<el-input-number
v-model="ruleConfig.maxSamples"
:min="1"
:max="10000"
controls-position="right"
/>
</el-form-item>
<!-- 右侧表列表 --> <el-form-item label="匹配率" prop="matchingRate" required>
<div class="table-list"> <div class="matching-rate-input">
<div class="table-header">
<div class="table-header-top">
<h4>表列表</h4>
<span class="selected-count">{{ selectedTables.length }}/{{ filteredTableList.length }}</span>
</div>
<div class="table-header-bottom">
<el-checkbox v-model="selectAll" @change="handleSelectAll" class="select-all-checkbox">全选</el-checkbox>
<el-input <el-input
v-model="tableSearch" v-model="ruleConfig.matchingRate"
placeholder="搜索表" placeholder="50"
size="small" style="width: 100px"
prefix-icon="Search"
clearable
class="search-input"
/> />
<span class="percentage-suffix">百分比%</span>
</div> </div>
</div> </el-form-item>
<div class="list-container">
<el-checkbox-group v-model="selectedTables"> <el-form-item label="敏感类型" required>
<div <div class="sensitive-types">
v-for="table in filteredTableList" <el-tag
:key="table.id" v-for="type in sensitiveTypes"
class="table-item" :key="type"
closable
@close="removeSensitiveType(type)"
class="sensitive-tag"
> >
<el-checkbox :label="table.id"> {{ type }}
<span class="table-name">{{ table.name }}</span> </el-tag>
</el-checkbox> <el-button type="primary" text @click="openSensitiveTypeDialog" class="add-sensitive-btn">
</div> + 添加敏感类型
</el-checkbox-group> </el-button>
</div> </div>
</div> </el-form-item>
</el-form>
</div> </div>
</div>
</div> <!-- 底部按钮 -->
<!-- <template #footer> -->
<!-- 步骤3:配置规则 --> <div class="dialog-footer">
<div v-else class="step-content"> <el-button @click="handleCancel">取消</el-button>
<el-form :model="ruleConfig" :rules="ruleRules" ref="step3Form" label-width="120px">
<el-form-item label="采样方式" prop="samplingMethod" required> <el-button
<el-radio-group v-model="ruleConfig.samplingMethod"> v-if="currentStep > 1"
<el-radio label="sequential">顺序</el-radio> @click="handlePrevStep"
<el-radio label="random">随机</el-radio> >
</el-radio-group> 上一步
</el-form-item> </el-button>
<el-form-item label="最大采样数" prop="maxSamples" required> <el-button
<el-input-number v-if="currentStep < 3"
v-model="ruleConfig.maxSamples" type="primary"
:min="1" @click="handleNextStep"
:max="10000" >
controls-position="right" 下一步
/> </el-button>
</el-form-item>
<el-button
<el-form-item label="匹配率" prop="matchingRate" required> v-if="currentStep === 3"
<div class="matching-rate-input"> type="primary"
<el-input @click="handleConfirm"
v-model="ruleConfig.matchingRate"
placeholder="50"
style="width: 100px"
/>
<span class="percentage-suffix">百分比%</span>
</div>
</el-form-item>
<el-form-item label="敏感类型" required>
<div class="sensitive-types">
<el-tag
v-for="type in sensitiveTypes"
:key="type"
closable
@close="removeSensitiveType(type)"
class="sensitive-tag"
> >
{{ type }} 确定
</el-tag>
<el-button type="primary" text @click="openSensitiveTypeDialog" class="add-sensitive-btn">
+ 添加敏感类型
</el-button> </el-button>
</div> </div>
</el-form-item> <!-- </template> -->
</el-form>
</div> <SensitiveTypeDialog
ref="sensitiveDialogRef"
<!-- 底部按钮 --> v-model="sensitiveTypeDialogVisible"
<template #footer> :selected-types="selectedRuleIds"
<div class="dialog-footer"> @confirm="handleRuleConfirm"
<el-button @click="handleCancel">取消</el-button> />
</div>
<el-button </div>
v-if="currentStep > 1"
@click="handlePrevStep"
>
上一步
</el-button>
<el-button
v-if="currentStep < 3"
type="primary"
@click="handleNextStep"
>
下一步
</el-button>
<el-button
v-if="currentStep === 3"
type="primary"
@click="handleConfirm"
>
确定
</el-button>
</div>
</template>
<!-- 敏感类型选择弹窗 -->
<!-- <SensitiveTypeDialog
v-model="sensitiveTypeDialogVisible"
@confirm="handleSensitiveTypeConfirm"
/> -->
<SensitiveTypeDialog
ref="sensitiveDialogRef"
v-model="sensitiveTypeDialogVisible"
:selected-types="selectedRuleIds"
@confirm="handleRuleConfirm"
/>
</el-dialog>
</template> </template>
<script setup> <script setup>
import { ref, reactive, computed } from 'vue' import { ref, reactive, computed,onMounted } from 'vue'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
import SensitiveTypeDialog from './SensitiveTypeDialog.vue' import useAppStore from '@/store/modules/app'
import SensitiveTypeDialog from './modules/SensitiveTypeDialog.vue'
const emit = defineEmits(['confirm']) import {
querybyprojectid,
querydatasystem
} from '@/api/discover/index'
const appStore = useAppStore()
const props = defineProps({
listItem: {
type: Object,
default: () => ({})
},
addEditType:{
type: String,
default: ''
}
})
const emit = defineEmits(['page','confirm'])
const backListPage = () => {
emit('page', 'list')
}
const loginUser = {
tsysUser: {
id: appStore.userInfo.user.id,
username: appStore.userInfo.user.username
}
}
const dialogVisible = ref(false) const dialogVisible = ref(false)
const currentStep = ref(1) const currentStep = ref(1)
...@@ -251,12 +281,12 @@ const selectedRules = ref([ ...@@ -251,12 +281,12 @@ const selectedRules = ref([
const sensitiveTypes = ref(['电子邮件', '混合证件号']) const sensitiveTypes = ref(['电子邮件', '混合证件号'])
// 步骤1数据 // 步骤1数据
const formData = reactive({ const formData = reactive({
tname: '123', taskname: '',
remark: '' remark: ''
}) })
const rules = { const rules = {
tname: [ taskname: [
{ required: true, message: '请填写发现任务名称', trigger: 'blur' } { required: true, message: '请填写发现任务名称', trigger: 'blur' }
] ]
} }
...@@ -337,6 +367,28 @@ const filteredTableList = computed(() => { ...@@ -337,6 +367,28 @@ const filteredTableList = computed(() => {
) )
}) })
onMounted(() => {
querybyprojectid({
dataarea: "",
projectid: sessionStorage.getItem('projectId'),
rulename: ""
}).then(res =>{
})
querydatasystem({
discoverytype: 1,
projectid: sessionStorage.getItem('projectId'),
loginUser: loginUser
}).then(res =>{
})
})
// 修改openDialog方法 // 修改openDialog方法
const openDialog = (row = null) => { const openDialog = (row = null) => {
dialogVisible.value = true dialogVisible.value = true
...@@ -347,7 +399,7 @@ const openDialog = (row = null) => { ...@@ -347,7 +399,7 @@ const openDialog = (row = null) => {
// 编辑模式 // 编辑模式
currentEditId.value = row.id currentEditId.value = row.id
// 填充步骤1数据 // 填充步骤1数据
formData.tname = row.tname formData.taskname = row.taskname
formData.remark = row.remark formData.remark = row.remark
// 填充步骤2数据(根据实际业务数据调整) // 填充步骤2数据(根据实际业务数据调整)
...@@ -371,7 +423,7 @@ const openDialog = (row = null) => { ...@@ -371,7 +423,7 @@ const openDialog = (row = null) => {
} }
const resetForm = () => { const resetForm = () => {
formData.tname = '123' formData.taskname = ''
formData.remark = '' formData.remark = ''
selectedDataSource.value = 'system1' selectedDataSource.value = 'system1'
selectedSchema.value = 'ry' selectedSchema.value = 'ry'
...@@ -392,7 +444,7 @@ const handleCancel = () => { ...@@ -392,7 +444,7 @@ const handleCancel = () => {
const handleNextStep = async () => { const handleNextStep = async () => {
if (currentStep.value === 1) { if (currentStep.value === 1) {
if (!formData.tname.trim()) { if (!formData.taskname.trim()) {
ElMessage.error('请填写发现任务名称') ElMessage.error('请填写发现任务名称')
return return
} }
...@@ -500,7 +552,7 @@ defineExpose({ ...@@ -500,7 +552,7 @@ defineExpose({
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
min-width: 100px; min-width: 200px;
&.step-active { &.step-active {
.step-number { .step-number {
......
<script setup lang="ts" name="projectManageIndex"> <script setup lang="ts" name="projectManageIndex">
import { ref } from 'vue' import { ref } from 'vue'
import list from './list.vue' import list from './list.vue'
import addEditDiscovery from './addEditDiscovery.vue'
import discoverProcess from './discoverProcess.vue' import discoverProcess from './discoverProcess.vue'
import discoverResult from './discoverResult.vue' import discoverResult from './discoverResult.vue'
import discoverHistory from './discoverHistory.vue' import discoverHistory from './discoverHistory.vue'
const widget = { const widget = {
list: list, list: list,
addEditDiscovery: addEditDiscovery,
discoverProcess: discoverProcess, discoverProcess: discoverProcess,
discoverResult: discoverResult, discoverResult: discoverResult,
discoverHistory: discoverHistory discoverHistory: discoverHistory
......
<script setup name="ProjectManageList"> <script setup name="ProjectManageList">
import { getCurrentInstance, reactive, ref, toRefs } from 'vue' import { getCurrentInstance, reactive, ref, toRefs,onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus' import { ElMessage, ElMessageBox } from 'element-plus'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
...@@ -8,9 +8,16 @@ import usePermissionStore from '@/store/modules/permission' ...@@ -8,9 +8,16 @@ import usePermissionStore from '@/store/modules/permission'
import { changeRoute } from '@/utils/switchRoute' import { changeRoute } from '@/utils/switchRoute'
import QueryForm from './QueryForm.vue' import QueryForm from './QueryForm.vue'
import AddDiscoveryDialog from './modules/AddDiscoveryDialog.vue' // 引入新增发现任务弹窗 // import AddDiscoveryDialog from './modules/AddDiscoveryDialog.vue' // 引入新增发现任务弹窗
import SmartDiscoveryDialog from './modules/SmartDiscoveryDialog.vue' import SmartDiscoveryDialog from './modules/SmartDiscoveryDialog.vue'
import {
queryDiscoverList
} from '@/api/discover/index'
const appStore = useAppStore() const appStore = useAppStore()
const permissionStore = usePermissionStore() const permissionStore = usePermissionStore()
const router = useRouter() const router = useRouter()
...@@ -20,6 +27,10 @@ const { proxy } = getCurrentInstance() ...@@ -20,6 +27,10 @@ const { proxy } = getCurrentInstance()
// 新增发现任务弹窗引用 // 新增发现任务弹窗引用
const addDiscoveryDialogRef = ref() const addDiscoveryDialogRef = ref()
onMounted(()=>{
handleQuery()
})
function onReset(formQuery) { function onReset(formQuery) {
console.log('onReset') console.log('onReset')
formQuery.resetFields() formQuery.resetFields()
...@@ -38,48 +49,73 @@ function handleQuery() { ...@@ -38,48 +49,73 @@ function handleQuery() {
} }
// 表格数据 // 表格数据
const tableData = ref([ const tableData = ref([
{ // {
id: 1, // id: 1,
taskName: '22', // taskName: '22',
result: '0/225', // result: '0/225',
dbType: 'MYSQL', // dbType: 'MYSQL',
operator: 'admin', // operator: 'admin',
createTime: '2025-08-21 16:55:30', // createTime: '2025-08-21 16:55:30',
updateTime: '2025-08-21 16:55:30', // updateTime: '2025-08-21 16:55:30',
remark: '', // remark: '',
projectid: "ec132fb8-04f0-4c0f-8460-c2a0ac4015d5", // projectid: "ec132fb8-04f0-4c0f-8460-c2a0ac4015d5",
resultid: "R_1755845361051", // resultid: "R_1755845361051",
datasystemid: "ff80818198986db40198c5933e5902e7", // datasystemid: "ff80818198986db40198c5933e5902e7",
}, // },
{ // {
id: 2, // id: 2,
taskName: '小王', // taskName: '小王',
result: '2/225', // result: '2/225',
dbType: 'MYSQL', // dbType: 'MYSQL',
operator: 'admin', // operator: 'admin',
createTime: '2025-08-21 16:55:30', // createTime: '2025-08-21 16:55:30',
updateTime: '2025-08-21 16:55:30', // updateTime: '2025-08-21 16:55:30',
remark: '' // remark: ''
} // }
]) ])
const data = reactive({ const data = reactive({
queryParams: { queryParams: {
pageNum: 1, pageno: 1,
pageSize: 8 pagesize: 10,
project: sessionStorage.getItem('projectName') || '',
projectid: sessionStorage.getItem('projectId') || ''
} }
}) })
// 表格数据 // 表格数据
const { queryParams } = toRefs(data) const { queryParams } = toRefs(data)
const total = ref(3) const total = ref(0)
const loading = ref(false) const loading = ref(false)
// 查询列表 // 查询列表
function getList() { function getList() {
loading.value = true loading.value = true
setTimeout(() => { queryDiscoverList(queryParams.value).then(res=>{
console.log(res)
if(res.flag){
tableData.value = res.data.list.map(item => ({
...item,
id: item.id,
taskName: item.tname,
result: item.countResult,
dbType: item.dbtype,
operator: item.username,
createTime: item.createtime,
updateTime: item.updatetime,
remark: item.note
}))
loading.value = false
}else{
tableData.value = []
loading.value = false loading.value = false
}, 3000) ElMessage.error(res.msg)
}
}).catch((err) => {
tableData.value = []
loading.value = false
console.log(err)
ElMessage.error(res.msg)
})
} }
function pageProjectManage() { function pageProjectManage() {
...@@ -95,7 +131,8 @@ function pageProjectManage() { ...@@ -95,7 +131,8 @@ function pageProjectManage() {
*/ */
function handleAdd(){ function handleAdd(){
console.log('新增发现任务') console.log('新增发现任务')
addDiscoveryDialogRef.value.openDialog() // addDiscoveryDialogRef.value.openDialog()
emit('page', 'addEditDiscovery', { listItem: null, addEditType: 'add'})
} }
// 操作处理函数 // 操作处理函数
const handleEdit = (row) => { const handleEdit = (row) => {
...@@ -381,7 +418,7 @@ const handleAddEditConfirm = (submitData, isEditMode) =>{ ...@@ -381,7 +418,7 @@ const handleAddEditConfirm = (submitData, isEditMode) =>{
</div> </div>
<!-- 新增/编辑发现任务弹窗 --> <!-- 新增/编辑发现任务弹窗 -->
<AddDiscoveryDialog ref="addDiscoveryDialogRef" @confirm="handleAddEditConfirm" /> <!-- <AddDiscoveryDialog ref="addDiscoveryDialogRef" @confirm="handleAddEditConfirm" /> -->
<SmartDiscoveryDialog <SmartDiscoveryDialog
v-model="smartDiscoveryDialogVisible" v-model="smartDiscoveryDialogVisible"
ref="smartDiscoveryDialogRef" ref="smartDiscoveryDialogRef"
......
...@@ -208,6 +208,7 @@ const handleEnterProject = (project) => { ...@@ -208,6 +208,7 @@ const handleEnterProject = (project) => {
console.log('进入项目:', project) console.log('进入项目:', project)
changeRoute() changeRoute()
sessionStorage.setItem('projectId',project.id) sessionStorage.setItem('projectId',project.id)
sessionStorage.setItem('projectName',project.project)
router.push({ path:'/indexManage/ItemManage',query: { projectId: project.id } }) router.push({ path:'/indexManage/ItemManage',query: { projectId: project.id } })
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论