feat(业务): 我负责的页面完善2

This commit is contained in:
GUjiYN 2024-04-22 23:12:26 +08:00
parent 380f10d13b
commit 6f1215215e
5 changed files with 208 additions and 142 deletions

4
components.d.ts vendored
View File

@ -13,7 +13,7 @@ declare module '@vue/runtime-core' {
DropdownMenu: typeof import('./src/components/Share/DropdownMenu.vue')['default'] DropdownMenu: typeof import('./src/components/Share/DropdownMenu.vue')['default']
Dropzone: typeof import('./src/components/Dropzone/index.vue')['default'] Dropzone: typeof import('./src/components/Dropzone/index.vue')['default']
EditorImage: typeof import('./src/components/Tinymce/components/EditorImage.vue')['default'] EditorImage: typeof import('./src/components/Tinymce/components/EditorImage.vue')['default']
ElAutocomplete: typeof import('element-plus/es')['ElAutocomplete'] ElAlert: typeof import('element-plus/es')['ElAlert']
ElBadge: typeof import('element-plus/es')['ElBadge'] ElBadge: typeof import('element-plus/es')['ElBadge']
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb'] ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem'] ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
@ -24,7 +24,6 @@ declare module '@vue/runtime-core' {
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
ElDialog: typeof import('element-plus/es')['ElDialog'] ElDialog: typeof import('element-plus/es')['ElDialog']
ElDivider: typeof import('element-plus/es')['ElDivider']
ElDropdown: typeof import('element-plus/es')['ElDropdown'] ElDropdown: typeof import('element-plus/es')['ElDropdown']
ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu'] ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
@ -36,6 +35,7 @@ declare module '@vue/runtime-core' {
ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElOption: typeof import('element-plus/es')['ElOption'] ElOption: typeof import('element-plus/es')['ElOption']
ElPagination: typeof import('element-plus/es')['ElPagination'] ElPagination: typeof import('element-plus/es')['ElPagination']
ElPopover: typeof import('element-plus/es')['ElPopover']
ElProgress: typeof import('element-plus/es')['ElProgress'] ElProgress: typeof import('element-plus/es')['ElProgress']
ElRow: typeof import('element-plus/es')['ElRow'] ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar']

View File

@ -160,9 +160,6 @@ export function GetChildModById(sysId, token) {
}); });
} }
//查询子模块
//新增子模块 //新增子模块
export function AddChildModule(data, token) { export function AddChildModule(data, token) {
return request({ return request({

View File

@ -421,7 +421,6 @@ const AddDialogVisible = ref(false);
const DeleteDialogVisible = ref(false); const DeleteDialogVisible = ref(false);
const DeleteMulDialogVisible = ref(false); const DeleteMulDialogVisible = ref(false);
const EditDialogVisible = ref(false); const EditDialogVisible = ref(false);
const AppointDialogVisible = ref(false);
const tableData = ref([]); const tableData = ref([]);
const listLoading = ref(false); const listLoading = ref(false);
const token = getToken(); const token = getToken();
@ -433,10 +432,6 @@ const editId = reactive({ id:'', })
const searchData = reactive({ name:'', }); const searchData = reactive({ name:'', });
const deleteDatas = reactive({ ids: '' }); const deleteDatas = reactive({ ids: '' });
const deleteData = reactive({ id: '' }); const deleteData = reactive({ id: '' });
const currentRowData = ref([]);
let appointOptions = reactive({option:''});
const selectedPrincipal = ref('');
const AddFormData = reactive({ const AddFormData = reactive({
name: '', name: '',
description: '', description: '',
@ -623,6 +618,28 @@ function CancelDelete() {
// //
function toggleEditDialog(row) {
console.log("Editing row:", row); //
// EditFormData
EditFormData.name = row.name;
EditFormData.description = row.description;
EditFormData.tags = row.tags.toString();
EditFormData.files = row.files;
EditFormData.cycle = row.cycle;
EditFormData.workLoad = row.workLoad;
EditFormData.status = row.status;
editId.id = row.id
EditFormData.principalId = row.principalId;
EditFormData.projectId = row.id;
EditDialogVisible.value = true; //
}
function CancelEdit() {
EditDialogVisible.value = false;
}
async function editProject() { async function editProject() {
console.log("edit token:", token); console.log("edit token:", token);
try { try {
@ -653,27 +670,6 @@ async function SearchProjectByName() {
} }
} }
function toggleEditDialog(row) {
console.log("Editing row:", row); //
// EditFormData
EditFormData.name = row.name;
EditFormData.description = row.description;
EditFormData.tags = row.tags.toString();
EditFormData.files = row.files;
EditFormData.cycle = row.cycle;
EditFormData.workLoad = row.workLoad;
EditFormData.status = row.status;
editId.id = row.id
EditFormData.principalId = row.principalId;
EditDialogVisible.value = true; //
}
function CancelEdit() {
EditDialogVisible.value = false;
}
function reset() { function reset() {
searchData.name = ''; searchData.name = '';
getList(); getList();

View File

@ -287,6 +287,8 @@
> >
<el-input v-model="EditFormData.name"/> <el-input v-model="EditFormData.name"/>
</el-form-item> </el-form-item>
<el-row>
<el-col :span="15">
<el-form-item <el-form-item
label="截止时间" label="截止时间"
:rules="{ :rules="{
@ -295,19 +297,16 @@
trigger: 'blur', trigger: 'blur',
}" }"
> >
<el-input v-model="EditFormData.deadLine"/> <div class="block">
<el-date-picker
type="date"
placeholder="选择"
v-model="EditFormData.deadLine"
/>
</div>
</el-form-item> </el-form-item>
<el-form-item </el-col>
label="描述" <el-col :span="9">
:rules="{
message: 'domain can not be null',
trigger: 'blur',
}"
>
<el-input v-model="EditFormData.description"/>
</el-form-item>
<el-row>
<el-col :span="12">
<el-form-item <el-form-item
label="周期" label="周期"
:rules="{ :rules="{
@ -318,18 +317,6 @@
<el-input v-model="EditFormData.cycle"/> <el-input v-model="EditFormData.cycle"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item
label="项目负责人id"
:rules="{
required: true,
message: 'domain can not be null',
trigger: 'blur',
}"
>
<el-input v-model="EditFormData.principalId"/>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-form-item> <el-form-item>
<el-row> <el-row>
@ -363,6 +350,15 @@
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item
label="描述"
:rules="{
message: 'domain can not be null',
trigger: 'blur',
}"
>
<el-input type="textarea" v-model="EditFormData.description"/>
</el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
@ -590,26 +586,7 @@ function CancelDelete() {
// //
async function editChildSystem() {
console.log("edit token:", token);
try {
const response = await EditChildSystem(editId, EditFormData, token);
if (response.data) {
tableData.value = response.data;
} else {
console.error("未获取到预期数据,响应内容:", response);
}
} finally {
listLoading.value = false;
AddDialogVisible.value = false;
}
}
function toggleEditDialog(row) { function toggleEditDialog(row) {
console.log("Editing row:", row); //
EditFormData.name = row.name; EditFormData.name = row.name;
EditFormData.description = row.description; EditFormData.description = row.description;
EditFormData.status = row.status; EditFormData.status = row.status;
@ -624,6 +601,26 @@ function CancelEdit() {
EditDialogVisible.value = false; EditDialogVisible.value = false;
} }
async function editChildSystem() {
try {
const response = await EditChildSystem(editId, EditFormData, token);
if (response.code === 200) {
EditDialogVisible.value = false;
listLoading.value = true;
getChildSysById();
ElMessage({
message: '编辑成功',
type: 'success',
});
} else {
console.error("编辑失败,响应内容:", response);
}
} finally {
listLoading.value = false;
AddDialogVisible.value = false;
}
}
function reset() { function reset() {
searchData.name = ''; searchData.name = '';
getChildSysById(); getChildSysById();
@ -646,17 +643,18 @@ async function getAppointOptions() {
function toggleAppointDialog(row) { function toggleAppointDialog(row) {
currentRowData.value = row; currentRowData.value = row;
AppointDialogVisible.value = true; AppointDialogVisible.value = true;
editId.id = row.id
} }
//TODO id //TODO id
const principalUser = reactive({ const principalUser = reactive({
principalId: '6' principalId: selectedPrincipal.value
}) })
async function confirmAppointment() { async function confirmAppointment() {
console.log("指定新负责人:", selectedPrincipal.value); console.log("指定新负责人:", selectedPrincipal.value);
//TODO id //TODO id
editId.id = '27' //editId.id = '27'
const response = await EditChildSystem(editId, principalUser, token); const response = await EditChildSystem(editId, principalUser, token);
console.log("指定负责人Result:", response); console.log("指定负责人Result:", response);
@ -682,8 +680,6 @@ function CancelAppoint() {
AppointDialogVisible.value = false; AppointDialogVisible.value = false;
} }
onMounted(async () => { onMounted(async () => {
await getChildSysById(); await getChildSysById();
await getAppointOptions(); await getAppointOptions();

View File

@ -47,7 +47,7 @@
<el-icon><Plus /></el-icon> <el-icon><Plus /></el-icon>
新增 新增
</el-button> </el-button>
<el-button type="danger"> <el-button type="danger" @click="toggleMulDeleteDialog()">
<el-icon><DeleteFilled /></el-icon> <el-icon><DeleteFilled /></el-icon>
删除 删除
</el-button> </el-button>
@ -57,7 +57,7 @@
<!--表格内容--> <!--表格内容-->
<el-table :data="tableData" ref="multipleTableRef" style="width: 100%"> <el-table :data="tableData" ref="multipleTableRef" style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="55" />
<el-table-column prop="id" label="序号"> <el-table-column prop="id" label="序号">
<template v-slot="{row}"> <template v-slot="{row}">
@ -114,7 +114,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table >
<!--表格分页--> <!--表格分页-->
<div style="display: flex; justify-content: center;margin-top: 2vh"> <div style="display: flex; justify-content: center;margin-top: 2vh">
@ -247,7 +247,23 @@
</template> </template>
</el-dialog> </el-dialog>
<!--删除子模块对话框--> <!--删除多个子模块对话框-->
<el-dialog
title="删除子系统"
width="450"
align-center
v-model="DeleteMulDialogVisible"
>
<span>确认删除该项目吗?</span>
<template #footer>
<div class="dialog-footer">
<el-button type="danger" @click="deleteMulChildModule()">删除</el-button>
<el-button @click="CancelMulDelete()">取消</el-button>
</div>
</template>
</el-dialog>
<!--删除单个子模块对话框-->
<el-dialog <el-dialog
title="删除子模块" title="删除子模块"
width="450" width="450"
@ -257,7 +273,7 @@
<span>确认删除该子模块吗?</span> <span>确认删除该子模块吗?</span>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button type="danger" >删除</el-button> <el-button type="danger" @click="deleteChildModule()">删除</el-button>
<el-button @click="CancelDelete()">取消</el-button> <el-button @click="CancelDelete()">取消</el-button>
</div> </div>
</template> </template>
@ -284,12 +300,18 @@
trigger: 'blur', trigger: 'blur',
}" }"
> >
<el-input v-model="EditFormData.deadLine"/> <div class="block">
<el-date-picker
type="date"
placeholder="选择"
v-model="EditFormData.deadLine"
/>
</div>
</el-form-item> </el-form-item>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item
label="项目负责人id" label="负责人id"
:rules="{ :rules="{
required: true, required: true,
message: 'domain can not be null', message: 'domain can not be null',
@ -299,17 +321,6 @@
<el-input v-model="EditFormData.principalId"/> <el-input v-model="EditFormData.principalId"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item
label="系统id"
:rules="{
message: 'domain can not be null',
trigger: 'blur',
}"
>
<el-input />
</el-form-item>
</el-col>
</el-row> </el-row>
<el-form-item <el-form-item
label="周期" label="周期"
@ -394,7 +405,7 @@
import { ref, onMounted, reactive } from 'vue'; import { ref, onMounted, reactive } from 'vue';
import { useRoute, useRouter } from 'vue-router'; import { useRoute, useRouter } from 'vue-router';
import { import {
AddChildModule, AddChildModule, DeleteChildModule,
EditChildModule, GetAppointOptions, EditChildModule, GetAppointOptions,
GetChildModById, GetProjectByName GetChildModById, GetProjectByName
} from '@/api/project'; } from '@/api/project';
@ -405,12 +416,15 @@ import { ElButton, ElTableColumn } from 'element-plus'; // 确保导入你的 AP
const listLoading = ref(false); const listLoading = ref(false);
const AddDialogVisible = ref(false); const AddDialogVisible = ref(false);
const DeleteDialogVisible = ref(false); const DeleteDialogVisible = ref(false);
const DeleteMulDialogVisible = ref(false);
const EditDialogVisible = ref(false); const EditDialogVisible = ref(false);
const AppointDialogVisible = ref(false); const AppointDialogVisible = ref(false);
const tableData = ref([]); const tableData = ref([]);
const token = getToken(); const token = getToken();
const editId = reactive({ id:'', }) const editId = reactive({ id:'', })
const searchData = reactive({ name:'', }); const searchData = reactive({ name:'', });
const deleteDatas = reactive({ ids: '' });
const deleteData = reactive({ id: '' });
const currentRowData = ref([]); const currentRowData = ref([]);
let appointOptions = reactive({option:''}); let appointOptions = reactive({option:''});
const selectedPrincipal = ref(''); const selectedPrincipal = ref('');
@ -475,6 +489,11 @@ async function SearchModuleByName() {
} }
// //
function toggleAddDialog() {
AddFormData.projectChildId = systemId;
AddDialogVisible.value = !AddDialogVisible.value;
}
async function addChildModule() { async function addChildModule() {
console.log("add token:", token); console.log("add token:", token);
try { try {
@ -495,48 +514,85 @@ async function addChildModule() {
} }
} }
//
//
async function editChildModule() {
console.log("edit token:", token);
try {
const response = await EditChildModule(editId, EditFormData, token);
if (response.code === 200) {
listLoading.value = true;
ElMessage({
message: '修改成功',
type: 'success',
})
getChildModuleById();
} else {
console.error("未获取到预期数据,响应内容:", response);
}
} finally {
listLoading.value = false;
AddDialogVisible.value = false;
}
}
function toggleAddDialog() {
AddFormData.projectChildId = systemId;
AddDialogVisible.value = !AddDialogVisible.value;
}
function CancelAdd() { function CancelAdd() {
AddDialogVisible.value = false; AddDialogVisible.value = false;
} }
function toggleDeleteDialog(row) {
console.log("Delete row:", row); // //
DeleteDialogVisible.value = !DeleteDialogVisible.value; function handleSelectionChange(selection) {
deleteDatas.ids = selection.map(item => item.id);
} }
function toggleMulDeleteDialog() {
if (deleteDatas.ids.length === 0) {
ElMessage({
message: '请选择要删除的子模块',
type: 'warning',
duration: 2500
});
} else {
DeleteMulDialogVisible.value = true;
}
}
async function deleteMulChildModule() {
try {
const res = await DeleteChildModule(deleteDatas.ids, token);
if (res.code === 200) {
ElMessage({
message: '删除成功',
type: 'success',
});
console.log("多个子模块删除成功");
DeleteMulDialogVisible.value = false;
getChildModuleById();
} else {
console.error("'多个子模块删除失败:", res);
}
} finally {
listLoading.value = false;
}
}
//
function CancelMulDelete() {
DeleteMulDialogVisible.value = false;
}
//
function toggleDeleteDialog(row) {
deleteData.id = row.id;
DeleteDialogVisible.value = true;
}
async function deleteChildModule() {
try {
const res = await DeleteChildModule(deleteData.id, token);
if (res.code === 200) {
ElMessage({
message: '删除成功',
type: 'success',
});
console.log("单个子模块删除成功");
DeleteDialogVisible.value = false;
getChildModuleById();
} else {
console.error("单个子模块删除失败:", res);
}
} finally {
listLoading.value = false;
}
}
//
function CancelDelete() { function CancelDelete() {
DeleteDialogVisible.value = false; DeleteDialogVisible.value = false;
} }
//
function toggleEditDialog(row) { function toggleEditDialog(row) {
console.log("Editing row:", row); //
EditFormData.name = row.name; EditFormData.name = row.name;
EditFormData.description = row.description; EditFormData.description = row.description;
EditFormData.status = row.status; EditFormData.status = row.status;
@ -547,10 +603,31 @@ function toggleEditDialog(row) {
EditDialogVisible.value = true; // EditDialogVisible.value = true; //
} }
async function editChildModule() {
try {
const response = await EditChildModule(editId, EditFormData, token);
if (response.code === 200) {
listLoading.value = true;
ElMessage({
message: '修改成功',
type: 'success',
})
getChildModuleById();
} else {
console.error("修改失败,响应内容:", response);
}
} finally {
listLoading.value = false;
AddDialogVisible.value = false;
}
}
//
function CancelEdit() { function CancelEdit() {
EditDialogVisible.value = false; EditDialogVisible.value = false;
} }
function reset() { function reset() {
searchData.name = ''; searchData.name = '';
getChildModuleById(); getChildModuleById();