Commit fb919b51 by ningjihai

项目列表

parent 8169093e
import request from '@/utils/request'
/**
* 项目列表
* @param {*} query
* @returns
*/
export function selectDataProject(data) {
return request({
url: '/core/tdataproject/selectDataProject',
method: 'post',
data: data
})
}
...@@ -34,8 +34,8 @@ function onSearch() { ...@@ -34,8 +34,8 @@ function onSearch() {
// 重置 // 重置
function onReset(formRef: FormInstance) { function onReset(formRef: FormInstance) {
queryForm.value.projectName = '' queryForm.value.proName = ''
queryForm.value.remark = '' queryForm.value.note = ''
emit('reset', formRef) emit('reset', formRef)
} }
...@@ -49,16 +49,16 @@ function onReset(formRef: FormInstance) { ...@@ -49,16 +49,16 @@ function onReset(formRef: FormInstance) {
:model="queryForm" :model="queryForm"
@search="onSearch" @search="onSearch"
@reset="onReset"> @reset="onReset">
<el-form-item label="项目名称" prop="projectName"> <el-form-item label="项目名称" prop="proName">
<el-input <el-input
v-model="queryForm.projectName" v-model="queryForm.proName"
placeholder="请输入项目名称" placeholder="请输入项目名称"
clearable clearable
/> />
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="note">
<el-input <el-input
v-model="queryForm.remark" v-model="queryForm.note"
placeholder="请输入备注" placeholder="请输入备注"
clearable clearable
/> />
......
<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 } from 'element-plus' import { ElMessage } from 'element-plus'
import QueryForm from './QueryForm.vue' import QueryForm from './QueryForm.vue'
import ProjectEditDialog from './ProjectEditDialog.vue' import ProjectEditDialog from './ProjectEditDialog.vue'
...@@ -7,10 +7,29 @@ import DownloadPluginDialog from './DownloadPluginDialog.vue' ...@@ -7,10 +7,29 @@ import DownloadPluginDialog from './DownloadPluginDialog.vue'
import ExportDialog from './ExportDialog.vue' import ExportDialog from './ExportDialog.vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import {changeRoute} from '@/utils/switchRoute' import {changeRoute} from '@/utils/switchRoute'
import {
selectDataProject
} from '@/api/project'
import useAppStore from '@/store/modules/app'
const appStore = useAppStore()
const projectAttr = ['数据源', '数据域', '发现规则'];
const router = useRouter() const router = useRouter()
const emit = defineEmits(['page']) const emit = defineEmits(['page'])
const { proxy } = getCurrentInstance() const { proxy } = getCurrentInstance()
const loginUser = {
tsysUser: {
id: appStore.userInfo.user.id,
username: appStore.userInfo.user.username
}
}
function onReset(formQuery) { function onReset(formQuery) {
console.log('onReset') console.log('onReset')
formQuery.resetFields() formQuery.resetFields()
...@@ -21,44 +40,49 @@ function onQuery() { ...@@ -21,44 +40,49 @@ function onQuery() {
} }
// 搜索按钮操作 // 搜索按钮操作
function handleQuery() { function handleQuery() {
queryParams.value.pageNum = 1 queryParams.value.page = 1
getList() getList()
} }
const data = reactive({ const data = reactive({
queryParams: { queryParams: {
pageNum: 1, page: 1,
pageSize: 8, everypage: 8,
projectName: '', proName: '',
remark: '' note: ''
} }
}) })
// 表格数据 // 表格数据
const { queryParams } = toRefs(data) const { queryParams } = toRefs(data)
const tableList = ref([ const tableList = ref([
{ // {
id: '1', // id: '1',
projectName: '若依配测系统1', // proName: '若依配测系统1',
datasource: 'MySQL', // datasource: 'MySQL',
domain: '电商', // domain: '电商',
findRule: '自动发现' // findRule: '自动发现'
}, // },
{ // {
id: '2', // id: '2',
projectName: '若依配测系统2', // proName: '若依配测系统2',
datasource: 'Oracle', // datasource: 'Oracle',
domain: '金融', // domain: '金融',
findRule: '手动配置' // findRule: '手动配置'
}, // },
{ // {
id: '3', // id: '3',
projectName: '若依配测系统3', // proName: '若依配测系统3',
datasource: 'SQL Server', // datasource: 'SQL Server',
domain: '医疗', // domain: '医疗',
findRule: '规则匹配' // findRule: '规则匹配'
} // }
]) ])
const total = ref(3) const total = ref(3)
...@@ -68,9 +92,45 @@ function getList() { ...@@ -68,9 +92,45 @@ function getList() {
loading.value = true loading.value = true
setTimeout(() => { selectDataProject({
loginUser:loginUser,
everypage:queryParams.value.everypage,
note:queryParams.value.note,
page:queryParams.value.page,
proName:queryParams.value.proName,
}).then(res=>{
tableList.value = res.data.map(item => {
let arrs = []
projectAttr.forEach((name, index) => {
if (index === 0) {
arrs.push({
label: name,
value: item.list[0].s
})
} else if (index === 1){
arrs.push({
label: name,
value: item.list[3].s
})
} else if (index === 2) {
arrs.push({
label: name,
value: item.list[6] && item.list[6].s ? item.list[6].s : 0
})
}
})
item.list = arrs
return item;
});
total.value = res.totalCount;
loading.value = false loading.value = false
}, 3000); console.log('tableList.value',tableList.value)
})
// setTimeout(() => {
// loading.value = false
// }, 3000);
} }
...@@ -140,12 +200,12 @@ const handleImportProject = (project) => { ...@@ -140,12 +200,12 @@ const handleImportProject = (project) => {
} }
// 导出项目 // 导出项目
const handleExportProject = (project) => { const handleExportProject = (project) => {
// ElMessage.success(`开始导出项目 "${project.projectName}"`) // ElMessage.success(`开始导出项目 "${project.proName}"`)
openExportDialog(project) openExportDialog(project)
} }
// 下载插件 // 下载插件
const handleDownloadPlugin = (project) => { const handleDownloadPlugin = (project) => {
// ElMessage.success(`开始下载 "${project.projectName}" 的插件`) // ElMessage.success(`开始下载 "${project.proName}" 的插件`)
currentProjectId.value = project.id // 假设项目对象中有id字段 currentProjectId.value = project.id // 假设项目对象中有id字段
downloadDialogVisible.value = true downloadDialogVisible.value = true
console.log(123) console.log(123)
...@@ -161,7 +221,7 @@ const handleSubmit = (formData) => { ...@@ -161,7 +221,7 @@ const handleSubmit = (formData) => {
// 模拟新增 // 模拟新增
const newProject = { const newProject = {
id: tableList.value.length + 1, id: tableList.value.length + 1,
projectName: formData.projectName, proName: formData.proName,
datasource: '待配置', datasource: '待配置',
domain: '待配置', domain: '待配置',
findRule: '待配置' findRule: '待配置'
...@@ -173,7 +233,7 @@ const handleSubmit = (formData) => { ...@@ -173,7 +233,7 @@ const handleSubmit = (formData) => {
// 模拟编辑 // 模拟编辑
const index = tableList.value.findIndex(p => p.id === currentProject.value.id) const index = tableList.value.findIndex(p => p.id === currentProject.value.id)
if (index !== -1) { if (index !== -1) {
tableList.value[index].projectName = formData.projectName tableList.value[index].proName = formData.proName
ElMessage.success('编辑项目成功') ElMessage.success('编辑项目成功')
} }
} }
...@@ -207,7 +267,9 @@ const handleBackup = (projectId) => { ...@@ -207,7 +267,9 @@ const handleBackup = (projectId) => {
console.log('备份项目:', projectId) console.log('备份项目:', projectId)
} }
onMounted(()=>{
handleQuery()
})
</script> </script>
<template> <template>
...@@ -239,7 +301,7 @@ const handleBackup = (projectId) => { ...@@ -239,7 +301,7 @@ const handleBackup = (projectId) => {
<el-card shadow="always"> <el-card shadow="always">
<template #header> <template #header>
<div class="flex-container justify-between align-center"> <div class="flex-container justify-between align-center">
{{ item.projectName }} {{ item.project }}
<el-dropdown placement="bottom-end" @command="(command) => handleCommandProject(command, item)"> <el-dropdown placement="bottom-end" @command="(command) => handleCommandProject(command, item)">
<el-button type="primary" icon="Operation"> <el-button type="primary" icon="Operation">
操作 操作
...@@ -258,18 +320,11 @@ const handleBackup = (projectId) => { ...@@ -258,18 +320,11 @@ const handleBackup = (projectId) => {
</div> </div>
</template> </template>
<div class="item-content flex-container align-center"> <div class="item-content flex-container align-center" v-for="(x,y) in item.list">
<div class="label">数据源:</div> <div class="label">{{x.label}}:</div>
<div class="value flex1">{{ item.datasource }}</div> <div class="value flex1">{{x.value}}</div>
</div>
<div class="item-content flex-container align-center">
<div class="label">数据域:</div>
<div class="value flex1">{{ item.domain }}</div>
</div>
<div class="item-content flex-container align-center">
<div class="label">发现规则:</div>
<div class="value flex1">{{ item.findRule }}</div>
</div> </div>
</el-card> </el-card>
</el-col> </el-col>
</el-row> </el-row>
...@@ -277,8 +332,8 @@ const handleBackup = (projectId) => { ...@@ -277,8 +332,8 @@ const handleBackup = (projectId) => {
<pagination <pagination
v-show="total > 0" v-show="total > 0"
:total="total" :total="total"
v-model:page="queryParams.pageNum" v-model:page="queryParams.page"
v-model:limit="queryParams.pageSize" v-model:limit="queryParams.everypage"
@pagination="getList" @pagination="getList"
/> />
</div> </div>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论