按照客户要求消缺

This commit is contained in:
cgp 2026-02-25 13:54:48 +08:00
parent 07c779c020
commit d2a1e7ae19
28 changed files with 607 additions and 94 deletions

View File

@ -4,6 +4,9 @@
用户缓存答案接口完善 用户缓存答案接口完善
1008 第一次
1021 去腿痣
310 ->djr > omc 310 ->djr > omc
@ -13,13 +16,32 @@ d28>j45 >hbd-> j200 > d12
pro_scene pro_scene
指弹 :ultra 1.2 指弹 : ultra 1.2
弹唱 : d12 0.7 弹唱 : d12 0.7
练习琴: omc 0.2 练习琴: omc 0.2
主力 214 fg5 d10 主力 214 fg5 d10
练习 omcx1e 、 gsmini 、djr 练习 omcx1e 、 gsmini 、djr
End Guitar Strum
End Martin D12E
End Tayor 814CE
End Gibson Hbd
End Travel Djr
主力毕业: Gibson Hbd阿迪 D桶 24.75(628毫米)
排除大
J45 高音尖锐、抢人声
J200 弦长太长 25.5英寸 647毫米
Hd28 弦距太高、包边脱胶
D12 配置低沙比利
练习毕业: Martin omcx1eOm桶 24.9(632毫米) 、腰24厘米
排除小
gsmini 弦长短 23.5英寸 596毫米
djr 弦长短 24英寸、腰太粗 25厘米
工业网关4、5、6配置数据导入并保存 工业网关4、5、6配置数据导入并保存
开放场景数据表设计 开放场景数据表设计
@ -125,10 +147,10 @@ login_name登录账号
password密码 password密码
用户退出 用户退出
http://172.16.1.254:10014/Handler/User.ashx?action=exit&login_name=sfh01 http://172.16.1.254:10014/Handler/User.ashx?action=exit&user_id=USER202512020928394163
参数 参数
action=exit action=exit
login_name登录账号 user_id用户userid
查询语言 查询语言

View File

@ -63,6 +63,12 @@ namespace VRS.Handler
LoginUser(context); LoginUser(context);
break; break;
//用户登录
case "ip":
QueryIP(context);
break;
//用户退出 //用户退出
case "exit": case "exit":
ExitUser(context); ExitUser(context);
@ -104,6 +110,26 @@ namespace VRS.Handler
break; break;
} }
} }
public void QueryIP(HttpContext context)
{
var ip = "xxyy";
if (context.Request.Headers.AllKeys.Contains("X-Forwarded-For"))
{
ip = context.Request.Headers["X-Forwarded-For"];
// return forwardedFor.First().Split(',').First().Trim();
}
if (context.Request.Headers.AllKeys.Contains("X-Real-IP"))
{
ip = context.Request.Headers["X-Real-IP"];
// return forwardedFor.First().Split(',').First().Trim();
}
ip = context.Request.UserAgent;
var result = GetResult(true, ip);
context.Response.Write(result);
context.Response.End();
}
/// <summary> /// <summary>
/// 查询语言 /// 查询语言
/// </summary> /// </summary>
@ -286,14 +312,16 @@ namespace VRS.Handler
public void ExitUser(HttpContext context) public void ExitUser(HttpContext context)
{ {
var ret = string.Empty; var ret = string.Empty;
var login_name = context.Request.Params["login_name"]; //var login_name = context.Request.Params["login_name"];
if (string.IsNullOrEmpty(login_name)) var user_id = context.Request.Params["user_id"];
if (string.IsNullOrEmpty(user_id))
{ {
ret = GetResult(false, null, "登录账号不能为空"); ret = GetResult(false, null, "user_id不能为空");
context.Response.Write(ret); context.Response.Write(ret);
context.Response.End(); context.Response.End();
} }
var userModel = bll.GetModelList(string.Format(" login_name = '{0}' ", login_name)).FirstOrDefault(); //var userModel = bll.GetModelList(string.Format(" login_name = '{0}' ", login_name)).FirstOrDefault();
var userModel = bll.GetModel(user_id);
if (null != userModel) if (null != userModel)
{ {
userModel.id_card = ""; userModel.id_card = "";
@ -306,7 +334,7 @@ namespace VRS.Handler
} }
else else
{ {
var result = GetResult(false, null, "账号不存在"); var result = GetResult(false, null, "更新失败");
context.Response.Write(result); context.Response.Write(result);
context.Response.End(); context.Response.End();
} }
@ -314,7 +342,7 @@ namespace VRS.Handler
} }
else else
{ {
var result = GetResult(false, null, "账号不存在!"); var result = GetResult(false, null, "user_id账号不存在!");
context.Response.Write(result); context.Response.Write(result);
context.Response.End(); context.Response.End();
} }
@ -392,19 +420,20 @@ namespace VRS.Handler
{ {
if (userModel.login_time.HasValue) if (userModel.login_time.HasValue)
{ {
var old_ip = userModel.id_card; //var old_ip = userModel.id_card;
var current_ip = context.Request.UserHostAddress; //var current_ip = context.Request.UserHostAddress; //$$$$
if (old_ip != current_ip) //if (old_ip != current_ip)
{ // {
var minutues = (DateTime.Now.Subtract(userModel.login_time.Value).TotalSeconds) / 60; var minutues = (DateTime.Now.Subtract(userModel.login_time.Value).TotalSeconds) / 60;
var stay_minutes = config.user_stay_minutes; var stay_minutes = config.user_stay_minutes;
if (minutues < stay_minutes) if (minutues < stay_minutes)
{ {
var go = GetResult(false, null, "用户已登录IP:" + old_ip); //var go = GetResult(false, null, "用户已登录IP:" + old_ip);
var go = GetResult(false, null, "用户已登录");
context.Response.Write(go); context.Response.Write(go);
context.Response.End(); context.Response.End();
} }
} //}
} }
} }
#endregion #endregion
@ -463,7 +492,7 @@ namespace VRS.Handler
var update_user = bll.GetModel(userModel.user_id); var update_user = bll.GetModel(userModel.user_id);
update_user.login_time = DateTime.Now; update_user.login_time = DateTime.Now;
update_user.id_card = context.Request.UserHostAddress; update_user.id_card = context.Request.UserHostAddress; //$$$$
bll.Update(update_user); bll.Update(update_user);
userModel.password = ""; userModel.password = "";
@ -629,10 +658,15 @@ namespace VRS.Handler
context.Response.Write(ret); context.Response.Write(ret);
context.Response.End(); context.Response.End();
} }
#region $$$$
/*
if (!string.IsNullOrEmpty(user.school_id)) if (!string.IsNullOrEmpty(user.school_id))
{ {
where = where + " and school_id='" + user.school_id + "' "; where = where + " and school_id='" + user.school_id + "' ";
} }
*/
#endregion
if (!string.IsNullOrEmpty(SubjectType)) if (!string.IsNullOrEmpty(SubjectType))
{ {
where = where + " and subject_type='" + SubjectType + "' "; where = where + " and subject_type='" + SubjectType + "' ";

View File

@ -1834,6 +1834,7 @@ namespace VRS
Response.Cookies["admin_user_token"].Value = EncryptionAndDecryption.EncryptByLgzn(DateTime.Now.ToString("yyyyMMddHHmmss"));// EncryptionAndDecryption.EncryptByLgzn(user.user_id); Response.Cookies["admin_user_token"].Value = EncryptionAndDecryption.EncryptByLgzn(DateTime.Now.ToString("yyyyMMddHHmmss"));// EncryptionAndDecryption.EncryptByLgzn(user.user_id);
Response.Cookies["admin_user_token"].Values.Add("admin_token", EncryptionAndDecryption.EncryptByLgzn(user_desc)); Response.Cookies["admin_user_token"].Values.Add("admin_token", EncryptionAndDecryption.EncryptByLgzn(user_desc));
log.write_log("登录后台。"); log.write_log("登录后台。");
if (true) if (true)
{ {

View File

@ -241,8 +241,8 @@
<telerik:GridBoundColumn DataField="batch_id" HeaderStyle-Height="32" ItemStyle-Height="32" HeaderText="ID" Visible="false"> <telerik:GridBoundColumn DataField="batch_id" HeaderStyle-Height="32" ItemStyle-Height="32" HeaderText="ID" Visible="false">
</telerik:GridBoundColumn> </telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="school" HeaderText="学校"> <%--<telerik:GridBoundColumn DataField="school" HeaderText="学校">
</telerik:GridBoundColumn> </telerik:GridBoundColumn>--%>
<telerik:GridBoundColumn DataField="subject" HeaderText="练习科目"> <telerik:GridBoundColumn DataField="subject" HeaderText="练习科目">
</telerik:GridBoundColumn> </telerik:GridBoundColumn>

View File

@ -27,6 +27,8 @@ namespace VRS.Management.Exam
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
#region
/*
var user = DataService.BLL.admin_user.load_login(); var user = DataService.BLL.admin_user.load_login();
var user_login = bll_user.GetModel(user.user_id); var user_login = bll_user.GetModel(user.user_id);
@ -40,6 +42,10 @@ namespace VRS.Management.Exam
tr_school.Visible = false; tr_school.Visible = false;
BindSchoolGrade(user_login.school_id, dp_schoolgrade, ""); BindSchoolGrade(user_login.school_id, dp_schoolgrade, "");
} }
*/
#endregion
tr_school.Visible = false; //隐藏学校$$$
//start.SelectedDate = DateTime.Today; //start.SelectedDate = DateTime.Today;
//end.SelectedDate = DateTime.Today.AddMonths(12); //end.SelectedDate = DateTime.Today.AddMonths(12);
BindSubjectType(dp_type_name, ""); BindSubjectType(dp_type_name, "");
@ -50,6 +56,8 @@ namespace VRS.Management.Exam
protected override void DataLoad() protected override void DataLoad()
{ {
StringBuilder query = new StringBuilder(" 1 = 1 "); StringBuilder query = new StringBuilder(" 1 = 1 ");
#region
/*
var userlogin = DataService.BLL.admin_user.load_login(); var userlogin = DataService.BLL.admin_user.load_login();
var user_login = bll_user.GetModel(userlogin.user_id); var user_login = bll_user.GetModel(userlogin.user_id);
if (bll_user.IsAdministrator(user_login)) if (bll_user.IsAdministrator(user_login))
@ -63,7 +71,8 @@ namespace VRS.Management.Exam
{ {
query.AppendFormat(" AND school_id = '{0}' ", user_login.school_id); query.AppendFormat(" AND school_id = '{0}' ", user_login.school_id);
} }
*/
#endregion
if (!string.IsNullOrWhiteSpace(txt_subject_name.Text.Trim())) if (!string.IsNullOrWhiteSpace(txt_subject_name.Text.Trim()))
{ {

View File

@ -20,6 +20,8 @@ namespace VRS.Management.Exam
base.Page_Load(sender, e); base.Page_Load(sender, e);
if (!IsPostBack) if (!IsPostBack)
{ {
#region
/*
var user = DataService.BLL.admin_user.load_login(); var user = DataService.BLL.admin_user.load_login();
var user_login = bll_user.GetModel(user.user_id); var user_login = bll_user.GetModel(user.user_id);
if (bll_user.IsAdministrator(user_login)) if (bll_user.IsAdministrator(user_login))
@ -32,6 +34,9 @@ namespace VRS.Management.Exam
tr_school.Visible = false; tr_school.Visible = false;
BindSchoolGrade(user_login.school_id, dp_schoolgrade, ""); BindSchoolGrade(user_login.school_id, dp_schoolgrade, "");
} }
*/
#endregion
tr_school.Visible = false; //隐藏学校 $$$
BindExam(dp_exam, "", "练习"); BindExam(dp_exam, "", "练习");
BindSubjectType(dp_type_name, ""); BindSubjectType(dp_type_name, "");
@ -47,6 +52,9 @@ namespace VRS.Management.Exam
protected void btnSure_Click(object sender, EventArgs e) protected void btnSure_Click(object sender, EventArgs e)
{ {
var model = new DataService.Model.pro_lianxi_batch(); var model = new DataService.Model.pro_lianxi_batch();
#region
/*
var user = DataService.BLL.admin_user.load_login(); var user = DataService.BLL.admin_user.load_login();
var user_login = bll_user.GetModel(user.user_id); var user_login = bll_user.GetModel(user.user_id);
if (bll_user.IsAdministrator(user_login)) if (bll_user.IsAdministrator(user_login))
@ -65,6 +73,8 @@ namespace VRS.Management.Exam
{ {
model.school_id = user_login.school_id; model.school_id = user_login.school_id;
} }
*/
#endregion
if (string.IsNullOrEmpty(batch_name.Text.Trim())) if (string.IsNullOrEmpty(batch_name.Text.Trim()))

View File

@ -49,6 +49,8 @@ namespace VRS.Management.Exam
ddp_state.SelectedValue = model.state.ToString(); ddp_state.SelectedValue = model.state.ToString();
dp_type_name.SelectedValue = model.subject_type; dp_type_name.SelectedValue = model.subject_type;
tr_unit.Visible = false; //隐藏学校 $$$$
} }
else else
{ {
@ -80,13 +82,16 @@ namespace VRS.Management.Exam
return; return;
} }
var id = Request.Params["Id"]; var id = Request.Params["Id"];
if (bll.GetRecordCount(string.Format(" subject = '{0}' and batch_id !='" + id + "' and school_id='{1}' ", batch_name.Text.Trim(), model.school_id)) > 0)
//if (bll.GetRecordCount(string.Format(" subject = '{0}' and batch_id !='" + id + "' and school_id='{1}' ", batch_name.Text.Trim(), model.school_id)) > 0) //$$$$
if (bll.GetRecordCount(string.Format(" subject = '{0}' and batch_id !='" + id + "' ", batch_name.Text.Trim())) > 0)
{ {
RadAjaxManager1.Alert("练习场次考场名称称禁止重复!"); RadAjaxManager1.Alert("练习场次考场名称称禁止重复!");
return; return;
} }
if (string.IsNullOrEmpty(dp_exam.SelectedValue)) if (string.IsNullOrEmpty(dp_exam.SelectedValue))
{ {
RadAjaxManager1.Alert("试卷不能为空!"); RadAjaxManager1.Alert("试卷不能为空!");

View File

@ -41,9 +41,13 @@ namespace VRS.Management.Exam
tr_school.Visible = false; tr_school.Visible = false;
//BindSchoolGrade(user_login.school_id, dp_schoolgrade, ""); //BindSchoolGrade(user_login.school_id, dp_schoolgrade, "");
} }
start.SelectedDate = DateTime.Today.AddMonths(-3);
//start.SelectedDate = DateTime.Today.AddMonths(-3);
//end.SelectedDate = DateTime.Today.AddMonths(12); //end.SelectedDate = DateTime.Today.AddMonths(12);
start.SelectedDate = DateTime.Today.AddDays(-365);
end.SelectedDate = DateTime.Today;
BindSceneBase(dp_scene, ""); BindSceneBase(dp_scene, "");
DataLoad(); DataLoad();
} }

View File

@ -50,7 +50,7 @@
<a href="javascript:void(0)"><i class="mdi mdi-camera-metering-matrix"></i>成绩查询</a> <a href="javascript:void(0)"><i class="mdi mdi-camera-metering-matrix"></i>成绩查询</a>
<ul class="nav nav-subnav"> <ul class="nav nav-subnav">
<li class="nav-item"><a class="multitabs" href="Exam/ResultQuery.aspx?Id=1"><i class="mdi mdi-camera-metering-spot"></i>实训成绩</a> </li> <li class="nav-item"><a class="multitabs" href="Exam/ResultQuery.aspx?Id=1"><i class="mdi mdi-camera-metering-spot"></i>实训成绩</a> </li>
<li class="nav-item"><a class="multitabs" href="Exam/ResultQuery.aspx?Id=0"><i class="mdi mdi-camera-metering-center"></i>三维考试</a> </li> <li class="nav-item hidden"><a class="multitabs" href="Exam/ResultQuery.aspx?Id=0"><i class="mdi mdi-camera-metering-center"></i>三维考试</a> </li>
<li class="nav-item"><a class="multitabs" href="VSAT/ResultQueryExamBatch.aspx?lianxi=1"><i class="mdi mdi-camera-metering-center"></i>考试成绩</a> </li> <li class="nav-item"><a class="multitabs" href="VSAT/ResultQueryExamBatch.aspx?lianxi=1"><i class="mdi mdi-camera-metering-center"></i>考试成绩</a> </li>
</ul> </ul>
</li> </li>
@ -75,7 +75,7 @@
<li class="nav-item show"><a class="multitabs" href="VSAT/ProTypeManage.aspx?type_id=TheoryBaseKnow"><i class="mdi mdi-home-automation"></i>知识领域</a> </li> <li class="nav-item show"><a class="multitabs" href="VSAT/ProTypeManage.aspx?type_id=TheoryBaseKnow"><i class="mdi mdi-home-automation"></i>知识领域</a> </li>
<li class="nav-item show" runat="server" id="li_SubjectType"><a class="multitabs" href="VSAT/ProTypeManage.aspx?type_id=SubjectType"><i class="mdi mdi-keyboard"></i>科目类别</a> </li> <li class="nav-item show" runat="server" id="li_SubjectType"><a class="multitabs" href="VSAT/ProTypeManage.aspx?type_id=SubjectType"><i class="mdi mdi-keyboard"></i>科目类别</a> </li>
<li class="nav-item show" runat="server" id="li_SubjectList"><a class="multitabs" href="VSAT/ProTypeManage.aspx?type_id=SubjectList"><i class="mdi mdi-format-list-bulleted"></i>科目列表</a> </li> <li class="nav-item hidden" runat="server" id="li_SubjectList"><a class="multitabs" href="VSAT/ProTypeManage.aspx?type_id=SubjectList"><i class="mdi mdi-format-list-bulleted"></i>科目列表</a> </li>
<%--<li class="nav-item show hidden"><a class="multitabs" href="VSAT/ResultQuery.aspx"><i class="mdi mdi-note-multiple-outline"></i>成绩查询</a> </li>--%> <%--<li class="nav-item show hidden"><a class="multitabs" href="VSAT/ResultQuery.aspx"><i class="mdi mdi-note-multiple-outline"></i>成绩查询</a> </li>--%>
</ul> </ul>
</li> </li>

View File

@ -37,8 +37,15 @@ namespace VRS.Management
} }
else else
{ {
if (bll_user.IsSchoolAdministrator(userModel))
{
li_log.Visible = true;
}
else
{
li_log.Visible = false;
}
li_school.Visible = false; li_school.Visible = false;
li_log.Visible = false;
li_SceneBase.Visible = false; li_SceneBase.Visible = false;
li_SubjectType.Visible = false; li_SubjectType.Visible = false;
li_SubjectList.Visible = false; li_SubjectList.Visible = false;

View File

@ -39,8 +39,10 @@ namespace VRS.Management.VSAT
tr_school.Visible = false; tr_school.Visible = false;
BindSchoolGrade(user_login.school_id, dp_schoolgrade, ""); BindSchoolGrade(user_login.school_id, dp_schoolgrade, "");
} }
start.SelectedDate = DateTime.Today; //start.SelectedDate = DateTime.Today;
end.SelectedDate = DateTime.Today.AddMonths(12); // end.SelectedDate = DateTime.Today.AddMonths(12);
start.SelectedDate = DateTime.Today.AddDays(-365);
end.SelectedDate = DateTime.Today;
DataLoad(); DataLoad();
} }
} }

View File

@ -47,6 +47,15 @@
oWnd.center(); oWnd.center();
} }
function allowOnlyNumbers(sender, eventArgs) {
var keyCode = eventArgs.get_keyCode(); // 获取按键代码
//console.log(keyCode);
// 允许数字0-9 (48-57) 以及退格键(8) 、46小数点
if ((keyCode < 48 || keyCode > 57) && keyCode != 8 && keyCode != 46) {
eventArgs.set_cancel(true); // 取消非数字按键输入
}
}
function refreshGrid(args, msg) { function refreshGrid(args, msg) {
if (!args) { if (!args) {
$("#btnSelect").click(); $("#btnSelect").click();
@ -358,7 +367,7 @@
<Selecting AllowRowSelect="False" /> <Selecting AllowRowSelect="False" />
<Resizing AllowColumnResize="true" /> <Resizing AllowColumnResize="true" />
</ClientSettings> </ClientSettings>
<MasterTableView DataKeyNames="result_id,theory_base_id,r1,r2,r3" ClientDataKeyNames="result_id,theory_base_id,r1,r2,r3"> <MasterTableView DataKeyNames="id,result_id,theory_base_id,r1,r2,r3" ClientDataKeyNames="id,result_id,theory_base_id,r1,r2,r3">
<CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
<RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"> <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column">
<HeaderStyle Width="20px"></HeaderStyle> <HeaderStyle Width="20px"></HeaderStyle>
@ -394,8 +403,21 @@
</ItemTemplate> </ItemTemplate>
</telerik:GridTemplateColumn> </telerik:GridTemplateColumn>
<%-- <telerik:GridBoundColumn DataField="result_desc" HeaderText="结果" HeaderStyle-Width="60"></telerik:GridBoundColumn>--%> <%-- <telerik:GridBoundColumn DataField="result_desc" HeaderText="结果" HeaderStyle-Width="60"></telerik:GridBoundColumn>--%>
<%-- <telerik:GridBoundColumn DataField="score" HeaderText="得分" HeaderStyle-Width="90"></telerik:GridBoundColumn>--%> <%--<telerik:GridBoundColumn DataField="score" HeaderText="得分" HeaderStyle-Width="90">
<%-- <telerik:GridBoundColumn DataField="total" HeaderText="分数" HeaderStyle-Width="90"></telerik:GridBoundColumn>--%>
</telerik:GridBoundColumn>--%>
<telerik:GridTemplateColumn HeaderText="得分" HeaderStyle-Width="130">
<ItemTemplate>
<telerik:RadTextBox runat="server" ID="option_name" Skin="Bootstrap" DisabledStyle-BackColor="LightGray"
AutoPostBack="false" Width="50px" Text='0' AutoCompleteType="Disabled">
<ClientEvents OnKeyPress="allowOnlyNumbers" />
</telerik:RadTextBox>&nbsp;
<asp:Button runat="server" Text="保存" Width="48" ID="btnSaveOneJianda" OnClick="btnSaveOneJianda_Click" />
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField="total" HeaderText="分数" HeaderStyle-Width="90"></telerik:GridBoundColumn>
<%-- <telerik:GridBoundColumn DataField="create_time" HeaderText="时间" DataFormatString="{0:yyyy-MM-dd HH:mm:ss}" > <%-- <telerik:GridBoundColumn DataField="create_time" HeaderText="时间" DataFormatString="{0:yyyy-MM-dd HH:mm:ss}" >
</telerik:GridBoundColumn>--%> </telerik:GridBoundColumn>--%>
@ -450,9 +472,9 @@
</UpdatedControls> </UpdatedControls>
</telerik:AjaxSetting> </telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1"> <telerik:AjaxSetting AjaxControlID="btnSaveOneJianda">
<UpdatedControls> <UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="grdList" /> <telerik:AjaxUpdatedControl ControlID="dataList" />
</UpdatedControls> </UpdatedControls>
</telerik:AjaxSetting> </telerik:AjaxSetting>
</AjaxSettings> </AjaxSettings>

View File

@ -196,6 +196,12 @@ namespace VRS.Management.VSAT
var theory_base_id = item.GetDataKeyValue("theory_base_id").ToString(); var theory_base_id = item.GetDataKeyValue("theory_base_id").ToString();
*/ */
var txt = e.Item.FindControl("option_name") as RadTextBox;
if (null != txt)
{
txt.Text = detail.score.ToString();
}
var imgRight1 = e.Item.FindControl("imgRight1") as Image;//正确答案1 var imgRight1 = e.Item.FindControl("imgRight1") as Image;//正确答案1
var imgRight2 = e.Item.FindControl("imgRight2") as Image;//正确答案2 var imgRight2 = e.Item.FindControl("imgRight2") as Image;//正确答案2
var imgRight3 = e.Item.FindControl("imgRight3") as Image;//正确答案3 var imgRight3 = e.Item.FindControl("imgRight3") as Image;//正确答案3
@ -218,7 +224,7 @@ namespace VRS.Management.VSAT
continue; continue;
} }
} }
catch(Exception ex) catch (Exception ex)
{ {
continue; continue;
} }
@ -270,5 +276,39 @@ namespace VRS.Management.VSAT
} }
} }
} }
protected void btnSaveOneJianda_Click(object sender, EventArgs e)
{
var btn = sender as Button;
var cell = btn.Parent as GridTableCell;
var item = cell.Parent as GridDataItem;
RadTextBox txt = item.FindControl("option_name") as RadTextBox;
var theory_base_id = item.GetDataKeyValue("theory_base_id").ToString();
var result_id = item.GetDataKeyValue("result_id").ToString();
var id = item.GetDataKeyValue("id").ToString();
var detail = bll_batch_result_detail.GetModel(id);
var result = bll_batch_result.GetModel(result_id);
if (string.IsNullOrWhiteSpace(txt.Text))
{
RadAjaxManager1.ResponseScripts.Add("alert('分值不能为空!');");
return;
}
decimal crtScore = decimal.Parse(txt.Text);
if (crtScore > detail.total)
{
RadAjaxManager1.ResponseScripts.Add(string.Format("alert('分值不能大于{0}');",detail.total));
return;
}
decimal addScore = crtScore - detail.score;
result.score = result.score + addScore;
if (bll_batch_result.Update(result))
{
detail.score = crtScore;
bll_batch_result_detail.Update(detail);
DataLoad();
}
}
} }
} }

View File

@ -43,8 +43,6 @@
oWnd.center(); oWnd.center();
} }
function OpenWindowDetail(Id) { function OpenWindowDetail(Id) {
var oWnd = radopen("Examination_Edit.aspx?Id=" + Id, "RadWindowManager1"); var oWnd = radopen("Examination_Edit.aspx?Id=" + Id, "RadWindowManager1");
oWnd.setSize(980, 430); oWnd.setSize(980, 430);
@ -105,12 +103,56 @@
function refreshGrid(args, msg) { function refreshGrid(args, msg) {
if (!args) { if (!args) {
$("#btnSelect").click(); $("#btnSelect").click();
} }
} }
function allowOnlyNumbers(sender, eventArgs) {
var keyCode = eventArgs.get_keyCode(); // 获取按键代码
//console.log(keyCode);
// 允许数字0-9 (48-57) 以及退格键(8) 、46小数点
if ((keyCode < 48 || keyCode > 57) && keyCode != 8 && keyCode != 46) {
eventArgs.set_cancel(true); // 取消非数字按键输入
}
}
function calculateSum() {
var listBox = $find("RadListBoxDestination"); // 获取RadListBox客户端对象
if (!listBox) {
console.error("RadListBox not found.");
return;
}
var items = listBox.get_items(); // 获取所有项
var total = 0;
var count = 0;
for (var i = 0; i < items.get_count(); i++) {
var item = items.getItem(i);
// 在项中查找RadTextBox控件
var textBox = item.findControl("option_name"); // 传入服务器端设置的ID
if (textBox) {
var value = textBox.get_value(); // 获取RadTextBox的值
// 如果get_value()不适用可以尝试get_text()具体取决于RadTextBox的设置
// var value = textBox.get_text();
var num = parseFloat(value);
if (!isNaN(num)) {
total += num;
}
count++;
}
}
document.getElementById("span_name").innerHTML = "总题目:" + count + " 总分值:" + total;
}
</script> </script>
<script type="text/javascript">
function triggerServerSidePostback(sender, args) {
// 假设你通过某种方式获取到了那个用于回发的隐藏按钮的客户端ID
console.log(sender);
var btn = document.getElementById('<%= btnCheck.ClientID %>');
if (btn) {
btn.click();
}
}
</script>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<telerik:RadScriptManager ID="RadScriptManager1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
@ -129,6 +171,7 @@
<asp:HiddenField ID="hid_examid" runat="server" /> <asp:HiddenField ID="hid_examid" runat="server" />
<asp:Button ID="btnDelete" runat="server" Text="" OnClick="btnDelete_Click" /> <asp:Button ID="btnDelete" runat="server" Text="" OnClick="btnDelete_Click" />
<asp:Button ID="btnSelect" runat="server" Text="查询" CssClass="btn btn-primary " OnClick="btnSelect_Click" /> <asp:Button ID="btnSelect" runat="server" Text="查询" CssClass="btn btn-primary " OnClick="btnSelect_Click" />
<asp:Button ID="btnCheck" runat="server" Text="" OnClick="btnCheck_Click" />
</div> </div>
<div> <div>
<table class="table-form"> <table class="table-form">
@ -272,6 +315,7 @@
SelectionMode="Multiple" EnableDragAndDrop="true" AllowDelete="false" OnDeleted="RadListBoxDestination_Deleted" SelectionMode="Multiple" EnableDragAndDrop="true" AllowDelete="false" OnDeleted="RadListBoxDestination_Deleted"
OnItemDataBound="RadListBoxDestination_ItemDataBound" OnItemDataBound="RadListBoxDestination_ItemDataBound"
AutoPostBackOnDelete="true" ButtonSettings-VerticalAlign="Top" ButtonSettings-HorizontalAlign="Center"> AutoPostBackOnDelete="true" ButtonSettings-VerticalAlign="Top" ButtonSettings-HorizontalAlign="Center">
<HeaderTemplate> <HeaderTemplate>
<%-- <input class="btn btn-default btn btn-xs" type="button" value="批量删除" />--%> <%-- <input class="btn btn-default btn btn-xs" type="button" value="批量删除" />--%>
@ -279,12 +323,16 @@
<table style="width: 100%; user-select: none;" class="table-form"> <table style="width: 100%; user-select: none;" class="table-form">
<tr> <tr>
<td style="width: 565px;"> <td style="width: 565px;">
<telerik:RadButton ID="btnBatchDeleteItem" OnClick="btnBatchDeleteItem_Click" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="80px" Text="批量删除" ></telerik:RadButton> <telerik:RadButton ID="btnBatchSelect" OnClick="btnBatchSelectAll_Click" Visible="true" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="80px" Text="全选" ></telerik:RadButton>
&nbsp; &nbsp;<telerik:RadButton ID="btnBatchDeleteItem" OnClick="btnBatchDeleteItem_Click" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="80px" Text="批量移除" ></telerik:RadButton>
&nbsp; &nbsp;<asp:Label runat="server" id="lb_score_header" Visible="false"></asp:Label> &nbsp; &nbsp;<asp:Label runat="server" id="lb_score_header" Visible="false"></asp:Label>
</td> </td>
<td class=""> <td class="">
<telerik:RadButton ID="btnBatchComputeItem" Visible="false" OnClick="btnBatchComputeItem_Click" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="80px" Text="计算分数" BackColor="DodgerBlue" ForeColor="White" ></telerik:RadButton>
&nbsp;&nbsp;
<telerik:RadButton ID="btnBatchSaveItem" OnClick="btnBatchSaveItem_Click" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="80px" Text="保存所有" BackColor="DodgerBlue" ForeColor="White" ></telerik:RadButton> <telerik:RadButton ID="btnBatchSaveItem" OnClick="btnBatchSaveItem_Click" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="80px" Text="保存所有" BackColor="DodgerBlue" ForeColor="White" ></telerik:RadButton>
</td> </td>
</tr> </tr>
@ -312,8 +360,16 @@
<td> <td>
<span style="font-size: small"> <span style="font-size: small">
<telerik:RadTextBox runat="server" ID="option_name" Skin="Bootstrap" DisabledStyle-BackColor="LightGray" <telerik:RadTextBox runat="server" ID="option_name" Skin="Bootstrap" DisabledStyle-BackColor="LightGray"
AutoPostBack="true" Width="80" Text='<%# DataBinder.Eval(Container, "Text")%>' OnTextChanged="option_name_TextChanged" AutoCompleteType="None"></telerik:RadTextBox> AutoPostBack="false" Width="60" Text='<%# DataBinder.Eval(Container, "Text")%>' OnTextChanged="option_name_TextChanged" AutoCompleteType="Disabled">
<ClientEvents OnKeyPress="allowOnlyNumbers" />
<ClientEvents OnValueChanged="calculateSum" />
</telerik:RadTextBox>
</span>&nbsp;分 </span>&nbsp;分
<asp:RequiredFieldValidator ID="RequiredFieldValidator_option_name" runat="server" Display="Dynamic" SkinID="Bootstrap" CssClass="text-danger" ForeColor="Red" ControlToValidate="option_name" ErrorMessage="不能为空!"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegexValidator_option_name" runat="server" ControlToValidate="option_name" ValidationExpression="^(0|[1-9]\d*)(\.\d{1,3})?$" ErrorMessage="请输入最多3位小数!" Display="Dynamic" SkinID="Bootstrap" CssClass="text-danger" ForeColor="Red"></asp:RegularExpressionValidator>
</td>
<td style="width: 60px;">
<telerik:RadButton ID="btnDeleteOne" OnClick="btnDeleteOne_Click" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="80px" Text="移除" ></telerik:RadButton>
</td> </td>
</tr> </tr>
</table> </table>
@ -332,15 +388,9 @@
<Localization Close="关闭" OK="确定" Cancel="取消" Yes="确定" No="取消" /> <Localization Close="关闭" OK="确定" Cancel="取消" Yes="确定" No="取消" />
</telerik:RadWindowManager> </telerik:RadWindowManager>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" UpdatePanelsRenderMode="Inline" <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" UpdatePanelsRenderMode="Inline"
OnAjaxRequest="AjaxManager_AjaxRequest"> OnAjaxRequest="AjaxManager_AjaxRequest">
<AjaxSettings> <AjaxSettings>
<telerik:AjaxSetting AjaxControlID="btnSelect"> <telerik:AjaxSetting AjaxControlID="btnSelect">
<UpdatedControls> <UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="dataList" /> <telerik:AjaxUpdatedControl ControlID="dataList" />
@ -364,18 +414,25 @@
<telerik:AjaxSetting AjaxControlID="option_name"> <telerik:AjaxSetting AjaxControlID="option_name">
<UpdatedControls> <UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadListBoxDestination" /> <telerik:AjaxUpdatedControl ControlID="RadListBoxDestination" />
<telerik:AjaxUpdatedControl ControlID="lb_score_header" />
<telerik:AjaxUpdatedControl ControlID="span_name" />
</UpdatedControls> </UpdatedControls>
</telerik:AjaxSetting> </telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1"> <telerik:AjaxSetting AjaxControlID="btnDeleteOne">
<UpdatedControls> <UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="grdList" /> <telerik:AjaxUpdatedControl ControlID="RadListBoxDestination" />
</UpdatedControls> </UpdatedControls>
</telerik:AjaxSetting> </telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="btnCheck">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadListBoxDestination" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings> </AjaxSettings>
</telerik:RadAjaxManager> </telerik:RadAjaxManager>
</form> </form>
</body> </body>
</html> </html>

View File

@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Configuration;
using System.Data; using System.Data;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
@ -146,7 +147,7 @@ namespace VRS.Management.VSAT
addItem.Attributes.Add("question_kind", question_kind); addItem.Attributes.Add("question_kind", question_kind);
var per_score = row["per_score"].ToString(); var per_score = row["per_score"].ToString();
addItem.Text = per_score; addItem.Text = BasePage.RemoveTrailingZeros(per_score);
addItem.ToolTip = question; addItem.ToolTip = question;
RadListBoxDestination.Items.Add(addItem); RadListBoxDestination.Items.Add(addItem);
@ -213,7 +214,18 @@ namespace VRS.Management.VSAT
} }
} }
protected void btnBatchDel_Click(object sender, EventArgs e) protected void btnCheck_Click(object sender, EventArgs e)
{
var list_insert = new List<DataService.Model.pro_exam_theory>();
var valid = checkInsertItems(out string msg, list_insert);
if (!valid)
{
//RadAjaxManager1.Alert(msg);
return;
}
}
protected void btnBatchDel_Click(object sender, EventArgs e)
{ {
var count = dataList.SelectedItems.Count; var count = dataList.SelectedItems.Count;
if (count <= 0) if (count <= 0)
@ -285,10 +297,11 @@ namespace VRS.Management.VSAT
if (null != rad_item) if (null != rad_item)
{ {
var score = txtBox.Text.Trim(); var score = txtBox.Text.Trim();
decimal per_score = 0; decimal per_score = -1; //decimal per_score = 0;
if (decimal.TryParse(score, out per_score)) if (decimal.TryParse(score, out per_score))
{ {
if (per_score > 0) //if (per_score > 0) //$$$
if (per_score >= 0)
{ {
rad_item.Text = txtBox.Text.Trim(); rad_item.Text = txtBox.Text.Trim();
@ -310,11 +323,34 @@ namespace VRS.Management.VSAT
} }
/// <summary> /// <summary>
/// 批量删除题目 /// 删除单个题目
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
protected void btnBatchDeleteItem_Click(object sender, EventArgs e) protected void btnDeleteOne_Click(object sender, EventArgs e)
{
var btn = sender as RadButton;
var rad_item = btn.Parent as RadListBoxItem;
if (null != rad_item)
{
RadListBoxDestination.Items.Remove(rad_item);
RadListBoxDestination.DataBind();
var dsc = Get_RadList_Score();
Label lb = RadListBoxDestination.Header.FindControl("lb_score_header") as Label;
lb.Text = dsc;
span_name.InnerHtml = dsc;
SaveAll();
}
}
/// <summary>
/// 批量删除题目
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnBatchDeleteItem_Click(object sender, EventArgs e)
{ {
var remove = false; var remove = false;
for (int i = RadListBoxDestination.Items.Count - 1; i >= 0; i--) for (int i = RadListBoxDestination.Items.Count - 1; i >= 0; i--)
@ -338,6 +374,32 @@ namespace VRS.Management.VSAT
Label lb = RadListBoxDestination.Header.FindControl("lb_score_header") as Label; Label lb = RadListBoxDestination.Header.FindControl("lb_score_header") as Label;
lb.Text = dsc; lb.Text = dsc;
span_name.InnerHtml = dsc; span_name.InnerHtml = dsc;
SaveAll();
}
}
/// <summary>
/// 批量选择题目
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnBatchSelectAll_Click(object sender, EventArgs e)
{
var remove = false;
for (int i = RadListBoxDestination.Items.Count - 1; i >= 0; i--)
{
var item = RadListBoxDestination.Items[i];
var chk = item.FindControl("chk_item") as CheckBox;
if (null != chk)
{
//if (chk.Checked)
//{
// RadListBoxDestination.Items.Remove(item);
// remove = true;
//}
chk.Checked = true;
}
} }
} }
@ -356,9 +418,14 @@ namespace VRS.Management.VSAT
if (updateUI) if (updateUI)
{ {
var jd=ConfigurationManager.AppSettings["jd"];
if (lb_question_kind.Text == "简答题") if (lb_question_kind.Text == "简答题")
{ {
box.Enabled = false; if (jd != "1")
{
box.Enabled = false;
}
} }
else else
{ {
@ -441,9 +508,9 @@ namespace VRS.Management.VSAT
{ {
if (lb_question_kind.Text != "简答题") if (lb_question_kind.Text != "简答题")
{ {
if (per_score <= 0) if (per_score < 0)
{ {
msg = dsc + " 分值应于0"; msg = dsc + " 分值应不小于0";
return false; return false;
} }
} }
@ -496,20 +563,22 @@ namespace VRS.Management.VSAT
return true; return true;
} }
/// <summary> public void SaveAll( bool tip = false)
/// 批量保存题目---保存所有
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnBatchSaveItem_Click(object sender, EventArgs e)
{ {
#region
var list_insert = new List<DataService.Model.pro_exam_theory>(); var list_insert = new List<DataService.Model.pro_exam_theory>();
var valid = checkInsertItems(out string msg, list_insert); var valid = checkInsertItems(out string msg, list_insert);
if (!valid)
{ #region 100 $$$$
RadAjaxManager1.Alert(msg); //if (!valid)
return; //{
} // RadAjaxManager1.Alert(msg);
// return;
//}
#endregion
#endregion
//设置no //设置no
var list1 = list_insert.Where(s => s.question_difficult == "0").ToList(); var list1 = list_insert.Where(s => s.question_difficult == "0").ToList();
@ -518,7 +587,7 @@ namespace VRS.Management.VSAT
var list4 = list_insert.Where(s => s.question_difficult == "3").ToList(); var list4 = list_insert.Where(s => s.question_difficult == "3").ToList();
var list5 = list_insert.Where(s => s.question_difficult == "4").ToList(); var list5 = list_insert.Where(s => s.question_difficult == "4").ToList();
for (int i=0;i <list1.Count;i++) for (int i = 0; i < list1.Count; i++)
{ {
list1[i].no = (i + 1); list1[i].no = (i + 1);
} }
@ -547,11 +616,41 @@ namespace VRS.Management.VSAT
if (success_count > 0) if (success_count > 0)
{ {
//RadAjaxManager1.ResponseScripts.Add("alert('保存成功!');CloseAndRebind();"); //RadAjaxManager1.ResponseScripts.Add("alert('保存成功!');CloseAndRebind();");
RadAjaxManager1.ResponseScripts.Add("alert('保存成功!');"); if (tip)
{
RadAjaxManager1.ResponseScripts.Add("alert('保存成功!');");
}
DataLoad(); DataLoad();
} }
} }
/// <summary>
/// 批量保存题目---保存所有
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnBatchSaveItem_Click(object sender, EventArgs e)
{
SaveAll(true);
}
/// <summary>
/// 计算分值
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnBatchComputeItem_Click(object sender, EventArgs e)
{
var list_insert = new List<DataService.Model.pro_exam_theory>();
var valid = checkInsertItems(out string msg, list_insert);
//if (!valid)
//{
// RadAjaxManager1.Alert(msg);
// return;
//}
}
protected void RadListBoxDestination_ItemDataBound(object sender, RadListBoxItemEventArgs e) protected void RadListBoxDestination_ItemDataBound(object sender, RadListBoxItemEventArgs e)
{ {
var DataItem = e.Item.DataItem; var DataItem = e.Item.DataItem;

View File

@ -68,6 +68,15 @@ namespace VRS.Management.VSAT
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Button btnSelect; protected global::System.Web.UI.WebControls.Button btnSelect;
/// <summary>
/// btnCheck 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnCheck;
/// <summary> /// <summary>
/// txt_exam_name 控件。 /// txt_exam_name 控件。
/// </summary> /// </summary>

View File

@ -112,7 +112,7 @@
</telerik:RadScriptManager> </telerik:RadScriptManager>
<div class="hidden"> <div class="hidden">
<asp:HiddenField ID="IdInput" runat="server" /> <asp:HiddenField ID="IdInput" runat="server" />
<asp:Button ID="btnDelete" runat="server" Text="" OnClick="btnDelete_Click" /> <asp:Button ID="btnDelete" runat="server" Text="" OnClick="btnDelete_Click" />
</div> </div>
<div> <div>
<table class="table-form"> <table class="table-form">

View File

@ -19,6 +19,9 @@
GetRadWindow().Close(); GetRadWindow().Close();
GetRadWindow().BrowserWindow.refreshGrid(args); GetRadWindow().BrowserWindow.refreshGrid(args);
} }
function Rebind(args) {
GetRadWindow().BrowserWindow.refreshGrid(args);
}
function GetRadWindow() { function GetRadWindow() {
var oWindow = null; var oWindow = null;
if (window.radWindow) oWindow = window.radWindow; //Will work in Moz in all cases, including clasic dialog if (window.radWindow) oWindow = window.radWindow; //Will work in Moz in all cases, including clasic dialog
@ -55,11 +58,65 @@
CloseRadWindow(); CloseRadWindow();
} }
//]]> //]]>
function allowOnlyNumbers(sender, eventArgs) {
var keyCode = eventArgs.get_keyCode(); // 获取按键代码
//console.log(keyCode);
// 允许数字0-9 (48-57) 以及退格键(8) 、46小数点
if ((keyCode < 48 || keyCode > 57) && keyCode != 8 && keyCode != 46) {
eventArgs.set_cancel(true); // 取消非数字按键输入
}
}
function calculateSum() {
var grid = $find("<%= dataList.ClientID %>"); // 获取RadGrid客户端对象
if (!grid) {
console.log("RadGrid not found.");
return;
}
//console.log(grid);
var masterTable = grid.get_masterTableView(); // 获取主表视图
var dataItems = masterTable.get_dataItems(); // 获取所有数据行
var totalSum = 0;
// 遍历每一行
for (var i = 0; i < dataItems.length; i++) {
var currentRow = dataItems[i];
var dataKeyValue = currentRow.getDataKeyValue("theory_count");
var numericCount = parseFloat(dataKeyValue);
// 方法1通过控件ID查找 (适用于Telerik控件)
var targetTextBox = currentRow.findControl("option_name"); // 替换为你的TextBox唯一ID YourTextBoxUniqueName
if (targetTextBox) {
var currentValue = targetTextBox.get_value(); // 获取Telerik文本框的值
console.log("currentValue:" + currentValue + ",numericCount:" + numericCount);
// 如果 get_value() 不适用,可以尝试 .get_text() 或直接 .value
// var currentValue = targetTextBox.get_text();
// var currentValue = targetTextBox.value;
// 将值转换为数字并累加
var numericValue = parseFloat(currentValue) || 0;
totalSum += numericValue * numericCount;
}
// 方法2如果TextBox是标准HTML输入框可通过DOM查找 (需知客户端ID结构)
// var textBoxElement = currentRow.findElement("YourTextBoxClientID");
// if (textBoxElement) {
// var currentValue = textBoxElement.value;
// var numericValue = parseFloat(currentValue) || 0;
// totalSum += numericValue;
// }
}
// 显示或使用计算结果
console.log("Total Sum: " + totalSum);
document.getElementById("span_name").innerHTML = "总分:"+totalSum;
// alert("所有行的文本框值总和为: " + totalSum);
// 你也可以将结果显示在页面的某个标签或文本框中
// document.getElementById("resultLabel").innerText = totalSum;
}
</script> </script>
<body> <body>
<br /> <br />
<form id="form1" runat="server"> <form id="form1" runat="server">
<telerik:RadScriptManager ID="RadScriptManager1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server" EnablePageMethods="true">
<Scripts> <Scripts>
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js"></asp:ScriptReference> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js"></asp:ScriptReference>
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js"></asp:ScriptReference> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js"></asp:ScriptReference>
@ -84,7 +141,9 @@
</tr> </tr>
<tr class=""> <tr class="">
<th class="caption" colspan="2">设置分数:<span id="span_name" style="color: red" runat="server"></span> </th> <th class="caption" colspan="2">设置分数:<span id="span_name" style="color: red" runat="server"></span>
<input type="button" class="hidden" onclick="calculateSum();" value="计算总和" />
</th>
</tr> </tr>
<tr class=""> <tr class="">
@ -97,7 +156,7 @@
<Selecting AllowRowSelect="true" /> <Selecting AllowRowSelect="true" />
<Resizing AllowColumnResize="true" /> <Resizing AllowColumnResize="true" />
</ClientSettings> </ClientSettings>
<MasterTableView DataKeyNames="no,theory_type,theory_count" ClientDataKeyNames="no"> <MasterTableView DataKeyNames="no,theory_type,theory_count" ClientDataKeyNames="no,theory_count">
<CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
<RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"> <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column">
<HeaderStyle Width="20px"></HeaderStyle> <HeaderStyle Width="20px"></HeaderStyle>
@ -114,9 +173,15 @@
<telerik:GridBoundColumn DataField="theory_count" HeaderText="数量" ItemStyle-Width="120"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="theory_count" HeaderText="数量" ItemStyle-Width="120"> </telerik:GridBoundColumn>
<telerik:GridTemplateColumn HeaderText="分值"> <telerik:GridTemplateColumn HeaderText="分值">
<ItemTemplate> <ItemTemplate>
<telerik:RadTextBox runat="server" Skin="Bootstrap" Width="80" Visible="false" ID="option_name" OnTextChanged="option_name_TextChanged"></telerik:RadTextBox> <telerik:RadTextBox runat="server" ID="option_name" Skin="Bootstrap" DisabledStyle-BackColor="LightGray" OnTextChanged="per_score_TextChanged"
<telerik:RadNumericTextBox ID="per_score" runat="server" AutoPostBack="true" Skin="Bootstrap" Width="90px" OnTextChanged="per_score_TextChanged" NumberFormat-DecimalDigits="3" Value="0"></telerik:RadNumericTextBox> AutoPostBack="false" Width="60" Text='0' AutoCompleteType="Disabled">
<ClientEvents OnKeyPress="allowOnlyNumbers" />
<ClientEvents OnValueChanged="calculateSum"/>
</telerik:RadTextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator_option_name" runat="server" Display="Dynamic" SkinID="Bootstrap" CssClass="text-danger" ForeColor="Red" ControlToValidate="option_name" ErrorMessage="不能为空!"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegexValidator_option_name" runat="server" ControlToValidate="option_name" ValidationExpression="^(0|[1-9]\d*)(\.\d{1,3})?$" ErrorMessage="请输入最多3位小数!" Display="Dynamic" SkinID="Bootstrap" CssClass="text-danger" ForeColor="Red"></asp:RegularExpressionValidator>
<telerik:RadNumericTextBox ID="per_score" runat="server" Visible="false" AutoPostBack="false" OnTextChanged="per_score_TextChanged" Skin="Bootstrap" Width="90px" NumberFormat-DecimalDigits="3" MinValue="0" Value="1" AutoCompleteType="Disabled"></telerik:RadNumericTextBox>
</ItemTemplate> </ItemTemplate>
</telerik:GridTemplateColumn> </telerik:GridTemplateColumn>
</Columns> </Columns>
@ -142,8 +207,8 @@
<tr class=""> <tr class="">
<td class="base-bottom" colspan="2"> <td class="base-bottom" colspan="2">
<input class="mybtn btn btn-success" type="button" value="确定" onclick="$('#btnSure').click()" />&nbsp;&nbsp;&nbsp;&nbsp; <input class="mybtn btn btn-success" type="button" value="保存" onclick="$('#btnSure').click()" />&nbsp;&nbsp;&nbsp;&nbsp;
<input class="mybtn btn btn-danger" type="button" value="取消" onclick="CloseRadWindow()" /> <input class="mybtn btn btn-danger" type="button" value="关闭" onclick="CloseRadWindow()" />
<div class="hidden"> <div class="hidden">
<telerik:RadButton ID="btnSure" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="70px" Text="确定" AutoPostBack="true" OnClick="btnSure_Click"></telerik:RadButton> <telerik:RadButton ID="btnSure" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="70px" Text="确定" AutoPostBack="true" OnClick="btnSure_Click"></telerik:RadButton>
<telerik:RadButton ID="btnCancel" runat="server" Skin="Bootstrap" Width="70px" Text="取消" AutoPostBack="False" OnClientClicked="CloseRadWindow" Style="position: relative;"></telerik:RadButton> <telerik:RadButton ID="btnCancel" runat="server" Skin="Bootstrap" Width="70px" Text="取消" AutoPostBack="False" OnClientClicked="CloseRadWindow" Style="position: relative;"></telerik:RadButton>
@ -179,6 +244,14 @@
</UpdatedControls> </UpdatedControls>
</telerik:AjaxSetting> </telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="option_name">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="dataList" />
<telerik:AjaxUpdatedControl ControlID="span_name" />
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="btnSure"> <telerik:AjaxSetting AjaxControlID="btnSure">
<UpdatedControls> <UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="btnSure" UpdatePanelCssClass="" /> <telerik:AjaxUpdatedControl ControlID="btnSure" UpdatePanelCssClass="" />

View File

@ -1,8 +1,10 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Configuration;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Web; using System.Web;
using System.Web.Services;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using Telerik.Web.UI; using Telerik.Web.UI;
@ -87,7 +89,12 @@ namespace VRS.Management.VSAT
span_name.InnerHtml = msg; span_name.InnerHtml = msg;
return; return;
} }
var exam_id = hid_examId.Value; var exam_id = hid_examId.Value;
#region $$$$
/*
var exam = bll_examination.GetModel(exam_id); var exam = bll_examination.GetModel(exam_id);
var exam_total = double.Parse(exam.total_score); var exam_total = double.Parse(exam.total_score);
if (totalscore != exam_total) if (totalscore != exam_total)
@ -96,6 +103,10 @@ namespace VRS.Management.VSAT
RadAjaxManager1.Alert(msg); RadAjaxManager1.Alert(msg);
return; return;
} }
*/
#endregion
//以下为具体实现方式 //以下为具体实现方式
/* /*
if (totalscore!=100) if (totalscore!=100)
@ -108,7 +119,7 @@ namespace VRS.Management.VSAT
var success_count = bll_exam_theory.BatchScore_Update(list_type_count, exam_id); var success_count = bll_exam_theory.BatchScore_Update(list_type_count, exam_id);
if (success_count > 0) if (success_count > 0)
{ {
RadAjaxManager1.ResponseScripts.Add("alert('设置成功!');CloseAndRebind();"); RadAjaxManager1.ResponseScripts.Add("alert('设置成功!');Rebind();");//alert('设置成功!');CloseAndRebind()
} }
} }
@ -121,26 +132,41 @@ namespace VRS.Management.VSAT
for (int i = 0; i < dataList.Items.Count; i++) for (int i = 0; i < dataList.Items.Count; i++)
{ {
var item = dataList.Items[i]; var item = dataList.Items[i];
var txt = item.FindControl("per_score") as RadNumericTextBox; //var txt = item.FindControl("per_score") as RadNumericTextBox;
var txt = item.FindControl("option_name") as RadTextBox;
var no = int.Parse(item.GetDataKeyValue("no").ToString()); var no = int.Parse(item.GetDataKeyValue("no").ToString());
var theory_type = item.GetDataKeyValue("theory_type").ToString(); var theory_type = item.GetDataKeyValue("theory_type").ToString();
var theory_count = int.Parse(item.GetDataKeyValue("theory_count").ToString()); var theory_count = int.Parse(item.GetDataKeyValue("theory_count").ToString());
var jd = ConfigurationManager.AppSettings["jd"];
if (theory_type == "简答题") if (theory_type == "简答题")
{ {
continue; if (jd != "1")
{
continue;
}
} }
/*
if (!txt.Value.HasValue) if (!txt.Value.HasValue)
{ {
msg = theory_type + ",分值不能为空!"; msg = theory_type + ",分值不能为空!";
return false; return false;
} }
var per_score = txt.Value.Value; var per_score = txt.Value.Value;
if (per_score <= 0) */
if (string.IsNullOrWhiteSpace(txt.Text))
{ {
msg = theory_type + ",分值应大于0"; msg = theory_type + ",分值不能为空!";
return false;
}
var per_score = double.Parse(txt.Text);
if (per_score < 0) //if (per_score <= 0) $$$
{
msg = theory_type + ",分值不小于0"; // 分值应大于0 $$$
return false; return false;
} }
@ -181,11 +207,19 @@ namespace VRS.Management.VSAT
if (e.Item is GridDataItem) if (e.Item is GridDataItem)
{ {
GridDataItem item = e.Item as GridDataItem; GridDataItem item = e.Item as GridDataItem;
RadNumericTextBox per_score = e.Item.FindControl("per_score") as RadNumericTextBox; //RadNumericTextBox per_score = e.Item.FindControl("per_score") as RadNumericTextBox; //$$$
RadTextBox per_score = e.Item.FindControl("option_name") as RadTextBox;
per_score.Attributes["data-clientid"] = per_score.ClientID;
string theory_type =item.GetDataKeyValue("theory_type").ToString(); string theory_type =item.GetDataKeyValue("theory_type").ToString();
var jd = ConfigurationManager.AppSettings["jd"];
if (theory_type == "简答题") if (theory_type == "简答题")
{ {
per_score.Visible = false; if (jd != "1")
{
per_score.Visible = false;
}
} }
else else
{ {
@ -193,5 +227,7 @@ namespace VRS.Management.VSAT
} }
} }
} }
} }
} }

View File

@ -57,6 +57,15 @@
//Add JavaScript handler code here //Add JavaScript handler code here
CloseRadWindow(); CloseRadWindow();
} }
function btn_edit(obj) {
obj.disabled = true;
$('#btnSure').click();
window.setTimeout(function () {
obj.disabled = false;
console.log("单机按钮恢复");
}, 3000);
}
//]]> //]]>
</script> </script>
<body> <body>
@ -213,7 +222,8 @@
<tr> <tr>
<td class="base-bottom" colspan="4"> <td class="base-bottom" colspan="4">
<input class="mybtn btn btn-success" type="button" value="确定" onclick="$('#btnSure').click()" /> <%--<input class="mybtn btn btn-success" type="button" value="确定" onclick="$('#btnSure').click()" />--%>
<input class="mybtn btn btn-success" type="button" value="确定" onclick="btn_edit(this)" />
<input class="mybtn btn btn-danger" type="button" value="取消" onclick="CloseRadWindow()" /> <input class="mybtn btn btn-danger" type="button" value="取消" onclick="CloseRadWindow()" />
<div class="hidden"> <div class="hidden">
<telerik:RadButton ID="btnSure" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="120px" Text="确定" AutoPostBack="true" OnClick="btnSure_Click"></telerik:RadButton> <telerik:RadButton ID="btnSure" runat="server" CssClass="btn btn-success" Skin="Bootstrap" Width="120px" Text="确定" AutoPostBack="true" OnClick="btnSure_Click"></telerik:RadButton>

View File

@ -117,7 +117,7 @@
<th class="caption" colspan="2">中英文切换配置:</th> <th class="caption" colspan="2">中英文切换配置:</th>
</tr> </tr>
<tr> <tr>
<td class="table-td-name"><span class="span_danger">*</span>是否启用中英文切换:</td> <td class="table-td-name"><span class="span_danger">*</span>是否启用中英文切换:单端登录最长时长(分钟)</td>
<td class="table-td-content"> <td class="table-td-content">
<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" CssClass="radio_label" > <asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" CssClass="radio_label" >
<asp:ListItem Value="1">&nbsp;是&nbsp;&nbsp;&nbsp;&nbsp;</asp:ListItem> <asp:ListItem Value="1">&nbsp;是&nbsp;&nbsp;&nbsp;&nbsp;</asp:ListItem>
@ -148,9 +148,9 @@
<asp:ListItem Value="0">&nbsp;同一用户单端登陆&nbsp;</asp:ListItem> <asp:ListItem Value="0">&nbsp;同一用户单端登陆&nbsp;</asp:ListItem>
</asp:RadioButtonList> </asp:RadioButtonList>
&nbsp;&nbsp;&nbsp;&nbsp;单端登录最长时长(分钟)<telerik:RadNumericTextBox runat="server" ID="user_stay_minutes" Skin="Bootstrap" MinValue="0" NumberFormat-DecimalDigits="0" Width="85"></telerik:RadNumericTextBox> &nbsp;&nbsp;&nbsp;&nbsp;最长无操作时间(分钟)<telerik:RadNumericTextBox runat="server" ID="user_stay_minutes" Visible="true" Skin="Bootstrap" MinValue="0" NumberFormat-DecimalDigits="0" Width="85"></telerik:RadNumericTextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator_user_stay_minutes" runat="server" Display="Static" SkinID="Bootstrap" CssClass="text-danger" ForeColor="Red" <asp:RequiredFieldValidator ID="RequiredFieldValidator_user_stay_minutes" runat="server" Display="Static" SkinID="Bootstrap" CssClass="text-danger" ForeColor="Red"
ControlToValidate="user_stay_minutes" ErrorMessage="不能为空!"></asp:RequiredFieldValidator> ControlToValidate="user_stay_minutes" Visible="true" ErrorMessage="不能为空!"></asp:RequiredFieldValidator>
</td> </td>
</tr> </tr>

View File

@ -1087,6 +1087,22 @@ namespace VRS
return "hidden"; return "hidden";
} }
public static string RemoveTrailingZeros(string numberString)
{
if (string.IsNullOrEmpty(numberString))
return numberString;
// 如果包含小数点,去除末尾的零和小数点
if (numberString.Contains('.'))
{
numberString = numberString.TrimEnd('0');
if (numberString.EndsWith("."))
numberString = numberString.TrimEnd('.');
}
return numberString;
}
/// <summary> /// <summary>

View File

@ -26,6 +26,13 @@
$("#btnSelect").click(); $("#btnSelect").click();
} }
} }
function OnDataDelete(Id) {
if (confirm("确定删除数据吗?")) {
$("#IdInput").val(Id);
$("#btnDelete").click();
}
}
</script> </script>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
@ -39,6 +46,7 @@
<div class="hidden"> <div class="hidden">
<asp:HiddenField ID="IdInput" runat="server" /> <asp:HiddenField ID="IdInput" runat="server" />
<asp:Button ID="btnDelete" runat="server" Text="" OnClick="btnDelete_Click" />
</div> </div>
<div> <div>
<table class="table-form"> <table class="table-form">
@ -148,6 +156,12 @@
</telerik:GridBoundColumn> </telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="create_time" HeaderText="时间" HeaderStyle-Width="150" DataFormatString="{0:yyyy-MM-dd HH:mm:ss}"> <telerik:GridBoundColumn DataField="create_time" HeaderText="时间" HeaderStyle-Width="150" DataFormatString="{0:yyyy-MM-dd HH:mm:ss}">
</telerik:GridBoundColumn> </telerik:GridBoundColumn>
<%-- <telerik:GridTemplateColumn HeaderText="操作">
<ItemTemplate>
<a onclick="OnDataDelete('<%#Eval("log_id") %>')" class="btn btn-danger btn-xs "><span class="mdi mdi-close"></span></a>
</ItemTemplate>
</telerik:GridTemplateColumn>--%>
</Columns> </Columns>
<EditFormSettings> <EditFormSettings>
<EditColumn FilterControlAltText="Filter EditCommandColumn column"> <EditColumn FilterControlAltText="Filter EditCommandColumn column">

View File

@ -55,6 +55,26 @@ namespace VRS.Util
} }
} }
protected void btnDelete_Click(object sender, EventArgs e)
{
var model = bll.GetModel(IdInput.Value);
//直接删除
if (bll.Delete(IdInput.Value))
{
#region
DataService.BLL.admin_user bll_user = new DataService.BLL.admin_user();
var userModel = bll_user.GetModel(model.user_id);
if (null != userModel)
{
userModel.id_card = "";
userModel.login_time = null;
bll_user.Update(userModel);
}
#endregion
}
MyDataBind(true);
}
protected override void DataLoad() protected override void DataLoad()

View File

@ -41,6 +41,15 @@ namespace VRS.Util
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.HiddenField IdInput; protected global::System.Web.UI.WebControls.HiddenField IdInput;
/// <summary>
/// btnDelete 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnDelete;
/// <summary> /// <summary>
/// content 控件。 /// content 控件。
/// </summary> /// </summary>

View File

@ -150,6 +150,10 @@
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="asd1234_20231116180445.png" />
<Content Include="asd1234_20231116180459.png" />
<Content Include="asd1234_20231116180500.png" />
<Content Include="asd1234_20231116181135.png" />
<Content Include="Assets\Images\autoLogo.jpg" /> <Content Include="Assets\Images\autoLogo.jpg" />
<Content Include="Assets\Images\bottom.jpg" /> <Content Include="Assets\Images\bottom.jpg" />
<Content Include="Assets\Images\healthLogo.png" /> <Content Include="Assets\Images\healthLogo.png" />
@ -465,6 +469,7 @@
<Content Include="Assets\layui\js\bootstrap-datetimepicker\moment.min.js" /> <Content Include="Assets\layui\js\bootstrap-datetimepicker\moment.min.js" />
<Content Include="Assets\layui\js\bootstrap-multitabs\multitabs.js" /> <Content Include="Assets\layui\js\bootstrap-multitabs\multitabs.js" />
<Content Include="Assets\layui\js\bootstrap-multitabs\multitabs.min.css" /> <Content Include="Assets\layui\js\bootstrap-multitabs\multitabs.min.css" />
<Content Include="Assets\layui\js\bootstrap-multitabs\multitabsEx.js" />
<Content Include="Assets\layui\js\bootstrap-notify.min.js" /> <Content Include="Assets\layui\js\bootstrap-notify.min.js" />
<Content Include="Assets\layui\js\bootstrap-table\bootstrap-table-zh-CN.min.js" /> <Content Include="Assets\layui\js\bootstrap-table\bootstrap-table-zh-CN.min.js" />
<Content Include="Assets\layui\js\bootstrap-table\bootstrap-table.js" /> <Content Include="Assets\layui\js\bootstrap-table\bootstrap-table.js" />

View File

@ -26,6 +26,9 @@
<!--AES_IV--> <!--AES_IV-->
<add key="AES_IV" value="1234567890000000" /> <add key="AES_IV" value="1234567890000000" />
<!--jd-->
<!--<add key="jd" value="" />-->
</appSettings> </appSettings>
<system.web> <system.web>

View File

@ -34,4 +34,10 @@ tcp://192.168.254.110:1883,th_project/th_wg1,/ali/thtenant/thtenarproject/downst
炭黑生产制造接口增加设备连线图片上传,三维一道协助调试云端设备及测点名称接口 炭黑生产制造接口增加设备连线图片上传,三维一道协助调试云端设备及测点名称接口
RadTextBox 校验
Repair
Repair_Add
Repair_Edit