SurveyEditor.razor 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. <EditForm Model="@_survey">
  13. <div>Наименование опроса:</div>
  14. <div>
  15. <InputText type="text" @bind-Value="_survey.Name" placeholder="Введите наименование" />
  16. </div>
  17. <div>Описание опроса:</div>
  18. <div>
  19. <InputTextArea type="text" @bind-Value="_survey.Description" placeholder="Введите описание" />
  20. </div>
  21. <div>Вопросы:</div>
  22. @foreach (var item in _survey.SurveyItems)
  23. {
  24. if (!item.Value.IsDeleted)
  25. {
  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. Console.WriteLine($"");
  41. <div>
  42. Ответ №@option.Value.Position
  43. <a style="cursor:pointer" @onclick="OptionMove">&#11014;</a>
  44. <a style="cursor:pointer" @onclick="OptionMove">&#11015;</a>
  45. <a style="cursor:pointer" @onclick="OptionDelete">&#10006;</a>
  46. </div>
  47. <div>
  48. <InputText type="text" @bind-Value="option.Value.Text" placeholder="Введите текст ответа" />
  49. </div>
  50. <div>
  51. П - <InputNumber @bind-Value="option.Value.Rate1" style="width:40px; text-align:center" />
  52. М - <InputNumber @bind-Value="option.Value.Rate2" style="width:40px; text-align:center" />
  53. Л - <InputNumber @bind-Value="option.Value.Rate3" style="width:40px; text-align:center" />
  54. С - <InputNumber @bind-Value="option.Value.Rate4" style="width:40px; text-align:center" />
  55. </div>
  56. }
  57. }
  58. <div style="margin-left:20px; margin-bottom:20px; cursor:pointer" @onclick="(() => AddNewOption(item.Key))">+ Добавить вариант ответа</div>
  59. </div>
  60. }
  61. }
  62. <div style="margin-bottom: 20px; cursor: pointer" @onclick="(() => AddNewItem())">+ Добавить вопрос</div>
  63. </EditForm>
  64. </div>
  65. <ModalInfo @ref="_modalInfo">
  66. <Title>Редактор опросов</Title>
  67. <Body></Body>
  68. </ModalInfo>