Browse Source

fix: 合同,项目

ops-management-platform-frontend-dev
wbc 1 month ago
parent
commit
c231e576b3
  1. 64
      src/views/project/contractManage/addModal.vue
  2. 52
      src/views/project/contractManage/api.ts
  3. 18
      src/views/project/contractManage/detailDrawer.vue
  4. 22
      src/views/project/contractManage/index.vue
  5. 9
      src/views/project/projectManage/addModal.vue
  6. 52
      src/views/project/projectManage/api.ts
  7. 18
      src/views/project/projectManage/detailDrawer.vue
  8. 22
      src/views/project/projectManage/index.vue
  9. 9
      src/views/project/serviceManage/index.vue

64
src/views/project/contractManage/addModal.vue

@ -1,6 +1,6 @@
<template>
<a-modal v-model:open="visible" :title="title" @ok="handleOk" width="50%">
<a-form :model="form" layout="vertical">
<a-modal v-model:open="visible" :title="title" @ok="handleOk" @cancel="closeModal" width="50%">
<a-form ref="formRef" :model="form" layout="vertical">
<a-row :gutter="[16, 16]">
<a-col :span="24">
<a-form-item label="合同名称" name="contractName">
@ -54,14 +54,18 @@
</a-col>
<a-col :span="12">
<a-form-item label="签订日期" name="signDate">
<a-date-picker v-model:value="form.signDate" placeholder="请选择" />
<a-date-picker
v-model:value="form.signDate"
placeholder="请选择"
valueFormat="YYYY-MM-DD"
/>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<a-form-item label="合同工期" name="contractDuration">
<a-range-picker v-model:value="form.contractDuration" />
<a-range-picker v-model:value="form.contractDuration" valueFormat="YYYY-MM-DD" />
</a-form-item>
</a-col>
</a-row>
@ -130,12 +134,15 @@
<script>
import { reactive, ref } from 'vue';
import { getInfo, add, update } from './api';
import { message } from 'ant-design-vue';
export default {
setup() {
const title = ref('新增');
const formRef = ref();
const visible = ref(false);
const form = reactive({
let form = reactive({
contractName: '',
contractCode: '',
contractParent: '',
@ -151,6 +158,7 @@
contractContent: '',
remark: '',
attachment: [],
id: null,
});
//
const projectNameOptions = [
@ -167,22 +175,54 @@
label: 'c',
},
];
const showModal = (type, id) => {
const showModal = async (type, id) => {
visible.value = true;
if (type == 1) {
title.value = '新增';
} else if (type == 2) {
title.value = '编辑';
console.log(id);
const data = await getInfo(id);
for (let i in form) {
form[i] = data[i];
}
form.contractDuration = [data.startDate, data.endDate];
form.attachment = data.attachment ? data.attachment : [];
}
visible.value = true;
};
const handleOk = () => {
console.log('Form Data:', form);
//
formRef.value.validate().then((valid) => {
if (valid) {
if (title.value == '新增') {
let params = {};
for (let i in form) {
params[i] = form[i];
}
params.startDate = params.contractDuration[0];
params.endDate = params.contractDuration[1];
add(params).then((_) => {
message.success('新增成功');
visible.value = false;
});
} else {
let params = {};
for (let i in form) {
params[i] = form[i];
}
params.startDate = params.contractDuration[0];
params.endDate = params.contractDuration[1];
update(params).then((_) => {
message.success('编辑成功');
visible.value = false;
});
}
}
});
};
const closeModal = () => {
formRef.value.resetFields();
visible.value = false;
};
return {
visible,
title,
@ -190,6 +230,8 @@
showModal,
handleOk,
projectNameOptions,
formRef,
closeModal,
};
},
};

52
src/views/project/contractManage/api.ts

@ -1,58 +1,26 @@
import { ID, IDS, PageQuery, commonExport } from '@/api/base';
import { defHttp } from '@/utils/http/axios';
import { Dayjs } from 'dayjs';
enum Api {
root = '/workflow/leave',
list = '/workflow/leave/list',
export = '/workflow/leave/export',
root = '/platform/contractInfo',
list = '/platform/contractInfo/list',
}
export interface Leave {
id: string;
leaveType: string;
startDate: string;
endDate: string;
leaveDays: number;
remark: string;
processInstanceVo?: any;
dateTime?: [string, string] | [Dayjs, Dayjs];
export function list(params: any) {
return defHttp.get({ url: Api.list, params });
}
export interface Resp {
createDept: number;
createBy: number;
createTime: string;
updateBy: number;
updateTime: string;
id: string;
leaveType: string;
startDate: string;
endDate: string;
leaveDays: number;
remark?: any;
}
export function list(params?: PageQuery) {
return defHttp.get<Leave[]>({ url: Api.list, params });
}
export function exportExcel(data: any) {
return commonExport(Api.export, data);
}
export function getInfo(id: ID) {
return defHttp.get<Leave>({ url: `${Api.root}/${id}` });
export function getInfo(id: any) {
return defHttp.get({ url: `${Api.root}/${id}` });
}
export function add(data: any) {
return defHttp.post<Resp>({ url: Api.root, data });
return defHttp.post({ url: Api.root, data });
}
export function update(data: any) {
return defHttp.put<Resp>({ url: Api.root, data });
return defHttp.put({ url: Api.root, data });
}
export function removeByIds(ids: IDS) {
return defHttp.deleteWithMsg<void>({ url: `${Api.root}/${ids.join(',')}` });
export function removeByIds(ids: any) {
return defHttp.deleteWithMsg({ url: `${Api.root}/${ids.join(',')}` });
}

18
src/views/project/contractManage/detailDrawer.vue

@ -89,7 +89,8 @@
<script>
import { reactive, ref } from 'vue';
// import { getInfo } from './api';
import { getInfo } from './api';
export default {
setup() {
//
@ -112,16 +113,13 @@
//
const visible = ref(false);
// const showDrawer = async(id) => {
// const data = await getInfo(id)
// for(let i in detail){
// detail[i] = data[i]
// }
// visible.value = true;
// console.log(detail)
// };
const showDrawer = () => {
const showDrawer = async (id) => {
const data = await getInfo(id);
for (let i in detail) {
detail[i] = data[i];
}
visible.value = true;
console.log(detail);
};
//
const onClose = () => {

22
src/views/project/contractManage/index.vue

@ -3,13 +3,12 @@
<BasicTable @register="registerTable">
<template #toolbar>
<a-button type="primary" @click="handleAdd">新增</a-button>
<a-button type="link" @click="handleDetail">详情</a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column && record && column.key === 'action'">
<!-- <a-button type="link" @click="handleEdit(record.id)">编辑</a-button>
<a-button type="link" @click="handleDelete(record.id)">删除</a-button> -->
<a-button type="link" @click="handleDetail">详情</a-button>
<a-button type="link" @click="handleEdit(record.id)">编辑</a-button>
<a-button type="link" @click="handleDelete(record.id)">删除</a-button>
<a-button type="link" @click="handleDetail(record.id)">详情</a-button>
</template>
</template>
</BasicTable>
@ -21,7 +20,7 @@
<script setup lang="ts">
import { PageWrapper } from '@/components/Page';
import { BasicTable, useTable } from '@/components/Table';
import { list } from './api';
import { list, removeByIds } from './api';
import { formSchemas, columns } from './data';
import detailDrawer from './detailDrawer.vue';
import { ref } from 'vue';
@ -29,7 +28,7 @@
defineOptions({ name: 'ContractManage' });
const [registerTable] = useTable({
const [registerTable, { reload }] = useTable({
rowSelection: {
type: 'checkbox',
},
@ -59,14 +58,21 @@
//
const detailDrawerRef = ref();
const handleDetail = () => {
detailDrawerRef.value.showDrawer();
const handleDetail = (id: any) => {
detailDrawerRef.value.showDrawer(id);
};
const handleDelete = async (id: any) => {
await removeByIds([id]);
reload();
};
//
const addModalRef = ref();
const handleAdd = () => {
addModalRef.value.showModal(1);
};
const handleEdit = (id: any) => {
addModalRef.value.showModal(2, id);
};
</script>
<style scoped></style>

9
src/views/project/projectManage/addModal.vue

@ -109,7 +109,8 @@
<script>
import { reactive, ref } from 'vue';
import { getInfo } from './api';
// import { message } from 'ant-design-vue';
export default {
setup() {
const title = ref('新增');
@ -143,11 +144,15 @@
label: 'c',
},
];
const showModal = (type, id) => {
const showModal = async (type, id) => {
if (type == 1) {
title.value = '新增';
} else if (type == 2) {
title.value = '编辑';
const data = await getInfo(id);
for (let i in form) {
form[i] = data[i];
}
console.log(id);
}
visible.value = true;

52
src/views/project/projectManage/api.ts

@ -1,58 +1,26 @@
import { ID, IDS, PageQuery, commonExport } from '@/api/base';
import { defHttp } from '@/utils/http/axios';
import { Dayjs } from 'dayjs';
enum Api {
root = '/workflow/leave',
list = '/workflow/leave/list',
export = '/workflow/leave/export',
root = '/platform/projectInfo',
list = '/platform/projectInfo/list',
}
export interface Leave {
id: string;
leaveType: string;
startDate: string;
endDate: string;
leaveDays: number;
remark: string;
processInstanceVo?: any;
dateTime?: [string, string] | [Dayjs, Dayjs];
export function list(params: any) {
return defHttp.get({ url: Api.list, params });
}
export interface Resp {
createDept: number;
createBy: number;
createTime: string;
updateBy: number;
updateTime: string;
id: string;
leaveType: string;
startDate: string;
endDate: string;
leaveDays: number;
remark?: any;
}
export function list(params?: PageQuery) {
return defHttp.get<Leave[]>({ url: Api.list, params });
}
export function exportExcel(data: any) {
return commonExport(Api.export, data);
}
export function getInfo(id: ID) {
return defHttp.get<Leave>({ url: `${Api.root}/${id}` });
export function getInfo(id: any) {
return defHttp.get({ url: `${Api.root}/${id}` });
}
export function add(data: any) {
return defHttp.post<Resp>({ url: Api.root, data });
return defHttp.post({ url: Api.root, data });
}
export function update(data: any) {
return defHttp.put<Resp>({ url: Api.root, data });
return defHttp.put({ url: Api.root, data });
}
export function removeByIds(ids: IDS) {
return defHttp.deleteWithMsg<void>({ url: `${Api.root}/${ids.join(',')}` });
export function removeByIds(ids: any) {
return defHttp.deleteWithMsg({ url: `${Api.root}/${ids.join(',')}` });
}

18
src/views/project/projectManage/detailDrawer.vue

@ -89,7 +89,8 @@
<script>
import { reactive, ref } from 'vue';
// import { getInfo } from './api';
import { getInfo } from './api';
export default {
setup() {
//
@ -111,16 +112,13 @@
//
const visible = ref(false);
// const showDrawer = async(id) => {
// const data = await getInfo(id)
// for(let i in detail){
// detail[i] = data[i]
// }
// visible.value = true;
// console.log(detail)
// };
const showDrawer = () => {
const showDrawer = async (id) => {
const data = await getInfo(id);
for (let i in detail) {
detail[i] = data[i];
}
visible.value = true;
console.log(detail);
};
//
const onClose = () => {

22
src/views/project/projectManage/index.vue

@ -3,15 +3,14 @@
<BasicTable @register="registerTable">
<template #toolbar>
<a-button type="primary" @click="handleAdd">新增</a-button>
<a-button type="link" @click="handleDetail">详情</a-button>
<a-button type="primary" @click="handleAdd">配置人员</a-button>
<a-button type="primary" @click="handleAdd">配置服务目录</a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column && record && column.key === 'action'">
<!-- <a-button type="link" @click="handleEdit(record.id)">编辑</a-button>
<a-button type="link" @click="handleDelete(record.id)">删除</a-button> -->
<a-button type="link" @click="handleDetail">详情</a-button>
<a-button type="link" @click="handleEdit(record.id)">编辑</a-button>
<a-button type="link" @click="handleDelete(record.id)">删除</a-button>
<a-button type="link" @click="handleDetail(record.id)">详情</a-button>
</template>
</template>
</BasicTable>
@ -23,7 +22,7 @@
<script setup lang="ts">
import { PageWrapper } from '@/components/Page';
import { BasicTable, useTable } from '@/components/Table';
import { list } from './api';
import { list, removeByIds } from './api';
import { formSchemas, columns } from './data';
import detailDrawer from './detailDrawer.vue';
import { ref } from 'vue';
@ -31,7 +30,7 @@
defineOptions({ name: 'ProjectManage' });
const [registerTable] = useTable({
const [registerTable, { reload }] = useTable({
rowSelection: {
type: 'checkbox',
},
@ -61,14 +60,21 @@
//
const detailDrawerRef = ref();
const handleDetail = () => {
detailDrawerRef.value.showDrawer();
const handleDetail = (id: any) => {
detailDrawerRef.value.showDrawer(id);
};
const handleDelete = async (id: any) => {
await removeByIds([id]);
reload();
};
//
const addModalRef = ref();
const handleAdd = () => {
addModalRef.value.showModal(1);
};
const handleEdit = (id: any) => {
addModalRef.value.showModal(2, id);
};
</script>
<style scoped></style>

9
src/views/project/serviceManage/index.vue

@ -18,6 +18,7 @@
</div>
<a-tree
:show-icon="true"
:show-line="true"
:tree-data="treeData"
v-model:selectedKeys="checkedTree"
@select="onSelect"
@ -270,9 +271,11 @@
//
const beforeUpload = async (file: any) => {
const params = new FormData();
params.append('file', file);
params.append('categoryId', checkedTree.value[0]);
console.log(file);
const params = {
file: file,
categoryId: checkedTree.value[0],
};
await listUpload(params);
return false;
};

Loading…
Cancel
Save