Browse Source

11482-【CR】【投资系统】增加审批流程-项目立项

hxy 3 months ago
parent
commit
c63bdd3492

+ 9 - 8
ruoyi-ui/src/views/project/approval/applyList.vue

@@ -158,7 +158,7 @@
           />
         </template>
       </el-table-column>
-      <el-table-column
+<!--      <el-table-column
         label="项目状态"
         align="center"
         prop="projectState"
@@ -170,7 +170,7 @@
             :value="scope.row.projectState"
           />
         </template>
-      </el-table-column>
+      </el-table-column>-->
       <el-table-column
         label="备案时间"
         align="center"
@@ -182,11 +182,11 @@
           }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="立项通过日期" align="center" prop="projectDate">
+<!--      <el-table-column label="立项通过日期" align="center" prop="projectDate">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.projectDate, "{y}-{m}-{d}") }}</span>
         </template>
-      </el-table-column>
+      </el-table-column>-->
       <el-table-column
         label="已发起立项申请"
         align="center"
@@ -225,7 +225,7 @@
         label="状态"
         align="center"
         prop="investHead"
-        width="50px"
+        width="70px"
       >
         <template slot-scope="scope">
           <div :title="scope.row.delFlag === '1' ? '终止' : '正常'">
@@ -255,7 +255,7 @@
 </template>
 
 <script>
-import { listApprovalList, delPool, editStage } from "@/api/invest/pool";
+import { listApprovalList, delPool, } from "@/api/invest/pool";
 import { listChannel } from "@/api/invest/channel";
 import meetingList from "../meetingList";
 import businessUpdate from "../../invest/components/businessUpdate";
@@ -326,9 +326,10 @@ export default {
   computed: {
     ...mapGetters(["user"]),
   },
-  created() {},
-  mounted() {
+  created() {
     this.getList();
+  },
+  mounted() {
     // 渠道
     listChannel({
       pageNum: 1,

+ 107 - 105
ruoyi-ui/src/views/project/approval/audit.vue

@@ -111,18 +111,6 @@
                     :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
@@ -133,12 +121,6 @@
               </div>
             </el-tab-pane>
             <el-tab-pane :label="formType === 1 ? '项目立项评估评审表' : '项目立项评估评审汇总表'" v-if="formLXApply.taskDefKey!='deptLeader'&&formLXApply.taskDefKey!='meeting'" name="review">
-<!--              <tableForm
-                :formType="2"
-                ref="approvalTableForm"
-                :readonly="true"
-                :showBack="false"
-              ></tableForm>-->
               <el-form
                 class="table-form ss_scoreTable"
                 ref="scoreForm"
@@ -1159,11 +1141,15 @@
                   {{ formLXApply.participants ? formLXApply.participants : "请选择" }}
                 </div>
               </el-form-item>
-              <el-form-item label="附件" prop="file" class="special-el-form-item">
+              <el-form-item
+                label="附件"
+                prop="listFile"
+                class="special-el-form-item"
+              >
                 <fileItem
-                  ref="fileItems"
-                  :id="meetingForm.id"
-                  @getFileList="getFileList"
+                  ref="fileItemLXApply"
+                  :id="formLXApply.id"
+                  @getFileList="getFileListLXApply"
                 ></fileItem>
               </el-form-item>
               <!-- 关键代码:el-form-item 包裹单选组 -->
@@ -1303,6 +1289,13 @@
                   {{ meetingForm.participants ? meetingForm.participants : "请选择会议参与人" }}
                 </div>
               </el-form-item>
+              <el-form-item label="附件" prop="file" class="special-el-form-item">
+                <fileItem
+                  ref="fileItems"
+                  :id="meetingForm.id"
+                  @getFileList="getFileList"
+                ></fileItem>
+              </el-form-item>
             </el-form>
           </section>
 
@@ -1338,7 +1331,7 @@
           <!--          <div class="btn-group">-->
           <el-button @click="goBack">返 回</el-button>
           <el-button type="success" @click="handleComplete(true)">同意</el-button>
-          <el-button type="warning" @click="handleComplete(false)">驳回</el-button>
+          <el-button v-if="formLXApply.taskDefKey!='decision'" type="warning" @click="handleComplete(false)">驳回</el-button>
           <!--          </div>-->
         </el-form-item>
       </el-form>
@@ -1355,15 +1348,11 @@
 </template>
 <script>
 import poolForm from "../../invest/components/poolForm";
-import tableForm from "./tableForm";
 import fileItem from "../../invest/components/fileItem";
 import flowBase from "../flowBase.vue";
 import selecDept from "../../invest/components/selecDept";
 import projectItem from "../../invest/components/projectItem";
 import selecUser from "../../invest/components/selecUser";
-import {
-  getMeeting,
-} from "@/api/invest/meeting";
 
 import {
   getPool
@@ -1390,13 +1379,11 @@ export default {
     projectItem,
     selecDept,
     poolForm,
-    tableForm,
     fileItem,
     flowBase,
   },
   data() {
     return {
-      showDueApply: false,
       meetingId: "0",
       type: "2",
       id: "",
@@ -1449,7 +1436,7 @@ export default {
         updateTime: null,
         listFile:null
       },
-      fileList:[],
+      //fileList:[],
       // 表单校验
       meetingRules: {
         meetingTheme: [{ required: true, trigger: "blur", message: "请输入" }],
@@ -1638,12 +1625,7 @@ export default {
     if (this.$route.query.activeName) {
       this.activeName = this.$route.query.activeName;
     }
-   this.openMeetingPage(this.id,'LX');
-    //会议投决节点
-    this.getMeeting();
-   //总裁室
-    this.getSelectMeetingId();
-    //this.getSelectMeetingId(this.scoreForm.meetingId);
+    this.openMeetingPage(this.id,'LX');
   },
   methods: {
     handleClick(tab, event) {
@@ -1666,8 +1648,13 @@ export default {
           // 接口返回值存在(非 undefined/null)则用接口值,否则用 '0'
           that.formLXApply.needMeeting = response.data.needMeeting || '0';
           if(response.data.taskDefKey==='decision'){
+            //会议投决节点
+            this.getMeeting();
             this.formType=1;
-          }else if(response.data.taskDefKey==='president'){
+          }else if(response.data.taskDefKey==='president'||response.data.taskDefKey === "file"){
+            //总裁室
+            this.getMeeting();
+            this.getSelectMeetingId();
             this.formType=2;
           }
           setTimeout(() => {
@@ -1731,11 +1718,11 @@ export default {
             //this.openDetail = true;
             this.selectValues = response.data.participantsId;
             this.selectNameValues = response.data.participants;
-            setTimeout(() => {
+           /* setTimeout(() => {
               this.$refs.fileItems.fileList = [];
               this.$refs.fileItems.getListFileBusinessId(response.data.id);
               //this.$refs.fileItems.handleButton();
-            }, 300);
+            }, 300);*/
           }
         });
      /* }*/
@@ -1772,69 +1759,6 @@ export default {
         this.collectForm.investCommissioner = this.scoreForm.investCommissioner;
       });
     },
-    /** 加载审批任务弹框 */
-    handleComplete(flag) {
-      this.taskComplete(flag);
-    },
-    /** 用户审批任务 */
-    taskComplete(flag) {
-      let allValid = true;
-      if(this.formLXApply.taskDefKey==="meeting") {//发起会议节点
-        this.meetingForm.listFile = this.fileList;
-        if (!this.formLXApply.participants) {
-          this.$modal.msgError("请选择立项审批人!");
-          return;
-        }
-        if (this.formLXApply.needMeeting==='1') {
-          this.$refs["meetingForm"].validate((valid) => {
-            if (!valid) {
-              allValid = false;
-              return;
-            }
-          })
-        }
-      }else if(this.formLXApply.taskDefKey==="decision"){//会议投决
-        this.$refs["scoreForm"].validate((valid) => {
-          if (!valid) {
-            allValid = false;
-            // 4. 评审表校验失败:切换标签 + 提示
-            this.activeTab = 'review'; // 切换到评审表标签
-            this.$message.error('项目立项评估评审表未填写完整,请检查!');
-            return;
-          }
-        })
-      }
-      if (!flag&&!this.flowBaseInfo.comment) {
-        this.$modal.msgError("请输入审批意见!");
-        return;
-      }
-      //会议人
-      this.formLXApply.flag=flag;
-      const params={
-        projectApproval: this.formLXApply,  // 拆分明确字段
-        projectMeeting: this.meetingForm,
-        projectScoring: this.scoreForm,
-        flowBaseInfo: this.flowBaseInfo
-      }
-      if(allValid) {
-        approvalComplete(params).then(response => {
-          this.$modal.msgSuccess(response.msg);
-          this.$store.dispatch("getMyTaskApprovalNumber"); //更新代办数量
-          this.goMyTask();
-        });
-      }
-    },
-    /*返回*/
-    goBack() {
-      this.$router.go(-1);
-    },
-    //跳转到我的任务-投资机会
-    goMyTask(){
-      //this.$router.push({ path: "/myTask/project/approval/myTask"});
-      // 关闭当前标签页并返回指定页面
-      const obj = { path: "/myTask/project/approval/myTask", query: { t: Date.now()} };
-      this.$tab.closeOpenPage(obj);
-    },
     //显示用户信息
     handleSelectPeople(number) {
       // this.userVisible = true;
@@ -1870,14 +1794,14 @@ export default {
           this.selectNameValues = selection.nickName;
           this.selectValues = selection.userId;
         }
-        this.$refs.meetingForm.clearValidate(["participants"]);
-        this.$refs.formLXApply.clearValidate(["participants"]);
+        // this.$refs.meetingForm.clearValidate(["participants"]);
+        // this.$refs.formLXApply.clearValidate(["participants"]);
       }
     },
     // 获取公司信息
     getProjectInfo(info) {
       if (info.length > 0) {
-        console.log("info=", info);
+        //console.log("info=", info);
         this.form.projectPoolId = info[0].id;
         this.form.projectName = info[0].projectName;
         this.form.projectStage = info[0].projectStage;
@@ -1901,6 +1825,84 @@ export default {
         this.$refs.meetingForm.clearValidate(["promoter"]);
       }
     },
+    /** 加载审批任务弹框 */
+    handleComplete(flag) {
+      this.taskComplete(flag);
+    },
+    /** 用户审批任务 */
+    taskComplete(flag) {
+      let allValid = true;
+      if(this.formLXApply.taskDefKey==="meeting") {//发起会议节点
+        this.formLXApply.listFile = this.fileListLXApply;
+        this.meetingForm.listFile = this.fileList;
+        if (!this.formLXApply.participants) {
+          this.$modal.msgError("请选择立项审批人!");
+          return;
+        }
+        if (this.formLXApply.needMeeting==='1') {
+          this.$refs["meetingForm"].validate((valid) => {
+            if (!valid) {
+              allValid = false;
+              return;
+            }
+          })
+        }
+      }else if(this.formLXApply.taskDefKey==="decision"){//会议投决
+        this.$refs["scoreForm"].validate((valid) => {
+          if (!valid) {
+            allValid = false;
+            // 4. 评审表校验失败:切换标签 + 提示
+            this.activeTab = 'review'; // 切换到评审表标签
+            this.$message.error('项目立项评估评审表未填写完整,请检查!');
+            return;
+          }
+        })
+      }
+      if (!flag&&!this.flowBaseInfo.comment) {
+        this.$modal.msgError("请输入审批意见!");
+        return;
+      }
+      //会议人
+      this.formLXApply.flag=flag;
+      const params={
+        projectApproval: this.formLXApply,  // 拆分明确字段
+        projectMeeting: this.meetingForm,
+        projectScoring: this.scoreForm,
+        flowBaseInfo: this.flowBaseInfo
+      }
+      if(allValid) {
+        try{
+          approvalComplete(params).then(response => {
+            this.$modal.msgSuccess(response.msg);
+            this.$store.dispatch("getMyTaskApprovalNumber"); //更新代办数量
+            this.goMyTask();
+          });
+        } catch (err) {
+          // 捕获重复提交错误
+          this.$message.error(err.message);
+        }
+      }
+    },
+    /*返回*/
+    goBack() {
+      this.$router.go(-1);
+    },
+    //跳转到我的任务-投资机会
+    goMyTask(){
+      //this.$router.push({ path: "/myTask/project/approval/myTask"});
+      // 关闭当前标签页并返回指定页面
+      const obj = { path: "/myTask/project/approval/myTask", query: { t: Date.now()} };
+      this.$tab.closeOpenPage(obj);
+    },
+    // 立项申请附件回显
+    getFileListLXApply(fileList) {
+      this.fileListLXApply = fileList;
+      if (fileList && fileList.length > 0) {
+        this.$refs.formLXApply.clearValidate(["listFile"]);
+      } else {
+        this.fileListLXApply = [];
+      }
+    },
     // 会议申请附件回显
     getFileList(fileList) {
       if (fileList && fileList.length > 0) {

+ 736 - 33
ruoyi-ui/src/views/project/approval/detail.vue

@@ -126,14 +126,496 @@
                 暂无数据
               </div>
             </el-tab-pane>
-<!--            <el-tab-pane label="项目立项评估评审汇总表">
-              <tableForm
-                :formType="2"
-                ref="approvalTableForm"
-                :readonly="true"
-                :showBack="false"
-              ></tableForm>
-            </el-tab-pane>-->
+            <el-tab-pane label="项目立项评估评审汇总表" v-if="formLXApply.participantsId!=null&&formLXApply.taskDefKey!='modifyApply'&&formLXApply.taskDefKey!='deptLeader'&&formLXApply.taskDefKey!='meeting'&&formLXApply.taskDefKey!='decision'" name="review">
+              <el-form
+                class="table-form ss_scoreTable"
+                ref="scoreForm"
+                :model="scoreForm"
+                label-width="0px"
+              >
+                <table
+                  border="1"
+                  cellpadding="0"
+                  cellspacing="0"
+                  class="allScoring"
+                >
+                  <thead>
+                  <tr>
+                    <th colspan="10" class="bg-blue">项目立项评估评审汇总表</th>
+                  </tr>
+                  <tr class="specificTr">
+                    <th>项目名称</th>
+                    <th>
+              <textarea
+                class="table-textarea"
+                v-model="scoreForm.projectName"
+                name=""
+                disabled
+              ></textarea>
+                    </th>
+                    <th>项目所属公司</th>
+                    <th colspan="3">
+              <textarea
+                class="table-textarea"
+                v-model="form1.tProjectPool.company"
+                name=""
+                disabled
+              ></textarea>
+                    </th>
+
+                    <th>项目负责人</th>
+                    <th>
+              <textarea
+                class="table-textarea"
+                name=""
+                v-model="collectForm.investCommissioner"
+                disabled
+              ></textarea>
+                    </th>
+                    <th>总人数</th>
+                    <th>
+              <textarea
+                v-model="collectForm.totalPerson"
+                class="table-textarea"
+                name=""
+                disabled
+              ></textarea>
+                    </th>
+                  </tr>
+                  <tr class="bg-blue">
+                    <th>序号</th>
+                    <th>评审类别</th>
+                    <th>评审事项</th>
+                    <th colspan="3">评审指标</th>
+                    <th>标准分值(满分50)</th>
+                    <th colspan="2">汇总分数</th>
+                    <th>平均分数</th>
+                  </tr>
+                  </thead>
+                  <tbody class="text-center">
+                  <tr>
+                    <td rowspan="2">1</td>
+                    <td rowspan="2">模式先进</td>
+                    <td>产业优势</td>
+                    <td colspan="3" class="text-left">
+                      满足以下条件之一:市场热点、新经济、强势传统产业
+                    </td>
+                    <td>
+                      阶段性:0-1<br />
+                      持久:2-3<br />
+                      持久重大:4-5
+                    </td>
+                    <td colspan="2">
+                      <input
+                        autocomplete="off"
+                        v-model="collectForm.industryAdvantageSum"
+                        name="industryAdvantageSum"
+                        type="text"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                    <td>
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.industryAdvantageAvg"
+                        name="industryAdvantageAvg"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>商业模式</td>
+                    <td colspan="3" class="text-left">
+                      满足以下条件之一:技术/行业/渠道优势明显、模式创新度高、降本增效显著
+                    </td>
+                    <td>
+                      先进:0-3<br />
+                      非常先进:4-5<br />
+                      超级先进:6-7<br />
+                      颠覆性的:8-9
+                    </td>
+                    <td colspan="2">
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.businessModelSum"
+                        name="businessModelSum"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                    <td>
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.businessModelAvg"
+                        name="businessModelAvg"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                  </tr>
+                  <tr>
+                    <td rowspan="4">2</td>
+                    <td rowspan="4">团队优秀</td>
+                    <td rowspan="4">核心团队优秀</td>
+                    <td colspan="3">
+                      创业团队专业,产业背景出身,至少十年以上行业经验
+                    </td>
+                    <td>
+                      10年以上产业经验:0-2<br />
+                      15年以上产业经验:3-4
+                    </td>
+                    <td colspan="2">
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.teamExperienceSum"
+                        name="teamExperienceSum"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                    <td>
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.teamExperienceAvg"
+                        name="teamExperienceAvg"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                  </tr>
+                  <tr>
+                    <td colspan="3">
+                      创始团队背景为行业内专家/教授/名校哈佛大学博士/行业内龙头企业技术团队等
+                    </td>
+                    <td>
+                      硕士博士团队:0-2<br />
+                      行业内知名专家、世界名校博士、行业内龙头企业技术团队:3-4
+                    </td>
+                    <td colspan="2">
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.teamBackgroundSum"
+                        name="teamBackgroundSum"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                    <td>
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.teamBackgroundAvg"
+                        name="teamBackgroundAvg"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                  </tr>
+                  <tr>
+                    <td colspan="3">
+                      拥有3位以上德才兼备、同心同德的核心团队成员,能够支撑企业快速扩张
+                    </td>
+                    <td>
+                      强:0-2 <br />
+                      很强:3-4
+                    </td>
+                    <td colspan="2">
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.teamHeartSum"
+                        name="teamHeartSum"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                    <td>
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.teamHeartAvg"
+                        name="teamHeartAvg"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                  </tr>
+                  <tr>
+                    <td colspan="3">
+                      团队领袖诚信、学习能力意愿强,具有很强的职业精神、职业道德、职业技能
+                    </td>
+                    <td>
+                      合格:0-2<br />
+                      优秀:3-5 <br />
+                      卓越:6-8
+                    </td>
+                    <td colspan="2">
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.teamFaithSum"
+                        name="teamFaithSum"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                    <td>
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.teamFaithAvg"
+                        name="teamFaithAvg"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                  </tr>
+                  <tr>
+                    <td rowspan="5">3</td>
+                    <td rowspan="5">企业价值</td>
+                    <td rowspan="2">初步产品原型</td>
+                    <td colspan="3">
+                      具备一定的技术基础和原型,能够证明产品的可行性和创新性,能够为用户真正带来价值。
+                    </td>
+                    <td>2</td>
+                    <td colspan="2">
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.productBaseSum"
+                        name="productBaseSum"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                    <td>
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.productBaseAvg"
+                        name="productBaseAvg"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                  </tr>
+                  <tr>
+                    <td colspan="3">具有明确的盈利模式</td>
+                    <td>2</td>
+                    <td colspan="2">
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.productProfitSum"
+                        name="productProfitSum"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                    <td>
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.productProfitAvg"
+                        name="productProfitAvg"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                  </tr>
+                  <tr>
+                    <td rowspan="2">机构认可</td>
+                    <td colspan="3">
+                      清科、投中年度排行前一百位的投资机构或上市公司、中国500强知名企业或知名投资人投资。
+                    </td>
+                    <td>1</td>
+                    <td colspan="2">
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.organInvestSum"
+                        name="organInvestSum"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                    <td>
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.organInvestAvg"
+                        name="organInvestAvg"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                  </tr>
+                  <tr>
+                    <td colspan="3">
+                      公司近期12个月内估值XX万元以上,且与项目公司无关联关系的专业化投资机构(人)的投资超过500万元。
+                    </td>
+                    <td>1</td>
+                    <td colspan="2">
+                      <input
+                        autocomplete="off"
+                        v-model="collectForm.organValuationSum"
+                        name="organValuationSum"
+                        type="text"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                    <td>
+                      <input
+                        autocomplete="off"
+                        v-model="collectForm.organValuationAvg"
+                        name="organValuationAvg"
+                        type="text"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>估值</td>
+                    <td colspan="3">估值水平、预期收益合理</td>
+                    <td>1</td>
+                    <td colspan="2">
+                      <input
+                        type="text"
+                        v-model="collectForm.valuationSum"
+                        name="valuationSum"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                    <td>
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.valuationAvg"
+                        name="valuationAvg"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                  </tr>
+                  <tr>
+                    <td rowspan="2">4</td>
+                    <td rowspan="2">市场广阔</td>
+                    <td>市场空间大</td>
+                    <td colspan="3">
+                      行业具有高成长性,细分市场年销售规模已经达到或五年内达到50亿元。
+                    </td>
+                    <td>
+                      50-100亿:0.5<br />
+                      100-200亿:1<br />
+                      200亿以上:2
+                    </td>
+                    <td colspan="2">
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.marketSpaceSum"
+                        name="marketSpaceSum"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                    <td>
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.marketSpaceAvg"
+                        name="marketSpaceAvg"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>成长空间大</td>
+                    <td colspan="3">预计年增长率在30%以上</td>
+                    <td>
+                      收入年增长率30%以上:1<br />
+                      收入年增长率50%以上:2<br />
+                      收入年增长率70%以上:3
+                    </td>
+                    <td colspan="2">
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.developSpaceSum"
+                        name="developSpaceSum"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                    <td>
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.developSpaceAvg"
+                        name="developSpaceAvg"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>5</td>
+                    <td>股权收益</td>
+                    <td>退出方式</td>
+                    <td colspan="3">通过并购、股权转让、股权回购等方式退出</td>
+                    <td>
+                      退出收益5%-15%:1<br />
+                      退出收益15%-50%:2<br />
+                      退出收益50%-100%:3<br />
+                      退出收益1倍以上:4
+                    </td>
+                    <td colspan="2">
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.quitWaySum"
+                        name="quitWaySum"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                    <td>
+                      <input
+                        autocomplete="off"
+                        type="text"
+                        v-model="collectForm.quitWayAvg"
+                        name="quitWayAvg"
+                        class="table-input"
+                        disabled
+                      />
+                    </td>
+                  </tr>
+                  <tr>
+                    <td colspan="10" class="text-left big-font">
+                      评分说明:<br />
+                      1.
+                      固定指标分值部分,评分人需根据项目实际情况,评分范围仅有0分和满分,满分为各评审指标对应的标准分值。<br />
+                      2.
+                      浮动指标分值部分,最高分值为各评审指标对应的最高区间分值,最低分值为0分,分值保留小数点后一位数字。
+                    </td>
+                  </tr>
+                  </tbody>
+                </table>
+
+              </el-form>
+            </el-tab-pane>
           </el-tabs>
         </div>
         <div v-show="activeName === '1'">
@@ -142,26 +624,25 @@
       </section>
     </section>
     <section>
-      <flowBase :procInstId="formLXApply.procInstId" v-if="formLXApply.procInstId"></flowBase>
+      <flowBase :procInstId="pInstId" v-if="pInstId"></flowBase>
     </section>
   </div>
 </template>
 <script>
 import poolForm from "../../invest/components/poolForm";
-import tableForm from "../../invest/components/tableForm";
 import fileItem from "../../invest/components/fileItem";
 import flowBase from "../flowBase.vue";
 import {
   getPool,
-  listProjectPoolId,
-  getInvestigatelist,
-  getInvestReviewList,
 } from "@/api/invest/pool";
 import {
   listMeeting,
-  listProjectPoolIdNewApproval,
-  listProjectPoolIdNewDecision,
 } from "@/api/invest/meeting";
+import{
+  getApprovalInfo,
+  getMeetingInfo,
+  getSumScore
+} from "@/api/project/approval/pool"
 
 import { mapGetters } from "vuex";
 
@@ -169,7 +650,6 @@ export default {
   name: "approvalDetail",
   components: {
     poolForm,
-    tableForm,
     fileItem,
     flowBase
   },
@@ -184,6 +664,7 @@ export default {
         projectName: "",
       },
       activeName: "0",
+      pInstId: null,
       formLXApply: {
         id: null,
         procInstId:null,
@@ -195,6 +676,109 @@ export default {
         participants: null,
         participantsId: null,
       },
+      // 打分表单参数
+      scoreForm: {
+        businessModel: null,
+        businessModelNote: null,
+        createBy: null,
+        createTime: null,
+        delFlag: null,
+        developSpace: null,
+        developSpaceNote: null,
+        examine: null,
+        id: null,
+        illustrate: null, //说明
+        industryAdvantage: null,
+        industryAdvantageNote: null,
+        investCommissioner: null, //项目负责人
+        marketSpace: null, //市场空间
+        marketSpaceNote: null,
+        meetingId: null, //
+        organInvest: null,
+        organInvestNote: null,
+        organValuation: null,
+        organValuationNote: null,
+        params: {},
+        productBase: null,
+        productBaseNote: null,
+        productProfit: null,
+        productProfitNote: null,
+        projectPoolId: null,
+        quitWay: null,
+        quitWayNote: null,
+        remark: null,
+        scoringPerson: null, //打分人
+        teamBackground: null,
+        teamBackgroundNote: null,
+        teamExperience: null,
+        teamExperienceNote: null,
+        teamFaith: null,
+        teamFaithNote: null,
+        teamHeart: null,
+        teamHeartNote: null,
+        type: null,
+        updateBy: null,
+        updateTime: null,
+        valuation: null,
+        valuationNote: null,
+      },
+      // 会议详情表单
+      form1: {
+        meetingTheme: null,
+        meetingCode: null,
+        meetingType: null,
+        projectPoolId: null,
+        projectName: null,
+        projectStage: null,
+        projectGroup: "",
+        startTime: null,
+        endTime: null,
+        place: null,
+        promoter: null,
+        promoterId: null,
+        participants: null,
+        participantsId: null,
+        tProjectPool: {
+          company: null,
+          projectName: null,
+          projectStage: null,
+        },
+      },
+      // 汇总分数表单
+      collectForm: {
+        businessModelAvg: null,
+        businessModelSum: null,
+        developSpaceAvg: null,
+        developSpaceSum: null,
+        industryAdvantageAvg: null,
+        industryAdvantageSum: null,
+        investCommissioner: null,
+        marketSpaceAvg: null,
+        marketSpaceSum: null,
+        meetingId: null,
+        organInvestAvg: null,
+        organInvestSum: null,
+        organValuationAvg: null,
+        organValuationSum: null,
+        productBaseAvg: null,
+        productBaseSum: null,
+        productProfitAvg: null,
+        productProfitSum: null,
+        projectPoolId: null,
+        quitWayAvg: null,
+        quitWaySum: null,
+        scoringPerson: null,
+        teamBackgroundAvg: null,
+        teamBackgroundSum: null,
+        teamExperienceAvg: null,
+        teamExperienceSum: null,
+        teamFaithAvg: null,
+        teamFaithSum: null,
+        teamHeartAvg: null,
+        teamHeartSum: null,
+        valuationAvg: null,
+        valuationSum: null,
+      },
     };
   },
   computed: {
@@ -202,28 +786,14 @@ export default {
   },
   created() {
     this.id = this.$route.query.id;
+    this.pInstId=this.$route.query.pInstId;
     this.getDetail();
     this.getlistProjectPoolIdNewApproval();
-    //this.getListProjectPoolId();
-    //this.getDueList();
     if (this.$route.query.activeName) {
       this.activeName = this.$route.query.activeName;
     }
   },
   methods: {
-    /** 查询列表 */
-   /* changeShowDueApply(showDueApply) {
-      this.showDueApply = showDueApply === "1";
-    },*/
-    /*getDueList() {
-      //   this.loading = true;
-      let queryParams = {
-        orderByColumn: "createTime",
-        isAsc: "desc",
-        projectPoolId: this.id,
-      };
-
-    },*/
     getMettingId(type) {
       let queryParams = {
         pageNum: 1,
@@ -265,9 +835,15 @@ export default {
     // 获取立项申请
     getlistProjectPoolIdNewApproval() {
       let that = this;
-      listProjectPoolIdNewApproval(this.id).then((response) => {
+      getApprovalInfo(this.$route.query.pInstId).then((response) => {
         if (response && response.data) {
           that.formLXApply = response.data;
+          if(response.data.participantsId!=null&&response.data.taskDefKey!='modifyApply'
+              &&response.data.taskDefKey != "deptLeader"&&response.data.taskDefKey != "decision"&&response.data.taskDefKey != "meeting"){
+            //总裁室
+            this.getMeeting();
+            this.getSelectMeetingId();
+          }
           setTimeout(() => {
             that.$refs.fileItemLXApply.handleButton();
             that.$refs.fileItemLXApply.fileList = [];
@@ -290,7 +866,38 @@ export default {
         }
       });
     },
+//会议投决
+    getMeeting(){
+      getMeetingInfo(this.$route.query.pInstId).then((response) => {
+        this.form1 = response.data;
+        this.form1.projectPoolId = response.data.projectPoolId;
+        this.form1.projectName = response.data.tProjectPool.projectName;
+        this.form1.projectStage = response.data.tProjectPool.projectStage;
 
+        this.scoreForm.projectPoolId = response.data.projectPoolId;
+        this.scoreForm.projectName = response.data.tProjectPool.projectName;
+        // 打分人
+        this.scoreForm.scoringPerson = this.user.userId;
+        //  项目负责人
+        this.scoreForm.investCommissioner = response.data.tProjectPool.investHead;
+        this.collectForm.investCommissioner =
+          response.data.tProjectPool.investHead;
+        this.scoreForm.meetingId = response.data.id;
+        /*setTimeout(() => {
+          this.$refs.fileItems.fileList = [];
+          this.$refs.fileItems.getListFileBusinessId();
+          this.$refs.fileItems.handleButton();
+        }, 300);*/
+      });
+    },
+    //总裁室
+    // 根据会议ID查询汇总分数和平均分数
+    getSelectMeetingId() {
+      getSumScore(this.$route.query.pInstId).then((response) => {
+        this.collectForm = response.data;
+        this.collectForm.investCommissioner = this.scoreForm.investCommissioner;
+      });
+    },
 
   },
 };
@@ -346,5 +953,101 @@ export default {
   padding: 5px 10px;
   margin-left: 10px;
 }
-
+/*表格样式开始*/
+.ss_scoreTable {
+  padding-bottom: 50px;
+  ::v-deep .el-input.is-disabled .el-input__inner {
+    background-color: #fff !important;
+    color: #606266;
+  }
+  ::v-deep .el-input__inner {
+    border: 1px solid transparent;
+    text-align: center;
+  }
+  ::v-deep.el-textarea__inner {
+    border: none;
+    height: 50px;
+    resize: none;
+  }
+  ::v-deep .el-textarea.is-disabled .el-textarea__inner {
+    background-color: #fff !important;
+  }
+  textarea:disabled,
+  input:disabled {
+    background-color: #fff !important;
+  }
+  // ::v-deep .el-textarea__inner {
+  //   // border: 1px solid transparent!important;
+  // }
+  table {
+    // width:80%;
+    // width: 600px;
+    margin: 0 30px;
+    -moz-user-select: none;
+    -webkit-user-select: none;
+    -ms-user-select: none;
+    -khtml-user-selece: none;
+    /*上面都是兼容性问题,具体看浏览器版本或什么浏览器*/
+    user-select: none; /*内容禁止选中*/
+  }
+  tbody td {
+    font-size: 14px;
+  }
+  thead th,
+  .big-font {
+    font-size: 16px !important;
+    font-weight: bold;
+  }
+  .public-pedded-0 {
+    padding: 0;
+  }
+  .text-center {
+    text-align: center;
+  }
+  .text-left {
+    text-align: left;
+  }
+  .table-textarea {
+    width: 100%;
+    // width: 180px;
+    border: none;
+    height: 50px;
+    resize: none;
+  }
+  .table-input {
+    width: 100%;
+    // width: 100%;
+    // height: 80px;
+    border: none;
+    font-size: 20px;
+    font-weight: bold;
+    text-align: center;
+    margin-top: 20px;
+  }
+  .bg-blue,
+  .specificTr > th:nth-child(2n-1) {
+    background-color: #9bc2e6;
+  }
+  .specificTr > th:nth-child(2n-1) {
+    white-space: nowrap;
+    padding: 0 15px;
+  }
+  .specificTr .table-textarea {
+    padding-top: 16px;
+    background-color: #fff;
+  }
+  tr > th {
+    height: 50px;
+  }
+  input:disabled {
+    // background-color: #fff !important;
+  }
+  .btnList {
+    width: 100%;
+    display: flex;
+    justify-content: center;
+    padding-bottom: 40px;
+    margin-top: 30px;
+  }
+}
 </style>

+ 10 - 14
ruoyi-ui/src/views/project/approval/edit.vue

@@ -163,15 +163,6 @@ export default {
   name: "approvalEdit",
   components: {
     poolForm,
-    /*  contractList,
-      fileList,
-      followList,
-      meetingList,
-      projectList,
-      tableForm,
-      listAllfile,
-      dueDiligenceList,
-      fileItem,*/
     fileItem
   },
   data() {
@@ -325,11 +316,16 @@ export default {
       }
       this.$refs["formLXApply"].validate((valid) => {
         if(valid) {
-          approvalComplete(params).then(response => {
-            this.$modal.msgSuccess(response.msg);
-            this.goMyTask();
-            this.$store.dispatch("getMyTaskApprovalNumber"); //更新代办数量
-          });
+          try{
+            approvalComplete(params).then(response => {
+              this.$modal.msgSuccess(response.msg);
+              this.$store.dispatch("getMyTaskApprovalNumber"); //更新代办数量
+              this.goMyTask();
+            });
+          } catch (err) {
+            // 捕获重复提交错误
+            this.$message.error(err.message);
+          }
         }
       })
     },

+ 42 - 17
ruoyi-ui/src/views/project/approval/myTask.vue

@@ -81,7 +81,7 @@
                 />
               </template>
             </el-table-column>
-            <el-table-column
+<!--            <el-table-column
               label="项目状态"
               align="center"
               prop="projectState"
@@ -93,7 +93,7 @@
                   :value="scope.row.projectState"
                 />
               </template>
-            </el-table-column>
+            </el-table-column>-->
 
             <el-table-column label="项目负责人" align="center" prop="investHead">
               <template slot-scope="scope">
@@ -124,6 +124,18 @@
                 </div>
               </template>
             </el-table-column>
+            <el-table-column label="申请人" align="center" prop="startUserName">
+              <template slot-scope="scope">
+                <div :title="scope.row.startUserName">
+                  {{ scope.row.startUserName }}
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="申请日期" align="center" prop="createTime">
+              <template slot-scope="scope">
+                <span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
+              </template>
+            </el-table-column>
             <el-table-column label="当前节点" align="center" prop="taskName">
               <template slot-scope="scope">
                 <div :title="scope.row.taskName"  class="public-text-blue public-cursor" @click="handleReadImage(scope.row)">
@@ -226,7 +238,7 @@
                 />
               </template>
             </el-table-column>
-            <el-table-column
+<!--            <el-table-column
               label="项目状态"
               align="center"
               prop="projectState"
@@ -238,7 +250,7 @@
                   :value="scope.row.projectState"
                 />
               </template>
-            </el-table-column>
+            </el-table-column>-->
 
             <el-table-column label="项目负责人" align="center" prop="investHead">
               <template slot-scope="scope">
@@ -270,6 +282,18 @@
                 </div>
               </template>
             </el-table-column>
+            <el-table-column label="申请人" align="center" prop="startUserName">
+              <template slot-scope="scope">
+                <div :title="scope.row.startUserName">
+                  {{ scope.row.startUserName }}
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="申请日期" align="center" prop="createTime">
+              <template slot-scope="scope">
+                <span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
+              </template>
+            </el-table-column>
             <el-table-column label="处理节点" align="center" prop="taskName">
               <template slot-scope="scope">
                 <div  v-if="scope.row.deployId !== null && scope.row.deployId !== undefined && scope.row.deployId !== ''"  :title="scope.row.taskName" class="public-text-blue public-cursor" @click="handleReadImage(scope.row)">
@@ -360,7 +384,7 @@
                 />
               </template>
             </el-table-column>
-            <el-table-column
+<!--            <el-table-column
               label="项目状态"
               align="center"
               prop="projectState"
@@ -372,7 +396,7 @@
                   :value="scope.row.projectState"
                 />
               </template>
-            </el-table-column>
+            </el-table-column>-->
 
             <el-table-column label="项目负责人" align="center" prop="investHead">
               <template slot-scope="scope">
@@ -403,6 +427,18 @@
                 </div>
               </template>
             </el-table-column>
+            <el-table-column label="申请人" align="center" prop="startUserName">
+              <template slot-scope="scope">
+                <div :title="scope.row.startUserName">
+                  {{ scope.row.startUserName }}
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="申请日期" align="center" prop="createTime">
+              <template slot-scope="scope">
+                <span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
+              </template>
+            </el-table-column>
             <el-table-column label="当前节点" align="center" prop="taskName">
               <template slot-scope="scope">
                 <div :title="scope.row.taskName" class="public-text-blue public-cursor" @click="handleReadImage(scope.row)">
@@ -587,7 +623,6 @@ export default {
       this.loading = true;
       // 调用待办任务接口(示例)
       getMyTaskList(this.queryParams).then((response) => {
-        console.log( response.rows);
         this.myTaskList = response.rows; // 表格数据
         this.myTaskTotal = response.total; // 分页总条数
         this.loading = false;
@@ -663,15 +698,6 @@ export default {
     },
     // 跳转到处理页面
     handleProcess(row){
-      /*this.$router.push({ path: '/flowable/task/todo/detail/index',
-        query: {
-          procInsId: row.procInsId,
-          executionId: row.executionId,
-          deployId: row.deployId,
-          taskId: row.taskId,
-          taskName: row.taskName,
-          startUser: row.startUserName + '-' + row.startDeptName,
-        }})*/
       const id = row.id || this.ids;
       const poolId=row.projectPoolId;
       const pInstId=row.procInstId;
@@ -732,7 +758,6 @@ export default {
     handleReadImage(row){
       this.readImage.title = "流程图";
       this.readImage.open = true;
-      console.log(row)
       // this.readImage.src = process.env.VUE_APP_BASE_API + "/flowable/definition/readImage/" + deploymentId;
       flowXmlAndNode({procInsId: row.procInstId,deployId:row.deployId}).then(res => {
         this.flowData = res.data;