SurveyEditor.razor 3.8 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 style="border:2px solid #3a3838; margin:5px"></div>
  22. @foreach (var item in _survey.SurveyItemsSorted)
  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.SurveyItemOptionsSorted)
  37. {
  38. if (!option.Value.IsDeleted)
  39. {
  40. <div style="margin-top:5px">
  41. Ответ №@option.Value.Position
  42. <a style="cursor:pointer" @onclick="(() => OptionMove(item.Key, option.Key, -1))">&#11014;</a>
  43. <a style="cursor:pointer" @onclick="(() => OptionMove(item.Key, option.Key, 1))">&#11015;</a>
  44. <a style="cursor:pointer" @onclick="(() => OptionDelete(item.Key, option.Key))">&#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; margin-bottom:20px; cursor:pointer" @onclick="(() => AddNewOption(item.Key))">+ Добавить вариант ответа</div>
  58. </div>
  59. <div style="border:2px solid #3a3838; margin: 5px"></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>