示例#1
0
        private static string BuliderFormView(DyncField dyncField, string value)
        {
            var html = string.Empty;

            if (dyncField.Type == "name" && dyncField.Fmt == "extend")
            {
                var surname = string.Empty;
                var name    = string.Empty;

                if (value.IsNotNullOrEmpty())
                {
                    var val = value.Split('.');
                    if (val.Length > 1)
                    {
                        surname = val[0];
                        name    = val[1];
                    }
                }
                html = FormTemp.GetTempByKey("formItemName", dyncField.Lbl,
                                             dyncField.Name, dyncField.Reqd, dyncField.Uuiq, surname, name
                                             );
            }
            else if (dyncField.Type == "file")
            {
                html = FormTemp.GetTempByKey("formFileItem", dyncField.Lbl,
                                             dyncField.Name,
                                             FormItemView.BuliderFormItemView(dyncField, value));
            }
            else if (dyncField.Type == "section")
            {
                html = FormTemp.GetTempByKey("section", dyncField.Lbl, dyncField.Instr);
            }
            else
            {
                html = FormTemp.GetTempByKey("formItem", dyncField.Lbl, FormItemView.BuliderFormItemView(dyncField, value),
                                             (dyncField.Instr ?? string.Empty));
            }
            return(html);
        }
示例#2
0
        private void SetDyncFieldInfo(DyncField item, string formCode, List <DyncField> dyncField)
        {
            item.Info = CreateDyncFieldInfoByType(item.Type, item.Fldsz);
            item.Name = GetSourceName(item.Lbl).UpperFirst().TrimSpace();
            while (dyncField.Any(t => t.Name == item.Name))
            {
                item.Name = $"_{StringUitl.NextRandom(100000000, 1)}";
            }

            item.DyncForm   = formCode;
            item.Updatetime = DateTime.UtcNow;

            if (item.Itms.IsNotNull() && item.Source == 0)
            {
                item.SourceValue = item.Itms.SerializeObjectFilterNullValue().Trim();
            }

            if (item.Secdesc.IsNotNullOrEmpty())
            {
                item.Instr = item.Secdesc;
            }
        }
示例#3
0
        public static string BuliderFormItemView(DyncField dyncField, string value)
        {
            SetSourceValue(dyncField);
            var builder = CreateTagBuilder(dyncField.Type);

            var htmlAttributes = new Dictionary <string, string>()
            {
                { "data-name", dyncField.Name },
                { "name", dyncField.Name },
                { "id", dyncField.Name },
                { "data-lbl", dyncField.Lbl },
                { "data-reqd", dyncField.Reqd },
                { "data-uuid", dyncField.Uuiq ?? "0" }
            };

            var defalutValue = value ?? dyncField.DefaultValue ?? string.Empty;

            if (dyncField.Type == "date" && defalutValue.IsNullOrEmpty())
            {
                defalutValue = DateTime.Now.ToString("yyyy-MM-dd");
            }
            if (dyncField.Type == "datetime" && defalutValue.IsNullOrEmpty())
            {
                defalutValue = DateTime.Now.ToString("yyyy-MM-dd HH:ss");
            }
            if (dyncField.Type == "time" && defalutValue.IsNullOrEmpty())
            {
                defalutValue = DateTime.Now.ToString("HH:ss");
            }
            if (dyncField.Type == "number" ||
                dyncField.Type == "text" ||
                dyncField.Type == "url" ||
                dyncField.Type == "email" ||
                dyncField.Type == "map" ||
                dyncField.Type == "phone" ||
                dyncField.Type == "name" ||
                dyncField.Type == "address" ||
                dyncField.Type == "time" ||
                dyncField.Type == "date" ||
                dyncField.Type == "datetime")
            {
                htmlAttributes.Add("value", defalutValue);
                htmlAttributes.Add("placeholder", "请入输" + dyncField.Lbl);
            }

            if (dyncField.Type == "file")
            {
                htmlAttributes.Add("value", defalutValue);
            }

            if (dyncField.Type == "name")
            {
                htmlAttributes.Add("data-fmt", dyncField.Fmt);
            }

            if (dyncField.Type == "textarea")
            {
                builder.SetInnerText(defalutValue);
                htmlAttributes.Add("placeholder", "请入输" + dyncField.Lbl);
            }

            if (dyncField.Type == "dropdown2")
            {
                htmlAttributes.Add("data-pn", dyncField.PN ?? "2");
                htmlAttributes.Add("data-select", dyncField.Name);
            }

            if (dyncField.Type == "dropdown")
            {
                builder.InnerHtml = GetDropdownElement(dyncField, "<option value='" + _checked + "'>" + _value + "</option>", string.Empty);
                htmlAttributes.Add("value", defalutValue);
            }

            if (dyncField.Type == "checkbox" || dyncField.Type == "radio")
            {
                builder.InnerHtml = GetDropdownElement(dyncField, FormTemp.GetTempByKey(dyncField.Type, dyncField.Id.ToString(),
                                                                                        _isChecked, _checked, _value), defalutValue);
            }

            var required = string.Empty;

            //if (dyncField.Reqd == "1")
            //{
            //	htmlAttributes.Add("required", "");
            //	htmlAttributes.Add("oninvalid", "setCustomValidity('请入输" + dyncField.Name + "!');");
            //	htmlAttributes.Add("oninput", "setCustomValidity('');");
            //}
            //builder.IdAttributeDotReplacement = "-";
            //builder.GenerateId(dyncField.Id.ToString());
            builder.MergeAttributes(htmlAttributes);

            return(builder.TagName == "input"
                ? builder.ToString(TagRenderMode.SelfClosing)
                : builder.ToString(TagRenderMode.Normal));
        }
示例#4
0
        private static void SetSourceValue(DyncField dyncField)
        {
            if (dyncField.Source == 0)
            {
                return;
            }

            if (dyncField.Source == 1 && dyncField.SourceValue.IsNullOrEmpty())
            {
                throw new Exception("url Param is null error");
            }

            var urlParam = dyncField.SourceValue.Split('=')[1];

            if (urlParam.IsNullOrEmpty())
            {
                throw new Exception("url urlParam is length number error");
            }

            var url = dyncField.SourceValue.Split('?')[0];

            if (url.IsNullOrEmpty())
            {
                throw new Exception("api url error");
            }

            var str = urlParam.Split('|');

            if (str.Length < 3)
            {
                throw new Exception("url Param is length number error");
            }

            var dyncExp = new DyncExp();

            if (str[0].IsNullOrEmpty())
            {
                throw new Exception("url table Param is error");
            }

            dyncExp.Table = str[0];
            if (str[1].IsNullOrEmpty())
            {
                throw new Exception("url FiledName Param is error");
            }

            dyncExp.FiledName = str[1];
            if (str[2].IsNotNullOrEmpty())
            {
                dyncExp.Param = str[2].Split(',').ToDictionary(t => t.Split(':')[0], x => x.Split(':')[1]);
            }

            var result = ApiProxy.Send(Common.Http.HttpMethod.POST, url, new StringContent(dyncExp.SerializeObject(), Encoding.UTF8));

            if (result.IsNullOrEmpty() || result == "null")
            {
                return;
            }

            dyncField.Itms = result.DeserializeObject <IEnumerable <SQLDynamicItem> >().Select(t =>
            {
                return(new DropdownModel()
                {
                    value = t.Value,
                    Checked = t.Value
                });
            });
        }
示例#5
0
 public DynamicDataservices()
 {
     _sQLDynamic = new SQLDynamic("DyncData");
     _dyncForm   = new DyncForm();
     _dyncField  = new DyncField();
 }