Browse Source

fix: 合同,项目

ops-management-platform-frontend-dev
wbc 3 months 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> <template>
<a-modal v-model:open="visible" :title="title" @ok="handleOk" width="50%"> <a-modal v-model:open="visible" :title="title" @ok="handleOk" @cancel="closeModal" width="50%">
<a-form :model="form" layout="vertical"> <a-form ref="formRef" :model="form" layout="vertical">
<a-row :gutter="[16, 16]"> <a-row :gutter="[16, 16]">
<a-col :span="24"> <a-col :span="24">
<a-form-item label="合同名称" name="contractName"> <a-form-item label="合同名称" name="contractName">
@ -54,14 +54,18 @@
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="签订日期" name="signDate"> <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-form-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[16, 16]"> <a-row :gutter="[16, 16]">
<a-col :span="24"> <a-col :span="24">
<a-form-item label="合同工期" name="contractDuration"> <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-form-item>
</a-col> </a-col>
</a-row> </a-row>
@ -130,12 +134,15 @@
<script> <script>
import { reactive, ref } from 'vue'; import { reactive, ref } from 'vue';
import { getInfo, add, update } from './api';
import { message } from 'ant-design-vue';
export default { export default {
setup() { setup() {
const title = ref('新增'); const title = ref('新增');
const formRef = ref();
const visible = ref(false); const visible = ref(false);
const form = reactive({ let form = reactive({
contractName: '', contractName: '',
contractCode: '', contractCode: '',
contractParent: '', contractParent: '',
@ -151,6 +158,7 @@
contractContent: '', contractContent: '',
remark: '', remark: '',
attachment: [], attachment: [],
id: null,
}); });
// //
const projectNameOptions = [ const projectNameOptions = [
@ -167,22 +175,54 @@
label: 'c', label: 'c',
}, },
]; ];
const showModal = (type, id) => { const showModal = async (type, id) => {
visible.value = true;
if (type == 1) { if (type == 1) {
title.value = '新增'; title.value = '新增';
} else if (type == 2) { } else if (type == 2) {
title.value = '编辑'; 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 = () => { 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; visible.value = false;
}; };
return { return {
visible, visible,
title, title,
@ -190,6 +230,8 @@
showModal, showModal,
handleOk, handleOk,
projectNameOptions, 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 { defHttp } from '@/utils/http/axios';
import { Dayjs } from 'dayjs';
enum Api { enum Api {
root = '/workflow/leave', root = '/platform/contractInfo',
list = '/workflow/leave/list', list = '/platform/contractInfo/list',
export = '/workflow/leave/export',
} }
export interface Leave { export function list(params: any) {
id: string; return defHttp.get({ url: Api.list, params });
leaveType: string;
startDate: string;
endDate: string;
leaveDays: number;
remark: string;
processInstanceVo?: any;
dateTime?: [string, string] | [Dayjs, Dayjs];
} }
export interface Resp { export function getInfo(id: any) {
createDept: number; return defHttp.get({ url: `${Api.root}/${id}` });
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 add(data: any) { 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) { 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) { export function removeByIds(ids: any) {
return defHttp.deleteWithMsg<void>({ url: `${Api.root}/${ids.join(',')}` }); return defHttp.deleteWithMsg({ url: `${Api.root}/${ids.join(',')}` });
} }

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

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

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

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

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

@ -109,7 +109,8 @@
<script> <script>
import { reactive, ref } from 'vue'; import { reactive, ref } from 'vue';
import { getInfo } from './api';
// import { message } from 'ant-design-vue';
export default { export default {
setup() { setup() {
const title = ref('新增'); const title = ref('新增');
@ -143,11 +144,15 @@
label: 'c', label: 'c',
}, },
]; ];
const showModal = (type, id) => { const showModal = async (type, id) => {
if (type == 1) { if (type == 1) {
title.value = '新增'; title.value = '新增';
} else if (type == 2) { } else if (type == 2) {
title.value = '编辑'; title.value = '编辑';
const data = await getInfo(id);
for (let i in form) {
form[i] = data[i];
}
console.log(id); console.log(id);
} }
visible.value = true; 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 { defHttp } from '@/utils/http/axios';
import { Dayjs } from 'dayjs';
enum Api { enum Api {
root = '/workflow/leave', root = '/platform/projectInfo',
list = '/workflow/leave/list', list = '/platform/projectInfo/list',
export = '/workflow/leave/export',
} }
export interface Leave { export function list(params: any) {
id: string; return defHttp.get({ url: Api.list, params });
leaveType: string;
startDate: string;
endDate: string;
leaveDays: number;
remark: string;
processInstanceVo?: any;
dateTime?: [string, string] | [Dayjs, Dayjs];
} }
export interface Resp { export function getInfo(id: any) {
createDept: number; return defHttp.get({ url: `${Api.root}/${id}` });
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 add(data: any) { 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) { 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) { export function removeByIds(ids: any) {
return defHttp.deleteWithMsg<void>({ url: `${Api.root}/${ids.join(',')}` }); return defHttp.deleteWithMsg({ url: `${Api.root}/${ids.join(',')}` });
} }

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

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

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

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

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

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

Loading…
Cancel
Save