update: 通知模板组件替换

This commit is contained in:
JiangQiming 2023-03-08 16:10:14 +08:00
parent f3bebd063b
commit 8622bfe8f1
9 changed files with 248 additions and 248 deletions

View File

@ -1,5 +1,5 @@
<template>
<a-modal
<j-modal
v-model:visible="_vis"
title="调试"
cancelText="取消"
@ -8,33 +8,33 @@
@cancel="handleCancel"
:confirmLoading="btnLoading"
>
<a-form ref="formRef" layout="vertical" :model="formData">
<a-form-item
<j-form ref="formRef" layout="vertical" :model="formData">
<j-form-item
label="通知配置"
name="configId"
:rules="{ required: true, message: '该字段为必填字段' }"
>
<a-select
<j-select
v-model:value="formData.configId"
placeholder="请选择通知配置"
>
<a-select-option
<j-select-option
v-for="(item, index) in configList"
:key="index"
:value="item.id"
>
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item
</j-select-option>
</j-select>
</j-form-item>
<j-form-item
label="变量"
v-if="
formData.templateDetailTable &&
formData.templateDetailTable.length
"
>
<a-table
<j-table
row-key="id"
:columns="columns"
:data-source="formData.templateDetailTable"
@ -48,7 +48,7 @@
<span>{{ record[column.dataIndex] }}</span>
</template>
<template v-else>
<a-form-item
<j-form-item
:name="['templateDetailTable', index, 'value']"
:rules="{
required: record.required,
@ -78,13 +78,13 @@
v-model:modelValue="record.value"
:itemType="record.type"
/>
</a-form-item>
</j-form-item>
</template>
</template>
</a-table>
</a-form-item>
</a-form>
</a-modal>
</j-table>
</j-form-item>
</j-form>
</j-modal>
</template>
<script setup lang="ts">

View File

@ -6,7 +6,7 @@
v-for="(item, index) in fileList"
:key="index"
>
<a-input v-model:value="item.name">
<j-input v-model:value="item.name">
<template #addonAfter>
<a-upload
name="file"
@ -20,14 +20,14 @@
<upload-outlined />
</a-upload>
</template>
</a-input>
</j-input>
<delete-outlined
@click="handleDelete(item.id)"
style="cursor: pointer"
/>
</div>
<a-button
<j-button
type="dashed"
@click="handleAdd"
style="width: 100%; margin-top: 5px"
@ -36,7 +36,7 @@
<plus-outlined />
</template>
添加
</a-button>
</j-button>
</div>
</template>

View File

@ -1,5 +1,5 @@
<template>
<a-select
<j-select
:options="options"
@change="change"
placeholder="请选择收信部门"

View File

@ -1,5 +1,5 @@
<template>
<a-select
<j-select
:options="options"
@change="change"
placeholder="请选择标签推送,多个标签用,号分隔"

View File

@ -1,5 +1,5 @@
<template>
<a-select
<j-select
:options="options"
@change="change"
placeholder="请选择收信人"

View File

@ -1,7 +1,7 @@
<!-- 模板内容-变量列表 -->
<template>
<div class="table-wrapper">
<a-table
<j-table
:columns="columns"
:data-source="dataSource"
bordered
@ -11,52 +11,52 @@
<span v-if="column.dataIndex === 'id'">
{{ record[column.dataIndex] }}
</span>
<a-input
<j-input
v-if="column.dataIndex === 'name'"
v-model:value="record.name"
/>
<a-select
<j-select
v-if="column.dataIndex === 'type'"
v-model:value="record.type"
@change="handleTypeChange(record)"
>
<a-select-option value="string">字符串</a-select-option>
<a-select-option value="date">时间</a-select-option>
<a-select-option value="double">数字</a-select-option>
</a-select>
<j-select-option value="string">字符串</j-select-option>
<j-select-option value="date">时间</j-select-option>
<j-select-option value="double">数字</j-select-option>
</j-select>
<template v-if="column.dataIndex === 'format'">
<span v-if="record.type === 'string'">
{{ record.format }}
</span>
<a-select
<j-select
v-if="record.type === 'date'"
v-model:value="record.format"
>
<a-select-option value="timestamp">
<j-select-option value="timestamp">
timestamp
</a-select-option>
<a-select-option value="yyyy-MM-dd">
</j-select-option>
<j-select-option value="yyyy-MM-dd">
yyyy-MM-dd
</a-select-option>
<a-select-option value="yyyy-MM-dd HH:mm:ss">
</j-select-option>
<j-select-option value="yyyy-MM-dd HH:mm:ss">
yyyy-MM-dd HH:mm:ss
</a-select-option>
</a-select>
<a-input
</j-select-option>
</j-select>
<j-input
v-if="record.type === 'double'"
v-model:value="record.format"
>
<template #suffix>
<a-tooltip
<j-tooltip
title="格式为:%.xf x代表数字保留的小数位数。当x=0时,代表格式为整数"
>
<AIcon type="QuestionCircleOutlined" />
</a-tooltip>
</j-tooltip>
</template>
</a-input>
</j-input>
</template>
</template>
</a-table>
</j-table>
</div>
</template>

View File

@ -1,36 +1,36 @@
<!-- 通知模板详情 -->
<template>
<page-container>
<a-card>
<a-row>
<a-col :span="10">
<a-form layout="vertical">
<a-form-item
<j-card>
<j-row>
<j-col :span="10">
<j-form layout="vertical">
<j-form-item
label="通知方式"
v-bind="validateInfos.type"
>
<a-select
<j-select
v-model:value="formData.type"
placeholder="请选择通知方式"
:disabled="!!formData.id"
@change="handleTypeChange"
>
<a-select-option
<j-select-option
v-for="(item, index) in NOTICE_METHOD"
:key="index"
:value="item.value"
>
{{ item.label }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="名称" v-bind="validateInfos.name">
<a-input
</j-select-option>
</j-select>
</j-form-item>
<j-form-item label="名称" v-bind="validateInfos.name">
<j-input
v-model:value="formData.name"
placeholder="请输入名称"
/>
</a-form-item>
<a-form-item
</j-form-item>
<j-form-item
label="类型"
v-bind="validateInfos.provider"
v-if="
@ -43,67 +43,67 @@
v-model="formData.provider"
@change="handleProviderChange"
/>
</a-form-item>
<a-form-item
</j-form-item>
<j-form-item
v-bind="validateInfos.configId"
v-if="formData.type !== 'email'"
>
<template #label>
<span>
绑定配置
<a-tooltip
<j-tooltip
title="使用固定的通知配置来发送此通知模版"
>
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<a-select
<j-select
v-model:value="formData.configId"
placeholder="请选择绑定配置"
@change="handleConfigChange"
>
<a-select-option
<j-select-option
v-for="(item, index) in configList"
:key="index"
:value="item.id"
>
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
</j-select-option>
</j-select>
</j-form-item>
<!-- 钉钉 -->
<template v-if="formData.type === 'dingTalk'">
<template
v-if="formData.provider === 'dingTalkMessage'"
>
<a-form-item
<j-form-item
v-bind="validateInfos['template.agentId']"
>
<template #label>
<span>
AgentID
<a-tooltip title="应用唯一标识">
<j-tooltip title="应用唯一标识">
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<a-input
<j-input
v-model:value="
formData.template.agentId
"
placeholder="请输入AppSecret"
/>
</a-form-item>
<a-row :gutter="10">
<a-col :span="12">
<a-form-item label="收信部门">
</j-form-item>
<j-row :gutter="10">
<j-col :span="12">
<j-form-item label="收信部门">
<ToOrg
v-model:toParty="
formData.template
@ -112,14 +112,14 @@
:type="formData.type"
:config-id="formData.configId"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item>
</j-form-item>
</j-col>
<j-col :span="12">
<j-form-item>
<template #label>
<span>
收信人
<a-tooltip
<j-tooltip
title="如果不填写该字段,将在使用此模板发送通知时进行指定"
>
<AIcon
@ -128,7 +128,7 @@
margin-left: 2px;
"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<ToUser
@ -138,29 +138,29 @@
:type="formData.type"
:config-id="formData.configId"
/>
</a-form-item>
</a-col>
</a-row>
</j-form-item>
</j-col>
</j-row>
</template>
<template
v-if="
formData.provider === 'dingTalkRobotWebHook'
"
>
<a-form-item
<j-form-item
label="消息类型"
v-bind="
validateInfos['template.messageType']
"
>
<a-select
<j-select
v-model:value="
formData.template.messageType
"
placeholder="请选择消息类型"
@change="handleMessageTypeChange"
>
<a-select-option
<j-select-option
v-for="(
item, index
) in ROBOT_MSG_TYPE"
@ -168,16 +168,16 @@
:value="item.value"
>
{{ item.label }}
</a-select-option>
</a-select>
</a-form-item>
</j-select-option>
</j-select>
</j-form-item>
<template
v-if="
formData.template.messageType ===
'markdown'
"
>
<a-form-item
<j-form-item
label="标题"
v-bind="
validateInfos[
@ -185,34 +185,34 @@
]
"
>
<a-input
<j-input
v-model:value="
formData.template.markdown.title
"
placeholder="请输入标题"
/>
</a-form-item>
</j-form-item>
</template>
<template
v-if="
formData.template.messageType === 'link'
"
>
<a-form-item
<j-form-item
label="标题"
v-bind="
validateInfos['template.link.title']
"
>
<a-input
<j-input
v-model:value="
formData.template.link.title
"
placeholder="请输入标题"
/>
</a-form-item>
<a-form-item label="图片链接">
<a-input
</j-form-item>
<j-form-item label="图片链接">
<j-input
v-model:value="
formData.template.link.picUrl
"
@ -239,55 +239,55 @@
/>
</a-upload>
</template>
</a-input>
</a-form-item>
<a-form-item label="内容链接">
<a-input
</j-input>
</j-form-item>
<j-form-item label="内容链接">
<j-input
v-model:value="
formData.template.link
.messageUrl
"
placeholder="请输入内容链接"
/>
</a-form-item>
</j-form-item>
</template>
</template>
</template>
<!-- 微信 -->
<template v-if="formData.type === 'weixin'">
<a-form-item
<j-form-item
v-bind="validateInfos['template.agentId']"
>
<template #label>
<span>
AgentId
<a-tooltip title="应用唯一标识">
<j-tooltip title="应用唯一标识">
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<a-input
<j-input
v-model:value="formData.template.agentId"
placeholder="请输入agentId"
/>
</a-form-item>
<a-row :gutter="10">
<a-col :span="12">
<a-form-item>
</j-form-item>
<j-row :gutter="10">
<j-col :span="12">
<j-form-item>
<template #label>
<span>
收信人
<a-tooltip
<j-tooltip
title="如果不填写该字段,将在使用此模版发送通知时进行指定。"
>
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<ToUser
@ -297,10 +297,10 @@
:type="formData.type"
:config-id="formData.configId"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="收信部门">
</j-form-item>
</j-col>
<j-col :span="12">
<j-form-item label="收信部门">
<ToOrg
v-model:toParty="
formData.template.toParty
@ -308,21 +308,21 @@
:type="formData.type"
:config-id="formData.configId"
/>
</a-form-item>
</a-col>
</a-row>
<a-form-item>
</j-form-item>
</j-col>
</j-row>
<j-form-item>
<template #label>
<span>
标签推送
<a-tooltip
<j-tooltip
title="本企业微信的标签ID列表,最多支持100个,如果不填写该字段,将在使用此模版发送通知时进行指定"
>
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<ToTag
@ -330,62 +330,62 @@
:type="formData.type"
:config-id="formData.configId"
/>
</a-form-item>
</j-form-item>
</template>
<!-- 邮件 -->
<template v-if="formData.type === 'email'">
<a-form-item
<j-form-item
v-bind="validateInfos['template.subject']"
>
<template #label>
<span>
标题
<a-tooltip title="邮件标题">
<j-tooltip title="邮件标题">
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<a-input
<j-input
v-model:value="formData.template.subject"
placeholder="请输入标题"
/>
</a-form-item>
<a-form-item>
</j-form-item>
<j-form-item>
<template #label>
<span>
收件人
<a-tooltip
<j-tooltip
title="多个收件人用换行分隔 最大支持1000个号码"
>
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<a-select
<j-select
mode="tags"
:options="[]"
v-model:value="formData.template.sendTo"
placeholder="请选择收件人"
/>
</a-form-item>
<a-form-item>
</j-form-item>
<j-form-item>
<template #label>
<span>
附件信息
<a-tooltip
<j-tooltip
title="附件只输入文件名称将在发送邮件时进行文件上传"
>
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<Attachments
@ -393,44 +393,44 @@
formData.template.attachments
"
/>
</a-form-item>
</j-form-item>
</template>
<!-- 语音 -->
<template v-if="formData.type === 'voice'">
<a-form-item
<j-form-item
v-bind="validateInfos['template.templateType']"
>
<template #label>
<span>
类型
<a-tooltip
<j-tooltip
title="语音验证码类型可配置变量,并且只支持数字和英文字母"
>
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<a-select
<j-select
v-model:value="
formData.template.templateType
"
placeholder="请选择类型"
>
<a-select-option
<j-select-option
v-for="(item, index) in VOICE_TYPE"
:key="index"
:value="item.value"
>
{{ item.label }}
</a-select-option>
</a-select>
</a-form-item>
<a-row :gutter="10">
<a-col :span="12">
<a-form-item
</j-select-option>
</j-select>
</j-form-item>
<j-row :gutter="10">
<j-col :span="12">
<j-form-item
v-bind="
validateInfos[
'template.templateCode'
@ -440,49 +440,49 @@
<template #label>
<span>
模板ID
<a-tooltip
<j-tooltip
title="阿里云内部分配的唯一ID标识"
>
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<a-input
<j-input
v-model:value="
formData.template.templateCode
"
placeholder="请输入模板ID"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item>
</j-form-item>
</j-col>
<j-col :span="12">
<j-form-item>
<template #label>
<span>
被叫号码
<a-tooltip
<j-tooltip
title="仅支持中国大陆号码"
>
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<a-input
<j-input
v-model:value="
formData.template.calledNumber
"
placeholder="请输入被叫号码"
/>
</a-form-item>
</a-col>
</a-row>
<a-form-item
</j-form-item>
</j-col>
</j-row>
<j-form-item
v-bind="
validateInfos['template.calledShowNumbers']
"
@ -490,92 +490,92 @@
<template #label>
<span>
被叫显号
<a-tooltip
<j-tooltip
title="必须是已购买的号码,用于呼叫号码显示"
>
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<a-input
<j-input
v-model:value="
formData.template.calledShowNumbers
"
placeholder="请输入被叫显号"
/>
</a-form-item>
<a-form-item>
</j-form-item>
<j-form-item>
<template #label>
<span>
播放次数
<a-tooltip title="语音文件的播放次数">
<j-tooltip title="语音文件的播放次数">
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<a-input
<j-input
v-model:value="formData.template.playTimes"
placeholder="请输入播放次数"
/>
</a-form-item>
<a-form-item
</j-form-item>
<j-form-item
v-if="formData.template.templateType === 'tts'"
>
<template #label>
<span>
模版内容
<a-tooltip
<j-tooltip
title="语音验证码内容输入框,用于渲染验语音证码变量。"
>
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<a-textarea
<j-textarea
v-model:value="formData.template.message"
show-count
:rows="5"
placeholder="内容中的变量将用于阿里云语音验证码"
/>
</a-form-item>
</j-form-item>
</template>
<!-- 短信 -->
<template v-if="formData.type === 'sms'">
<a-row :gutter="10">
<a-col :span="12">
<a-form-item
<j-row :gutter="10">
<j-col :span="12">
<j-form-item
v-bind="validateInfos['template.code']"
>
<template #label>
<span>
模板
<a-tooltip
<j-tooltip
title="阿里云短信平台自定义的模版名称"
>
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<a-select
<j-select
v-model:value="
formData.template.code
"
placeholder="请选择模板"
@change="handleTemplateChange"
>
<a-select-option
<j-select-option
v-for="(
item, index
) in templateList"
@ -583,77 +583,77 @@
:value="item.templateCode"
>
{{ item.templateName }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item>
</j-select-option>
</j-select>
</j-form-item>
</j-col>
<j-col :span="12">
<j-form-item>
<template #label>
<span>
收信人
<a-tooltip
<j-tooltip
title="仅支持中国大陆号码"
>
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<a-input
<j-input
v-model:value="
formData.template.phoneNumber
"
placeholder="请输入收信人"
/>
</a-form-item>
</a-col>
</a-row>
<a-form-item
</j-form-item>
</j-col>
</j-row>
<j-form-item
v-bind="validateInfos['template.signName']"
>
<template #label>
<span>
签名
<a-tooltip
<j-tooltip
title="用于短信内容签名信息显示"
>
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<a-select
<j-select
v-model:value="formData.template.signName"
placeholder="请选择签名"
>
<a-select-option
<j-select-option
v-for="(item, index) in signsList"
:key="index"
:value="item.signName"
>
{{ item.signName }}
</a-select-option>
</a-select>
</a-form-item>
</j-select-option>
</j-select>
</j-form-item>
</template>
<!-- webhook -->
<template v-if="formData.type === 'webhook'">
<a-form-item label="请求体">
<a-radio-group
<j-form-item label="请求体">
<j-radio-group
v-model:value="
formData.template.contextAsBody
"
style="margin-bottom: 20px"
>
<a-radio :value="true">默认</a-radio>
<a-radio :value="false">自定义</a-radio>
</a-radio-group>
<a-textarea
<j-radio :value="true">默认</j-radio>
<j-radio :value="false">自定义</j-radio>
</j-radio-group>
<j-textarea
v-model:value="formData.template.body"
placeholder="请求体中的数据来自于发送通知时指定的所有变量"
v-if="formData.template.contextAsBody"
@ -668,7 +668,7 @@
"
/>
</div>
</a-form-item>
</j-form-item>
</template>
<template
v-if="
@ -676,23 +676,23 @@
formData.type !== 'voice'
"
>
<a-form-item
<j-form-item
v-bind="validateInfos['template.message']"
>
<template #label>
<span>
模版内容
<a-tooltip
<j-tooltip
title="发送的内容,支持录入变量"
>
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</a-tooltip>
</j-tooltip>
</span>
</template>
<a-textarea
<j-textarea
v-model:value="formData.template.message"
:maxlength="200"
:rows="5"
@ -700,9 +700,9 @@
placeholder="变量格式:${name};
示例:尊敬的${name},${time}有设备触发告警,请注意处理"
/>
</a-form-item>
</j-form-item>
</template>
<a-form-item
<j-form-item
label="变量列表"
v-if="
formData.variableDefinitions &&
@ -714,32 +714,32 @@
formData.variableDefinitions
"
/>
</a-form-item>
<a-form-item label="说明">
<a-textarea
</j-form-item>
<j-form-item label="说明">
<j-textarea
v-model:value="formData.description"
show-count
:maxlength="200"
:rows="5"
placeholder="请输入说明"
/>
</a-form-item>
<a-form-item>
<a-button
</j-form-item>
<j-form-item>
<j-button
type="primary"
@click="handleSubmit"
:loading="btnLoading"
>
保存
</a-button>
</a-form-item>
</a-form>
</a-col>
<a-col :span="12" :push="2">
</j-button>
</j-form-item>
</j-form>
</j-col>
<j-col :span="12" :push="2">
<Doc :docData="formData" />
</a-col>
</a-row>
</a-card>
</j-col>
</j-row>
</j-card>
</page-container>
</template>

View File

@ -1,5 +1,5 @@
<template>
<a-modal v-model:visible="_vis" title="通知记录" :footer="null" width="70%">
<j-modal v-model:visible="_vis" title="通知记录" :footer="null" width="70%">
<j-advanced-search
type="simple"
:columns="columns"
@ -21,18 +21,18 @@
{{ moment(slotProps.notifyTime).format('YYYY-MM-DD HH:mm:ss') }}
</template>
<template #state="slotProps">
<a-space>
<a-badge
<j-space>
<j-badge
:status="slotProps.state.value"
:text="slotProps.state.text"
></a-badge>
></j-badge>
<AIcon
v-if="slotProps.state.value === 'error'"
type="ExclamationCircleOutlined"
style="color: #1d39c4; cursor: pointer"
@click="handleError(slotProps.errorStack)"
/>
</a-space>
</j-space>
</template>
<template #action="slotProps">
<AIcon
@ -42,7 +42,7 @@
/>
</template>
</JProTable>
</a-modal>
</j-modal>
</template>
<script setup lang="ts">

View File

@ -16,7 +16,7 @@
:gridColumn="3"
>
<template #headerTitle>
<a-space>
<j-space>
<PermissionButton
type="primary"
@click="handleAdd"
@ -36,7 +36,7 @@
导入
</PermissionButton>
</a-upload>
<a-popconfirm
<j-popconfirm
title="确认导出?"
ok-text="确定"
cancel-text="取消"
@ -47,8 +47,8 @@
>
导出
</PermissionButton>
</a-popconfirm>
</a-space>
</j-popconfirm>
</j-space>
</template>
<template #card="slotProps">
<CardBox
@ -71,22 +71,22 @@
<h3 class="card-item-content-title">
{{ slotProps.name }}
</h3>
<a-row>
<a-col :span="12">
<j-row>
<j-col :span="12">
<div class="card-item-content-text">
通知方式
</div>
<div>
{{ getMethodTxt(slotProps.type) }}
</div>
</a-col>
<a-col :span="12">
</j-col>
<j-col :span="12">
<div class="card-item-content-text">说明</div>
<Ellipsis>
{{ slotProps.description }}
</Ellipsis>
</a-col>
</a-row>
</j-col>
</j-row>
</template>
<template #actions="item">
<PermissionButton
@ -119,7 +119,7 @@
</span>
</template>
<template #action="slotProps">
<a-space :size="16">
<j-space :size="16">
<template
v-for="i in getActions(slotProps, 'table')"
:key="i.key"
@ -138,7 +138,7 @@
<template #icon><AIcon :type="i.icon" /></template>
</PermissionButton>
</template>
</a-space>
</j-space>
</template>
</JProTable>