diff --git a/src/api/article/index.js b/src/api/article/index.js new file mode 100644 index 0000000..54f3bb0 --- /dev/null +++ b/src/api/article/index.js @@ -0,0 +1,14 @@ +import service from '@/utils/request' + +// @tag Order +// @summary 获取订单列表 +// @param {object} params +// @return {object} data +// @router get /order/list +export const list = (params) => { + return service({ + url: '/article/list', + method: 'get', + params + }) +} diff --git a/src/api/banner/index.js b/src/api/banner/index.js new file mode 100644 index 0000000..1d008f3 --- /dev/null +++ b/src/api/banner/index.js @@ -0,0 +1,43 @@ +import service from '@/utils/request' + + +export const list = (params) => { + return service({ + url: '/banner/list', + method: 'get', + params + }) +} + +export const info = (params) => { + return service({ + url: '/banner', + method: 'get', + params + }) +} + + +export const creat = (data) => { + return service({ + url: '/banner', + method: 'post', + data + }) +} + +export const deleteBanner = (data) => { + return service({ + url: '/banner', + method: 'delete', + data + }) +} + +export const put = (data) => { + return service({ + url: '/banner', + method: 'put', + data + }) +} diff --git a/src/api/goods/index.js b/src/api/goods/index.js index eec81e2..3291dba 100644 --- a/src/api/goods/index.js +++ b/src/api/goods/index.js @@ -40,3 +40,11 @@ export const detail = (id) => { method: 'get', }) } + +export const getTechers = (params) => { + return service({ + url: '/app_user/teachers', + method: 'get', + params + }) +} diff --git a/src/components/richtext/rich-edit.vue b/src/components/richtext/rich-edit.vue index 030f35b..a2038c5 100644 --- a/src/components/richtext/rich-edit.vue +++ b/src/components/richtext/rich-edit.vue @@ -50,7 +50,7 @@ placeholder: '请输入内容...', MENU_CONF: {} } - editorConfig.MENU_CONF['uploadImage'] = { + editorConfig.MENU_CONF['uploadImage','uploadVideo'] = { fieldName: 'file', server: basePath + '/fileUploadAndDownload/upload?noSave=1', customInsert(res, insertFn) { diff --git a/src/components/userChoose/index.vue b/src/components/userChoose/index.vue index 9699ec7..274ffb7 100644 --- a/src/components/userChoose/index.vue +++ b/src/components/userChoose/index.vue @@ -49,8 +49,8 @@ > - - + + { tabList.value = res.data.list total.value = res.data.total @@ -171,44 +171,41 @@ // getStaffList() // } function nodeClick(e) { - selectDept.value = e + if(!props.multiple) { + selectDept.value = e + } } function handleSelectionChange(selection) { - console.log(selection) - // 更新选中ID集合 - selection.forEach((row) => selectedIds.value.add(row.ID)) + if (props.multiple) { + if (!depClick.value) { + // This is a user interaction on the current page. + const selectedOnPageIds = new Set(selection.map(row => row.ID)); - // 删除当前页取消选中的ID,前提是非点击部门或分页节点触发 - if (!depClick.value) { - // 找出当前页需要删除的ID - unChoosed.value = [] - if (selection.length > 0) { - selection = selection.map((item) => item.ID) - tabList.value.forEach((item) => { - if (!selection.includes(item.ID)) { - unChoosed.value.push(item.ID) - } - }) - } else { - unChoosed.value = JSON.parse(JSON.stringify(tabList.value)).map((item) => item.ID) + // Iterate over all items on the current page to see what was selected or unselected. + tabList.value.forEach(rowOnPage => { + if (selectedOnPageIds.has(rowOnPage.ID)) { + selectedIds.value.add(rowOnPage.ID); + } else { + selectedIds.value.delete(rowOnPage.ID); + } + }); } - selectedIds.value.forEach((id) => { - if (unChoosed.value.includes(id)) { - selectedIds.value.delete(id) - } - }) + choosedTableRows.value = Array.from(selectedIds.value) + .map((id) => [...tabList.value, ...choosedTableRows.value].find((r) => r.ID === id)) + .filter(Boolean) } - // 更新已选数据(使用过滤确保有效性) - choosedTableRows.value = Array.from(selectedIds.value) - .map((id) => [...tabList.value, ...choosedTableRows.value].find((r) => r.ID === id)) - .filter(Boolean) } // function filterNode(value, data) { // if (!value) return true // return data.label.includes(value) // } function requireDiolag() { - emit('getRecipientInfo', props.multiple ? choosedTableRows.value : selectDept.value) + const dataToEmit = props.multiple ? choosedTableRows.value : selectDept.value; + if ((props.multiple && dataToEmit.length === 0) || (!props.multiple && !dataToEmit)) { + // Optional: show a message to the user + return; + } + emit('getRecipientInfo', dataToEmit) dialoagVisible.value = false } defineExpose({ diff --git a/src/pathInfo.json b/src/pathInfo.json index af81d89..79a7aea 100644 --- a/src/pathInfo.json +++ b/src/pathInfo.json @@ -1,5 +1,6 @@ { "/src/view/about/index.vue": "About", + "/src/view/banner/index.vue": "Index", "/src/view/bot/bot/bot.vue": "Bot", "/src/view/bot/bot/botForm.vue": "BotForm", "/src/view/category/category/category.vue": "Category", @@ -86,5 +87,7 @@ "/src/plugin/customerservice/view/reply/index.vue": "ServiceIndex", "/src/plugin/customerservice/view/script/index.vue": "ServiceIndex", "/src/plugin/customerservice/view/service/index.vue": "ServiceIndex", - "/src/plugin/email/view/index.vue": "Email" + "/src/plugin/email/view/index.vue": "Email", + "/src/plugin/picturelibrary/view/components/imageLibrary.vue": "ImageLibrary", + "/src/plugin/picturelibrary/view/index.vue": "PictureLibrary" } \ No newline at end of file diff --git a/src/view/banner/index.vue b/src/view/banner/index.vue new file mode 100644 index 0000000..aeaea57 --- /dev/null +++ b/src/view/banner/index.vue @@ -0,0 +1,265 @@ + + + + + diff --git a/src/view/category/category/category.vue b/src/view/category/category/category.vue index 9209f81..c1fad86 100644 --- a/src/view/category/category/category.vue +++ b/src/view/category/category/category.vue @@ -1,4 +1,3 @@ -