Red de conocimiento informático - Problemas con los teléfonos móviles - La interfaz de usuario del elemento Vue implementa el cambio de color del tema.

La interfaz de usuario del elemento Vue implementa el cambio de color del tema.

lt plantilla gt

selector de color ltel

: predefine="predefineColors "

v-model="themeVal "

size= " mini "

style = " padding-top: 18px;"

class = "selector de temas"

popper-class = " selector de temas- menú desplegable "/ gt;

lt/template gt;

ltscriptgt

const? ¿Versión? =?require(' elemento-ui/paquete . JSON '). ¿Versión? //elemento-ui? versión

const? ¿Tema_original? =?#409EFF? //Color predeterminado

¿Exportar? ¿Incumplimiento de contrato? {

Nombre:? color superior',

datos()? {

¿Volver? {

Tema:? Tema_original,

Tiza:? '',

Colores predefinidos:? [//Colores preseleccionados

#ff4500',

#ff8c00',

#700franc',

#90ee90 ' ,

#00ced1 ',

#1e90ff ',

#c71585 '

]

}

},

Ver:? {//Monitoriza el color seleccionado.

¿Val(val,Valantiguo)? {

this.updateTheme(val, Oldval)

}

},

Método:? {

//Llamar a la función de actualización

updateTheme(val, oldVal)? {

¿Y si? (tipo de?val.

! ==?cadena')? Retorno

//¿Declarar constante? ¿Const

cabeza? ¿cabeza? =?documento . getelementsbytagname('head')[0]

const? temaClúster? =?this . getthemecluster(val . replace(' # ',?''))

const? ¿Clúster original? =?this . getthemecluster(antiguo val . reemplazar(' # ',?''))

const? obtenerHandler? =?(variable,?id)? =gt? {

¿Volver? ()?=gt? {

¿constante? ¿Clúster original? =?this.getThemeCluster(

ORIGINAL_THEME.replace('# ',?'')

)

const? ¿Nuevo estilo? =?this.updateStyle(

Esta [variable],

Clúster original,

Clúster de temas

)

¿Dejar? etiqueta de estilo? =?document.getElementById(id)

¿Si? (!etiqueta de estilo)? {

¿Etiqueta de estilo? =?document . createelement("estilo")

styleTag.setAttribute('id ',?id)

head.appendChild(styleTag)

}

styleTag.innerText? =?Nuevo estilo

}

}

const? ¿Manejador de tiza? =?getHandler('Tiza',?Estilo de tiza')

¿Si? (!Esta. Tiza)? {

¿constante? URL? =?`/element-ui @ $ { versión }/lib/theme-chalk/index . CSS '

this.getCSSString(url,chalkHandler?chalk')

}? ¿De lo contrario? {

ChalkProcessor()

}

constante? ¿Enlace? =?[].slice.call(

document . getelementsbytagname(' head ')[0].

getElementsByTagName('link ')

)

¿Para qué? (let?i?=?0;?i?lt?link.length;?i)? {

¿constante? ¿estilo? =?Enlace[i]

¿Si? (style.href.includes('css ')?{

this.getCSSString(style.href,?innerText?=gt?{

const?grupo original?=?this .getThemeCluster(

ORIGINAL_THEME.replace('# ',?'')

)

const? =?this.updateStyle(

p >

Texto interno,

Clúster original,

Clúster de temas

)

¿Deje que styleTag?=?document. (i)

Si (!styleTag)? {

styleTag? =?document.createelement("estilo")

styleTag.id? /p>

styleTag.innerText? =?nuevo estilo

head.appendChild(styleTag)

}

})

}

}

Const? =?[]. segmento call(document . selector de consulta todo(' estilo '))

styles.forEach( ¿estilo?= gt?{

const?{

texto interior

}?=?estilo

si?(tipode?textointerior ?!==?string')? return

style.innerText? =?this.updateStyle(

texto interno,

Clúster original,

Clúster de temas

)

})

},

updateStyle(style, oldCluster? newCluster)?{

¿Nuevo estilo? =?estilo

oldCluster.forEach((color,? index)?= gt?{

¿Nuevo estilo? =?newStyle.replace( new?RegExp(color,ig'),?new cluster[index])

¿Regresar?

},

getCSSString(url, callback,? variable)? {

¿constante? xhr? =?¿Nuevo? XMLHttpRequest()

xhr.onreadystatechange? =?()?= gt? {

¿Y si? (xhr.readyState?===?4? amp amp?xhr.status?===?200)?{

¿Si? (variable)? {

¿Esta [variable]? =?xhr.responsetext.replace(/@font-face{[^}] }/?'')

}

Devolución de llamada(xhr.responseText)

p>

}

}

xhr.open('GET ',? URL)

xhr.send()

},

getThemeCluster(tema)? {

¿constante? tinteColor? =?(color,?tinte)? =gt? {

¿Dejar? ¿rojo? =?parseInt(color.slice(0, 2),?16)

¿Dejar? ¿verde? =?parseInt(color.slice(2, 4),? 16)

¿Dejar? ¿azul? =?parseInt(color.slice(4, 6),? 16)

Si? (¿tinte? ===?0)?{

¿Volver? 【rojo,? ¿verde? azul】. Unirse(',')

} ¿De lo contrario? {

¿Rojo? =?Math.round(Tono?*?(255?-?Rojo))

¿Verde? =?Math.round(¿Tono?*?(255?-?Verde))

¿Azul? =?Math.round(¿Tono?*?(255?-?Azul))

¿Rojo? =?red.toString(16)

¿Verde? =?Verde. toString(16)

¿Azul? =?blue.toString(16)

¿Regresión? `# ${rojo} ${verde} ${azul} `

}

}

const? ¿Color de sombra? =?(color,?sombra)? =gt? {

¿Dejar? ¿rojo? =?parseInt(color.slice(0, 2),?16)

¿Dejar? ¿verde? =?parseInt(color.slice(2, 4),? 16)

¿Dejar? ¿azul? =?parseInt(color.slice(4,6),?16)

¿Rojo? =?Math.round((1?-?sombra)?*?Rojo)

¿Verde? =?Math.round((1?-?sombra)?*?Verde)

¿Azul? =?Math.round((1?-?sombra)?*?azul)

¿Rojo? =?red.toString(16)

¿Verde? =?Verde. toString(16)

¿Azul? =?blue.toString(16)

¿Regresión? `# ${rojo} ${verde} ${azul} `

}

const? ¿Grupo? =?[Tema]

¿Para qué? (let?i?=?0;?i?lt=?9;?i)? {

clusters.push(tintColor(theme, number((我?/?10).toFixed(2))))

}

clusters. push(shadeColor(theme, 0.1))

¿Regresión? clúster

}

}

}

lt/script gt

ltstyle gt

. ¿Selector de temas? . elcolorpicker_ _trigger? {

Alineación vertical:? Medio;

}

. ¿Menú desplegable del selector de temas? .

el-color-dropdown__link-btn? {

Pantalla:? Ninguno;

}

lt/style gt;