Merge remote-tracking branch 'origin/master'
17个文件已修改
4个文件已添加
1 文件已重命名
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 request from '@/utils/request' |
| | | |
| | | // 获取项目投资及资金来源情况表分页 |
| | | export const getProjectInvestmentFundings = (params) => { |
| | | return request({ |
| | | url: "/project/investmentFunding/page", |
| | | method: "GET", |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | // 获取项目投资及资金来源情况表列表 |
| | | export const getProjectInvestmentFundingList = () => { |
| | | return request({ |
| | | url: "/project/investmentFunding/list", |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id获取项目投资及资金来源情况表 |
| | | export const getProjectInvestmentFundingById = (params) => { |
| | | return request({ |
| | | url: "/project/investmentFunding/" + params, |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id删除项目投资及资金来源情况表 |
| | | export const deleteProjectInvestmentFundingById = (params) => { |
| | | return request({ |
| | | url: "/project/investmentFunding/" + params, |
| | | method: "DELETE" |
| | | }) |
| | | } |
| | | |
| | | // 批量删除项目投资及资金来源情况表 |
| | | export const deleteProjectInvestmentFundingByIds = (params) => { |
| | | return request({ |
| | | url: "project/investmentFunding/batch", |
| | | method: "DELETE", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 修改项目投资及资金来源情况表 |
| | | export const editProjectInvestmentFunding = (params) => { |
| | | return request({ |
| | | url: "/project/investmentFunding/", |
| | | method: "PUT", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 添加项目投资及资金来源情况表 |
| | | export const addProjectInvestmentFunding = (params) => { |
| | | return request({ |
| | | url: "/project/investmentFunding/", |
| | | 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 request from '@/utils/request' |
| | | |
| | | // 获取投资项目产业政策符合情况表分页 |
| | | export const getProjectInvestmentPolicyCompliances = (params) => { |
| | | return request({ |
| | | url: "/project/investmentPolicyCompliance/page", |
| | | method: "GET", |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | // 获取投资项目产业政策符合情况表列表 |
| | | export const getProjectInvestmentPolicyComplianceList = () => { |
| | | return request({ |
| | | url: "project/investmentPolicyCompliance/list", |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id获取投资项目产业政策符合情况表 |
| | | export const getProjectInvestmentPolicyComplianceById = (params) => { |
| | | return request({ |
| | | url: "/project/investmentPolicyCompliance/" + params, |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id删除投资项目产业政策符合情况表 |
| | | export const deleteProjectInvestmentPolicyComplianceById = (params) => { |
| | | return request({ |
| | | url: "/project/investmentPolicyCompliance/" + params, |
| | | method: "DELETE" |
| | | }) |
| | | } |
| | | |
| | | // 批量删除投资项目产业政策符合情况表 |
| | | export const deleteProjectInvestmentPolicyComplianceByIds = (params) => { |
| | | return request({ |
| | | url: "/project/investmentPolicyCompliance/batch", |
| | | method: "DELETE", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 修改投资项目产业政策符合情况表 |
| | | export const editProjectInvestmentPolicyCompliance = (params) => { |
| | | return request({ |
| | | url: "/project/investmentPolicyCompliance/", |
| | | method: "PUT", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 添加投资项目产业政策符合情况表 |
| | | export const addProjectInvestmentPolicyCompliance = (params) => { |
| | | return request({ |
| | | url: "/project/investmentPolicyCompliance/", |
| | | method: "POST", |
| | | data: params |
| | | }) |
| | | } |
New file |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // 获取项目(法人)单位登记信息表分页 |
| | | export const getProjectUnitRegistrationInfos = (params) => { |
| | | return request({ |
| | | url: "/project/unitRegistrationInfo/page", |
| | | method: "GET", |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | // 获取项目(法人)单位登记信息表列表 |
| | | export const getProjectUnitRegistrationInfoList = () => { |
| | | return request({ |
| | | url: "/project/unitRegistrationInfo/list", |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id获取项目(法人)单位登记信息表 |
| | | export const getProjectUnitRegistrationInfoById = (params) => { |
| | | return request({ |
| | | url: "/project/unitRegistrationInfo/" + params, |
| | | method: "GET" |
| | | }) |
| | | } |
| | | |
| | | // 通过id删除项目(法人)单位登记信息表 |
| | | export const deleteProjectUnitRegistrationInfoById = (params) => { |
| | | return request({ |
| | | url: "/project/unitRegistrationInfo/" + params, |
| | | method: "DELETE" |
| | | }) |
| | | } |
| | | |
| | | // 批量删除项目(法人)单位登记信息表 |
| | | export const deleteProjectUnitRegistrationInfoByIds = (params) => { |
| | | return request({ |
| | | url: "/project/unitRegistrationInfo/batch", |
| | | method: "DELETE", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 修改项目(法人)单位登记信息表 |
| | | export const editProjectUnitRegistrationInfo = (params) => { |
| | | return request({ |
| | | url: "/project/unitRegistrationInfo/", |
| | | method: "PUT", |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | | // 添加项目(法人)单位登记信息表 |
| | | export const addProjectUnitRegistrationInfo = (params) => { |
| | | return request({ |
| | | url: "/project/unitRegistrationInfo/", |
| | | method: "POST", |
| | | data: params |
| | | }) |
| | | } |
| | |
| | | }) |
| | | } |
| | | |
| | | // 提交上报内容 |
| | | export function recordSubmit(data) { |
| | | return request({ |
| | | url: '/api/project-plan-progress-report', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | 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"> |
| | | <el-input v-model.trim="projectForm.projectName" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="projectForm.projectName" class="item" clearable maxlength="255" placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item class="item" label="项目代码" label-width="100px" prop="projectCode"> |
| | | <el-input v-model.trim="projectForm.projectCode" class="item" clearable disabled maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="projectForm.projectCode" class="item" clearable disabled maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" style="position: relative"> |
| | | <div style="width: 150px; position: absolute;"><img alt="" src="../../../../assets/images/s.png" /></div> |
| | | <div style="width: 150px; position: absolute;"><img alt="" src="../../../../assets/images/s.png"/></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item class="item" label="建设内容" label-width="100px" prop="content"> |
| | | <el-input v-model.trim="projectForm.content" style="width: 100%;" clearable maxlength="255" placeholder="请输入" type="textarea" /> |
| | | <el-input v-model.trim="projectForm.content" style="width: 100%;" clearable maxlength="255" |
| | | placeholder="请输入" type="textarea"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="项目阶段" label-width="100px" prop="fundsType" style="width: 100%"> |
| | | <el-input v-model.trim="projectForm.projectPhase" class="item" clearable disabled maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="projectForm.projectPhase" class="item" clearable disabled maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="项目类型" label-width="100px" prop="projectType" style="width: 100%"> |
| | | <el-select v-model="projectForm.projectType" clearable placeholder="请选择" style="width: 100%" > |
| | | <el-select v-model="projectForm.projectType" clearable placeholder="请选择" style="width: 100%"> |
| | | <el-option v-for="item in dict.type.sys_project_type" :key="item.value" :label="item.label" |
| | | :value="item.value"/> |
| | | </el-select> |
| | |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="项目状态" label-width="100px" prop="projectstatus" style="width: 100%"> |
| | | <el-select v-model="projectForm.projectStatus"clearable placeholder="请选择" style="width: 100%"> |
| | | <el-select v-model="projectForm.projectStatus" clearable placeholder="请选择" style="width: 100%"> |
| | | <el-option v-for="item in dict.type.sys_project_status" :key="item.value" :label="item.label" |
| | | :value="item.value"/> |
| | | </el-select> |
| | |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="项目业主单位" label-width="100px" prop="projectOwnerUnit" style="width: 100%"> |
| | | <el-input v-model.trim="projectForm.projectOwnerUnit" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="projectForm.projectOwnerUnit" 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="100px" prop="projectContactPerson" style="width: 100%"> |
| | | <el-input v-model.trim="projectForm.projectContactPerson" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-form-item label="项目联系人" label-width="100px" prop="projectContactPerson" style="width: 100%"> |
| | | <el-input v-model.trim="projectForm.projectContactPerson" class="item" clearable maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="联系方式" label-width="100px" prop="contact" style="width: 100%"> |
| | | <el-input v-model.trim="projectForm.contact" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="projectForm.contact" class="item" clearable maxlength="255" placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <!-- TODO:暂时不做 --> |
| | | <el-form-item label="关联工程" label-width="100px" prop="engineering" style="width: 100%"> |
| | | <!-- <el-input v-model.trim="getEngineeringName" class="item" clearable disabled maxlength="255" placeholder="请在工程中选择项目" />--> |
| | | <el-select v-model="projectForm.engineeringIdList" :multiple="true" collapse-tags placeholder="请选择" style="width: 100%"> |
| | | <el-option v-for="item in selectOptions" :key="item.id" :label="item.engineeringName" :value="item.id" /> |
| | | <!-- <RemoteSelect v-if="selectOptions.length" :hasMore="hasMore" :loading="loading" :page="page" @loadMore="handleLoadMore" />--> |
| | | <el-select v-model="projectForm.engineeringIdList" :multiple="true" collapse-tags placeholder="请选择" |
| | | style="width: 100%"> |
| | | <el-option v-for="item in selectOptions" :key="item.id" :label="item.engineeringName" :value="item.id"/> |
| | | <!-- <RemoteSelect v-if="selectOptions.length" :hasMore="hasMore" :loading="loading" :page="page" @loadMore="handleLoadMore" />--> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | 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> |
| | |
| | | clearable |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | | > |
| | | > |
| | | <el-option v-for="item in dict.type.sys_administrative_divisions" :key="item.value" :label="item.label" |
| | | :value="item.value"/> |
| | | </el-select> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <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 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-col> |
| | | <el-col :span="6"> |
| | |
| | | <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" |
| | | 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-row :gutter="20"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="中标单位" label-width="100px" prop="setTime" style="width: 100%"> |
| | | <el-input v-model.trim="projectForm.winUnit" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="projectForm.winUnit" class="item" clearable maxlength="255" placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="中标金额" label-width="100px" style="width: 100%"> |
| | | <el-input v-model.trim="projectForm.winAmount" class="item" clearable maxlength="255" placeholder="请输入" type="number" /> |
| | | <el-input v-model.trim="projectForm.winAmount" class="item" clearable maxlength="255" placeholder="请输入" |
| | | type="number"/> |
| | | </el-form-item> |
| | | </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> |
| | | <el-col :span="6"> |
| | | <el-form-item label="年度投资金额" label-width="100px" prop="company" style="width: 100%; min-width: 260px"> |
| | | <el-input v-model.trim="projectForm.yearInvestAmount" clearable maxlength="255" placeholder="请输入" style="width: 90%" type="number" /> |
| | | <el-input v-model.trim="projectForm.yearInvestAmount" clearable maxlength="255" placeholder="请输入" |
| | | style="width: 90%" type="number"/> |
| | | <span style="margin-left: 2px">元</span> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <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" /> |
| | | <img alt="" src="@/assets/images/positionl.png"/> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | |
| | | <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' |
| | | ,'sys_administrative_divisions','sys_centralized_management','sys_approval_type','sys_key_categories','sys_annual_plan'], |
| | | dicts: ['sys_funding_type', 'sys_investment_type', 'sys_project_type', 'sys_project_status', 'sys_competent_department' |
| | | , 'sys_administrative_divisions', 'sys_centralized_management', 'sys_approval_type', 'sys_key_categories', 'sys_annual_plan'], |
| | | components: { |
| | | Map, |
| | | // UploadStandard, |
| | |
| | | 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, |
| | | hasMore: true, |
| | | selectOptions: [], |
| | | accept: ['pdf', 'docx', 'xlsx', 'jpg','jpeg'], |
| | | accept: ['pdf', 'docx', 'xlsx', 'jpg', 'jpeg'], |
| | | largeCategory: '', |
| | | subclass: '', |
| | | mapCreateInfo: {}, |
| | | demoFormRef: null, |
| | | rules: { |
| | | projectName: [{ required: true, message: '请输入项目名称', trigger: 'blur' }] |
| | | projectName: [{required: true, message: '请输入项目名称', trigger: 'blur'}] |
| | | } |
| | | }; |
| | | }, |
| | | computed: { |
| | | dialogMapList () { |
| | | dialogMapList() { |
| | | return [{ |
| | | addr: this.projectForm.address, |
| | | addr: this.projectForm.projectAddress, |
| | | name: '创建' |
| | | }]; |
| | | }, |
| | | }, |
| | | created() { |
| | | this.handleLoadMore(1); |
| | | mounted() { |
| | | this.projectForm.id = this.$route.query.projectId; |
| | | const projectForm = Cookies.get("projectForm"); |
| | | if (projectForm) { |
| | | this.projectForm = JSON.parse(projectForm); |
| | | } else { |
| | | //初始化主管部门下拉框 |
| | | this.getApprovalList(); |
| | | // 在组件创建时获取项目信息,如果 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 { |
| | | this.loading = true; |
| | | const res = await getList({ pageNum: newPage, pageSize: 10000 }); |
| | | const res = await getList({pageNum: newPage, pageSize: 10000}); |
| | | const list = res.rows || []; |
| | | if (newPage === 1) { |
| | | this.selectOptions = []; |
| | |
| | | }, |
| | | mapCreateClick() { |
| | | console.log("创建") |
| | | const { lon, lat, addr } = this.mapCreateInfo; |
| | | const {lon, lat, addr} = this.mapCreateInfo; |
| | | 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> |
| | |
| | | .item { |
| | | width: 100%; |
| | | } |
| | | |
| | | .map_div { |
| | | width: 100%; |
| | | height: 643px; |
| | | } |
| | | |
| | | .input-row { |
| | | display: flex; |
| | | width: 100%; |
| | |
| | | } |
| | | }, |
| | | 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-option v-for="item in dict.type.sys_cross_domain" :key="item.value" :label="item.label" |
| | | :value="item.value"/> |
| | | :value="parseInt(item.value)"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <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-option v-for="item in dict.type.sys_whether_project" :key="item.value" :label="item.label" |
| | | :value="item.value"/> |
| | | :value="parseInt(item.value)"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | </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-option v-for="item in dict.type.sys_whether_project" :key="item.value" :label="item.label" |
| | | :value="item.value"/> |
| | | :value="parseInt(item.value)"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <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: '', |
| | |
| | | useEarth: '', |
| | | contentScale: '', |
| | | 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: [] |
| | | projectId: '', |
| | | }, |
| | | plannedStartDate: '', |
| | | expectedCompletionDate: '', |
| | |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.updateFormData(); |
| | | this.investmentForm.projectId = this.$route.query.projectId |
| | | // 从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对象 |
| | | if(parsedInvestmentForm) { |
| | | this.investmentForm = parsedInvestmentForm; |
| | | } |
| | | if(parsedProjectForm) { |
| | | this.projectForm = parsedProjectForm; |
| | | } |
| | | // 如果路由存在id且没有缓存,视为编辑或查看,调用api |
| | | if (this.investmentForm.projectId && !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.projectId ).then(res => { |
| | | this.investmentForm = res.data; |
| | | this.investmentForm.constructionLocation = this.projectForm.area; |
| | | this.investmentForm.detailedAddress = this.projectForm.projectAddress; |
| | | this.investmentForm.plannedStartDate = this.projectForm.planStartTime; |
| | | this.investmentForm.expectedCompletionDate = this.projectForm.planCompleteTime; |
| | | }); |
| | | }, |
| | | 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); |
| | |
| | | <template> |
| | | <div class="basic-info"> |
| | | <el-form ref="demoFormRef" :disabled="disabled" :model="investmentFunds" class="dialog_form"> |
| | | <el-form ref="demoFormRef" :disabled="disabled" :model="investmentFundsForm" class="dialog_form"> |
| | | <!-- 保持原有模板内容不变 --> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="项目总投资额" label-width="130px" prop="fundsType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.totalInvestment" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.totalInvestment" class="item" clearable maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="项目本金" label-width="130px" prop="investmentType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.principal" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.principal" class="item" clearable maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="18"> |
| | | <el-form-item label="一、政府投资" label-width="130px" prop="projectType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.governmentInvestmentTotal" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.governmentInvestmentTotal" class="item" clearable |
| | | maxlength="255" placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="18"> |
| | | <el-form-item label="(一)中央投资" label-width="130px" prop="projectType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.centralInvestmentTotal" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.centralInvestmentTotal" 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="1.中央预算投资" label-width="130px" prop="fundsType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.centralBudgetInvestment" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.centralBudgetInvestment" class="item" clearable maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="2.中央财政" label-width="130px" prop="investmentType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.centralFiscalInvestment" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.centralFiscalInvestment" class="item" clearable maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item class="items" label="3.中央专项债券筹集的专项建设资金" label-width="130px" prop="investmentType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.centralSpecialBondInvestment" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-form-item class="items" label="3.中央专项债券筹集的专项建设资金" label-width="130px" prop="investmentType" |
| | | style="width: 100%"> |
| | | <el-input v-model.trim="investmentFundsForm.centralSpecialBondInvestment" class="item" clearable |
| | | maxlength="255" placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="18"> |
| | | <el-form-item label="4.中央专项建设基金" label-width="130px" prop="engineering" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.centralSpecialFundInvestment" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.centralSpecialFundInvestment" class="item" clearable |
| | | maxlength="255" placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="18"> |
| | | <el-form-item label="(二)省级投资" label-width="130px" prop="engineering" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.provincialInvestmentTotal" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.provincialInvestmentTotal" 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="1.省预算内投资" label-width="130px" prop="fundsType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.provincialBudgetInvestment" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.provincialBudgetInvestment" class="item" clearable |
| | | maxlength="255" placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="2.省财政性建设投资" label-width="130px" prop="investmentType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.provincialFiscalInvestment" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.provincialFiscalInvestment" class="item" clearable |
| | | maxlength="255" placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="3.省专项建设资金" label-width="130px" prop="investmentType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.provincialSpecialFundInvestment" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.provincialSpecialFundInvestment" class="item" clearable |
| | | maxlength="255" placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="18"> |
| | | <el-form-item label="(三)市(州)投资" label-width="130px" prop="engineering" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.cityInvestmentTotal" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.cityInvestmentTotal" 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="1.市(州)预算内投资" label-width="130px" prop="fundsType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.cityBudgetInvestment" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.cityBudgetInvestment" class="item" clearable maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="2.市(州)财政性投资" label-width="130px" prop="investmentType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.cityFiscalInvestment" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.cityFiscalInvestment" class="item" clearable maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="3.市(州)专项资金" label-width="130px" prop="investmentType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.citySpecialFundInvestment" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.citySpecialFundInvestment" class="item" clearable |
| | | maxlength="255" placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="18"> |
| | | <el-form-item label="(四)县(市、区)投资" label-width="130px" prop="engineering" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.countyInvestmentTotal" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.countyInvestmentTotal" 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="1.区(县)预算内投资" label-width="130px" prop="fundsType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.countyBudgetInvestment" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.countyBudgetInvestment" class="item" clearable maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item class="items" label="2.区(县)财政性建设资金" label-width="130px" prop="investmentType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.countyFiscalInvestment" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-form-item class="items" label="2.区(县)财政性建设资金" label-width="130px" prop="investmentType" |
| | | style="width: 100%"> |
| | | <el-input v-model.trim="investmentFundsForm.countyFiscalInvestment" class="item" clearable maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="3.区(县)专项资金" label-width="130px" prop="investmentType" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.countySpecialFundInvestment" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.countySpecialFundInvestment" class="item" clearable |
| | | maxlength="255" placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="18"> |
| | | <el-form-item label="二、国内贷款" label-width="130px" prop="engineering" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.domesticLoanTotal" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.domesticLoanTotal" class="item" clearable maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="18"> |
| | | <el-form-item label="银行贷款" label-width="130px" prop="engineering" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.bankLoan" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.bankLoan" class="item" clearable maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="18"> |
| | | <el-form-item label="三、外商投资" label-width="130px" prop="engineering" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.foreignInvestmentTotal" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.foreignInvestmentTotal" class="item" clearable maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="18"> |
| | | <el-form-item label="四、企业自筹" label-width="130px" prop="engineering" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.enterpriseSelfRaisedTotal" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.enterpriseSelfRaisedTotal" class="item" clearable |
| | | maxlength="255" placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="18"> |
| | | <el-form-item label="五、其他投资" label-width="130px" prop="engineering" style="width: 100%"> |
| | | <el-input v-model.trim="investmentFunds.otherInvestmentTotal" class="item" clearable maxlength="255" placeholder="请输入" /> |
| | | <el-input v-model.trim="investmentFundsForm.otherInvestmentTotal" class="item" clearable maxlength="255" |
| | | placeholder="请输入"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import Cookies from "js-cookie"; |
| | | import { |
| | | addProjectInvestmentFunding, |
| | | editProjectInvestmentFunding, |
| | | getProjectInvestmentFundingById |
| | | } from "@/api/projectEngineering/projectInvestmentFunding"; |
| | | |
| | | export default { |
| | | name: 'InvestmentFundsForm', |
| | | props: { |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | investmentFunds: { |
| | | projectForm: {}, |
| | | investmentFundsForm: { |
| | | id: '', |
| | | projectId: '', |
| | | totalInvestment: '', |
| | | principal: '', |
| | | governmentInvestmentTotal: '', |
| | |
| | | }; |
| | | }, |
| | | methods: { |
| | | |
| | | getInvestmentFunds() { |
| | | getProjectInvestmentFundingById(this.investmentForm.projectId ).then(res => { |
| | | this.investmentFundsForm = res.data; |
| | | }); |
| | | }, |
| | | submit() { |
| | | if (!this.projectForm.id) { |
| | | this.$message.error("请先保存投资管理基本信息") |
| | | } else { |
| | | this.investmentFundsForm.projectId = this.projectForm.id; |
| | | if (this.investmentFundsForm.id != null) { |
| | | editProjectInvestmentFunding(this.investmentFundsForm).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | //跳转到下个组件 |
| | | this.$emit('toNext', 3); |
| | | }); |
| | | } else { |
| | | addProjectInvestmentFunding(this.investmentFundsForm).then(response => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.investmentFundsForm.id = response.data |
| | | //跳转到下个组件 |
| | | this.$emit('toNext', 3); |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | created() { |
| | | mounted() { |
| | | this.investmentFundsForm.id = this.$route.query.projectId; |
| | | const investmentFundsForm = Cookies.get("investmentFundsForm"); |
| | | const projectForm = Cookies.get("projectForm"); |
| | | |
| | | const parsedInvestmentForm = investmentFundsForm ? JSON.parse(investmentFundsForm) : null; |
| | | const parsedProjectForm = projectForm ? JSON.parse(projectForm) : null; |
| | | if (parsedInvestmentForm) { |
| | | this.investmentFundsForm = parsedInvestmentForm |
| | | } |
| | | if (parsedProjectForm){ |
| | | this.projectForm = parsedProjectForm |
| | | } |
| | | // 如果路由存在id且没有缓存,视为编辑或查看,调用api |
| | | if (this.investmentFundsForm.projectId && !parsedInvestmentForm) { |
| | | this.getInvestmentFunds(); |
| | | } |
| | | }, |
| | | |
| | | beforeDestroy() { |
| | | Cookies.set("investmentFundsForm", JSON.stringify(this.investmentFundsForm)); |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | |
| | | } |
| | | |
| | | .items { |
| | | ::v-deep .el-form-item__label { |
| | | ::v-deep .el-form-item__label { |
| | | line-height: 16px; |
| | | text-align: right; |
| | | } |
| | |
| | | |
| | | }, |
| | | 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") |
| | | }, |
| | | |
| | | }; |
| | |
| | | this.$router.push({ |
| | | path: '/projectManage/planRecord', |
| | | query: { |
| | | data: JSON.stringify(row) |
| | | data: row |
| | | } |
| | | }) |
| | | } |
| | |
| | | <el-card shadow="hover"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" class="mb-4"> |
| | | <el-button type="primary" size="small" @click="handlePlanRecord" style="float: right; margin-bottom: 10px; margin-left: 10px">返回</el-button> |
| | | <el-button type="primary" size="small" @click="handleAdd" style="float: right; margin-bottom: 10px">新增</el-button> |
| | | <el-table :data="tableData" border stripe style="width: 100%; margin-bottom: 20px"> |
| | | <el-table-column prop="index" label="序号" width="50" align="center"> |
| | |
| | | methods: { |
| | | // 页面加载 |
| | | search() { |
| | | this.getPlanInfoData(this.planRecordData.id); |
| | | this.getPlanInfoData(this.planInfoData.id); |
| | | }, |
| | | // 获取传递过来的项目计划详情 |
| | | getPlanRecordData() { |
| | | // 从查询参数中获取数据 |
| | | if (this.$route.query.data) { |
| | | this.planRecordData = JSON.parse(this.$route.query.data) |
| | | } |
| | | this.planInfoData = this.$route.query.planInfoData |
| | | this.planRecordData = this.$route.query.planRecordData |
| | | this.planInfoData = this.$route.query.data |
| | | this.search(); |
| | | }, |
| | | // 获取项目计划项 |
| | |
| | | // 遍历tableData,获得值不为空字符串的行 |
| | | const validList = this.tableData.filter(item => item.title !== '' || item.startTime !== '' || item.endTime !== ''); |
| | | this.addData = { |
| | | projectPlanRecordId: this.planRecordData.id, |
| | | projectPlanRecordId: this.planInfoData.id, |
| | | actualInvest: this.actualInvest, |
| | | addList: validList |
| | | } |
| | | addPlanInfo(this.addData).then(response => { |
| | | this.handlePlanRecord(this.planInfoData) |
| | | this.handlePlanRecord() |
| | | }) |
| | | }, |
| | | // 重置当前行数据 |
| | |
| | | }); |
| | | }, |
| | | /** 返回项目计划记录 */ |
| | | handlePlanRecord(planInfoData) { |
| | | handlePlanRecord() { |
| | | this.$router.push({ |
| | | name: '/projectManage/planRecord', |
| | | path: '/projectManage/planRecord', |
| | | query: { |
| | | data: JSON.stringify(planInfoData) |
| | | data: this.planRecordData |
| | | } |
| | | }) |
| | | } |
| | |
| | | <el-card shadow="hover"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" class="mb-4"> |
| | | <el-button type="primary" size="small" @click="handlePlanRecord" style="float: right; margin-bottom: 10px;">返回</el-button> |
| | | <!--项目计划项--> |
| | | <el-table :data="tableData" border stripe style="width: 100%; margin-bottom: 20px"> |
| | | <el-table-column prop="index" label="序号" width="50" align="center"> |
| | |
| | | // 获取传递过来的项目计划详情 |
| | | getPlanRecordData() { |
| | | // 从查询参数中获取数据 |
| | | if (this.$route.query.data) { |
| | | this.planRecordData = JSON.parse(this.$route.query.data) |
| | | } |
| | | this.planRecordData = this.$route.query.data |
| | | this.planInfoData = this.$route.query.planInfoData |
| | | this.search(); |
| | | }, |
| | |
| | | this.tableData[index].startTime = ''; |
| | | this.tableData[index].endTime = ''; |
| | | }, |
| | | /** 返回项目计划记录页面 */ |
| | | handlePlanRecord(planInfoData) { |
| | | /** 返回项目计划记录 */ |
| | | handlePlanRecord() { |
| | | this.$router.push({ |
| | | name: '/projectManage/planRecord', |
| | | path: '/projectManage/planRecord', |
| | | query: { |
| | | data: JSON.stringify(planInfoData) |
| | | data: this.planRecordData |
| | | } |
| | | }) |
| | | }, |
| | | } |
| | | }, |
| | | created() { |
| | | this.getPlanRecordData(); |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-container> |
| | | <el-header v-show="planInfoData && planInfoData.projectName" class="header-title">项目名称:{{ planInfoData.projectName }}</el-header> |
| | | <h4 v-show="planInfoData && planInfoData.projectCode" style="text-align: center">项目代码:{{ planInfoData.projectCode }}</h4> |
| | | <el-header v-show="planRecordData && planRecordData.projectName" class="header-title">项目名称:{{ planRecordData.projectName }}</el-header> |
| | | <h4 v-show="planRecordData && planRecordData.projectCode" style="text-align: center">项目代码:{{ planRecordData.projectCode }}</h4> |
| | | <el-main> |
| | | <el-card shadow="hover"> |
| | | <el-row :gutter="20"> |
| | |
| | | data() { |
| | | return { |
| | | // 接收传递过来的项目计划数据 |
| | | planInfoData: {}, |
| | | planRecordData: {}, |
| | | // 月度计划数据 |
| | | monthRecords: [], |
| | | // 季度计划数据 |
| | |
| | | methods: { |
| | | // 页面加载 |
| | | search() { |
| | | this.getPlanRecordData(this.planInfoData.id); |
| | | this.getPlanRecordData(this.planRecordData.id); |
| | | }, |
| | | // 获取传递过来的项目计划详情 |
| | | getPlanInfoData() { |
| | | // 从查询参数中获取数据 |
| | | if (this.$route.query.data) { |
| | | this.planInfoData = JSON.parse(this.$route.query.data); |
| | | this.getPlanRecordData(this.planInfoData.id); |
| | | } |
| | | this.planRecordData = this.$route.query.data |
| | | this.getPlanRecordData(this.planRecordData.id); |
| | | }, |
| | | // 获取项目计划记录数据 |
| | | getPlanRecordData(id) { |
| | |
| | | handleAddMonthPlan() { |
| | | let planRecordData = { |
| | | id: undefined, |
| | | projectInfoId: this.planInfoData.id, |
| | | projectInfoId: this.planRecordData.id, |
| | | planTimeFlag: 0 |
| | | } |
| | | // 判断月度计划是否为空 |
| | |
| | | handleAddSeasonPlan() { |
| | | let planRecordData = { |
| | | id: undefined, |
| | | projectInfoId: this.planInfoData.id, |
| | | projectInfoId: this.planRecordData.id, |
| | | planTimeFlag: 1 |
| | | } |
| | | // 判断季度计划是否为空 |
| | |
| | | handleAddYearPlan() { |
| | | let planRecordData = { |
| | | id: undefined, |
| | | projectInfoId: this.planInfoData.id, |
| | | projectInfoId: this.planRecordData.id, |
| | | planTimeFlag: 2 |
| | | } |
| | | // 判断年度计划是否为空 |
| | |
| | | /** 修改项目计划项 */ |
| | | handlePlanInfo(row) { |
| | | this.$router.push({ |
| | | name: 'PlanInfo', |
| | | path: '/projectManage/planInfo', |
| | | query: { |
| | | data: JSON.stringify(row), |
| | | planInfoData: this.planInfoData |
| | | data: row, |
| | | planRecordData: this.planRecordData |
| | | } |
| | | }) |
| | | }, |
| | |
| | | this.$router.push({ |
| | | path: '/projectManage/planInfoCheck', |
| | | query: { |
| | | data: JSON.stringify(row), |
| | | data: row, |
| | | planRecordData: this.planRecordData |
| | | } |
| | | }) |
| | | } |
| | |
| | | </div> |
| | | </el-row> |
| | | |
| | | <el-dialog title="进度上报" :visible.sync="dialogFormVisible" custom-class="custom-dialog"> |
| | | <el-dialog :title=" checkFlag ? '进度查看' : '进度上报' " :visible.sync="dialogFormVisible" custom-class="custom-dialog"> |
| | | <el-form :model="progressReportData"> |
| | | <el-form-item label="报告期:" :label-width="formLabelWidth"> |
| | | <el-input :value="progressReportData.planTime + (progressReportData.planTimeFlag === 0 ? '月度' : progressReportData.planTimeFlag === 1 ? '季度' : '年度')" disabled /> |
| | | <el-input :value="progressReportData.planTime + (progressReportData.planTimeFlag === 0 ? '月度' : progressReportData.planTimeFlag === 1 ? '季度' : '年度')" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="计划事项:" :label-width="formLabelWidth"> |
| | | <el-input v-model="progressReportData.title" disabled /> |
| | | <el-input v-model="progressReportData.title" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="计划时间:" :label-width="formLabelWidth"> |
| | | <el-date-picker v-model="progressReportData.startTime" type="date" placeholder="选择日期" size="small" style="width: 130px" disabled/> |
| | | <el-date-picker v-model="progressReportData.startTime" type="date" placeholder="选择日期" size="small" style="width: 130px" readonly/> |
| | | 至 |
| | | <el-date-picker v-model="progressReportData.endTime" type="date" placeholder="选择日期" size="small" style="width: 130px" disabled/> |
| | | <el-date-picker v-model="progressReportData.endTime" type="date" placeholder="选择日期" size="small" style="width: 130px" readonly/> |
| | | </el-form-item> |
| | | <el-form-item label="实际完成时间:" :label-width="formLabelWidth"> |
| | | <el-date-picker v-model="progressReportData.actualStartTime" type="date" placeholder="选择日期" size="small" style="width: 130px" /> |
| | | <el-date-picker v-model="progressReportData.actualStartTime" type="date" placeholder="选择日期" size="small" style="width: 130px" :readonly="checkFlag"/> |
| | | 至 |
| | | <el-date-picker v-model="progressReportData.actualEndTime" type="date" placeholder="选择日期" size="small" style="width: 130px" /> |
| | | <el-date-picker v-model="progressReportData.actualEndTime" type="date" placeholder="选择日期" size="small" style="width: 130px" :readonly="checkFlag"/> |
| | | </el-form-item> |
| | | <el-form-item label="进度情况:" :label-width="formLabelWidth"> |
| | | <el-input type="textarea" v-model="progressReportData.progressStatus" placeholder="请输入" rows="3" /> |
| | | <el-input type="textarea" v-model="progressReportData.progressStatus" placeholder="请输入" rows="3" :readonly="checkFlag" /> |
| | | </el-form-item> |
| | | <el-form-item label="工程进度附件:" :label-width="formLabelWidth"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | drag |
| | | action="https://jsonplaceholder.typicode.com/posts/" |
| | | multiple> |
| | | multiple |
| | | :disabled="checkFlag" > |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> |
| | | <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div> |
| | | </el-upload> |
| | | </el-form-item> |
| | | <el-form-item label="截止本报告完成投资:" :label-width="formLabelWidth"> |
| | | <el-input v-model="progressReportData.actualInvest" type="number" /> |
| | | <el-input v-model="progressReportData.actualInvest" type="number" :readonly="checkFlag" /> |
| | | </el-form-item> |
| | | <el-form-item label="上级审核:" :label-width="formLabelWidth"> |
| | | <el-input :value="progressReportData.departmentExamine === 0 ? '同意' : '驳回'" disabled /> |
| | | <el-input :value="progressReportData.departmentExamine === 0 ? '同意' : progressReportData.departmentExamine === 1 ? '驳回' : '未审核'" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="上级批复:" :label-width="formLabelWidth"> |
| | | <el-input v-model="progressReportData.departmentApproval" disabled /> |
| | | <el-input v-model="progressReportData.departmentApproval" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="上级批复回复:" :label-width="formLabelWidth"> |
| | | <el-input type="textarea" v-model="progressReportData.departmentApprovalReply" placeholder="请输入" rows="3" /> |
| | | <el-input type="textarea" v-model="progressReportData.departmentApprovalReply" placeholder="请输入" rows="3" :readonly="checkFlag" /> |
| | | </el-form-item> |
| | | <el-form-item label="主管部门审核:" :label-width="formLabelWidth"> |
| | | <el-input :value="progressReportData.manageExamine === 0 ? '同意' : '驳回'" disabled /> |
| | | <el-input :value="progressReportData.manageExamine === 0 ? '同意' : progressReportData.manageExamine === 1 ? '驳回' : '未审核'" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="主管部门审核批复:" :label-width="formLabelWidth"> |
| | | <el-input v-model="progressReportData.manageApproval" disabled /> |
| | | <el-input v-model="progressReportData.manageApproval" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="主管部门批复回复:" :label-width="formLabelWidth"> |
| | | <el-input type="textarea" v-model="progressReportData.manageApprovalReply" placeholder="请输入" rows="3" /> |
| | | <el-input type="textarea" v-model="progressReportData.manageApprovalReply" placeholder="请输入" rows="3" :readonly="checkFlag" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="dialogFormVisible = false">上 报</el-button> |
| | | <el-button type="primary" @click="handleRecordSubmit" v-if="!checkFlag">上 报</el-button> |
| | | <el-button @click="dialogFormVisible = false">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getProgressInfoList, getProgressReport } from "@/api/projectManage/progress/index"; |
| | | import { getProgressInfoList, getProgressReport, recordSubmit } from "@/api/projectManage/progress/index"; |
| | | |
| | | export default { |
| | | name: "progressRecord", |
| | |
| | | activeTab: "month", // 默认显示月度计划 |
| | | |
| | | dialogFormVisible: false, |
| | | // 查看显示 |
| | | checkFlag: false, |
| | | progressReportData: {}, |
| | | formLabelWidth: '150px' |
| | | } |
| | | }, |
| | | methods: { |
| | | // 页面加载 |
| | | search() { |
| | | this.getPlanRecordData(this.planRecordData.id); |
| | | this.getPlanRecordData() |
| | | }, |
| | | // 获取传递过来的项目计划详情 |
| | | getplanRecordData() { |
| | | getPlanRecordData() { |
| | | // 从查询参数中获取数据 |
| | | if (this.$route.query.data) { |
| | | this.planRecordData = JSON.parse(this.$route.query.data); |
| | |
| | | getProgressReport(row.id).then(res => { |
| | | this.progressReportData = res.data; |
| | | }) |
| | | }, |
| | | // 上报提交 |
| | | handleRecordSubmit() { |
| | | recordSubmit(this.progressReportData).then(res => { |
| | | this.dialogFormVisible = false; |
| | | this.$message.success('上报成功'); |
| | | this.search(); |
| | | }) |
| | | }, |
| | | // 查看进度 |
| | | handleCheckProgress(row) { |
| | | this.dialogFormVisible = true; |
| | | this.checkFlag = true; |
| | | getProgressReport(row.id).then(res => { |
| | | this.progressReportData = res.data; |
| | | }) |
| | | } |
| | | }, |
| | | created() { |
| | | this.getplanRecordData(); |
| | | this.search(); |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | |
| | | <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'; |