Beispiel #1
0
        public ActionResult CopyInputItems()
        {
            var result  = QWF.Framework.Web.ResultWebData.Default();
            var curUser = QWF.Framework.Web.UserContext.GetCurrentInfo();

            var fromInputCode = this.Request["fromInputCode"].SafeConvert().ToStr();
            var toInputCode   = this.Request["toInputCode"].SafeConvert().ToStr();

            if (fromInputCode.Length == 0 || toInputCode.Length == 0)
            {
                throw new UIValidateException("请选择需要复制的表单数据。");
            }
            if (fromInputCode == toInputCode)
            {
                throw new UIValidateException("源表单“需要复制“和“复制到”表单不能相同。");
            }
            using (var db = DbAccess.DbCRMContext.Create())
            {
                var dbModelToInput = db.T_QCRM_Form.Where(w => w.Code == toInputCode).FirstOrDefault();
                if (dbModelToInput == null)
                {
                    throw new UIValidateException("“复制到”表单不存在。");
                }

                //查找表主键,
                var pkInfo = (from a in db.T_QCRM_Form
                              join b in db.T_QCRM_Tables on a.MainTable equals b.Code
                              join c in db.T_QCRM_Fields on b.Code equals c.TableCode
                              where c.PK == 1
                              select new { c.TableCode, FileCode = c.Code }).ToList().FirstOrDefault();

                db.T_QCRM_FormInput.Where(w => w.FormCode == fromInputCode).ToList().ForEach(item =>
                {
                    var now     = DateTime.Now;
                    var dbModel = db.T_QCRM_FormInput.Where(w => w.FormCode == toInputCode && w.TableCode == item.TableCode && w.FieldCode == item.FieldCode).FirstOrDefault();
                    var isAdd   = dbModel == null ? true : false;//  //新增 or 编辑

                    if (isAdd)
                    {
                        dbModel            = new DbAccess.T_QCRM_FormInput();
                        dbModel.CreateTime = now;
                        dbModel.CreateUser = curUser.CurrentUserCode;
                    }
                    else
                    {
                        dbModel.UpdateTime = now;
                        dbModel.UpdateUser = curUser.CurrentUserCode;
                    }

                    dbModel.FormCode         = toInputCode;
                    dbModel.Name             = item.Name;
                    dbModel.TableCode        = item.TableCode;
                    dbModel.FieldCode        = item.FieldCode;
                    dbModel.InputName        = item.InputName;
                    dbModel.SortId           = item.SortId;
                    dbModel.InputType        = item.InputType;
                    dbModel.DefaultValueType = item.DefaultValueType;
                    dbModel.DefaultValue     = item.DefaultValue;
                    dbModel.DictionaryCode   = item.DictionaryCode;
                    dbModel.CssHeight        = item.CssHeight;
                    dbModel.CssWidth         = item.CssWidth;

                    if (isAdd)
                    {
                        if (pkInfo.TableCode != item.TableCode || pkInfo.FileCode != item.FieldCode)
                        {
                            //当为编辑状态则不写入PK
                            db.T_QCRM_FormInput.Add(dbModel);
                        }
                    }
                });

                db.SaveChanges();
            }

            return(this.Content(Newtonsoft.Json.JsonConvert.SerializeObject(result)));
        }
Beispiel #2
0
        public ActionResult Save()
        {
            var result  = QWF.Framework.Web.ResultWebData.Default();
            var curUser = QWF.Framework.Web.UserContext.GetCurrentInfo();

            var id               = this.Request["id"].SafeConvert().ToInt32(0);
            var formCode         = this.Request["formCode"].SafeConvert().ToStr();
            var fieldCode        = this.Request["fieldCode"].SafeConvert().ToStr();
            var name             = this.Request["name"].SafeConvert().ToStr();
            var inputType        = this.Request["inputType"].SafeConvert().ToStr();
            var defaultValueType = this.Request["defaultValueType"].SafeConvert().ToStr();
            var defaultValue     = this.Request["defaultValue"].SafeConvert().ToStr();
            var sysCode          = this.Request["sysCode"].SafeConvert().ToStr();
            var cssWidth         = this.Request["cssWidth"].SafeConvert().ToInt32(0);
            var cssHeight        = this.Request["cssHeight"].SafeConvert().ToInt32(0);
            var inputDesc        = this.Request["inputDesc"].SafeConvert().ToStr();


            if (formCode.Length == 0)
            {
                throw new UIValidateException("所属表单不能为空填。");
            }
            if (fieldCode.Length == 0)
            {
                throw new UIValidateException("所属字段不能为空填。");
            }
            if (inputType.Length == 0)
            {
                throw new UIValidateException("表单类型不能空填。");
            }
            if (inputType == "system" && defaultValueType.Length == 0)
            {
                throw new UIValidateException("默认值类型不能为空填。");
            }

            if (defaultValueType == "request" && defaultValue.Length == 0)
            {
                throw new UIValidateException("默认值请填写客户端参数名称。");
            }

            if (defaultValueType == "sys_value" && defaultValue.Length == 0)
            {
                throw new UIValidateException("默认值能为空填。");
            }

            if (cssWidth == 0)
            {
                cssWidth = (inputType == "checkbox" || inputType == "radio") ? 30 : 300; //单选or复选默认30,其它默认300
            }
            using (var db = DbAccess.DbCRMContext.Create())
            {
                var form = db.T_QCRM_Form.Where(w => w.Code == formCode).FirstOrDefault();
                if (form == null)
                {
                    throw new UIValidateException("表单所属表没有找到表单代码CODE=【{0}】。", formCode);
                }

                if (id == 0)
                {
                    if (db.T_QCRM_FormInput.Where(w => w.FormCode == formCode && w.TableCode == form.MainTable && w.FieldCode == fieldCode).Count() > 0)
                    {
                        throw new UIValidateException("已经配置了该表单【{0}】数据项,请重新选择。", formCode);
                    }

                    var dbModel   = new DbAccess.T_QCRM_FormInput();
                    var maxSortId = 0;
                    if (inputType != "system")
                    {
                        maxSortId = db.T_QCRM_FormInput.Where(w => w.FormCode == formCode).ToList().Max(m => m.SortId) + 1;
                    }
                    dbModel.Name             = name;
                    dbModel.FormCode         = formCode;
                    dbModel.TableCode        = form.MainTable;
                    dbModel.FieldCode        = fieldCode;
                    dbModel.InputName        = form.MainTable + "_" + fieldCode;
                    dbModel.CreateTime       = DateTime.Now;
                    dbModel.CreateUser       = curUser.CurrentUserCode;
                    dbModel.SortId           = maxSortId;
                    dbModel.InputType        = inputType;
                    dbModel.DefaultValueType = defaultValueType;
                    dbModel.CssHeight        = cssHeight;
                    dbModel.CssWidth         = cssWidth;
                    dbModel.InputDesc        = inputDesc;

                    if (defaultValueType != "sys_value" && defaultValueType != "request")
                    {
                        dbModel.DefaultValue = string.Empty;
                    }
                    else
                    {
                        dbModel.DefaultValue = defaultValueType == "sys_code" ? sysCode : defaultValue;
                    }

                    db.T_QCRM_FormInput.Add(dbModel);
                }
                else
                {
                    //
                    var dbModel = db.T_QCRM_FormInput.Where(w => w.Id == id).FirstOrDefault();
                    if (dbModel == null)
                    {
                        throw new UIValidateException("表单数据项不存在 ID=【{0}】。", id);
                    }

                    dbModel.Name             = name;
                    dbModel.FormCode         = formCode;
                    dbModel.TableCode        = form.MainTable;
                    dbModel.FieldCode        = fieldCode;
                    dbModel.InputName        = form.MainTable + "_" + fieldCode;
                    dbModel.UpdateTime       = DateTime.Now;
                    dbModel.UpdateUser       = curUser.CurrentUserCode;
                    dbModel.SortId           = inputType == "system" ? 0 : dbModel.SortId;
                    dbModel.InputType        = inputType;
                    dbModel.DefaultValueType = defaultValueType;
                    dbModel.CssHeight        = cssHeight;
                    dbModel.CssWidth         = cssWidth;
                    dbModel.InputDesc        = inputDesc;

                    if (defaultValueType != "sys_value" && defaultValueType != "request")
                    {
                        dbModel.DefaultValue = string.Empty;
                    }
                    else
                    {
                        dbModel.DefaultValue = defaultValueType == "sys_code" ? sysCode : defaultValue;
                    }
                }
                db.SaveChanges();
            }

            return(this.Content(Newtonsoft.Json.JsonConvert.SerializeObject(result)));
        }