This commit is contained in:
手瓜一十雪
2025-01-22 09:33:23 +08:00
7 changed files with 260 additions and 71 deletions

View File

@@ -149,8 +149,10 @@
</t-select> </t-select>
</t-form-item> </t-form-item>
<div> <div>
<component :is="resolveDynamicComponent(getComponent(newTab.type as ComponentKey))" <component
:config="newTab.data" /> :is="resolveDynamicComponent(getComponent(newTab.type as ComponentKey))"
:config="newTab"
/>
</div> </div>
</t-form> </t-form>
</div> </div>

View File

@@ -2,22 +2,22 @@
<div> <div>
<t-form labelAlign="left"> <t-form labelAlign="left">
<t-form-item label="启用"> <t-form-item label="启用">
<t-switch v-model="config.enable" /> <t-switch v-model="props.config.data.enable" />
</t-form-item> </t-form-item>
<t-form-item label="URL"> <t-form-item label="URL">
<t-input v-model="config.url" /> <t-input v-model="props.config.data.url" />
</t-form-item> </t-form-item>
<t-form-item label="消息格式"> <t-form-item label="消息格式">
<t-select v-model="config.messagePostFormat" :options="messageFormatOptions" /> <t-select v-model="props.config.data.messagePostFormat" :options="messageFormatOptions" />
</t-form-item> </t-form-item>
<t-form-item label="报告自身消息"> <t-form-item label="报告自身消息">
<t-switch v-model="config.reportSelfMessage" /> <t-switch v-model="props.config.data.reportSelfMessage" />
</t-form-item> </t-form-item>
<t-form-item label="Token"> <t-form-item label="Token">
<t-input v-model="config.token" /> <t-input v-model="props.config.data.token" />
</t-form-item> </t-form-item>
<t-form-item label="调试模式"> <t-form-item label="调试模式">
<t-switch v-model="config.debug" /> <t-switch v-model="props.config.data.debug" />
</t-form-item> </t-form-item>
</t-form> </t-form>
</div> </div>
@@ -34,14 +34,14 @@ const defaultConfig: HttpClientConfig = {
messagePostFormat: 'array', messagePostFormat: 'array',
reportSelfMessage: false, reportSelfMessage: false,
token: '', token: '',
debug: false debug: false,
}; };
const props = defineProps<{ const props = defineProps<{
config: HttpClientConfig; config: { data: HttpClientConfig };
}>(); }>();
const config = ref(Object.assign({}, defaultConfig, props.config)); props.config.data = { ...defaultConfig, ...props.config.data };
const messageFormatOptions = ref([ const messageFormatOptions = ref([
{ label: 'Array', value: 'array' }, { label: 'Array', value: 'array' },
@@ -49,13 +49,13 @@ const messageFormatOptions = ref([
]); ]);
watch( watch(
() => config.value.messagePostFormat, () => props.config.data.messagePostFormat,
(newValue) => { (newValue) => {
if (newValue !== 'array' && newValue !== 'string') { if (newValue !== 'array' && newValue !== 'string') {
config.value.messagePostFormat = 'array'; props.config.data.messagePostFormat = 'array';
} }
} }
); );
</script> </script>
<style scoped></style> <style scoped></style>

View File

@@ -2,28 +2,28 @@
<div> <div>
<t-form labelAlign="left"> <t-form labelAlign="left">
<t-form-item label="启用"> <t-form-item label="启用">
<t-switch v-model="config.enable" /> <t-switch v-model="props.config.data.enable" />
</t-form-item> </t-form-item>
<t-form-item label="端口"> <t-form-item label="端口">
<t-input v-model.number="config.port" type="number" /> <t-input v-model.number="props.config.data.port" type="number" />
</t-form-item> </t-form-item>
<t-form-item label="主机"> <t-form-item label="主机">
<t-input v-model="config.host" type="text" /> <t-input v-model="props.config.data.host" type="text" />
</t-form-item> </t-form-item>
<t-form-item label="启用 CORS"> <t-form-item label="启用 CORS">
<t-switch v-model="config.enableCors" /> <t-switch v-model="props.config.data.enableCors" />
</t-form-item> </t-form-item>
<t-form-item label="启用 WS"> <t-form-item label="启用 WS">
<t-switch v-model="config.enableWebsocket" /> <t-switch v-model="props.config.data.enableWebsocket" />
</t-form-item> </t-form-item>
<t-form-item label="消息格式"> <t-form-item label="消息格式">
<t-select v-model="config.messagePostFormat" :options="messageFormatOptions" /> <t-select v-model="props.config.data.messagePostFormat" :options="messageFormatOptions" />
</t-form-item> </t-form-item>
<t-form-item label="Token"> <t-form-item label="Token">
<t-input v-model="config.token" type="text" /> <t-input v-model="props.config.data.token" type="text" />
</t-form-item> </t-form-item>
<t-form-item label="调试模式"> <t-form-item label="调试模式">
<t-switch v-model="config.debug" /> <t-switch v-model="props.config.data.debug" />
</t-form-item> </t-form-item>
</t-form> </t-form>
</div> </div>
@@ -42,14 +42,14 @@ const defaultConfig: HttpServerConfig = {
enableWebsocket: true, enableWebsocket: true,
messagePostFormat: 'array', messagePostFormat: 'array',
token: '', token: '',
debug: false debug: false,
}; };
const props = defineProps<{ const props = defineProps<{
config: HttpServerConfig; config: { data: HttpServerConfig };
}>(); }>();
const config = ref(Object.assign({}, defaultConfig, props.config)); props.config.data = { ...defaultConfig, ...props.config.data };
const messageFormatOptions = ref([ const messageFormatOptions = ref([
{ label: 'Array', value: 'array' }, { label: 'Array', value: 'array' },
@@ -57,13 +57,13 @@ const messageFormatOptions = ref([
]); ]);
watch( watch(
() => config.value.messagePostFormat, () => props.config.data.messagePostFormat,
(newValue) => { (newValue) => {
if (newValue !== 'array' && newValue !== 'string') { if (newValue !== 'array' && newValue !== 'string') {
config.value.messagePostFormat = 'array'; props.config.data.messagePostFormat = 'array';
} }
} }
); );
</script> </script>
<style scoped></style> <style scoped></style>

View File

@@ -2,31 +2,31 @@
<div> <div>
<t-form labelAlign="left"> <t-form labelAlign="left">
<t-form-item label="启用"> <t-form-item label="启用">
<t-switch v-model="config.enable" /> <t-switch v-model="props.config.data.enable" />
</t-form-item> </t-form-item>
<t-form-item label="端口"> <t-form-item label="端口">
<t-input v-model.number="config.port" type="number" /> <t-input v-model.number="props.config.data.port" type="number" />
</t-form-item> </t-form-item>
<t-form-item label="主机"> <t-form-item label="主机">
<t-input v-model="config.host" type="text" /> <t-input v-model="props.config.data.host" type="text" />
</t-form-item> </t-form-item>
<t-form-item label="报告自身消息"> <t-form-item label="报告自身消息">
<t-switch v-model="config.reportSelfMessage" /> <t-switch v-model="props.config.data.reportSelfMessage" />
</t-form-item> </t-form-item>
<t-form-item label="启用 CORS"> <t-form-item label="启用 CORS">
<t-switch v-model="config.enableCors" /> <t-switch v-model="props.config.data.enableCors" />
</t-form-item> </t-form-item>
<t-form-item label="启用 WS"> <t-form-item label="启用 WS">
<t-switch v-model="config.enableWebsocket" /> <t-switch v-model="props.config.data.enableWebsocket" />
</t-form-item> </t-form-item>
<t-form-item label="消息格式"> <t-form-item label="消息格式">
<t-select v-model="config.messagePostFormat" :options="messageFormatOptions" /> <t-select v-model="props.config.data.messagePostFormat" :options="messageFormatOptions" />
</t-form-item> </t-form-item>
<t-form-item label="Token"> <t-form-item label="Token">
<t-input v-model="config.token" type="text" /> <t-input v-model="props.config.data.token" type="text" />
</t-form-item> </t-form-item>
<t-form-item label="调试模式"> <t-form-item label="调试模式">
<t-switch v-model="config.debug" /> <t-switch v-model="props.config.data.debug" />
</t-form-item> </t-form-item>
</t-form> </t-form>
</div> </div>
@@ -46,14 +46,14 @@ const defaultConfig: HttpSseServerConfig = {
messagePostFormat: 'array', messagePostFormat: 'array',
token: '', token: '',
debug: false, debug: false,
reportSelfMessage: false reportSelfMessage: false,
}; };
const props = defineProps<{ const props = defineProps<{
config: HttpSseServerConfig; config: { data: HttpSseServerConfig };
}>(); }>();
const config = ref(Object.assign({}, defaultConfig, props.config)); props.config.data = { ...defaultConfig, ...props.config.data };
const messageFormatOptions = ref([ const messageFormatOptions = ref([
{ label: 'Array', value: 'array' }, { label: 'Array', value: 'array' },
@@ -61,13 +61,13 @@ const messageFormatOptions = ref([
]); ]);
watch( watch(
() => config.value.messagePostFormat, () => props.config.data.messagePostFormat,
(newValue) => { (newValue) => {
if (newValue !== 'array' && newValue !== 'string') { if (newValue !== 'array' && newValue !== 'string') {
config.value.messagePostFormat = 'array'; props.config.data.messagePostFormat = 'array';
} }
} }
); );
</script> </script>
<style scoped></style> <style scoped></style>

View File

@@ -2,25 +2,25 @@
<div> <div>
<t-form labelAlign="left"> <t-form labelAlign="left">
<t-form-item label="启用"> <t-form-item label="启用">
<t-switch v-model="config.enable" /> <t-switch v-model="props.config.data.enable" />
</t-form-item> </t-form-item>
<t-form-item label="URL"> <t-form-item label="URL">
<t-input v-model="config.url" /> <t-input v-model="props.config.data.url" />
</t-form-item> </t-form-item>
<t-form-item label="消息格式"> <t-form-item label="消息格式">
<t-select v-model="config.messagePostFormat" :options="messageFormatOptions" /> <t-select v-model="props.config.data.messagePostFormat" :options="messageFormatOptions" />
</t-form-item> </t-form-item>
<t-form-item label="报告自身消息"> <t-form-item label="报告自身消息">
<t-switch v-model="config.reportSelfMessage" /> <t-switch v-model="props.config.data.reportSelfMessage" />
</t-form-item> </t-form-item>
<t-form-item label="Token"> <t-form-item label="Token">
<t-input v-model="config.token" /> <t-input v-model="props.config.data.token" />
</t-form-item> </t-form-item>
<t-form-item label="调试模式"> <t-form-item label="调试模式">
<t-switch v-model="config.debug" /> <t-switch v-model="props.config.data.debug" />
</t-form-item> </t-form-item>
<t-form-item label="心跳间隔"> <t-form-item label="心跳间隔">
<t-input v-model.number="config.heartInterval" type="number" /> <t-input v-model.number="props.config.data.heartInterval" type="number" />
</t-form-item> </t-form-item>
</t-form> </t-form>
</div> </div>
@@ -39,14 +39,14 @@ const defaultConfig: WebsocketClientConfig = {
reconnectInterval: 5000, reconnectInterval: 5000,
token: '', token: '',
debug: false, debug: false,
heartInterval: 30000 heartInterval: 30000,
}; };
const props = defineProps<{ const props = defineProps<{
config: WebsocketClientConfig; config: { data: WebsocketClientConfig };
}>(); }>();
const config = ref(Object.assign({}, defaultConfig, props.config)); props.config.data = { ...defaultConfig, ...props.config.data };
const messageFormatOptions = ref([ const messageFormatOptions = ref([
{ label: 'Array', value: 'array' }, { label: 'Array', value: 'array' },
@@ -54,13 +54,13 @@ const messageFormatOptions = ref([
]); ]);
watch( watch(
() => config.value.messagePostFormat, () => props.config.data.messagePostFormat,
(newValue) => { (newValue) => {
if (newValue !== 'array' && newValue !== 'string') { if (newValue !== 'array' && newValue !== 'string') {
config.value.messagePostFormat = 'array'; props.config.data.messagePostFormat = 'array';
} }
} }
); );
</script> </script>
<style scoped></style> <style scoped></style>

View File

@@ -2,31 +2,31 @@
<div> <div>
<t-form labelAlign="left"> <t-form labelAlign="left">
<t-form-item label="启用"> <t-form-item label="启用">
<t-switch v-model="config.enable" /> <t-switch v-model="props.config.data.enable" />
</t-form-item> </t-form-item>
<t-form-item label="主机"> <t-form-item label="主机">
<t-input v-model="config.host" /> <t-input v-model="props.config.data.host" />
</t-form-item> </t-form-item>
<t-form-item label="端口"> <t-form-item label="端口">
<t-input v-model.number="config.port" type="number" /> <t-input v-model.number="props.config.data.port" type="number" />
</t-form-item> </t-form-item>
<t-form-item label="消息格式"> <t-form-item label="消息格式">
<t-select v-model="config.messagePostFormat" :options="messageFormatOptions" /> <t-select v-model="props.config.data.messagePostFormat" :options="messageFormatOptions" />
</t-form-item> </t-form-item>
<t-form-item label="上报自身消息"> <t-form-item label="上报自身消息">
<t-switch v-model="config.reportSelfMessage" /> <t-switch v-model="props.config.data.reportSelfMessage" />
</t-form-item> </t-form-item>
<t-form-item label="Token"> <t-form-item label="Token">
<t-input v-model="config.token" /> <t-input v-model="props.config.data.token" />
</t-form-item> </t-form-item>
<t-form-item label="强制推送事件"> <t-form-item label="强制推送事件">
<t-switch v-model="config.enableForcePushEvent" /> <t-switch v-model="props.config.data.enableForcePushEvent" />
</t-form-item> </t-form-item>
<t-form-item label="调试模式"> <t-form-item label="调试模式">
<t-switch v-model="config.debug" /> <t-switch v-model="props.config.data.debug" />
</t-form-item> </t-form-item>
<t-form-item label="心跳间隔"> <t-form-item label="心跳间隔">
<t-input v-model.number="config.heartInterval" type="number" /> <t-input v-model.number="props.config.data.heartInterval" type="number" />
</t-form-item> </t-form-item>
</t-form> </t-form>
</div> </div>
@@ -46,14 +46,14 @@ const defaultConfig: WebsocketServerConfig = {
token: '', token: '',
enableForcePushEvent: true, enableForcePushEvent: true,
debug: false, debug: false,
heartInterval: 30000 heartInterval: 30000,
}; };
const props = defineProps<{ const props = defineProps<{
config: WebsocketServerConfig; config: { data: WebsocketServerConfig };
}>(); }>();
const config = ref(Object.assign({}, defaultConfig, props.config)); props.config.data = { ...defaultConfig, ...props.config.data };
const messageFormatOptions = ref([ const messageFormatOptions = ref([
{ label: 'Array', value: 'array' }, { label: 'Array', value: 'array' },
@@ -61,13 +61,13 @@ const messageFormatOptions = ref([
]); ]);
watch( watch(
() => config.value.messagePostFormat, () => props.config.data.messagePostFormat,
(newValue) => { (newValue) => {
if (newValue !== 'array' && newValue !== 'string') { if (newValue !== 'array' && newValue !== 'string') {
config.value.messagePostFormat = 'array'; props.config.data.messagePostFormat = 'array';
} }
} }
); );
</script> </script>
<style scoped></style> <style scoped></style>

View File

@@ -2406,6 +2406,193 @@
"AQLid": "211", "AQLid": "211",
"QHide": "1", "QHide": "1",
"EMCode": "309" "EMCode": "309"
},
{
"QSid": "424",
"QDes": "/续标识",
"IQLid": "424",
"AQLid": "424",
"EMCode": "10424",
"QHide": "0",
"AniStickerType": 1,
"AniStickerPackId": "1",
"AniStickerId": "52"
},
{
"QSid": "415",
"QDes": "/划龙舟",
"IQLid": "415",
"AQLid": "415",
"EMCode": "10415",
"QHide": "0",
"AniStickerType": 3,
"AniStickerPackId": "1",
"AniStickerId": "43"
},
{
"QSid": "416",
"QDes": "/中龙舟",
"IQLid": "416",
"AQLid": "416",
"EMCode": "10416",
"QHide": "1",
"AniStickerType": 3,
"AniStickerPackId": "1",
"AniStickerId": "44"
},
{
"QSid": "417",
"QDes": "/大龙舟",
"IQLid": "417",
"AQLid": "417",
"EMCode": "10417",
"QHide": "1",
"AniStickerType": 3,
"AniStickerPackId": "1",
"AniStickerId": "45"
},
{
"QSid": "425",
"QDes": "/求放过",
"IQLid": "425",
"AQLid": "425",
"EMCode": "10425",
"QHide": "0",
"AniStickerType": 1,
"AniStickerPackId": "1",
"AniStickerId": "53"
},
{
"QSid": "427",
"QDes": "/偷感",
"IQLid": "427",
"AQLid": "427",
"EMCode": "10427",
"QHide": "0",
"AniStickerType": 1,
"AniStickerPackId": "1",
"AniStickerId": "55"
},
{
"QSid": "426",
"QDes": "/玩火",
"IQLid": "426",
"AQLid": "426",
"EMCode": "10426",
"QHide": "0",
"AniStickerType": 1,
"AniStickerPackId": "1",
"AniStickerId": "54"
},
{
"QSid": "419",
"QDes": "/火车",
"IQLid": "419",
"AQLid": "419",
"EMCode": "10419",
"QHide": "0",
"AniStickerType": 3,
"AniStickerPackId": "1",
"AniStickerId": "47"
},
{
"QSid": "420",
"QDes": "/中火车",
"IQLid": "420",
"AQLid": "420",
"EMCode": "10420",
"QHide": "1",
"AniStickerType": 3,
"AniStickerPackId": "1",
"AniStickerId": "48"
},
{
"QSid": "421",
"QDes": "/大火车",
"IQLid": "421",
"AQLid": "421",
"EMCode": "10421",
"QHide": "1",
"AniStickerType": 3,
"AniStickerPackId": "1",
"AniStickerId": "49"
},
{
"QSid": "429",
"QDes": "/蛇年快乐",
"IQLid": "429",
"AQLid": "429",
"EMCode": "10429",
"QHide": "0",
"AniStickerType": 3,
"AniStickerPackId": "1",
"AniStickerId": "56"
},
{
"QSid": "430",
"QDes": "/蛇身",
"IQLid": "430",
"AQLid": "430",
"EMCode": "10430",
"QHide": "1",
"AniStickerType": 3,
"AniStickerPackId": "1",
"AniStickerId": "57"
},
{
"QSid": "431",
"QDes": "/蛇尾",
"IQLid": "431",
"AQLid": "431",
"EMCode": "10431",
"QHide": "1",
"AniStickerType": 3,
"AniStickerPackId": "1",
"AniStickerId": "56"
},
{
"QSid": "428",
"QDes": "/收到",
"IQLid": "428",
"AQLid": "428",
"EMCode": "10428",
"QHide": "0",
"AniStickerType": 0,
"AniStickerPackId": "0",
"AniStickerId": "0"
},
{
"QSid": "422",
"QDes": "/粽于等到你",
"IQLid": "422",
"AQLid": "422",
"EMCode": "10422",
"QHide": "1",
"AniStickerType": 1,
"AniStickerPackId": "1",
"AniStickerId": "50"
},
{
"QSid": "423",
"QDes": "/复兴号",
"IQLid": "423",
"AQLid": "423",
"EMCode": "10423",
"QHide": "1",
"AniStickerType": 1,
"AniStickerPackId": "1",
"AniStickerId": "51"
},
{
"QSid": "432",
"QDes": "/灵蛇献瑞",
"IQLid": "432",
"AQLid": "432",
"EMCode": "10432",
"QHide": "1",
"AniStickerType": 1,
"AniStickerPackId": "1",
"AniStickerId": "59"
} }
], ],
"emoji": [ "emoji": [