当前位置:   article > 正文

vue-vben-admin 与.net core 结合实例 【自学与教学 小白教程】---第4节---部门管理

vue-vben-admin 与.net core 结合实例 【自学与教学 小白教程】---第4节---部门管理

 ue-vben-admin 与.net core 结合实例 这里计划使用.net core 作为后端 。目标:打造好看 易用 开箱即用 的netcore一体化框架。Vue Vben Admin For NetCore 取命 hcrain-vvadmin 我不是前端人员 但有时开发还是要写一些界面。

之前使用layui是时候 狠心升级下了。

只为了好看----------于是  小白教程来了。可以根据 git提交一步步来重现我的实现。

【后面会发布到在线 效果预览   还没发布啊 我要将它改造成我自己想要的。要时间。这里占个坑而已。不回改文章了。】

目录

目录

第4节---部门列表的增删查改及对应API开发

​编辑

目录

第4节---部门列表(树形列表)的增删查改及对应API开发

​编辑​

1部门表定义

2部门表API开发及定义

3列表新的接触

表单页

git提交参考


1部门表定义

2部门表API开发及定义

本系列文章后在还说会什么?



第4节---部门列表(树形列表)的增删查改及对应API开发

1部门表定义

因为是层级结构   这里定义子级数据对象Children 

  1. /// <summary>
  2. /// 部门
  3. /// </summary>
  4. public class SysDep : RootEntityBase<int>
  5. {
  6. public SysDep()
  7. {
  8. CreatedTime = DateTime.Now;
  9. }
  10. /// <summary>
  11. /// 机构代码
  12. /// </summary>
  13. public string OrgCode { get; set; }
  14. /// <summary>
  15. /// 上级代码
  16. /// </summary>
  17. public int ParentId { get; set; } = 0;
  18. /// <summary>
  19. /// 所属机构
  20. /// </summary>
  21. public long OrgId { get; set; }
  22. /// <summary>
  23. /// 部门名称
  24. /// </summary>
  25. public string DepName { get; set; }
  26. /// <summary>
  27. /// 部门代码
  28. /// </summary>
  29. public string DepCode { get; set; }
  30. /// <summary>
  31. /// 排序
  32. /// </summary>
  33. public int OrderNo { get; set; }
  34. /// <summary>
  35. /// 添加时间
  36. /// </summary>
  37. [SugarColumn(IndexGroupNameList = new string[] { "index_time1" })]
  38. public DateTime CreatedTime { get; set; }
  39. /// <summary>
  40. /// (子级)不映射数据库字段
  41. /// </summary>
  42. [SugarColumn(IsIgnore = true)]
  43. public List<SysDep> Children { get; set; }
  44. }

2部门表API开发及定义

系统使用ORM框架 ---SqlSugar  有多好用 ,这里就不说了,建议.net 人员多支持。

后台系统对单表实现了所有的常规接口,不需要开发。只要单独开发树形查询接口即可。

添加/删除/导入/导出/统计/查询/列新

这里要单独实现非标准接口 树结构查询 。SqlSugar有支持,使用即可ToTree。

  1. /// <summary>
  2. /// 部门
  3. /// </summary>
  4. [Route("api/[controller]/[action]")]
  5. [ApiController]
  6. public class SysDepController : BaseSimpleController<SysDep>
  7. {
  8. public SysDepController(IUnitOfWork unitOfWork, IBaseRepository<SysDep> rep, IWebHostEnvironment env)
  9. {
  10. base._env = env;
  11. base._rep = rep;
  12. base._unitOfWork = unitOfWork;
  13. }
  14. /// <summary>
  15. /// 查询树
  16. /// </summary>
  17. /// <param name="input"></param>
  18. /// <returns></returns>
  19. [HttpPost]
  20. public async Task<ResultMo<List<SysDep>>> SearchTree(QueryPageInput input)
  21. {
  22. input.queryKeyValue.Add(new AndWhere {
  23. FieldName= "ParentId", FieldValue="0"
  24. } );
  25. var main = await _rep.QueryPage(input);
  26. var Ids = main.data.Select(m => m.Id).ToList();
  27. var re = await _rep.Db.Queryable<SysDep>().Where(m => Ids.Contains(m.Id)|| Ids.Contains(m.ParentId)).
  28. ToTreeAsync(it => it.Children, it => it.ParentId, 0);
  29. re.ForEach(m =>
  30. {
  31. if (m.Children == null) m.Children = new List<SysDep> { };
  32. });
  33. return new ResultMo<List<SysDep>>(re, main.dataCount);
  34. }
  35. }

3列表新的接触

1查询时间段,数据处理

  1. console.log(prams);
  2. postsearch = [];
  3. for (let pS in prams) {
  4. if (pS != "page" && pS != "pageSize" && prams[pS]!=undefined) {
  5. if (pS.startsWith('find_rp_')) {//find_g_ find_s_
  6. console.log('日期2');
  7. console.log(pS.replace('find_rp_',''));
  8. postsearch.push({
  9. fieldName: 'find_g_'+pS.replace('find_rp_',''),
  10. fieldValue: prams[pS][0]
  11. });
  12. postsearch.push({
  13. fieldName: 'find_s_'+pS.replace('find_rp_',''),
  14. fieldValue: prams[pS][1]
  15. });
  16. }
  17. else {
  18. postsearch.push({
  19. fieldName: pS,
  20. fieldValue: prams[pS]
  21. });
  22. }
  23. }
  24. }

2树形的不用单独配置  他本身有字级后 会自动处理?我也不明白,哈哈。(开关没找到)

表单页

下拉数据的转换。

使用apiselect  只会第一次进行会加载,后面不会更新,那位大神可以告诉二次进入也可以更新的方法?

这里改成 select 每次进入接取绑定。

  1. //下接数据获取
  2. var postsearch = [{ fieldName: 'ParentId', fieldValue: '0' }];
  3. postsearch.push({
  4. fieldName: 'find_q_orgCode',
  5. fieldValue: useUserStore().getUserInfo.orgCode
  6. });
  7. const listdata = await HcrainPost('/api/SysDep/Search', {
  8. queryKeyValue: postsearch,
  9. });
  10. var stype = [{}];
  11. for (let i in listdata.data) {
  12. stype.push({
  13. label: listdata.data[i]['depName'],
  14. value: listdata.data[i]['id']
  15. }
  16. );
  17. }
  18. console.log(stype);
  19. //将数据放到下拉框上
  20. updateSchema({
  21. field: 'parentId',
  22. componentProps: {
  23. options: unref(stype),
  24. },
  25. });

git提交参考

多谢

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/82723
推荐阅读
相关标签
  

闽ICP备14008679号