11个文件已修改
4个文件已添加
1 文件已重命名
File was renamed from src/api/projectInfo.js |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // 查询项目管理基础信息列表 |
| | | export function listInfo(query) { |
| | | export function listProject(query) { |
| | | return request({ |
| | | url: '/project/info/page', |
| | | method: 'get', |
| | |
| | | } |
| | | |
| | | // 查询项目管理基础信息详细 |
| | | export function getInfo(id) { |
| | | export function getProject(id) { |
| | | return request({ |
| | | url: '/project/info/' + id, |
| | | method: 'get' |
| | |
| | | } |
| | | |
| | | // 新增项目管理基础信息 |
| | | export function addInfo(data) { |
| | | export function addProject(data) { |
| | | return request({ |
| | | url: '/project/info', |
| | | method: 'post', |
| | |
| | | } |
| | | |
| | | // 修改项目管理基础信息 |
| | | export function updateInfo(data) { |
| | | export function updateProject(data) { |
| | | return request({ |
| | | url: '/project/info', |
| | | method: 'put', |
| | |
| | | } |
| | | |
| | | // 删除项目管理基础信息 |
| | | export function delInfo(id) { |
| | | export function delProject(id) { |
| | | return request({ |
| | | url: '/project/info/' + id, |
| | | method: 'delete' |
| | | }) |
| | | } |
| | | //获取后台生成的项目码 |
| | | export function getProjectCode(id) { |
| | | return request({ |
| | | url: '/project/info/getProjectCode', |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
New file |
| | |
| | | import axios from "./request"; |
| | | |
| | | // 获取项目投资及资金来源情况表分页 |
| | | export const getProjectInvestmentFundings = (params) => { |
| | | return axios({ |
| | | url: "/api/project-investment-funding/page", |
| | | method: "GET", |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | // 获取项目投资及资金来源情况表列表 |
| | | export const getProjectInvestmentFundingList = () => { |
| | | return axios({ |
| | | url: "/api/project-investment-funding/list", |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id获取项目投资及资金来源情况表 |
| | | export const getProjectInvestmentFundingById = (params) => { |
| | | return axios({ |
| | | url: "/api/project-investment-funding/" + params, |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id删除项目投资及资金来源情况表 |
| | | export const deleteProjectInvestmentFundingById = (params) => { |
| | | return axios({ |
| | | url: "/api/project-investment-funding/" + params, |
| | | method: "DELETE" |
| | | }) |
| | | } |
| | | |
| | | // 批量删除项目投资及资金来源情况表 |
| | | export const deleteProjectInvestmentFundingByIds = (params) => { |
| | | return axios({ |
| | | url: "/api/project-investment-funding/batch", |
| | | method: "DELETE", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 修改项目投资及资金来源情况表 |
| | | export const editProjectInvestmentFunding = (params) => { |
| | | return axios({ |
| | | url: "/api/project-investment-funding/", |
| | | method: "PUT", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 添加项目投资及资金来源情况表 |
| | | export const addProjectInvestmentFunding = (params) => { |
| | | return axios({ |
| | | url: "/api/project-investment-funding/", |
| | | method: "POST", |
| | | data: params |
| | | }) |
| | | } |
New file |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // 获取投资项目基础信息表分页 |
| | | export const getProjectInvestmentInfos = (params) => { |
| | | return request({ |
| | | url: "/project/investmentInfo/page", |
| | | method: "GET", |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | // 获取投资项目基础信息表列表 |
| | | export const getProjectInvestmentInfoList = () => { |
| | | return request({ |
| | | url: "/project/investmentInfo/list", |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id获取投资项目基础信息表 |
| | | export const getProjectInvestmentInfoById = (params) => { |
| | | return request({ |
| | | url: "/project/investmentInfo/" + params, |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id删除投资项目基础信息表 |
| | | export const deleteProjectInvestmentInfoById = (params) => { |
| | | return request({ |
| | | url: "/project/investmentInfo/" + params, |
| | | method: "DELETE" |
| | | }) |
| | | } |
| | | |
| | | // 批量删除投资项目基础信息表 |
| | | export const deleteProjectInvestmentInfoByIds = (params) => { |
| | | return request({ |
| | | url: "/project/investmentInfo/batch", |
| | | method: "DELETE", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 修改投资项目基础信息表 |
| | | export const editProjectInvestmentInfo = (params) => { |
| | | return request({ |
| | | url: "/project/investmentInfo/", |
| | | method: "PUT", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 添加投资项目基础信息表 |
| | | export const addProjectInvestmentInfo = (params) => { |
| | | return request({ |
| | | url: "/project/investmentInfo/", |
| | | method: "POST", |
| | | data: params |
| | | }) |
| | | } |
New file |
| | |
| | | import axios from "./request"; |
| | | |
| | | // 获取投资项目产业政策符合情况表分页 |
| | | export const getProjectInvestmentPolicyCompliances = (params) => { |
| | | return axios({ |
| | | url: "/api/project-investment-policy-compliance/page", |
| | | method: "GET", |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | // 获取投资项目产业政策符合情况表列表 |
| | | export const getProjectInvestmentPolicyComplianceList = () => { |
| | | return axios({ |
| | | url: "/api/project-investment-policy-compliance/list", |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id获取投资项目产业政策符合情况表 |
| | | export const getProjectInvestmentPolicyComplianceById = (params) => { |
| | | return axios({ |
| | | url: "/api/project-investment-policy-compliance/" + params, |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id删除投资项目产业政策符合情况表 |
| | | export const deleteProjectInvestmentPolicyComplianceById = (params) => { |
| | | return axios({ |
| | | url: "/api/project-investment-policy-compliance/" + params, |
| | | method: "DELETE" |
| | | }) |
| | | } |
| | | |
| | | // 批量删除投资项目产业政策符合情况表 |
| | | export const deleteProjectInvestmentPolicyComplianceByIds = (params) => { |
| | | return axios({ |
| | | url: "/api/project-investment-policy-compliance/batch", |
| | | method: "DELETE", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 修改投资项目产业政策符合情况表 |
| | | export const editProjectInvestmentPolicyCompliance = (params) => { |
| | | return axios({ |
| | | url: "/api/project-investment-policy-compliance/", |
| | | method: "PUT", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 添加投资项目产业政策符合情况表 |
| | | export const addProjectInvestmentPolicyCompliance = (params) => { |
| | | return axios({ |
| | | url: "/api/project-investment-policy-compliance/", |
| | | method: "POST", |
| | | data: params |
| | | }) |
| | | } |
New file |
| | |
| | | import axios from "./request"; |
| | | |
| | | // 获取项目(法人)单位登记信息表分页 |
| | | export const getProjectUnitRegistrationInfos = (params) => { |
| | | return axios({ |
| | | url: "/api/project-unit-registration-info/page", |
| | | method: "GET", |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | // 获取项目(法人)单位登记信息表列表 |
| | | export const getProjectUnitRegistrationInfoList = () => { |
| | | return axios({ |
| | | url: "/api/project-unit-registration-info/list", |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id获取项目(法人)单位登记信息表 |
| | | export const getProjectUnitRegistrationInfoById = (params) => { |
| | | return axios({ |
| | | url: "/api/project-unit-registration-info/" + params, |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id删除项目(法人)单位登记信息表 |
| | | export const deleteProjectUnitRegistrationInfoById = (params) => { |
| | | return axios({ |
| | | url: "/api/project-unit-registration-info/" + params, |
| | | method: "DELETE" |
| | | }) |
| | | } |
| | | |
| | | // 批量删除项目(法人)单位登记信息表 |
| | | export const deleteProjectUnitRegistrationInfoByIds = (params) => { |
| | | return axios({ |
| | | url: "/api/project-unit-registration-info/batch", |
| | | method: "DELETE", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 修改项目(法人)单位登记信息表 |
| | | export const editProjectUnitRegistrationInfo = (params) => { |
| | | return axios({ |
| | | url: "/api/project-unit-registration-info/", |
| | | method: "PUT", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 添加项目(法人)单位登记信息表 |
| | | export const addProjectUnitRegistrationInfo = (params) => { |
| | | return axios({ |
| | | url: "/api/project-unit-registration-info/", |
| | | method: "POST", |
| | | data: params |
| | | }) |
| | | } |
| | |
| | | url: '/system/dept/' + deptId, |
| | | method: 'delete' |
| | | }) |
| | | } |
| | | } |
| | | |
| | | // 查询审批端部门 |
| | | export function approvalList(query) { |
| | | return request({ |
| | | url: '/system/dept/approvalList', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | |
| | | <template> |
| | | <div class="basic-info"> |
| | | <el-form ref="demoFormRef" :disabled="disabled" :model="projectForm" :rules="rules" class="dialog_form"> |
| | | <el-form ref="projectForm" :disabled="disabled" :model="projectForm" :rules="rules" class="dialog_form"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="6"> |
| | | <el-form-item class="item" label="项目名称" label-width="100px" prop="projectName"> |
| | |
| | | style="width: 100%" |
| | | collapse-tags |
| | | @change="changeDepartment"> |
| | | <el-option v-for="item in dict.type.sys_competent_department" :key="item.value" :label="item.label" |
| | | :value="item.value"/> |
| | | <el-option |
| | | v-for ="item in approvalList" |
| | | :key="item.id" |
| | | :value="item.id" |
| | | :label="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="按目录" label-width="100px" style="width: 100%"> |
| | | <el-form-item label="投资类别" label-width="100px" style="width: 100%"> |
| | | <el-input v-model="largeCategory" clearable disabled placeholder="请选择大类" style="width: 49%" /> |
| | | <el-input v-model="subclass" clearable disabled placeholder="请选择小类" style="width: 49%;margin-left: 2%" /> |
| | | </el-form-item> |
| | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="立项时间" label-width="100px" prop="setTime" style="width: 100%"> |
| | | <el-date-picker v-model="setTime" placeholder="选择时间" style="width: 100%" type="date" @change="chaneApproval" /> |
| | | <el-date-picker v-model="projectForm.createProjectTime" |
| | | placeholder="选择时间" |
| | | style="width: 100%" |
| | | type="date" |
| | | value-format="yyyy-MM-dd HH:mm:ss"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="计划开工时间" label-width="100px" style="width: 100%"> |
| | | <el-date-picker v-model="planStartTime" placeholder="选择时间" style="width: 100%" type="date" @change="chaneStartWork" /> |
| | | <el-date-picker v-model="projectForm.planStartTime " |
| | | placeholder="选择时间" |
| | | style="width: 100%" |
| | | type="date" |
| | | @change="chaneStartWork" |
| | | value-format="yyyy-MM-dd HH:mm:ss"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="计划竣工时间" label-width="100px" style="width: 100%"> |
| | | <el-date-picker v-model="planCompleteTime" placeholder="选择时间" style="width: 100%" type="date" @change="chaneCompleted" /> |
| | | <el-date-picker v-model="projectForm.planCompleteTime " |
| | | placeholder="选择时间" |
| | | style="width: 100%" |
| | | type="date" |
| | | value-format="yyyy-MM-dd HH:mm:ss"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="中标时间" label-width="100px" style="width: 100%"> |
| | | <el-date-picker v-model="winTime" placeholder="选择时间" style="width: 100%" type="date" @change="chaneWinTime" /> |
| | | <el-date-picker v-model="projectForm.winTime" |
| | | placeholder="选择时间" |
| | | style="width: 100%" |
| | | type="date" |
| | | value-format="yyyy-MM-dd HH:mm:ss"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <el-col :span="18"> |
| | | <el-form-item label="项目地址:" label-width="100px" prop="medicalAddr" style="width: 100%"> |
| | | <div class="input-row"> |
| | | <el-input v-model.trim="projectForm.address" class="input-item" disabled maxlength="255" placeholder="请输入"></el-input> |
| | | <el-input v-model.trim="projectForm.projectAddress" class="input-item" disabled maxlength="255" placeholder="请输入"></el-input> |
| | | <div v-if="!disabled" class="map-btn" @click="dialogMap = true"> |
| | | <img alt="" src="@/assets/images/positionl.png" /> |
| | | </div> |
| | |
| | | <el-row :gutter="0"> |
| | | <el-col :span="18"> |
| | | <el-form-item label="审批计划书:" label-width="100px" prop="medicalAddr" style="width: 100%"> |
| | | <file-upload v-model="projectList" |
| | | <file-upload v-model="projectForm.fileList" |
| | | :fileType="accept" |
| | | :isShowTip="false"/> |
| | | </el-form-item> |
| | |
| | | // import { usePlanLibrary } from '@/hooks/detailsInformation'; |
| | | // import { getList } from '@/api/engineeringLibrary/index'; |
| | | // import RemoteSelect from '@/components/RemoteSelect/index.vue'; |
| | | import { formatDate } from '@/utils'; |
| | | import Cookies from "js-cookie"; |
| | | import { addProject, getProject, updateProject, getProjectCode } from '@/api/projectEngineering/projectInfo'; |
| | | import {approvalList} from "@/api/system/dept"; |
| | | |
| | | export default { |
| | | dicts: ['sys_funding_type', 'sys_investment_type', 'sys_project_type', 'sys_project_status','sys_competent_department' |
| | |
| | | data() { |
| | | return { |
| | | projectForm: { |
| | | id: '', |
| | | projectName: '', |
| | | projectCode: '', |
| | | projectType: '', |
| | |
| | | winTime: '', |
| | | winUnit: '', |
| | | winAmount: '', |
| | | address: '', |
| | | projectAddress: '', |
| | | engineeringIdList: [], |
| | | content: '', |
| | | contact: '', |
| | |
| | | planStartTime: '', |
| | | planCompleteTime: '', |
| | | projectContactPerson: '', |
| | | fileIdList: [], |
| | | sysOssVos: [], |
| | | fileList: [], |
| | | engineeringInfos: [], |
| | | year: '', |
| | | yearInvestAmount: '', |
| | | competentDepartmentList: [], |
| | | managementCentralizationList: [] |
| | | }, |
| | | approvalList: [], |
| | | setTime: '', |
| | | planStartTime: '', |
| | | planCompleteTime: '', |
| | | winTime: '', |
| | | projectList: [], |
| | | dialogMap: false, |
| | | page: 1, |
| | | loading: false, |
| | |
| | | computed: { |
| | | dialogMapList () { |
| | | return [{ |
| | | addr: this.projectForm.address, |
| | | addr: this.projectForm.projectAddress, |
| | | name: '创建' |
| | | }]; |
| | | }, |
| | | }, |
| | | created() { |
| | | this.handleLoadMore(1); |
| | | const projectForm = Cookies.get("projectForm"); |
| | | if (projectForm) { |
| | | this.projectForm = JSON.parse(projectForm); |
| | | } else { |
| | | //初始化主管部门下拉框 |
| | | this.getApprovalList(); |
| | | if(this.$route.query.projectId) { |
| | | this.projectForm.id = this.$route.query.projectId; |
| | | } |
| | | // 在组件创建时获取项目信息,如果 projectId 存在 |
| | | if (this.projectForm.id) { |
| | | this.getProjectInfo(this.projectForm.id); |
| | | } else { |
| | | this.getProjectCodeApi(); |
| | | } |
| | | // this.handleLoadMore(1); |
| | | } |
| | | }, |
| | | beforeDestroy() { |
| | | Cookies.set("projectForm",JSON.stringify(this.projectForm)); |
| | | }, |
| | | methods: { |
| | | getProjectInfo(id) { |
| | | getProject(id).then(res => { |
| | | this.projectForm = res.data; |
| | | }); |
| | | }, |
| | | getApprovalList() { |
| | | approvalList().then(res => { |
| | | this.approvalList = res.data; |
| | | }); |
| | | }, |
| | | submit() { |
| | | this.$refs["projectForm"].validate(valid => { |
| | | if (valid) { |
| | | if (this.projectForm.id != null) { |
| | | updateProject(this.projectForm).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | //跳转到下个组件 |
| | | this.$emit('toNext', 1); |
| | | }); |
| | | } else { |
| | | addProject(this.projectForm).then(response => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.projectForm.id = response.data |
| | | //跳转到下个组件 |
| | | this.$emit('toNext', 1); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | getProjectCodeApi() { |
| | | getProjectCode().then(res => { |
| | | this.projectForm.projectCode = res.data; |
| | | }); |
| | | }, |
| | | changeDepartment(val) { |
| | | if (!val.length) { |
| | | this.largeCategory = ''; |
| | | return; |
| | | } |
| | | const labels = this.sysDepartment.filter(item => val.includes(item.value)).map(item => item.label); |
| | | const labels = this.approvalList.filter(item => val.includes(item.id)).map(item => item.value); |
| | | this.largeCategory = labels.join(','); |
| | | }, |
| | | changePutUnder(val) { |
| | | // 同 changeDepartment 方法 |
| | | }, |
| | | chaneApproval(val) { |
| | | if (!val) return; |
| | | this.projectForm.setTime = formatDate(val); |
| | | }, |
| | | chaneCompleted(val) { |
| | | if (!val) return; |
| | | this.projectForm.planCompleteTime = formatDate(val); |
| | | }, |
| | | chaneWinTime(val) { |
| | | if (!val) return; |
| | | this.projectForm.winTime = formatDate(val); |
| | | }, |
| | | chaneStartWork(val) { |
| | | if (!val) return; |
| | | this.projectForm.planStartTime = formatDate(val); |
| | | if (!val.length) { |
| | | this.subclass = ''; |
| | | return; |
| | | } |
| | | const labels = this.dict.type.sys_centralized_management.filter(item => val.includes(item.value)).map(item => item.label); |
| | | this.subclass = labels.join(','); |
| | | }, |
| | | async loadDataList(newPage) { |
| | | try { |
| | |
| | | if (lon && lat && addr) { |
| | | this.projectForm.longitude = lon; |
| | | this.projectForm.latitude = lat; |
| | | this.projectForm.address = addr; |
| | | this.projectForm.projectAddress = addr; |
| | | this.$message.success('获取地址成功'); |
| | | this.dialogMap = false; |
| | | } else { |
| | | this.$message.error('获取坐标失败'); |
| | | } |
| | | }, |
| | | handleRemove(file) { |
| | | if (file) { |
| | | this.projectForm.fileIdList = this.projectList.map(item => item.fileId); |
| | | localStorage.setItem('projectList', JSON.stringify(file)); |
| | | } |
| | | }, |
| | | handleAdd(file) { |
| | | if (file) { |
| | | localStorage.setItem('projectList', JSON.stringify(file)); |
| | | } |
| | | } |
| | | |
| | | }, |
| | | watch: { |
| | | 'projectForm.managementCentralizationList'(val) { |
| | | if (val) { |
| | | const labels = this.sysCentralizedManagement |
| | | const labels = this.dict.type.sys_centralized_management |
| | | .filter(item => val.includes(item.value)) |
| | | .map(item => item.label); |
| | | this.subclass = labels.join(','); |
| | |
| | | }, |
| | | 'projectForm.competentDepartmentList'(val) { |
| | | if (val) { |
| | | const labels = this.sysDepartment |
| | | .filter(item => val.includes(item.value)) |
| | | .map(item => item.label); |
| | | const labels = this.approvalList |
| | | .filter(item => val.includes(item.id)) |
| | | .map(item => item.value); |
| | | this.largeCategory = labels.join(','); |
| | | } |
| | | }, |
| | | projectList: { |
| | | handler(val) { |
| | | if (val) { |
| | | this.projectForm.fileIdList = val.map(item => item.fileId); |
| | | } |
| | | }, |
| | | deep: true |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | submit() { |
| | | console.log("文件submit") |
| | | }, |
| | | handleRemove(file) { |
| | | if (file) { |
| | | this.fileIdList = this.documentsInfoList.map(item => item.fileId); |
| | |
| | | }; |
| | | }, |
| | | methods: { |
| | | submit() { |
| | | console.log("子组件submit") |
| | | }, |
| | | handleFileUploadProgress() { |
| | | this.uploadIsUploading = true; |
| | | }, |
| | |
| | | <template> |
| | | <div class="basic-info"> |
| | | <el-form ref="demoFormRef" :disabled="disabled" :model="investment" class="dialog_form"> |
| | | <el-form ref="demoFormRef" :disabled="disabled" :model="investmentForm" class="dialog_form"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="建设地点是否跨域" label-width="120px" prop="fundsType" style="width: 100%"> |
| | | <el-select |
| | | v-model="investment.beCrossRegion" |
| | | v-model="investmentForm.beCrossRegion" |
| | | clearable |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | |
| | | <el-col :span="6"> |
| | | <el-form-item label="项目建设地点" label-width="120px" prop="investmentType" style="width: 100%"> |
| | | <el-select |
| | | v-model="investment.constructionLocation" |
| | | v-model="investmentForm.constructionLocation" |
| | | clearable |
| | | disabled |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | | > |
| | |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="建设详细地址" label-width="120px" prop="fundsType" style="width: 100%"> |
| | | <el-input v-model.trim="investment.detailedAddress" class="item" clearable disabled maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentForm.detailedAddress" class="item" clearable disabled maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <el-col :span="6"> |
| | | <el-form-item label="是否是补码项目" label-width="120px" prop="projectType" style="width: 100%"> |
| | | <el-select |
| | | v-model="investment.beCompensationProject" |
| | | v-model="investmentForm.beCompensationProject" |
| | | clearable |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="补码原因" label-width="120px" prop="projectstatus" style="width: 100%"> |
| | | <el-input v-model.trim="investment.compensationReason" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentForm.compensationReason" class="item" clearable maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="计划开工时间" label-width="120px" prop="plannedStartDate" style="width: 100%"> |
| | | <!-- <el-date-picker v-model="plannedStartDate" placeholder="选择时间" style="width: 100%" type="date" @change="chaneStartWork" />--> |
| | | <el-input v-model.trim="plannedStartDate" class="item" clearable disabled maxlength="255" placeholder="请输入" /> |
| | | <el-date-picker v-model="investmentForm.plannedStartDate" |
| | | placeholder="选择时间" |
| | | style="width: 100%" |
| | | disabled |
| | | type="date" |
| | | value-format="yyyy-MM-dd HH:mm:ss"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="拟建成时间" label-width="120px" prop="expectedCompletionDate" style="width: 100%"> |
| | | <!-- <el-date-picker v-model="expectedCompletionDate" placeholder="选择时间" style="width: 100%" type="date" @change="chaneCompleted" />--> |
| | | <el-input v-model.trim="expectedCompletionDate" class="item" clearable disabled maxlength="255" placeholder="请输入" /> |
| | | <el-date-picker |
| | | v-model="investmentForm.expectedCompletionDate" |
| | | placeholder="选择时间" |
| | | disabled |
| | | style="width: 100%" |
| | | type="date" |
| | | value-format="yyyy-MM-dd HH:mm:ss"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="国际行业分类" label-width="120px" prop="engineering" style="width: 100%"> |
| | | <el-select |
| | | v-model="investment.nationalIndustryClassification" |
| | | v-model="investmentForm.nationalIndustryClassification" |
| | | clearable |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | | > |
| | | <el-option v-for="item in dict.type.sys_whether_project" :key="item.value" :label="item.label" |
| | | <el-option v-for="item in dict.type.sys_industry_classification" :key="item.value" :label="item.label" |
| | | :value="item.value"/> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="所属行业分类" label-width="120px" prop="department" style="width: 100%"> |
| | | <el-input v-model.trim="investment.industryClassification" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentForm.industryClassification" class="item" clearable maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="项目建成性质" label-width="120px" prop="design" style="width: 100%"> |
| | | <el-select |
| | | v-model="investment.projectNature" |
| | | v-model="investmentForm.projectNature" |
| | | clearable |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | |
| | | <el-col :span="6"> |
| | | <el-form-item label="项目属性" label-width="120px" prop="putUnder" style="width: 100%"> |
| | | <el-select |
| | | v-model="investment.projectAttribute" |
| | | v-model="investmentForm.projectAttribute" |
| | | clearable |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | |
| | | <el-col :span="18"> |
| | | <el-form-item label="是否使用土地" label-width="120px" prop="approvalType" style="width: 100%"> |
| | | <el-select |
| | | v-model="investment.useEarth" |
| | | v-model="investmentForm.useEarth" |
| | | clearable |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="18"> |
| | | <el-form-item class="item" label="主要建设内容及规模" label-width="120px" prop="content"> |
| | | <el-input v-model.trim="investment.contentScale" class="item" clearable maxlength="255" placeholder="请输入" type="textarea" /> |
| | | <el-input v-model.trim="investmentForm.contentScale" class="item" clearable maxlength="255" |
| | | placeholder="请输入" |
| | | type="textarea"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="18"> |
| | | <el-form-item class="item" label="建管平台代码" label-width="120px" prop="content"> |
| | | <el-input v-model.trim="investment.code" class="item" clearable maxlength="255" placeholder="请输入" type="textarea" /> |
| | | <el-input v-model.trim="investmentForm.code" class="item" clearable maxlength="255" placeholder="请输入" |
| | | type="textarea"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { formatDate } from '@/utils'; |
| | | import Cookies from "js-cookie"; |
| | | import { |
| | | addProjectInvestmentInfo, |
| | | editProjectInvestmentInfo, |
| | | getProjectInvestmentInfoById |
| | | } from "@/api/projectEngineering/projectInvestmentInfo"; |
| | | |
| | | export default { |
| | | dicts: ['sys_cross_domain','sys_administrative_divisions','sys_whether_project','sys_industry_belong','sys_project_attributes'], |
| | | dicts: ['sys_cross_domain', 'sys_industry_classification', 'sys_administrative_divisions', 'sys_whether_project', 'sys_industry_belong', 'sys_project_attributes'], |
| | | name: 'InvestmentForm', |
| | | props: { |
| | | disabled: { |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | investment: { |
| | | projectForm: {}, |
| | | investmentForm: { |
| | | id: '', |
| | | beCrossRegion: '', |
| | | constructionLocation: '', |
| | | detailedAddress: '', |
| | |
| | | code: '', |
| | | projectId: '' |
| | | }, |
| | | projectForm: { |
| | | projectName: '', |
| | | projectCode: '', |
| | | projectType: '', |
| | | projectStatus: '1', |
| | | fundType: '', |
| | | investType: '', |
| | | importanceType: '', |
| | | projectPhase: '储备规划阶段', |
| | | tag: '', |
| | | competentDepartment: '', |
| | | projectLocation: '', |
| | | longitude: '', |
| | | latitude: '', |
| | | managementCentralization: '', |
| | | projectApplicationPhase: '', |
| | | projectApprovalType: '', |
| | | investmentCatalogue: '', |
| | | approvalPlan: '', |
| | | isSetProject: '', |
| | | setTime: '', |
| | | assignmentStatus: '', |
| | | area: '', |
| | | winTime: '', |
| | | winUnit: '', |
| | | winAmount: '', |
| | | address: '', |
| | | engineeringIdList: [], |
| | | content: '', |
| | | contact: '', |
| | | projectOwnerUnit: '', |
| | | planStartTime: '', |
| | | planCompleteTime: '', |
| | | projectContactPerson: '', |
| | | fileIdList: [], |
| | | sysOssVos: [], |
| | | engineeringInfos: [], |
| | | year: '', |
| | | yearInvestAmount: '', |
| | | competentDepartmentList: [], |
| | | managementCentralizationList: [] |
| | | }, |
| | | plannedStartDate: '', |
| | | expectedCompletionDate: '', |
| | | sys_cross_domain: [], |
| | |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.updateFormData(); |
| | | // 从Cookies中获取缓存数据 |
| | | const investmentForm = Cookies.get("investmentForm"); |
| | | const projectForm = Cookies.get("projectForm"); |
| | | |
| | | // 尝试解析JSON数据 |
| | | const parsedInvestmentForm = investmentForm ? JSON.parse(investmentForm) : null; |
| | | const parsedProjectForm = projectForm ? JSON.parse(projectForm) : null; |
| | | |
| | | // 设置investment和projectForm对象 |
| | | this.investmentForm = parsedInvestmentForm || {}; |
| | | this.projectForm = parsedProjectForm || {}; |
| | | |
| | | // 如果projectForm存在id且没有缓存,则调用api |
| | | if (this.projectForm.id && !investmentForm) { |
| | | this.getInvestment(); |
| | | } |
| | | this.investmentForm.constructionLocation = this.projectForm.area; |
| | | this.investmentForm.detailedAddress = this.projectForm.projectAddress; |
| | | this.investmentForm.plannedStartDate = this.projectForm.planStartTime; |
| | | this.investmentForm.expectedCompletionDate = this.projectForm.planCompleteTime; |
| | | }, |
| | | beforeDestroy() { |
| | | Cookies.set("investmentForm", JSON.stringify(this.investmentForm)); |
| | | }, |
| | | methods: { |
| | | chaneCompleted(val) { |
| | | if (!val) return; |
| | | this.investment.expectedCompletionDate = formatDate(val); |
| | | getInvestment() { |
| | | getProjectInvestmentInfoById(this.investmentForm.id).then(res => { |
| | | this.investmentForm = res.data; |
| | | }); |
| | | }, |
| | | chaneStartWork(val) { |
| | | if (!val) return; |
| | | this.investment.plannedStartDate = formatDate(val); |
| | | submit() { |
| | | if (!this.projectForm.id) { |
| | | this.$message.error("请先保存投资管理基本信息") |
| | | } else { |
| | | this.investmentForm.projectId = this.projectForm.id; |
| | | if (this.investmentForm.id != null) { |
| | | editProjectInvestmentInfo(this.investmentForm).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | //跳转到下个组件 |
| | | this.$emit('toNext', 2); |
| | | }); |
| | | } else { |
| | | addProjectInvestmentInfo(this.investmentForm).then(response => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.investmentForm.id = response.data |
| | | //跳转到下个组件 |
| | | this.$emit('toNext', 2); |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | updateFormData() { |
| | | if(this.projectForm) { |
| | | this.plannedStartDate = this.projectForm.planStartTime.slice(0, 10); |
| | | this.expectedCompletionDate = this.projectForm.planCompleteTime.slice(0, 10); |
| | | this.investment.constructionLocation = this.projectForm.area; |
| | | this.investment.detailedAddress = this.projectForm.address; |
| | | } |
| | | } |
| | | }, |
| | | watch: { |
| | | projectForm: { |
| | | deep: true, |
| | | handler() { |
| | | this.updateFormData(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | }; |
| | | </script> |
| | | |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | submit() { |
| | | console.log("政策submit") |
| | | }, |
| | | handleRemove(file) { |
| | | if (file) { |
| | | this.investmentProjectPolicyComplianceDTO.fileIdList = this.fileList.map(item => item.fileId); |
| | |
| | | }; |
| | | }, |
| | | methods: { |
| | | |
| | | submit() { |
| | | console.log("项目资金submit") |
| | | }, |
| | | }, |
| | | created() { |
| | | |
| | |
| | | |
| | | }, |
| | | methods: { |
| | | |
| | | submit() { |
| | | console.log("法人submit") |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import {listInfo, getInfo, delInfo, addInfo, updateInfo} from "@/api/projectInfo"; |
| | | import {listProject, getProject, delProject, addProject, updateProject} from "@/api/projectEngineering/projectInfo"; |
| | | import {current, currentRest} from '@/views/projectEngineering/projectLibrary/list'; |
| | | import FileDialog from '@/views/projectEngineering/projectLibrary/component/FileDialog'; |
| | | |
| | | import Cookies from "js-cookie"; |
| | | export default { |
| | | dicts: ['sys_administrative_divisions', 'sys_investment_type', 'sys_project_phases', |
| | | 'sys_funding_type', 'sys_association_status', 'sys_project_status', 'sys_project_code', |
| | |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | this.removeCookie(); |
| | | this.$router.push({ path: '/projectEngineering/project/ProjectDetails', query: { projectId: row.id }}); |
| | | }, |
| | | handleDetail(row) { |
| | | this.removeCookie(); |
| | | this.$router.push({ path: '/projectEngineering/project/ProjectDetails', query: { projectId: row.id }}); |
| | | }, |
| | | // 新增页面 |
| | | add() { |
| | | this.$router.push({ path: '/projectEngineering/project/projectDetails' }); |
| | | this.removeCookie(); |
| | | this.$router.push({ path: '/projectEngineering/project/ProjectDetails' }); |
| | | }, |
| | | //清理缓存 |
| | | removeCookie() { |
| | | Cookies.remove("projectForm") |
| | | Cookies.remove("investmentForm") |
| | | }, |
| | | // 重置排序的方法 |
| | | handleResetSort() { |
| | |
| | | /** 查询项目管理基础信息列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listInfo(this.queryParams).then(response => { |
| | | listProject(this.queryParams).then(response => { |
| | | this.projectInfoList = response.data; |
| | | this.total = response.total; |
| | | }); |
| | |
| | | this.single = selection.length !== 1 |
| | | this.multiple = !selection.length |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | this.open = true; |
| | | this.title = "添加项目管理基础信息"; |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | this.reset(); |
| | | const id = row.id || this.ids |
| | | getInfo(id).then(response => { |
| | | this.form = response.data; |
| | | this.open = true; |
| | | this.title = "修改项目管理基础信息"; |
| | | }); |
| | | }, |
| | | /** 提交按钮 */ |
| | | submitForm() { |
| | | this.$refs["form"].validate(valid => { |
| | | if (valid) { |
| | | if (this.form.id != null) { |
| | | updateInfo(this.form).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addInfo(this.form).then(response => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const ids = row.id || this.ids; |
| | |
| | | :is="componentName" |
| | | ref="childRef" |
| | | :disabled="disabled" |
| | | @toNext="changeTable" |
| | | class="full-width custom-height" |
| | | /> |
| | | <div v-if="!disabled" class="button-container"> |
| | |
| | | import LegalPerson from '@/views/projectEngineering/projectLibrary/component/legalPerson'; |
| | | import PolicyInfo from '@/views/projectEngineering/projectLibrary/component/PolicyInfo'; |
| | | import DocumentsInfo from '@/views/projectEngineering/projectLibrary/component/DocumentsInfo'; |
| | | import { addProject, getProject, updateProject, getProjectCode } from '@/api/projectInfo'; |
| | | |
| | | export default { |
| | | name: 'ProjectDetails', |
| | | data() { |
| | | return { |
| | | currentTab: '项目管理基础信息', |
| | | id: this.$route.query.id || '', |
| | | disabled: false, |
| | | projectForm:{}, |
| | | componentName: BasicInfo, |
| | | TABS_DATA: [ |
| | | { |
| | |
| | | }, |
| | | { |
| | | label: '投资管理基础信息', |
| | | value: '任务下发', |
| | | value: '投资管理基础信息', |
| | | componentName: InvestInfo |
| | | }, |
| | | { |
| | | label: ' 项目投资及资金来源', |
| | | label: '项目投资及资金来源', |
| | | value: '项目投资及资金来源', |
| | | componentName: InvestmentFunds |
| | | }, |
| | |
| | | handleClick(tabTarget) { |
| | | this.componentName = this.TABS_DATA[tabTarget.index].componentName; |
| | | }, |
| | | submit() { |
| | | if (!this.projectForm.projectName) { |
| | | this.$message.error('请输入项目名称'); |
| | | return; |
| | | } |
| | | if (this.projectForm.contact) { |
| | | const phoneRegex = /^1[3-9]\d{9}$/; |
| | | if (!phoneRegex.test(this.projectForm.contact)) { |
| | | this.$message.error('请输入正确的手机号码'); |
| | | return; |
| | | } |
| | | } |
| | | if (this.$refs.childRef) { |
| | | this.$refs.childRef.$refs.demoFormRef.validate((valid) => { |
| | | if (valid) { |
| | | const payload = { |
| | | projectInfoInsertDTO: this.projectForm, |
| | | projectInvestmentInfo: this.investment, |
| | | projectInvestmentFunding: this.investmentFunds, |
| | | projectUnitRegistrationInfo: this.legalPerson, |
| | | investmentProjectPolicyComplianceDTO: this.investmentProjectPolicyComplianceDTO, |
| | | fileIdList: this.fileIdList |
| | | }; |
| | | if (this.id) { |
| | | updateProject(payload).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success(res.msg); |
| | | this.$router.push({ path: '/projectEngineering/project/projectLibrary' }); |
| | | } else { |
| | | this.$message.error(res.msg); |
| | | } |
| | | }); |
| | | } else { |
| | | addProject(payload).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success(res.msg); |
| | | this.$router.push({ path: '/projectEngineering/project/projectLibrary' }); |
| | | } else { |
| | | this.$message.error(res.msg); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | changeTable(index) { |
| | | this.componentName = this.TABS_DATA[index].componentName; |
| | | this.currentTab = this.TABS_DATA[index].value; |
| | | }, |
| | | getProjectInfo(id) { |
| | | getProject(id, 0).then(res => { |
| | | if (res.data) { |
| | | this.investment = res.data.projectInvestmentInfo || {}; |
| | | this.investmentFunds = res.data.projectInvestmentFunding || {}; |
| | | this.legalPerson = res.data.projectUnitRegistrationInfo || {}; |
| | | this.investmentProjectPolicyComplianceDTO = res.data.investmentProjectPolicyComplianceDTO || {}; |
| | | if (res.data.investmentProjectPolicyComplianceDTO && res.data.investmentProjectPolicyComplianceDTO.sysOssVos.length > 0) { |
| | | this.fileList = res.data.investmentProjectPolicyComplianceDTO.sysOssVos.map(item => ({ |
| | | fileId: item.ossId, |
| | | name: item.originalName, |
| | | url: item.url |
| | | })); |
| | | } else { |
| | | this.fileList = []; |
| | | } |
| | | |
| | | if (res.data.fileIdList) { |
| | | this.fileIdList = res.data.fileIdList; |
| | | this.documentsInfoList = res.data.sysOssVos.map(item => ({ |
| | | fileId: item.ossId, |
| | | name: item.originalName, |
| | | url: item.url |
| | | })); |
| | | } |
| | | this.projectForm = res.data.projectInfoInsertDTO || {}; |
| | | this.projectList = res.data.projectInfoInsertDTO.sysOssVos.map(item => ({ |
| | | fileId: item.ossId, |
| | | name: item.originalName, |
| | | url: item.url |
| | | })); |
| | | } |
| | | }); |
| | | submit() { |
| | | this.$refs.childRef.submit(); |
| | | }, |
| | | reset() { |
| | | if (this.id) { |
| | | this.getProjectInfo(this.id); |
| | | } else { |
| | | this.getProjectCodeApi(); |
| | | this.resetPlanLibrary(); |
| | | this.fileList = []; |
| | | this.fileIdList = []; |
| | | this.projectList = []; |
| | | this.documentsInfoList = []; |
| | | } |
| | | }, |
| | | cancel() { |
| | | this.$router.push({ path: '/projectEngineering/project/reserveProjects', query: { projectCategory: '1' } }); |
| | | localStorage.removeItem('fileIdList'); |
| | | }, |
| | | getProjectCodeApi() { |
| | | getProjectCode().then(res => { |
| | | if (res.code === 200) { |
| | | this.projectForm.projectCode = res.msg; |
| | | } |
| | | }); |
| | | this.$refs.childRef.reset(); |
| | | }, |
| | | }, |
| | | created() { |
| | | // 在组件创建时获取项目信息,如果 id 存在 |
| | | if (this.id) { |
| | | this.getProjectInfo(this.id); |
| | | } else { |
| | | this.getProjectCodeApi(); |
| | | } |
| | | console.log("sss") |
| | | }, |
| | | |
| | | }; |
| | |
| | | |
| | | <script> |
| | | import { listDefinition } from "@/api/flowable/definition"; |
| | | import {listInfo, getInfo, delInfo, addInfo, updateInfo} from "@/api/projectInfo"; |
| | | import {listInfo, getInfo, delInfo, addInfo, updateInfo} from "@/api/projectEngineering/projectInfo"; |
| | | import { getProjectProcess } from "@/api/projectProcess/projectProcess" |
| | | import {current, currentRest} from '@/views/projectEngineering/projectLibrary/list'; |
| | | import FileDialog from '@/views/projectEngineering/projectLibrary/component/FileDialog'; |