SurveyEditor.razor 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. @page "/surveyeditor"
  2. @page "/surveyeditor/{ID:int}"
  3. <div style="margin-left:20px">
  4. <h3>Редактор опросов (тестовая квалификация)</h3>
  5. <div style="margin:10px; margin-left:0px">
  6. <a href="surveys">Вернуться к списку опросов</a>
  7. ||
  8. <a style="cursor:pointer" @onclick="SaveSurvey">Сохранить опрос</a>
  9. ||
  10. <a style="cursor:pointer" @onclick="NewSurvey">Создать новый опрос</a>
  11. </div>
  12. @*<p>id: @ID</p>*@
  13. <EditForm Model="@_survey">
  14. <div>Наименование опроса:</div>
  15. <div>
  16. <InputText type="text" @bind-Value="_survey.Name" placeholder="Введите наименование" />
  17. </div>
  18. <div>Описание опроса:</div>
  19. <div>
  20. <InputTextArea type="text" @bind-Value="_survey.Description" placeholder="Введите описание" />
  21. </div>
  22. <div>Вопросы:</div>
  23. @foreach (var item in _survey.SurveyItems)
  24. {
  25. @*<div>id: @item.Key</div>*@
  26. <div>
  27. Вопрос №@item.Value.Position
  28. <a style="cursor:pointer" @onclick="(() => ItemMove(item.Key, -1))">&#11014;</a>
  29. <a style="cursor:pointer" @onclick="(() => ItemMove(item.Key, 1))">&#11015;</a>
  30. <a style="cursor:pointer" @onclick="(() => ItemDelete(item.Key))">&#10006;</a>
  31. </div>
  32. <div>
  33. <InputTextArea type="text" @bind-Value="item.Value.Text" placeholder="Введете текст вопроса" />
  34. </div>
  35. <div style="margin-left:20px">
  36. @foreach (var option in item.Value.SurveyItemOptions)
  37. {
  38. if (!option.Value.IsDeleted)
  39. {
  40. <div>
  41. Ответ №@option.Value.Position
  42. <a style="cursor:pointer" @onclick="OptionMove">&#11014;</a>
  43. <a style="cursor:pointer" @onclick="OptionMove">&#11015;</a>
  44. <a style="cursor:pointer" @onclick="OptionDelete">&#10006;</a>
  45. </div>
  46. <div>
  47. <InputText type="text" @bind-Value="option.Value.Text" placeholder="Введите текст ответа" />
  48. </div>
  49. <div>
  50. П - <InputNumber @bind-Value="option.Value.Rate1" style="width:40px; text-align:center" />
  51. М - <InputNumber @bind-Value="option.Value.Rate2" style="width:40px; text-align:center" />
  52. Л - <InputNumber @bind-Value="option.Value.Rate3" style="width:40px; text-align:center" />
  53. С - <InputNumber @bind-Value="option.Value.Rate4" style="width:40px; text-align:center" />
  54. </div>
  55. }
  56. }
  57. <div style="margin-left:20px; cursor:pointer" @onclick="(() => AddNewOption(item.Key))">+ Добавить вариант ответа</div>
  58. </div>
  59. }
  60. <div style="cursor:pointer" @onclick="(() => AddNewItem())">+ Добавить вопрос</div>
  61. </EditForm>
  62. </div>
  63. <ModalInfo @ref="_modalInfo">
  64. <Title></Title>
  65. <Body></Body>
  66. </ModalInfo>