| | |
| | | <authheader :items="menuTips"></authheader> |
| | | <a-row :gutter="20"> |
| | | <a-col :span="8"> |
| | | <a-card :title="$t('menu.resource.title')" :bordered="false" |
| | | :style="{ width: '100%',height: '900px', 'overflow-y': 'auto' }"> |
| | | <a-card |
| | | :title="$t('menu.resource.title')" |
| | | :bordered="false" |
| | | :style="{ 'width': '100%', 'height': '700px', 'overflow-y': 'auto' }" |
| | | > |
| | | <a-tree |
| | | class="tree-demo" |
| | | draggable |
| | |
| | | :data="treeData" |
| | | :show-line="showLine" |
| | | :fieldNames="{ |
| | | key:'menuId', |
| | | title:'menuName', |
| | | children:'children', |
| | | key: 'menuId', |
| | | title: 'menuName', |
| | | children: 'children', |
| | | }" |
| | | @drop="onDrop" |
| | | @select="showDetail" |
| | | > |
| | | <template #extra="nodeData"> |
| | | <IconPlus |
| | | style="position: absolute; right: 60px; font-size: 12px; top: 10px; color: #3370ff;" |
| | | style=" |
| | | position: absolute; |
| | | right: 60px; |
| | | font-size: 12px; |
| | | top: 10px; |
| | | color: #3370ff; |
| | | " |
| | | @click="() => onIconClick(nodeData)" |
| | | /> |
| | | <IconDelete style="position: absolute; right: 40px; font-size: 12px; top: 10px; color: #3370ff;" |
| | | @click="() => onIconClickDelete(nodeData)" /> |
| | | <IconDelete |
| | | style=" |
| | | position: absolute; |
| | | right: 40px; |
| | | font-size: 12px; |
| | | top: 10px; |
| | | color: #3370ff; |
| | | " |
| | | @click="() => onIconClickDelete(nodeData)" |
| | | /> |
| | | </template> |
| | | </a-tree> |
| | | |
| | | </a-card> |
| | | </a-col> |
| | | <a-col :span="16"> |
| | | <a-card :title="$t('menu.resource.detail')" :bordered="false" :style="{ width: '100%' }"> |
| | | <a-card |
| | | :title="$t('menu.resource.detail')" |
| | | :bordered="false" |
| | | :style="{ width: '100%' }" |
| | | > |
| | | <a-form :model="resourceform" layout="horizontal"> |
| | | <a-form-item field="parentName" label="上级资源" disabled> |
| | | <a-input v-model="resourceform.parentName" /> |
| | | </a-form-item> |
| | | <a-form-item field="status" label="资源状态"> |
| | | <a-switch checked-value="0" unchecked-value="1" v-model="resourceform.status"></a-switch> |
| | | <a-switch |
| | | checked-value="0" |
| | | unchecked-value="1" |
| | | v-model="resourceform.status" |
| | | ></a-switch> |
| | | </a-form-item> |
| | | <a-form-item field="menuName" label="资源名称"> |
| | | <a-input v-model="resourceform.menuName" /> |
| | | </a-form-item> |
| | | <a-form-item field="menuType" label="资源类型"> |
| | | <a-select v-model="resourceform.menuType" :options="options" :field-names="fieldNames" |
| | | :style="{width:'320px'}" |
| | | placeholder="请选择" /> |
| | | |
| | | <a-select |
| | | v-model="resourceform.menuType" |
| | | :options="options" |
| | | :field-names="fieldNames" |
| | | :style="{ width: '320px' }" |
| | | placeholder="请选择" |
| | | /> |
| | | </a-form-item> |
| | | <a-form-item field="perms" label="资源控制权限字符"> |
| | | <a-input v-model="resourceform.perms" /> |
| | | </a-form-item> |
| | | <a-form-item field="component" label="资源地址" style="align: start"> |
| | | <a-form-item |
| | | field="component" |
| | | label="资源地址" |
| | | style="align: start" |
| | | > |
| | | <a-input v-model="resourceform.component" /> |
| | | </a-form-item> |
| | | <a-form-item> |
| | |
| | | </a-card> |
| | | </a-col> |
| | | </a-row> |
| | | <a-modal width="50%" v-model:visible="visible" title="新增" @cancel="handleCancel" @ok="addresource"> |
| | | <a-modal |
| | | width="50%" |
| | | v-model:visible="visible" |
| | | title="新增" |
| | | @cancel="handleCancel" |
| | | @ok="addresource" |
| | | > |
| | | <a-form :model="resourceform" layout="horizontal"> |
| | | <a-form-item field="parentName" label="上级资源" disabled> |
| | | <a-input v-model="resourceform.parentName" /> |
| | | </a-form-item> |
| | | <a-form-item field="status" label="资源状态"> |
| | | <a-switch checked-value="0" unchecked-value="1" v-model="resourceform.status"></a-switch> |
| | | <a-switch |
| | | checked-value="0" |
| | | unchecked-value="1" |
| | | v-model="resourceform.status" |
| | | ></a-switch> |
| | | </a-form-item> |
| | | <a-form-item field="menuName" label="资源名称"> |
| | | <a-input v-model="resourceform.menuName" /> |
| | | </a-form-item> |
| | | <a-form-item field="menuType" label="资源类型"> |
| | | <a-select v-model="resourceform.menuType" :options="options" :field-names="fieldNames" |
| | | :style="{width:'320px'}" |
| | | placeholder="请选择" /> |
| | | <a-select |
| | | v-model="resourceform.menuType" |
| | | :options="options" |
| | | :field-names="fieldNames" |
| | | :style="{ width: '320px' }" |
| | | placeholder="请选择" |
| | | /> |
| | | </a-form-item> |
| | | <a-form-item field="perms" label="资源控制权限字符"> |
| | | <a-input v-model="resourceform.perms" /> |
| | |
| | | }); |
| | | |
| | | const onIconClick = (nodeData) => { |
| | | resourceform.value.parentId = nodeData.menuId; |
| | | if (nodeData) { |
| | | resourceform.value.parentId = nodeData.menuId; |
| | | resourceform.value.parentName = nodeData.menuName; |
| | | } |
| | | resourceform.value.component = ""; |
| | | resourceform.value.createTime = ""; |
| | | resourceform.value.description = ""; |
| | | resourceform.value.icon = ""; |
| | | resourceform.value.menuId = ""; |
| | | resourceform.value.menuName = ""; |
| | | resourceform.value.menuType = ""; |
| | | resourceform.value.orderNum = "0"; |
| | | resourceform.value.path = ""; |
| | | resourceform.value.perms = ""; |
| | | resourceform.value.status = ""; |
| | | resourceform.value.syesourcetype = ""; |
| | | |
| | | visible.value = true; |
| | | }; |
| | | |
| | |
| | | const onDrop = ({ dragNode, dropNode, dropPosition }) => { |
| | | const data = treeData.value; |
| | | ResourceUpdate({ |
| | | orderNum: "0", parentId: dropNode.menuId, menuId: dragNode.menuId |
| | | orderNum: "0", |
| | | parentId: dropNode.menuId, |
| | | menuId: dragNode.menuId |
| | | }); |
| | | const loop = (data, key, callback) => { |
| | | data.some((item, index, arr) => { |
| | |
| | | |
| | | ResourceData(""); |
| | | </script> |
| | | |
| | | |
| | | <style scoped> |
| | | .tree-demo :deep(.tree-node-dropover) > :deep(.arco-tree-node-title), |