diff --git a/src/assets/js/iconpicker.js b/src/assets/js/iconpicker.js
index 5594ffc..5354ebe 100644
--- a/src/assets/js/iconpicker.js
+++ b/src/assets/js/iconpicker.js
@@ -1,7 +1,6 @@
-import qctemplates from "./qctemplates.js"
-
// 从 icons8 选择图标
-let getIcons8Icon = () => {
+let getIcons8Icon = (selector, callback) => {
+ if (!$(selector).is('select')) return
let showIcon = icon => {
return $(`
${icon.name}`)
}
@@ -11,12 +10,14 @@ let getIcons8Icon = () => {
}
let showSelection = selection => {
if (!selection.commonName) return selection.text
- $('#networkImgUrl').val(`https://img.icons8.com/color/1x/${selection.commonName}.png`)
+ let imgUrl = `https://img.icons8.com/color/1x/${selection.commonName}.png`
+ getImg(imgUrl, src => {
+ src && callback(src)
+ })
return showIcon(selection)
}
- $('#networkImg').select2({
+ $(selector).select2({
dataType: 'json',
- width: '80%',
delay: 250,
ajax: {
url: 'https://search.icons8.com/api/iconsets/v5/search',
@@ -47,45 +48,43 @@ let getIcons8Icon = () => {
})
}
-let getRemoteImg = async imgUrl => {
- try {
- let imgInfo = window.getFileInfo({ type: 'file', argvs: imgUrl, readfile: false })
- let imgPath = window.getQuickCommandScriptFile(imgInfo.ext)
- await quickcommand.downloadFile(imgUrl, imgPath)
- $("#iconame").val(imgInfo.name);
- let src = await window.getBase64Ico(imgPath);
- $("#icon").attr('src', src);
- } catch (error) {
- quickcommand.showMessageBox('图片地址有误!', 'error')
- }
-}
-
-let showChangeIconWindow = () => {
- Swal.fire({
- title: "设置图标",
- onBeforeOpen: () => {
- getIcons8Icon()
- $('#localImg').click(async () => {
- var options = { buttonLabel: '选择', properties: ['openFile'] }
- var file = window.getFileInfo({ type: 'dialog', argvs: options, readfile: false })
- if (file) {
- $("#iconame").val(file.name);
- let src = await window.getBase64Ico(file.path);
- $("#icon").attr('src', src);
- Swal.close()
- }
+let getLocalIcon = (selector, callback) => {
+ $(selector).click(async () => {
+ var options = { buttonLabel: '选择', properties: ['openFile'] }
+ var file = window.getFileInfo({ type: 'dialog', argvs: options, readfile: false })
+ if (file) {
+ window.getBase64Ico(file.path).then(src => {
+ callback(src)
})
- },
- html: qctemplates.command.setIcon,
- showCancelButton: true,
- preConfirm: async () => {
- let imgUrl = $('#networkImgUrl').val()
- if (imgUrl) await getRemoteImg(imgUrl)
- else quickcommand.showMessageBox('没有输入图标地址', 'warning')
}
})
}
-export default {
- showChangeIconWindow
+let getRemoteIcon = (selector, callback) => {
+ if (!$(selector).is('input')) return
+ $(selector).blur(async () => {
+ let imgUrl = $(selector).val()
+ if (!imgUrl) return
+ getImg(imgUrl, src => {
+ src && callback(src)
+ })
+ })
+}
+
+let getImg = (imgUrl, callback) => {
+ let imgInfo = window.getFileInfo({ type: 'file', argvs: imgUrl, readfile: false })
+ let imgPath = window.getQuickCommandScriptFile(imgInfo.ext)
+ quickcommand.downloadFile(imgUrl, imgPath).then(() => {
+ window.getBase64Ico(imgPath).then(src => {
+ callback(src)
+ })
+ }).catch(e => {
+ utools.showNotification('图片地址有误!')
+ })
+}
+
+export default {
+ getIcons8Icon,
+ getLocalIcon,
+ getRemoteIcon
}