增加项目管理功能
parent
9519000083
commit
1c95a50d1c
|
@ -45,10 +45,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<result property="updateBy" column="update_by" />
|
<result property="updateBy" column="update_by" />
|
||||||
<result property="updateTime" column="update_time" />
|
<result property="updateTime" column="update_time" />
|
||||||
<result property="remark" column="remark" />
|
<result property="remark" column="remark" />
|
||||||
|
<association property="setting" column="ps_id" javaType="ProProjectInfoSetting" resultMap="ProProjectInfoSettingResult" />
|
||||||
|
<collection property="projectDeptsList" javaType="java.util.List" resultMap="ProProjectInfoDeptsResult" />
|
||||||
|
</resultMap>
|
||||||
|
<resultMap id="ProProjectInfoDeptsResult" type="ProProjectInfoDepts">
|
||||||
|
<result property="id" column="pd_id" />
|
||||||
|
<result property="projectId" column="id" />
|
||||||
|
<result property="projectName" column="project_name" />
|
||||||
|
<result property="deptType" column="pd_type" />
|
||||||
|
<result property="deptName" column="pd_name" />
|
||||||
|
<result property="deptCode" column="pd_code" />
|
||||||
|
<result property="leader" column="pd_leader" />
|
||||||
|
<result property="phone" column="pd_phone" />
|
||||||
|
</resultMap>
|
||||||
|
<resultMap id="ProProjectInfoSettingResult" type="ProProjectInfoSetting">
|
||||||
|
<result property="id" column="ps_id" />
|
||||||
|
<result property="projectId" column="id" />
|
||||||
|
<result property="projectName" column="project_name" />
|
||||||
|
<result property="orgName" column="ps_org_name" />
|
||||||
|
<result property="orgLogo" column="ps_org_logo" />
|
||||||
|
<result property="orgImage" column="ps_org_image" />
|
||||||
|
<result property="orgVideo" column="ps_org_video" />
|
||||||
|
<result property="orgPlane" column="ps_org_plane" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectProProjectInfoVo">
|
<sql id="selectProProjectInfoVo">
|
||||||
select pi.id, pi.dept_id, sd.dept_name, pi.vis_dept_id, pi.dis_dept_id, pi.project_name, pi.project_code, pi.simple_name, pi.project_type, pi.project_level, pi.project_regional, pi.project_address, pi.project_nature, pi.licence_number, pi.project_person, pi.project_person_phone, pi.longitude, pi.latitude, pi.project_time_limit, pi.total_investment, pi.floor_area, pi.total_output_value, pi.planned_completion_time, pi.scheduled_start_time, pi.actual_operating_time, pi.actual_completion_time, pi.contract_amount, pi.paid_amount, pi.on_account_amount, pi.project_schedule, pi.project_summarize, pi.project_qr_code, pi.project_status, pi.project_sort, pi.is_del, pi.create_by, pi.create_time, pi.update_by, pi.update_time, pi.remark from pro_project_info pi
|
select pi.id, pi.dept_id, sd.dept_name, pi.vis_dept_id, pi.dis_dept_id, pi.project_name, pi.project_code, pi.simple_name, pi.project_type, pi.project_level, pi.project_regional, pi.project_address, pi.project_nature, pi.licence_number, pi.project_person, pi.project_person_phone, pi.longitude, pi.latitude, pi.project_time_limit, pi.total_investment, pi.floor_area, pi.total_output_value, pi.planned_completion_time, pi.scheduled_start_time, pi.actual_operating_time, pi.actual_completion_time, pi.contract_amount, pi.paid_amount, pi.on_account_amount, pi.project_schedule, pi.project_summarize, pi.project_qr_code, pi.project_status, pi.project_sort, pi.is_del, pi.create_by, pi.create_time, pi.update_by, pi.update_time, pi.remark
|
||||||
|
from pro_project_info pi
|
||||||
left join sys_dept sd on sd.dept_id = pi.dept_id
|
left join sys_dept sd on sd.dept_id = pi.dept_id
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
|
@ -73,7 +95,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectProProjectInfoById" parameterType="Long" resultMap="ProProjectInfoResult">
|
<select id="selectProProjectInfoById" parameterType="Long" resultMap="ProProjectInfoResult">
|
||||||
<include refid="selectProProjectInfoVo"/>
|
select pi.id, pi.dept_id, sd.dept_name, pi.vis_dept_id, pi.dis_dept_id, pi.project_name,
|
||||||
|
pi.project_code, pi.simple_name, pi.project_type, pi.project_level, pi.project_regional, pi.project_address, pi.project_nature,
|
||||||
|
pi.licence_number, pi.project_person, pi.project_person_phone, pi.longitude, pi.latitude, pi.project_time_limit, pi.total_investment,
|
||||||
|
pi.floor_area, pi.total_output_value, pi.planned_completion_time, pi.scheduled_start_time, pi.actual_operating_time, pi.actual_completion_time,
|
||||||
|
pi.contract_amount, pi.paid_amount, pi.on_account_amount, pi.project_schedule, pi.project_summarize, pi.project_qr_code, pi.project_status,
|
||||||
|
pi.project_sort, pi.is_del, pi.create_by, pi.create_time, pi.update_by, pi.update_time, pi.remark,
|
||||||
|
pd.id pd_id,pd.dept_type pd_type,pd.dept_name pd_name,pd.dept_code pd_code,pd.leader pd_leader,pd.phone pd_phone,
|
||||||
|
ps.id ps_id,ps.org_name ps_org_name,ps.org_logo ps_org_logo,ps.org_image ps_org_image,ps.org_video ps_org_video,ps.org_plane ps_org_plane
|
||||||
|
from pro_project_info pi
|
||||||
|
left join sys_dept sd on sd.dept_id = pi.dept_id
|
||||||
|
left join pro_project_info_depts pd on pi.id=pd.project_id
|
||||||
|
left join pro_project_info_setting ps on pi.id=ps.project_id
|
||||||
where pi.id = #{id}
|
where pi.id = #{id}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,10 @@ package com.yanzhu.manage.service.impl;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.yanzhu.common.core.utils.DateUtils;
|
import com.yanzhu.common.core.utils.DateUtils;
|
||||||
|
import com.yanzhu.manage.domain.ProProjectInfoDepts;
|
||||||
|
import com.yanzhu.manage.domain.ProProjectInfoSetting;
|
||||||
|
import com.yanzhu.manage.mapper.ProProjectInfoDeptsMapper;
|
||||||
|
import com.yanzhu.manage.mapper.ProProjectInfoSettingMapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.yanzhu.manage.mapper.ProProjectInfoMapper;
|
import com.yanzhu.manage.mapper.ProProjectInfoMapper;
|
||||||
|
@ -19,7 +23,10 @@ public class ProProjectInfoServiceImpl implements IProProjectInfoService
|
||||||
{
|
{
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProProjectInfoMapper proProjectInfoMapper;
|
private ProProjectInfoMapper proProjectInfoMapper;
|
||||||
|
@Autowired
|
||||||
|
private ProProjectInfoDeptsMapper deptsMapper;
|
||||||
|
@Autowired
|
||||||
|
private ProProjectInfoSettingMapper settingMapper;
|
||||||
/**
|
/**
|
||||||
* 查询项目信息
|
* 查询项目信息
|
||||||
*
|
*
|
||||||
|
@ -67,6 +74,26 @@ public class ProProjectInfoServiceImpl implements IProProjectInfoService
|
||||||
public int updateProProjectInfo(ProProjectInfo proProjectInfo)
|
public int updateProProjectInfo(ProProjectInfo proProjectInfo)
|
||||||
{
|
{
|
||||||
proProjectInfo.setUpdateTime(DateUtils.getNowDate());
|
proProjectInfo.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
List<ProProjectInfoDepts> depts= proProjectInfo.getProjectDeptsList();
|
||||||
|
if(depts!=null){
|
||||||
|
depts.forEach(dept->{
|
||||||
|
dept.setProjectId(proProjectInfo.getId());
|
||||||
|
if(dept.getId()!=null){
|
||||||
|
deptsMapper.updateProProjectInfoDepts(dept);
|
||||||
|
}else{
|
||||||
|
deptsMapper.insertProProjectInfoDepts(dept);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
ProProjectInfoSetting setting= proProjectInfo.getSetting();
|
||||||
|
if(setting!=null){
|
||||||
|
setting.setProjectId(proProjectInfo.getId());
|
||||||
|
if(setting.getId()!=null){
|
||||||
|
settingMapper.updateProProjectInfoSetting(setting);
|
||||||
|
}else{
|
||||||
|
settingMapper.insertProProjectInfoSetting(setting);
|
||||||
|
}
|
||||||
|
}
|
||||||
return proProjectInfoMapper.updateProProjectInfo(proProjectInfo);
|
return proProjectInfoMapper.updateProProjectInfo(proProjectInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<el-dialog :title="title" v-model="show" width="800px" append-to-body custom-class="baidu-map-dialog"
|
<el-dialog :title="title" v-model="show" width="800px" append-to-body class="baidu-map-dialog"
|
||||||
:close-on-click-modal="false" :close-on-press-escape="false" >
|
:close-on-click-modal="false" :close-on-press-escape="false" >
|
||||||
<div class="div-info">
|
<div class="div-info">
|
||||||
<div>经度纬度:{{point?(point.lng.toFixed(5)+","+point.lat.toFixed(5)):'' }}</div>
|
<div>经度纬度:{{point?(point.lng.toFixed(5)+","+point.lat.toFixed(5)):'' }}</div>
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="项目排序" align="center" prop="projectSort" width="120">
|
<el-table-column label="项目排序" align="center" prop="projectSort" width="120">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-input-number size="mini" v-model="scope.row.projectSort" :min="1" :max="999"
|
<el-input-number v-model="scope.row.projectSort" :min="1" :max="999"
|
||||||
@change="setProjectSort(scope.row, $event)"></el-input-number>
|
@change="setProjectSort(scope.row, $event)"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -114,21 +114,21 @@
|
||||||
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||||
|
|
||||||
<!-- 添加或修改项目信息对话框 -->
|
<!-- 添加或修改项目信息对话框 -->
|
||||||
<el-dialog :title="title" v-model="open" width="1080px" append-to-body>
|
<el-dialog :title="title" v-model="open" width="1080px" append-to-body :close-on-click-modal="false" :close-on-press-escape="false" class="project-info-edit-dlg">
|
||||||
<el-form ref="proProjectInfoRef" :model="form" :rules="rules" label-width="100px">
|
<el-form ref="proProjectInfoRef" :model="form" :rules="rules" label-width="100px">
|
||||||
<el-tabs v-model="activeName" type="card" class="demo-tabs">
|
<el-tabs v-model="activeName" type="card" class="demo-tabs">
|
||||||
<el-tab-pane label="项目基本信息" name="base">
|
<el-tab-pane label="项目基本信息" name="base">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="16">
|
<el-col :span="8">
|
||||||
<el-form-item label="归属单位" prop="deptId">
|
<el-form-item label="归属单位" prop="deptId">
|
||||||
<el-select v-model="form.deptId" placeholder="请选择公司" clearable>
|
<el-select v-model="form.deptId" placeholder="请选择公司" clearable @change="doChangeComp">
|
||||||
<el-option v-for="dict in deptOptions" :key="dict.deptId" :label="dict.deptName"
|
<el-option v-for="dict in data.compOptions" :key="dict.deptId" :label="dict.deptName"
|
||||||
:value="dict.deptId"></el-option>
|
:value="dict.deptId"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="显示层级" prop="disDeptId">
|
<el-form-item label="归属部门" prop="disDeptId">
|
||||||
<el-tree-select v-model="form.disDeptId" :data="deptOptions"
|
<el-tree-select v-model="form.disDeptId" :data="deptOptions"
|
||||||
:props="{ value: 'id', label: 'label', children: 'children' }" value-key="id" placeholder="请选择显示层级"
|
:props="{ value: 'id', label: 'label', children: 'children' }" value-key="id" placeholder="请选择显示层级"
|
||||||
check-strictly style="width:100%" />
|
check-strictly style="width:100%" />
|
||||||
|
@ -255,40 +255,29 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="参建单位信息" name="depts">
|
<el-tab-pane label="参建单位信息" name="depts" v-if="data.opt=='edit'">
|
||||||
<el-row :gutter="10" class="mb8">
|
<div v-for="(it,idx) in projectDeptsList" :key="idx" class="prj-dept-item">
|
||||||
<el-col :span="1.5">
|
<div class="dept-item-header">
|
||||||
<el-button type="primary" icon="Plus" @click="handleAddDepts">添加</el-button>
|
<el-icon size="14" color="#2196F3"><OfficeBuilding /></el-icon>
|
||||||
</el-col>
|
<span class="sp-header">{{ it.deptType }}</span>
|
||||||
<el-col :span="1.5">
|
</div>
|
||||||
<el-button type="danger" icon="Delete" @click="handleDeleteDepts">删除</el-button>
|
<el-row>
|
||||||
</el-col>
|
<el-col :span="8">
|
||||||
</el-row>
|
<span class="sp-label">{{ it.deptType }}名称</span>
|
||||||
<el-table :data="projectDeptsList" :row-class-name="rowProjectDeptsIndex"
|
<el-input v-model="it.deptName" class="txt-dept-name"/>
|
||||||
@selection-change="handleDeptsSelectionChange" ref="projectDeptsRef">
|
</el-col>
|
||||||
<el-table-column type="selection" width="50" align="center" />
|
<el-col :span="8">
|
||||||
<el-table-column label="序号" align="center" prop="index" width="50" />
|
<span class="sp-label">负责人姓名</span>
|
||||||
<el-table-column label="单位类型" prop="deptType" align="center">
|
<el-input v-model="it.leader" class="txt-leader"/>
|
||||||
<template #default="scope">
|
</el-col>
|
||||||
<el-select v-model="scope.row.deptType" placeholder="请选择单位类型">
|
<el-col :span="8">
|
||||||
<el-option v-for="dict in pro_dept_type" :key="dict.value" :label="dict.label"
|
<span class="sp-label">负责人联系电话</span>
|
||||||
:value="dict.value"></el-option>
|
<el-input v-model="it.phone" class="txt-phone"/>
|
||||||
</el-select>
|
</el-col>
|
||||||
</template>
|
</el-row>
|
||||||
</el-table-column>
|
</div>
|
||||||
<el-table-column label="单位负责人" prop="leader" align="center">
|
|
||||||
<template #default="scope">
|
|
||||||
<el-input v-model="scope.row.leader" placeholder="请输入负责人姓名" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="负责人联系电话" prop="phone" align="center">
|
|
||||||
<template #default="scope">
|
|
||||||
<el-input v-model="scope.row.phone" placeholder="请输入负责人联系电话" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="项目大屏设置" name="setting">
|
<el-tab-pane label="项目大屏设置" name="setting" v-if="data.opt=='edit'" class="pan-setting">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="项目显示名" prop="orgName">
|
<el-form-item label="项目显示名" prop="orgName">
|
||||||
|
@ -297,26 +286,26 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="12">
|
<el-col :span="12" :class="form.setting.orgLogo?'no-up':'can-up'" class="up-img">
|
||||||
<el-form-item label="显示LOGO" prop="orgLogo">
|
<el-form-item label="显示LOGO" prop="orgLogo">
|
||||||
<image-upload v-model="form.setting.orgLogo" :limit="1" />
|
<image-upload v-model="form.setting.orgLogo" :limit="1" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12" :class="form.setting.orgPlane?'no-up':'can-up'" class="up-img">
|
||||||
<el-form-item label="项目平面图" prop="orgPlane">
|
<el-form-item label="项目平面图" prop="orgPlane">
|
||||||
<image-upload v-model="form.setting.orgPlane" :limit="3" />
|
<image-upload v-model="form.setting.orgPlane" :limit="1" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="24">
|
<el-col :span="24" :class="form.setting.orgImage && form.setting.orgImage.split(',').length==9?'no-up':'can-up'" class="up-img">
|
||||||
<el-form-item label="项目图片" prop="orgImage">
|
<el-form-item label="项目预览图" prop="orgImage">
|
||||||
<image-upload v-model="form.setting.orgImage" :limit="9" />
|
<image-upload v-model="form.setting.orgImage" :limit="9" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="24">
|
<el-col :span="24" :class="form.setting.orgVideo?'no-up':'can-up'" class="up-video">
|
||||||
<el-form-item label="项目视频" prop="orgVideo">
|
<el-form-item label="项目视频" prop="orgVideo">
|
||||||
<file-upload v-model="form.setting.orgVideo" :limit="1" :fileType="['mp4']" :fileSize="100" />
|
<file-upload v-model="form.setting.orgVideo" :limit="1" :fileType="['mp4']" :fileSize="100" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -395,7 +384,11 @@ const data = reactive({
|
||||||
projectTimeLimit: [{ required: true, message: "工程期限不能为空", trigger: "blur" }],
|
projectTimeLimit: [{ required: true, message: "工程期限不能为空", trigger: "blur" }],
|
||||||
totalInvestment: [{ required: true, message: "项目总投资不能为空", trigger: "blur" }],
|
totalInvestment: [{ required: true, message: "项目总投资不能为空", trigger: "blur" }],
|
||||||
contractAmount: [{ required: true, message: "合同金额不能为空", trigger: "blur" }],
|
contractAmount: [{ required: true, message: "合同金额不能为空", trigger: "blur" }],
|
||||||
}
|
},
|
||||||
|
allDeptTree:[],
|
||||||
|
compOptions:[],
|
||||||
|
opt:'',
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data);
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
@ -469,6 +462,7 @@ function reset() {
|
||||||
setting: {}
|
setting: {}
|
||||||
};
|
};
|
||||||
proxy.resetForm("proProjectInfoRef");
|
proxy.resetForm("proProjectInfoRef");
|
||||||
|
activeName.value="base";
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
|
@ -492,6 +486,7 @@ function handleSelectionChange(selection) {
|
||||||
|
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
function handleAdd() {
|
function handleAdd() {
|
||||||
|
data.opt="add"
|
||||||
reset();
|
reset();
|
||||||
open.value = true;
|
open.value = true;
|
||||||
title.value = "添加项目信息";
|
title.value = "添加项目信息";
|
||||||
|
@ -499,12 +494,30 @@ function handleAdd() {
|
||||||
|
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
function handleUpdate(row) {
|
function handleUpdate(row) {
|
||||||
|
data.opt="edit"
|
||||||
reset();
|
reset();
|
||||||
const _id = row.id || ids.value
|
const _id = row.id || ids.value
|
||||||
getProProjectInfo(_id).then(response => {
|
getProProjectInfo(_id).then(response => {
|
||||||
form.value = response.data;
|
form.value = response.data;
|
||||||
|
form.value.setting=response.data.setting||{
|
||||||
|
orgName:'',
|
||||||
|
orgLogo:'',
|
||||||
|
orgPlane:'',
|
||||||
|
orgImage:[],
|
||||||
|
orgVideo:''
|
||||||
|
};
|
||||||
open.value = true;
|
open.value = true;
|
||||||
title.value = "修改项目信息";
|
title.value = "修改项目信息";
|
||||||
|
projectDeptsList.value=(response.data.projectDeptsList||[]).filter(d=>d.id);
|
||||||
|
if(projectDeptsList.value.length==0){
|
||||||
|
projectDeptsList.value=[
|
||||||
|
{deptType:'建设单位',deptName:'',leader:'',phone:''},
|
||||||
|
{deptType:'监理单位',deptName:'',leader:'',phone:''},
|
||||||
|
{deptType:'设计单位',deptName:'',leader:'',phone:''},
|
||||||
|
{deptType:'检测单位',deptName:'',leader:'',phone:''},
|
||||||
|
{deptType:'勘察单位',deptName:'',leader:'',phone:''},
|
||||||
|
];
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -543,17 +556,21 @@ function handleDeptsSelectionChange(selection) {
|
||||||
|
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
function submitForm() {
|
function submitForm() {
|
||||||
|
debugger
|
||||||
proxy.$refs["proProjectInfoRef"].validate(valid => {
|
proxy.$refs["proProjectInfoRef"].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
form.value.projectDeptsList = projectDeptsList.value;
|
form.value.projectDeptsList = projectDeptsList.value;
|
||||||
|
let postData={
|
||||||
|
...form.value
|
||||||
|
}
|
||||||
if (form.value.id != null) {
|
if (form.value.id != null) {
|
||||||
updateProProjectInfo(form.value).then(response => {
|
updateProProjectInfo(postData).then(response => {
|
||||||
proxy.$modal.msgSuccess("修改成功");
|
proxy.$modal.msgSuccess("修改成功");
|
||||||
open.value = false;
|
open.value = false;
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
addProProjectInfo(form.value).then(response => {
|
addProProjectInfo(postData).then(response => {
|
||||||
proxy.$modal.msgSuccess("新增成功");
|
proxy.$modal.msgSuccess("新增成功");
|
||||||
open.value = false;
|
open.value = false;
|
||||||
getList();
|
getList();
|
||||||
|
@ -595,11 +612,37 @@ function handleExport() {
|
||||||
|
|
||||||
/** 查询部门下拉树结构 */
|
/** 查询部门下拉树结构 */
|
||||||
function getDeptTree() {
|
function getDeptTree() {
|
||||||
|
deptTreeSelect().then(response => {
|
||||||
|
data.allDeptTree = response.data;
|
||||||
|
});
|
||||||
listDept({ deptType: 2 }).then(response => {
|
listDept({ deptType: 2 }).then(response => {
|
||||||
deptOptions.value = response.data;
|
data.compOptions = response.data;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//公司下拉选择
|
||||||
|
function doChangeComp(){
|
||||||
|
const findDept=nodes=>{
|
||||||
|
let tmps=nodes.filter(d=>d.data.deptId==form.value.deptId);
|
||||||
|
if(tmps.length>0){
|
||||||
|
return tmps[0].children;
|
||||||
|
}else{
|
||||||
|
for(let i=0;i<nodes.length;i++){
|
||||||
|
let obj=findDept(nodes[i].children);
|
||||||
|
if(obj){
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if(form.value.deptId){
|
||||||
|
deptOptions.value=findDept(data.allDeptTree);
|
||||||
|
}else{
|
||||||
|
deptOptions.value=[]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** 地图选择 */
|
/** 地图选择 */
|
||||||
function getMapInfo() {
|
function getMapInfo() {
|
||||||
mapRef.value.showDlg();
|
mapRef.value.showDlg();
|
||||||
|
@ -609,3 +652,54 @@ function getMapInfo() {
|
||||||
getList();
|
getList();
|
||||||
getDeptTree();
|
getDeptTree();
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss">
|
||||||
|
.project-info-edit-dlg{
|
||||||
|
.prj-dept-item{
|
||||||
|
margin-bottom: 20px;
|
||||||
|
.dept-item-header{
|
||||||
|
display: flex;
|
||||||
|
color: #2196F3;
|
||||||
|
align-items: center;
|
||||||
|
.sp-header{
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.el-input{
|
||||||
|
display: inline-block;
|
||||||
|
width:auto;
|
||||||
|
}
|
||||||
|
.sp-label{
|
||||||
|
font-size:12px;
|
||||||
|
color:#888;
|
||||||
|
&::after{
|
||||||
|
content: ":";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.el-tab-pane.pan-setting{
|
||||||
|
.el-form-item{
|
||||||
|
flex-flow: column;
|
||||||
|
margin-bottom:0px;
|
||||||
|
}
|
||||||
|
.up-img{
|
||||||
|
&.no-up{
|
||||||
|
.el-upload__tip{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.up-video{
|
||||||
|
&.no-up{
|
||||||
|
.el-upload__tip{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.upload-file-uploader{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -132,7 +132,7 @@
|
||||||
@pagination="getList"
|
@pagination="getList"
|
||||||
/>
|
/>
|
||||||
<!-- 预览界面 -->
|
<!-- 预览界面 -->
|
||||||
<el-dialog :title="preview.title" v-model="preview.open" width="80%" top="5vh" append-to-body custom-class="scrollbar">
|
<el-dialog :title="preview.title" v-model="preview.open" width="80%" top="5vh" append-to-body class="scrollbar">
|
||||||
<el-tabs v-model="preview.activeName">
|
<el-tabs v-model="preview.activeName">
|
||||||
<el-tab-pane
|
<el-tab-pane
|
||||||
v-for="(value, key) in preview.data"
|
v-for="(value, key) in preview.data"
|
||||||
|
|
Loading…
Reference in New Issue