armg 11 months ago
parent
commit
099b984b27

+ 22 - 4
ruoyi-ui/src/api/invest/meeting.js

@@ -67,8 +67,8 @@ export function getCanScoringMeetingId(id) {
   return request({
     url: '/invest/scoring/getCanScoringMeetingId',
     method: 'get',
-    params: {meetingId:id}
-    
+    params: { meetingId: id }
+
   })
 }
 
@@ -77,8 +77,8 @@ export function selectMeetingId(id) {
   return request({
     url: '/invest/scoring/selectMeetingId',
     method: 'get',
-    params: {meetingId:id}
-    
+    params: { meetingId: id }
+
   })
 }
 
@@ -114,6 +114,15 @@ export function getApprovalList() {
     method: 'get'
   })
 }
+// 根据项目ID获取最新立项申请  /dev-api/invest/approval/listProjectPoolIdNew
+export function listProjectPoolIdNewApproval(id) {
+  return request({
+    url: '/invest/approval/listProjectPoolIdNew',
+    method: 'get',
+    params: { projectPoolId: id }
+
+  })
+}
 
 
 // 新增投决申请​/dev-api​/invest​/decision
@@ -146,3 +155,12 @@ export function getDecisionList() {
     method: 'get'
   })
 }
+// 根据项目ID获取最新投决申请  ​/dev-api​/invest​/decision​/listProjectPoolIdNew
+export function listProjectPoolIdNewDecision(id) {
+  return request({
+    url: '/invest/decision/listProjectPoolIdNew',
+    method: 'get',
+    params: { projectPoolId: id }
+
+  })
+}

+ 14 - 8
ruoyi-ui/src/api/invest/pool.js

@@ -128,10 +128,11 @@ export function delInvestReview(id) {
   })
 }
 //查询评审记录列表 
-export function getInvestReviewList() {
+export function getInvestReviewList(id) {
   return request({
-    url: '/invest/invest/list',
-    method: 'get'
+    url: '/invest/review/list',
+    method: 'get',
+    params: { projectPoolId: id }
   })
 }
 
@@ -168,7 +169,7 @@ export function updateInvestigate(data) {
 }
 
 //  获取尽调人员关联表详细信息
-export function dueAllPeportList(id) {
+export function getDueAllPeportList(id) {
   return request({
     url: '/invest/person/list',
     method: 'get',
@@ -203,8 +204,15 @@ export function delInvestigate(id) {
     method: 'delete'
   })
 }
-// 获取尽调人员关联表详细信息
-// /dev-api/invest/person/getProjectInvestigateId
+// 根据项目ID获取最新尽调申请
+export function investigateListProjectPoolIdNew(id) {
+  return request({
+    url: '/invest/investigate/listProjectPoolIdNew',
+    method: 'get',
+    params: { projectPoolId: id }
+  })
+}
+// 根据尽调申请id查下面所有的报告
 export function getProjectInvestigateId(id) {
   return request({
     url: '/invest/person/getProjectInvestigateId',
@@ -241,5 +249,3 @@ export function getInvestReviewById(id) {
 
 
 
-
-// 

+ 2 - 1
ruoyi-ui/src/assets/styles/public.scss

@@ -510,9 +510,10 @@
 .searchWrapper {
   margin-left: 22px;
 }
-.el-input.is-disabled .el-input__inner,.el-textarea.is-disabled .el-textarea__inner{
+.el-input.is-disabled .el-input__inner,.el-textarea.is-disabled .el-textarea__inner,.el-radio__input.is-disabled+span.el-radio__label{
   color:#333!important;
 }
+
 .public-input-height{
   height:36px;
 }

+ 208 - 0
ruoyi-ui/src/views/invest/components/businessUpdate.vue

@@ -0,0 +1,208 @@
+<template>
+  <div>
+    <!-- 设置项目状态对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <el-form-item label="项目阶段" prop="projectStage">
+          <el-select
+            v-model="form.projectStage"
+            ref="selectLable"
+            placeholder="请选择项目阶段"
+          >
+            <el-option
+              @click.native="handleProjectSelect(index, dict)"
+              v-for="(dict, index) in dict.type.project_stage"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="项目状态" prop="projectState">
+          <el-select
+            ref="selectState"
+            v-model="form.projectState"
+            placeholder="请选择项目状态"
+          >
+            <el-option
+              @click.native="handleProjectStateSelect(dict)"
+              v-for="dict in project_state"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item
+          v-if="form.projectState == 'e'"
+          label="立项通过日期"
+          prop="projectDate"
+          :rules="[
+            { required: verifyProjectDate, trigger: 'blur', message: '请选择' },
+          ]"
+        >
+          <el-date-picker
+            clearable
+            v-model="form.projectDate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择立项通过日期"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item
+          v-if="form.projectState == 'i'"
+          label="投决通过日期"
+          prop="decisionDate"
+          :rules="[
+            {
+              required: verifyDecisionDate,
+              trigger: 'blur',
+              message: '请选择',
+            },
+          ]"
+        >
+          <el-date-picker
+            clearable
+            v-model="form.decisionDate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择投决通过日期"
+          >
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm" v-preventReClick
+          >确 定</el-button
+        >
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import { editStage } from "@/api/invest/pool";
+import { mapGetters } from "vuex";
+export default {
+  props: {},
+  dicts: ["project_stage", "project_state"],
+  watch: {
+    "form.projectState": function (newValue, oldValue) {
+      // 项目立项通过
+      if (newValue == "e") {
+        this.verifyProjectDate = true;
+      } else {
+        this.verifyProjectDate = false;
+      }
+      // 项目投决通过
+      if (newValue == "i") {
+        this.verifyDecisionDate = true;
+      } else {
+        this.verifyDecisionDate = false;
+      }
+    },
+  },
+  data() {
+    return {
+      project_state: [],
+      rules: {
+        projectStage: [
+          { required: true, trigger: "change", message: "请选择项目阶段" },
+        ],
+        projectState: [
+          { required: true, trigger: "change", message: "请选择项目状态" },
+        ],
+      },
+      verifyProjectDate: false,
+      verifyDecisionDate: false,
+      form: {
+        id: null,
+        projectStage: "",
+        projectState: "",
+        stageName: "",
+        stateName: "",
+      },
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      projectStage_org: "",
+      projectState_org: "",
+    };
+  },
+  computed: {
+    ...mapGetters(["projectState"]),
+  },
+  methods: {
+    // 下拉框改变
+    handleProjectSelect(index, dict) {
+      this.form.projectState = null;
+      this.project_state = this.projectState[index];
+      // 给个默认值
+      this.form.projectState = this.project_state[0].dictValue;
+      this.form.stateName = this.project_state[0].dictLabel;
+      if (dict && dict.label) {
+        this.form.stageName = dict.label;
+      }
+    },
+    // 修改业务节点
+    handleBusinessUpdate(row) {
+    //   console.log("row=", row);
+      this.projectStage_org = row.projectStage;
+      this.projectState_org = row.projectState;
+      this.reset();
+      let index = parseInt(row.projectStage) - 1;
+      this.handleProjectSelect(index, row);
+      this.form = row;
+      this.open = true;
+      this.title = "设置项目阶段";
+      setTimeout(() => {
+        this.form.stageName = this.$refs.selectLable.selected.label;
+        this.form.stateName = this.$refs.selectState.selected.label;
+      }, 300);
+    }, // 设置项目状态表单重置
+    reset() {
+      this.form = {
+        id: null,
+        projectStage: null,
+        projectState: null,
+        stageName: null,
+        stateName: null,
+      };
+      this.resetForm("form");
+    },
+    handleProjectStateSelect(dict) {
+      if (dict && dict.dictLabel) {
+        this.form.stateName = dict.dictLabel;
+      }
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    /** 修改项目状态提交按钮 */
+    submitForm() {
+      let that = this;
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          if (
+            this.projectStage_org === this.form.projectStage &&
+            this.projectState_org === this.form.projectState
+          ) {
+            that.$modal.msgSuccess("修改成功");
+            that.open = false;
+          } else {
+            editStage(this.form).then((response) => {
+              that.$modal.msgSuccess("修改成功");
+              that.open = false;
+              that.$emit("getList");
+            });
+          }
+        }
+      });
+    },
+  },
+};
+</script>

+ 282 - 128
ruoyi-ui/src/views/invest/components/dueDiligenceList.vue

@@ -63,31 +63,31 @@
           <template slot-scope="scope">
             <!-- 
               v-show="scope.row.investigatePersonId.indexOf(user.userId) > -1" -->
-            <el-button
+            <!-- <el-button
               class="custom-blue-color"
               size="mini"
               type="text"
               icon="el-icon-search"
               @click="handleLook(scope.row)"
               >查看报告</el-button
-            >
+            > -->
             <el-button
               v-show="scope.row.investigatePersonId.indexOf(user.userId) > -1"
               size="mini"
               type="text"
               icon="el-icon-upload2"
-              @click="handleSurvey('3', scope.row, scope.row)"
+              @click="handleShowApplyPop(scope.row)"
               >上传报告</el-button
             >
             <!-- status 0=进行中  1=完成 -->
-            <el-button
+            <!-- <el-button
               v-if="scope.row.status === '0'"
               size="mini"
               type="text"
               icon="el-icon-circle-check"
               @click="handleDuePlan(scope.row)"
               >完成尽调</el-button
-            >
+            > -->
             <el-button
               size="mini"
               type="text"
@@ -146,12 +146,12 @@
         </el-form-item>
         <el-form-item
           label="尽调地点"
-          prop="address"
+          prop="investigatePlace"
           class="special-el-form-item"
         >
           <el-input
             maxlength="100"
-            v-model="dueForm.address"
+            v-model="dueForm.investigatePlace"
             placeholder="请输入尽调地点"
           />
         </el-form-item>
@@ -176,29 +176,36 @@
           >
           </el-date-picker>
         </el-form-item>
-        <el-form-item label="尽调资料是否齐全" prop="resource">
-          <el-radio-group v-model="dueForm.resource">
+        <el-form-item label="尽调资料是否齐全" prop="readiness">
+          <el-radio-group v-model="dueForm.readiness">
             <el-radio label="1">是</el-radio>
             <el-radio label="0">否</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="是否有第三方投资机构" prop="organization">
-          <el-radio-group v-model="dueForm.organization">
+        <el-form-item label="是否有第三方投资机构" prop="thirdParty">
+          <el-radio-group v-model="dueForm.thirdParty">
             <el-radio label="1">是</el-radio>
             <el-radio label="0">否</el-radio>
           </el-radio-group>
         </el-form-item>
         <el-form-item label="尽调费用(元)" prop="investigateCost">
           <el-input
+            maxlength="20"
             v-model="dueForm.investigateCost"
             placeholder="请输入尽调费用"
-            onkeyup="value=value.replace(/[^0-9.]/g,'').replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3').replace(/-/g, '')"
+            @input="
+              (value) =>
+                (dueForm.investigateCost = value
+                  .replace(/[^0-9.]/g, '')
+                  .replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3')
+                  .replace(/-/g, ''))
+            "
           />
         </el-form-item>
-        <el-form-item label="尽调财务数据截止日期" prop="upToTime">
+        <el-form-item label="尽调财务数据截止日期" prop="deadDate">
           <el-date-picker
             clearable
-            v-model="dueForm.upToTime"
+            v-model="dueForm.deadDate"
             type="date"
             value-format="yyyy-MM-dd"
             placeholder="请选择尽调财务数据截止日期"
@@ -236,6 +243,7 @@
         <el-form-item label="描述" prop="describe" class="special-el-form-item">
           <el-input
             rows="4"
+            maxlength="200"
             v-model="dueForm.describe"
             type="textarea"
             placeholder="请输入内容"
@@ -244,6 +252,7 @@
         <el-form-item label="备注" prop="remark" class="special-el-form-item">
           <el-input
             rows="4"
+            maxlength="200"
             type="textarea"
             v-model="dueForm.remark"
             placeholder="请输入备注"
@@ -290,10 +299,14 @@
         </el-form-item>
         <el-form-item
           label="尽调地点"
-          prop="address"
+          prop="investigatePlace"
           class="special-el-form-item"
         >
-          <el-input disabled maxlength="100" v-model="dueForm.address" />
+          <el-input
+            disabled
+            maxlength="100"
+            v-model="dueForm.investigatePlace"
+          />
         </el-form-item>
         <el-form-item label="期望尽调开始时间" prop="startTime">
           <el-date-picker
@@ -315,14 +328,14 @@
           >
           </el-date-picker>
         </el-form-item>
-        <el-form-item label="尽调资料是否齐全" prop="resource">
-          <el-radio-group v-model="dueForm.resource" disabled>
+        <el-form-item label="尽调资料是否齐全" prop="readiness">
+          <el-radio-group v-model="dueForm.readiness" disabled>
             <el-radio label="1">是</el-radio>
             <el-radio label="0">否</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="是否有第三方投资机构" prop="organization">
-          <el-radio-group v-model="dueForm.organization" disabled>
+        <el-form-item label="是否有第三方投资机构" prop="thirdParty">
+          <el-radio-group v-model="dueForm.thirdParty" disabled>
             <el-radio label="1">是</el-radio>
             <el-radio label="0">否</el-radio>
           </el-radio-group>
@@ -331,11 +344,11 @@
           <el-input disabled v-model="dueForm.investigateCost" />
         </el-form-item>
 
-        <el-form-item label="尽调财务数据截止日期" prop="upToTime">
+        <el-form-item label="尽调财务数据截止日期" prop="deadDate">
           <el-date-picker
             disabled
             clearable
-            v-model="dueForm.upToTime"
+            v-model="dueForm.deadDate"
             type="date"
             value-format="yyyy-MM-dd"
           >
@@ -398,7 +411,7 @@
       </div>
     </el-dialog>
     <!-- 查看该申请下的所有尽调报告 -->
-    <el-dialog
+    <!-- <el-dialog
       v-if="false"
       title="尽调报告"
       :visible.sync="dueDiligenceOpen2"
@@ -418,7 +431,6 @@
             <el-input disabled v-model="item.investigatePerson" />
           </el-form-item>
           <el-form-item label="报告" class="special-el-form-item">
-            <!-- class="show_disabled" -->
             <fileItem
               ref="dueAllreportFileItems"
               :id="item.id"
@@ -451,10 +463,116 @@
         >
         <el-button @click="dueDiligenceOpen2 = false">取 消</el-button>
       </div>
-    </el-dialog>
-    <!-- 尽调详情 -->
-    <div v-if="type == 1">
-        <div v-if="dueAllPeportList.length > 0">
+    </el-dialog> -->
+    <!-- 尽调申请及下面报告 -->
+    <div v-if="showDetail">
+      <h3>尽调申请</h3>
+      <el-divider></el-divider>
+      <el-form
+        ref="dueForm"
+        class="special-el-form"
+        :model="dueForm"
+        label-width="170px"
+      >
+        <el-form-item label="尽调名称" class="special-el-form-item">
+          <el-input
+            disabled
+            v-model="dueForm.investigateName"
+            placeholder="请输入尽调名称"
+          />
+        </el-form-item>
+        <el-form-item
+          label="尽调地点"
+          prop="investigatePlace"
+          class="special-el-form-item"
+        >
+          <el-input
+            disabled
+            maxlength="100"
+            v-model="dueForm.investigatePlace"
+          />
+        </el-form-item>
+        <el-form-item label="期望尽调开始时间" prop="startTime">
+          <el-date-picker
+            disabled
+            clearable
+            v-model="dueForm.startTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="期望尽调结束时间" prop="endTime">
+          <el-date-picker
+            disabled
+            clearable
+            v-model="dueForm.endTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="尽调资料是否齐全" prop="readiness">
+          <el-radio-group v-model="dueForm.readiness" disabled>
+            <el-radio label="1">是</el-radio>
+            <el-radio label="0">否</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="是否有第三方投资机构" prop="thirdParty">
+          <el-radio-group v-model="dueForm.thirdParty" disabled>
+            <el-radio label="1">是</el-radio>
+            <el-radio label="0">否</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="尽调费用(元)">
+          <el-input disabled v-model="dueForm.investigateCost" />
+        </el-form-item>
+
+        <el-form-item label="尽调财务数据截止日期" prop="deadDate">
+          <el-date-picker
+            disabled
+            clearable
+            v-model="dueForm.deadDate"
+            type="date"
+            value-format="yyyy-MM-dd"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="尽调人员" class="special-el-form-item">
+          <el-input
+            type="textarea"
+            rows="2"
+            disabled
+            v-model="dueForm.investigatePerson"
+          />
+        </el-form-item>
+        <el-form-item label="尽调资料" class="special-el-form-item">
+          <fileItem
+            ref="fileItems1"
+            :id="dueForm.id"
+            @getFileList="getFileList"
+          ></fileItem>
+        </el-form-item>
+        <el-form-item label="描述" class="special-el-form-item">
+          <el-input
+            disabled
+            rows="4"
+            v-model="dueForm.describe"
+            type="textarea"
+          />
+        </el-form-item>
+        <el-form-item label="备注" class="special-el-form-item">
+          <el-input
+            disabled
+            rows="4"
+            type="textarea"
+            v-model="dueForm.remark"
+          />
+        </el-form-item>
+      </el-form>
+      <h3>尽调报告</h3>
+      <el-divider></el-divider>
+      <div v-if="dueAllPeportList.length > 0">
         <el-form
           v-for="(item, index) in dueAllPeportList"
           :key="index"
@@ -466,7 +584,6 @@
             <el-input disabled v-model="item.investigatePerson" />
           </el-form-item>
           <el-form-item label="报告" class="special-el-form-item">
-            <!-- class="show_disabled" -->
             <fileItem
               ref="dueAllreportFileItems"
               :id="item.id"
@@ -505,15 +622,15 @@
 </template>
 <script>
 import {
-  getInvestigatelist,
   getInvestigateById,
   delInvestigate,
   updateInvestigate,
-  addInvestigatePerson,
+  updateStatus,
   addInvestigate,
+  addInvestigatePerson,
+  investigateListProjectPoolIdNew,
   getProjectInvestigateId,
-  dueAllPeportList,
-  updateStatus,
+  getDueAllPeportList
 } from "@/api/invest/pool";
 import projectItem from "./projectItem";
 import fileItem from "./fileItem";
@@ -531,9 +648,6 @@ export default {
       default: null,
       required: false,
     },
-    type: {
-      type: Number, //1显示最新的尽调申请及报告  2不显示 只有弹窗
-    },
   },
   dicts: ["up_way", "project_stage"],
   components: { projectItem, fileItem, selecDept, selecUser },
@@ -584,10 +698,10 @@ export default {
         //
         startTime: null,
         endTime: null,
-        address: null,
-        resource: null,
-        organization: null,
-        upToTime: null,
+        investigatePlace: null,
+        readiness: null,
+        thirdParty: null,
+        deadDate: null,
         //
         describe: null,
         remark: null,
@@ -619,16 +733,17 @@ export default {
 
         startTime: { required: true, trigger: "blur", message: "请选择" },
         endTime: { required: true, trigger: "blur", message: "请选择" },
-        address: [{ required: true, trigger: "blur", message: "请输入" }],
-        resource: [{ required: true, trigger: "change", message: "请选择" }],
-        organization: [
-          { required: true, trigger: "change", message: "请选择" },
+        investigatePlace: [
+          { required: true, trigger: "blur", message: "请输入" },
         ],
-        upToTime: { required: true, trigger: "blur", message: "请选择" },
+        readiness: [{ required: true, trigger: "change", message: "请选择" }],
+        thirdParty: [{ required: true, trigger: "change", message: "请选择" }],
+        deadDate: { required: true, trigger: "blur", message: "请选择" },
       },
       fileList: [],
       reportFileList: [],
       dueDiligenceType: "0",
+      showDetail: false,
     };
   },
   computed: {
@@ -643,40 +758,45 @@ export default {
     },
   },
   mounted() {
-    this.getList();
+    // this.getList();
   },
   methods: {
     // getProjectName(projectName) {
     //   this.projectName = projectName;
     // },
     /** 查询列表 */
-    getList() {
-      //   this.loading = true;
-      let queryParams = {
-        orderByColumn: "createTime",
-        isAsc: "desc",
-        projectPoolId: this.projectId,
-      };
-      getInvestigatelist(queryParams).then((response) => {
-        this.dueList = response.rows;
-        this.total = response.total;
-        // 如果尽调全部完成,才能显示发起尽调申请;
-        let showDueApply = response.rows.every(function (item) {
-          return item.status === "1";
-        });
-        if (showDueApply) {
-          this.$emit("changeShowDueApply", "1");
-        }
-        // this.loading = false;
-      });
+    // getList() {
+    //   //   this.loading = true;
+    //   let queryParams = {
+    //     orderByColumn: "createTime",
+    //     isAsc: "desc",
+    //     projectPoolId: this.projectId,
+    //   };
+    //   getInvestigatelist(queryParams).then((response) => {
+    //     this.dueList = response.rows;
+    //     this.total = response.total;
+    //     // 如果尽调全部完成,才能显示发起尽调申请;
+    //     let showDueApply = response.rows.every(function (item) {
+    //       return item.status === "1";
+    //     });
+    //     if (showDueApply) {
+    //       this.$emit("changeShowDueApply", "1");
+    //     }
+    //     // this.loading = false;
+    //   });
+    // },
+    // 展示最新的尽调申请及下面的尽调报告
+    handleShowDetail(id) {
+      this.showDetail = true;
+      this.getInvestigateListProjectPoolIdNew(id);
     },
     handleSelectPeople() {
       this.$refs.flowUser.handleUserVisible(true);
     },
-    // 查看尽调报告
+    // 根据尽调申请id查下面所有的报告
     handleLook(row) {
       let that = this;
-      dueAllPeportList(row.id).then((response) => {
+      getDueAllPeportList(row.id).then((response) => {
         let rows = response.rows;
         this.dueAllPeportList = rows;
         this.dueDiligenceOpen2 = true;
@@ -692,21 +812,34 @@ export default {
         }
       });
     },
-    // 完成尽调
-    handleDuePlan(row) {
+    // 根据项目ID获取最新尽调申请
+    getInvestigateListProjectPoolIdNew(id) {
       let that = this;
-      const investigateName = row.investigateName;
-      this.$modal
-        .confirm('是否确认完成"' + investigateName + '"?')
-        .then(function () {
-          return updateStatus(row.id);
-        })
-        .then(() => {
-          this.getList();
-          this.$modal.msgSuccess("操作成功");
-        })
-        .catch(() => {});
+      investigateListProjectPoolIdNew(id).then((response) => {
+        this.dueForm = response.data;
+        setTimeout(() => {
+          that.$refs.fileItems1.listFile = [];
+          that.$refs.fileItems1.handleButton();
+          that.$refs.fileItems1.getListFileBusinessId(this.dueForm.id);
+        }, 300);
+        this.handleLook(response.data);
+      });
     },
+    // 完成尽调
+    // handleDuePlan(row) {
+    //   let that = this;
+    //   const investigateName = row.investigateName;
+    //   this.$modal
+    //     .confirm('是否确认完成"' + investigateName + '"?')
+    //     .then(function () {
+    //       return updateStatus(row.id);
+    //     })
+    //     .then(() => {
+    //       this.getList();
+    //       this.$modal.msgSuccess("操作成功");
+    //     })
+    //     .catch(() => {});
+    // },
     // 修改尽调申请
     handleUpdate(row) {
       let that = this;
@@ -732,7 +865,6 @@ export default {
       this.userVisible = false;
       //   this.checkType = "";
     },
-
     // 获取fileList
     getFileList(fileList) {
       if (fileList && fileList.length > 0) {
@@ -768,48 +900,69 @@ export default {
         this.$refs.dueForm.clearValidate(["investigatePerson"]);
       }
     },
+    // 尽调处理
+    // handleSurvey(type, row, transmitForm) {
+    //   // console.log(type, row, transmitForm);
+    //   let that = this;
+    //   this.dueDiligenceType = type;
+    //   //2=修改  3=上传
+    //   if (type === "2") {
+    //     this.handleUpdate(row);
+    //   } else if (type === "3") {
+    //     this.dueForm = transmitForm;
+    //     // this.dueForm.projectName = this.projectName;
+    //     this.duePeportForm.projectInvestigateId = this.dueForm.id;
+    //     setTimeout(() => {
+    //       that.$refs.fileItems1.handleButton();
+    //       that.$refs.fileItems1.handleButton();
+    //       that.$refs.fileItems1.getListFileBusinessId(this.dueForm.id);
+    //     }, 300);
+    //     this.dueDiligenceTit1 = "上传尽调报告";
+    //     getProjectInvestigateId(this.dueForm.id).then((response) => {
+    //       if (response.data) {
+    //         this.duePeportForm = response.data;
+    //         setTimeout(() => {
+    //           that.$refs.reportFileItems.fileList = [];
+    //           that.$refs.reportFileItems.getListFileBusinessId(
+    //             this.duePeportForm.id
+    //           );
+    //         }, 300);
+    //       }
+    //       this.dueDiligenceOpen1 = true;
+    //     });
+    //   }
+    //   this.dueForm.projectName = row.projectName;
+    //   // this.dueForm.projectPoolId = row.id;
+    //   this.dueForm.projectPoolId = this.projectId;
+    // },
     // 发起尽调申请
-    handleSurvey(type, row, transmitForm) {
-      // console.log(type, row, transmitForm);
+    handleShowApplyPop(row) {
+      console.log("row=", row);
       let that = this;
-      this.dueDiligenceType = type;
-      //type 1=发起  2=修改  3=上传
-      if (type === "1") {
-        this.fileList = [];
-        this.resetDueForm();
-        setTimeout(() => {
-          that.$refs.fileItems.fileList = [];
-        }, 300);
-        this.dueDiligenceTit = "发起尽调申请";
-        this.dueDiligenceOpen = true;
-      } else if (type === "2") {
-        this.handleUpdate(row);
-      } else if (type === "3") {
-        this.dueForm = transmitForm;
-        // this.dueForm.projectName = this.projectName;
-        this.duePeportForm.projectInvestigateId = this.dueForm.id;
-        setTimeout(() => {
-          that.$refs.fileItems1.handleButton();
-          that.$refs.fileItems1.handleButton();
-          that.$refs.fileItems1.getListFileBusinessId(this.dueForm.id);
-        }, 300);
-        this.dueDiligenceTit1 = "上传尽调报告";
-        getProjectInvestigateId(this.dueForm.id).then((response) => {
-          if (response.data) {
-            this.duePeportForm = response.data;
-            setTimeout(() => {
-              that.$refs.reportFileItems.fileList = [];
-              that.$refs.reportFileItems.getListFileBusinessId(
-                this.duePeportForm.id
-              );
-            }, 300);
-          }
-          this.dueDiligenceOpen1 = true;
-        });
-      }
+      this.fileList = [];
+      this.resetDueForm();
+      setTimeout(() => {
+        that.$refs.fileItems.fileList = [];
+      }, 300);
+      this.dueDiligenceTit = "发起尽调申请";
+      this.dueDiligenceOpen = true;
+      this.dueForm.projectName = row.projectName;
+      this.dueForm.projectPoolId = row.id;
+    },
+    // 上传尽调报告-按钮
+    handleShowReportPop(row) {
+      console.log("row=", row);
+      let that = this;
+      this.dueForm = row.tProjectInvestigate;
       this.dueForm.projectName = row.projectName;
-      // this.dueForm.projectPoolId = row.id;
-      this.dueForm.projectPoolId = this.projectId;
+      this.duePeportForm.projectInvestigateId = this.dueForm.id;
+      setTimeout(() => {
+        that.$refs.fileItems1.handleButton();
+        that.$refs.fileItems1.listFile = [];
+        that.$refs.fileItems1.getListFileBusinessId(this.dueForm.id);
+      }, 300);
+      this.dueDiligenceTit1 = "上传尽调报告";
+      this.dueDiligenceOpen1 = true;
     },
     // 尽调报告-上传
     submitduePeportForm() {
@@ -820,6 +973,7 @@ export default {
           addInvestigatePerson(this.duePeportForm).then((response) => {
             this.$modal.msgSuccess("操作成功");
             this.dueDiligenceOpen1 = false;
+            this.$emit("getList");
           });
         }
       });
@@ -844,7 +998,7 @@ export default {
         projectInvestigateId: this.dueForm.id,
       };
     },
-    // 尽调申请
+    // 尽调申请-提交
     submitDueForm() {
       this.$refs["dueForm"].validate((valid) => {
         if (valid) {
@@ -857,14 +1011,14 @@ export default {
             updateInvestigate(this.dueForm).then((response) => {
               this.$modal.msgSuccess("修改成功");
               this.dueDiligenceOpen = false;
-              this.getList();
+              this.$emit("getList");
             });
           } else {
             addInvestigate(this.dueForm).then((response) => {
               this.$modal.msgSuccess("新增成功");
               this.dueDiligenceOpen = false;
-              this.$emit("changeShowDueApply", "0");
-              this.getList();
+              // this.$emit("changeShowDueApply", "0");
+              this.$emit("getList");
             });
           }
           this.getList();
@@ -888,10 +1042,10 @@ export default {
         //
         startTime: null,
         endTime: null,
-        address: null,
-        resource: null,
-        organization: null,
-        upToTime: null,
+        investigatePlace: null,
+        readiness: null,
+        thirdParty: null,
+        deadDate: null,
         //
         describe: null,
         remark: null,

+ 13 - 5
ruoyi-ui/src/views/invest/components/meetingList.vue

@@ -911,6 +911,13 @@ export default {
       } else {
         callback();
       }
+    };
+      const validateLogo1 = (rule, value, callback) => {
+      if (this.fileListTJApply.length <= 0) {
+        callback(new Error("请上传文件"));
+      } else {
+        callback();
+      }
     };
     return {
       meetingTypeDisabled: false, //会议类别
@@ -1068,7 +1075,7 @@ export default {
       fileListTJApply: [],
       rulesTJApply: {
         provision: [{ required: true, trigger: "blur", message: "请输入" }],
-        listFile: [{ required: true, validator: validateLogo }],
+        listFile: [{ required: true, validator: validateLogo1 }],
       },
     };
   },
@@ -1502,13 +1509,13 @@ export default {
             updateApproval(this.formLXApply).then((response) => {
               this.$modal.msgSuccess("修改成功");
               this.openLXApply = false;
-              this.getList();
+              this.$emit("getList");
             });
           } else {
             addApproval(this.formLXApply).then((response) => {
               this.$modal.msgSuccess("新增成功");
               this.openLXApply = false;
-              this.getList();
+              this.$emit("getList");
             });
           }
         }
@@ -1516,6 +1523,7 @@ export default {
     },
     // 投决申请-提交
     submitFormTJApply() {
+      console.log("11111")
       this.$refs["formTJApply"].validate((valid) => {
         if (valid) {
           this.formTJApply.listFile = this.fileListTJApply;
@@ -1523,13 +1531,13 @@ export default {
             updateDecision(this.formTJApply).then((response) => {
               this.$modal.msgSuccess("修改成功");
               this.openTJApply = false;
-              this.getList();
+              this.$emit("getList");
             });
           } else {
             addDecision(this.formTJApply).then((response) => {
               this.$modal.msgSuccess("新增成功");
               this.openTJApply = false;
-              this.getList();
+              this.$emit("getList");
             });
           }
         }

+ 3 - 0
ruoyi-ui/src/views/invest/components/poolForm.vue

@@ -952,6 +952,9 @@ export default {
   position: relative;
   cursor: not-allowed;
 }
+.poolDetail  ::placeholder{
+  color:#fff;
+}
 .poolDetail::after {
   content: "";
   display: block;

+ 125 - 318
ruoyi-ui/src/views/invest/components/projectList.vue

@@ -368,7 +368,12 @@
         prop="tProjectChannel.channelName"
       >
         <template slot-scope="scope">
-          <div v-if="scope.row.tProjectChannel && scope.row.tProjectChannel.channelName" :title="scope.row.tProjectChannel.channelName">
+          <div
+            v-if="
+              scope.row.tProjectChannel && scope.row.tProjectChannel.channelName
+            "
+            :title="scope.row.tProjectChannel.channelName"
+          >
             {{ scope.row.tProjectChannel.channelName }}
           </div>
         </template>
@@ -513,86 +518,9 @@
       @pagination="getList"
     />
     <!-- 设置项目状态对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-        <el-form-item label="项目阶段" prop="projectStage">
-          <el-select
-            v-model="form.projectStage"
-            ref="selectLable"
-            placeholder="请选择项目阶段"
-          >
-            <el-option
-              @click.native="handleProjectSelect(index, dict)"
-              v-for="(dict, index) in dict.type.project_stage"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="项目状态" prop="projectState">
-          <el-select
-            ref="selectState"
-            v-model="form.projectState"
-            placeholder="请选择项目状态"
-          >
-            <el-option
-              @click.native="handleProjectStateSelect(dict)"
-              v-for="dict in project_state"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item
-          v-if="form.projectState == 'e'"
-          label="立项通过日期"
-          prop="projectDate"
-          :rules="[
-            { required: verifyProjectDate, trigger: 'blur', message: '请选择' },
-          ]"
-        >
-          <el-date-picker
-            clearable
-            v-model="form.projectDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择立项通过日期"
-          >
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item
-          v-if="form.projectState == 'i'"
-          label="投决通过日期"
-          prop="decisionDate"
-          :rules="[
-            {
-              required: verifyDecisionDate,
-              trigger: 'blur',
-              message: '请选择',
-            },
-          ]"
-        >
-          <el-date-picker
-            clearable
-            v-model="form.decisionDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择投决通过日期"
-          >
-          </el-date-picker>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm" v-preventReClick
-          >确 定</el-button
-        >
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
+    <businessUpdate @getList="getList" ref="businessUpdate"></businessUpdate>
     <!-- 上传评估意见对话框 -->
-    <el-dialog
+    <!-- <el-dialog
       :title="titleAssess"
       :visible.sync="openAssess"
       width="800px"
@@ -621,40 +549,37 @@
         >
         <el-button @click="openAssess = false">取 消</el-button>
       </div>
-    </el-dialog>
+    </el-dialog> -->
     <!-- 尽调组件 -->
-    <dueDiligenceList
-      :type="2"
+    <!-- <dueDiligenceList
       ref="dueDiligenceLists"
       :projectId="projectId"
       :projectName="form.projectName"
-    ></dueDiligenceList>
+    ></dueDiligenceList> -->
     <!-- 跟进记录组件 -->
-    <followList
+    <!-- <followList
       :type="'3'"
       ref="followList"
       :projectId="projectId"
-    ></followList>
+    ></followList> -->
     <!-- 会议管理组件 -->
-    <meetingList
+    <!-- <meetingList
       :type="'3'"
       ref="meetingList"
       :projectId="projectId"
-    ></meetingList>
+    ></meetingList> -->
   </div>
 </template>
 
 <script>
-import {
-  listPool,
-  delPool,
-  editStage
-} from "@/api/invest/pool";
+import { listPool, delPool, editStage } from "@/api/invest/pool";
 import { selectByFlowKey } from "@/api/flowable/definition";
 import { listChannel } from "@/api/invest/channel";
 import dueDiligenceList from "./dueDiligenceList";
 import followList from "./followList";
 import meetingList from "./meetingList";
+import businessUpdate from "./businessUpdate";
+
 import { mapGetters } from "vuex";
 export default {
   props: {
@@ -670,28 +595,15 @@ export default {
       type: String,
     },
   },
-  dicts: [
-    "project_group",
-    "project_stage",
-    "project_state",
-    "CUSTOMER_TRADE",
-  ],
+  dicts: ["project_group", "project_stage", "project_state", "CUSTOMER_TRADE"],
   components: {
     dueDiligenceList,
     followList,
     meetingList,
+    businessUpdate,
   },
   data() {
     return {
-      project_state: [],
-      rules: {
-        projectStage: [
-          { required: true, trigger: "change", message: "请选择项目阶段" },
-        ],
-        projectState: [
-          { required: true, trigger: "change", message: "请选择项目状态" },
-        ],
-      },
       // 遮罩层
       loading: false,
       // 选中id数组
@@ -709,10 +621,6 @@ export default {
       total: 0,
       // 项目池表格数据
       poolList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
       // 查询参数
       queryParams: {
         id: null,
@@ -744,75 +652,45 @@ export default {
         isAsc: "desc",
         createTime: null,
       },
-      form: {
-        id: null,
-        projectStage: "",
-        projectState: "",
-        stageName: "",
-        stateName: "",
-      },
       channelList: [],
-      // 尽职调查表单
-      surveyForm: {
-        deploymentId: null,
-        id: null,
-      },
 
-      isInitiator: false, //是否是发起人
-      needInitiate: false, //需要发起申请
-      needUpload: false, //需要上传
+      // isInitiator: false, //是否是发起人
+      // needInitiate: false, //需要发起申请
+      // needUpload: false, //需要上传
 
-      dueForm: {
-        id: null,
-        investigateName: null,
-        investigateCode: null,
-        projectPoolId: null,
-        investigatePerson: null,
-        investigatePersonId: null,
-        investigateCost: null,
-        describe: null,
-        remark: null,
-        delFlag: null,
-        createBy: null,
-        createTime: null,
-        updateBy: null,
-        updateTime: null,
-        projectPoolId: null,
-        projectName: null,
-      },
-      verifyProjectDate: false,
-      verifyDecisionDate: false,
+      // dueForm: {
+      //   id: null,
+      //   investigateName: null,
+      //   investigateCode: null,
+      //   projectPoolId: null,
+      //   investigatePerson: null,
+      //   investigatePersonId: null,
+      //   investigateCost: null,
+      //   describe: null,
+      //   remark: null,
+      //   delFlag: null,
+      //   createBy: null,
+      //   createTime: null,
+      //   updateBy: null,
+      //   updateTime: null,
+      //   projectPoolId: null,
+      //   projectName: null,
+      // },
       // 上传评估意见
-      formAssess: {
-        id: null,
-        assess: null,
-        projectPoolId: null,
-      },
-      openAssess: false,
-      titleAssess: "",
-      rulesAssess: {
-        assess: [{ required: true, trigger: "blur", message: "请输入" }],
-      },
+      // formAssess: {
+      //   id: null,
+      //   assess: null,
+      //   projectPoolId: null,
+      // },
+      // openAssess: false,
+      // titleAssess: "",
+      // rulesAssess: {
+      //   assess: [{ required: true, trigger: "blur", message: "请输入" }],
+      // },
     };
   },
   computed: {
-    ...mapGetters(["user","projectState"]),
-  },
-  watch: {
-    "form.projectState": function (newValue, oldValue) {
-      // 项目立项通过
-      if (newValue == "e") {
-        this.verifyProjectDate = true;
-      } else {
-        this.verifyProjectDate = false;
-      }
-      // 项目投决通过
-      if (newValue == "i") {
-        this.verifyDecisionDate = true;
-      } else {
-        this.verifyDecisionDate = false;
-      }
-    },
+    ...mapGetters(["user"]),
   },
   created() {},
   mounted() {
@@ -820,12 +698,7 @@ export default {
     if (this.stage != "0") {
       this.queryParams.projectStage = this.stage;
     }
-    // 背调
-    if (this.stage == "4") {
-      selectByFlowKey("flow_4aimqsfe").then((response) => {
-        this.surveyForm = response.data;
-      });
-    }
+
     if (this.projectId) {
       this.queryParams.id = this.projectId;
     }
@@ -847,23 +720,6 @@ export default {
     this.getList();
   },
   methods: {
-    // 下拉框改变
-    handleProjectSelect(index, dict) {
-      this.form.projectState = null;
-      this.project_state = this.projectState[index];
-      // 给个默认值
-      this.form.projectState = this.project_state[0].dictValue;
-      this.form.stateName = this.project_state[0].dictLabel;
-      if (dict && dict.label) {
-        this.form.stageName = dict.label;
-      }
-    },
-    handleProjectStateSelect(dict) {
-      if (dict && dict.dictLabel) {
-        this.form.stateName = dict.dictLabel;
-      }
-    },
-
     /** 查询项目池列表 */
     getList() {
       this.loading = true;
@@ -893,7 +749,6 @@ export default {
       this.multiple = !selection.length;
       this.selectRowList = selection;
     },
-
     clickRow(row) {
       this.$refs.dataTable.toggleRowSelection(row);
     },
@@ -901,12 +756,6 @@ export default {
     handleAdd() {
       this.$router.push({ path: "/invest/pool/add" });
     },
-    // 上传评估意见
-    handleAssessPop(row) {
-      this.resetAssess();
-      this.openAssess = true;
-      this.titleAssess = "上传评估意见";
-    },
     handleSelectData(type, otherData) {
       // type 1=修改 2=详情 3=设置项目阶段 4=终止 5=上传评估意见
       // 6=立项申请 7=发起立项会议 8=上传打分表(立项)
@@ -935,8 +784,16 @@ export default {
               // 详情
               this.handleDetail(row);
             } else if (type === 3) {
-              // 设置项目阶段
-              this.handleBusinessUpdate(row);
+              if (row.projectState !== "1") {
+                // 设置项目阶段
+                this.$refs.businessUpdate.handleBusinessUpdate(row);
+              } else {
+                this.$message({
+                  message: "暂存时不能修改项目阶段",
+                  duration: 1200,
+                  type: "warning",
+                });
+              }
             } else if (type === 5) {
               // 上传评估意见
               this.handleAssessPop(row);
@@ -958,10 +815,10 @@ export default {
             } else if (type === 11) {
               // 投决申请
               this.$refs.meetingList.showTJApplyPop(row);
-            }else if (type === 12) {
+            } else if (type === 12) {
               // 发起投决会议
               this.handleMeeting(row, otherData);
-            }else if (type === 13) {
+            } else if (type === 13) {
               // 投决-去打分
               this.$refs.meetingList.handleMark(row, "3", false);
             }
@@ -996,24 +853,42 @@ export default {
       const id = row.id;
       this.$router.push({ path: "/invest/pool/add", query: { id: id } });
     },
-    // 修改业务节点
-    handleBusinessUpdate(row) {
-      this.reset();
-      let index = parseInt(row.projectStage) - 1;
-      this.handleProjectSelect(index, row);
-      this.form = row;
-      this.open = true;
-      this.title = "设置项目阶段";
-      setTimeout(() => {
-        this.form.stageName = this.$refs.selectLable.selected.label;
-        this.form.stateName = this.$refs.selectState.selected.label;
-      }, 300);
+    /**终止按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      const idsName = row.projectName ? row.projectName : this.idsName;
+      this.$modal
+        .confirm('是否终止"' + idsName + '"项目?')
+        .then(function () {
+          return delPool(ids);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("已终止");
+        })
+        .catch(() => {});
     },
-    // 发起会议
-    handleMeeting(row, meetingType) {
-      this.$store.commit("SET_PROJECTITEMMESSAGE", row);
-      this.$refs.meetingList.handleAdd(row.id, meetingType);
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download(
+        "invest/pool/export",
+        {
+          ...this.queryParams,
+        },
+        `pool_${new Date().getTime()}.xlsx`
+      );
     },
+    // // 上传评估意见
+    // handleAssessPop(row) {
+    //   this.resetAssess();
+    //   this.openAssess = true;
+    //   this.titleAssess = "上传评估意见";
+    // },
+    // // 发起会议
+    // handleMeeting(row, meetingType) {
+    //   this.$store.commit("SET_PROJECTITEMMESSAGE", row);
+    //   this.$refs.meetingList.handleAdd(row.id, meetingType);
+    // },
     // getButtonItem(row) {
     //   let that = this;
     //   this.needUpload = false;
@@ -1052,100 +927,32 @@ export default {
     //     }
     //   });
     // },
-    // 发起尽调申请
-    handleDropdown(type, row) {
-      const id = row.id || this.ids;
-      // this.$router.push({
-      //   path: "/invest/pool/detail",
-      //   query: { id: id, activeName: "4" },
-      // });
-      // this.$refs.dueDiligenceLists.getProjectName(row.projectName);
-      this.$refs.dueDiligenceLists.handleSurvey(type, row, this.dueForm);
-    },
-    // 上传跟进记录
-    handlefollowRecord(row) {
-      this.$store.commit("SET_PROJECTITEMMESSAGE", row);
-      // this.$router.push({
-      //   path: "/resource/record",
-      //   query: { id: row.id, type: "1" },
-      // });
-      this.$refs.followList.handleAdd(row.id);
-    },
-    // 设置项目状态表单重置
-    reset() {
-      this.form = {
-        id: null,
-        projectStage: null,
-        projectState: null,
-        stageName: null,
-        stateName: null,
-      };
-      this.resetForm("form");
-    },
-    // 设置上传评估意见表单重置
-    resetAssess() {
-      this.formAssess = {
-        id: null,
-        assess: null,
-        projectPoolId: this.selectRowList[0].id,
-      };
-      this.resetForm("formAssess");
-    },
-    /**终止按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids;
-      const idsName = row.projectName ? row.projectName : this.idsName;
-      this.$modal
-        .confirm('是否终止"' + idsName + '"项目?')
-        .then(function () {
-          return delPool(ids);
-        })
-        .then(() => {
-          this.getList();
-          this.$modal.msgSuccess("已终止");
-        })
-        .catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download(
-        "invest/pool/export",
-        {
-          ...this.queryParams,
-        },
-        `pool_${new Date().getTime()}.xlsx`
-      );
-    },
-    /** 修改项目状态提交按钮 */
-    submitForm() {
-      let that = this;
-      this.$refs["form"].validate((valid) => {
-        if (valid) {
-          editStage(this.form).then((response) => {
-            that.$modal.msgSuccess("修改成功");
-            that.open = false;
-            that.getList();
-          });
-        }
-      });
-    },
-    // 上传评估意见提交
-    submitAssessForm() {
-      let that = this;
-      this.$refs["formAssess"].validate((valid) => {
-        if (valid) {
-          // editStage(this.formAssess).then((response) => {
-          //   that.$modal.msgSuccess("提交成功");
-          //   that.openAssess = false;
-          // });
-        }
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
+    // // 上传跟进记录
+    // handlefollowRecord(row) {
+    //   this.$store.commit("SET_PROJECTITEMMESSAGE", row);
+    //   this.$refs.followList.handleAdd(row.id);
+    // },
+    // // 设置上传评估意见表单重置
+    // resetAssess() {
+    //   this.formAssess = {
+    //     id: null,
+    //     assess: null,
+    //     projectPoolId: this.selectRowList[0].id,
+    //   };
+    //   this.resetForm("formAssess");
+    // },
+    // // 上传评估意见提交
+    // submitAssessForm() {
+    //   let that = this;
+    //   this.$refs["formAssess"].validate((valid) => {
+    //     if (valid) {
+    //       // editStage(this.formAssess).then((response) => {
+    //       //   that.$modal.msgSuccess("提交成功");
+    //       //   that.openAssess = false;
+    //       // });
+    //     }
+    //   });
+    // },
   },
 };
 </script>

+ 226 - 23
ruoyi-ui/src/views/invest/pool/detail.vue

@@ -131,7 +131,71 @@
         </div>
         <div v-if="activeName === '3'">
           <el-tabs type="border-card">
-            <el-tab-pane label="项目立项申请表">项目立项申请表</el-tab-pane>
+            <el-tab-pane label="项目立项申请表">
+              <el-form
+                v-if="formLXApply.id"
+                class="special-el-form public-padded-t-20"
+                ref="formLXApply"
+                :model="formLXApply"
+                label-width="120px"
+              >
+                <el-form-item
+                  label="项目概况"
+                  prop="projectOverview"
+                  class="special-el-form-item"
+                >
+                  <el-input
+                    rows="4"
+                    type="textarea"
+                    maxlength="200"
+                    v-model="formLXApply.projectOverview"
+                    disabled
+                  />
+                </el-form-item>
+                <el-form-item
+                  label="项目亮点"
+                  prop="projectSparkle"
+                  class="special-el-form-item"
+                >
+                  <el-input
+                    rows="4"
+                    type="textarea"
+                    maxlength="200"
+                    v-model="formLXApply.projectSparkle"
+                    disabled
+                  />
+                </el-form-item>
+                <el-form-item
+                  label="立项资料"
+                  prop="listFile"
+                  class="special-el-form-item"
+                >
+                  <fileItem
+                    ref="fileItemLXApply"
+                    :id="formLXApply.id"
+                  ></fileItem>
+                </el-form-item>
+                <el-form-item
+                  label="参与人"
+                  prop="participants"
+                  class="special-el-form-item"
+                >
+                  <el-input
+                    rows="4"
+                    type="textarea"
+                    v-model="formLXApply.participants"
+                    disabled
+                  />
+                </el-form-item>
+              </el-form>
+              <div
+                v-else
+                class="public-flex-center public-padded-t-20"
+                style="color: #909399"
+              >
+                暂无数据
+              </div>
+            </el-tab-pane>
             <el-tab-pane label="项目立项评估评审汇总表">
               <tableForm
                 :formType="2"
@@ -145,7 +209,6 @@
         <div v-if="activeName === '4'">
           <!-- 尽职调查 -->
           <dueDiligenceList
-            :type="1"
             ref="dueDiligenceLists"
             :projectName="detailInfo.projectName"
             :projectId="id"
@@ -154,7 +217,58 @@
         </div>
         <div v-if="activeName === '5'">
           <el-tabs type="border-card">
-            <el-tab-pane label="项目投决申请表">项目投决申请表</el-tab-pane>
+            <el-tab-pane label="项目投决申请表">
+              <el-form
+                v-if="formTJApply.id"
+                class="special-el-form public-padded-t-20"
+                ref="formTJApply"
+                :model="formTJApply"
+                label-width="120px"
+              >
+                <el-form-item
+                  label="股权/其他合作商务条款"
+                  prop="provision"
+                  class="special-el-form-item"
+                >
+                  <el-input
+                    rows="4"
+                    type="textarea"
+                    maxlength="200"
+                    v-model="formTJApply.provision"
+                    disabled
+                  />
+                </el-form-item>
+                <el-form-item
+                  label="投决资料"
+                  prop="listFile"
+                  class="special-el-form-item"
+                >
+                  <fileItem
+                    ref="fileItemTJApply"
+                    :id="formTJApply.id"
+                  ></fileItem>
+                </el-form-item>
+                <el-form-item
+                  label="参与人"
+                  prop="participants"
+                  class="special-el-form-item"
+                >
+                  <el-input
+                    rows="4"
+                    type="textarea"
+                    v-model="formTJApply.participants"
+                    disabled
+                  />
+                </el-form-item>
+              </el-form>
+              <div
+                v-else
+                class="public-flex-center public-padded-t-20"
+                style="color: #909399"
+              >
+                暂无数据
+              </div>
+            </el-tab-pane>
             <el-tab-pane label="项目投决评估评审汇总表">
               <tableForm
                 :formType="4"
@@ -183,16 +297,26 @@
           ></contractList>
         </div>
         <div v-if="activeName === '9'">
-          考察评估评审内容---样式类似这样
-          <el-timeline :reverse="false" class="public-padded-20">
+          <el-timeline
+            :reverse="false"
+            class="public-padded-20"
+            v-if="investReviewTimeList.length > 0"
+          >
             <el-timeline-item
-              v-for="(activity, index) in activeTimeList"
+              v-for="(item, index) in investReviewTimeList"
               :key="index"
-              :timestamp="activity.createTime"
+              :timestamp="item.createTime + ' 发表评估考察意见'"
             >
-              {{ activity.createBy }}:{{ activity.stageName }}
+              {{ item.reviewPerson }}:{{ item.context }}
             </el-timeline-item>
           </el-timeline>
+          <div
+            v-else
+            class="public-flex-center public-padded-t-20"
+            style="color: #909399"
+          >
+            暂无数据
+          </div>
           <!-- 附件 -->
           <!-- <listAllfile :projectId="id"></listAllfile> -->
         </div>
@@ -210,13 +334,20 @@ import projectList from "../components/projectList";
 import tableForm from "../components/tableForm";
 import listAllfile from "../components/listAllfile";
 import dueDiligenceList from "../components/dueDiligenceList";
+import fileItem from "../components/fileItem";
 
 import {
   getPool,
   listProjectPoolId,
   getInvestigatelist,
+  getInvestReviewList,
 } from "@/api/invest/pool";
-import { listMeeting } from "@/api/invest/meeting";
+import {
+  listMeeting,
+  listProjectPoolIdNewApproval,
+  listProjectPoolIdNewDecision,
+} from "@/api/invest/meeting";
+
 import { mapGetters } from "vuex";
 
 export default {
@@ -231,16 +362,20 @@ export default {
     tableForm,
     listAllfile,
     dueDiligenceList,
+    fileItem,
   },
   data() {
     return {
       showDueApply: false,
       meetingId: "0",
-      activeTimeList: [],
+      activeTimeList: [], //活动
+      investReviewTimeList: [], //考察评估
       type: "2",
       id: "",
       active: 0,
-      detailInfo: {},
+      detailInfo: {
+        projectName: "",
+      },
       activeName: "0",
       activities: [
         {
@@ -256,6 +391,26 @@ export default {
           timestamp: "2018-04-11",
         },
       ],
+
+      formLXApply: {
+        id: null,
+        projectPoolId: null,
+        projectName: null,
+        projectOverview: null,
+        projectSparkle: null,
+        listFile: null,
+        participants: null,
+        participantsId: null,
+      },
+      formTJApply: {
+        id: null,
+        projectPoolId: null,
+        projectName: null,
+        provision: null,
+        listFile: null,
+        participants: null,
+        participantsId: null,
+      },
     };
   },
   computed: {
@@ -297,17 +452,13 @@ export default {
       });
     },
     // 切换tab并且打开新增
-    handleTab(activeName, name) {
-      this.activeName = activeName.toString();
-      this.$store.commit("SET_PROJECTITEMMESSAGE", this.detailInfo);
-      setTimeout(() => {
-        if (activeName === "4") {
-          this.$refs.dueDiligenceLists.handleSurvey("1", this.detailInfo);
-        } else {
-          this.$refs[name].handleAdd(this.id);
-        }
-      }, 300);
-    },
+    // handleTab(activeName, name) {
+    //   this.activeName = activeName.toString();
+    //   this.$store.commit("SET_PROJECTITEMMESSAGE", this.detailInfo);
+    //   setTimeout(() => {
+    //     this.$refs[name].handleAdd(this.id);
+    //   }, 300);
+    // },
     getMettingId(type) {
       let queryParams = {
         pageNum: 1,
@@ -336,17 +487,63 @@ export default {
       });
     },
     handleClick(tab, event) {
+      let that = this;
       if (this.activeName === "0") {
+        // 活动
         this.getListProjectPoolId();
       } else if (this.activeName === "1") {
+        // 项目报备
         this.getDetail();
+      } else if (this.activeName === "9") {
+        // 考察评估
+        this.getListInvestReviewList();
       } else if (this.activeName === "3") {
+        // 项目立项
         this.getMettingId("LX");
+        this.getlistProjectPoolIdNewApproval();
       } else if (this.activeName === "4") {
+        // 尽职背调
+        setTimeout(() => {
+          this.$refs.dueDiligenceLists.handleShowDetail(this.id);
+        }, 300);
       } else if (this.activeName === "5") {
+        // 项目投决
         this.getMettingId("TJ");
+        this.getlistProjectPoolIdNewDecision();
       }
     },
+    // 获取立项申请
+    getlistProjectPoolIdNewApproval() {
+      let that = this;
+      listProjectPoolIdNewApproval(this.id).then((response) => {
+        if (response && response.data) {
+          that.formLXApply = response.data;
+          setTimeout(() => {
+            that.$refs.fileItemLXApply.handleButton();
+            that.$refs.fileItemLXApply.fileList = [];
+            that.$refs.fileItemLXApply.getListFileBusinessId(
+              that.formLXApply.id
+            );
+          }, 300);
+        }
+      });
+    },
+    // 获取投决申请
+    getlistProjectPoolIdNewDecision() {
+      let that = this;
+      listProjectPoolIdNewDecision(this.id).then((response) => {
+        if (response && response.data) {
+          that.formTJApply = response.data;
+          setTimeout(() => {
+            that.$refs.fileItemTJApply.handleButton();
+            that.$refs.fileItemTJApply.fileList = [];
+            that.$refs.fileItemTJApply.getListFileBusinessId(
+              that.formTJApply.id
+            );
+          }, 300);
+        }
+      });
+    },
     getDetail() {
       getPool(this.id).then((response) => {
         this.detailInfo = response.data;
@@ -359,12 +556,18 @@ export default {
       });
     },
 
-    // 根据项目ID获取项目流转记录
+    // 根据项目ID获取项目流转记录---活动
     getListProjectPoolId() {
       listProjectPoolId(this.id).then((response) => {
         this.activeTimeList = response.data;
       });
     },
+    // 查询评审记录列表
+    getListInvestReviewList() {
+      getInvestReviewList(this.id).then((response) => {
+        this.investReviewTimeList = response.rows;
+      });
+    },
   },
 };
 </script>

+ 11 - 187
ruoyi-ui/src/views/invest/pool/index2.vue

@@ -91,7 +91,7 @@
           icon="el-icon-edit"
           @click="handleSelectData(5)"
           v-hasPermi="['invest:pool:assess']"
-          >上传评估意见</el-button
+          >上传评估考察意见</el-button
         >
       </el-col>
       <el-col :span="1.5">
@@ -290,85 +290,6 @@
       :limit.sync="queryParams.pageSize"
       @pagination="getList"
     />
-    <!-- 设置项目状态对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-        <el-form-item label="项目阶段" prop="projectStage">
-          <el-select
-            v-model="form.projectStage"
-            ref="selectLable"
-            placeholder="请选择项目阶段"
-          >
-            <el-option
-              @click.native="handleProjectSelect(index, dict)"
-              v-for="(dict, index) in dict.type.project_stage"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="项目状态" prop="projectState">
-          <el-select
-            ref="selectState"
-            v-model="form.projectState"
-            placeholder="请选择项目状态"
-          >
-            <el-option
-              @click.native="handleProjectStateSelect(dict)"
-              v-for="dict in project_state"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item
-          v-if="form.projectState == 'e'"
-          label="立项通过日期"
-          prop="projectDate"
-          :rules="[
-            { required: verifyProjectDate, trigger: 'blur', message: '请选择' },
-          ]"
-        >
-          <el-date-picker
-            clearable
-            v-model="form.projectDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择立项通过日期"
-          >
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item
-          v-if="form.projectState == 'i'"
-          label="投决通过日期"
-          prop="decisionDate"
-          :rules="[
-            {
-              required: verifyDecisionDate,
-              trigger: 'blur',
-              message: '请选择',
-            },
-          ]"
-        >
-          <el-date-picker
-            clearable
-            v-model="form.decisionDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择投决通过日期"
-          >
-          </el-date-picker>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm" v-preventReClick
-          >确 定</el-button
-        >
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
     <!-- 上传评估意见对话框 -->
     <el-dialog
       :title="titleAssess"
@@ -400,33 +321,22 @@
         <el-button @click="openAssess = false">取 消</el-button>
       </div>
     </el-dialog>
+    <!-- 设置项目状态对话框 -->
+    <businessUpdate @getList="getList" ref="businessUpdate"></businessUpdate>
   </div>
 </template>
 
 <script>
-import {
-  listReviewList,
-  delPool,
-  editStage,
-  addInvestReview,
-} from "@/api/invest/pool";
+import { listReviewList, delPool, addInvestReview } from "@/api/invest/pool";
 import { listChannel } from "@/api/invest/channel";
 import { mapGetters } from "vuex";
+import businessUpdate from "../components/businessUpdate";
 export default {
   name: "Pool2",
   dicts: ["project_group", "project_stage", "project_state", "CUSTOMER_TRADE"],
-  components: {},
+  components: {businessUpdate},
   data() {
     return {
-      project_state: [],
-      rules: {
-        projectStage: [
-          { required: true, trigger: "change", message: "请选择项目阶段" },
-        ],
-        projectState: [
-          { required: true, trigger: "change", message: "请选择项目状态" },
-        ],
-      },
       // 遮罩层
       loading: false,
       // 选中id数组
@@ -444,10 +354,6 @@ export default {
       total: 0,
       // 项目池表格数据
       poolList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
       // 查询参数
       queryParams: {
         id: null,
@@ -479,16 +385,7 @@ export default {
         isAsc: "desc",
         createTime: null,
       },
-      form: {
-        id: null,
-        projectStage: "",
-        projectState: "",
-        stageName: "",
-        stateName: "",
-      },
       channelList: [],
-      verifyProjectDate: false,
-      verifyDecisionDate: false,
       // 上传评估意见
       formAssess: {
         id: null,
@@ -503,23 +400,7 @@ export default {
     };
   },
   computed: {
-    ...mapGetters(["user", "projectState"]),
-  },
-  watch: {
-    "form.projectState": function (newValue, oldValue) {
-      // 项目立项通过
-      if (newValue == "e") {
-        this.verifyProjectDate = true;
-      } else {
-        this.verifyProjectDate = false;
-      }
-      // 项目投决通过
-      if (newValue == "i") {
-        this.verifyDecisionDate = true;
-      } else {
-        this.verifyDecisionDate = false;
-      }
-    },
+    ...mapGetters(["user"]),
   },
   created() {},
   mounted() {
@@ -533,23 +414,6 @@ export default {
     });
   },
   methods: {
-    // 下拉框改变
-    handleProjectSelect(index, dict) {
-      this.form.projectState = null;
-      this.project_state = this.projectState[index];
-      // 给个默认值
-      this.form.projectState = this.project_state[0].dictValue;
-      this.form.stateName = this.project_state[0].dictLabel;
-      if (dict && dict.label) {
-        this.form.stageName = dict.label;
-      }
-    },
-    handleProjectStateSelect(dict) {
-      if (dict && dict.dictLabel) {
-        this.form.stateName = dict.dictLabel;
-      }
-    },
-
     /** 查询项目池列表 */
     getList() {
       this.loading = true;
@@ -614,12 +478,12 @@ export default {
               this.handleDetail(row);
             } else if (type === 3) {
               // 设置项目阶段
-              this.handleBusinessUpdate(row);
+              this.$refs.businessUpdate.handleBusinessUpdate(row);
               //
             } else if (type === 5) {
               if (row.tProjectReview && row.tProjectReview.context) {
                 this.$message({
-                  message: "您已上传,无需重复操作",
+                  message: "您已上传评估考察意见,无需重复操作",
                   duration: 1200,
                   type: "warning",
                 });
@@ -654,30 +518,7 @@ export default {
       const id = row.id || this.ids;
       this.$router.push({ path: "/invest/pool/detail", query: { id: id } });
     },
-    // 修改业务节点
-    handleBusinessUpdate(row) {
-      this.reset();
-      let index = parseInt(row.projectStage) - 1;
-      this.handleProjectSelect(index, row);
-      this.form = row;
-      this.open = true;
-      this.title = "设置项目阶段";
-      setTimeout(() => {
-        this.form.stageName = this.$refs.selectLable.selected.label;
-        this.form.stateName = this.$refs.selectState.selected.label;
-      }, 300);
-    },
-    // 设置项目状态表单重置
-    reset() {
-      this.form = {
-        id: null,
-        projectStage: null,
-        projectState: null,
-        stageName: null,
-        stateName: null,
-      };
-      this.resetForm("form");
-    },
+
     // 设置上传评估意见表单重置
     resetAssess() {
       this.formAssess = {
@@ -712,19 +553,7 @@ export default {
         `pool_${new Date().getTime()}.xlsx`
       );
     },
-    /** 修改项目状态提交按钮 */
-    submitForm() {
-      let that = this;
-      this.$refs["form"].validate((valid) => {
-        if (valid) {
-          editStage(this.form).then((response) => {
-            that.$modal.msgSuccess("修改成功");
-            that.open = false;
-            that.getList();
-          });
-        }
-      });
-    },
+
     // 上传评估意见提交
     submitAssessForm() {
       let that = this;
@@ -738,11 +567,6 @@ export default {
         }
       });
     },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
   },
 };
 </script>

+ 33 - 186
ruoyi-ui/src/views/invest/pool/index3.vue

@@ -245,7 +245,12 @@
         prop="tProjectChannel.channelName"
       >
         <template slot-scope="scope">
-          <div v-if="scope.row.tProjectChannel && scope.row.tProjectChannel.channelName" :title="scope.row.tProjectChannel.channelName">
+          <div
+            v-if="
+              scope.row.tProjectChannel && scope.row.tProjectChannel.channelName
+            "
+            :title="scope.row.tProjectChannel.channelName"
+          >
             {{ scope.row.tProjectChannel.channelName }}
           </div>
         </template>
@@ -309,117 +314,32 @@
       :limit.sync="queryParams.pageSize"
       @pagination="getList"
     />
-    <!-- 设置项目状态对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-        <el-form-item label="项目阶段" prop="projectStage">
-          <el-select
-            v-model="form.projectStage"
-            ref="selectLable"
-            placeholder="请选择项目阶段"
-          >
-            <el-option
-              @click.native="handleProjectSelect(index, dict)"
-              v-for="(dict, index) in dict.type.project_stage"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="项目状态" prop="projectState">
-          <el-select
-            ref="selectState"
-            v-model="form.projectState"
-            placeholder="请选择项目状态"
-          >
-            <el-option
-              @click.native="handleProjectStateSelect(dict)"
-              v-for="dict in project_state"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item
-          v-if="form.projectState == 'e'"
-          label="立项通过日期"
-          prop="projectDate"
-          :rules="[
-            { required: verifyProjectDate, trigger: 'blur', message: '请选择' },
-          ]"
-        >
-          <el-date-picker
-            clearable
-            v-model="form.projectDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择立项通过日期"
-          >
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item
-          v-if="form.projectState == 'i'"
-          label="投决通过日期"
-          prop="decisionDate"
-          :rules="[
-            {
-              required: verifyDecisionDate,
-              trigger: 'blur',
-              message: '请选择',
-            },
-          ]"
-        >
-          <el-date-picker
-            clearable
-            v-model="form.decisionDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择投决通过日期"
-          >
-          </el-date-picker>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm" v-preventReClick
-          >确 定</el-button
-        >
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
     <!-- 会议管理组件 -->
     <meetingList
       :type="'3'"
       ref="meetingList"
       :projectId="projectId"
+      @getList="getList"
     ></meetingList>
+    <!-- 设置项目状态对话框 -->
+    <businessUpdate @getList="getList" ref="businessUpdate"></businessUpdate>
   </div>
 </template>
 
 <script>
 import { listApprovalList, delPool, editStage } from "@/api/invest/pool";
-import { selectByFlowKey } from "@/api/flowable/definition";
 import { listChannel } from "@/api/invest/channel";
 import meetingList from "../components/meetingList";
+import businessUpdate from "../components/businessUpdate";
 import { mapGetters } from "vuex";
 export default {
   name: "Pool3",
   dicts: ["project_group", "project_stage", "project_state", "CUSTOMER_TRADE"],
   components: {
-    meetingList,
+    meetingList,businessUpdate
   },
   data() {
     return {
-      project_state: [],
-      rules: {
-        projectStage: [
-          { required: true, trigger: "change", message: "请选择项目阶段" },
-        ],
-        projectState: [
-          { required: true, trigger: "change", message: "请选择项目状态" },
-        ],
-      },
       // 遮罩层
       loading: false,
 
@@ -438,10 +358,6 @@ export default {
       total: 0,
       // 项目池表格数据
       poolList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
       // 查询参数
       queryParams: {
         id: null,
@@ -473,38 +389,13 @@ export default {
         isAsc: "desc",
         createTime: null,
       },
-      form: {
-        id: null,
-        projectStage: "",
-        projectState: "",
-        stageName: "",
-        stateName: "",
-      },
       channelList: [],
 
-      verifyProjectDate: false,
-      verifyDecisionDate: false,
       projectId: "",
     };
   },
   computed: {
-    ...mapGetters(["user","projectState"]),
-  },
-  watch: {
-    "form.projectState": function (newValue, oldValue) {
-      // 项目立项通过
-      if (newValue == "e") {
-        this.verifyProjectDate = true;
-      } else {
-        this.verifyProjectDate = false;
-      }
-      // 项目投决通过
-      if (newValue == "i") {
-        this.verifyDecisionDate = true;
-      } else {
-        this.verifyDecisionDate = false;
-      }
-    },
+    ...mapGetters(["user"]),
   },
   created() {},
   mounted() {
@@ -518,23 +409,6 @@ export default {
     });
   },
   methods: {
-    // 下拉框改变
-    handleProjectSelect(index, dict) {
-      this.form.projectState = null;
-      this.project_state = this.projectState[index];
-      // 给个默认值
-      this.form.projectState = this.project_state[0].dictValue;
-      this.form.stateName = this.project_state[0].dictLabel;
-      if (dict && dict.label) {
-        this.form.stageName = dict.label;
-      }
-    },
-    handleProjectStateSelect(dict) {
-      if (dict && dict.dictLabel) {
-        this.form.stateName = dict.dictLabel;
-      }
-    },
-
     /** 查询项目池列表 */
     getList() {
       this.loading = true;
@@ -598,13 +472,29 @@ export default {
               this.handleDetail(row);
             } else if (type === 3) {
               // 设置项目阶段
-              this.handleBusinessUpdate(row);
+              this.$refs.businessUpdate.handleBusinessUpdate(row);
             } else if (type === 6) {
-              // 立项申请
-              this.$refs.meetingList.showLXApplyPop(row);
+              if (row.approvalFlag === "0") {
+                // 立项申请
+                this.$refs.meetingList.showLXApplyPop(row);
+              } else {
+                this.$message({
+                  message: "您已发起立项申请,无需重复操作",
+                  duration: 1200,
+                  type: "warning",
+                });
+              }
             } else if (type === 7) {
-              // 发起立项会议
-              this.handleMeeting(row, otherData);
+              if (row.approvalFlag === "1") {
+                // 发起立项会议
+                this.handleMeeting(row, otherData);
+              } else {
+                this.$message({
+                  message: "请先立项申请",
+                  duration: 1200,
+                  type: "warning",
+                });
+              }
             } else if (type === 8) {
               // 立项-去打分
               this.$refs.meetingList.handleMark(row, "1", false);
@@ -640,36 +530,11 @@ export default {
       const id = row.id;
       this.$router.push({ path: "/invest/pool/add", query: { id: id } });
     },
-    // 修改业务节点
-    handleBusinessUpdate(row) {
-      this.reset();
-      let index = parseInt(row.projectStage) - 1;
-      this.handleProjectSelect(index, row);
-      this.form = row;
-      this.open = true;
-      this.title = "设置项目阶段";
-      setTimeout(() => {
-        this.form.stageName = this.$refs.selectLable.selected.label;
-        this.form.stateName = this.$refs.selectState.selected.label;
-      }, 300);
-    },
     // 发起会议
     handleMeeting(row, meetingType) {
       this.$store.commit("SET_PROJECTITEMMESSAGE", row);
       this.$refs.meetingList.handleAdd(row.id, meetingType);
     },
-    // 设置项目状态表单重置
-    reset() {
-      this.form = {
-        id: null,
-        projectStage: null,
-        projectState: null,
-        stageName: null,
-        stateName: null,
-      };
-      this.resetForm("form");
-    },
-
     /**终止按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids;
@@ -695,24 +560,6 @@ export default {
         `pool_${new Date().getTime()}.xlsx`
       );
     },
-    /** 修改项目状态提交按钮 */
-    submitForm() {
-      let that = this;
-      this.$refs["form"].validate((valid) => {
-        if (valid) {
-          editStage(this.form).then((response) => {
-            that.$modal.msgSuccess("修改成功");
-            that.open = false;
-            that.getList();
-          });
-        }
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
   },
 };
 </script>

+ 64 - 200
ruoyi-ui/src/views/invest/pool/index4.vue

@@ -234,7 +234,12 @@
         prop="tProjectChannel.channelName"
       >
         <template slot-scope="scope">
-          <div v-if="scope.row.tProjectChannel && scope.row.tProjectChannel.channelName" :title="scope.row.tProjectChannel.channelName">
+          <div
+            v-if="
+              scope.row.tProjectChannel && scope.row.tProjectChannel.channelName
+            "
+            :title="scope.row.tProjectChannel.channelName"
+          >
             {{ scope.row.tProjectChannel.channelName }}
           </div>
         </template>
@@ -298,120 +303,39 @@
       :limit.sync="queryParams.pageSize"
       @pagination="getList"
     />
-    <!-- 设置项目状态对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-        <el-form-item label="项目阶段" prop="projectStage">
-          <el-select
-            v-model="form.projectStage"
-            ref="selectLable"
-            placeholder="请选择项目阶段"
-          >
-            <el-option
-              @click.native="handleProjectSelect(index, dict)"
-              v-for="(dict, index) in dict.type.project_stage"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="项目状态" prop="projectState">
-          <el-select
-            ref="selectState"
-            v-model="form.projectState"
-            placeholder="请选择项目状态"
-          >
-            <el-option
-              @click.native="handleProjectStateSelect(dict)"
-              v-for="dict in project_state"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item
-          v-if="form.projectState == 'e'"
-          label="立项通过日期"
-          prop="projectDate"
-          :rules="[
-            { required: verifyProjectDate, trigger: 'blur', message: '请选择' },
-          ]"
-        >
-          <el-date-picker
-            clearable
-            v-model="form.projectDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择立项通过日期"
-          >
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item
-          v-if="form.projectState == 'i'"
-          label="投决通过日期"
-          prop="decisionDate"
-          :rules="[
-            {
-              required: verifyDecisionDate,
-              trigger: 'blur',
-              message: '请选择',
-            },
-          ]"
-        >
-          <el-date-picker
-            clearable
-            v-model="form.decisionDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择投决通过日期"
-          >
-          </el-date-picker>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm" v-preventReClick
-          >确 定</el-button
-        >
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-
     <!-- 尽调组件 -->
     <dueDiligenceList
-      :type="2"
       ref="dueDiligenceLists"
       :projectId="projectId"
-      :projectName="form.projectName"
+      @getList="getList"
     ></dueDiligenceList>
+    <!-- 设置项目状态对话框 -->
+    <businessUpdate @getList="getList" ref="businessUpdate"></businessUpdate>
   </div>
 </template>
 
 <script>
-import { listInvestigateList, delPool, editStage,addInvestigate } from "@/api/invest/pool";
+import {
+  listInvestigateList,
+  delPool,
+  editStage,
+  addInvestigate,
+} from "@/api/invest/pool";
 import { selectByFlowKey } from "@/api/flowable/definition";
 import { listChannel } from "@/api/invest/channel";
 import dueDiligenceList from "../components/dueDiligenceList";
+import businessUpdate from "../components/businessUpdate";
 import { mapGetters } from "vuex";
 export default {
   name: "Pool4",
   dicts: ["project_group", "project_stage", "project_state", "CUSTOMER_TRADE"],
   components: {
     dueDiligenceList,
+    businessUpdate,
   },
   data() {
     return {
       projectId: "",
-      project_state: [],
-      rules: {
-        projectStage: [
-          { required: true, trigger: "change", message: "请选择项目阶段" },
-        ],
-        projectState: [
-          { required: true, trigger: "change", message: "请选择项目状态" },
-        ],
-      },
       // 遮罩层
       loading: false,
 
@@ -430,10 +354,6 @@ export default {
       total: 0,
       // 项目池表格数据
       poolList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
       // 查询参数
       queryParams: {
         id: null,
@@ -465,42 +385,14 @@ export default {
         isAsc: "desc",
         createTime: null,
       },
-      form: {
-        id: null,
-        projectStage: "",
-        projectState: "",
-        stageName: "",
-        stateName: "",
-      },
       channelList: [],
-      verifyProjectDate: false,
-      verifyDecisionDate: false,
     };
   },
   computed: {
-    ...mapGetters(["user","projectState"]),
-  },
-  watch: {
-    "form.projectState": function (newValue, oldValue) {
-      // 项目立项通过
-      if (newValue == "e") {
-        this.verifyProjectDate = true;
-      } else {
-        this.verifyProjectDate = false;
-      }
-      // 项目投决通过
-      if (newValue == "i") {
-        this.verifyDecisionDate = true;
-      } else {
-        this.verifyDecisionDate = false;
-      }
-    },
+    ...mapGetters(["user"]),
   },
   created() {},
   mounted() {
-    selectByFlowKey("flow_4aimqsfe").then((response) => {
-      this.surveyForm = response.data;
-    });
     this.getList();
     // 渠道
     listChannel({
@@ -511,23 +403,6 @@ export default {
     });
   },
   methods: {
-    // 下拉框改变
-    handleProjectSelect(index, dict) {
-      this.form.projectState = null;
-      this.project_state = this.projectState[index];
-      // 给个默认值
-      this.form.projectState = this.project_state[0].dictValue;
-      this.form.stateName = this.project_state[0].dictLabel;
-      if (dict && dict.label) {
-        this.form.stageName = dict.label;
-      }
-    },
-    handleProjectStateSelect(dict) {
-      if (dict && dict.dictLabel) {
-        this.form.stateName = dict.dictLabel;
-      }
-    },
-
     /** 查询项目池列表 */
     getList() {
       this.loading = true;
@@ -591,13 +466,54 @@ export default {
               this.handleDetail(row);
             } else if (type === 3) {
               // 设置项目阶段
-              this.handleBusinessUpdate(row);
+              this.$refs.businessUpdate.handleBusinessUpdate(row);
             } else if (type === 9) {
-              // 尽调申请
-              this.handleDropdown("1", row);
+              // 是否有尽调申请
+              if (row.investigateFlag === "0") {
+                // 尽调申请
+                this.$refs.dueDiligenceLists.handleShowApplyPop(row);
+              } else {
+                this.$message({
+                  message: "您已发起尽调申请,无需重复操作",
+                  duration: 1200,
+                  type: "warning",
+                });
+              }
             } else if (type === 10) {
-              // 上传尽调报告
-              this.handleDropdown("3", row);
+              // 是否有尽调申请
+              if (row.investigateFlag === "1") {
+                // 是否被选为参与人
+                if (
+                  row.tProjectInvestigate &&
+                  row.tProjectInvestigate.investigatePerson.indexOf(
+                    this.user.nickName
+                  ) > -1
+                ) {
+                  //是否上传了尽调报告
+                  if (!row.tProjectInvestigatePerson) {
+                    // 上传尽调报告
+                    this.$refs.dueDiligenceLists.handleShowReportPop(row);
+                  } else {
+                    this.$message({
+                      message: "您已上传尽调报告,无需重复操作",
+                      duration: 1200,
+                      type: "warning",
+                    });
+                  }
+                } else {
+                  this.$message({
+                    message: "无权限",
+                    duration: 1200,
+                    type: "error",
+                  });
+                }
+              } else {
+                this.$message({
+                  message: "请先尽调申请",
+                  duration: 1200,
+                  type: "warning",
+                });
+              }
             }
           } else {
             this.$message({
@@ -630,40 +546,6 @@ export default {
       const id = row.id;
       this.$router.push({ path: "/invest/pool/add", query: { id: id } });
     },
-    // 修改业务节点
-    handleBusinessUpdate(row) {
-      this.reset();
-      let index = parseInt(row.projectStage) - 1;
-      this.handleProjectSelect(index, row);
-      this.form = row;
-      this.open = true;
-      this.title = "设置项目阶段";
-      setTimeout(() => {
-        this.form.stageName = this.$refs.selectLable.selected.label;
-        this.form.stateName = this.$refs.selectState.selected.label;
-      }, 300);
-    },
-    // 发起尽调申请
-    handleDropdown(type, row) {
-      const id = row.id || this.ids;
-      // this.$router.push({
-      //   path: "/invest/pool/detail",
-      //   query: { id: id, activeName: "4" },
-      // });
-      // this.$refs.dueDiligenceLists.getProjectName(row.projectName);
-      this.$refs.dueDiligenceLists.handleSurvey(type, row, this.dueForm);
-    },
-    // 设置项目状态表单重置
-    reset() {
-      this.form = {
-        id: null,
-        projectStage: null,
-        projectState: null,
-        stageName: null,
-        stateName: null,
-      };
-      this.resetForm("form");
-    },
     /**终止按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids;
@@ -689,24 +571,6 @@ export default {
         `pool_${new Date().getTime()}.xlsx`
       );
     },
-    /** 修改项目状态提交按钮 */
-    submitForm() {
-      let that = this;
-      this.$refs["form"].validate((valid) => {
-        if (valid) {
-          editStage(this.form).then((response) => {
-            that.$modal.msgSuccess("修改成功");
-            that.open = false;
-            that.getList();
-          });
-        }
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
   },
 };
 </script>

+ 29 - 182
ruoyi-ui/src/views/invest/pool/index5.vue

@@ -245,7 +245,12 @@
         prop="tProjectChannel.channelName"
       >
         <template slot-scope="scope">
-          <div v-if="scope.row.tProjectChannel && scope.row.tProjectChannel.channelName" :title="scope.row.tProjectChannel.channelName">
+          <div
+            v-if="
+              scope.row.tProjectChannel && scope.row.tProjectChannel.channelName
+            "
+            :title="scope.row.tProjectChannel.channelName"
+          >
             {{ scope.row.tProjectChannel.channelName }}
           </div>
         </template>
@@ -309,116 +314,38 @@
       :limit.sync="queryParams.pageSize"
       @pagination="getList"
     />
-    <!-- 设置项目状态对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-        <el-form-item label="项目阶段" prop="projectStage">
-          <el-select
-            v-model="form.projectStage"
-            ref="selectLable"
-            placeholder="请选择项目阶段"
-          >
-            <el-option
-              @click.native="handleProjectSelect(index, dict)"
-              v-for="(dict, index) in dict.type.project_stage"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="项目状态" prop="projectState">
-          <el-select
-            ref="selectState"
-            v-model="form.projectState"
-            placeholder="请选择项目状态"
-          >
-            <el-option
-              @click.native="handleProjectStateSelect(dict)"
-              v-for="dict in project_state"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item
-          v-if="form.projectState == 'e'"
-          label="立项通过日期"
-          prop="projectDate"
-          :rules="[
-            { required: verifyProjectDate, trigger: 'blur', message: '请选择' },
-          ]"
-        >
-          <el-date-picker
-            clearable
-            v-model="form.projectDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择立项通过日期"
-          >
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item
-          v-if="form.projectState == 'i'"
-          label="投决通过日期"
-          prop="decisionDate"
-          :rules="[
-            {
-              required: verifyDecisionDate,
-              trigger: 'blur',
-              message: '请选择',
-            },
-          ]"
-        >
-          <el-date-picker
-            clearable
-            v-model="form.decisionDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择投决通过日期"
-          >
-          </el-date-picker>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm" v-preventReClick
-          >确 定</el-button
-        >
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
     <!-- 会议管理组件 -->
     <meetingList
       :type="'3'"
       ref="meetingList"
       :projectId="projectId"
+      @getList="getList"
     ></meetingList>
+    <!-- 设置项目状态对话框 -->
+    <businessUpdate @getList="getList" ref="businessUpdate"></businessUpdate>
   </div>
 </template>
 
 <script>
-import { listDecisionList, delPool, editStage ,addDecision} from "@/api/invest/pool";
+import {
+  listDecisionList,
+  delPool,
+  editStage,
+  addDecision,
+} from "@/api/invest/pool";
 import { listChannel } from "@/api/invest/channel";
 import meetingList from "../components/meetingList";
+import businessUpdate from "../components/businessUpdate";
 import { mapGetters } from "vuex";
 export default {
   name: "Pool5",
   dicts: ["project_group", "project_stage", "project_state", "CUSTOMER_TRADE"],
   components: {
     meetingList,
+    businessUpdate,
   },
   data() {
     return {
-      project_state: [],
-      rules: {
-        projectStage: [
-          { required: true, trigger: "change", message: "请选择项目阶段" },
-        ],
-        projectState: [
-          { required: true, trigger: "change", message: "请选择项目状态" },
-        ],
-      },
       // 遮罩层
       loading: false,
 
@@ -437,10 +364,6 @@ export default {
       total: 0,
       // 项目池表格数据
       poolList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
       // 查询参数
       queryParams: {
         id: null,
@@ -472,37 +395,12 @@ export default {
         isAsc: "desc",
         createTime: null,
       },
-      form: {
-        id: null,
-        projectStage: "",
-        projectState: "",
-        stageName: "",
-        stateName: "",
-      },
       channelList: [],
-      verifyProjectDate: false,
-      verifyDecisionDate: false,
       projectId: "",
     };
   },
   computed: {
-    ...mapGetters(["user","projectState"]),
-  },
-  watch: {
-    "form.projectState": function (newValue, oldValue) {
-      // 项目立项通过
-      if (newValue == "e") {
-        this.verifyProjectDate = true;
-      } else {
-        this.verifyProjectDate = false;
-      }
-      // 项目投决通过
-      if (newValue == "i") {
-        this.verifyDecisionDate = true;
-      } else {
-        this.verifyDecisionDate = false;
-      }
-    },
+    ...mapGetters(["user"]),
   },
   created() {},
   mounted() {
@@ -516,23 +414,6 @@ export default {
     });
   },
   methods: {
-    // 下拉框改变
-    handleProjectSelect(index, dict) {
-      this.form.projectState = null;
-      this.project_state = this.projectState[index];
-      // 给个默认值
-      this.form.projectState = this.project_state[0].dictValue;
-      this.form.stateName = this.project_state[0].dictLabel;
-      if (dict && dict.label) {
-        this.form.stageName = dict.label;
-      }
-    },
-    handleProjectStateSelect(dict) {
-      if (dict && dict.dictLabel) {
-        this.form.stateName = dict.dictLabel;
-      }
-    },
-
     /** 查询项目池列表 */
     getList() {
       this.loading = true;
@@ -595,10 +476,18 @@ export default {
               this.handleDetail(row);
             } else if (type === 3) {
               // 设置项目阶段
-              this.handleBusinessUpdate(row);
+              this.$refs.businessUpdate.handleBusinessUpdate(row);
             } else if (type === 11) {
-              // 投决申请
-              this.$refs.meetingList.showTJApplyPop(row);
+              if (row.decisionFlag === "0") {
+                // 投决申请
+                this.$refs.meetingList.showTJApplyPop(row);
+              } else {
+                this.$message({
+                  message: "您已发起投决申请,无需重复操作",
+                  duration: 1200,
+                  type: "warning",
+                });
+              }
             } else if (type === 12) {
               // 发起投决会议
               this.handleMeeting(row, otherData);
@@ -637,30 +526,6 @@ export default {
       const id = row.id || this.ids;
       this.$router.push({ path: "/invest/pool/detail", query: { id: id } });
     },
-    // 修改业务节点
-    handleBusinessUpdate(row) {
-      this.reset();
-      let index = parseInt(row.projectStage) - 1;
-      this.handleProjectSelect(index, row);
-      this.form = row;
-      this.open = true;
-      this.title = "设置项目阶段";
-      setTimeout(() => {
-        this.form.stageName = this.$refs.selectLable.selected.label;
-        this.form.stateName = this.$refs.selectState.selected.label;
-      }, 300);
-    },
-    // 设置项目状态表单重置
-    reset() {
-      this.form = {
-        id: null,
-        projectStage: null,
-        projectState: null,
-        stageName: null,
-        stateName: null,
-      };
-      this.resetForm("form");
-    },
     /**终止按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids;
@@ -686,24 +551,6 @@ export default {
         `pool_${new Date().getTime()}.xlsx`
       );
     },
-    /** 修改项目状态提交按钮 */
-    submitForm() {
-      let that = this;
-      this.$refs["form"].validate((valid) => {
-        if (valid) {
-          editStage(this.form).then((response) => {
-            that.$modal.msgSuccess("修改成功");
-            that.open = false;
-            that.getList();
-          });
-        }
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
   },
 };
 </script>