明源售楼系统技术解析(五)开发商销控、客户自助查询
2015-06-03 19:34
746 查看
1、开发商销控
1.1主界面截图:1.1图(1)
1.2主界面代码:
<div id="w开发商销控" class="easyui-window" title="开发商销控" data-options="fit:true" style="width:1108px;height:585px"> <div class="easyui-layout" data-options="fit:true" style="width:1108px;height:505px"> <div data-options="region:'north'" style="width:1108px;height:30px"> <table> <tr> <td>项目名称</td><td><input class="easyui-combobox" id="comXiangMuMC" data-options="onSelect:onXiangMuSelect" style="width:150px" /></td> <td style="width:20px"></td> <td>项目分区</td><td><input class="easyui-combobox" id="comXiangMuFQ" data-options="onSelect:onXiangMuFenQuSelect" style="width:150px" /></td> <td style="width:20px"></td> <td>楼栋</td><td><input class="easyui-combobox" id="comXiangLD" data-options="onSelect:onChangeHouse" style="width:150px" /></td> <td style="width:20px"></td> <td><a id="LouPanSouShuo" href="../XiaoShouQianTai/KaiFaShangXiaoKong" class="easyui-linkbutton">刷新</a></td> <td><a id="ShuaXin" onclick="" class="easyui-linkbutton">顺序显示</a></td> <td><a id="YiXiangChaXun" onclick="OpenChuangTi('#w意向查询')" class="easyui-linkbutton">意向查询</a></td> <td><a id="LouPanSouShuo" onclick="" class="easyui-linkbutton">多楼栋</a></td> <td><a id="ShuaXin" onclick="" class="easyui-linkbutton">关闭</a></td> </tr> </table> </div> <div data-options="region:'center'" style="width:1108px;height:475px"> <div class="easyui-layout" data-options="fit:true" style="width:1108px;height:585px"> <div data-options="region:'west'" style="width:650px;height:432px"> <table id="tbFangJianZiLiao" class="easyui-datagrid" data-options="singleSelect:true,onClickCell:onClickRoom"> </table> </div> <div data-options="region:'east'" style="width:550px;height:432px"> <fieldset style="padding:5px;border:1px solid #C0C0C0;width:480px;height:250px;margin-left:15px;" > <legend>房间资料</legend> <table> <tr> <td>房间</td> <td colspan=2><input id="fangjian" style="width:130px" /></td> </tr> <tr> <td>销售状态</td> <td colspan=2><input id="xiaoshouzhuangtai" style="width:80px" /></td> </tr> <tr> <td>房间类型</td> <td colspan=2><input id="fangjianleixing" style="width:80px" /></td> <td>朝向</td> <td colspan=2><input id="chaoxiang" style="width:80px" /></td> </tr> <tr> <td>建筑面积</td> <td><input id="jianzhumianji" style="width:80px" /></td> <td>平米</td> <td>建筑实测</td> <td><input id="jianzhushice" style="width:80px" /></td> <td>平米</td> </tr> <tr> <td>套内面积</td> <td><input id="taoneimianji" style="width:80px" /></td> <td>平米</td> <td>套内实测</td> <td><input id="taoneishice" style="width:80px" /></td> <td>平米</td> </tr> <tr> <td>标准单价</td> <td><input id="biaozhundanjia" style="width:80px" /></td> <td>元/平米</td> <td>套内单价</td> <td><input id="taoneidanjia" style="width:80px" /></td> <td>元/平米</td> </tr> <tr> <td>标准总价</td> <td><input id="biaozhunzongjia" style="width:80px" /></td> <td>元</td> </tr> </table> </fieldset> <div id="menu" class="easyui-menu" style="width: 30px; display: none;"> <!--放置一个隐藏的菜单Div--> <div id="btn_WeiShou" data-options="iconCls:'icon-remove'" onclick="sahj()">1.未售状态</div> <!--具体的菜单事件请自行添加,跟toolbar的方法是基本一样的--> <div id="btn_BaoLiu" data-options="iconCls:'icon-edit'"onclick="bl()">2.保留状态</div>@*菜单选项*@ <div id="btn_YuLiu" data-options="iconCls:'icon-edit'"onclick="yl()">3.预留状态</div> <div id="btn_YuDing" data-options="iconCls:'icon-edit'"onclick="yd()">4.预定状态</div> <div id="btn_RenGou" data-options="iconCls:'icon-edit'"onclick="yy()">5.认购状态</div> <div id="btn_QianYue" data-options="iconCls:'icon-edit'"onclick="qy()">6.签约状态</div> </div> <table id="tbFangJianSuoYouZiLiao" class="easyui-datagrid" data-options="singleSelect:true@*,onRowContextMenu:YouJian*@" style="width:1px;height:1px;"> <thead> <tr> <th data-options="field:'RoomDataID',width:50,hidden:true, align:'center'">房间资料ID</th> <th data-options="field:'FangHao',width:50,hidden:true, align:'center'">房号</th> <th data-options="field:'SellStatusName',width:50,hidden:true, align:'center'">销售状态名称</th> <th data-options="field:'RoomType',width:50,hidden:true, align:'center'">房间类型</th> <th data-options="field:'RoomFaceDirection',width:50,hidden:true, align:'center'">朝向</th> <th data-options="field:'CoveredArea',width:50,hidden:true, align:'center'">套内面积</th> <th data-options="field:'BuildingMeasurement',width:50,hidden:true, align:'center'">建筑实测</th> <th data-options="field:'BuilDingExceptArea',width:50,hidden:true, align:'center'">建筑面积</th> <th data-options="field:'CoverInnerMeasurement',width:50,hidden:true, align:'center'">套内实测</th> <th data-options="field:'CoverInnerUnivalent',width:50,hidden:true, align:'center'">套内面积单价</th> <th data-options="field:'BuildingUnivalent',width:50,hidden:true, align:'center'">建筑面积单价</th> <th data-options="field:'BiaoZhunZongJia',width:50,hidden:true, align:'center'">标准总价</th> <th data-options="field:'XiaoShouJiaID',width:50,hidden:true, align:'center'">销售状态ID</th> </tr> </thead> </table> <fieldset style="padding:5px;border:1px solid #C0C0C0;width:480px;height:130px;margin-left:15px;" > <legend>付款情况</legend> <table> <tr> <td>付款方式:</td> <td colspan=2><input id="" class="easyui-combobox" style="width:140px" /></td> <td style="width:5px"></td> <td>折扣:</td> <td><input id="" style="width:140px" /></td> <td>%</td> </tr> <tr> <td>优惠:</td> <td><input id="" style="width:140px" /></td> <td>元</td> <td style="width:5px"></td> <td>房款总额:</td> <td><input id="" style="width:140px" /></td> <td>元</td> </tr> <tr> <td>按揭总额:</td> <td><input id="" style="width:140px" /></td> <td>元</td> <td style="width:5px"></td> <td>公积金总额:</td> <td><input id="" style="width:140px" /></td> <td>元</td> </tr> </table> <table> <tr> <td style="width:380px"></td> <td><button id="FuKuanXiangQing" onclick="OpenChuangTi('#w付款详情')" style="width:80px">付款详情</button></td> </tr> </table> </fieldset> </div> <div data-options="region:'south'" style="width:550px;height:30px"> <table> <tr> <td><div style="background-color: #FF0000;">签约:</div></td><td><input id="QianYue" readonly ="true" style="width:30px" /></td> <td><div >占:</div></td><td><input id="Zan1" readonly ="true" style="width:30px" />%</td> <td style="width:5px"></td> <td><div style="background-color: #00FFFF;">认购:</div></td><td><input id="RenGou" readonly ="true" style="width:30px" /></td> <td><div >占:</div></td><td><input id="Zan2" readonly ="true" style="width:30px" />%</td> <td style="width:5px"></td> <td><div style="background-color: #FFFF00;">预定:</div></td><td><input id="YuDing" readonly ="true" style="width:30px" /></td> <td><div >占:</div></td><td><input id="Zan3" readonly ="true" style="width:30px" />%</td> <td style="width:5px"></td> <td><div style="background-color: #00FF00;">预留:</div></td><td><input id="YuLiu" readonly ="true" style="width:30px" /></td> <td><div >占:</div></td><td><input id="Zan4" readonly ="true" style="width:30px" />%</td> <td style="width:5px"></td> <td> <div >未售:</div></td><td><input id="WeiShou" readonly ="true" style="width:30px" /></td> <td><div >占:</div></td><td><input id="Zan5" readonly ="true" style="width:30px" />%</td> <td style="width:5px"></td> <td> <div >保留:</div></td><td><input id="BaoLiu" readonly ="true" style="width:30px" /></td> <td><div >占:</div></td><td><input id="Zan6" readonly ="true" style="width:30px" />%</td> </tr> </table> </div> </div> </div> </div> </div>
1.2.1数据库:
开发商销控模块所涉及到的表的关系:
涉及到的表有:
1.3动态列(因为房间的个数不是固定的,因此要动态生成表格):
1.3.1动态列代码(JQuery)
var y;//动态列 var options = {}; var String1 = "[[{ field:'LouChen', title: '楼层', width: 40},"; function onChangeHouse() {//下拉框触发事件 TongJi();//调用统计房间数的方法 $.getJSON("/XiaoShouQianTai/SelectAllRoomData?HouseID=" + $("#comXiangLD").combobox('getValue'), function (data) { $('#tbFangJianSuoYouZiLiao').datagrid('loadData', data);//加载所有房间资料 }); //查询所有房间资料 HouseID = $('#comXiangLD').combobox('getValue'); //赋值给HouseID $.getJSON("/XiaoShouQianTai/TiaoJianChaXunFangJianMiaoShu?LouDongID=" + $('#comXiangLD').combobox('getValue'), function (data) { if (data > 0) { for (var i = 0; i < data; i++) {//for循环,循环遍历每个房间 y = i + 1; if (i < data - 1) { var s = "{ field:'F" + i + "', title: '0" + y + "', width:80,styler: cellStyler},"; //“styler: cellStyler”是变颜色的方法 String1 = String1 + s; } else { var s = "{ field:'F" + i + "', title: '0" + y + "', width: 80,styler: cellStyler}"; // String1 = String1 + s + "]]"; } } options.columns = eval(String1); $('#tbFangJianZiLiao').datagrid(options); $.getJSON("/XiaoShouQianTai/LouDongBiaoMoXing1?LouDongID=" + $('#comXiangLD').combobox('getValue') + "&" + "LouCengHao=1", function (data) { $('#tbFangJianZiLiao').datagrid("loadData", data);//加载房间资料 String1 = "[[{ field:'LouChen', title: '楼层', width: 40},";//楼层 }); } else { Kong(); } }); }动态列界面代码
<div data-options="region:'center'" style="width:1108px;height:475px"> <div class="easyui-layout" data-options="fit:true" style="width:1108px;height:585px"> <div data-options="region:'west'" style="width:650px;height:432px"> <table id="tbFangJianZiLiao" class="easyui-datagrid" data-options="singleSelect:true,onClickCell:onClickRoom"> </table> </div>
1.3下拉框级联
下拉框级联是紧密联系的,当上一个下拉框选中时,下一个下拉框才能进行选择,否则,下一个下拉框将无东西可选。
截图如下
功能实现:
1.3.1数据库存储过程
if @type='SelectProject'--查询项目 begin SELECT ProjectID, ProjectName FROM SYS_ProjectTable end if @type='SelectProjectPartition'--查询项目分区 begin SELECT ProjectSubregionID, ProjectSubregionName, ProjectID FROM SYS_ProjectSubregionTable where ProjectID=@ProjectID--查询的条件ID end if @type='SelectHouseOfID'--查询楼栋 begin SELECT HouseID, HouseName, ProjectSubregionID FROM SYS_HouseTable where ProjectSubregionID=@ProjectSubregionID--查询的条件ID end
1.3.2逻辑层代码:(逻辑层是连接数据库的)
#endregion 项目名称 public DataTable SelectProject()//查询项目 { SqlParameter[] SQLCMpas = { new SqlParameter("@Type",SqlDbType.Char) }; SQLCMpas[0].Value = "SelectProject";//对应数据库的存储过程中的方法名 DataTable dt = myDALMethod.DAL_SelectDB_Par("KaiFaShangXiaoKong_Select", SQLCMpas);//对应存储过程名称 return dt; } public DataTable SelectProjectPartition(int ProjectID)//查询项目分区 { SqlParameter[] SQLCMpas = { new SqlParameter("@Type",SqlDbType.Char),//对应的参数 new SqlParameter("@ProjectID",SqlDbType.Int) }; SQLCMpas[0].Value = "SelectProjectPartition";//对应数据库的存储过程中的方法名 SQLCMpas[1].Value = ProjectID; DataTable dt = myDALMethod.DAL_SelectDB_Par("KaiFaShangXiaoKong_Select", SQLCMpas);//对应存储过程名称 return dt; } public DataTable SelectHouseOfID(int ProjectSubregionID)//查询楼栋 { SqlParameter[] SQLCMpas = { new SqlParameter("@Type",SqlDbType.Char), new SqlParameter("@ProjectSubregionID",SqlDbType.Int) }; SQLCMpas[0].Value = "SelectHouseOfID";//对应数据库的存储过程的方法名 SQLCMpas[1].Value = ProjectSubregionID; DataTable dt = myDALMethod.DAL_SelectDB_Par("KaiFaShangXiaoKong_Select", SQLCMpas);//对应存储过程名称 return dt; }
1.3.3控制器代码:(控制器是联系逻辑层的)
public ActionResult SelectProject_XiangMu()//查询项目 { DataTable dt = myfrmXiaoShouQianTai.SelectProject();//这里对应的是实例化逻辑层,调用逻辑层的查询项目方法 List<Dictionary<string, object>> ListRetrun = ConvertHelper.DtToList(dt); return Json(ListRetrun, JsonRequestBehavior.AllowGet); } public ActionResult SelectProjectPartition_Selecte(int ProjectID)//查询项目分区 { DataTable dt = myfrmXiaoShouQianTai.SelectProjectPartition(ProjectID);//这里对应的是实例化逻辑层,调用逻辑层的查询项目分区方法 List<Dictionary<string, object>> ListRetrun = ConvertHelper.DtToList(dt); return Json(ListRetrun, JsonRequestBehavior.AllowGet); } public ActionResult SelectHouseOfID_Selecte(int ProjectSubregionID)//查询楼栋 { DataTable dt = myfrmXiaoShouQianTai.SelectHouseOfID(ProjectSubregionID);//这里对应的是实例化逻辑层,调用逻辑层的查询楼栋方法 List<Dictionary<string, object>> ListRetrun = ConvertHelper.DtToList(dt); return Json(ListRetrun, JsonRequestBehavior.AllowGet); }1.3.4界面层(JQuery)代码
function getXiangMuMC() {//绑定项目名称 $.getJSON("/XiaoShouQianTai/SelectProject_XiangMu",//这里是调用控制器的方法名 function (data) { $('#comXiangMuMC').combobox({ data: data, valueField: 'ProjectID', //“comXiangMuMC”是下拉框的ID textField: 'ProjectName' }); }); } function onXiangMuSelect() {//获取项目名称 $.getJSON("/XiaoShouQianTai/SelectProjectPartition_Selecte?ProjectID=" + $("#comXiangMuMC").combobox('getValue'), //这里是调用控制器的方法名 function (data) { $('#comXiangMuFQ').combobox({ data: data, valueField: 'ProjectSubregionID', //“comXiangMuFQ”是下拉框的ID textField: 'ProjectSubregionName' }); }); } function onXiangMuFenQuSelect() {//获取项目分区 $.getJSON("/XiaoShouQianTai/SelectHouseOfID_Selecte?ProjectSubregionID=" + $("#comXiangMuFQ").combobox('getValue'), //这里是调用控制器的方法名 function (data) { $('#comXiangLD').combobox({ data: data, valueField: 'HouseID', //“comXiangLD”是下拉框的ID textField: 'HouseName' }); }); }下拉框控件代码:
<td>项目名称</td><td><input class="easyui-combobox" id="comXiangMuMC" data-options="onSelect:onXiangMuSelect" style="width:150px" /></td> <td style="width:20px"></td> <td>项目分区</td><td><input class="easyui-combobox" id="comXiangMuFQ" data-options="onSelect:onXiangMuFenQuSelect" style="width:150px" /></td> <td style="width:20px"></td> <td>楼栋</td><td><input class="easyui-combobox" id="comXiangLD" data-options="onSelect:onChangeHouse" style="width:150px" /></td> <td style="width:20px"></td>
1.4查询房间代码:
1.4.1存储过程
if @type='SelectAllRoomData'--查询楼栋信息(KaiFaShangXiaoKong) begin SELECT SYS_RoomDataTable.RoomDataID, SYS_RoomDataTable.HouseID, SYS_RoomDataTable.RoomCode, SYS_RoomDataTable.RoomUnit, SYS_RoomDataTable.RoomNumber, SYS_RoomDataTable.natureNumber, SYS_RoomDataTable.Floor, SYS_RoomDataTable.ColumnNumber, SYS_RoomDataTable.CoveredArea, SYS_RoomDataTable.BuilDingExceptArea, SYS_RoomDataTable.AreaShare, SYS_RoomDataTable.BalconyArea, SYS_RoomDataTable.RoomFaceDirectionID, SYS_RoomDataTable.RoomTypeID, SYS_AttributeAssembleDetailTable_1.AttributeAssembleDetailName AS RoomType, SYS_UnivalentTable.UnivalentID, SYS_UnivalentTable.BuildingUnivalent, SYS_UnivalentTable.CoverInnerUnivalent, SYS_UnivalentTable.RoomUnivalent, SYS_AreaMeasurementTable.AreaMeasurementID, SYS_AreaMeasurementTable.BuildingMeasurement, SYS_AreaMeasurementTable.CoverInnerMeasurement, SYS_AreaMeasurementTable.ShareMeasurement, SYS_RoomDataTable.RoomRanking, SYS_RoomDataTable.OnbuildingExceptAreaCountNot, SYS_RoomDataTable.LockNot, SYS_StatusChangeTable.StatusChangeID, SYS_StatusChangeTable.SellStatusDetailID, SYS_SellStatusTable.SellStatusName, SYS_AttributeAssembleDetailTable.AttributeAssembleDetailName AS RoomFaceDirection, SYS_StatusChangeTable.DeleteNot, SYS_SellStatusDetailTable.SellStatusID, SYS_RoomDataTable.ZhuangTaiWeiZhenFou, SYS_StatusChangeTable.XiaoShouJiaID--查询房间时要查的字段 FROM SYS_SellStatusDetailTable LEFT OUTER JOIN SYS_StatusChangeTable ON SYS_SellStatusDetailTable.SellStatusDetailID = SYS_StatusChangeTable.SellStatusDetailID LEFT OUTER JOIN SYS_SellStatusTable ON SYS_SellStatusDetailTable.SellStatusID = SYS_SellStatusTable.SellStatusID RIGHT OUTER JOIN SYS_RoomDataTable LEFT OUTER JOIN SYS_AreaMeasurementTable ON SYS_RoomDataTable.RoomDataID = SYS_AreaMeasurementTable.RoomDataID ON SYS_StatusChangeTable.RoomDatumID = SYS_RoomDataTable.RoomDataID LEFT OUTER JOIN--表与表之间的关系 SYS_AttributeAssembleDetailTable ON SYS_RoomDataTable.RoomFaceDirectionID = SYS_AttributeAssembleDetailTable.AttributeAssembleDetailID LEFT OUTER JOIN SYS_AttributeAssembleDetailTable AS SYS_AttributeAssembleDetailTable_1 ON SYS_RoomDataTable.RoomTypeID = SYS_AttributeAssembleDetailTable_1.AttributeAssembleDetailID LEFT OUTER JOIN SYS_UnivalentTable ON SYS_RoomDataTable.RoomDataID = SYS_UnivalentTable.RoomDatumID where SYS_StatusChangeTable.DeleteNot='false' and SYS_RoomDataTable.HouseID=@HouseID--查询的条件 end1.4.2逻辑层代码:(接收来自数据库的数据)
public DataTable SelectAllRoomData(int HouseID)//查询房间的条件ID { SqlParameter[] SQLCMDpas = { new SqlParameter("@type",SqlDbType.Char),//数据库定义的变量 new SqlParameter("@HouseID",SqlDbType.Int), }; SQLCMDpas[0].Value = "SelectAllRoomData";//数据库的存储过程的方法 SQLCMDpas[1].Value =HouseID; DataTable dt = myDALMethod.DAL_SelectDB_Par("KaiFaShangXiaoKong_Select", SQLCMDpas);//数据库存储过程名称 return dt; }//查询所有房间资料
1.4.3控制器代码:(接收来自逻辑层的数据)
public ActionResult SelectAllRoomData(int HouseID) //查询所有房间资料 { DataTable dt = myfrmXiaoShouQianTai.SelectAllRoomData(HouseID);//调用逻辑层的方法,括号里的是条件ID dt.Columns.Add("FangHao",typeof(string)); for (var i = 0; i < dt.Rows.Count; i++) {//for循环遍历所有房间 if (Convert.ToBoolean(dt.Rows[i]["ZhuangTaiWeiZhenFou"]) == true)//判断ZhuangTaiWeiZhenFou是否为true,并执行以下操作 { dt.Rows[i]["FangHao"] = dt.Rows[i]["RoomNumber"]; } else { dt.Rows[i]["FangHao"] = dt.Rows[i]["RoomNumber"].ToString().Trim() + "假";//ZhuangTaiWeiZhenFou不为true,在其房号后加假字 } } List<Dictionary<string, object>> listReturn = ConvertHelper.DtToList(dt); return Json(listReturn, JsonRequestBehavior.AllowGet); }
1.4.4界面层代码(JQuery):
var y;//动态列 var options = {};//自定义的变量 var String1 = "[[{ field:'LouChen', title: '楼层', width: 40},"; function onChangeHouse() {//下拉框触发事件 TongJi();//调用统计房间数的方法 $.getJSON("/XiaoShouQianTai/SelectAllRoomData?HouseID=" + $("#comXiangLD").combobox('getValue'), function (data) { $('#tbFangJianSuoYouZiLiao').datagrid('loadData', data);//加载所有房间资料 }); //查询所有房间资料 HouseID = $('#comXiangLD').combobox('getValue'); //赋值给HouseID $.getJSON("/XiaoShouQianTai/TiaoJianChaXunFangJianMiaoShu?LouDongID=" + $('#comXiangLD').combobox('getValue'), function (data) { if (data > 0) { for (var i = 0; i < data; i++) {//for循环,循环遍历每个房间 y = i + 1; if (i < data - 1) { var s = "{ field:'F" + i + "', title: '0" + y + "', width:80,styler: cellStyler},"; //“styler: cellStyler”是变颜色的方法 String1 = String1 + s; } else { var s = "{ field:'F" + i + "', title: '0" + y + "', width: 80,styler: cellStyler}"; // String1 = String1 + s + "]]"; } } options.columns = eval(String1); $('#tbFangJianZiLiao').datagrid(options); $.getJSON("/XiaoShouQianTai/LouDongBiaoMoXing1?LouDongID=" + $('#comXiangLD').combobox('getValue') + "&" + "LouCengHao=1", function (data) { $('#tbFangJianZiLiao').datagrid("loadData", data);//加载房间资料 String1 = "[[{ field:'LouChen', title: '楼层', width: 40},";//楼层 }); } else { Kong(); } }); }
1.5修改房间状态:
截图:
变更房间状态时,只需要右键点击对应的房间,且单击要改变的房间状态即可,但只是改变假的房间状态ID,并不影响真正的房间状态。查询时若是假销控状态,则房号后面标记为假。
1.5.1存储过程(修改房间状态):
if @type ='RoomData_Update'--修改(状态是否为真) begin Update SYS_RoomDataTable--修改房间资料表 set ZhuangTaiWeiZhenFou=@ZhuangTaiWeiZhenFou where SYS_RoomDataTable.RoomDataID=@RoomDataID--条件ID end
if @type ='Update_JiaID'--修改假状态ID begin update SYS_StatusChangeTable --修改状态更改表 set XiaoShouJiaID=@XiaoShouJiaID where SYS_StatusChangeTable.RoomDatumID=@RoomDatumID--条件ID end
1.5.2逻辑层:
public int btnBaoCun_Click_UpdateRoomData(Boolean ZhuangTaiWeiZhenFou, int RoomDataID)//修改的条件ID { #region 在btnBaoCun_Click事件中修改房间资料表(是否为真) SqlParameter[] SQlCMDpas = { new SqlParameter("@Type", SqlDbType.Char), //数据库的变量 new SqlParameter("@ZhuangTaiWeiZhenFou", SqlDbType.Bit ), new SqlParameter("@RoomDataID", SqlDbType.Int ), }; SQlCMDpas[0].Value = "RoomData_Update";//存储过程中的方法 SQlCMDpas[1].Value = ZhuangTaiWeiZhenFou;//要对应顺序 SQlCMDpas[2].Value = RoomDataID; int mydt = myDALMethod.DAL_OPTableDB_Par("KaiFaShangXiaoKong_Select", SQlCMDpas);//数据库的存储过程名称 return mydt; #endregion } public int btnBaoCun_Click_UpdateJiaID(int XiaoShouJiaID, int RoomDatumID)//修改的条件ID { #region 在btnBaoCun_Click事件中保存进程 SqlParameter[] SQlCMDpas = { new SqlParameter("@Type", SqlDbType.Char),//数据库的变量 new SqlParameter("@XiaoShouJiaID", SqlDbType.Int), new SqlParameter("@RoomDatumID", SqlDbType.Int ), }; SQlCMDpas[0].Value = "Update_JiaID";//存储过程中的方法 SQlCMDpas[1].Value = XiaoShouJiaID;//要对应顺序 SQlCMDpas[2].Value = RoomDatumID; int mydt = myDALMethod.DAL_OPTableDB_Par("PW_PaymentType", SQlCMDpas);//数据库的存储过程名称 return mydt; #endregion }1.5.3控制器:
#region 修改假ID public ContentResult XiuGaiJiaID(string XiaoShouJiaID, string RoomDatumID) { int i = myfrmXiaoShouQianTai.btnBaoCun_Click_UpdateJiaID(Convert.ToInt32(XiaoShouJiaID), Convert.ToInt32(RoomDatumID));//调用逻辑层的方法 int l = myfrmXiaoShouQianTai.btnBaoCun_Click_UpdateRoomData(false, Convert.ToInt32(RoomDatumID));//调用逻辑层的方法 return Content("true");//跳转到资料主页面 } #endregion
function sahj() {//未售 var row = $('#tbFangJianZiLiao').datagrid('getSelected');//单击单元格获取房间号 if (confirm('是否修改?')) { $.getJSON("/XiaoShouQianTai/XiuGaiJiaID?XiaoShouJiaID=1" + "&" + "RoomDatumID=" + RoomDatumID1 + "&", //把XiaoShouJiaID等于未售状态的ID function (data) { if (data != null) { alert("修改成功"); onChangeHouse();//刷新datagrid } }); } } function yy() {//认购 var row = $('#tbFangJianZiLiao').datagrid('getSelected'); //单击单元格获取房间号 if (confirm('是否修改?')) { $.getJSON("/XiaoShouQianTai/XiuGaiJiaID?XiaoShouJiaID=6" + "&" + "RoomDatumID=" + RoomDatumID1 + "&", //把XiaoShouJiaID等于认购状态的ID function (data) { if (data != null) { alert("修改成功"); onChangeHouse();//刷新datagrid } }); } } function qy() {//签约 var row = $('#tbFangJianZiLiao').datagrid('getSelected'); //单击单元格获取房间号 if (confirm('是否修改?')) { $.getJSON("/XiaoShouQianTai/XiuGaiJiaID?XiaoShouJiaID=5" + "&" + "RoomDatumID=" + RoomDatumID1 + "&", //把XiaoShouJiaID等于签约状态的ID function (data) { if (data != null) { alert("修改成功"); onChangeHouse();//刷新datagrid } }); } } function yd() {//预定 var row = $('#tbFangJianZiLiao').datagrid('getSelected'); //单击单元格获取房间号 if (confirm('是否修改?')) { $.getJSON("/XiaoShouQianTai/XiuGaiJiaID?XiaoShouJiaID=3" + "&"//把XiaoShouJiaID等于预定状态的ID + "RoomDatumID=" + RoomDatumID1 + "&", function (data) { if (data != null) { alert("修改成功"); onChangeHouse();//刷新datagrid } }); } } function yl() {//预留 var row = $('#tbFangJianZiLiao').datagrid('getSelected'); //单击单元格获取房间号 if (confirm('是否修改?')) { $.getJSON("/XiaoShouQianTai/XiuGaiJiaID?XiaoShouJiaID=2" + "&"//把XiaoShouJiaID等于预定状态的ID + "RoomDatumID=" + RoomDatumID1 + "&", function (data) { if (data != null) { alert("修改成功"); onChangeHouse();//刷新datagrid } }); } } function bl() {//保留 var row = $('#tbFangJianZiLiao').datagrid('getSelected'); //单击单元格获取房间号 if (confirm('是否修改?')) { $.getJSON("/XiaoShouQianTai/XiuGaiJiaID?XiaoShouJiaID=4" + "&" + "RoomDatumID=" + RoomDatumID1 + "&", //把XiaoShouJiaID等于保留状态的ID function (data) { alert("修改成功"); onChangeHouse(); //刷新datagrid }); } }
<div id="menu" class="easyui-menu" style="width: 30px; display: none;"> <!--放置一个隐藏的菜单Div--> <div id="btn_WeiShou" data-options="iconCls:'icon-remove'" onclick="sahj()">1.未售状态</div> <!--具体的菜单事件请自行添加,跟toolbar的方法是基本一样的--> <div id="btn_BaoLiu" data-options="iconCls:'icon-edit'"onclick="bl()">2.保留状态</div>@*菜单选项*@ <div id="btn_YuLiu" data-options="iconCls:'icon-edit'"onclick="yl()">3.预留状态</div> <div id="btn_YuDing" data-options="iconCls:'icon-edit'"onclick="yd()">4.预定状态</div> <div id="btn_RenGou" data-options="iconCls:'icon-edit'"onclick="yy()">5.认购状态</div> <div id="btn_QianYue" data-options="iconCls:'icon-edit'"onclick="qy()">6.签约状态</div>
变换颜色:
// 界面改变颜色方法 var RoomNumber = ''; var FangJianZhuangTaiID; function cellStyler(value, row, index) {//FangJianZhuangTaiID为房间状态ID,当状态ID为3(未售)时,默认为不变色 var row = $('#tbFangJianSuoYouZiLiao').datagrid("getData");//单击房间 for (var i = 0; i < row.rows.length; i++) {//for循环,循环遍历所有房间 FangJianZhuangTaiID = (row.rows[i].XiaoShouJiaID).toString().trim(); //赋值给FangJianZhuangTaiID RoomNumber = (row.rows[i].FangHao).toString().trim(); //赋值给RoomNumber if (FangJianZhuangTaiID == 6) {//认购 if (value == RoomNumber) {//根据房间ID来进行变颜色 return 'background-color:#00FFFF;color:#000000;'; } } if (FangJianZhuangTaiID == 5) {//签约 if (value == RoomNumber) {//根据房间ID来进行变颜色 return 'background-color:#FF0000;color:#000000;'; } } if (FangJianZhuangTaiID == 3) {//预定 if (value == RoomNumber) {//根据房间ID来进行变颜色 return 'background-color:#FFFF00;color:#000000;'; } } if (FangJianZhuangTaiID == 2) {//预留 if (value == RoomNumber) {//根据房间ID来进行变颜色 return 'background-color:#00FF00;color:#000000;'; } } } }
1.6统计百分比:
本模块还可以通过计算,统计各种状态的房间的个数以及所占的比例:
截图如下:
1.6.1界面层(JQuery):
var zt; var ld; var oo; var yd; var y; var kk; function TongJi() {//统计百分比 $.getJSON("/XiaoShouQianTai/bangdingfnagjain1?HouseID=" + $('#comXiangLD').combobox('getValue'), function (data2) { ld = data2.length; $.getJSON("/XiaoShouQianTai/bangdingfnagjain2?SellStatusName=签约" + "&" + "HouseID=" + $('#comXiangLD').combobox('getValue'), function (data3) {//签约所占百分比 zt = data3.length; //获取签约的房间 $('#QianYue').attr('value', zt); var dsa = (zt / ld) * 100; //签约房间数除以总房间数等于所占百分比 $('#Zan1').attr('value', dsa); }); $.getJSON("/XiaoShouQianTai/bangdingfnagjain2?SellStatusName=认购" + "&" + "HouseID=" + $('#comXiangLD').combobox('getValue'), function (data4) {//认购所占百分比 oo = data4.length; $('#RenGou').attr('value', oo); var yd = (oo / ld) * 100; //认购房间数除以总房间数等于所占百分比 $('#Zan2').attr('value', yd); }); $.getJSON("/XiaoShouQianTai/bangdingfnagjain2?SellStatusName=预订" + "&" + "HouseID=" + $('#comXiangLD').combobox('getValue'), function (data5) {//预定所占百分比 y = data5.length; $('#YuDing').attr('value', y); var kk = (y / ld) * 100; //预定房间数除以总房间数等于所占百分比 $('#Zan3').attr('value', kk); }); $.getJSON("/XiaoShouQianTai/bangdingfnagjain2?SellStatusName=预留" + "&" + "HouseID=" + $('#comXiangLD').combobox('getValue'), function (data6) {//预留所占百分比 zt = data6.length; $('#YuLiu').attr('value', zt); var dsa = (zt / ld) * 100; //预留房间数除以总房间数等于所占百分比 $('#Zan4').attr('value', dsa); }); $.getJSON("/XiaoShouQianTai/bangdingfnagjain2?SellStatusName=未售" + "&" + "HouseID=" + $('#comXiangLD').combobox('getValue'), function (data7) {//未售所占百分比 zt = data7.length; $('#WeiShou').attr('value', zt); var dsa = (zt / ld) * 100; //未售房间数除以总房间数等于所占百分比 $('#Zan5').attr('value', dsa); }); $.getJSON("/XiaoShouQianTai/bangdingfnagjain2?SellStatusName=保留" + "&" + "HouseID=" + $('#comXiangLD').combobox('getValue'), function (data8) {//保留所占百分比 zt = data8.length; $('#BaoLiu').attr('value', zt); var dsa = (zt / ld) * 100; //保留房间数除以总房间数等于所占百分比 $('#Zan6').attr('value', dsa); }); }); }
2.客户自助查询
客户自助查询是给客户查询房间的,界面和开发商销控差不多,但客户自助查询看到的全部是“真的”不会带有假字。仅供学习,不得用于商业用途,违者后果自负!!!
相关文章推荐
- Windows Search, Index, Windows Update等服务不能启动
- 动作手游源码分析3 classes/layer/GameHeroLayer.cpp
- 中奖计算
- 该用主动还是被动语态?
- C# string byte[] Base64 常用互相转换
- 这就是搜索引擎--读书笔记六--索引的查询
- iOS开发技巧点滴
- Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC
- java 事件处理机制
- 黑马程序员_java语言_Map集合
- C++实现费马小定理素数测试
- MD5哈希算法学习
- 关于window.location.href="delete_emp.do?id"+id;
- undefined reference to" 问题解决方法
- 欧拉工程第47题:Distinct primes factors
- 进程与线程
- Json转换利器Gson之实例一-简单对象转化和带泛型的List转化
- OpenCV学习笔记07--用滚动条控制图片缩放
- SSIS:使用自定义的变量 改变 原有数据库连接的相应参数的值
- PopupWindow的使用