armg 1 рік тому
батько
коміт
8e31788ade

+ 18 - 9
ruoyi-ui/src/api/invest/pool.js

@@ -56,7 +56,7 @@ export function listProjectPoolId(id) {
   return request({
     url: '/system/circulation/listProjectPoolId',
     method: 'get',
-    params: {projectPoolId:id}
+    params: { projectPoolId: id }
   })
 }
 
@@ -66,8 +66,8 @@ export function getlistProjectPoolId(id) {
   return request({
     url: '/invest/investigate/listProjectPoolId',
     method: 'get',
-    params: {projectPoolId:id}
-    
+    params: { projectPoolId: id }
+
   })
 }
 
@@ -90,12 +90,12 @@ export function updateInvestigate(data) {
 }
 
 //  获取尽调人员关联表详细信息
-export function getProjectInvestigateId(id) {
+export function dueAllPeportList(id) {
   return request({
-    url: '/invest/person/getProjectInvestigateId',
+    url: '/invest/person/list',
     method: 'get',
-    params: {projectInvestigateId:id}
-    
+    params: { id: id }
+
   })
 }
 
@@ -113,8 +113,8 @@ export function getInvestigatelist(id) {
   return request({
     url: '/invest/investigate/list',
     method: 'get',
-    params: {projectPoolId:id}
-    
+    params: { projectPoolId: id }
+
   })
 }
 
@@ -125,3 +125,12 @@ export function delInvestigate(id) {
     method: 'delete'
   })
 }
+// 获取尽调人员关联表详细信息
+// /dev-api/invest/person/getProjectInvestigateId
+export function getProjectInvestigateId(id) {
+  return request({
+    url: '/invest/person/getProjectInvestigateId',
+    method: 'get',
+    params: { projectInvestigateId: id }
+  })
+}

+ 334 - 225
ruoyi-ui/src/views/invest/components/dueDiligenceList.vue

@@ -1,225 +1,290 @@
 <template>
   <div>
-    <el-table border :data="dueDiligenceList">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="尽调名称" align="center" prop="investigateName" />
+    <div v-show="type == 1">
+      <el-table border :data="dueList">
+        <el-table-column type="selection" width="55" align="center" />
+        <el-table-column
+          label="尽调名称"
+          align="center"
+          prop="investigateName"
+        />
 
-      <el-table-column
-        label="尽调人员"
-        align="center"
-        prop="investigatePerson"
-      />
-      <el-table-column label="尽调费用" align="center" prop="investigateCost" />
-      <el-table-column label="描述" align="center" prop="describe" />
-      <el-table-column label="备注" align="center" prop="remark" />
-      <el-table-column label="创建时间" align="center" prop="createTime" />
-      <el-table-column
-        label="操作"
-        align="center"
-        class-name="small-padding fixed-width"
-      >
-        <template slot-scope="scope">
-          <!-- <el-button
-            class="custom-blue-color"
-            size="mini"
-            type="text"
-            icon="el-icon-search"
-            @click="handleUpdate(scope.row)"
-            >查看尽调报告</el-button
-          > -->
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            >修改</el-button
-          >
-          <el-button
-            class="custom-red-color"
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            >删除</el-button
-          >
-        </template>
-      </el-table-column>
-      <!-- 添加或修改尽调申请 -->
-      <el-dialog
-        :title="dueDiligenceTit"
-        :visible.sync="dueDiligenceOpen"
-        width="1000px"
-        append-to-body
-      >
-        <el-form
-          ref="dueForm"
-          class="special-el-form"
-          :model="dueForm"
-          :rules="dueRules"
-          label-width="100px"
+        <el-table-column
+          label="尽调人员"
+          align="center"
+          prop="investigatePerson"
+        />
+        <el-table-column
+          label="尽调费用"
+          align="center"
+          prop="investigateCost"
+        />
+        <el-table-column label="描述" align="center" prop="describe" />
+        <el-table-column label="备注" align="center" prop="remark" />
+        <el-table-column label="创建时间" align="center" prop="createTime" />
+        <el-table-column
+          label="操作"
+          align="center"
+          class-name="small-padding fixed-width"
+          width="220"
         >
-          <el-form-item label="尽调名称" prop="investigateName">
-            <el-input
-              :disabled="dueDiligenceType === '3'"
-              v-model="dueForm.investigateName"
-              placeholder="请输入尽调名称"
-            />
-          </el-form-item>
-          <el-form-item label="项目名称" prop="projectName">
-            <el-input disabled v-model="dueForm.projectName" />
-          </el-form-item>
-          <el-form-item label="尽调人员" prop="investigatePerson">
-            <div
-              class="el-input__inner inputSimulation"
-              @click="handleSelectPeople"
-              :class="{ show_disabled: dueDiligenceType === '3' }"
+          <template slot-scope="scope">
+            <el-button
+              class="custom-blue-color"
+              size="mini"
+              type="text"
+              icon="el-icon-search"
+              @click="handleLook(scope.row)"
+              >查看尽调报告</el-button
             >
-              {{
-                dueForm.investigatePerson
-                  ? dueForm.investigatePerson
-                  : "请选择尽调人员"
-              }}
-            </div>
-          </el-form-item>
-          <el-form-item label="尽调费用" prop="investigateCost">
-            <el-input
-              :disabled="dueDiligenceType === '3'"
-              v-model="dueForm.investigateCost"
-              placeholder="请输入尽调费用"
-            />
-          </el-form-item>
-          <el-form-item label="文件" prop="file" class="special-el-form-item">
-            <fileItem
-              :class="{ show_disabled: dueDiligenceType === '3' }"
-              ref="fileItems"
-              :id="dueForm.id"
-              @getFileList="getFileList"
-            ></fileItem>
-          </el-form-item>
-          <el-form-item
-            label="描述"
-            prop="describe"
-            class="special-el-form-item"
-          >
-            <el-input
-              :disabled="dueDiligenceType === '3'"
-              rows="4"
-              v-model="dueForm.describe"
-              type="textarea"
-              placeholder="请输入内容"
-            />
-          </el-form-item>
-          <el-form-item label="备注" prop="remark" class="special-el-form-item">
-            <el-input
-              :disabled="dueDiligenceType === '3'"
-              rows="4"
-              type="textarea"
-              v-model="dueForm.remark"
-              placeholder="请输入备注"
-            />
-          </el-form-item>
-        </el-form>
-        <div slot="footer" class="dialog-footer">
-          <el-button type="primary" @click="submitDueForm" v-preventReClick
-            >确 定</el-button
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleUpdate(scope.row)"
+              >修改</el-button
+            >
+            <el-button
+              class="custom-red-color"
+              size="mini"
+              type="text"
+              icon="el-icon-delete"
+              @click="handleDelete(scope.row)"
+              >删除</el-button
+            >
+          </template>
+        </el-table-column>
+        <!-- 添加或修改尽调申请 -->
+        <el-dialog
+          :title="dueDiligenceTit"
+          :visible.sync="dueDiligenceOpen"
+          width="1000px"
+          append-to-body
+        >
+          <el-form
+            ref="dueForm"
+            class="special-el-form"
+            :model="dueForm"
+            :rules="dueRules"
+            label-width="100px"
           >
-          <el-button @click="cancelDueForm">取 消</el-button>
-        </div>
-      </el-dialog>
-      <!-- 添加或修改尽调报告 -->
-      <el-dialog
-        :title="dueDiligenceTit1"
-        :visible.sync="dueDiligenceOpen1"
-        width="1000px"
-        append-to-body
-      >
-        <h3>尽调申请详情</h3>
-        <el-divider></el-divider>
-        <el-form
-          ref="duePeportForm"
-          class="special-el-form"
-          :model="duePeportForm"
-          :rules="dueRules1"
-          label-width="100px"
+            <el-form-item label="尽调名称" prop="investigateName">
+              <el-input
+                :disabled="dueDiligenceType === '3'"
+                v-model="dueForm.investigateName"
+                placeholder="请输入尽调名称"
+              />
+            </el-form-item>
+            <el-form-item label="项目名称" prop="projectName">
+              <el-input disabled v-model="dueForm.projectName" />
+            </el-form-item>
+            <el-form-item label="尽调人员" prop="investigatePerson">
+              <div
+                class="el-input__inner inputSimulation"
+                @click="handleSelectPeople"
+                :class="{ show_disabled: dueDiligenceType === '3' }"
+              >
+                {{
+                  dueForm.investigatePerson
+                    ? dueForm.investigatePerson
+                    : "请选择尽调人员"
+                }}
+              </div>
+            </el-form-item>
+            <el-form-item label="尽调费用" prop="investigateCost">
+              <el-input
+                :disabled="dueDiligenceType === '3'"
+                v-model="dueForm.investigateCost"
+                placeholder="请输入尽调费用"
+              />
+            </el-form-item>
+            <el-form-item label="文件" prop="file" class="special-el-form-item">
+              <fileItem
+                :class="{ show_disabled: dueDiligenceType === '3' }"
+                ref="fileItems"
+                :id="dueForm.id"
+                @getFileList="getFileList"
+              ></fileItem>
+            </el-form-item>
+            <el-form-item
+              label="描述"
+              prop="describe"
+              class="special-el-form-item"
+            >
+              <el-input
+                :disabled="dueDiligenceType === '3'"
+                rows="4"
+                v-model="dueForm.describe"
+                type="textarea"
+                placeholder="请输入内容"
+              />
+            </el-form-item>
+            <el-form-item
+              label="备注"
+              prop="remark"
+              class="special-el-form-item"
+            >
+              <el-input
+                :disabled="dueDiligenceType === '3'"
+                rows="4"
+                type="textarea"
+                v-model="dueForm.remark"
+                placeholder="请输入备注"
+              />
+            </el-form-item>
+          </el-form>
+          <div slot="footer" class="dialog-footer">
+            <el-button type="primary" @click="submitDueForm" v-preventReClick
+              >确 定</el-button
+            >
+            <el-button @click="cancelDueForm">取 消</el-button>
+          </div>
+        </el-dialog>
+        <!-- 添加或修改尽调报告 -->
+        <el-dialog
+          :title="dueDiligenceTit1"
+          :visible.sync="dueDiligenceOpen1"
+          width="1000px"
+          append-to-body
         >
-          <el-form-item label="尽调名称">
-            <el-input
-              disabled
-              v-model="dueForm.investigateName"
-              placeholder="请输入尽调名称"
-            />
-          </el-form-item>
-          <el-form-item label="项目名称">
-            <el-input disabled v-model="dueForm.projectName" />
-          </el-form-item>
-          <el-form-item label="尽调人员">
-            <el-input disabled v-model="dueForm.investigatePerson" />
-          </el-form-item>
-          <el-form-item label="尽调费用">
-            <el-input disabled v-model="dueForm.investigateCost" />
-          </el-form-item>
-          <el-form-item label="文件" class="special-el-form-item">
-            <fileItem
-              class="show_disabled"
-              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>
-          <h3>尽调报告</h3>
+          <h3>尽调申请详情</h3>
           <el-divider></el-divider>
-          <el-form-item
-            label="文件"
-            prop="listFile"
-            class="special-el-form-item"
+          <el-form
+            ref="duePeportForm"
+            class="special-el-form"
+            :model="duePeportForm"
+            :rules="dueRules1"
+            label-width="100px"
           >
-            <fileItem
-              ref="reportFileItems"
-              :id="duePeportForm.id"
-              @getFileList="getreportFileList"
-            ></fileItem>
-          </el-form-item>
-          <el-form-item label="备注" prop="remark" class="special-el-form-item">
-            <el-input
-              rows="4"
-              type="textarea"
-              v-model="duePeportForm.remark"
-              placeholder="请输入备注"
-            />
-          </el-form-item>
-        </el-form>
-        <div slot="footer" class="dialog-footer">
-          <el-button
-            type="primary"
-            @click="submitduePeportForm"
-            v-preventReClick
-            >确 定</el-button
+            <el-form-item label="尽调名称">
+              <el-input
+                disabled
+                v-model="dueForm.investigateName"
+                placeholder="请输入尽调名称"
+              />
+            </el-form-item>
+            <el-form-item label="项目名称">
+              <el-input disabled v-model="dueForm.projectName" />
+            </el-form-item>
+            <el-form-item label="尽调人员">
+              <el-input disabled v-model="dueForm.investigatePerson" />
+            </el-form-item>
+            <el-form-item label="尽调费用">
+              <el-input disabled v-model="dueForm.investigateCost" />
+            </el-form-item>
+            <el-form-item label="文件" class="special-el-form-item">
+              <fileItem
+                class="show_disabled"
+                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>
+            <h3>尽调报告</h3>
+            <el-divider></el-divider>
+            <el-form-item
+              label="文件"
+              prop="listFile"
+              class="special-el-form-item"
+            >
+              <fileItem
+                ref="reportFileItems"
+                :id="duePeportForm.id"
+                @getFileList="getreportFileList"
+              ></fileItem>
+            </el-form-item>
+            <el-form-item
+              label="备注"
+              prop="remark"
+              class="special-el-form-item"
+            >
+              <el-input
+                rows="4"
+                type="textarea"
+                v-model="duePeportForm.remark"
+                placeholder="请输入备注"
+              />
+            </el-form-item>
+          </el-form>
+          <div slot="footer" class="dialog-footer">
+            <el-button
+              type="primary"
+              @click="submitduePeportForm"
+              v-preventReClick
+              >确 定</el-button
+            >
+            <el-button @click="cancelduePeportForm">取 消</el-button>
+          </div>
+        </el-dialog>
+
+        <!-- 查看该申请下的所有尽调报告 -->
+        <el-dialog
+          title="尽调报告"
+          :visible.sync="dueDiligenceOpen2"
+          width="1000px"
+          append-to-body
+          class="examineDialog"
+        >
+          <el-form
+            v-for="(item, index) in dueAllPeportList"
+            :key="index"
+            class="special-el-form"
+            :model="item"
+            label-width="100px"
           >
-          <el-button @click="cancelduePeportForm">取 消</el-button>
-        </div>
-      </el-dialog>
-    </el-table>
+            <el-form-item label="尽调人员" class="special-el-form-item">
+              <el-input disabled v-model="item.investigatePerson" />
+            </el-form-item>
+            <el-form-item label="文件" class="special-el-form-item">
+              <fileItem
+                class="show_disabled"
+                ref="dueAllreportFileItems"
+                :id="item.id"
+                @getFileList="getreportFileList"
+              ></fileItem>
+            </el-form-item>
+            <el-form-item label="备注" class="special-el-form-item">
+              <el-input
+                disabled
+                rows="4"
+                type="textarea"
+                v-model="item.remark"
+                placeholder="请输入备注"
+              />
+            </el-form-item>
+            <el-divider></el-divider>
+          </el-form>
+          <div slot="footer" class="dialog-footer">
+            <el-button type="primary" @click="dueDiligenceOpen2 = false"
+              >确 定</el-button
+            >
+            <el-button @click="dueDiligenceOpen2 = false">取 消</el-button>
+          </div>
+        </el-dialog>
+      </el-table>
+    </div>
     <!--选择人员-->
     <selecUser
       ref="flowUser"
       :checkType="checkType"
       :selectValues="selectValues"
+      :selectNameValues="selectNameValues"
       @handleUserSelect="handleUserSelect"
     ></selecUser>
   </div>
@@ -232,6 +297,7 @@ import {
   updateInvestigate,
   addInvestigatePerson,
   getProjectInvestigateId,
+  dueAllPeportList,
 } from "@/api/invest/pool";
 import projectItem from "./projectItem";
 import fileItem from "./fileItem";
@@ -243,8 +309,11 @@ export default {
     projectId: {
       type: String,
     },
-    projectName: {
-      type: String,
+    // projectName: {
+    //   type: String,
+    // },
+    type: {
+      type: Number, //1显示表格  2不显示
     },
   },
   dicts: ["up_way", "project_stage"],
@@ -262,8 +331,9 @@ export default {
       checkType: "multiple",
       // 数据回显
       selectValues: null,
+      selectNameValues: null,
       userVisible: false,
-      dueDiligenceList: [],
+      dueList: [],
       total: null,
       user: {
         userId: null,
@@ -273,6 +343,7 @@ export default {
       dueDiligenceOpen: false,
       dueDiligenceTit1: "",
       dueDiligenceOpen1: false,
+      dueDiligenceOpen2: false,
       duePeportForm: {
         createBy: null,
         createTime: null,
@@ -305,6 +376,7 @@ export default {
         projectPoolId: null,
         projectName: null,
       },
+      dueAllPeportList: [],
       dueRules1: {
         listFile: [{ required: true, validator: validateLogo }],
         remark: [{ required: true, trigger: "blur", message: "请输入" }],
@@ -328,10 +400,10 @@ export default {
     };
   },
   watch: {
-    open: function (newValue, oldValue) {
+    dueDiligenceOpen: function (newValue, oldValue) {
       if (newValue === false) {
         this.selectValues = null;
-        // this.queryParams.projectPoolId = null;
+        this.selectNameValues = null;
       }
     },
   },
@@ -339,11 +411,14 @@ export default {
     this.getList();
   },
   methods: {
+    getProjectName(projectName) {
+      this.projectName = projectName;
+    },
     /** 查询文件资料列表 */
     getList() {
       //   this.loading = true;
       getInvestigatelist(this.projectId).then((response) => {
-        this.dueDiligenceList = response.rows;
+        this.dueList = response.rows;
         this.total = response.total;
         // this.loading = false;
       });
@@ -351,16 +426,36 @@ export default {
     handleSelectPeople() {
       this.$refs.flowUser.handleUserVisible(true);
     },
+    // 查看尽调报告
+    handleLook(row) {
+      let that = this;
+      dueAllPeportList(row.id).then((response) => {
+        let rows = response.rows;
+        this.dueAllPeportList = rows;
+        this.dueDiligenceOpen2 = true;
+        if (rows && rows.length > 0) {
+          for (let i in rows) {
+            setTimeout(() => {
+              this.$refs.dueAllreportFileItems[i].getListFileBusinessId(
+                rows[i].id
+              );
+            }, 300);
+          }
+        }
+      });
+    },
     // 修改尽调申请
     handleUpdate(row) {
       let that = this;
       this.resetDueForm();
-      const id = row.projectPoolId;
+      const id = row.projectPoolId || row.id;
       getlistProjectPoolId(id).then((response) => {
         if (response.tProjectInvestigate) {
           this.dueForm = response.tProjectInvestigate;
           this.dueForm.projectName = this.projectName;
           this.selectValues = response.tProjectInvestigate.investigatePersonId;
+          this.selectNameValues =
+            response.tProjectInvestigate.investigatePerson;
           this.dueDiligenceTit = "修改尽调申请";
           this.dueDiligenceOpen = true;
           setTimeout(() => {
@@ -391,14 +486,19 @@ export default {
           const nickName = selection.map((item) => item.nickName);
           this.dueForm.investigatePerson = nickName.join(",");
           this.dueForm.investigatePersonId = userIds.join(",");
+          this.selectNameValues = nickName.join(",");
+          this.selectValues = userIds.join(",");
         } else {
           this.dueForm.investigatePerson = selection.nickName;
           this.dueForm.investigatePersonId = selection.userId;
+          this.selectNameValues = selection.nickName;
+          this.selectValues = selection.userId;
         }
       }
     },
     // 发起尽调申请
-    handleSurvey(type, row) {
+    handleSurvey(type, row, transmitForm) {
+      console.log(type, row, transmitForm);
       let that = this;
       this.dueDiligenceType = type;
       //type 1=发起  2=修改  3=上传
@@ -410,24 +510,24 @@ export default {
         this.dueDiligenceTit = "发起尽调申请";
         this.dueDiligenceOpen = true;
       } else if (type === "2") {
-        setTimeout(() => {
-          that.$refs.fileItems.getListFileBusinessId(this.dueForm.id);
-        }, 300);
-        this.dueDiligenceTit = "修改尽调申请";
-        this.dueDiligenceOpen = true;
+        this.handleUpdate(row);
       } else if (type === "3") {
+        this.dueForm = transmitForm;
+        this.dueForm.projectName = row.projectName;
         this.duePeportForm.projectInvestigateId = this.dueForm.id;
         setTimeout(() => {
-          that.$refs.reportFileItems.fileList = [];
-          that.$refs.reportFileItems.getListFileBusinessId(
-            this.duePeportForm.id
-          );
           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;
         });
@@ -533,4 +633,13 @@ export default {
     },
   },
 };
-</script>
+</script>
+<style lang="scss">
+.examineDialog {
+  .el-input.is-disabled .el-input__inner,
+  .el-textarea.is-disabled .el-textarea__inner {
+    background-color: #fff;
+    color: #333;
+  }
+}
+</style>

+ 10 - 0
ruoyi-ui/src/views/invest/components/meetingList.vue

@@ -472,6 +472,7 @@
         ref="flowUser"
         :checkType="checkType"
         :selectValues="selectValues"
+        :selectNameValues="selectNameValues"
         @handleUserSelect="handleUserSelect"
       ></selecUser>
   </div>
@@ -515,6 +516,7 @@ export default {
     open: function (newValue, oldValue) {
       if (newValue === false) {
         this.selectValues = null;
+        this.selectNameValues = null;
         this.queryParams.projectPoolId = null;
         this.meetingType = null;
         this.pageType = null;
@@ -528,6 +530,7 @@ export default {
       checkType: "multiple",
       // 数据回显
       selectValues: null,
+      selectNameValues:null,
       userVisible: false,
       pageType: null,
       meetingType: null,
@@ -652,9 +655,13 @@ export default {
           const nickName = selection.map((item) => item.nickName);
           this.form.participants = nickName.join(",");
           this.form.participantsId = userIds.join(",");
+          this.selectNameValues = nickName.join(",");
+          this.selectValues = userIds.join(",");
         } else {
           this.form.participants = selection.nickName;
           this.form.participantsId = selection.userId;
+          this.selectNameValues = selection.nickName;
+          this.selectValues = selection.userId;
         }
       }
     },
@@ -831,6 +838,7 @@ export default {
     handleAdd(projectId) {
       let that = this;
       this.selectValues = null;
+      this.selectNameValues = null;
       this.reset();
       if (projectId && typeof projectId === "string") {
         this.pageType = "1";
@@ -853,6 +861,7 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.selectValues = null;
+      this.selectNameValues = null;
       this.reset();
       const id = row.id || this.ids;
       getMeeting(id).then((response) => {
@@ -863,6 +872,7 @@ export default {
         this.open = true;
         this.title = "修改会议";
         this.selectValues = response.data.participantsId;
+        this.selectNameValues = response.data.participants;
         setTimeout(() => {
           this.$refs.fileItems.getListFileBusinessId(id);
         }, 200);

+ 13 - 381
ruoyi-ui/src/views/invest/components/projectList.vue

@@ -505,7 +505,7 @@
           <el-dropdown
             v-if="stage == '4'"
             trigger="click"
-            @command="handleSurvey($event, scope.row)"
+            @command="handleDropdown($event, scope.row)"
           >
             <span
               class="el-dropdown-link"
@@ -584,177 +584,13 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
-    <!-- 添加或修改尽调申请 -->
-    <el-dialog
-      :title="dueDiligenceTit"
-      :visible.sync="dueDiligenceOpen"
-      width="1000px"
-      append-to-body
-    >
-      <el-form
-        ref="dueForm"
-        class="special-el-form"
-        :model="dueForm"
-        :rules="dueRules"
-        label-width="100px"
-      >
-        <el-form-item label="尽调名称" prop="investigateName">
-          <el-input
-            :disabled="dueDiligenceType === '3'"
-            v-model="dueForm.investigateName"
-            placeholder="请输入尽调名称"
-          />
-        </el-form-item>
-        <el-form-item label="项目名称" prop="projectName">
-          <el-input
-            disabled
-            v-model="dueForm.projectName"
-            placeholder="请输入尽调名称"
-          />
-        </el-form-item>
-        <el-form-item label="尽调人员" prop="investigatePerson">
-          <div
-            class="el-input__inner inputSimulation"
-            @click="handleSelectPeople"
-            :class="{ show_disabled: dueDiligenceType === '3' }"
-          >
-            {{
-              dueForm.investigatePerson
-                ? dueForm.investigatePerson
-                : "请选择尽调人员"
-            }}
-          </div>
-        </el-form-item>
-        <el-form-item label="尽调费用" prop="investigateCost">
-          <el-input
-            :disabled="dueDiligenceType === '3'"
-            v-model="dueForm.investigateCost"
-            placeholder="请输入尽调费用"
-          />
-        </el-form-item>
-        <el-form-item label="文件" prop="file" class="special-el-form-item">
-          <fileItem
-            :class="{ show_disabled: dueDiligenceType === '3' }"
-            ref="fileItems"
-            :id="dueForm.id"
-            @getFileList="getFileList"
-          ></fileItem>
-        </el-form-item>
-        <el-form-item label="描述" prop="describe" class="special-el-form-item">
-          <el-input
-            :disabled="dueDiligenceType === '3'"
-            rows="4"
-            v-model="dueForm.describe"
-            type="textarea"
-            placeholder="请输入内容"
-          />
-        </el-form-item>
-        <el-form-item label="备注" prop="remark" class="special-el-form-item">
-          <el-input
-            :disabled="dueDiligenceType === '3'"
-            rows="4"
-            type="textarea"
-            v-model="dueForm.remark"
-            placeholder="请输入备注"
-          />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitDueForm" v-preventReClick
-          >确 定</el-button
-        >
-        <el-button @click="cancelDueForm">取 消</el-button>
-      </div>
-    </el-dialog>
-    <!-- 添加或修改尽调报告 -->
-    <el-dialog
-      :title="dueDiligenceTit1"
-      :visible.sync="dueDiligenceOpen1"
-      width="1000px"
-      append-to-body
-    >
-      <h3>尽调申请详情</h3>
-      <el-divider></el-divider>
-      <el-form
-        ref="duePeportForm"
-        class="special-el-form"
-        :model="duePeportForm"
-        :rules="dueRules1"
-        label-width="100px"
-      >
-        <el-form-item label="尽调名称">
-          <el-input
-            disabled
-            v-model="dueForm.investigateName"
-            placeholder="请输入尽调名称"
-          />
-        </el-form-item>
-        <el-form-item label="项目名称">
-          <el-input disabled v-model="dueForm.projectName" />
-        </el-form-item>
-        <el-form-item label="尽调人员">
-          <el-input disabled v-model="dueForm.investigatePerson" />
-        </el-form-item>
-        <el-form-item label="尽调费用">
-          <el-input disabled v-model="dueForm.investigateCost" />
-        </el-form-item>
-        <el-form-item label="文件" class="special-el-form-item">
-          <fileItem
-            class="show_disabled"
-            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>
-        <h3>尽调报告</h3>
-        <el-divider></el-divider>
-        <el-form-item label="文件" prop="listFile" class="special-el-form-item">
-          <fileItem
-            ref="reportFileItems"
-            :id="duePeportForm.id"
-            @getFileList="getreportFileList"
-          ></fileItem>
-        </el-form-item>
-        <el-form-item label="备注" prop="remark" class="special-el-form-item">
-          <el-input
-            rows="4"
-            type="textarea"
-            v-model="duePeportForm.remark"
-            placeholder="请输入备注"
-          />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitduePeportForm" v-preventReClick
-          >确 定</el-button
-        >
-        <el-button @click="cancelduePeportForm">取 消</el-button>
-      </div>
-    </el-dialog>
-    <!--选择人员-->
 
-    <selecUser
-      ref="flowUser"
-      :checkType="checkType"
-      :selectValues="selectValues"
-      @handleUserSelect="handleUserSelect"
-    ></selecUser>
+    <dueDiligenceList
+      :type="2"
+      ref="dueDiligenceLists"
+      :projectId="projectId"
+      :projectName="form.projectName"
+    ></dueDiligenceList>
   </div>
 </template>
 
@@ -773,7 +609,7 @@ import { selectByFlowKey } from "@/api/flowable/definition";
 import { listChannel } from "@/api/invest/channel";
 import projectItem from "./projectItem";
 import fileItem from "./fileItem";
-import selecUser from "./selecUser";
+import dueDiligenceList from "./dueDiligenceList";
 export default {
   props: {
     type: {
@@ -798,15 +634,8 @@ export default {
     "financing_stage",
     "CUSTOMER_TRADE",
   ],
-  components: { projectItem, fileItem, selecUser },
+  components: { projectItem, fileItem, dueDiligenceList },
   data() {
-    const validateLogo = (rule, value, callback) => {
-      if (this.reportFileList.length <= 0) {
-        callback(new Error("请上传文件"));
-      } else {
-        callback();
-      }
-    };
     return {
       // 人员选择器
       checkType: "multiple",
@@ -960,28 +789,7 @@ export default {
       isInitiator: false, //是否是发起人
       needInitiate: false, //需要发起申请
       needUpload: false, //需要上传
-      user: {
-        userId: null,
-        nickName: null,
-      },
-      dueDiligenceTit: "",
-      dueDiligenceOpen: false,
-      dueDiligenceTit1: "",
-      dueDiligenceOpen1: false,
-      duePeportForm: {
-        createBy: null,
-        createTime: null,
-        deptId: null,
-        deptName: null,
-        id: null,
-        investigatePerson: null,
-        investigatePersonId: null,
-        listFile: null,
-        projectInvestigateId: null,
-        remark: null,
-        updateBy: null,
-        updateTime: null,
-      },
+
       dueForm: {
         id: null,
         investigateName: null,
@@ -1000,26 +808,6 @@ export default {
         projectPoolId: null,
         projectName: null,
       },
-      dueRules1: {
-        listFile: [{ required: true, validator: validateLogo }],
-        remark: [{ required: true, trigger: "blur", message: "请输入" }],
-      },
-      dueRules: {
-        investigateName: [
-          { required: true, trigger: "blur", message: "请输入" },
-        ],
-        projectName: [{ required: true, trigger: "blur", message: "请输入" }],
-        investigatePerson: [
-          { required: true, trigger: "blur", message: "请选择" },
-        ],
-        investigateCost: [
-          { required: true, trigger: "blur", message: "请输入" },
-        ],
-        describe: [{ required: true, trigger: "blur", message: "请输入" }],
-      },
-      fileList: [],
-      reportFileList: [],
-      dueDiligenceType: "0",
     };
   },
   mounted() {
@@ -1056,29 +844,6 @@ export default {
     this.getList();
   },
   methods: {
-    /*用户选中赋值*/
-    checkUserComplete() {
-      this.userVisible = false;
-      this.checkType = "";
-    },
-    handleSelectPeople() {
-      this.$refs.flowUser.handleUserVisible(true);
-    },
-    // 用户选中数据
-    handleUserSelect(selection) {
-      const that = this;
-      if (selection) {
-        if (selection instanceof Array) {
-          const userIds = selection.map((item) => item.userId);
-          const nickName = selection.map((item) => item.nickName);
-          this.dueForm.investigatePerson = nickName.join(",");
-          this.dueForm.investigatePersonId = userIds.join(",");
-        } else {
-          this.dueForm.investigatePerson = selection.nickName;
-          this.dueForm.investigatePersonId = selection.userId;
-        }
-      }
-    },
     // 下拉框改变
     handleProjectSelect(index, dict) {
       this.form.projectState = null;
@@ -1151,28 +916,6 @@ export default {
         query: { id: row.id, type: "1", meetingType: meetingType },
       });
     },
-
-    // 获取fileList
-    getFileList(fileList) {
-      this.fileList = fileList;
-    },
-    getreportFileList(fileList) {
-      this.reportFileList = fileList;
-    },
-    // 获取公司信息
-    getProjectInfo(info) {
-      if (info.length > 0) {
-        this.dueForm.projectPoolId = info[0].id;
-        this.dueForm.projectName = info[0].projectName;
-        this.dueForm.projectStage = info[0].projectStage;
-        this.dueForm.projectState = info[0].projectState;
-        this.$refs.form.clearValidate(["projectName"]);
-      }
-    },
-
-    handleProjectItem() {
-      this.$refs.projectItem.showProjectItem = true;
-    },
     getButtonItem(row) {
       let that = this;
       this.needUpload = false;
@@ -1204,120 +947,9 @@ export default {
       });
     },
     // 发起尽调申请
-    handleSurvey(type, row) {
-      let that = this;
-      this.dueDiligenceType = type;
-      //type 1=发起  2=修改  3=上传
-      if (type === "1") {
-        this.resetDueForm();
-        setTimeout(() => {
-          that.$refs.fileItems.fileList = [];
-        }, 300);
-        this.dueDiligenceTit = "发起尽调申请";
-        this.dueDiligenceOpen = true;
-      } else if (type === "2") {
-        setTimeout(() => {
-          that.$refs.fileItems.getListFileBusinessId(this.dueForm.id);
-        }, 300);
-        this.dueDiligenceTit = "修改尽调申请";
-        this.dueDiligenceOpen = true;
-      } else if (type === "3") {
-        this.duePeportForm.projectInvestigateId = this.dueForm.id;
-        setTimeout(() => {
-          that.$refs.reportFileItems.fileList = [];
-          that.$refs.reportFileItems.getListFileBusinessId(
-            this.duePeportForm.id
-          );
-          that.$refs.fileItems1.getListFileBusinessId(this.dueForm.id);
-        }, 300);
-        this.dueDiligenceTit1 = "上传尽调报告";
-        getProjectInvestigateId(this.dueForm.id).then((response) => {
-          if (response.data) {
-            this.duePeportForm = response.data;
-          }
-          this.dueDiligenceOpen1 = true;
-        });
-      }
-      this.dueForm.projectName = row.projectName;
-      this.dueForm.projectPoolId = row.id;
-    },
-    // 尽调报告
-    submitduePeportForm() {
-      this.$refs["duePeportForm"].validate((valid) => {
-        if (valid) {
-          this.duePeportForm.projectPoolId = this.dueForm.projectPoolId;
-          this.duePeportForm.listFile = this.reportFileList;
-          addInvestigatePerson(this.duePeportForm).then((response) => {
-            this.$modal.msgSuccess("操作成功");
-            this.dueDiligenceOpen1 = false;
-          });
-        }
-      });
-    },
-    cancelduePeportForm() {
-      this.dueDiligenceOpen1 = false;
-      this.resetduePeportForm();
-    },
-    resetduePeportForm() {
-      this.duePeportForm = {
-        createBy: null,
-        createTime: null,
-        deptId: null,
-        deptName: null,
-        id: null,
-        investigatePerson: null,
-        investigatePersonId: null,
-        listFile: null,
-        remark: null,
-        updateBy: null,
-        updateTime: null,
-        projectInvestigateId: this.dueForm.id,
-      };
-    },
-    // 尽调申请
-    submitDueForm() {
-      this.$refs["dueForm"].validate((valid) => {
-        if (valid) {
-          this.dueForm.listFile = this.fileList;
-          if (this.dueForm.id != null) {
-            updateInvestigate(this.dueForm).then((response) => {
-              this.$modal.msgSuccess("修改成功");
-              this.dueDiligenceOpen = false;
-            });
-          } else {
-            addInvestigate(this.dueForm).then((response) => {
-              this.$modal.msgSuccess("新增成功");
-              this.dueDiligenceOpen = false;
-            });
-          }
-        }
-      });
-    },
-    cancelDueForm() {
-      this.dueDiligenceOpen = false;
-      this.resetDueForm();
-    },
-    // 表单重置
-    resetDueForm() {
-      this.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,
-      };
-      this.resetForm("dueForm");
+    handleDropdown(type, row) {
+      this.$refs.dueDiligenceLists.getProjectName(row.projectName);
+      this.$refs.dueDiligenceLists.handleSurvey(type, row,this.dueForm);
     },
     // 上传跟进记录
     handlefollowRecord(row) {

+ 98 - 40
ruoyi-ui/src/views/invest/components/selecUser.vue

@@ -80,6 +80,7 @@
             v-loading="loading"
             :row-key="getRowKey"
             :data="userList"
+            @select="handleSelect"
             @selection-change="handleMultipleUserSelect"
           >
             <el-table-column
@@ -217,6 +218,11 @@ export default {
       default: null,
       required: false,
     },
+    selectNameValues: {
+      type: Number | String | Array,
+      default: null,
+      required: false,
+    },
     // 表格类型
     checkType: {
       type: String,
@@ -276,6 +282,7 @@ export default {
       ],
       radioSelected: null, // 单选框传值
       selectUserList: [], // 回显数据传值
+      checkList: [],
     };
   },
   watch: {
@@ -283,47 +290,53 @@ export default {
     deptName(val) {
       this.$refs.tree.filter(val);
     },
-    selectValues: {
-      handler(newVal) {
-        if (StrUtil.isNotBlank(newVal)) {
-          if (newVal instanceof Number) {
-            this.radioSelected = newVal;
-          } else {
-            this.selectUserList = newVal;
-            if (this.userList.length > 0) {
-              this.$nextTick(() => {
-                this.$refs.dataTable.clearSelection();
-                newVal?.split(",").forEach((key) => {
-                  let item = this.userList.find((item) => key == item.userId);
-                  if (item) {
-                    this.$refs.dataTable.toggleRowSelection(item, true);
-                  }
-                });
-              });
-            }
-          }
-        } else {
-         this.selectUserList = [];
-        }
-      },
-      immediate: true,
-    },
+    // selectValues: {
+    //   handler(newVal) {
+    //     if (StrUtil.isNotBlank(newVal)) {
+    //       if (newVal instanceof Number) {
+    //         this.radioSelected = newVal;
+    //       } else {
+    //         this.selectUserList = newVal;
+    //       }
+    //     }
+    //   },
+    //   immediate: true,
+    // },
+    // selectNameValues: {
+    //   handler(newVal) {
+    //     if (StrUtil.isNotBlank(newVal)) {
+    //       this.selectNameValues = newVal;
+    //       // console.log("选中的userId=", this.selectUserList);
+    //       // console.log("选中的昵称=", newVal);
+    //       let userIdList = this.selectUserList.split(",");
+    //       let userNameList = newVal.split(",");
+    //       // console.log(userIdList,userNameList)
+    //       for (let i in userIdList) {
+    //         this.handleCheckList(userIdList[i], userNameList[i]);
+    //         console.log("2222");
+    //       }
+    //     }
+    //   },
+    //   immediate: true,
+    // },
     userList: {
       handler(newVal) {
-        if (
-          StrUtil.isNotBlank(newVal) &&
-          this.selectUserList.length > 0 &&
-          newVal.length > 0
-        ) {
-          this.$nextTick(() => {
-            this.$refs.dataTable.clearSelection();
-            this.selectUserList?.split(",").forEach((key) => {
-              let item = newVal.find((item) => key == item.userId);
-              if (item) {
-                this.$refs.dataTable.toggleRowSelection(item, true);
-              }
+        if (StrUtil.isNotBlank(newVal) && newVal.length > 0) {
+          if (this.selectUserList && this.selectUserList.length > 0) {
+            this.$nextTick(() => {
+              this.$refs.dataTable.clearSelection();
+              console.log("this.selectUserList=", this.selectUserList);
+              this.selectUserList?.split(",").forEach((key) => {
+                let item = newVal.find((item) => key == item.userId);
+                if (item) {
+                  this.$refs.dataTable.toggleRowSelection(item, true);
+                  this.handleCheckList(item.userId, item.nickName);
+                }
+              });
             });
-          });
+          } else {
+            this.$refs.dataTable.clearSelection();
+          }
         }
       },
       immediate: true, // 立即生效
@@ -347,10 +360,11 @@ export default {
   },
   methods: {
     initialize() {
+      this.checkList = [];
       // 遮罩层
       this.loading = true;
       // 选中数组
-      this.ids = [];
+      // this.ids = [];
       // 非单个禁用
       this.single = true;
       // 非多个禁用
@@ -386,6 +400,21 @@ export default {
       };
       this.getList();
       this.getDeptTree();
+      if (this.selectValues) {
+        this.selectUserList = this.selectValues;
+        // console.log("选中的userId=", this.selectUserList);
+        // console.log("选中的昵称=", newVal);
+        let userIdList = this.selectUserList.split(",");
+        let userNameList = this.selectNameValues.split(",");
+        // console.log("接收的数据", userIdList, userNameList);
+        for (let i in userIdList) {
+          this.handleCheckList(userIdList[i], userNameList[i]);
+        }
+      } else {
+        this.selectUserList = null;
+        this.checkList = [];
+        this.$refs.dataTable.clearSelection();
+      }
     },
     /** 查询用户列表 */
     getList() {
@@ -402,6 +431,20 @@ export default {
         this.deptOptions = response.data;
       });
     },
+    handleCheckList(userId, nickName) {
+      this.checkList.push({
+        userId: userId.toString(),
+        nickName: nickName,
+      });
+      // console.log("========未去重数组", this.checkList);
+      let obj = {};
+      let nArr = this.checkList.reduce((cur, next) => {
+        obj[next.userId] ? "" : (obj[next.userId] = true && cur.push(next));
+        return cur;
+      }, []);
+      this.checkList = nArr;
+      // console.log("现在的checkList=", this.checkList);
+    },
     handleUserVisible(userVisible) {
       this.userVisible = userVisible;
     },
@@ -424,9 +467,24 @@ export default {
       this.queryParams.deptId = data.id;
       this.handleQuery();
     },
+    handleSelect(selection, row) {
+      let posIndex;
+      let flag = this.checkList.some((item, index) => {
+        if (item.userId === row.userId.toString()) {
+          posIndex = index;
+          return true;
+        }
+      });
+      if (flag) {
+        this.checkList.splice(posIndex, 1);
+      }
+    },
     // 多选框选中数据
     handleMultipleUserSelect(selection) {
-      this.$emit("handleUserSelect", selection);
+      for (let i in selection) {
+        this.handleCheckList(selection[i].userId, selection[i].nickName);
+      }
+      this.$emit("handleUserSelect", this.checkList);
     },
     // 单选框选中数据
     handleSingleUserSelect(selection) {

+ 3 - 1
ruoyi-ui/src/views/invest/pool/detail.vue

@@ -126,7 +126,8 @@
             ref="projectList"
             :projectId="id"
           ></projectList> -->
-          <dueDiligenceList ref="dueDiligenceList" :projectId="id" :projectName="detailInfo.projectName"></dueDiligenceList>
+          <!-- /:projectName="detailInfo.projectName" -->
+          <dueDiligenceList :type="1" ref="dueDiligenceLists" :projectId="id" ></dueDiligenceList>
         </div>
         <div v-show="activeName === '5'">
           <tableForm
@@ -258,6 +259,7 @@ export default {
       getPool(this.id).then((response) => {
         this.detailInfo = response.data;
         this.active = parseInt(response.data.projectStage) - 1;
+        this.$refs.dueDiligenceLists.getProjectName(response.data.projectName);
       });
     },