Lembre-se de uma vez na caixa de transporte layui, use o método de união de subtração para pré-processar alguns dos itens desativados

O método transfer.render da caixa de transporte Layui aceita [todos os dados] dados da matriz do objeto e [dados corretos iniciais] valor da matriz de id

Agora a demanda é a seguinte: Use a caixa de transporte para atribuir funções aos funcionários, e funções que não estão disponíveis na conta de operação não podem ser atribuídas. A página é a seguinte

 Matriz de objetos obtida por solicitação ajax: própria função myRoles e a função do funcionário operado hisRoles

Gere a matriz de id do item à direita da caixa de transporte como o valor da caixa de transporte

deixe hisRolesIdList = []; 
hisRoles.forEach (his => hisRolesIdList.push (his.id));

Calcule a função do funcionário operado, a função disableRoles que você não possui

deixe disableRoles = [... hisRoles] .filter (his => [... myRoles] .every (my => my.id! == his.id));

O conjunto de diferença mais o conjunto de menos é o conjunto de união, incluindo todos os itens, como os dados da caixa de transporte

deixe unionRoles = [... myRoles, ... disableRoles];

Como disableRoles é uma matriz copiada, adicione o atributo disabled em unionRoles

unionRoles.forEach (x => {if (new Set (disableRoles) .has (x)) x.disabled = true;});

Está tudo pronto, basta gerar a próxima caixa de transporte!

transfer.render ({
  
  

......

data: unionRoles,
valor: hisRolesIdList
})

Acho que você gosta

Origin blog.csdn.net/u012452555/article/details/110161023
Recomendado
Clasificación