iotgateway/WalkingTec.Mvvm/WalkingTec.Mvvm.Mvc/Views/_Framework/Selector.cshtml

109 lines
4.1 KiB
Plaintext
Raw Normal View History

2021-12-14 06:10:44 +00:00
@model WalkingTec.Mvvm.Core.IBasePagedListVM<WalkingTec.Mvvm.Core.TopBasePoco, WalkingTec.Mvvm.Core.BaseSearcher>
@using WalkingTec.Mvvm.Core.Extensions;
@{
var tempvar = $"var_{Guid.NewGuid().ToNoSplitString()}";
var linkscript = "";
}
<script>
function submitSelect() {
var res = []
,multiSel = @(ViewBag.MultiSel.ToString().ToLower())
,displayStrArr = []
,hiddenStrArr = [];
selected = @(tempvar);
@if (ViewBag.SubmitFunc != null)
{
@(ViewBag.SubmitFunc.ToString())<Text>(selected);</Text>;
}
if (selected.length > 0) {
if (!multiSel && selected.length > 1) {
layui.layer.msg('@WalkingTec.Mvvm.Core.CoreProgram._localizer?["Sys.SelectOneRowMax"]');
return;
}
for (var i = 0; i < selected.length; i++) {
displayStrArr.push(selected[i]['@ViewBag.TextName']);
hiddenStrArr.push("<input type='hidden' wtm-tag='wtmselector' name='@ViewBag.FieldName' value='" + selected[i]['@ViewBag.ValName'] + "' />");
}
}
else {
hiddenStrArr.push("<input type='hidden' wtm-tag='wtmselector' name='@ViewBag.FieldName' value='' />");
}
ff.CloseDialog();
var vals = $('#@(ViewBag.SelId)_Container input[type=hidden]');
for (var i = 0; i < vals.length; i++) {
vals[i].remove();
}
$("#@(ViewBag.SelId)_Display").val(displayStrArr.join(","));
$("#@(ViewBag.SelId)_Display").after(hiddenStrArr.join(''));
@if (ViewBag.TriggerUrl != null)
{
linkscript = $@"
var url = '{ViewBag.TriggerUrl}?t=' + new Date().getTime();
for (var i = 0; i < selected.length; i++) {{
url += '&id=' +selected[i]['{ViewBag.ValName}'];
}}
ff.ChainChange(url, $('#Selector_{ViewBag.FieldName}'));
";
}
@Html.Raw(linkscript);
}
var @(tempvar) = @Html.Raw(ViewBag.SelectData);
function gridCheckedFunc(obj) {
var ids = []
,gridId = 'wtTable_@Model.UniqueId';
if (obj.checked === true) { //选中
if (obj.type === "all") { // 全选
var selected = ff.GetSelectionData(gridId);
for (var i = 0; i < selected.length; i++) {
var checked = false;
for (var j = 0; j < @(tempvar).length; j++) { // 是否已经选中
if (@(tempvar)[j].ID == selected[i].ID) {
checked=true;
break;
}
}
if(!checked)
@(tempvar).push(selected[i]);
}
} else {
if (obj.data.ID === undefined) {
obj.data = ff.GetSelectionData(gridId).pop();
}
@(tempvar).push(obj.data);
}
} else { //取消选中
if (obj.type === "all") { // 取消全选
var nonSelected = ff.GetNonSelectionData(gridId);
//移除未选中数据
for (var i = 0; i < nonSelected.length; i++) {
@(tempvar).removeByID(nonSelected[i]);
}
} else {
@(tempvar).removeByID(obj.data);
}
}
for (var i = 0; i < @(tempvar).length; i++) {
ids.push(@(tempvar)[i].ID);
}
wtVar_@(Model.UniqueId).config.where.Ids = ids;
}
</script>
<wt:container style="margin:0px 10px 0px 10px" class='donotuse_pdiv' wtm-name="@ViewBag.FieldName" wtm-linkto="@ViewBag.LinkField" id="Selector_@ViewBag.FieldName">
<div style="height:10px">&nbsp;</div>
$$SearchPanel$$
<wt:grid vm="@Model" hidden-panel="true" checked-func="gridCheckedFunc" url="/_Framework/GetPagingData" need-show-filter="false" need-show-print="false" is-in-selector="true"/>
<div style="margin-bottom:3px;">
<wt:row align="AlignEnum.Right">
<wt:button click="submitSelect();" text="@WalkingTec.Mvvm.Core.CoreProgram._localizer?["Sys.OK"]" size="ButtonSizeEnum.Normal" />
</wt:row>
</div>
</wt:container>