From 787b7b61c9a46adad61f676f7be5601d58eb7185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BF=AB=E7=82=B9=E6=B4=97=E6=BE=A1=E7=9D=A1=E8=A7=89?= =?UTF-8?q?=E5=90=A7?= <16840517@qq.com> Date: Mon, 12 Aug 2024 12:45:45 +0000 Subject: [PATCH 1/6] =?UTF-8?q?dictionary=E7=9A=84key=E6=94=B9=E6=88=90?= =?UTF-8?q?=E5=8F=AF=E9=80=89=E5=8F=82=E6=95=B0=E9=81=BF=E5=85=8D=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 快点洗澡睡觉吧 <16840517@qq.com> --- web/src/utils/dictionary.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/utils/dictionary.ts b/web/src/utils/dictionary.ts index bdf982697..47383b3fe 100644 --- a/web/src/utils/dictionary.ts +++ b/web/src/utils/dictionary.ts @@ -4,7 +4,7 @@ import { DictionaryStore } from '/@/stores/dictionary'; /** * @method 获取指定name字典 */ -export const dictionary = (name: string,key:string|number|undefined) => { +export const dictionary = (name: string,key?:string|number|undefined) => { const dict = DictionaryStore() const dictionary = toRaw(dict.data) if(key!=undefined){ -- Gitee From 1e2a9a652e5e49a5c96f5141b7e6de7cf948f4f3 Mon Sep 17 00:00:00 2001 From: vFeng <1914007838@qq.com> Date: Mon, 27 Jan 2025 05:25:49 +0000 Subject: [PATCH 2/6] =?UTF-8?q?[fix]=E4=BF=AE=E5=A4=8D=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=99=92=E9=80=89=E5=8F=96=E5=80=BC=E9=94=99?= =?UTF-8?q?=E8=AF=AFbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: vFeng <1914007838@qq.com> --- backend/dvadmin/utils/filters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/dvadmin/utils/filters.py b/backend/dvadmin/utils/filters.py index da808ace3..4db96db33 100644 --- a/backend/dvadmin/utils/filters.py +++ b/backend/dvadmin/utils/filters.py @@ -33,7 +33,7 @@ class CoreModelFilterBankend(BaseFilterBackend): create_datetime_after = request.query_params.get('create_datetime_after', None) create_datetime_before = request.query_params.get('create_datetime_before', None) update_datetime_after = request.query_params.get('update_datetime_after', None) - update_datetime_before = request.query_params.get('update_datetime_after', None) + update_datetime_before = request.query_params.get('update_datetime_before', None) if any([create_datetime_after, create_datetime_before, update_datetime_after, update_datetime_before]): create_filter = Q() if create_datetime_after and create_datetime_before: -- Gitee From 83d6565cade3482dcba78e9e7b5722e31c929d24 Mon Sep 17 00:00:00 2001 From: vFeng <1914007838@qq.com> Date: Mon, 27 Jan 2025 05:33:54 +0000 Subject: [PATCH 3/6] =?UTF-8?q?[fix]=E4=BC=98=E5=8C=96commonCrudConfig?= =?UTF-8?q?=E5=86=99=E6=B3=95=EF=BC=8C=E5=85=BC=E5=AE=B9ts=E8=AF=AD?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E4=BF=AE=E5=A4=8D=E4=BD=BF=E7=94=A8commonCru?= =?UTF-8?q?dConfig=20IDE=E6=8F=90=E7=A4=BA=E9=A3=98=E7=BA=A2=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98&=E5=A2=9E=E5=8A=A0width=E5=8F=AF=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: vFeng <1914007838@qq.com> --- web/src/utils/commonCrud.ts | 541 +++++++++++++++++++----------------- 1 file changed, 284 insertions(+), 257 deletions(-) diff --git a/web/src/utils/commonCrud.ts b/web/src/utils/commonCrud.ts index 426f6af2d..9a3817bca 100644 --- a/web/src/utils/commonCrud.ts +++ b/web/src/utils/commonCrud.ts @@ -1,259 +1,286 @@ -import {dict} from "@fast-crud/fast-crud"; -import {shallowRef} from 'vue' -import deptFormat from "/@/components/dept-format/index.vue"; +import {dict} from '@fast-crud/fast-crud'; +import {shallowRef} from 'vue'; +import deptFormat from '/@/components/dept-format/index.vue'; -export const commonCrudConfig = (options = { - create_datetime: { - form: false, - table: false, - search: false - }, - update_datetime: { - form: false, - table: false, - search: false - }, - creator_name: { - form: false, - table: false, - search: false - }, - modifier_name: { - form: false, - table: false, - search: false - }, - dept_belong_id: { - form: false, - table: false, - search: false - }, - description: { - form: false, - table: false, - search: false - }, -}) => { - return { - dept_belong_id: { - title: '所属部门', - type: 'dict-tree', - search: { - show: options.dept_belong_id?.search || false - }, - dict: dict({ - url: '/api/system/dept/all_dept/', - isTree: true, - value: 'id', - label: 'name', - children: 'children', - }), - column: { - align: 'center', - width: 300, - show: options.dept_belong_id?.table || false, - component: { - name: shallowRef(deptFormat), - vModel: "modelValue", - } - }, - form: { - show: options.dept_belong_id?.form || false, - component: { - multiple: false, - clearable: true, - props: { - checkStrictly: true, - props: { - // 为什么这里要写两层props - // 因为props属性名与fs的动态渲染的props命名冲突,所以要多写一层 - label: "name", - value: "id", - } - } - }, - helper: "默认不填则为当前创建用户的部门ID" - } - }, - description: { - title: '备注', - search: { - show: options.description?.search || false - }, - type: 'textarea', - column: { - width: 100, - show: options.description?.table || false, - }, - form: { - show: options.description?.form || false, - component: { - placeholder: '请输入内容', - showWordLimit: true, - maxlength: '200', - } - }, - viewForm: { - show: true - } - }, - modifier_name: { - title: '修改人', - search: { - show: options.modifier_name?.search || false - }, - column: { - width: 100, - show: options.modifier_name?.table || false, - }, - form: { - show: false, - }, - viewForm: { - show: true - } - }, - creator_name: { - title: '创建人', - search: { - show: options.creator_name?.search || false - }, - column: { - width: 100, - show: options.creator_name?.table || false, - }, - form: { - show: false, - }, - viewForm: { - show: true - } - }, - update_datetime: { - title: '更新时间', - type: 'datetime', - search: { - show: options.update_datetime?.search || false, - col: {span: 8}, - component: { - type: 'datetimerange', - props: { - 'start-placeholder': '开始时间', - 'end-placeholder': '结束时间', - 'value-format': 'YYYY-MM-DD HH:mm:ss', - 'picker-options': { - shortcuts: [{ - text: '最近一周', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); - picker.$emit('pick', [start, end]); - } - }, { - text: '最近一个月', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); - picker.$emit('pick', [start, end]); - } - }, { - text: '最近三个月', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); - picker.$emit('pick', [start, end]); - } - }] - } - } - }, - valueResolve(context: any) { - const {key, value} = context - //value解析,就是把组件的值转化为后台所需要的值 - //在form表单点击保存按钮后,提交到后台之前执行转化 - if (value) { - context.form.update_datetime_after = value[0] - context.form.update_datetime_before = value[1] - } - // ↑↑↑↑↑ 注意这里是form,不是row - } - }, - column: { - width: 160, - show: options.update_datetime?.table || false, - }, - form: { - show: false, - }, - viewForm: { - show: true - } - }, - create_datetime: { - title: '创建时间', - type: 'datetime', - search: { - show: options.create_datetime?.search || false, - col: {span: 8}, - component: { - type: 'datetimerange', - props: { - 'start-placeholder': '开始时间', - 'end-placeholder': '结束时间', - 'value-format': 'YYYY-MM-DD HH:mm:ss', - 'picker-options': { - shortcuts: [{ - text: '最近一周', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); - picker.$emit('pick', [start, end]); - } - }, { - text: '最近一个月', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); - picker.$emit('pick', [start, end]); - } - }, { - text: '最近三个月', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); - picker.$emit('pick', [start, end]); - } - }] - } - } - }, - valueResolve(context: any) { - const {key, value} = context - //value解析,就是把组件的值转化为后台所需要的值 - //在form表单点击保存按钮后,提交到后台之前执行转化 - if (value) { - context.form.create_datetime_after = value[0] - context.form.create_datetime_before = value[1] - } - // ↑↑↑↑↑ 注意这里是form,不是row - } - }, - column: { - width: 160, - show: options.create_datetime?.table || false, - }, - form: { - show: false - }, - viewForm: { - show: true - } - } - } +/** 1. 每个字段可选属性 */ +export interface CrudFieldOption { + form?: boolean; + table?: boolean; + search?: boolean; + width?: number; } + +/** 2. 总配置接口 */ +export interface CrudOptions { + create_datetime?: CrudFieldOption; + update_datetime?: CrudFieldOption; + creator_name?: CrudFieldOption; + modifier_name?: CrudFieldOption; + dept_belong_id?: CrudFieldOption; + description?: CrudFieldOption; +} + +/** 3. 默认完整配置 */ +const defaultOptions: Required = { + create_datetime: { form: false, table: false, search: false, width: 160 }, + update_datetime: { form: false, table: false, search: false, width: 160 }, + creator_name: { form: false, table: false, search: false, width: 100 }, + modifier_name: { form: false, table: false, search: false, width: 100 }, + dept_belong_id: { form: false, table: false, search: false, width: 300 }, + description: { form: false, table: false, search: false, width: 100 }, +}; + +/** 4. mergeOptions 函数 */ +function mergeOptions(baseOptions: Required, userOptions: CrudOptions = {}): Required { + const result = { ...baseOptions }; + for (const key in userOptions) { + if (Object.prototype.hasOwnProperty.call(userOptions, key)) { + const baseField = result[key as keyof CrudOptions]; + const userField = userOptions[key as keyof CrudOptions]; + if (baseField && userField) { + result[key as keyof CrudOptions] = { ...baseField, ...userField }; + } + } + } + return result; +} + +/** + * 最终暴露的 commonCrudConfig + * @param options 用户自定义配置(可传可不传,不传就用默认) + */ +export const commonCrudConfig = (options: CrudOptions = {}) => { + // ① 合并 + const merged = mergeOptions(defaultOptions, options); + + // ② 用 merged 中的值生成真正的 CRUD 配置 + return { + dept_belong_id: { + title: '所属部门', + type: 'dict-tree', + search: { + show: merged.dept_belong_id.search, + }, + dict: dict({ + url: '/api/system/dept/all_dept/', + isTree: true, + value: 'id', + label: 'name', + children: 'children', + }), + column: { + align: 'center', + width: merged.dept_belong_id.width, + show: merged.dept_belong_id.table, + component: { + // fast-crud里自定义组件常用"component.is" + is: shallowRef(deptFormat), + vModel: 'modelValue', + }, + }, + form: { + show: merged.dept_belong_id.form, + component: { + multiple: false, + clearable: true, + props: { + checkStrictly: true, + props: { + label: 'name', + value: 'id', + }, + }, + }, + helper: '默认不填则为当前创建用户的部门ID', + }, + }, + description: { + title: '备注', + search: { + show: merged.description.search, + }, + type: 'textarea', + column: { + width: merged.description.width, + show: merged.description.table, + }, + form: { + show: merged.description.form, + component: { + placeholder: '请输入内容', + showWordLimit: true, + maxlength: '200', + }, + }, + viewForm: { + show: true, + }, + }, + + modifier_name: { + title: '修改人', + search: { + show: merged.modifier_name.search, + }, + column: { + width: merged.modifier_name.width, + show: merged.modifier_name.table, + }, + form: { + show: merged.modifier_name.form, + }, + viewForm: { + show: true, + }, + }, + + creator_name: { + title: '创建人', + search: { + show: merged.creator_name.search, + }, + column: { + width: merged.creator_name.width, + show: merged.creator_name.table, + }, + form: { + show: merged.creator_name.form, + }, + viewForm: { + show: true, + }, + }, + + update_datetime: { + title: '更新时间', + type: 'datetime', + search: { + show: merged.update_datetime.search, + col: { span: 8 }, + component: { + type: 'datetimerange', + props: { + 'start-placeholder': '开始时间', + 'end-placeholder': '结束时间', + 'value-format': 'YYYY-MM-DD HH:mm:ss', + 'picker-options': { + shortcuts: [ + { + text: '最近一周', + onClick(picker: any) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit('pick', [start, end]); + }, + }, + { + text: '最近一个月', + onClick(picker: any) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); + picker.$emit('pick', [start, end]); + }, + }, + { + text: '最近三个月', + onClick(picker: any) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); + picker.$emit('pick', [start, end]); + }, + }, + ], + }, + }, + }, + valueResolve(context: any) { + const { value } = context; + if (value) { + context.form.update_datetime_after = value[0]; + context.form.update_datetime_before = value[1]; + delete context.form.update_datetime; + } + }, + }, + column: { + width: merged.update_datetime.width, + show: merged.update_datetime.table, + }, + form: { + show: merged.update_datetime.form, + }, + viewForm: { + show: true, + }, + }, + + create_datetime: { + title: '创建时间', + type: 'datetime', + search: { + show: merged.create_datetime.search, + col: { span: 8 }, + component: { + type: 'datetimerange', + props: { + 'start-placeholder': '开始时间', + 'end-placeholder': '结束时间', + 'value-format': 'YYYY-MM-DD HH:mm:ss', + 'picker-options': { + shortcuts: [ + { + text: '最近一周', + onClick(picker: any) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit('pick', [start, end]); + }, + }, + { + text: '最近一个月', + onClick(picker: any) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); + picker.$emit('pick', [start, end]); + }, + }, + { + text: '最近三个月', + onClick(picker: any) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); + picker.$emit('pick', [start, end]); + }, + }, + ], + }, + }, + }, + valueResolve(context: any) { + const { value } = context; + if (value) { + context.form.create_datetime_after = value[0]; + context.form.create_datetime_before = value[1]; + delete context.form.create_datetime; + } + }, + }, + column: { + width: merged.create_datetime.width, + show: merged.create_datetime.table, + }, + form: { + show: merged.create_datetime.form, + }, + viewForm: { + show: true, + }, + }, + }; +}; -- Gitee From d125eac5a6ccaae6a85d2260866f836d2ebb112a Mon Sep 17 00:00:00 2001 From: vFeng <1914007838@qq.com> Date: Mon, 27 Jan 2025 06:22:21 +0000 Subject: [PATCH 4/6] =?UTF-8?q?[fix]=E4=BF=AE=E5=A4=8D=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7=E7=94=9F=E6=88=90=E5=8F=AF=E8=83=BD=E4=B8=BAundefind?= =?UTF-8?q?=E7=9A=84bug&=E5=BC=80=E5=8F=91=E7=8E=AF=E5=A2=83=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E4=B8=8D=E8=BF=9B=E8=A1=8C=E7=89=88=E6=9C=AC=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E4=BB=A3=E7=A0=81=E4=B8=8D=E7=94=9F=E6=95=88bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: vFeng <1914007838@qq.com> --- web/src/utils/upgrade.ts | 93 +++++++++++++++++++++------------------- 1 file changed, 48 insertions(+), 45 deletions(-) diff --git a/web/src/utils/upgrade.ts b/web/src/utils/upgrade.ts index f21c7788e..19906cf7d 100644 --- a/web/src/utils/upgrade.ts +++ b/web/src/utils/upgrade.ts @@ -1,55 +1,58 @@ -import axios from "axios"; -import * as process from "process"; -import {Local, Session} from '/@/utils/storage'; -import {ElNotification} from "element-plus"; -import fs from "fs"; +import axios from 'axios'; +import * as process from 'process'; +import { Local, Session } from '/@/utils/storage'; +import { ElNotification } from 'element-plus'; +import fs from 'fs'; // 是否显示升级提示信息框 const IS_SHOW_UPGRADE_SESSION_KEY = 'isShowUpgrade'; -const VERSION_KEY = 'DVADMIN3_VERSION' -const VERSION_FILE_NAME = 'version-build' +const VERSION_KEY = 'DVADMIN3_VERSION'; +const VERSION_FILE_NAME = 'version-build'; -export function showUpgrade () { - const isShowUpgrade = Session.get(IS_SHOW_UPGRADE_SESSION_KEY) ?? false - if (isShowUpgrade) { - Session.remove(IS_SHOW_UPGRADE_SESSION_KEY) - ElNotification({ - title: '新版本升级', - message: "检测到系统新版本,正在更新中!不用担心,更新很快的哦!", - type: 'success', - duration: 5000, - }); - } +const META_ENV = import.meta.env; + +export function showUpgrade() { + const isShowUpgrade = Session.get(IS_SHOW_UPGRADE_SESSION_KEY) ?? false; + if (isShowUpgrade) { + Session.remove(IS_SHOW_UPGRADE_SESSION_KEY); + ElNotification({ + title: '新版本升级', + message: '检测到系统新版本,正在更新中!不用担心,更新很快的哦!', + type: 'success', + duration: 5000, + }); + } } // 生产环境前端版本校验, -export async function checkVersion(){ - if (process.env.NODE_ENV === 'development') { - // 开发环境无需校验前端版本 - return - } - // 获取线上版本号 t为时间戳,防止缓存 - await axios.get(`${import.meta.env.VITE_PUBLIC_PATH}${VERSION_FILE_NAME}?t=${new Date().getTime()}`).then(res => { - const {status, data} = res || {} - if (status === 200) { - // 获取当前版本号 - const localVersion = Local.get(VERSION_KEY) - // 将当前版本号持久缓存至本地 - Local.set(VERSION_KEY, data) - // 当用户本地存在版本号并且和线上版本号不一致时,进行页面刷新操作 - if (localVersion && localVersion !== data) { - // 本地缓存版本号和线上版本号不一致,弹出升级提示框 - // 此处无法直接使用消息框进行提醒,因为 window.location.reload()会导致消息框消失,将在loading页面判断是否需要显示升级提示框 - Session.set(IS_SHOW_UPGRADE_SESSION_KEY, true) - window.location.reload() - - } - } - }) +export async function checkVersion() { + if (META_ENV.NODE_ENV === 'development') { + // 开发环境无需校验前端版本 + return; + } + // 获取线上版本号 t为时间戳,防止缓存 + await axios.get(`${META_ENV.VITE_PUBLIC_PATH}${VERSION_FILE_NAME}?t=${new Date().getTime()}`).then((res) => { + const { status, data } = res || {}; + if (status === 200) { + // 获取当前版本号 + const localVersion = Local.get(VERSION_KEY); + // 将当前版本号持久缓存至本地 + Local.set(VERSION_KEY, data); + // 当用户本地存在版本号并且和线上版本号不一致时,进行页面刷新操作 + if (localVersion && localVersion !== data) { + // 本地缓存版本号和线上版本号不一致,弹出升级提示框 + // 此处无法直接使用消息框进行提醒,因为 window.location.reload()会导致消息框消失,将在loading页面判断是否需要显示升级提示框 + Session.set(IS_SHOW_UPGRADE_SESSION_KEY, true); + window.location.reload(); + } + } + }); } -export function generateVersionFile (){ - // 生成版本文件到public目录下version文件中 - const version = `${process.env.npm_package_version}.${new Date().getTime()}`; - fs.writeFileSync(`public/${VERSION_FILE_NAME}`, version); +export function generateVersionFile() { + // 生成版本文件到public目录下version文件中 + const package_version = META_ENV?.npm_package_version ?? process.env?.npm_package_version; + + const version = `${package_version}.${new Date().getTime()}`; + fs.writeFileSync(`public/${VERSION_FILE_NAME}`, version); } -- Gitee From 4695066e111dd965d8b0a28b220cb5994f84067c Mon Sep 17 00:00:00 2001 From: vFeng <1914007838@qq.com> Date: Mon, 27 Jan 2025 06:33:37 +0000 Subject: [PATCH 5/6] =?UTF-8?q?[fix]=E4=BF=AE=E5=A4=8D=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E6=97=A0=E9=9C=80=E6=A0=A1=E9=AA=8C=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E7=89=88=E6=9C=ACbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: vFeng <1914007838@qq.com> --- web/src/utils/upgrade.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/utils/upgrade.ts b/web/src/utils/upgrade.ts index 19906cf7d..60c10f21a 100644 --- a/web/src/utils/upgrade.ts +++ b/web/src/utils/upgrade.ts @@ -26,7 +26,7 @@ export function showUpgrade() { // 生产环境前端版本校验, export async function checkVersion() { - if (META_ENV.NODE_ENV === 'development') { + if (META_ENV.MODE === 'development') { // 开发环境无需校验前端版本 return; } -- Gitee From 6fbe3a214dec6f501210774a5879a3df8fbc0586 Mon Sep 17 00:00:00 2001 From: vFeng <1914007838@qq.com> Date: Mon, 27 Jan 2025 09:01:17 +0000 Subject: [PATCH 6/6] =?UTF-8?q?[fix]=E6=B3=A8=E9=87=8A=E6=97=A0=E6=95=88?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3dept=5Flazy=5Ftree?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: vFeng <1914007838@qq.com> --- backend/dvadmin/system/urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/dvadmin/system/urls.py b/backend/dvadmin/system/urls.py index c9c12e9af..0ee2cb8c7 100644 --- a/backend/dvadmin/system/urls.py +++ b/backend/dvadmin/system/urls.py @@ -49,7 +49,7 @@ urlpatterns = [ path('system_config/get_relation_info/', SystemConfigViewSet.as_view({'get': 'get_relation_info'})), # path('login_log/', LoginLogViewSet.as_view({'get': 'list'})), # path('login_log//', LoginLogViewSet.as_view({'get': 'retrieve'})), - path('dept_lazy_tree/', DeptViewSet.as_view({'get': 'dept_lazy_tree'})), + # path('dept_lazy_tree/', DeptViewSet.as_view({'get': 'dept_lazy_tree'})), path('clause/privacy.html', PrivacyView.as_view()), path('clause/terms_service.html', TermsServiceView.as_view()), ] -- Gitee