Commit d5a554ea authored by 高滢's avatar 高滢

feat(季度招标): 导入填报

parent 751afde5
...@@ -70,7 +70,7 @@ export const updateItem = (params?: any) => ...@@ -70,7 +70,7 @@ export const updateItem = (params?: any) =>
}, },
}); });
export const deleteItem = (params?: any) => export const deleteItem = (params?: any) =>
defHttp.delete<ProjectModel>({ url: Api.DeleteProject, params }); defHttp.get<ProjectModel>({ url: Api.DeleteProject, params });
export const getItem = (params?: any) => export const getItem = (params?: any) =>
......
...@@ -30,13 +30,11 @@ export const updateProject = (params?: any) => ...@@ -30,13 +30,11 @@ export const updateProject = (params?: any) =>
'Content-Type': 'application/json;charset=UTF-8', 'Content-Type': 'application/json;charset=UTF-8',
}, },
}); });
export const deleteProject = (params?: any) => export const deleteProject = (params?: any) => defHttp.get({ url: Api.DeleteProject, params });
defHttp.post({ url: Api.DeleteProject, data: params });
export const selectDetail = (params?: any) => export const selectDetail = (params?: any) => defHttp.get({ url: Api.ProjectDetail, params });
defHttp.post({ url: Api.ProjectDetail, data: params });
export const handelExamine = (params?: any) => defHttp.post({ url: Api.Audit, data: params }); export const handelExamine = (params?: any) => defHttp.get({ url: Api.Audit, params });
export const getCount = (params?: any) => defHttp.post({ url: Api.SelectCount, data: params }); export const getCount = (params?: any) => defHttp.post({ url: Api.SelectCount, data: params });
export const selectListAll = (params?: any) => defHttp.post({ url: Api.GetListAll, data: params }); export const selectListAll = (params?: any) => defHttp.post({ url: Api.GetListAll, data: params });
......
import { BasicColumn, FormSchema } from '@/components/Table'; import { BasicColumn, FormSchema } from '@/components/Table';
import moment from "moment";
import {getDepartmentList} from "@/api/project/settlementManage";
import {useUserStore} from "@/store/modules/user"; import {useUserStore} from "@/store/modules/user";
const deptId = ''+useUserStore().userInfo.deptParentId; const deptId = ''+useUserStore().userInfo.deptParentId;
//主模块-投资管理列表页 //主模块-投资管理列表页
......
...@@ -38,6 +38,18 @@ ...@@ -38,6 +38,18 @@
<a-button v-if="!disabled" type="dashed" @click="handleAdd" class="ml-2" preIcon="ei:plus"> <a-button v-if="!disabled" type="dashed" @click="handleAdd" class="ml-2" preIcon="ei:plus">
新建项目 新建项目
</a-button> </a-button>
<Upload
:action="uploadAction"
name="file"
:multiple="false"
methods="post"
:file-list="fileList"
accept=".xlsx,.xls"
:on-success="uploadFile"
:onChange="onChangeUpload"
>
<a-button v-if="!disabled" type="dashed" class="ml-2" preIcon="ei:plus"> Excel导入 </a-button>
</Upload>
<projectDrawer @register="registerDrawer" @success="handleSuccess" /> <projectDrawer @register="registerDrawer" @success="handleSuccess" />
<projectlibraryModel @register="register" @close="handleNewData" /> <projectlibraryModel @register="register" @close="handleNewData" />
<Operations @register="registerDrawerOperations" /> <Operations @register="registerDrawerOperations" />
...@@ -47,7 +59,6 @@ ...@@ -47,7 +59,6 @@
import { unref, onMounted, ref, reactive, nextTick } from 'vue'; import { unref, onMounted, ref, reactive, nextTick } from 'vue';
import projectlibraryModel from '@/components/projectlibraryModel/projectlibraryModel.vue'; import projectlibraryModel from '@/components/projectlibraryModel/projectlibraryModel.vue';
import { PageWrapper } from '@/components/Page'; import { PageWrapper } from '@/components/Page';
import PageCard from '@/components/Page/src/PageCard.vue';
import projectDrawer from '@/views/project/projectDrawer.vue'; import projectDrawer from '@/views/project/projectDrawer.vue';
import { BasicForm, useForm, FormProps, UseFormReturnType } from '@/components/Form'; import { BasicForm, useForm, FormProps, UseFormReturnType } from '@/components/Form';
import { formSchema } from './biddingManagement.data'; import { formSchema } from './biddingManagement.data';
...@@ -64,7 +75,13 @@ ...@@ -64,7 +75,13 @@
import Operations from '@/components/Operations/Operations.vue'; import Operations from '@/components/Operations/Operations.vue';
import { addItem, updateItem, getItem } from '@/api/project/biddingManagement'; import { addItem, updateItem, getItem } from '@/api/project/biddingManagement';
import CollapseContainer from '@/components/Container/src/collapse/CollapseContainer.vue'; import CollapseContainer from '@/components/Container/src/collapse/CollapseContainer.vue';
import { Upload } from 'ant-design-vue';
const fileList = ref([]);
const uploadAction =
import.meta.env.MODE === 'development'
? 'http://localhost:5173/api/pro/tenderManager/import'
: 'http://172.72.253.84/pro/tenderManager/import';
//历史记录是否可查 //历史记录是否可查
const historyData = ref(true); const historyData = ref(true);
//页面传递过来了的id //页面传递过来了的id
...@@ -236,7 +253,7 @@ ...@@ -236,7 +253,7 @@
{ field: 'signingDate', required: false }, { field: 'signingDate', required: false },
{ field: 'meetingMinute', required: false }, { field: 'meetingMinute', required: false },
{ field: 'releaseChannels', required: false }, { field: 'releaseChannels', required: false },
{ field: 'isReportingSituation', required: false } { field: 'isReportingSituation', required: false },
]); ]);
} else { } else {
updateSchema([ updateSchema([
...@@ -313,6 +330,34 @@ ...@@ -313,6 +330,34 @@
}); });
console.log('历史记录'); console.log('历史记录');
} }
function onChangeUpload(info) {
loadingRef.value = true;
}
async function uploadFile(response) {
if (response.code == 1) {
response.data.map((info) => {
const item = {
name: '项目:' + info.projectName,
forceRender: true,
show: true,
Form: useForm(Object.assign({ schemas: formSchema }, baseFormConfig) as FormProps),
proId: info.id ? info.id : null,
};
const { setFieldsValue } = item.Form[1];
tabsFormSchema.push(item);
nextTick(() => {
setFieldsValue({ ...info });
});
});
createMessage.success('导入成功');
loadingRef.value = false;
} else {
createMessage.error('导入失败,请稍后重试');
loadingRef.value = false;
return;
}
}
</script> </script>
<style scoped> <style scoped>
.subCard { .subCard {
......
...@@ -41,7 +41,8 @@ ...@@ -41,7 +41,8 @@
preIcon="ant-design:delete-outlined" preIcon="ant-design:delete-outlined"
danger danger
@click="deleteItem(index)" @click="deleteItem(index)"
>删除项目</a-button> >删除项目</a-button
>
</template> </template>
<BasicForm :loading="loading" @register="item.Form[0]" /> <BasicForm :loading="loading" @register="item.Form[0]" />
<!-- 左上角为项目名 --> <!-- 左上角为项目名 -->
...@@ -64,6 +65,18 @@ ...@@ -64,6 +65,18 @@
<a-button v-if="!disabled" type="dashed" @click="handleAdd" class="ml-2" preIcon="ei:plus"> <a-button v-if="!disabled" type="dashed" @click="handleAdd" class="ml-2" preIcon="ei:plus">
新建项目 新建项目
</a-button> </a-button>
<Upload
:action="uploadAction"
name="file"
:multiple="false"
methods="post"
:file-list="fileList"
accept=".xlsx,.xls"
:on-success="uploadFile"
:onChange="onChangeUpload"
>
<a-button v-if="!disabled" type="dashed" class="ml-2" preIcon="ei:plus"> Excel导入 </a-button>
</Upload>
<projectDrawer v-if="!disabled" @register="registerDrawer" @success="handleSuccess" /> <projectDrawer v-if="!disabled" @register="registerDrawer" @success="handleSuccess" />
<projectlibraryModel v-if="!disabled" @register="register" @close="handleNewData" /> <projectlibraryModel v-if="!disabled" @register="register" @close="handleNewData" />
<Operations @register="registerDrawerOperations" /> <Operations @register="registerDrawerOperations" />
...@@ -90,6 +103,13 @@ ...@@ -90,6 +103,13 @@
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { isArray } from 'lodash-es'; import { isArray } from 'lodash-es';
import CollapseContainer from '@/components/Container/src/collapse/CollapseContainer.vue'; import CollapseContainer from '@/components/Container/src/collapse/CollapseContainer.vue';
import { Upload } from 'ant-design-vue';
const fileList = ref([]);
const uploadAction =
import.meta.env.MODE === 'development'
? 'http://localhost:5173/api/pro/tenderPlan/import'
: 'http://172.72.253.84/pro/tenderPlan/import';
//历史记录是否可查 //历史记录是否可查
const historyData = ref(true); const historyData = ref(true);
...@@ -194,7 +214,7 @@ ...@@ -194,7 +214,7 @@
name: '项目:' + info.projectName, name: '项目:' + info.projectName,
show: true, show: true,
forceRender: true, forceRender: true,
proId:info.id, proId: info.id,
Form: useForm(Object.assign({ schemas: formSchema }, baseFormConfig) as FormProps), Form: useForm(Object.assign({ schemas: formSchema }, baseFormConfig) as FormProps),
}; };
const { setFieldsValue } = item.Form[1]; const { setFieldsValue } = item.Form[1];
...@@ -213,16 +233,6 @@ ...@@ -213,16 +233,6 @@
}); });
} }
async function deleteItem(index: any) { async function deleteItem(index: any) {
// formData.value.tenderPlanPro.splice(index, 1);
// loadingRef.value = true;
// const id = formData.value.tenderPlanPro[index].id;
// formData.value.tenderPlanPro.filter((item) => item.id != id);
// if (id) {
// await Itemdelete({
// id,
// });
// tabsFormSchema[index].show = false;
// tabsFormSchema.splice(index, 1);
tabsFormSchema[index].show = false; tabsFormSchema[index].show = false;
loadingRef.value = false; loadingRef.value = false;
} }
...@@ -272,7 +282,7 @@ ...@@ -272,7 +282,7 @@
} }
loadingRef.value = true; loadingRef.value = true;
formData.value.tenderPlanPro=[]; formData.value.tenderPlanPro = [];
try { try {
let engineerConListIndex = 0; let engineerConListIndex = 0;
for (let i = 0; i < tabsFormSchema.length; i++) { for (let i = 0; i < tabsFormSchema.length; i++) {
...@@ -289,7 +299,10 @@ ...@@ -289,7 +299,10 @@
: res.plannedPeriod; : res.plannedPeriod;
// res.plannedPeriod = res.plannedPeriod.join(','); // res.plannedPeriod = res.plannedPeriod.join(',');
// formData.value.tenderPlanPro[i] = deepMerge(formData.value.tenderPlanPro[i], res); // formData.value.tenderPlanPro[i] = deepMerge(formData.value.tenderPlanPro[i], res);
console.log('deepMerge(formData.value.tenderPlanPro[i], res)',deepMerge(formData.value.tenderPlanPro[i], res)); console.log(
'deepMerge(formData.value.tenderPlanPro[i], res)',
deepMerge(formData.value.tenderPlanPro[i], res),
);
let obj = { let obj = {
proId: item.proId, proId: item.proId,
}; };
...@@ -330,6 +343,37 @@ ...@@ -330,6 +343,37 @@
}); });
console.log('历史记录'); console.log('历史记录');
} }
function onChangeUpload(info) {
loadingRef.value = true;
}
async function uploadFile(response) {
if (response.code == 1) {
response.data.map((info) => {
const item = {
name: '项目:' + info.projectName,
forceRender: true,
show: true,
Form: useForm(Object.assign({ schemas: formSchema }, baseFormConfig) as FormProps),
proId: info.id ? info.id : '',
};
const { setFieldsValue } = item.Form[1];
tabsFormSchema.push(item);
nextTick(() => {
setFieldsValue({
...info,
plannedPeriod: [info.plannedPeriodStart, info.plannedPeriodEnd],
biddingPeriod: [info.biddingPeriodStart, info.biddingPeriodEnd],
});
});
});
createMessage.success('导入成功');
loadingRef.value = false;
} else {
createMessage.error('导入失败,请稍后重试');
loadingRef.value = false;
return;
}
}
</script> </script>
<style scoped> <style scoped>
.subCard { .subCard {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment