当前位置:   article > 正文

基于若依的ruoyi-nbcio-plus里抄送人多页选择人员的bug修复_
作者:天景科技苑 | 2024-06-18 08:06:36

更多ruoyi-nbcio功能请看演示系统

gitee源代码地址

前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio

演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/

更多nbcio-boot功能请看演示系统 

gitee源代码地址

后端代码: https://gitee.com/nbacheng/nbcio-boot

前端代码:https://gitee.com/nbacheng/nbcio-vue.git

在线演示(包括H5) : http://218.75.87.38:9888

1、在审批的时候抄送人选择多页情况下,会出现不同页面的选择人员无法同时选择,会丢失的现象出现。

2、主要还是分页选择后数据刷新丢失引起的,所以还是采用el-table官方的推荐方式进行处理

3、具体抄送人员页面跳转如下,主要把el-tag的close先关闭,否则会出现问题:

  1. <el-row>
  2. <el-col :span="20" :offset="2">
  3. <el-form ref="taskFormRef" :model="taskForm" :rules="rules" label-width="120px">
  4. <el-form-item label="审批意见" prop="comment">
  5. <el-input type="textarea" :rows="5" v-model="taskForm.comment" placeholder="请输入 审批意见" />
  6. </el-form-item>
  7. <el-form-item label="抄送人" prop="copyUserIds">
  8. <el-tag :key="index" v-for="(item, index) in copyUser" :disable-transitions="false" @close="handleClose('copy', item)">
  9. {{ item.nickName }}
  10. </el-tag>
  11. <el-button class="button-new-tag" type="primary" icon="el-icon-plus" circle @click="onSelectCopyUsers" />
  12. </el-form-item>
  13. <el-form-item label="指定审批人" prop="copyUserIds">
  14. <el-tag :key="index" v-for="(item, index) in nextUser" :disable-transitions="false" @close="handleClose('next', item)">
  15. {{ item.nickName }}
  16. </el-tag>
  17. <el-button class="button-new-tag" type="primary" icon="el-icon-plus" circle @click="onSelectNextUsers" />
  18. </el-form-item>
  19. </el-form>
  20. </el-col>
  21. </el-row>

4、选择人员的对话框调整如下:

  1. <el-dialog :title="userSelectDialog.title" v-model="userSelectDialog.visible" width="60%" append-to-body>
  2. <el-row type="flex" :gutter="20">
  3. <!--部门数据-->
  4. <el-col :span="5">
  5. <el-card shadow="never" style="height: 100%">
  6. <template #header>
  7. <span>部门列表</span>
  8. </template>
  9. <div>
  10. <el-input v-model="deptName" placeholder="请输入部门名称" prefix-icon="Search" clearable />
  11. <el-tree
  12. :data="deptOptions"
  13. :props="{label: 'label', children: 'children'}"
  14. :expand-on-click-node="false"
  15. :filter-node-method="filterNode"
  16. ref="deptTreeRef"
  17. default-expand-all
  18. @node-click="handleNodeClick"
  19. />
  20. </div>
  21. </el-card>
  22. </el-col>
  23. <el-col :span="18">
  24. <el-table
  25. ref="userTableRef"
  26. :key="userSelectType"
  27. height="400"
  28. v-loading="userLoading"
  29. :data="userList"
  30. highlight-current-row
  31. :row-key="getRowKeys"
  32. @selection-change="handleSelectionChange"
  33. >
  34. <el-table-column v-if="userSelectType === 'copy' || userSelectType === 'next' || userSelectType === 'addSign'"
  35. :reserve-selection="true" width="55" type="selection" />
  36. <!--<el-table-column v-else width="30">
  37. <template #default="scope">
  38. <el-radio :label="scope.row.userId" v-model="currentUserId">{{''}}</el-radio>
  39. </template>
  40. </el-table-column>-->
  41. <el-table-column label="用户名称" align="center" prop="userName" />
  42. <el-table-column label="用户昵称" align="center" prop="nickName" />
  43. <el-table-column label="手机" align="center" prop="phonenumber" />
  44. </el-table>
  45. <pagination :total="userTotal" v-model:page="queryUserParams.pageNum" v-model:limit="queryUserParams.pageSize" @pagination="getList" />
  46. </el-col>
  47. </el-row>
  48. <template #footer>
  49. <el-button @click="userSelectDialog.visible = false">取 消</el-button>
  50. <el-button type="primary" @click="submitUserData">确 定</el-button>
  51. </template>
  52. </el-dialog>

      主要调整了增加:row-key="getRowKeys"和:reserve-selection="true",保证分页数据的保留,同时去掉其它不需要的

5、getRowKeys如下:

  1. function getRowKeys(row) {
  2. return row.userId // 指定table id
  3. }

6、同时getList去掉之前的选择人员机制,如下:

  1. /** 查询用户列表 */
  2. const getList = async () => {
  3. userLoading.value = true;
  4. const res = await selectUser(proxy?.addDateRange(queryUserParams.value, dateRange.value));
  5. userList.value = res.rows;
  6. userTotal.value = res.total;
  7. //toggleSelection(userMultipleSelection.value);
  8. userLoading.value = false;
  9. }

7、效果图如下:


本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/734311
推荐阅读
相关标签
  

闽ICP备14008679号