Camp.cshtml 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577
  1. @using IwbZero.IwbDataQuery
  2. @using IwbZero.ToolCommon.StringModel
  3. @using WeEngine.Enum
  4. @using WeOnlineApp.Configuration
  5. @using WeOnlineApp.Authorization
  6. @using WeOnlineApp.Views.Shared.Modals
  7. @using WeOnlineApp.Views.Shared.SearchForm
  8. @using WeOnlineApp.Views.Shared.Table
  9. @{
  10. ViewBag.Title = "课程信息";
  11. string activeMenu = PermissionNames.PagesTrainMgCampMg; //The menu item will be active for this page.
  12. ViewBag.ActiveMenu = activeMenu;
  13. string state = ViewBag.State, subjectType = ViewBag.SubjectType,
  14. variableType = IwbDataType.GetDataTypeSelectStr();
  15. var searchForm = new SearchFormViewModel(new List<SearchItem>()
  16. {
  17. new SearchItem("name","课程名称"),
  18. new SearchItem("organizer","主办单位"),
  19. new SearchItem("campState","课程状态",FieldType.I).SetSelectItem(state),
  20. });
  21. var table = new TableViewModel(IwbConsts.ApiAppUrl + "Camp/GetAll", activeMenu, searchForm)
  22. .SetFields(new List<FieldItem>()
  23. {
  24. new FieldItem("name", "课程名称"),
  25. new FieldItem("packageName", "方案包名称"),
  26. new FieldItem("subjectType", "课程类型","SubjectTypeFormatter"),
  27. new FieldItem("organizer", "主办单位"),
  28. new FieldItem("contactInfo", "联系方式"),
  29. new FieldItem("roundScore", "每轮总分"),
  30. new FieldItem("subjectPoint", "课程积分"),
  31. new FieldItem("startDate", "有效时间","StartDateFormatter"),
  32. new FieldItem("maxTrainingMinute", "最大演练时长","MinuteFormatter"),
  33. new FieldItem("campState", "课程状态","StateFormatter"),
  34. //new FieldItem("", "操作","ActionFormatter"),
  35. });
  36. }
  37. @section css{
  38. }
  39. @Html.Partial("Table/_Table", table)
  40. @section modal{
  41. <!--Main Modal-->
  42. @{
  43. var input = new ModalBodyViewModel(new List<Input>()
  44. {
  45. new InputHide("id"),
  46. new InputHide("packageName", "方案包名称"),
  47. //new InputHide("startDate"),
  48. //new InputHide("endDate", "结束时间"),
  49. new Input("name", "课程名称"),
  50. new Input("packageNo", "方案包").SetSelectOptions(""),
  51. new Input("subjectType", "课程类别").SetSelectOptions(subjectType),
  52. new InputNumber("roundScore", "每轮总分").SetRange(100, 1000),
  53. new InputDate("useDate", "有效时间", @class: "iwb-date-range"),
  54. new InputNumber("maxTrainingMinute", "演练时长").SetMin(0).SetHelp("课程的最大演练时长,单位为 分钟。"),
  55. new InputNumber("subjectPoint", "课程积分").SetMin(1),
  56. new Input("organizer", "主办单位"),
  57. new Input("contactInfo", "联系方式").SetNotRequired(),
  58. });
  59. var input2 = new ModalBodyViewModel(new List<Input>()
  60. {
  61. new InputTextarea("purposes", "演练目标").SetNotRequired(),
  62. new InputTextarea("description", "课程描述").SetNotRequired(),
  63. });
  64. var input3 = new ModalBodyViewModel(new List<Input>()
  65. {
  66. new InputKindeditor("studyContent", "预演学习").SetLayout("col-sm-12","col-sm-12").SetNotRequired(),
  67. });
  68. }
  69. <!--Main Modal-->
  70. <section>
  71. <div class="modal fade show" id="modal" tabindex="-1" aria-modal="true">
  72. <div class="modal-dialog modal-lg" style="margin-top: 190.5px;">
  73. <div class="modal-content">
  74. @Html.Partial("Modals/_ModalHeader", new ModalHeaderViewModel("课程"))
  75. <div class="modal-body" style="padding: 0">
  76. <form class="form-horizontal " id="form" novalidate="novalidate" style="padding: 0">
  77. <div class="card card-primary card-outline card-outline-tabs" style="margin-bottom: 0; border-top: 0; ">
  78. <div class="card-header p-0 border-bottom-0">
  79. <ul class="nav nav-tabs" role="tablist">
  80. <li class="nav-item">
  81. <a class="nav-link active" id="tab-base" data-toggle="pill" href="#tab-content-base" role="tab">基础信息</a>
  82. </li>
  83. <li class="nav-item">
  84. <a class="nav-link" data-toggle="pill" href="#tab-content-base2" role="tab">扩展信息</a>
  85. </li>
  86. <li class="nav-item">
  87. <a class="nav-link" data-toggle="pill" href="#tab-content-base3" role="tab">预演学习信息</a>
  88. </li>
  89. </ul>
  90. </div>
  91. <div class="card-body">
  92. <div class="tab-content" id="scene-tabContent">
  93. <div class="tab-pane fade show active" id="tab-content-base" role="tabpanel">
  94. @Html.Partial("Modals/_ModalInput", input)
  95. </div>
  96. <div class="tab-pane fade" id="tab-content-base2" role="tabpanel">
  97. @Html.Partial("Modals/_ModalInput", input2)
  98. </div>
  99. <div class="tab-pane fade" id="tab-content-base3" role="tabpanel">
  100. @Html.Partial("Modals/_ModalInput", input3)
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. </form>
  106. </div>
  107. @Html.Partial("Modals/_ModalFooter", "0")
  108. </div>
  109. </div>
  110. </div>
  111. </section>
  112. }
  113. @section scripts
  114. {
  115. <script type="text/javascript">
  116. var $table;
  117. $(function() {
  118. $table = LoadTable();
  119. var packageSettingStr =
  120. '<div style="margin: 0px 20px 10px;"><button type="button" class="btn btn-sm btn-block btn-success" id="package-btn" onclick="PackageSetting(\'{0}\')">方案包配置</button></div>';
  121. //$('#modal #useDate').iwbDate({
  122. // applyEvent: function (e) {
  123. // console.log(e);
  124. // }
  125. //});
  126. $('#modal #packageNo').off('change.package').on('change.package',
  127. function() {
  128. $('#modal #packageName').val('');
  129. $('#modal #engineModelType').val('');
  130. $('#modal #package-btn').remove();
  131. _PackageSetting = null;
  132. var packageNo = $('#modal #packageNo').val();
  133. if (packageNo) {
  134. GetPackageSetting(packageNo);
  135. $('#modal #packageName').val($('#modal #packageNo option:selected').text());
  136. $(this).closest('.form-group').after(packageSettingStr.format(packageNo));
  137. }
  138. });
  139. var funs = window.iwbfuns || { none: function() { console.log("No type"); } };
  140. funs["btnCreate"] = function() {
  141. $('#modal #package-btn').remove();
  142. _PackageSetting = null;
  143. $('#tab-base').tab('show');
  144. $.iwbAjax4({
  145. url: abp.appUrl + 'Camp/GetPackageSelectStr',
  146. block: true,
  147. success: function(res) {
  148. $('#modal #packageNo').html(res).select2();
  149. BtnCreate({
  150. data: { id: "" },
  151. select2tree:'subjectType',
  152. dataFun: GetSaveData
  153. });
  154. }
  155. });
  156. }
  157. funs["btnUpdate"] = function() {
  158. var row = $table.bootstrapTable('getSelections')[0];
  159. $('#modal #package-btn').remove();
  160. if (row) {
  161. if (row.campState == @(CampStateDefinition.New)) {
  162. $('#tab-base').tab('show');
  163. $('#modal #packageNo').closest('.form-group').after(packageSettingStr.format(row.packageNo));
  164. _PackageSetting = null;
  165. $.iwbAjax4({
  166. url: abp.appUrl + 'Camp/GetPackageSelectStr',
  167. block: true,
  168. success: function(res) {
  169. $('#modal #packageNo').html(res).select2();
  170. $.iwbAjax4({
  171. url: abp.appUrl + 'Camp/GetDtoById?id='+row.id,
  172. block: true,
  173. success: function(res2) {
  174. var row1 = $.extend(true, {}, res2);
  175. row1.useDate = new Date(row1.startDate).format('yyyy-MM-dd') + " - " + new Date(row1.endDate).format('yyyy-MM-dd');
  176. BtnUpdate({
  177. disabled: "",
  178. select2tree:'subjectType',
  179. dataFun: GetSaveData,
  180. shownAfter: function() {
  181. GetPackageSetting(row1.packageNo);
  182. }
  183. },
  184. row1);
  185. }
  186. });
  187. }
  188. });
  189. } else {
  190. abp.message.warn("课程已激活不能再修改!");
  191. }
  192. } else {
  193. abp.message.warn(abp.localization.iwbZero('SelectRecordOperation'));
  194. }
  195. };
  196. funs["btnAttach"] = function() {
  197. var row = $table.bootstrapTable('getSelections')[0];
  198. if (row) {
  199. $.iwbAjax1({
  200. url: abp.appUrl + 'Camp/CheckAttach?no=' + row.id,
  201. success: function(res) {
  202. if (res) {
  203. window.open(res, "_blank");
  204. }
  205. }
  206. });
  207. } else {
  208. abp.message.warn(abp.localization.iwbZero('SelectRecordOperation'));
  209. }
  210. }
  211. funs["btnTag"] = function(url) {
  212. var row = $table.bootstrapTable('getSelections')[0];
  213. if (row) {
  214. $.iwbAjax4({
  215. url: abp.appUrl + 'Camp/GetBehaviorTags?no=' + row.id,
  216. success: function(res) {
  217. if (res) {
  218. TagModal(res, url);
  219. }
  220. },
  221. error: function (error) {
  222. if (error.details) {
  223. return abp.message.error(error.details, error.message);
  224. } else {
  225. return abp.message.error(error.message || abp.ajax.defaultError.message);
  226. }
  227. }
  228. });
  229. } else {
  230. abp.message.warn(abp.localization.iwbZero('SelectRecordOperation'));
  231. }
  232. }
  233. });
  234. function GetSaveData() {
  235. _PackageSetting = _PackageSetting || {};
  236. var data = $.formSerialize($('#modal #form'));
  237. //data.roundScore = _PackageSetting.roundScore;
  238. data.assessRoleNames = _PackageSetting.assessRoleNames;
  239. data.assessAuto = _PackageSetting.assessAuto;
  240. data.variable = _PackageSetting.variable;
  241. var dateStr = $("#modal #useDate").val();
  242. var arr = dateStr.split(" - ");
  243. if (arr.length == 2) {
  244. data.startDate = arr[0];
  245. data.endDate = arr[1];
  246. }
  247. return data;
  248. }
  249. </script>
  250. <script id="PackageSetting-S">
  251. var _PackageSetting = null;
  252. function PackageSetting() {
  253. if (_PackageSetting) {
  254. PackageSettingModal(_PackageSetting);
  255. } else {
  256. abp.message.warn('未发现配置信息!');
  257. }
  258. }
  259. function GetPackageSetting(no) {
  260. var id = $('#modal #id').val() || 'none';
  261. $.iwbAjax4({
  262. url: abp.appUrl + 'camp/GetPackageSetting?id=' + id + '&packageNo=' + no,
  263. success: function(res) {
  264. if (res) {
  265. _PackageSetting = res;
  266. }
  267. }
  268. });
  269. }
  270. function PackageSettingModal(data) {
  271. var $body = FormatterPackageSettingBody(data);
  272. $(document).iwbModal('create',
  273. {
  274. modal: 'modal-package-setting',
  275. modaltitle: "方案包配置",
  276. modalBody: $body,
  277. save: SavePackageSetting
  278. });
  279. }
  280. function FormatterPackageSettingBody(data) {
  281. var $form = $('<form>', { 'css': { 'padding': '10px' } });
  282. //$form.append(
  283. // '<div class="form-group row"><label class=" iwb-label iwb-label-sm" for="roundScore">每轮总分</label><div class=""><div class="input-group input-group-sm "><input class="form-control number" id="roundScore" name="roundScore" type="text" placeholder="请输入每轮总分..." style="" aria-required="true"></div></div></div>');
  284. //if (data.roundScore) {
  285. // $form.find('#roundScore').val(data.roundScore);
  286. //}
  287. $form.append(FormatterVariableBox(data.variable));
  288. $form.append(FormatterRoleBox(data.allRoles, data.assessRoleNames, data.assessAuto));
  289. return $form;
  290. }
  291. function FormatterRoleBox(allRoles, assessRoleNames) {
  292. var temp =
  293. '<label class="iwb-checkbox iwb-{3}"><input type="checkbox" id="role-{0}" data-role-no="{0}" data-role-name="{1}" name="assess-role{4}" value="{0}" {2}><span></span>{1}</label>';
  294. var $roleBox = $('<div>',
  295. { 'class': 'dynamic-box row', 'css': { 'margin': '10px', 'paddingBottom': '0' } });
  296. var roleArr = assessRoleNames ? assessRoleNames.split(',') : undefined;
  297. var modelType = $('#modal #engineModelType').val();
  298. if (allRoles) {
  299. allRoles.forEach(function(v) {
  300. var checkedStr = "";
  301. if (roleArr&&roleArr.length>0 && roleArr.indexOf(v.roleName) >= 0) {
  302. checkedStr = "checked";
  303. }
  304. var $role = $('<div>', { 'class': 'col-sm-4' }).append(temp.format(v.roleName,
  305. v.roleName + "(" + v.rolePer + "%)",
  306. checkedStr,
  307. 'green',
  308. ""));
  309. if (modelType == @(ModelType.IndependentTeam.ToInt()) ||
  310. modelType == @(ModelType.Independent.ToInt())) {
  311. $role.on('click',
  312. function(e) {
  313. e.preventDefault();
  314. e.stopPropagation();
  315. var flag = $(this).find('input').is(':checked');
  316. $(this).closest('.role-box').find('input').prop('checked', false);
  317. $(this).find('input').prop('checked', !flag);
  318. });
  319. }
  320. $roleBox.append($role);
  321. });
  322. }
  323. var $info = $('<div>',
  324. { 'class': 'iwb-info-box iwb-sm', 'id': 'role-box', 'css': { 'padding': '0 10px' } });
  325. $info.append('<div class="box-header">演练角色<small>(不配置即视为关闭关联角色)</small></div>');
  326. $info.append($roleBox);
  327. $info.append($('<div>',
  328. {
  329. 'class': 'role-auto',
  330. 'css': { 'border': 'none', 'textAlign': 'right', 'marginRight': '0 30px 0 0' }
  331. })
  332. //.append(temp.format('auto', '未考核角色自动满分', assessAuto != false ? "checked" : "", 'danger',"auto"))
  333. );
  334. return $info;
  335. }
  336. function FormatterVariableBox(variableStr) {
  337. if (!variableStr) {
  338. return '';
  339. }
  340. var label = '<div class="dynamic-label col-sm-{0}"><label class="iwb-label">{1}</label></div >',
  341. $box = $('<div>', { 'class': 'dynamic-box', 'css': { 'margin': '10px' } }),
  342. $box1 = $('<div>', { 'class': 'row iwb-dynamic-box' }),
  343. $box2 = $('<div>', { 'class': 'row iwb-dynamic-box' });
  344. $box1.append(label.format('4', '变量'))
  345. .append(label.format('4', '类型'))
  346. .append(label.format('4', '默认值'));
  347. $box2.append(
  348. '<div class="col-sm-4"><div class="input-group input-group-sm"><input class="form-control required" name="variableId" placeholder="请输入变量" style="width: 100%" /></div></div><div class="col-sm-4"><div class="input-group input-group-sm"><select class="form-control required" name="variableType" style="width: 100%">@(Html.Raw(variableType))</select></div></div><div class="col-sm-4"><div class="input-group input-group-sm"><input class="form-control required" name="defaultValue" placeholder="请输入默认值" style="width: 100%" /></div></div><div style="display:none"><button class="btn btn-sm btn-block btn-add" type="button" onclick="AddDynamicBox(this)">增加</button></div>');
  349. $box.append($box1).append($box2);
  350. var variableArr = variableStr.split(',');
  351. for (var i = 0; i < variableArr.length; i++) {
  352. var str = variableArr[i];
  353. var arr = str.split(':');
  354. var $that = i === 0
  355. ? $box.find('.iwb-dynamic-box').eq(1)
  356. : AddDynamicBox($box.find('.iwb-dynamic-box').eq(1).find('.btn-add'));
  357. $that.find('.form-control[name="variableId"]').val(arr[0]).prop('disabled', true);
  358. $that.find('.form-control[name="variableType"]').val(arr[1].toLocaleLowerCase() || "string").select2()
  359. .prop('disabled', true);
  360. $that.find('.form-control[name="defaultValue"]').val(arr[2] || "");
  361. }
  362. var $info = $('<div>',
  363. { 'class': 'iwb-info-box iwb-sm', 'id': 'variable-box', 'css': { 'padding': '0 10px' } });
  364. $info.append('<div class="box-header">全局变量</div>');
  365. $info.append($box);
  366. return $info;
  367. }
  368. function SavePackageSetting() {
  369. var $modal = $('#modal-package-setting');
  370. _PackageSetting = _PackageSetting || {};
  371. //_PackageSetting.roundScore = $modal.find('#roundScore').val();
  372. var roleNameArr = [];
  373. $modal.find('#role-box input[name="assess-role"]:checked').each(function() {
  374. if ($(this).is(':checked')) {
  375. var v = $(this).data('role-no');
  376. if (roleNameArr.indexOf(v>-1)) {
  377. roleNameArr.push(v);
  378. }
  379. }
  380. });
  381. _PackageSetting.assessAuto = true; //$modal.find('#role-auto').is(':checked');
  382. _PackageSetting.assessRoleNames = roleNameArr.join(",");
  383. var variableStr = '';
  384. $modal.find('#variable-box').find('.iwb-dynamic-box').each(function() {
  385. var name = $(this).find('.form-control[name="variableId"]').val();
  386. if (name) {
  387. var type = $(this).find('.form-control[name="variableType"]').val() || 'string';
  388. var value = $(this).find('.form-control[name="defaultValue"]').val() || '';
  389. variableStr += (variableStr == '' ? '' : ',') + '{0}:{1}:{2}'.format(name, type, value);
  390. }
  391. });
  392. _PackageSetting.variable = variableStr;
  393. $modal.modal('hide');
  394. }
  395. </script>
  396. <script id="tag-s">
  397. function TagModal(data, url) {
  398. var $body = FormatterTagBody(data);
  399. $(document).iwbModal('create',
  400. {
  401. modal: 'modal-tag',
  402. modaltitle: "筛选行为标签",
  403. modalBody: $body,
  404. save: function () {
  405. SaveTag(url);
  406. }
  407. });
  408. }
  409. function FormatterTagBody(data) {
  410. var $form = $('<form>', { 'css': { 'padding': '10px' } });
  411. $form.append('<input class="form-control" id="campNo" name="campNo" type="hidden">');
  412. $form.find("#campNo").val(data.campNo);
  413. var temp =
  414. '<label class="iwb-checkbox iwb-{3}"><input type="checkbox" id="tag-{0}" data-tag-no="{0}" name="tag" value="{0}" {2}><span></span>{1}</label>';
  415. var $tagBox = $('<div>', { 'class': 'dynamic-box row', 'css': { 'margin': '10px', 'paddingBottom': '0' } });
  416. var tagArr = data.behaviorTagNos ? data.behaviorTagNos.split(',') : undefined;
  417. if (data.allTags) {
  418. data.allTags.forEach(function (v) {
  419. var checkedStr = "checked";
  420. if (tagArr && tagArr.length > 0 && tagArr.indexOf(v.tagNo) < 0) {
  421. checkedStr = "";
  422. }
  423. var $tag = $('<div>', { 'class': 'col-sm-3' })
  424. .append(temp.format(v.tagNo, v.tagName, checkedStr, 'green'));
  425. $tagBox.append($tag);
  426. });
  427. }
  428. var $info = $('<div>', { 'class': 'iwb-info-box iwb-sm', 'id': 'tag-box', 'css': { 'padding': '0 10px' } });
  429. $info.append('<div class="box-header">评估标签</div>');
  430. $info.append($tagBox);
  431. $form.append($info);
  432. return $form;
  433. }
  434. function SaveTag(url) {
  435. var $modal = $('#modal-tag'), data = { campNo: $modal.find('#campNo').val() };
  436. var tagNos = '';
  437. $modal.find('#tag-box input[name="tag"]:checked').each(function () {
  438. if ($(this).is(':checked')) {
  439. tagNos += (tagNos === "" ? "" : ",") + $(this).data('tag-no');
  440. }
  441. });
  442. data.behaviorTagNos = tagNos;
  443. $.iwbAjax2({
  444. url: url,
  445. data: data,
  446. success: function () {
  447. $modal.modal('hide');
  448. }
  449. });
  450. }
  451. </script>
  452. <!--格式化-->
  453. <script id="formatter-script" type="text/javascript">
  454. function ActiveCamp(id) {
  455. MsgConfirm("确定激活课程吗?激活后不能再修改!",
  456. "激活课程",
  457. function() {
  458. $.iwbAjax1({
  459. url: abp.appUrl + 'Camp/ChangeState',
  460. data: { id: id, campState: @(CampStateDefinition.Active) },
  461. success: function() {
  462. RefreshTable($('#table'),true);
  463. }
  464. });
  465. });
  466. }
  467. function TypeFormatter(v) {
  468. var name = $('#hid-type option[value="' + v + '"]').text();
  469. switch (v) {
  470. case 0:
  471. return '<span class="label label-danger">' + name + '</span>';
  472. default:
  473. return '<span class="label label-info">' + name + '</span>';
  474. }
  475. }
  476. @*function StateFormatter(v) {
  477. var name = $('#hid-state option[value="' + v + '"]').text();
  478. switch (v) {
  479. case @(CampStateDefinition.Active):
  480. return '<span class="label label-success">' + name +'</span>';
  481. default:
  482. return '<span class="label label-info">' + name +'</span>';
  483. }
  484. }*@
  485. function StartDateFormatter(v, r, i) {
  486. var str = '';
  487. if (r.startDate && r.endDate) {
  488. str= '<span>{0}</span>'.format(DateFormatter(r.startDate, r, i, "startDate") +
  489. " 至 " +
  490. DateFormatter(r.endDate, r, i, "endDate"));
  491. if (new Date(r.endDate).getTime() + 24*60 *60*1000 < new Date().getTime()) {
  492. str += '<span style="color:red">(已失效)</span>';
  493. } else if (new Date(r.startDate).getTime() > new Date().getTime()) {
  494. str += '<span style="color:red">(未启动)</span>';
  495. }
  496. }
  497. return str;
  498. }
  499. function MinuteFormatter(v) {
  500. return v + "分钟";
  501. }
  502. function StateFormatter(v, r) {
  503. var temp = '<span class="table-action" onclick="{1}" target="_blank">' + icon + '{0}</span>';
  504. var name = $('#hid-state option[value="' + v + '"]').text();
  505. switch (r.campState) {
  506. case @(CampStateDefinition.New):
  507. return temp.format("激活课程", "ActiveCamp('" + r.id + "')");
  508. case @(CampStateDefinition.Active):
  509. return '<span class="label label-success">' + name + '</span>';
  510. default:
  511. return '暂无操作';
  512. }
  513. }
  514. function SubjectTypeFormatter(v) {
  515. var name = $('#hid-subjectType option[value="' + v + '"]').text();
  516. return name;
  517. }
  518. </script>
  519. }
  520. <section style="display: none">
  521. <select id="hid-state">
  522. @Html.Raw(state)
  523. </select>
  524. <select id="hid-subjectType">
  525. @Html.Raw(subjectType)
  526. </select>
  527. @*@Html.DropDownList("hid-type", type)*@
  528. </section>