瀏覽代碼

11482-【CR】【投资系统】增加审批流程-项目池新加编辑-项目机会阶段列表+流程状态

hxy 3 周之前
父節點
當前提交
66e825a022

+ 7 - 7
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/InvestmentOpportunityController.java

@@ -274,11 +274,11 @@ public class InvestmentOpportunityController extends BaseController
         return investmentOpportunityService.complete(tProjectPool,tProjectReview,flowBaseInfo,request);
     }
     /**
-     * 修改项目池
+     * 编辑项目机会
      */
-    @ApiOperation("修改项目机会")
+    @ApiOperation("编辑项目机会")
     @Log(title = "项目池", businessType = BusinessType.UPDATE)
-    @PutMapping
+    @PutMapping(value = "/edit")
     public AjaxResult edit(@RequestBody TProjectPool tProjectPool)
     {
         tProjectPool.setUpdateBy(getNickName());
@@ -296,18 +296,18 @@ public class InvestmentOpportunityController extends BaseController
                 getNickName());
 
         // todo 保存BP附件信息
-        tUnifyFileService.insertTUnifyFileList(tProjectPool.getBpFile(),
+        tUnifyFileService.insertTUnifyFileLists(tProjectPool.getBpFile(),
                 tProjectPool.getId(),
                 tProjectPool.getId(),
                 String.valueOf(FileType.BP.ordinal()),
-                getNickName());
+                getNickName(),"a","1");
 
         // todo 保存其他附件信息
-        tUnifyFileService.insertTUnifyFileList(tProjectPool.getOtherFile(),
+        tUnifyFileService.insertTUnifyFileLists(tProjectPool.getOtherFile(),
                 tProjectPool.getId(),
                 tProjectPool.getId(),
                 String.valueOf(FileType.OTHER.ordinal()),
-                getNickName());
+                getNickName(),"k","1");
 
         tProjectCompanyService.updateTProjectCompany(tProjectCompany);
         tProjectContactsService.updateTProjectContacts(tProjectContacts);

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ProjectController.java

@@ -27,7 +27,7 @@ import java.util.stream.Collectors;
  * @author ruoyi
  * @date 2024-02-21
  */
-@Api(tags = "项目观望")
+@Api(tags = "项目信息-阶段")
 @RestController
 @RequestMapping("/project")
 public class ProjectController extends BaseController

文件差異過大導致無法顯示
+ 3 - 2
ruoyi-system/src/main/resources/mapper/invest/InvestmentOpportunityMapper.xml


+ 8 - 2
ruoyi-ui/src/api/project/investOpp/pool.js

@@ -63,8 +63,14 @@ export function getInvestInfo(pInstId) {
   })
 }
 
-// 新增项目池
-
+// 项目池-编辑项目机会信息(不涉及流程)
+export function investmentOpportunityEdit(data) {
+  return request({
+    url:'/project/investmentOpportunity/edit',
+    method: 'put',
+    data: data,
+  })
+}
 
 // 修改项目池
 /*export function updatePool(data) {

+ 6 - 0
ruoyi-ui/src/router/index.js

@@ -73,6 +73,12 @@ export const constantRoutes = [
     hidden: true,
     // redirect: 'noredirect',
     children: [
+      {
+        path: 'poolEdit',
+        name: 'poolEdit',
+        component: () => import('@/views/project/poolEdit'),
+        meta: { title: '项目编辑' }
+      },
       {
         path: 'poolDetail',
         name: 'poolDetail',

+ 0 - 126
ruoyi-ui/src/views/project/listStage/listApproval.vue

@@ -86,65 +86,6 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
-<!--      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          size="mini"
-          icon="el-icon-document"
-          @click="handleSelectData(6)"
-          v-hasPermi="['invest:pool:lx:apply']"
-          >立项申请</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          size="mini"
-          icon="el-icon-chat-line-round"
-          @click="handleSelectData(7, 'LX')"
-          v-hasPermi="['invest:pool:lx:meeting']"
-          >发起立项会议</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="primary"
-          size="mini"
-          icon="el-icon-document-checked"
-          @click="handleSelectData(8)"
-          >上传打分表</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          :disabled="multiple"
-          plain
-          type="success"
-          size="mini"
-          icon="el-icon-setting"
-          v-hasPermi="['invest:pool:stage']"
-          @click="handleSelectData(3)"
-          >设置项目阶段</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          @click="handleSelectData(4)"
-          type="danger"
-          plain
-          icon="el-icon-switch-button"
-          size="mini"
-          :disabled="multiple"
-          v-hasPermi="['invest:pool:remove']"
-          >终止</el-button
-        >
-      </el-col>-->
       <el-col :span="1.5">
         <el-button
           plain
@@ -208,17 +149,6 @@
           </div>
         </template>
       </el-table-column>
-      <!-- <el-table-column
-        label="项目所属城市"
-        align="center"
-        prop="tProjectCompany.registeredAddress"
-      >
-        <template slot-scope="scope">
-          <div :title="scope.row.tProjectCompany.registeredAddress">
-            {{ scope.row.tProjectCompany.registeredAddress }}
-          </div>
-        </template>
-      </el-table-column> -->
       <el-table-column label="所属行业" align="center" prop="industry"
         ><template slot-scope="scope">
           <dict-tag
@@ -235,19 +165,6 @@
           />
         </template>
       </el-table-column>
-<!--      <el-table-column
-        label="项目状态"
-        align="center"
-        prop="projectState"
-        width="120"
-      >
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.project_state"
-            :value="scope.row.projectState"
-          />
-        </template>
-      </el-table-column>-->
       <el-table-column label="项目机会状态" align="center" prop="projectStatus">
         <template slot-scope="scope">
           <!-- 定义状态文本映射对象 -->
@@ -293,12 +210,6 @@
           </div>
         </template>
       </el-table-column>
-      <!-- <el-table-column label="投决通过日期" align="center" prop="decisionDate">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
-        </template>
-      </el-table-column> -->
-
       <el-table-column label="项目负责人" align="center" prop="investHead">
         <template slot-scope="scope">
           <div :title="scope.row.investHead">
@@ -323,43 +234,6 @@
           </div>
         </template>
       </el-table-column>
-      <!-- <el-table-column
-        label="所属组别"
-        align="center"
-        prop="tProjectChannel.channelGroup"
-      >
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.project_group"
-            :value="scope.row.tProjectChannel.channelGroup"
-          />
-        </template>
-      </el-table-column> -->
-
-      <!-- <el-table-column
-        label="项目联系人"
-        align="center"
-        prop="tProjectContacts.name"
-      >
-        <template slot-scope="scope">
-          <div :title="scope.row.tProjectContacts.name">
-            {{ scope.row.tProjectContacts.name }}
-          </div>
-        </template>
-      </el-table-column> -->
-
-      <!--<el-table-column
-        label="创建人"
-        width="120"
-        align="center"
-        prop="createBy"
-      />
-      <el-table-column
-        label="创建时间"
-        align="center"
-        prop="createTime"
-        width="160"
-      /> -->
       <!-- delFlag -->
       <el-table-column
         label="状态"

+ 0 - 126
ruoyi-ui/src/views/project/listStage/listDecision.vue

@@ -86,66 +86,6 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
-<!--      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          size="mini"
-          icon="el-icon-document"
-          @click="handleSelectData(11)"
-          v-hasPermi="['invest:pool:tj:apply']"
-          >投决申请</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          size="mini"
-          icon="el-icon-chat-line-square"
-          @click="handleSelectData(12, 'TJ')"
-          v-hasPermi="['invest:pool:tj:meeting']"
-          >发起投决会议</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="primary"
-          size="mini"
-          icon="el-icon-document-checked"
-          @click="handleSelectData(13)"
-          >上传打分表</el-button
-        >
-      </el-col>
-
-      <el-col :span="1.5">
-        <el-button
-          :disabled="multiple"
-          plain
-          type="success"
-          size="mini"
-          icon="el-icon-setting"
-          v-hasPermi="['invest:pool:stage']"
-          @click="handleSelectData(3)"
-          >设置项目阶段</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          @click="handleSelectData(4)"
-          type="danger"
-          plain
-          icon="el-icon-switch-button"
-          size="mini"
-          :disabled="multiple"
-          v-hasPermi="['invest:pool:remove']"
-          >终止</el-button
-        >
-      </el-col>-->
       <el-col :span="1.5">
         <el-button
           plain
@@ -209,17 +149,6 @@
           </div>
         </template>
       </el-table-column>
-      <!-- <el-table-column
-        label="项目所属城市"
-        align="center"
-        prop="tProjectCompany.registeredAddress"
-      >
-        <template slot-scope="scope">
-          <div :title="scope.row.tProjectCompany.registeredAddress">
-            {{ scope.row.tProjectCompany.registeredAddress }}
-          </div>
-        </template>
-      </el-table-column> -->
       <el-table-column label="所属行业" align="center" prop="industry"
         ><template slot-scope="scope">
           <dict-tag
@@ -236,19 +165,6 @@
           />
         </template>
       </el-table-column>
-<!--      <el-table-column
-        label="项目状态"
-        align="center"
-        prop="projectState"
-        width="120"
-      >
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.project_state"
-            :value="scope.row.projectState"
-          />
-        </template>
-      </el-table-column>-->
       <el-table-column label="项目机会状态" align="center" prop="projectStatus">
         <template slot-scope="scope">
           <!-- 定义状态文本映射对象 -->
@@ -267,11 +183,6 @@
           </el-tag>
         </template>
       </el-table-column>
-      <!-- <el-table-column label="备案时间" align="center" prop="tProjectCompany.filingTime">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.tProjectCompany.filingTime, "{y}-{m}-{d}") }}</span>
-        </template>
-      </el-table-column> -->
       <el-table-column label="立项通过日期" align="center" prop="projectDate">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.projectDate, "{y}-{m}-{d}") }}</span>
@@ -318,43 +229,6 @@
           </div>
         </template>
       </el-table-column>
-      <!-- <el-table-column
-        label="所属组别"
-        align="center"
-        prop="tProjectChannel.channelGroup"
-      >
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.project_group"
-            :value="scope.row.tProjectChannel.channelGroup"
-          />
-        </template>
-      </el-table-column> -->
-
-      <!-- <el-table-column
-        label="项目联系人"
-        align="center"
-        prop="tProjectContacts.name"
-      >
-        <template slot-scope="scope">
-          <div :title="scope.row.tProjectContacts.name">
-            {{ scope.row.tProjectContacts.name }}
-          </div>
-        </template>
-      </el-table-column> -->
-
-      <!--<el-table-column
-        label="创建人"
-        width="120"
-        align="center"
-        prop="createBy"
-      />
-      <el-table-column
-        label="创建时间"
-        align="center"
-        prop="createTime"
-        width="160"
-      /> -->
       <!-- delFlag -->
       <el-table-column
         label="状态"

+ 8 - 230
ruoyi-ui/src/views/project/listStage/listInvestOpp.vue

@@ -87,172 +87,6 @@
       class="mb8"
       v-if="type === '2' && stage == '4' ? false : true"
     >
-<!--      <el-col :span="1.5">
-        <el-button
-          v-if="type === '1' && stage == '1'"
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['invest:pool:add']"
-        >新增</el-button
-        >
-      </el-col>
-
-      <el-col :span="1.5">
-        <el-button
-          :disabled="multiple"
-          plain
-          type="success"
-          v-if="stage === '1'"
-          size="mini"
-          icon="el-icon-edit"
-          @click="handleSelectData(1)"
-          v-hasPermi="['invest:pool:edit']"
-        >修改</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          :disabled="multiple"
-          plain
-          type="primary"
-          size="mini"
-          icon="el-icon-edit"
-          v-if="stage === '2'"
-          @click="handleSelectData(5)"
-          v-hasPermi="['invest:pool:assess']"
-        >上传评估意见</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          v-if="stage == '3'"
-          size="mini"
-          icon="el-icon-document"
-          @click="handleSelectData(6)"
-          v-hasPermi="['invest:pool:lx:apply']"
-        >立项申请</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          v-if="stage == '3'"
-          size="mini"
-          icon="el-icon-chat-line-round"
-          @click="handleSelectData(7, 'LX')"
-          v-hasPermi="['invest:pool:lx:meeting']"
-        >发起立项会议</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="primary"
-          v-if="stage == '3'"
-          size="mini"
-          icon="el-icon-document-checked"
-          @click="handleSelectData(8)"
-        >上传打分表</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          v-if="stage == '4'"
-          size="mini"
-          icon="el-icon-tickets"
-          @click="handleSelectData(9)"
-          v-hasPermi="['invest:pool:due']"
-        >尽调申请</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="primary"
-          v-if="stage == '4'"
-          size="mini"
-          icon="el-icon-document-checked"
-          @click="handleSelectData(10)"
-        >上传尽调报告</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          v-if="stage == '5'"
-          size="mini"
-          icon="el-icon-document"
-          @click="handleSelectData(11)"
-          v-hasPermi="['invest:pool:tj:apply']"
-        >投决申请</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          v-if="stage == '5'"
-          size="mini"
-          icon="el-icon-chat-line-square"
-          @click="handleSelectData(12, 'TJ')"
-          v-hasPermi="['invest:pool:tj:meeting']"
-        >发起投决会议</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="primary"
-          v-if="stage == '5'"
-          size="mini"
-          icon="el-icon-document-checked"
-          @click="handleSelectData(13)"
-        >上传打分表</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          :disabled="multiple"
-          plain
-          type="success"
-          v-if="stage !== '0'"
-          size="mini"
-          icon="el-icon-setting"
-          v-hasPermi="['invest:pool:stage']"
-          @click="handleSelectData(3)"
-        >设置项目阶段</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          @click="handleSelectData(4)"
-          v-if="type === '1' && stage !== '0'"
-          type="danger"
-          plain
-          icon="el-icon-switch-button"
-          size="mini"
-          :disabled="multiple"
-          v-hasPermi="['invest:pool:remove']"
-        >终止</el-button
-        >
-      </el-col>-->
       <el-col :span="1.5">
         <el-button
           plain
@@ -271,7 +105,6 @@
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
-          v-hasPermi="['invest:pool:export']"
         >导出</el-button
         >
       </el-col>
@@ -347,19 +180,6 @@
           />
         </template>
       </el-table-column>
-<!--      <el-table-column
-        label="项目状态"
-        align="center"
-        prop="projectState"
-        width="120"
-      >
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.project_state"
-            :value="scope.row.projectState"
-          />
-        </template>
-      </el-table-column>-->
       <el-table-column label="项目机会状态" align="center" prop="projectStatus">
         <template slot-scope="scope">
           <!-- 定义状态文本映射对象 -->
@@ -434,43 +254,6 @@
           </div>
         </template>
       </el-table-column>
-      <!-- <el-table-column
-        label="所属组别"
-        align="center"
-        prop="tProjectChannel.channelGroup"
-      >
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.project_group"
-            :value="scope.row.tProjectChannel.channelGroup"
-          />
-        </template>
-      </el-table-column> -->
-
-      <!-- <el-table-column
-        label="项目联系人"
-        align="center"
-        prop="tProjectContacts.name"
-      >
-        <template slot-scope="scope">
-          <div :title="scope.row.tProjectContacts.name">
-            {{ scope.row.tProjectContacts.name }}
-          </div>
-        </template>
-      </el-table-column> -->
-
-      <!--<el-table-column
-        label="创建人"
-        width="120"
-        align="center"
-        prop="createBy"
-      />
-      <el-table-column
-        label="创建时间"
-        align="center"
-        prop="createTime"
-        width="160"
-      /> -->
       <!-- delFlag -->
       <el-table-column label="状态" align="center" prop="investHead">
         <template slot-scope="scope">
@@ -479,20 +262,15 @@
           </div>
         </template>
       </el-table-column>
-      <!-- fixed="right" -->
-      <el-table-column label="操作" align="center" v-if="false">
+      <el-table-column label="流程状态" align="center" prop="status">
         <template slot-scope="scope">
-          <!-- stage//0=全部 1=项目报备  2=评估考察 3=项目立项 4=尽职背调 5=项目投决 -->
-          <el-button
-            v-if="scope.row.delFlag !== '1' && stage !== '0'"
-            class="custom-red-color"
-            size="mini"
-            type="text"
-            icon="el-icon-switch-button"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['invest:pool:remove']"
-          >终止</el-button
-          >
+          <div :title="scope.row.status">
+            <span v-if="scope.row.status === 0">暂存</span>
+            <span v-else-if="scope.row.status === 1">已提交</span>
+            <span v-else-if="scope.row.status === 2">审批中</span>
+            <span v-else-if="scope.row.status === 3">审批完成</span>
+            <span v-else-if="scope.row.status === 4">关闭</span>
+          </div>
         </template>
       </el-table-column>
     </el-table>

+ 0 - 92
ruoyi-ui/src/views/project/listStage/listInvestigate.vue

@@ -86,54 +86,6 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
-<!--      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          size="mini"
-          icon="el-icon-tickets"
-          @click="handleSelectData(9)"
-          v-hasPermi="['invest:pool:due']"
-          >尽调申请</el-button
-        >
-      </el-col>-->
-      <!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--          plain-->
-<!--          :disabled="multiple"-->
-<!--          type="primary"-->
-<!--          size="mini"-->
-<!--          icon="el-icon-document-checked"-->
-<!--          @click="handleSelectData(10)"-->
-<!--          >上传尽调报告</el-button-->
-<!--        >-->
-<!--      </el-col>-->
-
-<!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--          :disabled="multiple"-->
-<!--          plain-->
-<!--          type="success"-->
-<!--          size="mini"-->
-<!--          icon="el-icon-setting"-->
-<!--          v-hasPermi="['invest:pool:stage']"-->
-<!--          @click="handleSelectData(3)"-->
-<!--          >设置项目阶段</el-button-->
-<!--        >-->
-<!--      </el-col>-->
-<!--      <el-col :span="1.5">
-        <el-button
-          @click="handleSelectData(4)"
-          type="danger"
-          plain
-          icon="el-icon-switch-button"
-          size="mini"
-          :disabled="multiple"
-          v-hasPermi="['invest:pool:remove']"
-          >终止</el-button
-        >
-      </el-col>-->
       <el-col :span="1.5">
         <el-button
           plain
@@ -141,7 +93,6 @@
           size="mini"
           icon="el-icon-tickets"
           @click="handleAdd"
-          v-hasPermi="['invest:pool:due']"
         >尽调申请</el-button
         >
       </el-col>
@@ -278,12 +229,6 @@
           </div>
         </template>
       </el-table-column>
-      <!-- <el-table-column label="投决通过日期" align="center" prop="decisionDate">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
-        </template>
-      </el-table-column> -->
-
       <el-table-column label="项目负责人" align="center" prop="investHead">
         <template slot-scope="scope">
           <div :title="scope.row.investHead">
@@ -308,43 +253,6 @@
           </div>
         </template>
       </el-table-column>
-      <!-- <el-table-column
-        label="所属组别"
-        align="center"
-        prop="tProjectChannel.channelGroup"
-      >
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.project_group"
-            :value="scope.row.tProjectChannel.channelGroup"
-          />
-        </template>
-      </el-table-column> -->
-
-      <!-- <el-table-column
-        label="项目联系人"
-        align="center"
-        prop="tProjectContacts.name"
-      >
-        <template slot-scope="scope">
-          <div :title="scope.row.tProjectContacts.name">
-            {{ scope.row.tProjectContacts.name }}
-          </div>
-        </template>
-      </el-table-column> -->
-
-      <!--<el-table-column
-        label="创建人"
-        width="120"
-        align="center"
-        prop="createBy"
-      />
-      <el-table-column
-        label="创建时间"
-        align="center"
-        prop="createTime"
-        width="160"
-      /> -->
       <!-- delFlag -->
       <el-table-column
         label="状态"

+ 30 - 224
ruoyi-ui/src/views/project/listStage/listPool.vue

@@ -96,181 +96,24 @@
       class="mb8"
       v-if="type === '2' && stage == '4' ? false : true"
     >
-      <el-col :span="1.5">
-        <el-button
-          v-if="type === '1' && stage == '1'"
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['invest:pool:add']"
-        >新增</el-button
-        >
-      </el-col>
-
       <el-col :span="1.5">
         <el-button
           :disabled="multiple"
           plain
           type="success"
-          v-if="stage === '1'"
-          size="mini"
-          icon="el-icon-edit"
-          @click="handleSelectData(1)"
-          v-hasPermi="['invest:pool:edit']"
-        >修改</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          :disabled="multiple"
-          plain
-          type="primary"
           size="mini"
           icon="el-icon-edit"
-          v-if="stage === '2'"
-          @click="handleSelectData(5)"
-          v-hasPermi="['invest:pool:assess']"
-        >上传评估意见</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          v-if="stage == '3'"
-          size="mini"
-          icon="el-icon-document"
-          @click="handleSelectData(6)"
-          v-hasPermi="['invest:pool:lx:apply']"
-        >立项申请</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          v-if="stage == '3'"
-          size="mini"
-          icon="el-icon-chat-line-round"
-          @click="handleSelectData(7, 'LX')"
-          v-hasPermi="['invest:pool:lx:meeting']"
-        >发起立项会议</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="primary"
-          v-if="stage == '3'"
-          size="mini"
-          icon="el-icon-document-checked"
-          @click="handleSelectData(8)"
-        >上传打分表</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          v-if="stage == '4'"
-          size="mini"
-          icon="el-icon-tickets"
-          @click="handleSelectData(9)"
-          v-hasPermi="['invest:pool:due']"
-        >尽调申请</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="primary"
-          v-if="stage == '4'"
-          size="mini"
-          icon="el-icon-document-checked"
-          @click="handleSelectData(10)"
-        >上传尽调报告</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          v-if="stage == '5'"
-          size="mini"
-          icon="el-icon-document"
-          @click="handleSelectData(11)"
-          v-hasPermi="['invest:pool:tj:apply']"
-        >投决申请</el-button
+          @click="handleSelectData(14)"
+        >编辑</el-button
         >
       </el-col>
       <el-col :span="1.5">
         <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          v-if="stage == '5'"
-          size="mini"
-          icon="el-icon-chat-line-square"
-          @click="handleSelectData(12, 'TJ')"
-          v-hasPermi="['invest:pool:tj:meeting']"
-        >发起投决会议</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="primary"
-          v-if="stage == '5'"
-          size="mini"
-          icon="el-icon-document-checked"
-          @click="handleSelectData(13)"
-        >上传打分表</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          :disabled="multiple"
-          plain
-          type="success"
-          v-if="stage !== '0'"
-          size="mini"
-          icon="el-icon-setting"
-          v-hasPermi="['invest:pool:stage']"
-          @click="handleSelectData(3)"
-        >设置项目阶段</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          @click="handleSelectData(4)"
-          v-if="type === '1' && stage !== '0'"
-          type="danger"
-          plain
-          icon="el-icon-switch-button"
-          size="mini"
-          :disabled="multiple"
-          v-hasPermi="['invest:pool:remove']"
-        >终止</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          v-if="type === '1' && stage == '0'"
           type="warning"
           plain
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
-          v-hasPermi="['invest:pool:export']"
         >导出</el-button
         >
       </el-col>
@@ -289,7 +132,7 @@
       :data="poolList"
       @selection-change="handleSelectionChange"
     >
-<!--      <el-table-column type="selection" width="40" align="center" />-->
+      <el-table-column type="selection" width="40" align="center" />
       <el-table-column
         type="index"
         label="序号"
@@ -346,19 +189,6 @@
           />
         </template>
       </el-table-column>
-<!--      <el-table-column
-        label="项目状态"
-        align="center"
-        prop="projectState"
-        width="120"
-      >
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.project_state"
-            :value="scope.row.projectState"
-          />
-        </template>
-      </el-table-column>-->
       <el-table-column label="项目机会状态" align="center" prop="projectStatus">
         <template slot-scope="scope">
           <!-- 定义状态文本映射对象 -->
@@ -433,43 +263,6 @@
           </div>
         </template>
       </el-table-column>
-      <!-- <el-table-column
-        label="所属组别"
-        align="center"
-        prop="tProjectChannel.channelGroup"
-      >
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.project_group"
-            :value="scope.row.tProjectChannel.channelGroup"
-          />
-        </template>
-      </el-table-column> -->
-
-      <!-- <el-table-column
-        label="项目联系人"
-        align="center"
-        prop="tProjectContacts.name"
-      >
-        <template slot-scope="scope">
-          <div :title="scope.row.tProjectContacts.name">
-            {{ scope.row.tProjectContacts.name }}
-          </div>
-        </template>
-      </el-table-column> -->
-
-      <!--<el-table-column
-        label="创建人"
-        width="120"
-        align="center"
-        prop="createBy"
-      />
-      <el-table-column
-        label="创建时间"
-        align="center"
-        prop="createTime"
-        width="160"
-      /> -->
       <!-- delFlag -->
       <el-table-column label="状态" align="center" prop="investHead">
         <template slot-scope="scope">
@@ -478,24 +271,18 @@
           </div>
         </template>
       </el-table-column>
-      <!-- fixed="right" -->
-      <el-table-column label="操作" align="center" v-if="false">
+      <el-table-column label="项目机会流程状态" align="center" prop="status">
         <template slot-scope="scope">
-          <!-- stage//0=全部 1=项目报备  2=评估考察 3=项目立项 4=尽职背调 5=项目投决 -->
-          <el-button
-            v-if="scope.row.delFlag !== '1' && stage !== '0'"
-            class="custom-red-color"
-            size="mini"
-            type="text"
-            icon="el-icon-switch-button"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['invest:pool:remove']"
-          >终止</el-button
-          >
+          <div :title="scope.row.status">
+            <span v-if="scope.row.status === 0">暂存</span>
+            <span v-else-if="scope.row.status === 1">已提交</span>
+            <span v-else-if="scope.row.status === 2">审批中</span>
+            <span v-else-if="scope.row.status === 3">审批完成</span>
+            <span v-else-if="scope.row.status === 4">关闭</span>
+          </div>
         </template>
       </el-table-column>
     </el-table>
-
     <pagination
       v-show="total > 0"
       :total="total"
@@ -659,6 +446,7 @@ export default {
       // 6=立项申请 7=发起立项会议 8=上传打分表(立项)
       // 9=尽调申请 10=上传尽调报告
       // 11=投决申请 12=发起投决会议 13=上传打分表(投决)
+      // 14=项目机会保存(不涉及流程)
       if (this.selectRowList.length == 1) {
         const row = this.selectRowList[0];
         if (row.delFlag === "1") {
@@ -689,6 +477,18 @@ export default {
           } else if (type === 4) {
             // 终止
             this.handleDelete(row);
+          } else if (type===14) {
+            if (row.status === 3) {
+              //保存-项目机会
+              this.handleEdit(row);
+            } else {
+              this.$message({
+                message: "不能编辑,项目机会审批完成可编辑",
+                duration: 1500,
+                type: "warning",
+              });
+            }
+
           }
         } else {
           this.$message({
@@ -729,6 +529,12 @@ export default {
         })
         .catch(() => {});
     },
+    /** 编辑按钮操作 */
+    handleEdit(row) {
+      const id = row.id || this.ids;
+      const pInstId=row.procInstId;
+      this.$router.push({ path: "/project/poolEdit", query: { id: id , pInstId: pInstId} });
+    },
     /** 导出按钮操作 */
     handleExport() {
       this.download(

+ 0 - 233
ruoyi-ui/src/views/project/listStage/listSign.vue

@@ -87,172 +87,6 @@
       class="mb8"
       v-if="type === '2' && stage == '4' ? false : true"
     >
-      <el-col :span="1.5">
-        <el-button
-          v-if="type === '1' && stage == '1'"
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['invest:pool:add']"
-        >新增</el-button
-        >
-      </el-col>
-
-      <el-col :span="1.5">
-        <el-button
-          :disabled="multiple"
-          plain
-          type="success"
-          v-if="stage === '1'"
-          size="mini"
-          icon="el-icon-edit"
-          @click="handleSelectData(1)"
-          v-hasPermi="['invest:pool:edit']"
-        >修改</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          :disabled="multiple"
-          plain
-          type="primary"
-          size="mini"
-          icon="el-icon-edit"
-          v-if="stage === '2'"
-          @click="handleSelectData(5)"
-          v-hasPermi="['invest:pool:assess']"
-        >上传评估意见</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          v-if="stage == '3'"
-          size="mini"
-          icon="el-icon-document"
-          @click="handleSelectData(6)"
-          v-hasPermi="['invest:pool:lx:apply']"
-        >立项申请</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          v-if="stage == '3'"
-          size="mini"
-          icon="el-icon-chat-line-round"
-          @click="handleSelectData(7, 'LX')"
-          v-hasPermi="['invest:pool:lx:meeting']"
-        >发起立项会议</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="primary"
-          v-if="stage == '3'"
-          size="mini"
-          icon="el-icon-document-checked"
-          @click="handleSelectData(8)"
-        >上传打分表</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          v-if="stage == '4'"
-          size="mini"
-          icon="el-icon-tickets"
-          @click="handleSelectData(9)"
-          v-hasPermi="['invest:pool:due']"
-        >尽调申请</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="primary"
-          v-if="stage == '4'"
-          size="mini"
-          icon="el-icon-document-checked"
-          @click="handleSelectData(10)"
-        >上传尽调报告</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          v-if="stage == '5'"
-          size="mini"
-          icon="el-icon-document"
-          @click="handleSelectData(11)"
-          v-hasPermi="['invest:pool:tj:apply']"
-        >投决申请</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="warning"
-          v-if="stage == '5'"
-          size="mini"
-          icon="el-icon-chat-line-square"
-          @click="handleSelectData(12, 'TJ')"
-          v-hasPermi="['invest:pool:tj:meeting']"
-        >发起投决会议</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          :disabled="multiple"
-          type="primary"
-          v-if="stage == '5'"
-          size="mini"
-          icon="el-icon-document-checked"
-          @click="handleSelectData(13)"
-        >上传打分表</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          :disabled="multiple"
-          plain
-          type="success"
-          v-if="stage !== '0'"
-          size="mini"
-          icon="el-icon-setting"
-          v-hasPermi="['invest:pool:stage']"
-          @click="handleSelectData(3)"
-        >设置项目阶段</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          @click="handleSelectData(4)"
-          v-if="type === '1' && stage !== '0'"
-          type="danger"
-          plain
-          icon="el-icon-switch-button"
-          size="mini"
-          :disabled="multiple"
-          v-hasPermi="['invest:pool:remove']"
-        >终止</el-button
-        >
-      </el-col>
       <el-col :span="1.5">
         <el-button
           v-if="type === '1' && stage == '0'"
@@ -261,7 +95,6 @@
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
-          v-hasPermi="['invest:pool:export']"
         >导出</el-button
         >
       </el-col>
@@ -337,19 +170,6 @@
           />
         </template>
       </el-table-column>
-      <<!--el-table-column
-        label="项目状态"
-        align="center"
-        prop="projectState"
-        width="120"
-      >
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.project_state"
-            :value="scope.row.projectState"
-          />
-        </template>
-      </el-table-column>-->
       <el-table-column label="项目机会状态" align="center" prop="projectStatus">
         <template slot-scope="scope">
           <!-- 定义状态文本映射对象 -->
@@ -424,43 +244,6 @@
           </div>
         </template>
       </el-table-column>
-      <!-- <el-table-column
-        label="所属组别"
-        align="center"
-        prop="tProjectChannel.channelGroup"
-      >
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.project_group"
-            :value="scope.row.tProjectChannel.channelGroup"
-          />
-        </template>
-      </el-table-column> -->
-
-      <!-- <el-table-column
-        label="项目联系人"
-        align="center"
-        prop="tProjectContacts.name"
-      >
-        <template slot-scope="scope">
-          <div :title="scope.row.tProjectContacts.name">
-            {{ scope.row.tProjectContacts.name }}
-          </div>
-        </template>
-      </el-table-column> -->
-
-      <!--<el-table-column
-        label="创建人"
-        width="120"
-        align="center"
-        prop="createBy"
-      />
-      <el-table-column
-        label="创建时间"
-        align="center"
-        prop="createTime"
-        width="160"
-      /> -->
       <!-- delFlag -->
       <el-table-column label="状态" align="center" prop="investHead">
         <template slot-scope="scope">
@@ -470,22 +253,6 @@
         </template>
       </el-table-column>
       <!-- fixed="right" -->
-      <el-table-column label="操作" align="center" v-if="false">
-        <template slot-scope="scope">
-          <!-- stage//0=全部 1=项目报备  2=评估考察 3=项目立项 4=尽职背调 5=项目投决 -->
-
-          <el-button
-            v-if="scope.row.delFlag !== '1' && stage !== '0'"
-            class="custom-red-color"
-            size="mini"
-            type="text"
-            icon="el-icon-switch-button"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['invest:pool:remove']"
-          >终止</el-button
-          >
-        </template>
-      </el-table-column>
     </el-table>
 
     <pagination

+ 0 - 46
ruoyi-ui/src/views/project/listStage/terminationList.vue

@@ -86,45 +86,6 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
-<!--      <el-col :span="1.5">
-        <el-button
-          plain
-          type="warning"
-          size="mini"
-          icon="el-icon-document"
-          @click="handleAdd(1)"
-          >立项申请</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          type="warning"
-          size="mini"
-          icon="el-icon-tickets"
-          @click="handleAdd(2)"
-          >尽调申请</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          type="warning"
-          size="mini"
-          icon="el-icon-document"
-          @click="handleAdd(3)"
-          >投决申请</el-button
-        >
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          plain
-          type="warning"
-          size="mini"
-          icon="el-icon-document"
-          @click="handleAdd(4)"
-        >终止申请</el-button>
-      </el-col>-->
       <el-col :span="1.5">
         <el-button
           type="warning"
@@ -190,13 +151,6 @@
           </div>
         </template>
       </el-table-column>
-<!--      <el-table-column label="终止原因" align="center" prop="reason">
-        <template slot-scope="scope">
-          <div :title="scope.row.reason">
-            {{ scope.row.reason }}
-          </div>
-        </template>
-      </el-table-column>-->
       <!-- delFlag -->
       <el-table-column label="项目机会状态" align="center" prop="projectStatus">
         <template slot-scope="scope">

+ 963 - 0
ruoyi-ui/src/views/project/poolEdit.vue

@@ -0,0 +1,963 @@
+<template>
+  <div :class="type === '2' ? 'poolAdd poolDetail' : 'poolAdd'">
+    <el-form
+      ref="form"
+      :model="form"
+      :rules="type === '2' ? rules1 : rules"
+      label-width="160px"
+      class="special-el-form"
+    >
+      <h3>项目基础信息</h3>
+      <el-divider></el-divider>
+      <el-form-item label="项目名称" prop="projectName">
+        <el-input
+          maxlength="100"
+          v-model="form.projectName"
+          placeholder="请输入项目名称"
+          :disabled="type === '2'"
+        />
+      </el-form-item>
+
+      <el-form-item label="渠道" prop="tProjectChannel.channelName">
+        <el-select
+          :disabled="type === '2'"
+          v-model="form.tProjectChannel.channelName"
+          placeholder="请选择"
+          clearable
+          @change="handleChannel"
+        >
+          <el-option
+            v-for="item in channelList"
+            :key="item.id"
+            :label="item.channelName"
+            :value="item.id"
+          />
+          <el-option label="无" value="-1" />
+        </el-select>
+        <!-- <channelItem
+          ref="channelItem"
+          @getChannelInfo="getChannelInfo"
+        ></channelItem> -->
+        <!-- <el-input v-model="form.channel" placeholder="请输入渠道" /> -->
+      </el-form-item>
+      <el-form-item label="初次接触日期" prop="contactDate">
+        <el-date-picker
+          :disabled="type === '2'"
+          clearable
+          v-model="form.contactDate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择初次接触日期"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="所属组别">
+        <el-select
+          v-model="form.tProjectChannel.channelGroup"
+          disabled
+          placeholder="请选择所属组别"
+        >
+          <el-option
+            v-for="dict in dict.type.project_group"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="所属行业" prop="industry">
+        <el-select
+          v-model="form.industry"
+          placeholder="请选择所属行业"
+          :disabled="type === '2'"
+        >
+          <el-option
+            v-for="dict in dict.type.CUSTOMER_TRADE"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="项目负责人" prop="investHead">
+        <el-input
+          v-if="type === '2'"
+          maxlength="30"
+          v-model="form.investHead"
+          :disabled="type === '2'"
+        />
+        <div
+          class="el-input__inner inputSimulation"
+          @click="openSelectDept"
+          v-else
+        >
+          {{ form.investHead ? form.investHead : "请选择项目负责人" }}
+        </div>
+        <selecDept
+          ref="selecDepts"
+          @getDeptUserInfo="getDeptUserInfo"
+          :deptId="deptId"
+        ></selecDept>
+      </el-form-item>
+
+      <el-form-item
+        label="项目情况描述"
+        prop="description"
+        class="special-el-form-item"
+      >
+        <el-input
+          :disabled="type === '2'"
+          maxlength="200"
+          rows="4"
+          type="textarea"
+          v-model="form.description"
+          placeholder="请输入项目情况描述"
+        />
+      </el-form-item>
+      <h3>项目公司信息</h3>
+      <el-divider></el-divider>
+      <el-form-item label="公司名称" prop="tProjectCompany.companyName">
+        <el-input
+          :disabled="type === '2'"
+          maxlength="100"
+          v-model="form.tProjectCompany.companyName"
+          placeholder="请输入公司名称"
+        />
+      </el-form-item>
+      <el-form-item label="统一社会信用代码" prop="tProjectCompany.companyCode">
+        <el-input
+          :disabled="type === '2'"
+          maxlength="35"
+          v-model="form.tProjectCompany.companyCode"
+          placeholder="请输入企业统一社会信用代码"
+        />
+      </el-form-item>
+      <el-form-item label="营业开始时间" prop="tProjectCompany.startTime">
+        <el-date-picker
+          :disabled="type === '2'"
+          clearable
+          v-model="form.tProjectCompany.startTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择营业开始时间"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="营业结束时间" prop="tProjectCompany.endTime">
+        <el-date-picker
+          :disabled="type === '2'"
+          clearable
+          v-model="form.tProjectCompany.endTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择营业结束时间"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item
+        label="注册资本(万元)"
+        prop="tProjectCompany.registeredCapital"
+      >
+        <el-input
+          :disabled="type === '2'"
+          maxlength="20"
+          v-model="form.tProjectCompany.registeredCapital"
+          @input="
+            (value) =>
+              (form.tProjectCompany.registeredCapital = value
+                .replace(/[^0-9.]/g, '')
+                .replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/, '$1$2.$3')
+                .replace(/-/g, ''))
+          "
+          placeholder="请输入注册资本"
+        />
+      </el-form-item>
+      <el-form-item label="实缴资本(万元)" prop="tProjectCompany.paidCapital">
+        <el-input
+          :disabled="type === '2'"
+          maxlength="20"
+          v-model="form.tProjectCompany.paidCapital"
+          @input="
+            (value) =>
+              (form.tProjectCompany.paidCapital = value
+                .replace(/[^0-9.]/g, '')
+                .replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/, '$1$2.$3')
+                .replace(/-/g, ''))
+          "
+          placeholder="请输入实缴资本"
+        />
+      </el-form-item>
+
+      <el-form-item label="实控人" prop="tProjectCompany.actualBod">
+        <el-input
+          :disabled="type === '2'"
+          maxlength="25"
+          v-model="form.tProjectCompany.actualBod"
+          placeholder="请输入实控人"
+        />
+      </el-form-item>
+      <el-form-item label="联系电话" prop="tProjectCompany.phone">
+        <el-input
+          :disabled="type === '2'"
+          maxlength="20"
+          v-model="form.tProjectCompany.phone"
+          placeholder="请输入联系电话"
+        />
+      </el-form-item>
+      <el-form-item label="所属类型" prop="tProjectCompany.type">
+        <el-input
+          :disabled="type === '2'"
+          maxlength="25"
+          v-model="form.tProjectCompany.type"
+          placeholder="请输入所属类型"
+        />
+      </el-form-item>
+      <el-form-item label="备案时间" prop="tProjectCompany.filingTime">
+        <el-date-picker
+          :disabled="type === '2'"
+          clearable
+          v-model="form.tProjectCompany.filingTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择备案时间"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item
+        label="注册地址"
+        prop="tProjectCompany.registeredAddress"
+        class="special-el-form-item"
+      >
+        <el-input
+          :disabled="type === '2'"
+          type="textarea"
+          rows="4"
+          maxlength="100"
+          v-model="form.tProjectCompany.registeredAddress"
+          placeholder="请输入注册地址"
+        />
+      </el-form-item>
+
+      <el-form-item
+        label="办公地址"
+        prop="tProjectCompany.businessAddress"
+        class="special-el-form-item"
+      >
+        <el-input
+          :disabled="type === '2'"
+          type="textarea"
+          rows="4"
+          maxlength="100"
+          v-model="form.tProjectCompany.businessAddress"
+          placeholder="请输入办公地址"
+        />
+      </el-form-item>
+      <el-form-item
+        label="公司附件"
+        prop="listFile"
+        class="special-el-form-item"
+      >
+        <fileItem
+          ref="fileItem"
+          :id="form.id"
+          @getFileList="getFileList"
+        ></fileItem>
+      </el-form-item>
+      <h3>项目公司联系人信息</h3>
+      <el-divider></el-divider>
+      <el-form-item label="联系人姓名" prop="tProjectContacts.name">
+        <el-input
+          :disabled="type === '2'"
+          maxlength="25"
+          v-model="form.tProjectContacts.name"
+          placeholder="请输入联系人姓名"
+        />
+      </el-form-item>
+      <el-form-item label="职位" prop="tProjectContacts.position">
+        <el-input
+          :disabled="type === '2'"
+          maxlength="25"
+          v-model="form.tProjectContacts.position"
+          placeholder="请输入职位"
+        />
+      </el-form-item>
+      <el-form-item label="联系电话/微信" prop="tProjectContacts.contact">
+        <el-input
+          :disabled="type === '2'"
+          maxlength="25"
+          v-model="form.tProjectContacts.contact"
+          placeholder="请输入联系电话/微信"
+        />
+      </el-form-item>
+      <h3>项目融资信息</h3>
+      <el-divider></el-divider>
+      <el-form-item label="项目融资阶段" prop="financingStage">
+        <el-select
+          :disabled="type === '2'"
+          v-model="form.financingStage"
+          placeholder="请选择项目融资阶段"
+        >
+          <el-option
+            v-for="dict in dict.type.financing_stage"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="预期融资金额(万元)" prop="financingMoney">
+        <el-input
+          :disabled="type === '2'"
+          maxlength="20"
+          v-model="form.financingMoney"
+          @input="
+            (value) =>
+              (form.financingMoney = value.replace(/\D/g, '').replace(/-/g, ''))
+          "
+          placeholder="请输入预期融资金额"
+        />
+      </el-form-item>
+      <el-form-item label="投前估值(万元)" prop="investValuation">
+        <el-input
+          :disabled="type === '2'"
+          maxlength="20"
+          v-model="form.investValuation"
+          @input="
+            (value) =>
+              (form.investValuation = value
+                .replace(/[^0-9.]/g, '')
+                .replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3')
+                .replace(/-/g, ''))
+          "
+          placeholder="请输入投前估值"
+        />
+      </el-form-item>
+      <el-form-item label="预计投资金额(万元)" prop="investMoney">
+        <el-input
+          :disabled="type === '2'"
+          maxlength="20"
+          v-model="form.investMoney"
+          @input="
+            (value) =>
+              (form.investMoney = value.replace(/\D/g, '').replace(/-/g, ''))
+          "
+          placeholder="请输入预计投资金额"
+        />
+      </el-form-item>
+      <!--  -->
+      <el-form-item label="投资类型" prop="investType">
+        <el-select
+          v-model="form.investType"
+          placeholder="请选择投资类型"
+          :disabled="type === '2'"
+        >
+          <el-option
+            v-for="dict in dict.type.invest_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="投资策略" prop="investPloy">
+        <el-select
+          v-model="form.investPloy"
+          placeholder="请选择投资策略"
+          :disabled="type === '2'"
+        >
+          <el-option
+            v-for="dict in dict.type.invest_ploy"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="投资价值" prop="investWorth">
+        <el-select
+          v-model="form.investWorth"
+          placeholder="请选择投资价值"
+          :disabled="type === '2'"
+        >
+          <el-option
+            v-for="dict in dict.type.invest_worth"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item
+        label="历次融资"
+        prop="previousFinancing"
+        class="special-el-form-item"
+      >
+        <el-input
+          :disabled="type === '2'"
+          maxlength="200"
+          rows="4"
+          type="textarea"
+          v-model="form.previousFinancing"
+          placeholder="请输入历次融资"
+        />
+      </el-form-item>
+      <el-form-item
+        label="融资条件"
+        prop="financingCondition"
+        class="special-el-form-item"
+      >
+        <el-input
+          :disabled="type === '2'"
+          maxlength="200"
+          rows="4"
+          type="textarea"
+          v-model="form.financingCondition"
+          placeholder="请输入融资条件"
+        />
+      </el-form-item>
+      <el-form-item
+        label="投资亮点"
+        prop="investSparkle"
+        class="special-el-form-item"
+      >
+        <el-input
+          :disabled="type === '2'"
+          maxlength="200"
+          rows="4"
+          type="textarea"
+          v-model="form.investSparkle"
+          placeholder="请输入投资亮点"
+        />
+      </el-form-item>
+
+      <el-form-item
+        label="股权架构"
+        prop="shareholding"
+        class="special-el-form-item"
+      >
+        <el-input
+          :disabled="type === '2'"
+          maxlength="200"
+          rows="4"
+          type="textarea"
+          v-model="form.shareholding"
+          placeholder="请输入股权架构"
+        />
+      </el-form-item>
+      <h3>其他</h3>
+      <el-divider></el-divider>
+
+      <el-form-item label="BP" prop="bpFile" class="special-el-form-item">
+        <fileItem
+          ref="bpFileItem"
+          :id="form.id"
+          @getFileList="getBPFileList"
+        ></fileItem>
+      </el-form-item>
+      <el-form-item
+        label="其他附件"
+        prop="otherFile"
+        class="special-el-form-item"
+      >
+        <fileItem
+          ref="otherFileItem"
+          :id="form.id"
+          @getFileList="getOtherFileList"
+        ></fileItem>
+      </el-form-item>
+      <el-form-item label="备注" prop="mark" class="special-el-form-item">
+        <el-input
+          :disabled="type === '2'"
+          maxlength="200"
+          :readonly="type === '2' ? true : false"
+          rows="4"
+          type="textarea"
+          v-model="form.mark"
+          placeholder="请输入备注"
+        />
+      </el-form-item>
+      <el-form-item class="btnList" v-if="type === '1'">
+        <el-button @click="goBack">返 回</el-button>
+        <el-button type="primary" @click="submitForm(2)" v-preventReClick>保 存</el-button>
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+<script>
+import { getInvestInfo, investmentOpportunityEdit} from "@/api/project/investOpp/pool";
+import { listChannel } from "@/api/invest/channel";
+import fileItem from "../invest/components/fileItem";
+import channelItem from "../invest/components/channelItem";
+import selecDept from "../invest/components/selecDept";
+import { mapGetters } from "vuex";
+export default {
+  props: {
+    id: {
+      type: String,
+    },
+    type: {
+      type: String,
+      default: "1", //1可编辑  2不可编辑
+    },
+  },
+  components: { fileItem, channelItem, selecDept },
+  dicts: [
+    "CUSTOMER_TRADE",
+    "project_group",
+    "invest_type",
+    "invest_ploy",
+    "invest_worth",
+    "financing_stage",
+  ],
+  data() {
+    const validateLogo = (rule, value, callback) => {
+      if (this.fileListBP.length <= 0) {
+        callback(new Error("请上传BP"));
+      } else {
+        callback();
+      }
+    };
+    return {
+      deptId: process.env.VUE_APP_DEPTID,
+      title: "新增项目",
+      baseUrl: process.env.VUE_APP_BASE_API,
+      pInstId:null,
+      localId: this.id, // 初始化用 prop 的 id
+      // 表单参数
+      form: {
+        id: null,
+        procInstId:null,
+        projectName: null,
+        projectGroup: "",
+        industry: null,
+        recordDate: null,
+        projectCode: null,
+        channel: "",
+        contactDate: null,
+        projectDate: null,
+        decisionDate: null,
+        tProjectCompany: {
+          companyName: null,
+          companyCode: null,
+          startTime: null,
+          endTime: null,
+          registeredCapital: null,
+          registeredAddress: null,
+          paidCapital: null,
+          businessAddress: null,
+          actualBod: null,
+          phone: null,
+          filingTime: null,
+          type: null,
+        },
+        tProjectContacts: {
+          name: null,
+          position: null,
+          contact: null,
+        },
+        tProjectChannel: {
+          channelName: "",
+          channelGroup: "",
+        },
+
+        description: null,
+        projectContacts: null,
+        investHead: null,
+        previousFinancing: null,
+        financingStage: null,
+        financingCondition: null,
+        financingMoney: null,
+        financingDate: null,
+        investSparkle: null,
+        investValuation: null,
+        investMoney: null,
+        investType: null,
+        investPloy: null,
+        investWorth: null,
+        shareholding: null,
+        projectStage: null,
+        projectState: null,
+        mark: null,
+        delFlag: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        listFile: null,
+        bpFile: null,
+        otherFile: null,
+      },
+      fileList: [],
+      fileListBP: [],
+      fileListOther: [],
+      // 表单校验
+      rules1: {},
+      rules: {
+        projectName: [{ required: true, trigger: "blur", message: "请输入" }],
+        // channel: [{ required: true, trigger: "blur", message: "请输入" }],
+        contactDate: [{ required: true, trigger: "blur", message: "请输入" }],
+        // projectGroup: [
+        //   { required: true, trigger: "change", message: "请选择" },
+        // ],
+        industry: [{ required: true, trigger: "change", message: "请选择" }],
+        investHead: [{ required: true, trigger: "blur", message: "请输入" }],
+        bpFile: [{ required: true, validator: validateLogo }],
+        "tProjectChannel.channelName": [
+          { required: true, trigger: "change", message: "请选择" },
+        ],
+        // description: [{ required: true, trigger: "blur", message: "请输入" }],
+        "tProjectCompany.companyName": [
+          { required: true, trigger: "blur", message: "请输入" },
+        ],
+        "tProjectCompany.companyCode": [
+          { required: true, trigger: "blur", message: "请输入" },
+        ],
+        "tProjectCompany.startTime": [
+          { required: true, trigger: "blur", message: "请选择" },
+        ],
+        "tProjectCompany.endTime": [
+          { required: true, trigger: "blur", message: "请选择" },
+        ],
+        "tProjectCompany.registeredCapital": [
+          { required: true, trigger: "blur", message: "请输入" },
+        ],
+        "tProjectCompany.registeredAddress": [
+          { required: true, trigger: "blur", message: "请输入" },
+        ],
+        "tProjectCompany.paidCapital": [
+          { required: true, trigger: "blur", message: "请输入" },
+        ],
+        "tProjectCompany.businessAddress": [
+          { required: true, trigger: "blur", message: "请输入" },
+        ],
+        "tProjectCompany.actualBod": [
+          { required: true, trigger: "blur", message: "请输入" },
+        ],
+        "tProjectCompany.phone": [
+          { required: true, trigger: "blur", message: "请输入联系电话" },
+          // {
+          //   pattern: /^1[3456789]\d{9}$/,
+          //   message: "请输入正确的手机号",
+          //   trigger: "blur",
+          // },
+        ],
+        "tProjectCompany.filingTime": [
+          { required: true, trigger: "blur", message: "请选择" },
+        ],
+        "tProjectCompany.type": [
+          { required: true, trigger: "blur", message: "请输入" },
+        ],
+        // files: [{ required: true, trigger: "blur", message: "请输入" }],
+        "tProjectContacts.name": [
+          { required: true, trigger: "blur", message: "请输入" },
+        ],
+        "tProjectContacts.position": [
+          { required: true, trigger: "blur", message: "请输入" },
+        ],
+        "tProjectContacts.contact": [
+          { required: true, trigger: "blur", message: "请输入" },
+        ],
+        financingStage: [
+          { required: true, trigger: "change", message: "请选择" },
+        ],
+        financingMoney: [
+          { required: true, trigger: "blur", message: "请输入" },
+        ],
+        investValuation: [
+          { required: true, trigger: "blur", message: "请输入" },
+        ],
+        investMoney: [{ required: true, trigger: "blur", message: "请输入" }],
+        investType: [{ required: true, trigger: "change", message: "请选择" }],
+        investPloy: [{ required: true, trigger: "change", message: "请选择" }],
+        investWorth: [{ required: true, trigger: "change", message: "请选择" }],
+        // previousFinancing: [{ required: true, trigger: "blur", message: "请输入" }],
+        // financingCondition: [
+        //   { required: true, trigger: "blur", message: "请输入" },
+        // ],
+        investSparkle: [{ required: true, trigger: "blur", message: "请输入" }],
+        shareholding: [{ required: true, trigger: "blur", message: "请输入" }],
+        // mark: [{ required: true, trigger: "blur", message: "请输入" }]
+      },
+      channelList: [],
+    };
+  },
+  computed: {
+    ...mapGetters(["user"]),
+  },
+  mounted() {
+    new Promise((resolve, reject) => {
+      listChannel({
+        pageNum: 1,
+        pageSize: 100,
+      }).then((response) => {
+        this.channelList = response.rows;
+        resolve();
+      });
+    }).then(() => {
+      //this.id=this.$route.query.id;
+      this.localId = this.$route.query.id; // 改这里!用 localId
+      this.pInstId = this.$route.query.pInstId;
+      //console.log(this.localId+'--------------------------');
+      if (this.localId) {
+        this.getPoolDetail(this.pInstId);
+      } else {
+        //this.reset();
+      }
+    });
+  },
+  methods: {
+
+    // 选择部门人
+    openSelectDept() {
+      this.$refs.selecDepts.show(1, this.user.userId);
+    },
+    getDeptUserInfo(info) {
+      if (info.length > 0) {
+        this.form.investHead = info[0].nickName;
+        this.$refs.form.clearValidate(["investHead"]);
+      }
+    },
+    // 获取渠道信息
+    getChannelInfo(info) {
+      if (info.length > 0) {
+        this.form.channel = info[0].id;
+        this.form.tProjectChannel.channelName = info[0].channelName;
+        this.form.tProjectChannel.channelGroup = info[0].channelGroup;
+        this.$refs.form.clearValidate(["channel"]);
+      }
+    },
+    // 选择渠道
+    handleChannel(vId) {
+      let obj = {};
+      obj = this.channelList.find((item) => {
+        return item.id === vId;
+      });
+      if (obj && obj.id) {
+        this.form.channel = obj.id;
+        this.form.tProjectChannel.channelName = obj.channelName;
+        this.form.tProjectChannel.channelGroup = obj.channelGroup;
+      } else {
+        this.form.channel = -1;
+        this.form.tProjectChannel.channelName = "无";
+        this.form.tProjectChannel.channelGroup = "";
+      }
+    },
+    handleChannelItem() {
+      this.$refs.channelItem.showChannelItem = true;
+    },
+    getPoolDetail(pInstId) {
+      getInvestInfo(pInstId).then((response) => {
+        this.form = response.data;
+        let channeItem = this.channelList.find((item) => {
+          if (this.form.channel == item.id) {
+            return item;
+          }
+        });
+        if (channeItem && channeItem.channelName) {
+          this.form.tProjectChannel.channelName = channeItem.channelName;
+          this.form.tProjectChannel.channelGroup = channeItem.channelGroup;
+        } else {
+          this.form.tProjectChannel = {
+            channelName: "无",
+            channelGroup: "",
+          };
+        }
+        setTimeout(() => {
+          if (this.type == "2") {
+            this.$refs.fileItem.handleButton();
+            this.$refs.bpFileItem.handleButton();
+            this.$refs.otherFileItem.handleButton();
+          }
+          this.$refs.fileItem.fileList = [];
+          this.$refs.fileItem.getListFileBusinessId(
+            this.form.tProjectCompany.companyId
+          );
+          this.$refs.bpFileItem.fileList = [];
+          this.$refs.bpFileItem.getListFileBusinessId(this.form.id, "9");
+          this.$refs.otherFileItem.fileList = [];
+          this.$refs.otherFileItem.getListFileBusinessId(this.form.id, "0");
+        }, 300);
+      });
+    },
+    // 获取fileList
+    getFileList(fileList) {
+      if (fileList && fileList.length > 0) {
+        this.fileList = fileList;
+      } else {
+        this.fileList = [];
+      }
+    },
+    getBPFileList(fileList) {
+      if (fileList && fileList.length > 0) {
+        this.fileListBP = fileList;
+        this.$refs.form.clearValidate(["bpFile"]);
+      } else {
+        this.fileList = [];
+      }
+    },
+    getOtherFileList(fileList) {
+      if (fileList && fileList.length > 0) {
+        this.fileListOther = fileList;
+      } else {
+        this.fileList = [];
+      }
+    },
+    /** 提交按钮 */
+    submitForm(type) {
+      let that = this;
+      if (this.form.channel == "") {
+        this.form.channel = -1;
+      }
+      if (type === 2) {
+        // 提交
+        this.form.flag='true';
+        this.$refs["form"].validate((valid, rules) => {
+          if (valid) {
+            this.form.listFile = this.fileList;
+            this.form.bpFile = this.fileListBP;
+            this.form.otherFile = this.fileListOther;
+            this.form.tProjectCompany.registeredCapital =
+              this.form.tProjectCompany.registeredCapital
+                .replace(/[^0-9.]/g, "")
+                .replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/, "$1$2.$3")
+                .replace(/-/g, "");
+            this.form.tProjectCompany.paidCapital =
+              this.form.tProjectCompany.paidCapital
+                .replace(/[^0-9.]/g, "")
+                .replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/, "$1$2.$3")
+                .replace(/-/g, "");
+            this.form.investValuation = this.form.investValuation
+              .replace(/[^0-9.]/g, "")
+              .replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")
+              .replace(/-/g, "");
+            this.form.financingMoney = this.form.financingMoney
+              .replace(/\D/g, "")
+              .replace(/-/g, "");
+            this.form.investMoney = this.form.investMoney
+              .replace(/\D/g, "")
+              .replace(/-/g, "");
+            investmentOpportunityEdit(this.form).then((response) => {
+              this.$modal.msgSuccess("保存成功");
+              //this.$store.dispatch("getMyTaskInvestOppNumber"); //更新代办数量
+              setTimeout(() => {
+                that.goBack();
+              }, 1500);
+            });
+          } else {
+            for (var ruleName in rules) {
+              let _rule = rules[ruleName];
+              let message = _rule[0].message;
+              this.$message.warning(message, 1);
+              break;
+            }
+            //验证不通过回滚到不通过的第一个位置
+            this.$nextTick(() => {
+              let isError = document.getElementsByClassName("is-error");
+              isError[0].scrollIntoView({
+                block: "center",
+                behavior: "smooth",
+              });
+            });
+          }
+        });
+      }
+    },
+    goBack() {
+      this.$router.go(-1);
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        projectName: null,
+        projectGroup: "",
+        industry: null,
+        recordDate: null,
+        projectCode: null,
+        channel: "",
+        contactDate: null,
+        projectDate: null,
+        decisionDate: null,
+        tProjectCompany: {
+          companyName: null,
+          companyCode: null,
+          startTime: null,
+          endTime: null,
+          registeredCapital: null,
+          registeredAddress: null,
+          paidCapital: null,
+          businessAddress: null,
+          actualBod: null,
+          phone: null,
+          filingTime: null,
+          type: null,
+        },
+        tProjectContacts: {
+          name: null,
+          position: null,
+          contact: null,
+        },
+        tProjectChannel: {
+          channelName: "",
+          channelGroup: "",
+        },
+        description: null,
+        projectContacts: null,
+        investHead: this.user.nickName,
+        previousFinancing: null,
+        financingStage: null,
+        financingCondition: null,
+        financingMoney: null,
+        financingDate: null,
+        investSparkle: null,
+        investValuation: null,
+        investMoney: null,
+        investType: null,
+        investPloy: null,
+        investWorth: null,
+        shareholding: null,
+        projectStage: null,
+        projectState: null,
+        mark: null,
+        delFlag: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        listFile: null,
+        bpFile: null,
+        otherFile: null,
+      };
+      this.resetForm("form");
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.poolAdd {
+  h2 {
+    margin-left: 30px;
+  }
+  .special-el-form {
+    h3 {
+      width: 100%;
+      margin-bottom: -10px;
+      font-weight: bold;
+    }
+    .btnList {
+      width: 100%;
+      display: flex;
+      justify-content: center;
+      padding-bottom: 40px;
+    }
+  }
+}
+.poolDetail {
+  position: relative;
+  // cursor: not-allowed;
+}
+.poolDetail ::placeholder {
+  color: #f5f7fa !important;
+}
+
+</style>