armg 1 rok temu
rodzic
commit
6bdf2c3915

+ 2 - 1
ruoyi-ui/.env.development

@@ -5,8 +5,9 @@ VUE_APP_TITLE = 投资系统
 ENV = 'development'
 
 # 若依管理系统/开发环境
+# 部署
+# VUE_APP_BASE_API = 'http://47.103.79.143:8091/dev-api'  
 VUE_APP_BASE_API = '/dev-api'
-# VUE_APP_BASE_API = '192.168.100.234:8080'
 VUE_APP_CORPID = "ding4ab75ecd53106cde4ac5d6980864d335"
 # 投资部的部门id
 VUE_APP_DEPTID = '103'

+ 3 - 1
ruoyi-ui/.env.production

@@ -5,7 +5,9 @@ VUE_APP_TITLE = 投资系统
 ENV = 'production'
 
 # 若依管理系统/生产环境
-VUE_APP_BASE_API = '10.32.2.215:8091/prod-api'
+# VUE_APP_BASE_API = 'http://47.103.79.143:8091/prod-api'
+#部署
+VUE_APP_BASE_API = 'http://47.103.79.143:8091/' 
 VUE_APP_CORPID = "ding4ab75ecd53106cde4ac5d6980864d335"
 # 投资部的部门id
 VUE_APP_DEPTID = '103'

BIN
ruoyi-ui/dist.zip


+ 1 - 1
ruoyi-ui/src/views/invest/channel/index.vue

@@ -300,7 +300,7 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-preventReClick>确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>

+ 1 - 1
ruoyi-ui/src/views/invest/company/index.vue

@@ -192,7 +192,7 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-preventReClick>确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>

+ 1 - 1
ruoyi-ui/src/views/invest/components/channelItem.vue

@@ -45,7 +45,7 @@
         @pagination="getList"
       />
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submit">确 定</el-button>
+        <el-button type="primary" @click="submit" v-preventReClick>确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>

+ 1 - 1
ruoyi-ui/src/views/invest/components/contractList.vue

@@ -253,7 +253,7 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-preventReClick>确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>

+ 19 - 21
ruoyi-ui/src/views/invest/components/dueDiligenceList.vue

@@ -71,7 +71,7 @@
           <el-form-item label="尽调人员" prop="investigatePerson">
             <div
               class="el-input__inner inputSimulation"
-              @click="userVisible = true"
+              @click="handleSelectPeople"
               :class="{ show_disabled: dueDiligenceType === '3' }"
             >
               {{
@@ -120,7 +120,9 @@
           </el-form-item>
         </el-form>
         <div slot="footer" class="dialog-footer">
-          <el-button type="primary" @click="submitDueForm">确 定</el-button>
+          <el-button type="primary" @click="submitDueForm" v-preventReClick
+            >确 定</el-button
+          >
           <el-button @click="cancelDueForm">取 消</el-button>
         </div>
       </el-dialog>
@@ -203,7 +205,10 @@
           </el-form-item>
         </el-form>
         <div slot="footer" class="dialog-footer">
-          <el-button type="primary" @click="submitduePeportForm"
+          <el-button
+            type="primary"
+            @click="submitduePeportForm"
+            v-preventReClick
             >确 定</el-button
           >
           <el-button @click="cancelduePeportForm">取 消</el-button>
@@ -211,22 +216,12 @@
       </el-dialog>
     </el-table>
     <!--选择人员-->
-    <el-dialog
-      title="选择人员"
-      :visible.sync="userVisible"
-      width="80%"
-      :show-close="false"
-    >
-      <flow-user
-        :checkType="checkType"
-        :selectValues="selectValues"
-        @handleUserSelect="handleUserSelect"
-      ></flow-user>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="userVisible = false">取 消</el-button>
-        <el-button type="primary" @click="checkUserComplete">确 定</el-button>
-      </span>
-    </el-dialog>
+    <selecUser
+      ref="flowUser"
+      :checkType="checkType"
+      :selectValues="selectValues"
+      @handleUserSelect="handleUserSelect"
+    ></selecUser>
   </div>
 </template>
 <script>
@@ -241,7 +236,7 @@ import {
 import projectItem from "./projectItem";
 import fileItem from "./fileItem";
 import selecDept from "./selecDept";
-import FlowUser from "@/components/flow/User";
+import selecUser from "./selecUser";
 
 export default {
   props: {
@@ -253,7 +248,7 @@ export default {
     },
   },
   dicts: ["up_way", "project_stage"],
-  components: { projectItem, fileItem, selecDept, FlowUser },
+  components: { projectItem, fileItem, selecDept, selecUser },
   data() {
     const validateLogo = (rule, value, callback) => {
       if (this.reportFileList.length <= 0) {
@@ -353,6 +348,9 @@ export default {
         // this.loading = false;
       });
     },
+    handleSelectPeople() {
+      this.$refs.flowUser.handleUserVisible(true);
+    },
     // 修改尽调申请
     handleUpdate(row) {
       let that = this;

+ 1 - 1
ruoyi-ui/src/views/invest/components/fileList.vue

@@ -263,7 +263,7 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-preventReClick>确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>

+ 1 - 1
ruoyi-ui/src/views/invest/components/followList.vue

@@ -314,7 +314,7 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-preventReClick>确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>

+ 21 - 8
ruoyi-ui/src/views/invest/components/listAllfile.vue

@@ -1,15 +1,28 @@
 <template>
   <div class="app-container">
-    <div>
-      <el-card class="box-card public-margin-b-20" v-for="(item, index) in fileList" :key="index">
+    <div v-if="fileList.length > 0">
+      <el-card
+        class="box-card public-margin-b-20"
+        v-for="(item, index) in fileList"
+        :key="index"
+      >
         <div slot="header" class="clearfix">
           <span>{{ item.uploadTypeName }}</span>
         </div>
         <div v-for="(items, indexs) in item.children" :key="indexs">
-            <div class="fileItems" title="点击下载" @click="handlePreview(items)"> {{ items.newUploadName }}</div>
+          <div class="fileItems" title="点击下载" @click="handlePreview(items)">
+            {{ items.newUploadName }}
+          </div>
         </div>
       </el-card>
     </div>
+    <div
+      v-else
+      class="public-flex-center public-padded-t-20"
+      style="color: #909399"
+    >
+      暂无数据
+    </div>
   </div>
 </template>
 
@@ -114,10 +127,10 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
-.fileItems{
-    cursor: pointer;
-    color:#2440b3;
-    text-decoration: underline;
-    margin:8px 0;
+.fileItems {
+  cursor: pointer;
+  color: #2440b3;
+  text-decoration: underline;
+  margin: 8px 0;
 }
 </style>

+ 1 - 1
ruoyi-ui/src/views/invest/components/meetingItem.vue

@@ -49,7 +49,7 @@
         @pagination="getList"
       />
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submit">确 定</el-button>
+        <el-button type="primary" @click="submit" v-preventReClick>确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>

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

@@ -223,7 +223,7 @@
         fixed="right"
         align="center"
         class-name="small-padding fixed-width"
-        width="160"
+        width="200"
       >
         <template slot-scope="scope">
           <el-button
@@ -252,7 +252,7 @@
             @command="handleCommand($event, scope.row)"
           >
             <!-- class="custom-blue-color"  -->
-            <span class="el-dropdown-link" @click="getButtonItem(scope.row)">
+            <span class="el-dropdown-link" v-preventReClick @click="getButtonItem(scope.row)">
               <el-button size="mini" type="text" icon="el-icon-d-arrow-right"
                 >更多</el-button
               >
@@ -463,28 +463,17 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-preventReClick>确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
     <!--选择人员-->
-    <el-dialog
-      title="选择人员"
-      :visible.sync="userVisible"
-      width="60%"
-      :show-close="false"
-    >
-      <flow-user
+      <selecUser
         ref="flowUser"
         :checkType="checkType"
         :selectValues="selectValues"
         @handleUserSelect="handleUserSelect"
-      ></flow-user>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="userVisible = false">取 消</el-button>
-        <el-button type="primary" @click="checkUserComplete">确 定</el-button>
-      </span>
-    </el-dialog>
+      ></selecUser>
   </div>
 </template>
 
@@ -500,7 +489,7 @@ import {
 import projectItem from "./projectItem";
 import fileItem from "./fileItem";
 import selecDept from "./selecDept";
-import FlowUser from "@/components/flow/User";
+import selecUser from "./selecUser";
 
 export default {
   props: {
@@ -513,7 +502,7 @@ export default {
     },
   },
   dicts: ["meeting_type", "project_stage", "project_group"],
-  components: { projectItem, selecDept, fileItem, FlowUser },
+  components: { projectItem, selecDept, fileItem, selecUser },
   watch: {
     "form.meetingType": function (newValue, oldValue) {
       // console.log(newValue,"this.form.meetingType", this.form.meetingType);
@@ -646,13 +635,14 @@ export default {
   },
   methods: {
     handleSelectPeople() {
-      this.userVisible = true;
+      // this.userVisible = true;
+      this.$refs.flowUser.handleUserVisible(true);
     },
     /*用户选中赋值*/
-    checkUserComplete() {
-      this.userVisible = false;
-      this.checkType = "";
-    },
+    // checkUserComplete() {
+    //   this.userVisible = false;
+    //   this.checkType = "";
+    // },
     // 用户选中数据
     handleUserSelect(selection) {
       const that = this;

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

@@ -118,9 +118,10 @@
         >
         </el-date-picker>
       </el-form-item>
-      <el-form-item label="注册资本" prop="tProjectCompany.registeredCapital">
+      <el-form-item label="注册资本(万元)" prop="tProjectCompany.registeredCapital">
         <el-input
           v-model="form.tProjectCompany.registeredCapital"
+          onkeyup="value=value.replace(/[^0-9.]/g,'').replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/,'$1$2.$3')"
           placeholder="请输入注册资本"
         />
       </el-form-item>
@@ -130,9 +131,10 @@
           placeholder="请输入注册地址"
         />
       </el-form-item>
-      <el-form-item label="实缴资本" prop="tProjectCompany.paidCapital">
+      <el-form-item label="实缴资本(万元)" prop="tProjectCompany.paidCapital">
         <el-input
           v-model="form.tProjectCompany.paidCapital"
+          onkeyup="value=value.replace(/[^0-9.]/g,'').replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/,'$1$2.$3')"
           placeholder="请输入实缴资本"
         />
       </el-form-item>
@@ -310,7 +312,7 @@
       </el-form-item>
       <el-form-item class="btnList" v-if="type === '1'">
         <el-button @click="goBack">返 回</el-button>
-        <el-button type="primary" @click="submitForm">提 交</el-button>
+        <el-button type="primary" @click="submitForm" v-preventReClick>提 交</el-button>
       </el-form-item>
     </el-form>
   </div>

+ 1 - 1
ruoyi-ui/src/views/invest/components/projectItem.vue

@@ -62,7 +62,7 @@
         @pagination="getList"
       />
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submit">确 定</el-button>
+        <el-button type="primary" @click="submit" v-preventReClick>确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>

+ 36 - 24
ruoyi-ui/src/views/invest/components/projectList.vue

@@ -322,7 +322,14 @@
         width="120"
         align="center"
         prop="industry"
-      />
+        ><template slot-scope="scope">
+          <dict-tag
+            :options="dict.type.CUSTOMER_TRADE"
+            :value="scope.row.industry"
+          />
+        </template>
+      </el-table-column>
+
       <el-table-column
         label="项目所属公司"
         width="300"
@@ -500,7 +507,11 @@
             trigger="click"
             @command="handleSurvey($event, scope.row)"
           >
-            <span class="el-dropdown-link" @click="getButtonItem(scope.row)">
+            <span
+              class="el-dropdown-link"
+              v-preventReClick
+              @click="getButtonItem(scope.row)"
+            >
               <el-button size="mini" type="text" icon="el-icon-d-arrow-right"
                 >更多</el-button
               >
@@ -567,7 +578,9 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-preventReClick
+          >确 定</el-button
+        >
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -602,7 +615,7 @@
         <el-form-item label="尽调人员" prop="investigatePerson">
           <div
             class="el-input__inner inputSimulation"
-            @click="userVisible = true"
+            @click="handleSelectPeople"
             :class="{ show_disabled: dueDiligenceType === '3' }"
           >
             {{
@@ -647,7 +660,9 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitDueForm">确 定</el-button>
+        <el-button type="primary" @click="submitDueForm" v-preventReClick
+          >确 定</el-button
+        >
         <el-button @click="cancelDueForm">取 消</el-button>
       </div>
     </el-dialog>
@@ -726,27 +741,20 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitduePeportForm">确 定</el-button>
+        <el-button type="primary" @click="submitduePeportForm" v-preventReClick
+          >确 定</el-button
+        >
         <el-button @click="cancelduePeportForm">取 消</el-button>
       </div>
     </el-dialog>
     <!--选择人员-->
-    <el-dialog
-      title="选择人员"
-      :visible.sync="userVisible"
-      width="60%"
-      :show-close="false"
-    >
-      <flow-user
-        :checkType="checkType"
-        :selectValues="selectValues"
-        @handleUserSelect="handleUserSelect"
-      ></flow-user>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="userVisible = false">取 消</el-button>
-        <el-button type="primary" @click="checkUserComplete">确 定</el-button>
-      </span>
-    </el-dialog>
+
+    <selecUser
+      ref="flowUser"
+      :checkType="checkType"
+      :selectValues="selectValues"
+      @handleUserSelect="handleUserSelect"
+    ></selecUser>
   </div>
 </template>
 
@@ -765,7 +773,7 @@ import { selectByFlowKey } from "@/api/flowable/definition";
 import { listChannel } from "@/api/invest/channel";
 import projectItem from "./projectItem";
 import fileItem from "./fileItem";
-import FlowUser from "@/components/flow/User";
+import selecUser from "./selecUser";
 export default {
   props: {
     type: {
@@ -788,8 +796,9 @@ export default {
     "invest_ploy",
     "invest_worth",
     "financing_stage",
+    "CUSTOMER_TRADE",
   ],
-  components: { projectItem, fileItem, FlowUser },
+  components: { projectItem, fileItem, selecUser },
   data() {
     const validateLogo = (rule, value, callback) => {
       if (this.reportFileList.length <= 0) {
@@ -1052,6 +1061,9 @@ export default {
       this.userVisible = false;
       this.checkType = "";
     },
+    handleSelectPeople() {
+      this.$refs.flowUser.handleUserVisible(true);
+    },
     // 用户选中数据
     handleUserSelect(selection) {
       const that = this;

+ 457 - 0
ruoyi-ui/src/views/invest/components/selecUser.vue

@@ -0,0 +1,457 @@
+<template>
+  <div>
+    <el-dialog
+      title="选择人员"
+      :visible.sync="userVisible"
+      width="70%"
+      :show-close="false"
+    >
+      <el-row :gutter="20">
+        <!--部门数据-->
+        <el-col :span="6" :xs="24">
+          <div class="head-container">
+            <el-input
+              v-model="deptName"
+              placeholder="请输入部门名称"
+              clearable
+              size="small"
+              prefix-icon="el-icon-search"
+              style="margin-bottom: 20px"
+            />
+          </div>
+          <div class="head-container">
+            <el-tree
+              :data="deptOptions"
+              :props="defaultProps"
+              :expand-on-click-node="false"
+              :filter-node-method="filterNode"
+              ref="tree"
+              node-key="id"
+              :default-expand-all="false"
+              highlight-current
+              @node-click="handleNodeClick"
+            />
+          </div>
+        </el-col>
+        <!--用户数据-->
+        <el-col :span="18" :xs="24">
+          <el-form
+            :model="queryParams"
+            ref="queryForm"
+            size="small"
+            :inline="true"
+            v-show="showSearch"
+            label-width="68px"
+          >
+            <el-form-item label="用户名称" prop="userName">
+              <el-input
+                v-model="queryParams.userName"
+                placeholder="请输入用户名称"
+                clearable
+                style="width: 150px"
+                @keyup.enter.native="handleQuery"
+              />
+            </el-form-item>
+            <el-form-item label="手机号码" prop="phonenumber">
+              <el-input
+                v-model="queryParams.phonenumber"
+                placeholder="请输入手机号码"
+                clearable
+                style="width: 150px"
+                @keyup.enter.native="handleQuery"
+              />
+            </el-form-item>
+            <el-form-item>
+              <el-button
+                type="primary"
+                icon="el-icon-search"
+                size="mini"
+                @click="handleQuery"
+                >搜索</el-button
+              >
+              <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+                >重置</el-button
+              >
+            </el-form-item>
+          </el-form>
+          <el-table
+            v-show="checkType === 'multiple'"
+            ref="dataTable"
+            v-loading="loading"
+            :row-key="getRowKey"
+            :data="userList"
+            @selection-change="handleMultipleUserSelect"
+          >
+            <el-table-column
+              type="selection"
+              :reserve-selection="true"
+              width="50"
+              align="center"
+            />
+            <el-table-column
+              label="用户编号"
+              align="center"
+              key="userId"
+              prop="userId"
+              v-if="columns[0].visible"
+            />
+            <el-table-column
+              label="登录账号"
+              align="center"
+              key="userName"
+              prop="userName"
+              v-if="columns[1].visible"
+              :show-overflow-tooltip="true"
+            />
+            <el-table-column
+              label="用户姓名"
+              align="center"
+              key="nickName"
+              prop="nickName"
+              v-if="columns[2].visible"
+              :show-overflow-tooltip="true"
+            />
+            <el-table-column
+              label="部门"
+              align="center"
+              key="deptName"
+              prop="dept.deptName"
+              v-if="columns[3].visible"
+              :show-overflow-tooltip="true"
+            />
+            <el-table-column
+              label="手机号码"
+              align="center"
+              key="phonenumber"
+              prop="phonenumber"
+              v-if="columns[4].visible"
+              width="120"
+            />
+          </el-table>
+          <el-table
+            v-show="checkType === 'single'"
+            v-loading="loading"
+            :data="userList"
+            @current-change="handleSingleUserSelect"
+          >
+            <el-table-column width="55" align="center">
+              <template slot-scope="scope">
+                <el-radio v-model="radioSelected" :label="scope.row.userId">{{
+                  ""
+                }}</el-radio>
+              </template>
+            </el-table-column>
+            <el-table-column
+              label="用户编号"
+              align="center"
+              key="userId"
+              prop="userId"
+              v-if="columns[0].visible"
+            />
+            <el-table-column
+              label="登录账号"
+              align="center"
+              key="userName"
+              prop="userName"
+              v-if="columns[1].visible"
+              :show-overflow-tooltip="true"
+            />
+            <el-table-column
+              label="用户姓名"
+              align="center"
+              key="nickName"
+              prop="nickName"
+              v-if="columns[2].visible"
+              :show-overflow-tooltip="true"
+            />
+            <el-table-column
+              label="部门"
+              align="center"
+              key="deptName"
+              prop="dept.deptName"
+              v-if="columns[3].visible"
+              :show-overflow-tooltip="true"
+            />
+            <el-table-column
+              label="手机号码"
+              align="center"
+              key="phonenumber"
+              prop="phonenumber"
+              v-if="columns[4].visible"
+              width="120"
+            />
+          </el-table>
+          <pagination
+            v-show="total > 0"
+            :total="total"
+            :page-sizes="[5, 10]"
+            :page.sync="queryParams.pageNum"
+            :limit.sync="queryParams.pageSize"
+            @pagination="getList"
+          />
+        </el-col>
+      </el-row>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="handleUserVisible(false)">取 消</el-button>
+        <el-button type="primary" @click="checkUserComplete">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listUser, deptTreeSelect } from "@/api/system/user";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import { StrUtil } from "@/utils/StrUtil";
+
+export default {
+  name: "FlowUser",
+  dicts: ["sys_normal_disable", "sys_user_sex"],
+  components: { Treeselect },
+  // 接受父组件的值
+  props: {
+    // 回显数据传值
+    selectValues: {
+      type: Number | String | Array,
+      default: null,
+      required: false,
+    },
+    // 表格类型
+    checkType: {
+      type: String,
+      default: "multiple",
+      required: true,
+    },
+  },
+  data() {
+    return {
+      userVisible: false,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 用户表格数据
+      userList: [],
+      // 弹出层标题
+      title: "",
+      // 部门树选项
+      deptOptions: undefined,
+      // 是否显示弹出层
+      open: false,
+      // 部门名称
+      deptName: undefined,
+      // 表单参数
+      form: {},
+      defaultProps: {
+        children: "children",
+        label: "label",
+      },
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userName: undefined,
+        phonenumber: undefined,
+        status: undefined,
+        deptId: undefined,
+      },
+      // 列信息
+      columns: [
+        { key: 0, label: `用户编号`, visible: true },
+        { key: 1, label: `用户名称`, visible: true },
+        { key: 2, label: `用户昵称`, visible: true },
+        { key: 3, label: `部门`, visible: true },
+        { key: 4, label: `手机号码`, visible: true },
+        { key: 5, label: `状态`, visible: true },
+        { key: 6, label: `创建时间`, visible: true },
+      ],
+      radioSelected: null, // 单选框传值
+      selectUserList: [], // 回显数据传值
+    };
+  },
+  watch: {
+    // 根据名称筛选部门树
+    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,
+    },
+    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);
+              }
+            });
+          });
+        }
+      },
+      immediate: true, // 立即生效
+      deep: true, //监听对象或数组的时候,要用到深度监听
+    },
+    userVisible(newVal, oldVal) {
+      if (newVal === true) {
+        this.initialize();
+      }
+    },
+  },
+  // beforeDestroy() {
+  //   console.log("销毁组件1");
+  // },
+  // destroyed() {
+  //   console.log("销毁组件2");
+  // },
+  created() {
+    // this.getList();
+    // this.getDeptTree();
+  },
+  methods: {
+    initialize() {
+      // 遮罩层
+      this.loading = true;
+      // 选中数组
+      this.ids = [];
+      // 非单个禁用
+      this.single = true;
+      // 非多个禁用
+      this.multiple = true;
+      // 显示搜索条件
+      this.showSearch = true;
+      // 总条数
+      this.total = 0;
+      // 用户表格数据
+      // this.userList = [];
+      // 弹出层标题
+      this.title = "";
+      // 部门树选项
+      this.deptOptions = undefined;
+      // 是否显示弹出层
+      this.open = false;
+      // 部门名称
+      this.deptName = undefined;
+      // 表单参数
+      this.form = {};
+      this.defaultProps = {
+        children: "children",
+        label: "label",
+      };
+      // 查询参数
+      this.queryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        userName: undefined,
+        phonenumber: undefined,
+        status: undefined,
+        deptId: undefined,
+      };
+      this.getList();
+      this.getDeptTree();
+    },
+    /** 查询用户列表 */
+    getList() {
+      this.loading = true;
+      listUser(this.queryParams).then((response) => {
+        this.userList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /** 查询部门下拉树结构 */
+    getDeptTree() {
+      deptTreeSelect().then((response) => {
+        this.deptOptions = response.data;
+      });
+    },
+    handleUserVisible(userVisible) {
+      this.userVisible = userVisible;
+    },
+    /*用户选中赋值*/
+    checkUserComplete() {
+      this.userVisible = false;
+      // this.checkType = "";
+    },
+    // 保存选中的数据id,row-key就是要指定一个key标识这一行的数据
+    getRowKey(row) {
+      return row.id;
+    },
+    // 筛选节点
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.label.indexOf(value) !== -1;
+    },
+    // 节点单击事件
+    handleNodeClick(data) {
+      this.queryParams.deptId = data.id;
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleMultipleUserSelect(selection) {
+      this.$emit("handleUserSelect", selection);
+    },
+    // 单选框选中数据
+    handleSingleUserSelect(selection) {
+      this.radioSelected = selection.userId; //点击当前行时,radio同样有选中效果
+      this.$emit("handleUserSelect", selection);
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.queryParams.deptId = undefined;
+      this.$refs.tree.setCurrentKey(null);
+      this.handleQuery();
+    },
+  },
+};
+</script>
+<style>
+/*隐藏radio展示的label及本身自带的样式*/
+/*.el-radio__label{*/
+/*  display:none;*/
+/*}*/
+</style>

+ 1 - 1
ruoyi-ui/src/views/invest/components/tableForm.vue

@@ -2029,7 +2029,7 @@
       </table>
       <el-form-item class="btnList" v-if="!readonly">
         <el-button @click="goBack">返 回</el-button>
-        <el-button type="primary" @click="submitForm">提 交</el-button>
+        <el-button type="primary" @click="submitForm" v-preventReClick>提 交</el-button>
       </el-form-item>
     </el-form>
   </div>

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

@@ -62,7 +62,7 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-preventReClick>确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>

+ 0 - 1
ruoyi-ui/vue.config.js

@@ -10,7 +10,6 @@ const CompressionPlugin = require('compression-webpack-plugin')
 const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题
 
 const port = process.env.port || process.env.npm_config_port || 80 // 端口
-
 // vue.config.js 配置说明
 //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
 // 这里只列一部分,具体配置参考文档