更改共享点中特定文本的颜色文本

Change color text of specific text in sharepoint

我正在做一些测试(问题跟踪)并且我启动了一个工作流,一个三态工作流。工作流显示为已完成或正在进行。我可以更改单词的颜色吗?例如,进行中的是橙色,完成的是绿色。

请指教

供参考:https://imgur.com/a/eK8R3UZ

如果您在主页选项卡下使用 spreadsheet/excel,那里有字体组,您会看到一个带有字母 A 的图标,并用粗体颜色下划线通常为红色或黑色,表示用于更改特定文本或所有文本颜色的字体颜色选项。

如果你想要一个简单的解决方案。你将有两个改变两件事。 首先,HTML 文件。如果 table 还没有 ID,则需要添加一个 ID。 其次,您必须添加以下 javascript.

它的作用是: 加载页面时,它将获取我们提到的带有 Id 的 table 中的每个第二个单元格。然后它获取单元格的值并匹配颜色对象的属性之一。 最后它会将该颜色应用到文本

$(document).ready(function(){
  var indexOfColumn = 2;
  var colors = {"A": "red", "B B": "green", "C.C": "yellow"};
  
  $("#someID tbody tr td:nth-child("+ indexOfColumn +")").each(function(key, value){
    $(value).css("color", colors[$(value).text()])
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="someID">
  <tr><td>1</td><td>A</td></tr>
  <tr><td>2</td><td>B B</td></tr>
  <tr><td>3</td><td>C.C</td></tr>
  <tr><td>4</td><td>A</td></tr>
</table>

老实说,我还没有用工作流的默​​认列尝试过这个,但你可以创建一个状态字段,例如'Status' 在你的列表中,它根据你的工作流状态更新,即当工作流正在进行时,将字段值设置为 'In Progress' 并且在工作流成功完成之前,将其更新为 'Completed' 然后使用JS link:

 (function () {
    var overrideCtx = {};
    overrideCtx.Templates = {};
    overrideCtx.OnPostRender = [];

    overrideCtx.Templates.Fields =
    {
        'Status': { 'View': ChangeColor }
    };

    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);

})();

function ChangeColor(ctx){ 
    var val = ctx.CurrentItem["Status"];
    if (val == "In Progress")
    {
        return "<span style='color: orange'>" + val + "</span>";

    }
    else {
        return "<span style='color: green'>" + val + "</span>";
    }

}

把上面的代码放在一个js文件里,然后放到某个地方,比如在样式库中。然后,您可以通过配置列表视图 Web 部件并提供文件的服务器相对 url 来引用此文件。 希望这有帮助。

在SharePoint 2013中,我们可以在脚本编辑器web部件中添加如下代码来实现。

<script src="https://code.jquery.com/jquery-1.12.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function() { 
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
        OnPostRender: function (ctx) {
            $("td.ms-vb2>a>span").each(function(){
                if($(this).text()=="In Progress"){
                    $(this).css("color","orange");
                }
                if($(this).text()=="Completed"){
                    $(this).css("color","green");
                }
            });
            $("td.ms-vb2").each(function(){
                if($(this).text()=="Closed"){
                    $(this).css("color","red");
                }
                if($(this).text()=="Active"){
                    $(this).css("color","green");
                }
            });
        }
    });
});
</script>