|  |  |  | 
|---|
|  |  |  | <a-card | 
|---|
|  |  |  | :title="$t('menu.resource.title')" | 
|---|
|  |  |  | :bordered="false" | 
|---|
|  |  |  | :style="{ 'width': '100%', 'height': '900px', 'overflow-y': 'auto' }" | 
|---|
|  |  |  | style=" 'width': '100%';   height: calc(100vh - 250px); 'overflow-y': 'auto' " | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <a-tree | 
|---|
|  |  |  | class="tree-demo" | 
|---|
|  |  |  | 
|---|
|  |  |  | <a-form-item field="menuName" label="资源名称"> | 
|---|
|  |  |  | <a-input v-model="resourceform.menuName" /> | 
|---|
|  |  |  | </a-form-item> | 
|---|
|  |  |  | <a-form-item field="menuName" label="资源图标"> | 
|---|
|  |  |  | <Upload | 
|---|
|  |  |  | :action="uploadAction" | 
|---|
|  |  |  | :limit="1" | 
|---|
|  |  |  | :url="resourceform.icon" | 
|---|
|  |  |  | @update:fileList="updateFileList" | 
|---|
|  |  |  | @success="handleSuccess" | 
|---|
|  |  |  | ></Upload> | 
|---|
|  |  |  | </a-form-item> | 
|---|
|  |  |  | <a-form-item field="menuType" label="资源类型"> | 
|---|
|  |  |  | <a-select | 
|---|
|  |  |  | v-model="resourceform.menuType" | 
|---|
|  |  |  | 
|---|
|  |  |  | :field-names="fieldNames" | 
|---|
|  |  |  | :style="{ width: '320px' }" | 
|---|
|  |  |  | placeholder="请选择" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </a-form-item> | 
|---|
|  |  |  | <a-form-item field="description" label="提示词"> | 
|---|
|  |  |  | <a-input | 
|---|
|  |  |  | v-model="resourceform.description" | 
|---|
|  |  |  | placeholder="请输入提示词" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </a-form-item> | 
|---|
|  |  |  | <a-form-item field="perms" label="资源控制权限字符"> | 
|---|
|  |  |  | 
|---|
|  |  |  | @cancel="handleCancel" | 
|---|
|  |  |  | @ok="addresource" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <a-form :model="resourceform" layout="horizontal"> | 
|---|
|  |  |  | <a-form :rules="rules" :model="resourceform" layout="horizontal"> | 
|---|
|  |  |  | <a-form-item field="parentName" label="上级资源" disabled> | 
|---|
|  |  |  | <a-input v-model="resourceform.parentName" /> | 
|---|
|  |  |  | </a-form-item> | 
|---|
|  |  |  | 
|---|
|  |  |  | <a-form-item field="menuName" label="资源名称"> | 
|---|
|  |  |  | <a-input v-model="resourceform.menuName" /> | 
|---|
|  |  |  | </a-form-item> | 
|---|
|  |  |  | <a-form-item field="icon" label="资源图标"> | 
|---|
|  |  |  | <Upload | 
|---|
|  |  |  | :action="uploadAction" | 
|---|
|  |  |  | :limit="1" | 
|---|
|  |  |  | :url="resourceform.icon" | 
|---|
|  |  |  | @update:fileList="updateFileList" | 
|---|
|  |  |  | @success="handleSuccess" | 
|---|
|  |  |  | ></Upload> | 
|---|
|  |  |  | </a-form-item> | 
|---|
|  |  |  | <a-form-item field="menuType" label="资源类型"> | 
|---|
|  |  |  | <a-select | 
|---|
|  |  |  | v-model="resourceform.menuType" | 
|---|
|  |  |  | 
|---|
|  |  |  | :field-names="fieldNames" | 
|---|
|  |  |  | :style="{ width: '320px' }" | 
|---|
|  |  |  | placeholder="请选择" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </a-form-item> | 
|---|
|  |  |  | <a-form-item field="description" label="提示词"> | 
|---|
|  |  |  | <a-input | 
|---|
|  |  |  | v-model="resourceform.description" | 
|---|
|  |  |  | placeholder="请输入提示词" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </a-form-item> | 
|---|
|  |  |  | <a-form-item field="perms" label="资源控制权限字符"> | 
|---|
|  |  |  | 
|---|
|  |  |  | } from '@/api/authority'; | 
|---|
|  |  |  | import Authheader from '@/views/authority/components/authheader.vue'; | 
|---|
|  |  |  | import { Modal } from '@arco-design/web-vue'; | 
|---|
|  |  |  | import { userModelState } from '@/store'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const modelStore = userModelState(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | let visible = ref(false); | 
|---|
|  |  |  | let treeData = ref([]); | 
|---|
|  |  |  | 
|---|
|  |  |  | target: '', | 
|---|
|  |  |  | updateTime: '', | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | const rules = { | 
|---|
|  |  |  | // parentName: [ | 
|---|
|  |  |  | //   { | 
|---|
|  |  |  | //     required: true, | 
|---|
|  |  |  | //     message: '请输入上级资源', | 
|---|
|  |  |  | //   }, | 
|---|
|  |  |  | // ], | 
|---|
|  |  |  | // menuName: [ | 
|---|
|  |  |  | //   { | 
|---|
|  |  |  | //     required: true, | 
|---|
|  |  |  | //     message: '请输入资源名称', | 
|---|
|  |  |  | //   }, | 
|---|
|  |  |  | // ], | 
|---|
|  |  |  | // menuType: [ | 
|---|
|  |  |  | //   { | 
|---|
|  |  |  | //     required: true, | 
|---|
|  |  |  | //     message: '请选择资源类型', | 
|---|
|  |  |  | //   }, | 
|---|
|  |  |  | // ], | 
|---|
|  |  |  | // description: [ | 
|---|
|  |  |  | //   { | 
|---|
|  |  |  | //     required: true, | 
|---|
|  |  |  | //     message: '请输入提示词', | 
|---|
|  |  |  | //   }, | 
|---|
|  |  |  | // ], | 
|---|
|  |  |  | // perms: [ | 
|---|
|  |  |  | //   { | 
|---|
|  |  |  | //     required: true, | 
|---|
|  |  |  | //     message: '请输入资源控制权限字符', | 
|---|
|  |  |  | //   }, | 
|---|
|  |  |  | // ], | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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.menuName = ''; | 
|---|
|  |  |  | resourceform.value.menuType = ''; | 
|---|
|  |  |  | resourceform.value.orderNum = '0'; | 
|---|
|  |  |  | resourceform.value.parentName = nodeData.menuName; | 
|---|
|  |  |  | resourceform.value.path = ''; | 
|---|
|  |  |  | resourceform.value.perms = ''; | 
|---|
|  |  |  | resourceform.value.status = ''; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | visible.value = true; | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | const formRef = ref(); | 
|---|
|  |  |  | //图片上传 | 
|---|
|  |  |  | const uploadAction = '/api/v1/llm/upload'; // 替换为你的上传API | 
|---|
|  |  |  | const fileList = ref([]); | 
|---|
|  |  |  | const imageUrls = ref([]); | 
|---|
|  |  |  | const uploadUrl = ref([]); | 
|---|
|  |  |  | const httpUrl = modelStore.hrefUrl; | 
|---|
|  |  |  | const updateFileList = (newFileList) => { | 
|---|
|  |  |  | fileList.value = newFileList; | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const addresource = async () => { | 
|---|
|  |  |  | const handleSuccess = (urls) => { | 
|---|
|  |  |  | uploadUrl.value = urls; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const urlsArr = urls.map((url) => { | 
|---|
|  |  |  | return httpUrl + url; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | imageUrls.value = urlsArr; // 拿到上传的图片地址 | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const addresource = async (done) => { | 
|---|
|  |  |  | // formRef.value.validate().then(async (res) => { | 
|---|
|  |  |  | //   if (!res) { | 
|---|
|  |  |  | //   } | 
|---|
|  |  |  | //   done(false); | 
|---|
|  |  |  | // }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | resourceform.value.icon = uploadUrl.value[0] || ''; | 
|---|
|  |  |  | await ResourceAdd({ | 
|---|
|  |  |  | ...resourceform.value, | 
|---|
|  |  |  | } as unknown as Resource).then((res) => { | 
|---|
|  |  |  | 
|---|
|  |  |  | const showDetail = (id) => { | 
|---|
|  |  |  | ResourceById(id).then((res) => { | 
|---|
|  |  |  | resourceform.value = { ...res.data }; | 
|---|
|  |  |  | resourceform.value.icon = res.data.icon; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | imageUrls.value.push(httpUrl + res.data.icon); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | const editresource = () => { | 
|---|
|  |  |  | resourceform.value.icon = uploadUrl.value[0] || ''; | 
|---|
|  |  |  | ResourceUpdate({ | 
|---|
|  |  |  | ...resourceform.value, | 
|---|
|  |  |  | } as unknown as Resource).then((res) => { | 
|---|