Индикатор состояния на основе срока исполнения - PullRequest
0 голосов
/ 16 мая 2019

У меня есть столбец «Приоритет» на моей странице SharePoint, который показывает точку маркера зеленого, желтого или красного цвета.Кажется, я нигде не могу найти никакой помощи в том, как я могу кодировать это, чтобы связать со столбцом «Срок исполнения».

В данный момент мои индикаторы состояния отображаются только при выборе высокого, нормального или низкого значения «Приоритет».

Для "Приоритетных индикаторов" у меня есть код:

Приоритетный индикатор

Мой код JavaScript см. Ниже;

Код JavaScript

Я хочу показать приоритетные показатели;Красный индикатор показывает, если срок исполнения в течение недели. Желтый индикатор показывает, что срок исполнения в течение 2 недель. Зеленый индикатор показывает, если срок исполнения в течение 3 + недель.

1 Ответ

0 голосов
/ 17 мая 2019

Столбец поиска не будет обновляться автоматически, поэтому я предлагаю вам использовать CSR для этого требования.

Вставьте веб-часть редактора скриптов на страницу веб-части просмотра списка и вставьте скрипт ниже в веб-часть редактора скриптов..

<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script type="text/javascript">
        (function () {

            // Create object that have the context information about the field that we want to change it's output render
            var priorityFiledContext = {};
            priorityFiledContext.Templates = {};
            priorityFiledContext.Templates.Fields = {
                // Apply the new rendering for Priority field on List View
                "Priority_x0020_Indicators": { "View": priorityFiledTemplate }
            };

            SPClientTemplates.TemplateManager.RegisterTemplateOverrides(priorityFiledContext);

        })();

        // This function provides the rendering logic for list view
        function priorityFiledTemplate(ctx) {

            // get today's date
            var today = new Date();
            // zero out the time portion so we will only compare days
            today.setHours(0, 0, 0, 0);

            // get the date set in your date YourDateField
            var itemDate = new Date(ctx.CurrentItem["Due_x0020_Date"]);
            // zero out the time portion so we only compare days
            itemDate.setHours(0, 0, 0, 0);
            // Return html element with appropriate color based on priority value

            var oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds

            var diffDays = Math.round(Math.abs((itemDate.getTime() - today.getTime()) / (oneDay)));
            if (diffDays < 7) {
                return "<span style='color:red'>&bull;</span>";
            } else if (diffDays < 14) {
                return "<span style='color:yellow'>&bull;</span>";
            } else {
                return "<span style='color:green'>&bull;</span>";
            }
        }
    </script>

enter image description here

Проверка статического имени поля с помощью инструмента разработчика (в списке новый / форма редактирования).

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...