Former-commit-id: f4723fc5d879805629c76ff7c1b1293a3d858885
Former-commit-id: 45000d5f382ad80477649ae0c0a42376b6989e1d
1.0
wanggang 5 years ago
parent 5876d6edf9
commit affe096ed7

@ -304,7 +304,7 @@ $(function () {
InitControls(); InitControls();
}); });
$('body').on('change', '#OrganNumber.submit', function () { $('body').on('change', 'select.organ.submit', function () {
$(this).parents('form').submit(); $(this).parents('form').submit();
}); });

@ -926,10 +926,10 @@ namespace Platform.Controllers
return Content($"var hasLogin={(User.Identity.IsAuthenticated ? "true" : "false")}"); return Content($"var hasLogin={(User.Identity.IsAuthenticated ? "true" : "false")}");
} }
public IActionResult ChangeOrgan(string organNumber, string returnUrl) public IActionResult ChangeOrgan(string userCurrentOrganNumber, string returnUrl)
{ {
this.HttpContext.JwtSignOut(); this.HttpContext.JwtSignOut();
this.HttpContext.JwtSignIn(User.Identity.Name, false, organNumber); this.HttpContext.JwtSignIn(User.Identity.Name, false, userCurrentOrganNumber);
return Redirect(returnUrl); return Redirect(returnUrl);
} }

@ -5,6 +5,7 @@ using IoT.Shared.Application.Domain.Entities;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Platform.ViewModels;
using System.Linq; using System.Linq;
namespace Platform.Controllers namespace Platform.Controllers
@ -62,18 +63,24 @@ namespace Platform.Controllers
return Helper.Instance.MacEncrypt(id); return Helper.Instance.MacEncrypt(id);
} }
public IActionResult Index2(string organNumber) public IActionResult Index2(HomeModel model)
{ {
var currentOrganNumber = User.GetUserData(); var currentOrganNumber = User.GetUserData();
var organ = this._organRepo.ReadOnlyTable().FirstOrDefault(o => o.Number == currentOrganNumber); var organ = this._organRepo.ReadOnlyTable()
.FirstOrDefault(o => o.Number == currentOrganNumber);
var children = this._organRepo.Table() var children = this._organRepo.Table()
.Where(o => o.Left >= organ.Left && o.Right <= organ.Right) .Where(o => o.Left >= organ.Left && o.Right <= organ.Right)
.Include(o => o.Buildings) .Include(o => o.Buildings)
.ToList(); .ToList();
var root = children.FirstOrDefault(o => o.Number == currentOrganNumber); var root = children.FirstOrDefault(o => o.Number == currentOrganNumber);
ViewBag.Organ = new object[] { Convert(root) };
return View(); model.Organ = root;
if (string.IsNullOrEmpty(model.OrganNumber))
{
model.OrganNumber = root.Number;
}
return View(model);
} }
public IActionResult Index3() public IActionResult Index3()

@ -1,15 +1,10 @@
using IoT.Shared.Application.Domain.Entities; using IoT.Shared.Application.Domain.Entities;
using System;
using System.Collections.Generic;
namespace Platform.ViewModels namespace Platform.ViewModels
{ {
public class HomeModel public class HomeModel
{ {
public Guid? OrganId { get; set; } public string OrganNumber { get; set; }
public Organ Organ { get; set; } public Organ Organ { get; set; }
public Guid? BuildingId { get; set; }
public List<Organ> Organs { get; set; } = new List<Organ>();
public List<Building> Buildings { get; set; } = new List<Building>();
} }
} }

@ -1,39 +1,62 @@
@model Platform.ViewModels.HomeModel @model Platform.ViewModels.HomeModel
@{ @{
var organ = ViewBag.Organ as object; HideBread = true;
var organTreeJson = new object[] { Convert(Model.Organ) }.ToJson();
} }
<br />
<a-row> <div class="row">
<a-col :span="3"> <div class="col-2">
<a-tree :tree-data="treeData" show-icon default-expand-all :default-selected-keys="['0-0-0']"> <div class="card" style="min-height:100%;">
<a-icon slot="switcherIcon" type="down" /> <div class="card-header">
<a-icon slot="smile" type="smile-o" /> 机构及下属机构
<a-icon slot="meh" type="smile-o" /> </div>
<template slot="custom" slot-scope="{ selected }"> <div class="card-body">
<a-icon :type="selected ? 'frown' : 'frown-o'" /> <a-tree :tree-data="nodes" show-line="true" default-expand-all="true" :default-selected-keys="selected" v-on:select="onSelect">
</template>
</a-tree> </a-tree>
</a-col> </div>
<a-col :span="9"> </div>
col-12 </div>
</a-col> <div class="col-10">
<div class="card" style="min-height:100%;">
<div class="card-header">
机构概况
</div>
<div class="card-body">
</div>
</div>
</div>
</div>
</a-row> </a-row>
@section scripts{ @section scripts{
<script> <script>
const treeData = @Html.Raw(organ.ToJson()); var nodes = @Html.Raw(organTreeJson);
var app = new Vue({ var app = new Vue({
el: '#app', el: '#app',
data: function () { data: function () {
return { return {
treeData nodes,
selected:['@Html.Raw(Model.OrganNumber)']
}; };
}, },
methods: { methods: {
load: function () { onSelect: function (selectedKeys, info) {
var vm = this; window.location = '@Url.Action()?organNumber='+selectedKeys[0];
console.log('selected', selectedKeys, info);
} }
} }
}); });
</script> </script>
} }
@functions{
object Convert(Organ root)
{
return new
{
title = root.Name,
key = root.Number,
children = root.Children.Select(o => Convert(o))
};
}
}

@ -51,7 +51,7 @@
<li class="nav-item"> <li class="nav-item">
<form method="get" action="@Url.Action("ChangeOrgan","Account",new{area=""})"> <form method="get" action="@Url.Action("ChangeOrgan","Account",new{area=""})">
<input type="hidden" name="ReturnUrl" value="@ViewContext.HttpContext.Request.GetDisplayUrl()" /> <input type="hidden" name="ReturnUrl" value="@ViewContext.HttpContext.Request.GetDisplayUrl()" />
@Html.DropDownList("OrganNumber", list,new { @class = "form-control submit" }) @Html.DropDownList("UserCurrentOrganNumber", list,new { @class = "form-control organ submit" })
</form> </form>
</li> </li>
} }

Loading…
Cancel
Save