liyu-pc-base 1.0.50 → 1.0.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/remotePages/configs/i18n/i18n-language_project.ts","../../../src/components/remotePages/configs/permission/permission-apiurl-2.ts","../../../src/api/permission/apiurl-manage.ts","../../../src/components/remotePages/configs/permission/permission-apiurl-config.ts","../../../src/components/remotePages/configs/permission/permission-apiurl.ts","../../../src/components/remotePages/configs/permission/permission-ding_appinfo.ts","../../../src/components/remotePages/configs/permission/permission-menu-config.ts","../../../src/components/remotePages/configs/permission/permission-menu.ts","../../../src/components/remotePages/configs/permission/permission-menu_helper.ts","../../../src/api/permission/user-manage.ts","../../../src/components/remotePages/configs/permission/permission-organization-config.ts","../../../src/components/remotePages/configs/permission/permission-organization.ts","../../../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../../../node_modules/@ant-design/icons-vue/es/icons/CloseOutlined.js","../../../node_modules/@ant-design/icons-svg/es/asn/CheckCircleOutlined.js","../../../node_modules/@ant-design/icons-vue/es/icons/CheckCircleOutlined.js","../../../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleOutlined.js","../../../node_modules/@ant-design/icons-vue/es/icons/ExclamationCircleOutlined.js","../../../node_modules/@ant-design/icons-svg/es/asn/InfoCircleOutlined.js","../../../node_modules/@ant-design/icons-vue/es/icons/InfoCircleOutlined.js","../../../node_modules/@ant-design/icons-svg/es/asn/CloseCircleOutlined.js","../../../node_modules/@ant-design/icons-vue/es/icons/CloseCircleOutlined.js","../../../node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","../../../node_modules/@ant-design/icons-vue/es/icons/InfoCircleFilled.js","../../../node_modules/ant-design-vue/es/modal/locale.js","../../../node_modules/ant-design-vue/es/locale/index.js","../../../node_modules/ant-design-vue/es/vc-notification/Notice.js","../../../node_modules/ant-design-vue/es/vc-notification/Notification.js","../../../node_modules/ant-design-vue/es/vc-notification/HookNotification.js","../../../node_modules/ant-design-vue/es/vc-notification/useNotification.js","../../../node_modules/ant-design-vue/es/message/style/index.js","../../../node_modules/ant-design-vue/es/message/PurePanel.js","../../../node_modules/ant-design-vue/es/message/useMessage.js","../../../node_modules/ant-design-vue/es/message/index.js","../../../node_modules/ant-design-vue/es/notification/style/placement.js","../../../node_modules/ant-design-vue/es/notification/style/index.js","../../../node_modules/ant-design-vue/es/notification/PurePanel.js","../../../node_modules/ant-design-vue/es/notification/util.js","../../../node_modules/ant-design-vue/es/notification/useNotification.js","../../../node_modules/ant-design-vue/es/notification/index.js","../../../node_modules/ant-design-vue/es/config-provider/cssVariables.js","../../../node_modules/ant-design-vue/es/config-provider/style/index.js","../../../node_modules/ant-design-vue/es/config-provider/hooks/useTheme.js","../../../node_modules/ant-design-vue/es/config-provider/index.js","../../../src/api/permission/auth-manage.ts","../../../src/components/remotePages/configs/permission/permission-role-config.ts","../../../src/components/remotePages/configs/permission/permission-role-manage-config.ts","../../../src/components/remotePages/configs/permission/permission-role.ts","../../../src/components/remotePages/configs/permission/permission-user-config.ts","../../../src/components/remotePages/configs/permission/permission-user.ts","../../../src/components/remotePages/configs/permission/role-manage.ts","../../../node_modules/blueimp-md5/js/md5.js","../../../src/components/remotePages/i18n_config.ts","../../../src/components/remotePages/index.ts"],"sourcesContent":["import type { TableColumn } from 'liyu-pc-base/typing';\n\nimport { event_obj } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n dataIndex: 'index',\n checked: true,\n width: 70,\n fixed: 'left',\n },\n {\n title: 'ID',\n width: 150,\n dataIndex: 'id',\n checked: false,\n ellipsis: true,\n resizable: true,\n },\n {\n filterMultiple: false,\n cellComponent: 'tag',\n contentMap: {\n true: '可用',\n false: '禁用',\n },\n colorMap: {\n true: 'green',\n false: 'red',\n },\n filters: [\n {\n value: 'true',\n text: '可用',\n },\n {\n value: 'false',\n text: '禁用',\n },\n ],\n title: '是否可用',\n width: 150,\n dataIndex: 'is_active',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '创建时间',\n width: 150,\n dataIndex: 'create_time',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '更新时间',\n width: 150,\n dataIndex: 'update_time',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n sorter: {\n multiple: 1,\n },\n title: '模块flag',\n width: 150,\n dataIndex: 'project',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n sorter: {\n multiple: 1,\n },\n title: '模块名称',\n width: 150,\n dataIndex: 'name',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '备注',\n width: 150,\n dataIndex: 'bz',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '内部地址',\n width: 150,\n dataIndex: 'inner_url',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '外部地址',\n width: 150,\n dataIndex: 'link_url',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '图标地址',\n width: 150,\n dataIndex: 'icon_url',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n filterMultiple: true,\n cellComponent: 'tag',\n contentMap: {\n inner: '内部地址',\n link: '外部地址',\n },\n colorMap: {\n inner: 'green',\n link: 'cyan',\n },\n filters: [\n {\n value: 'inner',\n text: '内部地址',\n },\n {\n value: 'link',\n text: '外部地址',\n },\n ],\n title: '地址类型',\n width: 150,\n dataIndex: 'url_type',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '隶属组织',\n width: 150,\n dataIndex: 'orgs__name',\n checked: true,\n cellComponent: 'list',\n },\n {\n filterMultiple: true,\n cellComponent: 'tag',\n contentMap: {\n '10': 'PC端',\n '20': '手机端',\n },\n colorMap: {\n '10': 'green',\n '20': 'cyan',\n },\n filters: [\n {\n value: '10',\n text: 'PC端',\n },\n {\n value: '20',\n text: '手机端',\n },\n ],\n title: '平台',\n width: 150,\n dataIndex: 'platform',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n ];\n return {\n baseColumns,\n event_obj: event_obj(),\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n };\n};\n","import type { TableColumn } from 'liyu-pc-base/typing';\nimport type { Record, SearchConfig } from 'liyu-pc-base/components/remotePages/typing';\n\nimport { reactive } from 'vue';\n\nexport default () => {\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '接口名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写接口名称',\n },\n {\n type: 'input',\n name: 'url',\n label: '接口url',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写接口url',\n },\n {\n type: 'radio',\n name: 'is_auth',\n label: '是否需要授权',\n disabled: false,\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择是否授权',\n datasource: 'is_auth',\n mode: 'default',\n },\n {\n type: 'radio',\n name: 'is_active',\n label: '状态',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择状态',\n datasource: 'is_active',\n mode: 'default',\n },\n ],\n rules: {},\n model: reactive({\n is_active: true,\n is_auth: '',\n name: '',\n url: null,\n }),\n options: {\n is_active: [\n { name: '全部', value: '' },\n { name: '正常', value: true },\n { name: '作废', value: false },\n ],\n is_auth: [\n { name: '全部', value: '' },\n { name: '是', value: true },\n { name: '否', value: false },\n ],\n },\n default_column_field: ['is_auth'],\n };\n\n const edit_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '接口名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '接口名称',\n },\n {\n type: 'input',\n name: 'url',\n label: '绝对路径',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '绝对路径',\n },\n {\n type: 'radio',\n name: 'is_auth', // 传值字段\n label: '是否需要授权',\n disabled: false,\n labelKey: 'name', // options数据\n valueKey: 'value',\n placeholder: '请选择是否授权',\n datasource: 'is_auth', // 接参字段\n },\n ],\n rules: {\n name: [{ required: true, message: '请输入接口名称' }],\n url: [{ required: true, message: '请输入绝对路径' }],\n },\n model: {\n name: '',\n url: '',\n is_auth: null,\n },\n options: {\n is_auth: [\n { name: '是', value: true },\n { name: '否', value: false },\n ],\n },\n };\n\n const update_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '接口名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '接口名称',\n },\n {\n type: 'input',\n name: 'url',\n label: '绝对路径',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '绝对路径',\n },\n {\n type: 'radio',\n name: 'is_auth', // 传值字段\n label: '是否需要授权',\n disabled: false,\n labelKey: 'name', // options数据\n valueKey: 'value',\n placeholder: '请选择是否授权',\n datasource: 'is_auth', // 接参字段\n },\n ],\n rules: {},\n model: reactive({\n name: '',\n url: '',\n is_auth: null,\n }),\n options: {\n is_auth: [\n { name: '是', value: true },\n { name: '否', value: false },\n ],\n },\n };\n\n const titleList = {\n title: '接口列表',\n addModalTitle: '新建接口',\n updateTitle: '修改',\n is_create: false, // 是否有【新建】按钮\n is_update: false, // 是否有【修改】按钮\n is_remove: false, // 是否有【删除】按钮\n is_recover: false, // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n apiurl_id: 'id',\n },\n delete: {\n apiurl_id: 'id',\n },\n recover: {\n apiurl_id: 'id',\n },\n updateData: {\n apiurl_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n width: 50,\n dataIndex: 'index',\n checked: true,\n fixed: 'left',\n },\n {\n title: '名称',\n dataIndex: 'name',\n checked: true,\n fixed: 'left',\n },\n {\n title: 'url',\n dataIndex: 'url',\n checked: true,\n },\n {\n title: '是否需要授权',\n width: 130,\n dataIndex: 'is_auth',\n cellComponent: 'boolean',\n checked: true,\n name1: '是',\n name2: '否',\n },\n {\n title: '是否可用',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '全部', value: '' },\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n ];\n\n return {\n searchConfig: search_config,\n formModalConfig: edit_model_config,\n updateFormModalConfig: update_model_config,\n queryData: '/permission/query_url_not_bind_menu_list',\n addData: null,\n updateData: null,\n removeData: null,\n recoverData: null,\n baseColumns: baseColumns,\n titleList: titleList,\n api_fields: api_fields,\n base_search_condition_config_list: [],\n default_search_condition_config_list: [[]],\n condition_group_config_list: [],\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n queryConditionGroupData: null,\n isView: false,\n };\n};\n","import { useRequest } from 'liyu-pc-base/init-plugin';\n\nexport async function queryApiurl(params?: { [key: string]: any }): Promise<RoleResponse> {\n return useRequest().post('/permission/query_apiurl_list', params);\n}\n\nexport async function removeUrl(params: Record<string, any>) {\n return useRequest().post('/permission/delete_apiurl', params);\n}\n\nexport async function recoverUrl(params: Record<string, any>) {\n return useRequest().post('/permission/recover_apiurl', params);\n}\n\nexport async function addURL(params: Record<string, any>) {\n return useRequest().post('/permission/create_apiurl', params);\n}\n\nexport async function updateUrl(params: Record<string, any>) {\n return useRequest().post('/permission/update_apiurl', params);\n}\n\nexport async function import_apiurl(params: Record<string, any>) {\n return useRequest().post('/permission/import_apiurl', params);\n}\n\nexport async function queryUrlNotBind(params?: { [key: string]: any }): Promise<RoleResponse> {\n return useRequest().post('/permission/query_url_not_bind_menu_list', params);\n}\n\nexport async function change_apiurl_auth(params?: { [key: string]: any }): Promise<RoleResponse> {\n return useRequest().post('/permission/change_apiurl_auth', params);\n}\n\ninterface RuleItem {\n key: string | number;\n id: number;\n callNo: number;\n avatar: string;\n desc: string;\n disabled: false;\n href: string;\n name: string;\n owner: string;\n progress: number;\n status: number;\n updatedAt: string;\n createdAt: string;\n}\n\ninterface RoleResponse {\n current: number;\n data: RuleItem[];\n pageSize: string;\n success: boolean;\n total: number;\n}\n","import modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport { createVNode, reactive } from 'vue';\nimport { message, Modal } from 'ant-design-vue';\nimport { change_apiurl_auth, import_apiurl } from 'liyu-pc-base/api/permission/apiurl-manage';\nimport { ExclamationCircleOutlined } from '@ant-design/icons-vue';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\nexport const btn_list: BtnListConfig = [\n {\n name: '设为需要授权',\n type: 'dropdown',\n clazz: 'primary',\n is_show: ({ record }) => {\n return record.is_active && !record.is_auth;\n },\n cb: ({ record, current_org }) => {\n Modal.confirm({\n title: '是否设为需要授权?',\n icon: createVNode(ExclamationCircleOutlined),\n onOk() {\n return new Promise(resolve => {\n change_apiurl_auth({\n org_id: current_org.id,\n apiurl_id: record.id,\n is_auth: true,\n }).then((res: any) => {\n message.success('操作成功');\n Object.assign(record, res);\n resolve(null);\n event_obj().emit('refresh');\n });\n }).catch(() => console.log('Oops errors!'));\n },\n onCancel() {},\n });\n },\n },\n {\n name: '设为无需授权',\n type: 'dropdown',\n clazz: 'primary',\n is_show: ({ record }) => {\n return record.is_active && record.is_auth;\n },\n cb: ({ record, current_org }) => {\n Modal.confirm({\n title: '是否设为无需授权?',\n icon: createVNode(ExclamationCircleOutlined),\n onOk() {\n return new Promise(resolve => {\n change_apiurl_auth({\n org_id: current_org.id,\n apiurl_id: record.id,\n is_auth: false,\n }).then((res: any) => {\n message.success('操作成功');\n Object.assign(record, res);\n resolve(null);\n event_obj().emit('refresh');\n });\n }).catch(() => console.log('Oops errors!'));\n },\n onCancel() {},\n });\n },\n },\n];\nexport const config = {\n creatCol: [],\n updateCol: [],\n};\n\nexport const head_btn_list: HeadBtnListConfig = [\n {\n name: '导入接口',\n type: 'dropdown',\n clazz: 'primary',\n cb: () => {\n const editModal = reactive({\n visible: true,\n title: '导入api接口json文件',\n loading: false,\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'textarea',\n name: 'api_json',\n label: '接口JSON',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '接口JSON',\n },\n ],\n rules: {\n api_json: [{ username: true, message: '请填写账号名称' }],\n },\n model: reactive({\n org_id: current_org.id,\n api_json: '',\n }),\n },\n options: {},\n ok: (payload: any) => {\n return new Promise(resolve => {\n editModal.loading = true;\n import_apiurl({\n ...payload,\n })\n .then(() => {\n message.success('导入成功');\n resolve(null);\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n },\n });\n modalBox(editModal);\n },\n },\n];\n","import type { TableColumn } from 'liyu-pc-base/typing';\nimport type { Record, SearchConfig } from 'liyu-pc-base/components/remotePages/typing';\nimport { btn_list, config, head_btn_list } from './permission-apiurl-config';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport { reactive } from 'vue';\n\nexport default () => {\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '接口名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写接口名称',\n },\n {\n type: 'input',\n name: 'url',\n label: '绝对路径url',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写绝对路径url',\n },\n {\n type: 'radio',\n name: 'is_auth',\n label: '是否需要授权',\n disabled: false,\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择是否授权',\n datasource: 'is_auth',\n mode: 'default',\n },\n {\n type: 'radio',\n name: 'is_active',\n label: '状态',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择状态',\n datasource: 'is_active',\n mode: 'default',\n },\n ],\n rules: {},\n model: reactive({\n is_active: true,\n is_auth: '',\n name: '',\n url: '',\n }),\n options: {\n is_active: [\n { name: '全部', value: '' },\n { name: '正常', value: true },\n { name: '作废', value: false },\n ],\n is_auth: [\n { name: '全部', value: '' },\n { name: '是', value: true },\n { name: '否', value: false },\n ],\n },\n default_column_field: ['is_auth', 'is_active'],\n };\n\n const edit_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '接口名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '接口名称',\n },\n {\n type: 'input',\n name: 'url',\n label: '绝对路径',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '绝对路径',\n },\n {\n type: 'radio',\n name: 'is_auth', // 传值字段\n label: '是否需要授权',\n disabled: false,\n labelKey: 'name', // options数据\n valueKey: 'value',\n placeholder: '请选择是否授权',\n datasource: 'is_auth', // 接参字段\n },\n ],\n rules: {\n name: [{ required: true, message: '请输入接口名称' }],\n url: [{ required: true, message: '请输入绝对路径' }],\n },\n model: {\n name: '',\n url: '',\n is_auth: null,\n },\n options: {\n is_auth: [\n { name: '是', value: true },\n { name: '否', value: false },\n ],\n },\n };\n\n const update_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '接口名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '接口名称',\n },\n {\n type: 'input',\n name: 'url',\n label: '绝对路径',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '绝对路径',\n },\n {\n type: 'radio',\n name: 'is_auth', // 传值字段\n label: '是否需要授权',\n disabled: false,\n labelKey: 'name', // options数据\n valueKey: 'value',\n placeholder: '请选择是否授权',\n datasource: 'is_auth', // 接参字段\n },\n ],\n rules: {},\n model: reactive({\n name: '',\n url: '',\n is_auth: null,\n }),\n options: {\n is_auth: [\n { name: '是', value: true },\n { name: '否', value: false },\n ],\n },\n };\n\n const titleList = {\n title: '接口列表',\n addModalTitle: '新建接口',\n updateTitle: '修改',\n is_create: true, // 是否有【新建】按钮\n is_update: true, // 是否有【修改】按钮\n is_remove: true, // 是否有【删除】按钮\n is_recover: true, // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n apiurl_id: 'id',\n },\n delete: {\n apiurl_id: 'id',\n },\n recover: {\n apiurl_id: 'id',\n },\n updateData: {\n apiurl_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n width: 50,\n dataIndex: 'index',\n checked: true,\n fixed: 'left',\n },\n {\n title: '名称',\n dataIndex: 'name',\n checked: true,\n fixed: 'left',\n },\n {\n title: 'url',\n dataIndex: 'url',\n checked: true,\n },\n {\n title: '接口对应菜单',\n dataIndex: 'menu_list',\n checked: true,\n cellComponent: 'menu_list',\n },\n {\n title: '是否需要授权',\n width: 130,\n dataIndex: 'is_auth',\n checked: true,\n cellComponent: 'boolean',\n name1: '是',\n name2: '否',\n },\n {\n title: '是否可用',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '全部', value: '' },\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n {\n title: '操作',\n width: 170,\n dataIndex: 'action',\n checked: true,\n cellComponent: 'action',\n },\n ];\n\n return {\n searchConfig: search_config,\n formModalConfig: edit_model_config,\n updateFormModalConfig: update_model_config,\n queryData: '/permission/query_apiurl_list',\n addData: '/permission/create_apiurl',\n updateData: '/permission/update_apiurl',\n removeData: '/permission/delete_apiurl',\n recoverData: '/permission/recover_apiurl',\n baseColumns: baseColumns,\n titleList: titleList,\n api_fields: api_fields,\n btn_list: btn_list,\n head_btn_list: head_btn_list,\n event_obj: event_obj(),\n base_search_condition_config_list: [],\n default_search_condition_config_list: [[]],\n condition_group_config_list: [],\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n queryConditionGroupData: null,\n isView: false,\n };\n};\n","import { TableColumn } from 'liyu-pc-base/typing';\nimport { Record, SearchConfig } from 'liyu-pc-base/components/remotePages/typing';\n\nimport { reactive } from 'vue';\n\nexport default () => {\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写名称',\n },\n {\n type: 'input',\n name: 'corpid',\n label: 'CorpID',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写CorpID',\n },\n {\n type: 'input',\n name: 'appid',\n label: 'APPID',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPID',\n },\n\n {\n type: 'input',\n name: 'appkey',\n label: 'APPKey',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPKey',\n },\n {\n type: 'input',\n name: 'appsecret',\n label: 'APPSecret',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPSecret',\n },\n {\n type: 'radio',\n name: 'is_active',\n label: '状态',\n mode: 'default',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择状态',\n datasource: 'is_active',\n },\n ],\n rules: {},\n model: reactive({\n name: '',\n appid: '',\n corpid: '',\n appkey: '',\n appsecret: '',\n }),\n options: {\n is_active: [\n { name: '全部', value: '' },\n { name: '正常', value: true },\n { name: '作废', value: false },\n ],\n },\n };\n\n const edit_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写名称',\n },\n {\n type: 'input',\n name: 'corpid',\n label: 'CorpID',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写CorpID',\n },\n {\n type: 'input',\n name: 'appid',\n label: 'APPID',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPID',\n },\n {\n type: 'input',\n name: 'appkey',\n label: 'APPKey',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPKey',\n },\n {\n type: 'input',\n name: 'appsecret',\n label: 'APPSecret',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPSecret',\n },\n ],\n rules: {\n name: [{ required: true, message: '请输入名称' }],\n corpid: [{ required: true, message: '请填写CorpID' }],\n appid: [{ required: true, message: '请填写APPID' }],\n appkey: [{ required: true, message: '请填写APPKey' }],\n appsecret: [{ required: true, message: '请填写APPSecret' }],\n },\n model: {\n name: '',\n corpid: '',\n appid: '',\n appkey: '',\n appsecret: '',\n },\n options: {},\n };\n\n const update_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写名称',\n },\n {\n type: 'input',\n name: 'corpid',\n label: 'CorpID',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写CorpID',\n },\n {\n type: 'input',\n name: 'appid',\n label: 'APPID',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPID',\n },\n {\n type: 'input',\n name: 'appkey',\n label: 'APPKey',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPKey',\n },\n {\n type: 'input',\n name: 'appsecret',\n label: 'APPSecret',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPSecret',\n },\n ],\n rules: {\n name: [{ required: true, message: '请输入名称' }],\n corpid: [{ required: true, message: '请填写CorpID' }],\n appid: [{ required: true, message: '请填写APPID' }],\n appkey: [{ required: true, message: '请填写APPKey' }],\n appsecret: [{ required: true, message: '请填写APPSecret' }],\n },\n model: reactive({\n name: '',\n corpid: '',\n appid: '',\n appkey: '',\n appsecret: '',\n }),\n options: {},\n };\n\n const titleList = {\n title: '钉钉管理',\n addModalTitle: '新建钉钉信息',\n updateTitle: '修改',\n is_create: true, // 是否有【新建】按钮\n is_update: true, // 是否有【修改】按钮\n is_remove: true, // 是否有【删除】按钮\n is_recover: true, // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n token_id: 'id',\n },\n delete: {\n token_id: 'id',\n },\n recover: {\n token_id: 'id',\n },\n updateData: {\n token_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n width: 50,\n dataIndex: 'index',\n checked: true,\n fixed: 'left',\n },\n {\n title: '名称',\n width: 150,\n dataIndex: 'name',\n checked: true,\n fixed: 'left',\n },\n\n {\n title: 'CorpID',\n dataIndex: 'corpid',\n checked: true,\n },\n {\n title: 'APPID',\n dataIndex: 'appid',\n checked: true,\n },\n {\n title: 'APPKey',\n dataIndex: 'appkey',\n checked: true,\n },\n {\n title: 'APPSecret',\n dataIndex: 'appsecret',\n checked: true,\n },\n\n {\n title: 'PC端首页地址',\n dataIndex: 'pcurl',\n checked: true,\n },\n\n {\n title: '是否可用',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '全部', value: '' },\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n {\n title: '操作',\n checked: true,\n width: 50,\n dataIndex: 'action',\n cellComponent: 'action',\n fixed: 'right',\n },\n ];\n return {\n searchConfig: search_config,\n formModalConfig: edit_model_config,\n updateFormModalConfig: update_model_config,\n queryData: '/dd/query_ding_appinfo_list',\n addData: '/dd/create_ding_appinfo',\n updateData: '/dd/update_ding_appinfo',\n removeData: '/dd/delete_ding_appinfo',\n recoverData: '/dd/recover_ding_appinfo',\n baseColumns: baseColumns,\n titleList: titleList,\n api_fields: api_fields,\n base_search_condition_config_list: [],\n default_search_condition_config_list: [[]],\n condition_group_config_list: [],\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n queryConditionGroupData: null,\n isView: false,\n is_pagination: false,\n };\n};\n","import { reactive } from 'vue';\nimport { message, notification } from 'ant-design-vue';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport { addMenu, import_menu } from 'liyu-pc-base/api/permission/menu-manage';\nimport { queryOrgList } from 'liyu-pc-base/api/sys';\nimport { getApiData } from 'liyu-pc-base/api/api-model';\n\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\nimport { useEnv } from 'liyu-pc-base/init-plugin';\n\nexport const btn_list: BtnListConfig = [\n {\n name: '修改',\n clazz: 'primary',\n type: 'dropdown',\n is_show: ({ record }) => {\n return record.is_active;\n },\n cb: ({ record }) => {\n const env = useEnv();\n const list: any[] = [];\n const list1: any[] = [];\n if (record.org_id_list && record.org_id_list.length > 0) {\n record.org_id_list.forEach((item: any) => {\n list.push(item.id);\n });\n }\n if (record.url_id_list && record.url_id_list.length > 0) {\n record.url_id_list.forEach((item: any) => {\n list1.push(item.id);\n });\n }\n let type;\n let component_type;\n if (record.is_menu) {\n if (record.component) {\n if (record.component == '@/components/remotePages/index.vue') {\n component_type = 0;\n } else {\n component_type = 1;\n }\n type = 0;\n } else {\n type = 1;\n }\n } else {\n type = 2;\n }\n let suffix = null;\n let state = null;\n if (record.state && record.state?.split('-') && record.state?.split('-')?.length > 0) {\n const suffixs = record.state?.split('-');\n if (suffixs.length == 3) {\n suffix = suffixs[suffixs.length - 1];\n suffixs.pop();\n state = suffixs.join('-');\n } else {\n state = record.state;\n }\n } else {\n state = record.state;\n }\n const editModal = reactive<any>({\n open: true,\n loading: false,\n title: '修改菜单',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n dynamicFieldList: [\n {\n children: [\n {\n type: 'input',\n name: 'name',\n label: '菜单名称',\n label_i18n: '菜单名称',\n placeholder_i18n: '请填写菜单名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写菜单名称',\n span: 12,\n },\n {\n type: 'select',\n name: 'platform',\n label: '平台',\n label_i18n: '平台',\n placeholder_i18n: '请选择平台',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择平台',\n datasource: 'platform',\n mode: 'default',\n span: 12,\n },\n {\n type: 'radio',\n name: 'type',\n label: '菜单类型',\n label_i18n: '菜单类型',\n placeholder_i18n: '请选择菜单类型',\n disabled: true,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择菜单类型',\n datasource: 'type',\n mode: 'default',\n span: 12,\n },\n {\n type: 'input',\n name: 'state',\n label: '路由',\n label_i18n: '路由',\n placeholder_i18n: '请填写路由',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写路由',\n span: 8,\n },\n {\n type: 'input',\n name: 'suffix',\n label: '后缀',\n label_i18n: '后缀',\n placeholder_i18n: '后缀',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '后缀',\n span: 4,\n },\n {\n type: 'radio',\n name: 'component_type',\n label: '组件地址类型',\n label_i18n: '组件地址类型',\n placeholder_i18n: '请选择组件地址类型',\n disabled: false,\n datasource: 'component_type',\n maxlength: 100,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '请填写组件地址',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'type',\n class_name: 'int',\n operator: 'eq',\n value: [0],\n },\n ],\n ],\n },\n {\n type: 'input',\n name: 'component',\n label: '组件地址',\n label_i18n: '组件地址',\n placeholder_i18n: '请填写组件地址',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写组件地址',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'component_type',\n class_name: 'int',\n operator: 'eq',\n value: [1],\n },\n ],\n ],\n },\n {\n type: 'number',\n name: 'sort',\n label: '菜单索引',\n label_i18n: '菜单索引',\n placeholder_i18n: '请填写菜单索引',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写菜单索引',\n span: 12,\n },\n {\n type: 'remotetreeselectpro',\n name: 'parent_id',\n label: '父级菜单',\n label_i18n: '父级菜单',\n placeholder_i18n: '请选择父级菜单',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n valueKey: 'id',\n labelKey: 'name',\n placeholder: '请选择父级菜单',\n postUrl: '/permission/query_menu_list__tree',\n span: 12,\n },\n {\n type: 'iconselect',\n name: 'icon',\n label: '菜单图标',\n label_i18n: '请选择菜单图标',\n placeholder: '请选择菜单图标',\n placeholder_i18n: '请选择菜单图标',\n span: 12,\n },\n {\n type: 'remoteselectpro',\n name: 'org_ids',\n label: '隶属组织',\n label_i18n: '隶属组织',\n placeholder_i18n: '请选择组织',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请选择组织',\n datasource: 'org_ids',\n show_search: false,\n // maxTagCount: 5,\n mode: 'multiple',\n postUrl: '/org/query_org_for_login_list',\n span: 12,\n },\n {\n type: 'remotemodal',\n name: 'url_ids',\n label: '接口',\n label_i18n: '接口',\n placeholder_i18n: '接口',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '接口',\n datasource: 'urls',\n show_search: false,\n maxTagCount: 5,\n mode: 'multiple',\n title: '选择多个API接口',\n modalType: 'api-url',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'type',\n class_name: 'int',\n operator: 'eq',\n value: [2],\n },\n ],\n ],\n },\n ],\n },\n ],\n rules: reactive({\n suffix: [\n {\n pattern: /^[^-]*$/,\n message: \"不能带有'-'\",\n trigger: 'blur',\n },\n ],\n state: [{ pattern: /^[^-]+-[^-]+$/, message: \"路由中间必须带有'-'\" }],\n }),\n model: reactive({\n name: record.name,\n menu_id: record.id,\n platform: record.platform,\n icon: record.icon,\n state: state,\n sort: record.sort,\n parent_id: record.parent_id,\n component: record.component,\n org_ids: list,\n url_ids: list1,\n menu_project: record.menu_project,\n suffix: suffix,\n type: type,\n component_type: component_type,\n update_field_list: [\n 'name',\n 'platform',\n 'state',\n 'sort',\n 'parent_id',\n 'is_menu',\n 'org_ids',\n 'url_ids',\n 'menu_name',\n 'menu_path',\n 'component',\n 'chinese_name',\n 'english_name',\n 'icon',\n ],\n }),\n watch: {\n type: (data: any) => {\n if (data.type == 0) {\n setTimeout(() => {\n data.component_type = 0;\n }, 500);\n }\n },\n },\n options: {\n platform: [\n { name: 'PC', value: '10' },\n { name: '手机端', value: '20' },\n ],\n type: [\n { name: '菜单', value: 0 },\n { name: '菜单分组', value: 1 },\n { name: '按钮', value: 2 },\n ],\n component_type: [\n { name: '默认', value: 0 },\n { name: '其他', value: 1 },\n ],\n },\n },\n ok: (data1: any) => {\n return new Promise(resolve => {\n let org_ids = '';\n let url_ids = '';\n if (data1.org_ids && data1.org_ids.length > 0) {\n org_ids = data1.org_ids.join(',');\n }\n if (data1.url_ids && data1.url_ids.length > 0) {\n url_ids = data1.url_ids.join(',');\n }\n let state = data1.state;\n if (data1.suffix) {\n state = state + '-' + data1.suffix;\n }\n let menu_path = null;\n let menu_name = null;\n if (\n data1.type == 0 &&\n data1.state &&\n data1.state?.split('-') &&\n data1.state?.split('-').length != 2\n ) {\n notification.info({\n message: '温馨提示',\n description: '路由 格式不正确!应为 <app_flag>-<model_name>',\n });\n return;\n } else if (data1.type == 2) {\n menu_path = null;\n menu_name = null;\n } else {\n const str = data1.state?.split('-')[0];\n menu_path = '/' + str + '/' + state;\n menu_name = state;\n }\n if (record.state == state) {\n menu_path = null;\n menu_name = null;\n }\n if (data1.type == 0 && data1.component_type == 0) {\n data1.component = '@/components/remotePages/index.vue';\n }\n if (data1.type == 0 && !data1.component) {\n notification.info({\n message: '温馨提示',\n description: '请填写组件地址!',\n });\n return;\n }\n const is_menu = data1.type != 2;\n editModal.loading = true;\n getApiData(\n {\n ...data1,\n org_ids: org_ids,\n is_menu: is_menu,\n state: state,\n menu_name: menu_name,\n menu_path: menu_path,\n url_ids: url_ids,\n },\n '/permission/update_menu',\n )\n .then(() => {\n message.success('修改成功');\n event_obj().emit('refresh');\n resolve(null);\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n },\n });\n if (env.VITE_APP_HAS_PROJECT) {\n editModal.form.dynamicFieldList[0].children.push({\n type: 'remoteselectpro',\n name: 'menu_project',\n label: '模块',\n label_i18n: '模块',\n placeholder_i18n: '请选择模块',\n disabled: false,\n placeholder: '请选择模块',\n datasourceType: 'remote',\n mode: 'default',\n allowClear: true,\n show_search: true,\n labelKey: 'name',\n valueKey: 'project',\n postUrl: '/i18n/query_language_project_list',\n span: 12,\n });\n }\n modalBox(editModal);\n },\n },\n {\n name: '新建子菜单',\n clazz: 'primary',\n cb: ({ record }) => {\n const env = useEnv();\n const list: any[] = [];\n if (record.org_id_list && record.org_id_list.length > 0) {\n record.org_id_list.forEach((item: any) => {\n list.push(item.id);\n });\n }\n const org__ids = [];\n getApiData(\n {\n is_active: true,\n pageSize: 2000,\n },\n '/org/query_org_for_login_list',\n ).then((res: any) => {\n if (res && res.data && res.data.length > 0) {\n res.data.forEach((item: any) => {\n org__ids.push(item.id);\n });\n }\n });\n const editModal = reactive<any>({\n open: true,\n loading: false,\n title: '新建子菜单',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n dynamicFieldList: [\n {\n children: [\n {\n type: 'input',\n name: 'name',\n label: '菜单名称',\n label_i18n: '菜单名称',\n placeholder_i18n: '请填写菜单名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写菜单名称',\n span: 12,\n },\n {\n type: 'select',\n name: 'platform',\n label: '平台',\n label_i18n: '平台',\n placeholder_i18n: '请选择平台',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择平台',\n datasource: 'platform',\n mode: 'default',\n span: 12,\n },\n {\n type: 'radio',\n name: 'state_type',\n label: '路由类型',\n label_i18n: '路由类型',\n placeholder_i18n: '请选择路由类型',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择路由类型',\n datasource: 'state_type',\n mode: 'default',\n span: 12,\n },\n {\n type: 'remoteselectpro',\n name: 'state',\n label: '路由',\n label_i18n: '路由',\n placeholder_i18n: '请选择路由',\n disabled: false,\n defaultValue: '',\n labelKeyList: ['value', 'name'],\n valueKey: 'value',\n init_model: { has_underscore: true },\n placeholder: '请填写路由',\n datasource: 'org_ids',\n show_search: true,\n mode: 'default',\n postUrl: '/sys/base_model_list',\n span: 8,\n conditions: [\n [\n {\n watchKey: 'state_type',\n class_name: 'int',\n operator: 'eq',\n value: [0],\n },\n ],\n ],\n },\n {\n type: 'input',\n name: 'state',\n label: '路由',\n label_i18n: '路由',\n placeholder_i18n: '请填写路由',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写路由',\n span: 8,\n conditions: [\n [\n {\n watchKey: 'state_type',\n class_name: 'int',\n operator: 'eq',\n value: [1],\n },\n ],\n ],\n },\n {\n type: 'input',\n name: 'suffix',\n label: '后缀',\n label_i18n: '后缀',\n placeholder_i18n: '后缀',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '后缀',\n span: 4,\n },\n {\n type: 'radio',\n name: 'type',\n label: '菜单类型',\n label_i18n: '菜单类型',\n placeholder_i18n: '请选择菜单类型',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择菜单类型',\n datasource: 'type',\n mode: 'default',\n span: 12,\n },\n {\n type: 'radio',\n name: 'component_type',\n label: '组件地址类型',\n label_i18n: '组件地址类型',\n placeholder_i18n: '请选择组件地址类型',\n disabled: false,\n datasource: 'component_type',\n maxlength: 100,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '请填写组件地址',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'type',\n class_name: 'int',\n operator: 'eq',\n value: [0],\n },\n ],\n ],\n },\n {\n type: 'input',\n name: 'component',\n label: '组件地址',\n label_i18n: '组件地址',\n placeholder_i18n: '请填写组件地址',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写组件地址',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'component_type',\n class_name: 'int',\n operator: 'eq',\n value: [1],\n },\n ],\n ],\n },\n {\n type: 'number',\n name: 'sort',\n label: '菜单索引',\n label_i18n: '菜单索引',\n placeholder_i18n: '请填写菜单索引',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写菜单索引',\n span: 12,\n },\n {\n type: 'remotetreeselectpro',\n name: 'parent_id',\n label: '父级菜单',\n label_i18n: '父级菜单',\n placeholder_i18n: '请选择父级菜单',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n valueKey: 'id',\n labelKey: 'name',\n placeholder: '请选择父级菜单',\n postUrl: '/permission/query_menu_list__tree',\n span: 12,\n },\n {\n type: 'iconselect',\n name: 'icon',\n label: '菜单图标',\n label_i18n: '请选择菜单图标',\n placeholder: '请选择菜单图标',\n placeholder_i18n: '请选择菜单图标',\n span: 12,\n },\n {\n type: 'radio',\n name: 'org_type',\n label: '隶属组织',\n label_i18n: '隶属组织',\n placeholder_i18n: '请选择隶属组织',\n disabled: false,\n datasource: 'org_type',\n maxlength: 100,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '请选择隶属组织',\n span: 12,\n },\n {\n type: 'remoteselectpro',\n name: 'org_ids',\n label: '隶属组织',\n label_i18n: '隶属组织',\n placeholder_i18n: '请选择组织',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请选择组织',\n datasource: 'org_ids',\n show_search: false,\n maxTagCount: 5,\n mode: 'multiple',\n postUrl: '/org/query_org_for_login_list',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'org_type',\n class_name: 'int',\n operator: 'eq',\n value: [1],\n },\n ],\n ],\n },\n {\n type: 'remotemodal',\n name: 'url_ids',\n label: '接口',\n label_i18n: '接口',\n placeholder_i18n: '接口',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '接口',\n datasource: 'urls',\n show_search: false,\n maxTagCount: 5,\n mode: 'multiple',\n title: '选择多个API接口',\n modalType: 'api-url',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'type',\n class_name: 'int',\n operator: 'eq',\n value: [2],\n },\n ],\n ],\n },\n ],\n },\n ],\n rules: reactive({\n name: [{ required: true, message: '请填写菜单名称' }],\n state: [\n { required: true, message: '请填写路由' },\n { pattern: /^[^-]+-[^-]+$/, message: \"路由中间必须带有'-'\" },\n ],\n sort: [{ required: true, message: '请填写菜单索引' }],\n org_ids: [{ required: true, message: '请选择组织' }],\n suffix: [\n {\n pattern: /^[^-]*$/,\n message: \"不能带有'-'\",\n },\n ],\n }),\n model: reactive({\n name: null,\n menu_id: null,\n platform: '10',\n icon: null,\n state: null,\n sort: null,\n parent_id: record.id,\n type: 0,\n component_type: 0,\n state_type: 0,\n org_type: 1,\n component: null,\n org_ids: list,\n url_ids: null,\n menu_project: record.menu_project,\n }),\n watch: {\n type: (data: any) => {\n if (data.type == 0) {\n setTimeout(() => {\n data.component_type = 0;\n }, 500);\n }\n },\n },\n options: {\n platform: [\n { name: 'PC', value: '10' },\n { name: '手机端', value: '20' },\n ],\n type: [\n { name: '菜单', value: 0 },\n { name: '菜单分组', value: 1 },\n { name: '按钮', value: 2 },\n ],\n component_type: [\n { name: '默认', value: 0 },\n { name: '其他', value: 1 },\n ],\n org_type: [\n { name: '全部', value: 0 },\n { name: '自定义', value: 1 },\n ],\n state_type: [\n { name: '选择', value: 0 },\n { name: '其他', value: 1 },\n ],\n },\n },\n ok: data => {\n let org_ids = '';\n let url_ids = '';\n if (data.org_ids && data.org_ids.length > 0) {\n org_ids = data.org_ids.join(',');\n }\n if (data.org_type == 0) {\n org_ids = org__ids.join(',');\n }\n if (data.url_ids && data.url_ids.length > 0) {\n url_ids = data.url_ids.join(',');\n }\n let state = data.state;\n if (data.suffix) {\n state = state + '-' + data.suffix;\n }\n let menu_path;\n let menu_name;\n if (\n data.type == 0 &&\n data.state &&\n data.state?.split('-') &&\n data.state?.split('-').length != 2\n ) {\n notification.info({\n message: '温馨提示',\n description: `路由 格式不正确!应为 <app_flag>-<model_name>`,\n });\n return;\n } else if (data.type == 2) {\n menu_path = null;\n menu_name = null;\n } else {\n const str = data.state?.split('-')[0];\n menu_path = '/' + str + '/' + state;\n menu_name = state;\n }\n if (data.type == 0 && data.component_type == 0) {\n data.component = '@/components/remotePages/index.vue';\n }\n if (data.type == 0 && !data.component) {\n notification.info({\n message: '温馨提示',\n description: '请填写组件地址!',\n });\n return;\n }\n const is_menu = data.type != 2;\n editModal.loading = true;\n if (data.is_all_org) {\n queryOrgList().then(res => {\n org_ids = res.data.map((item: any) => item.id).join(',');\n addMenu({\n ...data,\n org_ids: org_ids,\n url_ids: url_ids,\n state: state,\n menu_name: menu_name,\n menu_path: menu_path,\n is_menu: is_menu,\n })\n .then(() => {\n message.success('新增菜单成功');\n event_obj().emit('refresh');\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n } else {\n addMenu({\n ...data,\n org_ids: org_ids,\n url_ids: url_ids,\n state: state,\n menu_name: menu_name,\n menu_path: menu_path,\n is_menu: is_menu,\n })\n .then(() => {\n message.success('新增菜单成功');\n event_obj().emit('refresh');\n })\n .finally(() => {\n editModal.loading = false;\n });\n }\n },\n });\n if (env.VITE_APP_HAS_PROJECT) {\n editModal.form.dynamicFieldList[0].children.push({\n type: 'remoteselectpro',\n name: 'menu_project',\n label: '模块',\n disabled: false,\n placeholder: '请选择模块',\n datasourceType: 'remote',\n mode: 'default',\n allowClear: true,\n show_search: true,\n labelKey: 'name',\n valueKey: 'project',\n postUrl: '/i18n/query_language_project_list',\n span: 12,\n });\n }\n modalBox(editModal);\n },\n },\n {\n name: '修改菜单帮助',\n model_kind: 'form',\n type: 'dropdown',\n clazz: 'primary',\n show_condition: [\n [\n {\n flag: 'menu_path',\n type: 'string',\n operator: 'not_blank_not_null',\n value: ['true'],\n },\n ],\n ],\n model_config: {\n title: '修改菜单帮助',\n api_fields: {\n menu_id: 'id',\n },\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n dynamicFieldList: [\n {\n children: [\n {\n type: 'upload',\n label: '文件',\n disabled: false,\n access_type: 'public',\n maxCount: 1,\n listType: 'picture',\n group: 'sys',\n span: 24,\n acceptList: ['.pdf'],\n name: 'helper_files',\n placeholder: '请选择文件上传',\n pull: 0,\n push: 0,\n offset: 0,\n queryType: 'advanced',\n },\n ],\n },\n ],\n model: {\n helper_files: [],\n },\n rules: {},\n options: {},\n },\n ok_url: '/permission/update_menu_helper',\n },\n authority: 'permission/update_menu_helper',\n },\n];\n\nexport const config = {\n creatCol: [],\n updateCol: [],\n};\nexport const head_btn_list: HeadBtnListConfig = [\n // {\n // name: '批量新建按钮',\n // clazz: 'primary',\n // authority: 'permissi-menu/batch_create_button',\n // urls: [\n // '/org/query_org_for_login_list',\n // '/permission/update_multi_menus_by_json',\n // '/permission/query_apiurl_list',\n // '/sys/query_all_global_custom_data_by_flags_list_without_org_id',\n // ],\n // model_kind: 'custom_component',\n // model_config: {\n // component: 'PermissionBatchCreate',\n // },\n // is_disabled: ({ dataSource }: { dataSource: any[] }) => {\n // return !dataSource || dataSource.length === 0;\n // },\n // },\n {\n name: '新建菜单',\n clazz: 'primary',\n cb: () => {\n const userStore = useUserStore();\n const env = useEnv();\n const current_org = userStore.currentOrg;\n const org__ids = [];\n getApiData(\n {\n org_id: current_org?.org_id,\n is_active: true,\n pageSize: 2000,\n },\n '/org/query_org_for_login_list',\n ).then((res: any) => {\n if (res && res.data && res.data.length > 0) {\n res.data.forEach((item: any) => {\n org__ids.push(item.id);\n });\n }\n });\n const editModal = reactive<any>({\n open: true,\n loading: false,\n title: '新建菜单',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n dynamicFieldList: [\n {\n children: [\n {\n type: 'input',\n name: 'name',\n label: '菜单名称',\n label_i18n: '菜单名称',\n placeholder_i18n: '请填写菜单名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写菜单名称',\n span: 12,\n },\n {\n type: 'select',\n name: 'platform',\n label: '平台',\n label_i18n: '平台',\n placeholder_i18n: '请选择平台',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择平台',\n datasource: 'platform',\n mode: 'default',\n span: 12,\n },\n {\n type: 'radio',\n name: 'state_type',\n label: '路由类型',\n label_i18n: '路由类型',\n placeholder_i18n: '请选择路由类型',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择路由类型',\n datasource: 'state_type',\n mode: 'default',\n span: 12,\n },\n {\n type: 'remoteselectpro',\n name: 'state',\n label: '路由',\n label_i18n: '路由',\n placeholder_i18n: '请选择路由',\n disabled: false,\n defaultValue: '',\n labelKeyList: ['value', 'name'],\n valueKey: 'value',\n init_model: { has_underscore: true },\n placeholder: '请填写路由',\n datasource: 'org_ids',\n show_search: true,\n mode: 'default',\n postUrl: '/sys/base_model_list',\n span: 8,\n conditions: [\n [\n {\n watchKey: 'state_type',\n class_name: 'int',\n operator: 'eq',\n value: [0],\n },\n ],\n ],\n },\n {\n type: 'input',\n name: 'state',\n label: '路由',\n label_i18n: '路由',\n placeholder_i18n: '请填写路由',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写路由',\n span: 8,\n conditions: [\n [\n {\n watchKey: 'state_type',\n class_name: 'int',\n operator: 'eq',\n value: [1],\n },\n ],\n ],\n },\n {\n type: 'input',\n name: 'suffix',\n label: '后缀',\n label_i18n: '后缀',\n placeholder_i18n: '后缀',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '后缀',\n span: 4,\n },\n {\n type: 'radio',\n name: 'type',\n label: '菜单类型',\n label_i18n: '菜单类型',\n placeholder_i18n: '请选择菜单类型',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择菜单类型',\n datasource: 'type',\n mode: 'default',\n span: 12,\n },\n {\n type: 'radio',\n name: 'component_type',\n label: '组件地址类型',\n label_i18n: '组件地址类型',\n placeholder_i18n: '请选择组件地址类型',\n disabled: false,\n datasource: 'component_type',\n maxlength: 100,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '请填写组件地址',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'type',\n class_name: 'int',\n operator: 'eq',\n value: [0],\n },\n ],\n ],\n },\n {\n type: 'input',\n name: 'component',\n label: '组件地址',\n label_i18n: '组件地址',\n placeholder_i18n: '请填写组件地址',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写组件地址',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'component_type',\n class_name: 'int',\n operator: 'eq',\n value: [1],\n },\n ],\n ],\n },\n {\n type: 'number',\n name: 'sort',\n label: '菜单索引',\n label_i18n: '菜单索引',\n placeholder_i18n: '请填写菜单索引',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写菜单索引',\n span: 12,\n },\n {\n type: 'remotetreeselectpro',\n name: 'parent_id',\n label: '父级菜单',\n label_i18n: '父级菜单',\n placeholder_i18n: '请选择父级菜单',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n valueKey: 'id',\n labelKey: 'name',\n placeholder: '请选择父级菜单',\n postUrl: '/permission/query_menu_list__tree',\n span: 12,\n },\n {\n type: 'iconselect',\n name: 'icon',\n label: '菜单图标',\n label_i18n: '请选择菜单图标',\n placeholder: '请选择菜单图标',\n placeholder_i18n: '请选择菜单图标',\n span: 12,\n },\n {\n type: 'radio',\n name: 'org_type',\n label: '隶属组织',\n label_i18n: '隶属组织',\n placeholder_i18n: '请选择隶属组织',\n disabled: false,\n datasource: 'org_type',\n maxlength: 100,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '请选择隶属组织',\n span: 12,\n },\n {\n type: 'remoteselectpro',\n name: 'org_ids',\n label: '隶属组织',\n label_i18n: '隶属组织',\n placeholder_i18n: '请选择组织',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请选择组织',\n datasource: 'org_ids',\n show_search: false,\n maxTagCount: 5,\n mode: 'multiple',\n postUrl: '/org/query_org_for_login_list',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'org_type',\n class_name: 'int',\n operator: 'eq',\n value: [1],\n },\n ],\n ],\n },\n {\n type: 'remotemodal',\n name: 'url_ids',\n label: '接口',\n label_i18n: '接口',\n placeholder_i18n: '接口',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '接口',\n datasource: 'urls',\n show_search: false,\n maxTagCount: 5,\n mode: 'multiple',\n title: '选择多个API接口',\n modalType: 'api-url',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'type',\n class_name: 'int',\n operator: 'eq',\n value: [2],\n },\n ],\n ],\n },\n ],\n },\n ],\n rules: reactive({\n name: [{ required: true, message: '请填写菜单名称' }],\n state: [\n { required: true, message: '请填写路由' },\n { pattern: /^[^-]+-[^-]+$/, message: \"路由中间必须带有'-'\" },\n ],\n sort: [{ required: true, message: '请填写菜单索引' }],\n org_ids: [{ required: true, message: '请选择组织' }],\n suffix: [\n {\n pattern: /^[^-]*$/,\n message: \"不能带有'-'\",\n },\n ],\n }),\n model: reactive({\n name: '',\n platform: '10',\n state: '',\n sort: '',\n icon: '',\n parent_id: '',\n component: '',\n type: 0,\n org_ids: [],\n url_ids: [],\n menu_project: '',\n component_type: 0,\n org_type: 0,\n state_type: 0,\n suffix: null,\n }),\n watch: {\n type: (data: any) => {\n if (data.type == 0) {\n setTimeout(() => {\n data.component_type = 0;\n }, 500);\n }\n },\n },\n options: {\n platform: [\n { name: 'PC', value: '10' },\n { name: '手机端', value: '20' },\n ],\n type: [\n { name: '菜单', value: 0 },\n { name: '菜单分组', value: 1 },\n { name: '按钮', value: 2 },\n ],\n component_type: [\n { name: '默认', value: 0 },\n { name: '其他', value: 1 },\n ],\n org_type: [\n { name: '全部', value: 0 },\n { name: '自定义', value: 1 },\n ],\n state_type: [\n { name: '选择', value: 0 },\n { name: '其他', value: 1 },\n ],\n },\n },\n ok: (data1: any) => {\n return new Promise(resolve => {\n let org_ids = '';\n let url_ids = '';\n if (data1.org_ids && data1.org_ids.length > 0) {\n org_ids = data1.org_ids.join(',');\n }\n if (data1.org_type == 0) {\n org_ids = org__ids.join(',');\n }\n if (data1.url_ids && data1.url_ids.length > 0) {\n url_ids = data1.url_ids.join(',');\n }\n let state = data1.state;\n if (data1.suffix) {\n state = state + '-' + data1.suffix;\n }\n let menu_path;\n let menu_name;\n if (\n data1.type == 0 &&\n data1.state &&\n data1.state?.split('-') &&\n data1.state?.split('-').length != 2\n ) {\n notification.info({\n message: '温馨提示',\n description: '路由 格式不正确!应为 <app_flag>-<model_name>',\n });\n return;\n } else if (data1.type == 2) {\n menu_path = null;\n menu_name = null;\n } else {\n const str = data1.state?.split('-')[0];\n menu_path = '/' + str + '/' + state;\n menu_name = state;\n }\n if (data1.type == 0 && data1.component_type == 0) {\n data1.component = '@/components/remotePages/index.vue';\n }\n if (data1.type == 0 && !data1.component) {\n notification.info({\n message: '温馨提示',\n description: '请填写组件地址!',\n });\n return;\n }\n const is_menu = data1.type != 2;\n editModal.loading = true;\n getApiData(\n {\n ...data1,\n org_id: current_org.id,\n is_menu: is_menu,\n state: state,\n menu_name: menu_name,\n menu_path: menu_path,\n org_ids: org_ids,\n url_ids: url_ids,\n },\n '/permission/create_menu',\n )\n .then(() => {\n message.success('创建成功');\n event_obj().emit('refresh');\n resolve(null);\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n },\n });\n if (env.VITE_APP_HAS_PROJECT) {\n editModal.form.dynamicFieldList[0].children.push({\n type: 'remoteselectpro',\n name: 'menu_project',\n label: '模块',\n disabled: false,\n placeholder: '请选择模块',\n datasourceType: 'remote',\n mode: 'default',\n allowClear: true,\n show_search: true,\n labelKey: 'name',\n valueKey: 'project',\n postUrl: '/i18n/query_language_project_list',\n span: 12,\n });\n }\n modalBox(editModal);\n },\n },\n {\n name: '导出菜单',\n clazz: 'primary',\n model_kind: 'custom_component',\n model_config: {\n component: 'ExportMenu',\n },\n },\n {\n name: '导入完整菜单',\n clazz: 'primary',\n cb: () => {\n const userStore = useUserStore();\n const current_org = userStore.currentOrg;\n const editModal = reactive({\n visible: true,\n loading: false,\n title: '导入菜单',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n },\n fields: [\n {\n type: 'textarea',\n name: 'menu_json',\n label: '菜单JSON',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '菜单JSON',\n },\n ],\n rules: {},\n model: reactive({\n org_id: current_org?.id,\n }),\n watch: {},\n },\n options: {},\n ok: (data: any) => {\n editModal.loading = true;\n const p = new Promise((resolve: any) => {\n import_menu(data)\n .then(() => {\n resolve(null);\n message.success('导入菜单成功');\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n return p;\n },\n });\n modalBox(editModal);\n },\n },\n {\n name: '更新菜单',\n clazz: 'primary',\n model_kind: 'custom_component',\n model_config: {\n component: 'ImportMenu',\n },\n },\n];","import type { TableColumn } from 'liyu-pc-base/typing';\nimport type { Record, SearchConfig } from 'liyu-pc-base/components/remotePages/typing';\nimport { btn_list, head_btn_list } from './permission-menu-config';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport { reactive } from 'vue';\nimport { useEnv } from 'liyu-pc-base/init-plugin';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const env = useEnv();\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n name: 'is_active',\n label: '是否可用',\n disabled: false,\n allowClear: true,\n placeholder: '请选择是否可用',\n type: 'select',\n labelKey: 'name',\n },\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '目标组织',\n disabled: false,\n placeholder: '请选择目标组织',\n datasourceType: 'remote',\n mode: 'default',\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n modalType: 'sys-query_org_for_login_list',\n },\n {\n type: 'input',\n name: 'name',\n label: '菜单名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'input',\n name: 'state',\n label: '路由',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写路由',\n },\n {\n type: 'remotetreeselectpro',\n name: 'parent_id',\n label: '父级菜单',\n label_i18n: '父级菜单',\n placeholder_i18n: '请选择父级菜单',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n valueKey: 'value',\n labelKey: 'title',\n placeholder: '请选择父级菜单',\n postUrl: '/permission/query_menu_list__tree',\n init_model: {\n aim_org_id: current_org?.id,\n },\n },\n ],\n rules: {},\n model: reactive({\n org_id: current_org.id,\n aim_org_id: current_org.id,\n tree_struct_simulation: true,\n is_active: true,\n get_menu: true,\n state: null,\n parent_id: null,\n name: null,\n }),\n options: {\n is_active: [\n { name: '全部', value: '' },\n { name: '可用', value: true },\n { name: '禁用', value: false },\n ],\n },\n default_column_field: ['parent_id', 'index'],\n };\n\n const titleList = {\n title: '权限管理',\n addModalTitle: '新建角色',\n updateTitle: '修改',\n is_create: false, // 是否有【新建】按钮\n is_update: false, // 是否有【修改】按钮\n is_remove: 'permission/delete_menu', // 是否有【删除】按钮\n is_recover: 'permission/recover_menu', // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n menu_id: 'id',\n },\n delete: {\n menu_id: 'id',\n },\n recover: {\n menu_id: 'id',\n },\n updateData: {\n org_id: 'org_id',\n menu_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: 'id',\n dataIndex: 'id',\n width: 80,\n checked: false,\n fixed: 'left',\n },\n {\n title: '名称',\n width: 300,\n checked: true,\n dataIndex: 'name',\n fixed: 'left',\n },\n {\n title: '路由',\n dataIndex: 'state',\n checked: true,\n minWidth: 300,\n },\n {\n title: '菜单_菜单图标',\n width: 100,\n dataIndex: 'icon',\n checked: true,\n resizable: true,\n cellComponent: 'icon',\n },\n {\n title: '菜单_路由',\n dataIndex: 'state',\n width: 300,\n checked: false,\n resizable: true,\n },\n {\n title: '菜单_菜单地址',\n dataIndex: 'menu_path',\n width: 300,\n checked: false,\n resizable: true,\n },\n {\n title: '菜单_菜单标识',\n dataIndex: 'menu_name',\n width: 300,\n checked: false,\n resizable: true,\n },\n {\n title: '菜单_组件地址',\n dataIndex: 'component',\n width: 300,\n checked: false,\n resizable: true,\n },\n {\n title: '隶属组织列表',\n dataIndex: 'org_id_list',\n minWidth: 400,\n checked: false,\n cellComponent: 'list',\n },\n {\n title: '平台',\n dataIndex: 'platform',\n width: 60,\n checked: true,\n cellComponent: 'tag',\n contentMap: {\n '10': 'PC',\n '20': '手机端',\n },\n colorMap: {\n '10': 'green',\n '20': 'red',\n },\n },\n {\n title: '索引',\n width: 60,\n checked: true,\n dataIndex: 'sort',\n },\n {\n title: '是否菜单',\n dataIndex: 'is_menu',\n width: 80,\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '菜单',\n name2: '按钮',\n },\n {\n title: '菜单帮助',\n dataIndex: 'helper_files',\n minWidth: 100,\n checked: true,\n cellComponent: 'pdf',\n formatExcelValue: 'file',\n },\n {\n title: '绝对路径',\n dataIndex: 'menu_url',\n minWidth: 100,\n checked: false,\n },\n {\n title: '图标url',\n dataIndex: 'icon_url',\n minWidth: 100,\n checked: true,\n },\n {\n title: '状态',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n {\n title: '对应接口',\n dataIndex: 'url_id_list',\n width: 800,\n checked: false,\n cellComponent: 'list',\n },\n {\n title: '操作',\n width: 50,\n dataIndex: 'action',\n checked: true,\n cellComponent: 'action',\n fixed: 'right',\n },\n ];\n if (env.VITE_APP_HAS_PROJECT) {\n baseColumns.splice(5, 0, {\n title: '模块',\n dataIndex: 'menu_project__name',\n minWidth: 100,\n checked: true,\n });\n search_config.fields.push({\n type: 'remotetreeselectpro',\n name: 'menu_project',\n label: '模块',\n label_i18n: '模块',\n placeholder_i18n: '请选择模块',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n valueKey: 'project',\n labelKey: 'name',\n placeholder: '请选择模块',\n postUrl: '/i18n/query_language_project_list',\n });\n }\n return {\n searchConfig: search_config,\n queryData: '/permission/query_menu_list__tree',\n baseColumns,\n titleList,\n api_fields,\n btn_list,\n head_btn_list,\n event_obj: event_obj(),\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n isView: false,\n };\n};","import type { TableColumn } from 'liyu-pc-base/typing';\n\nexport default () => {\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n dataIndex: 'index',\n checked: true,\n width: 70,\n fixed: 'left',\n },\n {\n title: 'ID',\n width: 150,\n dataIndex: 'id',\n checked: false,\n ellipsis: true,\n resizable: true,\n },\n {\n filterMultiple: false,\n cellComponent: 'tag',\n contentMap: {\n true: '可用',\n false: '禁用',\n },\n colorMap: {\n true: 'green',\n false: 'red',\n },\n filters: [\n {\n value: 'true',\n text: '可用',\n },\n {\n value: 'false',\n text: '禁用',\n },\n ],\n title: '是否可用',\n width: 150,\n dataIndex: 'is_active',\n checked: true,\n ellipsis: true,\n resizable: true,\n formatExcelValue: 'tag',\n },\n {\n contentFunc: '({text}) => getDateTime(text)',\n title: '创建时间',\n width: 150,\n dataIndex: 'create_time',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n contentFunc: '({text}) => getDateTime(text)',\n title: '更新时间',\n width: 150,\n dataIndex: 'update_time',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '标题',\n width: 150,\n dataIndex: 'name',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n filterMultiple: true,\n cellComponent: 'tag',\n contentMap: {\n simple: '简单匹配',\n regex: '正则匹配',\n },\n colorMap: {\n simple: 'green',\n regex: 'cyan',\n },\n filters: [\n {\n value: 'simple',\n text: '简单匹配',\n },\n {\n value: 'regex',\n text: '正则匹配',\n },\n ],\n title: '匹配类型',\n width: 150,\n dataIndex: 'match_type',\n checked: true,\n ellipsis: true,\n resizable: true,\n formatExcelValue: 'tag',\n },\n {\n title: '路径匹配',\n width: 150,\n dataIndex: 'content',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '文件',\n width: 150,\n dataIndex: 'files',\n checked: true,\n ellipsis: true,\n resizable: true,\n cellComponent: 'pdf',\n formatExcelValue: 'file',\n },\n ];\n const formModalConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n dynamicFieldList: [\n {\n children: [\n {\n type: 'input',\n name: 'name',\n label: '标题',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写标题',\n span: 24,\n required_condition: null,\n },\n {\n type: 'radio',\n name: 'match_type',\n label: '匹配类型',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '请选择匹配类型',\n span: 24,\n required_condition: null,\n queryType: 'advanced',\n },\n {\n type: 'remotecomplete',\n label: '路径匹配',\n disabled: false,\n allowClear: true,\n valueKey: 'menu_path',\n labelKeyType: 1,\n labelKey: 'name',\n labelKeyList: [],\n labelSpace: '-',\n mode: 'default',\n placeholder: '请输入内容',\n show_search: true,\n datasourceType: 'remote',\n queryType: 'advanced',\n searchConditions: [\n [\n {\n searchType: 3,\n field_name: 'is_active',\n operator: 'eq',\n value: [true],\n format: 'choices',\n class_name: 'bool',\n },\n ],\n ],\n simpleSearchConditions: [\n {\n searchType: 3,\n field_name: 'is_active',\n value: true,\n },\n ],\n postUrl: '/permission/query_menu_list',\n name: 'content',\n span: 24,\n pull: 0,\n push: 0,\n offset: 0,\n },\n {\n type: 'upload',\n label: '文件',\n disabled: false,\n access_type: 'public',\n maxCount: 1,\n listType: 'picture',\n group: 'sys',\n span: 24,\n acceptList: ['.pdf'],\n name: 'files',\n placeholder: '请输入文件',\n pull: 0,\n push: 0,\n offset: 0,\n queryType: 'advanced',\n },\n ],\n },\n ],\n model: {\n update_field_list: ['name', 'match_type', 'content', 'files'],\n name: null,\n match_type: 'simple',\n files: [],\n },\n rules: {\n name: [\n {\n required: true,\n message: '请填输入标题',\n },\n ],\n },\n options: {\n match_type: [\n {\n name: '简单匹配',\n value: 'simple',\n valueType: 'str',\n },\n {\n name: '正则匹配',\n value: 'regex',\n valueType: 'str',\n },\n ],\n },\n };\n const updateFormModalConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n dynamicFieldList: [\n {\n children: [\n {\n type: 'input',\n name: 'name',\n label: '标题',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写标题',\n span: 24,\n required_condition: null,\n },\n {\n type: 'radio',\n name: 'match_type',\n label: '匹配类型',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '请选择匹配类型',\n span: 24,\n required_condition: null,\n },\n {\n type: 'remotecomplete',\n label: '路径匹配',\n disabled: false,\n allowClear: true,\n valueKey: 'menu_path',\n labelKeyType: 1,\n labelKey: 'name',\n labelKeyList: [],\n labelSpace: '-',\n mode: 'default',\n placeholder: '请输入路径匹配',\n show_search: true,\n datasourceType: 'remote',\n queryType: 'advanced',\n searchConditions: [\n [\n {\n searchType: 3,\n field_name: 'is_active',\n operator: 'eq',\n value: [true],\n format: 'choices',\n class_name: 'bool',\n },\n ],\n ],\n simpleSearchConditions: [\n {\n searchType: 3,\n field_name: 'is_active',\n value: true,\n },\n ],\n postUrl: '/permission/query_menu_list',\n name: 'content',\n span: 24,\n pull: 0,\n push: 0,\n offset: 0,\n },\n {\n type: 'upload',\n label: '文件上传',\n disabled: false,\n access_type: 'public',\n maxCount: 1,\n listType: 'picture',\n group: 'sys',\n span: 24,\n acceptList: ['.pdf'],\n name: 'files',\n placeholder: '请选择文件上传',\n pull: 0,\n push: 0,\n offset: 0,\n queryType: 'advanced',\n },\n ],\n },\n ],\n model: {\n update_field_list: ['name', 'match_type', 'content', 'files'],\n name: null,\n match_type: 'simple',\n files: [],\n },\n rules: {\n name: [\n {\n required: true,\n message: '请填输入标题',\n },\n ],\n },\n options: {\n match_type: [\n {\n name: '简单匹配',\n value: 'simple',\n valueType: 'str',\n },\n {\n name: '正则匹配',\n value: 'regex',\n valueType: 'str',\n },\n ],\n },\n };\n\n return {\n baseColumns,\n formModalConfig,\n updateFormModalConfig,\n };\n};\n","import { useRequest } from 'liyu-pc-base/init-plugin';\n\nexport async function query_person_detail_list(params?: {\n [key: string]: any;\n}): Promise<RoleResponse> {\n return useRequest().post('/sys/query_person_detail_list', params);\n}\n\nexport async function create_organization_by_role_template(params: Record<string, any>) {\n return useRequest().post('/org/create_organization_by_role_template', params);\n}\n\nexport async function removePerson(params: Record<string, any>) {\n return useRequest().post('/sys/delete_user', params);\n}\nexport async function recoverPerson(params: Record<string, any>) {\n return useRequest().post('/sys/recover_user', params);\n}\nexport async function resetPassword(params: Record<string, any>) {\n return useRequest().post('/sys/reset_password', params);\n}\nexport async function create_role_list_and_person(params: Record<string, any>) {\n return useRequest().post('/org/create_role_list_and_person', params);\n}\nexport async function query_role_id_list(params: Record<string, any>) {\n return useRequest().post('/org/query_role_id_list', params);\n}\nexport async function query_role_list(params: Record<string, any>) {\n return useRequest().post('/production_event/query_role_list', params);\n}\nexport async function create_shift_and_user(params: Record<string, any>) {\n return useRequest().post('/shift/create_shift_and_user', params);\n}\nexport async function check_shift_and_user(params: Record<string, any>) {\n return useRequest().post('/shift/check_shift_and_user', params);\n}\n\nexport async function addPerson(params: Record<string, any>) {\n return useRequest().post('/sys/create_user', params);\n // return request('/sys.create_user', {\n // method: 'POST',\n // data: {\n // ...params,\n // method: 'post',\n // },\n // });\n}\n\nexport async function updatePerson(params: Record<string, any>) {\n return useRequest().post('/sys/update_user', params);\n}\n\ninterface RuleItem {\n key: string | number;\n callNo: number;\n avatar: string;\n desc: string;\n disabled: false;\n href: string;\n name: string;\n owner: string;\n progress: number;\n status: number;\n updatedAt: string;\n createdAt: string;\n}\n\ninterface RoleResponse {\n current: number;\n data: RuleItem[];\n pageSize: string;\n success: boolean;\n total: number;\n}\n","import { reactive } from 'vue';\nimport { message } from 'ant-design-vue';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport { create_organization_by_role_template } from 'liyu-pc-base/api/permission/user-manage';\nimport type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\nexport const btn_list: BtnListConfig = [];\nexport const config = {\n creatCol: [],\n updateCol: [],\n};\nexport const head_btn_list: HeadBtnListConfig = [\n {\n name: '添加账套',\n type: 'dropdown',\n is_show: true,\n clazz: 'primary',\n cb: () => {\n const editModal = reactive({\n visible: true,\n title: '新建账套',\n loading: false,\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '账套名称',\n disabled: false,\n allowClear: true,\n inputType: 'number',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填组织名称',\n },\n\n {\n type: 'remoteselect',\n name: 'role_org_id',\n label: '权限模板',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请填权限模板',\n datasourceType: 'remote',\n mode: 'default',\n modalType: 'select-org-id',\n },\n ],\n rules: {\n name: [{ required: true, message: '请输入账套名称' }],\n role_org_id: [{ required: true, message: '请选择权限模板' }],\n },\n model: reactive({\n name: '',\n role_org_id: '',\n }),\n },\n options: {},\n ok: (payload: any) => {\n return new Promise(resolve => {\n editModal.loading = true;\n create_organization_by_role_template({\n ...payload,\n })\n .then(() => {\n message.success('创建新账套成功');\n resolve(null);\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n },\n });\n modalBox(editModal);\n },\n },\n];\n","import { TableColumn } from 'liyu-pc-base/typing';\nimport { Record, SearchConfig } from 'liyu-pc-base/components/remotePages/typing';\nimport { btn_list, config, head_btn_list } from './permission-organization-config';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport { reactive } from 'vue';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写账套名称',\n },\n ],\n rules: {},\n model: reactive({\n org_id: current_org.id,\n aim_org_id: current_org.id,\n is_active: true,\n name: '',\n get_role: true,\n }),\n options: {},\n };\n\n const edit_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '隶属组织',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请选择隶属组织',\n datasourceType: 'remote',\n mode: 'default',\n default: true,\n modalType: 'select-org-id',\n },\n {\n type: 'input',\n name: 'username',\n label: '手机号',\n disabled: false,\n allowClear: true,\n inputType: 'number',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填手机号',\n },\n {\n type: 'input',\n name: 'realname',\n label: '姓名',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'select',\n name: 'manage_type',\n label: '用户类型',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'remoteselect',\n name: 'role_ids',\n label: '角色',\n disabled: false,\n placeholder: '请选择角色',\n datasourceType: 'remote',\n mode: 'multiple',\n allowClear: true,\n modalType: 'liyu_permission-role',\n },\n ],\n rules: {\n username: [{ required: true, pattern: /^1[123456789]\\d{9}$/, message: '请输入正确手机号' }],\n realname: [{ required: true, message: '请输入姓名' }],\n },\n model: {\n org_id: current_org?.id,\n id: null,\n username: '',\n realname: '',\n aim_org_id: current_org?.id,\n },\n options: {\n manage_type: [\n { label: '普通用户', value: 0 },\n { label: '超级管理员', value: 2 },\n ],\n },\n };\n\n const update_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '账套名称',\n disabled: false,\n allowClear: true,\n inputType: 'number',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填组织名称',\n },\n ],\n rules: {},\n model: reactive({\n org_id: current_org.id,\n id: null,\n username: '',\n realname: '',\n title: '',\n aim_org_id: '',\n email: '',\n }),\n options: {},\n };\n\n const titleList = {\n title: '账套管理',\n addModalTitle: '新建账套',\n updateTitle: '修改',\n is_create: false, // 是否有【新建】按钮\n is_update: true, // 是否有【修改】按钮\n is_remove: false, // 是否有【删除】按钮\n is_recover: false, // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n aim_org_id: 'id',\n },\n delete: {\n person_id: 'id',\n },\n recover: {\n person_id: 'id',\n },\n updateData: {\n org_id: 'org_id',\n aim_org_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n width: 50,\n dataIndex: 'index',\n checked: true,\n fixed: 'left',\n },\n {\n title: '名称',\n dataIndex: 'name',\n checked: true,\n fixed: 'left',\n },\n\n {\n title: '是否可用',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '全部', value: '' },\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n {\n title: '操作',\n width: 50,\n checked: true,\n dataIndex: 'action',\n cellComponent: 'action',\n fixed: 'right',\n },\n ];\n\n return {\n searchConfig: search_config,\n formModalConfig: edit_model_config,\n updateFormModalConfig: update_model_config,\n queryData: '/org/query_organization_list',\n addData: '/org/create_organization',\n updateData: '/org/update_organization',\n removeData: null,\n recoverData: null,\n baseColumns: baseColumns,\n titleList: titleList,\n api_fields: api_fields,\n btn_list: btn_list,\n head_btn_list: head_btn_list,\n event_obj: event_obj(),\n base_search_condition_config_list: [],\n default_search_condition_config_list: [[]],\n condition_group_config_list: [],\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n queryConditionGroupData: null,\n isView: false,\n };\n};\n","// This icon file is generated automatically.\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexport default CloseOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseOutlined = function CloseOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": CloseOutlinedSvg\n }), null);\n};\n\nCloseOutlined.displayName = 'CloseOutlined';\nCloseOutlined.inheritAttrs = false;\nexport default CloseOutlined;","// This icon file is generated automatically.\nvar CheckCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"check-circle\", \"theme\": \"outlined\" };\nexport default CheckCircleOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport CheckCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CheckCircleOutlined = function CheckCircleOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": CheckCircleOutlinedSvg\n }), null);\n};\n\nCheckCircleOutlined.displayName = 'CheckCircleOutlined';\nCheckCircleOutlined.inheritAttrs = false;\nexport default CheckCircleOutlined;","// This icon file is generated automatically.\nvar ExclamationCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"outlined\" };\nexport default ExclamationCircleOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport ExclamationCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ExclamationCircleOutlined = function ExclamationCircleOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": ExclamationCircleOutlinedSvg\n }), null);\n};\n\nExclamationCircleOutlined.displayName = 'ExclamationCircleOutlined';\nExclamationCircleOutlined.inheritAttrs = false;\nexport default ExclamationCircleOutlined;","// This icon file is generated automatically.\nvar InfoCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"info-circle\", \"theme\": \"outlined\" };\nexport default InfoCircleOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport InfoCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/InfoCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar InfoCircleOutlined = function InfoCircleOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": InfoCircleOutlinedSvg\n }), null);\n};\n\nInfoCircleOutlined.displayName = 'InfoCircleOutlined';\nInfoCircleOutlined.inheritAttrs = false;\nexport default InfoCircleOutlined;","// This icon file is generated automatically.\nvar CloseCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 00-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"close-circle\", \"theme\": \"outlined\" };\nexport default CloseCircleOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport CloseCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseCircleOutlined = function CloseCircleOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": CloseCircleOutlinedSvg\n }), null);\n};\n\nCloseCircleOutlined.displayName = 'CloseCircleOutlined';\nCloseCircleOutlined.inheritAttrs = false;\nexport default CloseCircleOutlined;","// This icon file is generated automatically.\nvar InfoCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"info-circle\", \"theme\": \"filled\" };\nexport default InfoCircleFilled;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport InfoCircleFilledSvg from \"@ant-design/icons-svg/es/asn/InfoCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar InfoCircleFilled = function InfoCircleFilled(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": InfoCircleFilledSvg\n }), null);\n};\n\nInfoCircleFilled.displayName = 'InfoCircleFilled';\nInfoCircleFilled.inheritAttrs = false;\nexport default InfoCircleFilled;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport defaultLocale from '../locale/en_US';\nlet runtimeLocale = _extends({}, defaultLocale.Modal);\nexport function changeConfirmLocale(newLocale) {\n if (newLocale) {\n runtimeLocale = _extends(_extends({}, runtimeLocale), newLocale);\n } else {\n runtimeLocale = _extends({}, defaultLocale.Modal);\n }\n}\nexport function getConfirmLocale() {\n return runtimeLocale;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { provide, defineComponent, reactive, watch } from 'vue';\nimport { changeConfirmLocale } from '../modal/locale';\nimport warning from '../_util/warning';\nimport { withInstall } from '../_util/type';\nexport const ANT_MARK = 'internalMark';\nconst LocaleProvider = defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'ALocaleProvider',\n props: {\n locale: {\n type: Object\n },\n ANT_MARK__: String\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n warning(props.ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead');\n const state = reactive({\n antLocale: _extends(_extends({}, props.locale), {\n exist: true\n }),\n ANT_MARK__: ANT_MARK\n });\n provide('localeData', state);\n watch(() => props.locale, locale => {\n changeConfirmLocale(locale && locale.Modal);\n state.antLocale = _extends(_extends({}, locale), {\n exist: true\n });\n }, {\n immediate: true\n });\n return () => {\n var _a;\n return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);\n };\n }\n});\n/* istanbul ignore next */\nLocaleProvider.install = function (app) {\n app.component(LocaleProvider.name, LocaleProvider);\n return app;\n};\nexport default withInstall(LocaleProvider);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\nimport { Teleport, computed, defineComponent, onMounted, watch, onUnmounted } from 'vue';\nimport classNames from '../_util/classNames';\nexport default defineComponent({\n name: 'Notice',\n inheritAttrs: false,\n props: ['prefixCls', 'duration', 'updateMark', 'noticeKey', 'closeIcon', 'closable', 'props', 'onClick', 'onClose', 'holder', 'visible'],\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n let closeTimer;\n let isUnMounted = false;\n const duration = computed(() => props.duration === undefined ? 4.5 : props.duration);\n const startCloseTimer = () => {\n if (duration.value && !isUnMounted) {\n closeTimer = setTimeout(() => {\n close();\n }, duration.value * 1000);\n }\n };\n const clearCloseTimer = () => {\n if (closeTimer) {\n clearTimeout(closeTimer);\n closeTimer = null;\n }\n };\n const close = e => {\n if (e) {\n e.stopPropagation();\n }\n clearCloseTimer();\n const {\n onClose,\n noticeKey\n } = props;\n if (onClose) {\n onClose(noticeKey);\n }\n };\n const restartCloseTimer = () => {\n clearCloseTimer();\n startCloseTimer();\n };\n onMounted(() => {\n startCloseTimer();\n });\n onUnmounted(() => {\n isUnMounted = true;\n clearCloseTimer();\n });\n watch([duration, () => props.updateMark, () => props.visible], (_ref2, _ref3) => {\n let [preDuration, preUpdateMark, preVisible] = _ref2;\n let [newDuration, newUpdateMark, newVisible] = _ref3;\n if (preDuration !== newDuration || preUpdateMark !== newUpdateMark || preVisible !== newVisible && newVisible) {\n restartCloseTimer();\n }\n }, {\n flush: 'post'\n });\n return () => {\n var _a, _b;\n const {\n prefixCls,\n closable,\n closeIcon = (_a = slots.closeIcon) === null || _a === void 0 ? void 0 : _a.call(slots),\n onClick,\n holder\n } = props;\n const {\n class: className,\n style\n } = attrs;\n const componentClass = `${prefixCls}-notice`;\n const dataOrAriaAttributeProps = Object.keys(attrs).reduce((acc, key) => {\n if (key.startsWith('data-') || key.startsWith('aria-') || key === 'role') {\n acc[key] = attrs[key];\n }\n return acc;\n }, {});\n const node = _createVNode(\"div\", _objectSpread({\n \"class\": classNames(componentClass, className, {\n [`${componentClass}-closable`]: closable\n }),\n \"style\": style,\n \"onMouseenter\": clearCloseTimer,\n \"onMouseleave\": startCloseTimer,\n \"onClick\": onClick\n }, dataOrAriaAttributeProps), [_createVNode(\"div\", {\n \"class\": `${componentClass}-content`\n }, [(_b = slots.default) === null || _b === void 0 ? void 0 : _b.call(slots)]), closable ? _createVNode(\"a\", {\n \"tabindex\": 0,\n \"onClick\": close,\n \"class\": `${componentClass}-close`\n }, [closeIcon || _createVNode(\"span\", {\n \"class\": `${componentClass}-close-x`\n }, null)]) : null]);\n if (holder) {\n return _createVNode(Teleport, {\n \"to\": holder\n }, {\n default: () => node\n });\n }\n return node;\n };\n }\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { getTransitionGroupProps } from '../_util/transition';\nimport { toRaw, shallowRef, createVNode, computed, defineComponent, ref, TransitionGroup, onMounted, render as vueRender } from 'vue';\nimport Notice from './Notice';\nimport ConfigProvider, { globalConfigForApi } from '../config-provider';\nimport classNames from '../_util/classNames';\nlet seed = 0;\nconst now = Date.now();\nfunction getUuid() {\n const id = seed;\n seed += 1;\n return `rcNotification_${now}_${id}`;\n}\nconst Notification = defineComponent({\n name: 'Notification',\n inheritAttrs: false,\n props: ['prefixCls', 'transitionName', 'animation', 'maxCount', 'closeIcon', 'hashId'],\n setup(props, _ref) {\n let {\n attrs,\n expose,\n slots\n } = _ref;\n const hookRefs = new Map();\n const notices = ref([]);\n const transitionProps = computed(() => {\n const {\n prefixCls,\n animation = 'fade'\n } = props;\n let name = props.transitionName;\n if (!name && animation) {\n name = `${prefixCls}-${animation}`;\n }\n return getTransitionGroupProps(name);\n });\n const add = (originNotice, holderCallback) => {\n const key = originNotice.key || getUuid();\n const notice = _extends(_extends({}, originNotice), {\n key\n });\n const {\n maxCount\n } = props;\n const noticeIndex = notices.value.map(v => v.notice.key).indexOf(key);\n const updatedNotices = notices.value.concat();\n if (noticeIndex !== -1) {\n updatedNotices.splice(noticeIndex, 1, {\n notice,\n holderCallback\n });\n } else {\n if (maxCount && notices.value.length >= maxCount) {\n // XXX, use key of first item to update new added (let React to move exsiting\n // instead of remove and mount). Same key was used before for both a) external\n // manual control and b) internal react 'key' prop , which is not that good.\n // eslint-disable-next-line no-param-reassign\n // zombieJ: Not know why use `updateKey`. This makes Notice infinite loop in jest.\n // Change to `updateMark` for compare instead.\n // https://github.com/react-component/notification/commit/32299e6be396f94040bfa82517eea940db947ece\n notice.key = updatedNotices[0].notice.key;\n notice.updateMark = getUuid();\n // zombieJ: That's why. User may close by key directly.\n // We need record this but not re-render to avoid upper issue\n // https://github.com/react-component/notification/issues/129\n notice.userPassKey = key;\n updatedNotices.shift();\n }\n updatedNotices.push({\n notice,\n holderCallback\n });\n }\n notices.value = updatedNotices;\n };\n const remove = removeKey => {\n notices.value = toRaw(notices.value).filter(_ref2 => {\n let {\n notice: {\n key,\n userPassKey\n }\n } = _ref2;\n const mergedKey = userPassKey || key;\n return mergedKey !== removeKey;\n });\n };\n expose({\n add,\n remove,\n notices\n });\n return () => {\n var _a;\n const {\n prefixCls,\n closeIcon = (_a = slots.closeIcon) === null || _a === void 0 ? void 0 : _a.call(slots, {\n prefixCls\n })\n } = props;\n const noticeNodes = notices.value.map((_ref3, index) => {\n let {\n notice,\n holderCallback\n } = _ref3;\n const updateMark = index === notices.value.length - 1 ? notice.updateMark : undefined;\n const {\n key,\n userPassKey\n } = notice;\n const {\n content\n } = notice;\n const noticeProps = _extends(_extends(_extends({\n prefixCls,\n closeIcon: typeof closeIcon === 'function' ? closeIcon({\n prefixCls\n }) : closeIcon\n }, notice), notice.props), {\n key,\n noticeKey: userPassKey || key,\n updateMark,\n onClose: noticeKey => {\n var _a;\n remove(noticeKey);\n (_a = notice.onClose) === null || _a === void 0 ? void 0 : _a.call(notice);\n },\n onClick: notice.onClick\n });\n if (holderCallback) {\n return _createVNode(\"div\", {\n \"key\": key,\n \"class\": `${prefixCls}-hook-holder`,\n \"ref\": div => {\n if (typeof key === 'undefined') {\n return;\n }\n if (div) {\n hookRefs.set(key, div);\n holderCallback(div, noticeProps);\n } else {\n hookRefs.delete(key);\n }\n }\n }, null);\n }\n return _createVNode(Notice, _objectSpread(_objectSpread({}, noticeProps), {}, {\n \"class\": classNames(noticeProps.class, props.hashId)\n }), {\n default: () => [typeof content === 'function' ? content({\n prefixCls\n }) : content]\n });\n });\n const className = {\n [prefixCls]: 1,\n [attrs.class]: !!attrs.class,\n [props.hashId]: true\n };\n return _createVNode(\"div\", {\n \"class\": className,\n \"style\": attrs.style || {\n top: '65px',\n left: '50%'\n }\n }, [_createVNode(TransitionGroup, _objectSpread({\n \"tag\": \"div\"\n }, transitionProps.value), {\n default: () => [noticeNodes]\n })]);\n };\n }\n});\nNotification.newInstance = function newNotificationInstance(properties, callback) {\n const _a = properties || {},\n {\n name = 'notification',\n getContainer,\n appContext,\n prefixCls: customizePrefixCls,\n rootPrefixCls: customRootPrefixCls,\n transitionName: customTransitionName,\n hasTransitionName,\n useStyle\n } = _a,\n props = __rest(_a, [\"name\", \"getContainer\", \"appContext\", \"prefixCls\", \"rootPrefixCls\", \"transitionName\", \"hasTransitionName\", \"useStyle\"]);\n const div = document.createElement('div');\n if (getContainer) {\n const root = getContainer();\n root.appendChild(div);\n } else {\n document.body.appendChild(div);\n }\n const Wrapper = defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'NotificationWrapper',\n setup(_props, _ref4) {\n let {\n attrs\n } = _ref4;\n const notiRef = shallowRef();\n const prefixCls = computed(() => globalConfigForApi.getPrefixCls(name, customizePrefixCls));\n const [, hashId] = useStyle(prefixCls);\n onMounted(() => {\n callback({\n notice(noticeProps) {\n var _a;\n (_a = notiRef.value) === null || _a === void 0 ? void 0 : _a.add(noticeProps);\n },\n removeNotice(key) {\n var _a;\n (_a = notiRef.value) === null || _a === void 0 ? void 0 : _a.remove(key);\n },\n destroy() {\n vueRender(null, div);\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n },\n component: notiRef\n });\n });\n return () => {\n const global = globalConfigForApi;\n const rootPrefixCls = global.getRootPrefixCls(customRootPrefixCls, prefixCls.value);\n const transitionName = hasTransitionName ? customTransitionName : `${prefixCls.value}-${customTransitionName}`;\n return _createVNode(ConfigProvider, _objectSpread(_objectSpread({}, global), {}, {\n \"prefixCls\": rootPrefixCls\n }), {\n default: () => [_createVNode(Notification, _objectSpread(_objectSpread({\n \"ref\": notiRef\n }, attrs), {}, {\n \"prefixCls\": prefixCls.value,\n \"transitionName\": transitionName,\n \"hashId\": hashId.value\n }), null)]\n });\n };\n }\n });\n const vm = createVNode(Wrapper, props);\n vm.appContext = appContext || vm.appContext;\n vueRender(vm, div);\n};\nexport default Notification;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { watch, computed, defineComponent, ref, TransitionGroup } from 'vue';\nimport Notice from './Notice';\nimport { getTransitionGroupProps } from '../_util/transition';\nimport classNames from '../_util/classNames';\nimport Portal from '../_util/Portal';\nlet seed = 0;\nconst now = Date.now();\nexport function getUuid() {\n const id = seed;\n seed += 1;\n return `rcNotification_${now}_${id}`;\n}\nconst Notification = defineComponent({\n name: 'HookNotification',\n inheritAttrs: false,\n props: ['prefixCls', 'transitionName', 'animation', 'maxCount', 'closeIcon', 'hashId', 'remove', 'notices', 'getStyles', 'getClassName', 'onAllRemoved', 'getContainer'],\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const hookRefs = new Map();\n const notices = computed(() => props.notices);\n const transitionProps = computed(() => {\n let name = props.transitionName;\n if (!name && props.animation) {\n switch (typeof props.animation) {\n case 'string':\n name = props.animation;\n break;\n case 'function':\n name = props.animation().name;\n break;\n case 'object':\n name = props.animation.name;\n break;\n default:\n name = `${props.prefixCls}-fade`;\n break;\n }\n }\n return getTransitionGroupProps(name);\n });\n const remove = key => props.remove(key);\n const placements = ref({});\n watch(notices, () => {\n const nextPlacements = {};\n // init placements with animation\n Object.keys(placements.value).forEach(placement => {\n nextPlacements[placement] = [];\n });\n props.notices.forEach(config => {\n const {\n placement = 'topRight'\n } = config.notice;\n if (placement) {\n nextPlacements[placement] = nextPlacements[placement] || [];\n nextPlacements[placement].push(config);\n }\n });\n placements.value = nextPlacements;\n });\n const placementList = computed(() => Object.keys(placements.value));\n return () => {\n var _a;\n const {\n prefixCls,\n closeIcon = (_a = slots.closeIcon) === null || _a === void 0 ? void 0 : _a.call(slots, {\n prefixCls\n })\n } = props;\n const noticeNodes = placementList.value.map(placement => {\n var _a, _b;\n const noticesForPlacement = placements.value[placement];\n const classes = (_a = props.getClassName) === null || _a === void 0 ? void 0 : _a.call(props, placement);\n const styles = (_b = props.getStyles) === null || _b === void 0 ? void 0 : _b.call(props, placement);\n const noticeNodesForPlacement = noticesForPlacement.map((_ref2, index) => {\n let {\n notice,\n holderCallback\n } = _ref2;\n const updateMark = index === notices.value.length - 1 ? notice.updateMark : undefined;\n const {\n key,\n userPassKey\n } = notice;\n const {\n content\n } = notice;\n const noticeProps = _extends(_extends(_extends({\n prefixCls,\n closeIcon: typeof closeIcon === 'function' ? closeIcon({\n prefixCls\n }) : closeIcon\n }, notice), notice.props), {\n key,\n noticeKey: userPassKey || key,\n updateMark,\n onClose: noticeKey => {\n var _a;\n remove(noticeKey);\n (_a = notice.onClose) === null || _a === void 0 ? void 0 : _a.call(notice);\n },\n onClick: notice.onClick\n });\n if (holderCallback) {\n return _createVNode(\"div\", {\n \"key\": key,\n \"class\": `${prefixCls}-hook-holder`,\n \"ref\": div => {\n if (typeof key === 'undefined') {\n return;\n }\n if (div) {\n hookRefs.set(key, div);\n holderCallback(div, noticeProps);\n } else {\n hookRefs.delete(key);\n }\n }\n }, null);\n }\n return _createVNode(Notice, _objectSpread(_objectSpread({}, noticeProps), {}, {\n \"class\": classNames(noticeProps.class, props.hashId)\n }), {\n default: () => [typeof content === 'function' ? content({\n prefixCls\n }) : content]\n });\n });\n const className = {\n [prefixCls]: 1,\n [`${prefixCls}-${placement}`]: 1,\n [attrs.class]: !!attrs.class,\n [props.hashId]: true,\n [classes]: !!classes\n };\n function onAfterLeave() {\n var _a;\n if (noticesForPlacement.length > 0) {\n return;\n }\n Reflect.deleteProperty(placements.value, placement);\n (_a = props.onAllRemoved) === null || _a === void 0 ? void 0 : _a.call(props);\n }\n return _createVNode(\"div\", {\n \"key\": placement,\n \"class\": className,\n \"style\": attrs.style || styles || {\n top: '65px',\n left: '50%'\n }\n }, [_createVNode(TransitionGroup, _objectSpread(_objectSpread({\n \"tag\": \"div\"\n }, transitionProps.value), {}, {\n \"onAfterLeave\": onAfterLeave\n }), {\n default: () => [noticeNodesForPlacement]\n })]);\n });\n return _createVNode(Portal, {\n \"getContainer\": props.getContainer\n }, {\n default: () => [noticeNodes]\n });\n };\n }\n});\nexport default Notification;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { shallowRef, watch } from 'vue';\nimport HookNotification, { getUuid } from './HookNotification';\nconst defaultGetContainer = () => document.body;\nlet uniqueKey = 0;\nfunction mergeConfig() {\n const clone = {};\n for (var _len = arguments.length, objList = new Array(_len), _key = 0; _key < _len; _key++) {\n objList[_key] = arguments[_key];\n }\n objList.forEach(obj => {\n if (obj) {\n Object.keys(obj).forEach(key => {\n const val = obj[key];\n if (val !== undefined) {\n clone[key] = val;\n }\n });\n }\n });\n return clone;\n}\nexport default function useNotification() {\n let rootConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n getContainer = defaultGetContainer,\n motion,\n prefixCls,\n maxCount,\n getClassName,\n getStyles,\n onAllRemoved\n } = rootConfig,\n shareConfig = __rest(rootConfig, [\"getContainer\", \"motion\", \"prefixCls\", \"maxCount\", \"getClassName\", \"getStyles\", \"onAllRemoved\"]);\n const notices = shallowRef([]);\n const notificationsRef = shallowRef();\n const add = (originNotice, holderCallback) => {\n const key = originNotice.key || getUuid();\n const notice = _extends(_extends({}, originNotice), {\n key\n });\n const noticeIndex = notices.value.map(v => v.notice.key).indexOf(key);\n const updatedNotices = notices.value.concat();\n if (noticeIndex !== -1) {\n updatedNotices.splice(noticeIndex, 1, {\n notice,\n holderCallback\n });\n } else {\n if (maxCount && notices.value.length >= maxCount) {\n notice.key = updatedNotices[0].notice.key;\n notice.updateMark = getUuid();\n notice.userPassKey = key;\n updatedNotices.shift();\n }\n updatedNotices.push({\n notice,\n holderCallback\n });\n }\n notices.value = updatedNotices;\n };\n const removeNotice = removeKey => {\n notices.value = notices.value.filter(_ref => {\n let {\n notice: {\n key,\n userPassKey\n }\n } = _ref;\n const mergedKey = userPassKey || key;\n return mergedKey !== removeKey;\n });\n };\n const destroy = () => {\n notices.value = [];\n };\n const contextHolder = () => _createVNode(HookNotification, {\n \"ref\": notificationsRef,\n \"prefixCls\": prefixCls,\n \"maxCount\": maxCount,\n \"notices\": notices.value,\n \"remove\": removeNotice,\n \"getClassName\": getClassName,\n \"getStyles\": getStyles,\n \"animation\": motion,\n \"hashId\": rootConfig.hashId,\n \"onAllRemoved\": onAllRemoved,\n \"getContainer\": getContainer\n }, null);\n const taskQueue = shallowRef([]);\n // ========================= Refs =========================\n const api = {\n open: config => {\n const mergedConfig = mergeConfig(shareConfig, config);\n //@ts-ignore\n if (mergedConfig.key === null || mergedConfig.key === undefined) {\n //@ts-ignore\n mergedConfig.key = `vc-notification-${uniqueKey}`;\n uniqueKey += 1;\n }\n taskQueue.value = [...taskQueue.value, {\n type: 'open',\n config: mergedConfig\n }];\n },\n close: key => {\n taskQueue.value = [...taskQueue.value, {\n type: 'close',\n key\n }];\n },\n destroy: () => {\n taskQueue.value = [...taskQueue.value, {\n type: 'destroy'\n }];\n }\n };\n // ======================== Effect ========================\n watch(taskQueue, () => {\n // Flush task when node ready\n if (taskQueue.value.length) {\n taskQueue.value.forEach(task => {\n switch (task.type) {\n case 'open':\n // @ts-ignore\n add(task.config);\n break;\n case 'close':\n removeNotice(task.key);\n break;\n case 'destroy':\n destroy();\n break;\n }\n });\n taskQueue.value = [];\n }\n });\n // ======================== Return ========================\n return [api, contextHolder];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// deps-lint-skip-all\nimport { Keyframes } from '../../_util/cssinjs';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent } from '../../style';\nconst genMessageStyle = token => {\n const {\n componentCls,\n iconCls,\n boxShadowSecondary,\n colorBgElevated,\n colorSuccess,\n colorError,\n colorWarning,\n colorInfo,\n fontSizeLG,\n motionEaseInOutCirc,\n motionDurationSlow,\n marginXS,\n paddingXS,\n borderRadiusLG,\n zIndexPopup,\n // Custom token\n messageNoticeContentPadding\n } = token;\n const messageMoveIn = new Keyframes('MessageMoveIn', {\n '0%': {\n padding: 0,\n transform: 'translateY(-100%)',\n opacity: 0\n },\n '100%': {\n padding: paddingXS,\n transform: 'translateY(0)',\n opacity: 1\n }\n });\n const messageMoveOut = new Keyframes('MessageMoveOut', {\n '0%': {\n maxHeight: token.height,\n padding: paddingXS,\n opacity: 1\n },\n '100%': {\n maxHeight: 0,\n padding: 0,\n opacity: 0\n }\n });\n return [\n // ============================ Holder ============================\n {\n [componentCls]: _extends(_extends({}, resetComponent(token)), {\n position: 'fixed',\n top: marginXS,\n left: '50%',\n transform: 'translateX(-50%)',\n width: '100%',\n pointerEvents: 'none',\n zIndex: zIndexPopup,\n [`${componentCls}-move-up`]: {\n animationFillMode: 'forwards'\n },\n [`\n ${componentCls}-move-up-appear,\n ${componentCls}-move-up-enter\n `]: {\n animationName: messageMoveIn,\n animationDuration: motionDurationSlow,\n animationPlayState: 'paused',\n animationTimingFunction: motionEaseInOutCirc\n },\n [`\n ${componentCls}-move-up-appear${componentCls}-move-up-appear-active,\n ${componentCls}-move-up-enter${componentCls}-move-up-enter-active\n `]: {\n animationPlayState: 'running'\n },\n [`${componentCls}-move-up-leave`]: {\n animationName: messageMoveOut,\n animationDuration: motionDurationSlow,\n animationPlayState: 'paused',\n animationTimingFunction: motionEaseInOutCirc\n },\n [`${componentCls}-move-up-leave${componentCls}-move-up-leave-active`]: {\n animationPlayState: 'running'\n },\n '&-rtl': {\n direction: 'rtl',\n span: {\n direction: 'rtl'\n }\n }\n })\n },\n // ============================ Notice ============================\n {\n [`${componentCls}-notice`]: {\n padding: paddingXS,\n textAlign: 'center',\n [iconCls]: {\n verticalAlign: 'text-bottom',\n marginInlineEnd: marginXS,\n fontSize: fontSizeLG\n },\n [`${componentCls}-notice-content`]: {\n display: 'inline-block',\n padding: messageNoticeContentPadding,\n background: colorBgElevated,\n borderRadius: borderRadiusLG,\n boxShadow: boxShadowSecondary,\n pointerEvents: 'all'\n },\n [`${componentCls}-success ${iconCls}`]: {\n color: colorSuccess\n },\n [`${componentCls}-error ${iconCls}`]: {\n color: colorError\n },\n [`${componentCls}-warning ${iconCls}`]: {\n color: colorWarning\n },\n [`\n ${componentCls}-info ${iconCls},\n ${componentCls}-loading ${iconCls}`]: {\n color: colorInfo\n }\n }\n },\n // ============================= Pure =============================\n {\n [`${componentCls}-notice-pure-panel`]: {\n padding: 0,\n textAlign: 'start'\n }\n }];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Message', token => {\n // Gen-style functions here\n const combinedToken = mergeToken(token, {\n messageNoticeContentPadding: `${(token.controlHeightLG - token.fontSize * token.lineHeight) / 2}px ${token.paddingSM}px`\n });\n return [genMessageStyle(combinedToken)];\n}, token => ({\n height: 150,\n zIndexPopup: token.zIndexPopupBase + 10\n}));","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode } from \"vue\";\nimport Notice from '../vc-notification/Notice';\nimport useStyle from './style';\nimport LoadingOutlined from \"@ant-design/icons-vue/es/icons/LoadingOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons-vue/es/icons/ExclamationCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons-vue/es/icons/CloseCircleFilled\";\nimport CheckCircleFilled from \"@ant-design/icons-vue/es/icons/CheckCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons-vue/es/icons/InfoCircleFilled\";\nimport classNames from '../_util/classNames';\nimport { useConfigContextInject } from '../config-provider/context';\nimport { computed, defineComponent } from 'vue';\nexport const TypeIcon = {\n info: _createVNode(InfoCircleFilled, null, null),\n success: _createVNode(CheckCircleFilled, null, null),\n error: _createVNode(CloseCircleFilled, null, null),\n warning: _createVNode(ExclamationCircleFilled, null, null),\n loading: _createVNode(LoadingOutlined, null, null)\n};\nexport const PureContent = defineComponent({\n name: 'PureContent',\n inheritAttrs: false,\n props: ['prefixCls', 'type', 'icon'],\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"class\": classNames(`${props.prefixCls}-custom-content`, `${props.prefixCls}-${props.type}`)\n }, [props.icon || TypeIcon[props.type], _createVNode(\"span\", null, [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)])]);\n };\n }\n});\n/** @private Internal Component. Do not use in your production. */\nexport default defineComponent({\n name: 'PurePanel',\n inheritAttrs: false,\n props: ['prefixCls', 'class', 'type', 'icon', 'content'],\n setup(props, _ref2) {\n let {\n slots,\n attrs\n } = _ref2;\n var _a;\n const {\n getPrefixCls\n } = useConfigContextInject();\n const prefixCls = computed(() => props.prefixCls || getPrefixCls('message'));\n const [, hashId] = useStyle(prefixCls);\n return _createVNode(Notice, _objectSpread(_objectSpread({}, attrs), {}, {\n \"prefixCls\": prefixCls.value,\n \"class\": classNames(hashId.value, `${prefixCls.value}-notice-pure-panel`),\n \"noticeKey\": \"pure\",\n \"duration\": null\n }), {\n default: () => [_createVNode(PureContent, {\n \"prefixCls\": prefixCls.value,\n \"type\": props.type,\n \"icon\": props.icon\n }, {\n default: () => [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)]\n })]\n });\n }\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { shallowRef, computed, defineComponent } from 'vue';\nimport { useNotification as useVcNotification } from '../vc-notification';\nimport CloseOutlined from \"@ant-design/icons-vue/es/icons/CloseOutlined\";\nimport useStyle from './style';\nimport { PureContent } from './PurePanel';\nimport { getMotion } from '../vc-trigger/utils/motionUtil';\nimport { wrapPromiseFn } from '../_util/util';\nimport useConfigInject from '../config-provider/hooks/useConfigInject';\nimport classNames from '../_util/classNames';\nconst DEFAULT_OFFSET = 8;\nconst DEFAULT_DURATION = 3;\nconst Holder = defineComponent({\n name: 'Holder',\n inheritAttrs: false,\n props: ['top', 'prefixCls', 'getContainer', 'maxCount', 'duration', 'rtl', 'transitionName', 'onAllRemoved', 'animation', 'staticGetContainer'],\n setup(props, _ref) {\n let {\n expose\n } = _ref;\n var _a, _b;\n const {\n getPrefixCls,\n getPopupContainer\n } = useConfigInject('message', props);\n const prefixCls = computed(() => getPrefixCls('message', props.prefixCls));\n const [, hashId] = useStyle(prefixCls);\n // =============================== Style ===============================\n const getStyles = () => {\n var _a;\n const top = (_a = props.top) !== null && _a !== void 0 ? _a : DEFAULT_OFFSET;\n return {\n left: '50%',\n transform: 'translateX(-50%)',\n top: typeof top === 'number' ? `${top}px` : top\n };\n };\n const getClassName = () => classNames(hashId.value, props.rtl ? `${prefixCls.value}-rtl` : '');\n // ============================== Motion ===============================\n const getNotificationMotion = () => {\n var _a;\n return getMotion({\n prefixCls: prefixCls.value,\n animation: (_a = props.animation) !== null && _a !== void 0 ? _a : `move-up`,\n transitionName: props.transitionName\n });\n };\n // ============================ Close Icon =============================\n const mergedCloseIcon = _createVNode(\"span\", {\n \"class\": `${prefixCls.value}-close-x`\n }, [_createVNode(CloseOutlined, {\n \"class\": `${prefixCls.value}-close-icon`\n }, null)]);\n // ============================== Origin ===============================\n const [api, holder] = useVcNotification({\n //@ts-ignore\n getStyles,\n prefixCls: prefixCls.value,\n getClassName,\n motion: getNotificationMotion,\n closable: false,\n closeIcon: mergedCloseIcon,\n duration: (_a = props.duration) !== null && _a !== void 0 ? _a : DEFAULT_DURATION,\n getContainer: (_b = props.staticGetContainer) !== null && _b !== void 0 ? _b : getPopupContainer.value,\n maxCount: props.maxCount,\n onAllRemoved: props.onAllRemoved\n });\n // ================================ Ref ================================\n expose(_extends(_extends({}, api), {\n prefixCls,\n hashId\n }));\n return holder;\n }\n});\n// ==============================================================================\n// == Hook ==\n// ==============================================================================\nlet keyIndex = 0;\nexport function useInternalMessage(messageConfig) {\n const holderRef = shallowRef(null);\n const holderKey = Symbol('messageHolderKey');\n // ================================ API ================================\n // Wrap with notification content\n // >>> close\n const close = key => {\n var _a;\n (_a = holderRef.value) === null || _a === void 0 ? void 0 : _a.close(key);\n };\n // >>> Open\n const open = config => {\n if (!holderRef.value) {\n const fakeResult = () => {};\n fakeResult.then = () => {};\n return fakeResult;\n }\n const {\n open: originOpen,\n prefixCls,\n hashId\n } = holderRef.value;\n const noticePrefixCls = `${prefixCls}-notice`;\n const {\n content,\n icon,\n type,\n key,\n class: className,\n onClose\n } = config,\n restConfig = __rest(config, [\"content\", \"icon\", \"type\", \"key\", \"class\", \"onClose\"]);\n let mergedKey = key;\n if (mergedKey === undefined || mergedKey === null) {\n keyIndex += 1;\n mergedKey = `antd-message-${keyIndex}`;\n }\n return wrapPromiseFn(resolve => {\n originOpen(_extends(_extends({}, restConfig), {\n key: mergedKey,\n content: () => _createVNode(PureContent, {\n \"prefixCls\": prefixCls,\n \"type\": type,\n \"icon\": typeof icon === 'function' ? icon() : icon\n }, {\n default: () => [typeof content === 'function' ? content() : content]\n }),\n placement: 'top',\n // @ts-ignore\n class: classNames(type && `${noticePrefixCls}-${type}`, hashId, className),\n onClose: () => {\n onClose === null || onClose === void 0 ? void 0 : onClose();\n resolve();\n }\n }));\n // Return close function\n return () => {\n close(mergedKey);\n };\n });\n };\n // >>> destroy\n const destroy = key => {\n var _a;\n if (key !== undefined) {\n close(key);\n } else {\n (_a = holderRef.value) === null || _a === void 0 ? void 0 : _a.destroy();\n }\n };\n const wrapAPI = {\n open,\n destroy\n };\n const keys = ['info', 'success', 'warning', 'error', 'loading'];\n keys.forEach(type => {\n const typeOpen = (jointContent, duration, onClose) => {\n let config;\n if (jointContent && typeof jointContent === 'object' && 'content' in jointContent) {\n config = jointContent;\n } else {\n config = {\n content: jointContent\n };\n }\n // Params\n let mergedDuration;\n let mergedOnClose;\n if (typeof duration === 'function') {\n mergedOnClose = duration;\n } else {\n mergedDuration = duration;\n mergedOnClose = onClose;\n }\n const mergedConfig = _extends(_extends({\n onClose: mergedOnClose,\n duration: mergedDuration\n }, config), {\n type\n });\n return open(mergedConfig);\n };\n wrapAPI[type] = typeOpen;\n });\n // ============================== Return ===============================\n return [wrapAPI, () => _createVNode(Holder, _objectSpread(_objectSpread({\n \"key\": holderKey\n }, messageConfig), {}, {\n \"ref\": holderRef\n }), null)];\n}\nexport default function useMessage(messageConfig) {\n return useInternalMessage(messageConfig);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport Notification from '../vc-notification';\nimport LoadingOutlined from \"@ant-design/icons-vue/es/icons/LoadingOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons-vue/es/icons/ExclamationCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons-vue/es/icons/CloseCircleFilled\";\nimport CheckCircleFilled from \"@ant-design/icons-vue/es/icons/CheckCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons-vue/es/icons/InfoCircleFilled\";\nimport classNames from '../_util/classNames';\nimport useStyle from './style';\nimport useMessage from './useMessage';\nlet defaultDuration = 3;\nlet defaultTop;\nlet messageInstance;\nlet key = 1;\nlet localPrefixCls = '';\nlet transitionName = 'move-up';\nlet hasTransitionName = false;\nlet getContainer = () => document.body;\nlet maxCount;\nlet rtl = false;\nexport function getKeyThenIncreaseKey() {\n return key++;\n}\nfunction setMessageConfig(options) {\n if (options.top !== undefined) {\n defaultTop = options.top;\n messageInstance = null; // delete messageInstance for new defaultTop\n }\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n }\n if (options.prefixCls !== undefined) {\n localPrefixCls = options.prefixCls;\n }\n if (options.getContainer !== undefined) {\n getContainer = options.getContainer;\n messageInstance = null; // delete messageInstance for new getContainer\n }\n if (options.transitionName !== undefined) {\n transitionName = options.transitionName;\n messageInstance = null; // delete messageInstance for new transitionName\n hasTransitionName = true;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n messageInstance = null;\n }\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n}\nfunction getMessageInstance(args, callback) {\n if (messageInstance) {\n callback(messageInstance);\n return;\n }\n Notification.newInstance({\n appContext: args.appContext,\n prefixCls: args.prefixCls || localPrefixCls,\n rootPrefixCls: args.rootPrefixCls,\n transitionName,\n hasTransitionName,\n style: {\n top: defaultTop\n },\n getContainer: getContainer || args.getPopupContainer,\n maxCount,\n name: 'message',\n useStyle\n }, instance => {\n if (messageInstance) {\n callback(messageInstance);\n return;\n }\n messageInstance = instance;\n callback(instance);\n });\n}\nconst typeToIcon = {\n info: InfoCircleFilled,\n success: CheckCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled,\n loading: LoadingOutlined\n};\nexport const typeList = Object.keys(typeToIcon);\nfunction notice(args) {\n const duration = args.duration !== undefined ? args.duration : defaultDuration;\n const target = args.key || getKeyThenIncreaseKey();\n const closePromise = new Promise(resolve => {\n const callback = () => {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n return resolve(true);\n };\n getMessageInstance(args, instance => {\n instance.notice({\n key: target,\n duration,\n style: args.style || {},\n class: args.class,\n content: _ref => {\n let {\n prefixCls\n } = _ref;\n const Icon = typeToIcon[args.type];\n const iconNode = Icon ? _createVNode(Icon, null, null) : '';\n const messageClass = classNames(`${prefixCls}-custom-content`, {\n [`${prefixCls}-${args.type}`]: args.type,\n [`${prefixCls}-rtl`]: rtl === true\n });\n return _createVNode(\"div\", {\n \"class\": messageClass\n }, [typeof args.icon === 'function' ? args.icon() : args.icon || iconNode, _createVNode(\"span\", null, [typeof args.content === 'function' ? args.content() : args.content])]);\n },\n onClose: callback,\n onClick: args.onClick\n });\n });\n });\n const result = () => {\n if (messageInstance) {\n messageInstance.removeNotice(target);\n }\n };\n result.then = (filled, rejected) => closePromise.then(filled, rejected);\n result.promise = closePromise;\n return result;\n}\nfunction isArgsProps(content) {\n return Object.prototype.toString.call(content) === '[object Object]' && !!content.content;\n}\nconst api = {\n open: notice,\n config: setMessageConfig,\n destroy(messageKey) {\n if (messageInstance) {\n if (messageKey) {\n const {\n removeNotice\n } = messageInstance;\n removeNotice(messageKey);\n } else {\n const {\n destroy\n } = messageInstance;\n destroy();\n messageInstance = null;\n }\n }\n }\n};\nexport function attachTypeApi(originalApi, type) {\n originalApi[type] = (content, duration, onClose) => {\n if (isArgsProps(content)) {\n return originalApi.open(_extends(_extends({}, content), {\n type\n }));\n }\n if (typeof duration === 'function') {\n onClose = duration;\n duration = undefined;\n }\n return originalApi.open({\n content,\n duration,\n type,\n onClose\n });\n };\n}\ntypeList.forEach(type => attachTypeApi(api, type));\napi.warn = api.warning;\napi.useMessage = useMessage;\n/** @private test Only function. Not work on production */\nexport const getInstance = () => process.env.NODE_ENV === 'test' ? messageInstance : null;\nexport default api;","import { Keyframes } from '../../_util/cssinjs';\nconst genNotificationPlacementStyle = token => {\n const {\n componentCls,\n width,\n notificationMarginEdge\n } = token;\n const notificationTopFadeIn = new Keyframes('antNotificationTopFadeIn', {\n '0%': {\n marginTop: '-100%',\n opacity: 0\n },\n '100%': {\n marginTop: 0,\n opacity: 1\n }\n });\n const notificationBottomFadeIn = new Keyframes('antNotificationBottomFadeIn', {\n '0%': {\n marginBottom: '-100%',\n opacity: 0\n },\n '100%': {\n marginBottom: 0,\n opacity: 1\n }\n });\n const notificationLeftFadeIn = new Keyframes('antNotificationLeftFadeIn', {\n '0%': {\n right: {\n _skip_check_: true,\n value: width\n },\n opacity: 0\n },\n '100%': {\n right: {\n _skip_check_: true,\n value: 0\n },\n opacity: 1\n }\n });\n return {\n [`&${componentCls}-top, &${componentCls}-bottom`]: {\n marginInline: 0\n },\n [`&${componentCls}-top`]: {\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: notificationTopFadeIn\n }\n },\n [`&${componentCls}-bottom`]: {\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: notificationBottomFadeIn\n }\n },\n [`&${componentCls}-topLeft, &${componentCls}-bottomLeft`]: {\n marginInlineEnd: 0,\n marginInlineStart: notificationMarginEdge,\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: notificationLeftFadeIn\n }\n }\n };\n};\nexport default genNotificationPlacementStyle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { Keyframes } from '../../_util/cssinjs';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genNotificationPlacementStyle from './placement';\nimport { resetComponent } from '../../style';\nconst genNotificationStyle = token => {\n const {\n iconCls,\n componentCls,\n // .ant-notification\n boxShadowSecondary,\n fontSizeLG,\n notificationMarginBottom,\n borderRadiusLG,\n colorSuccess,\n colorInfo,\n colorWarning,\n colorError,\n colorTextHeading,\n notificationBg,\n notificationPadding,\n notificationMarginEdge,\n motionDurationMid,\n motionEaseInOut,\n fontSize,\n lineHeight,\n width,\n notificationIconSize\n } = token;\n const noticeCls = `${componentCls}-notice`;\n const notificationFadeIn = new Keyframes('antNotificationFadeIn', {\n '0%': {\n left: {\n _skip_check_: true,\n value: width\n },\n opacity: 0\n },\n '100%': {\n left: {\n _skip_check_: true,\n value: 0\n },\n opacity: 1\n }\n });\n const notificationFadeOut = new Keyframes('antNotificationFadeOut', {\n '0%': {\n maxHeight: token.animationMaxHeight,\n marginBottom: notificationMarginBottom,\n opacity: 1\n },\n '100%': {\n maxHeight: 0,\n marginBottom: 0,\n paddingTop: 0,\n paddingBottom: 0,\n opacity: 0\n }\n });\n return [\n // ============================ Holder ============================\n {\n [componentCls]: _extends(_extends(_extends(_extends({}, resetComponent(token)), {\n position: 'fixed',\n zIndex: token.zIndexPopup,\n marginInlineEnd: notificationMarginEdge,\n [`${componentCls}-hook-holder`]: {\n position: 'relative'\n },\n [`&${componentCls}-top, &${componentCls}-bottom`]: {\n [`${componentCls}-notice`]: {\n marginInline: 'auto auto'\n }\n },\n [`&${componentCls}-topLeft, &${componentCls}-bottomLeft`]: {\n [`${componentCls}-notice`]: {\n marginInlineEnd: 'auto',\n marginInlineStart: 0\n }\n },\n // animation\n [`${componentCls}-fade-enter, ${componentCls}-fade-appear`]: {\n animationDuration: token.motionDurationMid,\n animationTimingFunction: motionEaseInOut,\n animationFillMode: 'both',\n opacity: 0,\n animationPlayState: 'paused'\n },\n [`${componentCls}-fade-leave`]: {\n animationTimingFunction: motionEaseInOut,\n animationFillMode: 'both',\n animationDuration: motionDurationMid,\n animationPlayState: 'paused'\n },\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: notificationFadeIn,\n animationPlayState: 'running'\n },\n [`${componentCls}-fade-leave${componentCls}-fade-leave-active`]: {\n animationName: notificationFadeOut,\n animationPlayState: 'running'\n }\n }), genNotificationPlacementStyle(token)), {\n // RTL\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-notice-btn`]: {\n float: 'left'\n }\n }\n })\n },\n // ============================ Notice ============================\n {\n [noticeCls]: {\n position: 'relative',\n width,\n maxWidth: `calc(100vw - ${notificationMarginEdge * 2}px)`,\n marginBottom: notificationMarginBottom,\n marginInlineStart: 'auto',\n padding: notificationPadding,\n overflow: 'hidden',\n lineHeight,\n wordWrap: 'break-word',\n background: notificationBg,\n borderRadius: borderRadiusLG,\n boxShadow: boxShadowSecondary,\n [`${componentCls}-close-icon`]: {\n fontSize,\n cursor: 'pointer'\n },\n [`${noticeCls}-message`]: {\n marginBottom: token.marginXS,\n color: colorTextHeading,\n fontSize: fontSizeLG,\n lineHeight: token.lineHeightLG\n },\n [`${noticeCls}-description`]: {\n fontSize\n },\n [`&${noticeCls}-closable ${noticeCls}-message`]: {\n paddingInlineEnd: token.paddingLG\n },\n [`${noticeCls}-with-icon ${noticeCls}-message`]: {\n marginBottom: token.marginXS,\n marginInlineStart: token.marginSM + notificationIconSize,\n fontSize: fontSizeLG\n },\n [`${noticeCls}-with-icon ${noticeCls}-description`]: {\n marginInlineStart: token.marginSM + notificationIconSize,\n fontSize\n },\n // Icon & color style in different selector level\n // https://github.com/ant-design/ant-design/issues/16503\n // https://github.com/ant-design/ant-design/issues/15512\n [`${noticeCls}-icon`]: {\n position: 'absolute',\n fontSize: notificationIconSize,\n lineHeight: 0,\n // icon-font\n [`&-success${iconCls}`]: {\n color: colorSuccess\n },\n [`&-info${iconCls}`]: {\n color: colorInfo\n },\n [`&-warning${iconCls}`]: {\n color: colorWarning\n },\n [`&-error${iconCls}`]: {\n color: colorError\n }\n },\n [`${noticeCls}-close`]: {\n position: 'absolute',\n top: token.notificationPaddingVertical,\n insetInlineEnd: token.notificationPaddingHorizontal,\n color: token.colorIcon,\n outline: 'none',\n width: token.notificationCloseButtonSize,\n height: token.notificationCloseButtonSize,\n borderRadius: token.borderRadiusSM,\n transition: `background-color ${token.motionDurationMid}, color ${token.motionDurationMid}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n '&:hover': {\n color: token.colorIconHover,\n backgroundColor: token.wireframe ? 'transparent' : token.colorFillContent\n }\n },\n [`${noticeCls}-btn`]: {\n float: 'right',\n marginTop: token.marginSM\n }\n }\n },\n // ============================= Pure =============================\n {\n [`${noticeCls}-pure-panel`]: {\n margin: 0\n }\n }];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Notification', token => {\n const notificationPaddingVertical = token.paddingMD;\n const notificationPaddingHorizontal = token.paddingLG;\n const notificationToken = mergeToken(token, {\n // default.less variables\n notificationBg: token.colorBgElevated,\n notificationPaddingVertical,\n notificationPaddingHorizontal,\n // index.less variables\n notificationPadding: `${token.paddingMD}px ${token.paddingContentHorizontalLG}px`,\n notificationMarginBottom: token.margin,\n notificationMarginEdge: token.marginLG,\n animationMaxHeight: 150,\n notificationIconSize: token.fontSizeLG * token.lineHeightLG,\n notificationCloseButtonSize: token.controlHeightLG * 0.55\n });\n return [genNotificationStyle(notificationToken)];\n}, token => ({\n zIndexPopup: token.zIndexPopupBase + 50,\n width: 384\n}));","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { computed, defineComponent } from 'vue';\nimport useStyle from './style';\nimport useConfigInject from '../config-provider/hooks/useConfigInject';\nimport Notice from '../vc-notification/Notice';\nimport classNames from '../_util/classNames';\nimport LoadingOutlined from \"@ant-design/icons-vue/es/icons/LoadingOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons-vue/es/icons/ExclamationCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons-vue/es/icons/CloseCircleFilled\";\nimport CheckCircleFilled from \"@ant-design/icons-vue/es/icons/CheckCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons-vue/es/icons/InfoCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons-vue/es/icons/CloseOutlined\";\nimport { renderHelper } from '../_util/util';\nexport function getCloseIcon(prefixCls, closeIcon) {\n return closeIcon || _createVNode(\"span\", {\n \"class\": `${prefixCls}-close-x`\n }, [_createVNode(CloseOutlined, {\n \"class\": `${prefixCls}-close-icon`\n }, null)]);\n}\nexport const TypeIcon = {\n info: _createVNode(InfoCircleFilled, null, null),\n success: _createVNode(CheckCircleFilled, null, null),\n error: _createVNode(CloseCircleFilled, null, null),\n warning: _createVNode(ExclamationCircleFilled, null, null),\n loading: _createVNode(LoadingOutlined, null, null)\n};\nconst typeToIcon = {\n success: CheckCircleFilled,\n info: InfoCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled\n};\nexport function PureContent(_ref) {\n let {\n prefixCls,\n icon,\n type,\n message,\n description,\n btn\n } = _ref;\n let iconNode = null;\n if (icon) {\n iconNode = _createVNode(\"span\", {\n \"class\": `${prefixCls}-icon`\n }, [renderHelper(icon)]);\n } else if (type) {\n const Icon = typeToIcon[type];\n iconNode = _createVNode(Icon, {\n \"class\": `${prefixCls}-icon ${prefixCls}-icon-${type}`\n }, null);\n }\n return _createVNode(\"div\", {\n \"class\": classNames({\n [`${prefixCls}-with-icon`]: iconNode\n }),\n \"role\": \"alert\"\n }, [iconNode, _createVNode(\"div\", {\n \"class\": `${prefixCls}-message`\n }, [message]), _createVNode(\"div\", {\n \"class\": `${prefixCls}-description`\n }, [description]), btn && _createVNode(\"div\", {\n \"class\": `${prefixCls}-btn`\n }, [btn])]);\n}\n/** @private Internal Component. Do not use in your production. */\nexport default defineComponent({\n name: 'PurePanel',\n inheritAttrs: false,\n props: ['prefixCls', 'icon', 'type', 'message', 'description', 'btn', 'closeIcon'],\n setup(props) {\n const {\n getPrefixCls\n } = useConfigInject('notification', props);\n const prefixCls = computed(() => props.prefixCls || getPrefixCls('notification'));\n const noticePrefixCls = computed(() => `${prefixCls.value}-notice`);\n const [, hashId] = useStyle(prefixCls);\n return () => {\n return _createVNode(Notice, _objectSpread(_objectSpread({}, props), {}, {\n \"prefixCls\": prefixCls.value,\n \"class\": classNames(hashId.value, `${noticePrefixCls.value}-pure-panel`),\n \"noticeKey\": \"pure\",\n \"duration\": null,\n \"closable\": props.closable,\n \"closeIcon\": getCloseIcon(prefixCls.value, props.closeIcon)\n }), {\n default: () => [_createVNode(PureContent, {\n \"prefixCls\": noticePrefixCls.value,\n \"icon\": props.icon,\n \"type\": props.type,\n \"message\": props.message,\n \"description\": props.description,\n \"btn\": props.btn\n }, null)]\n });\n };\n }\n});","export function getPlacementStyle(placement, top, bottom) {\n let style;\n top = typeof top === 'number' ? `${top}px` : top;\n bottom = typeof bottom === 'number' ? `${bottom}px` : bottom;\n switch (placement) {\n case 'top':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top,\n bottom: 'auto'\n };\n break;\n case 'topLeft':\n style = {\n left: 0,\n top,\n bottom: 'auto'\n };\n break;\n case 'topRight':\n style = {\n right: 0,\n top,\n bottom: 'auto'\n };\n break;\n case 'bottom':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: 'auto',\n bottom\n };\n break;\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom\n };\n break;\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom\n };\n break;\n }\n return style;\n}\nexport function getMotion(prefixCls) {\n return {\n name: `${prefixCls}-fade`\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { shallowRef, computed, defineComponent } from 'vue';\nimport { useNotification as useVcNotification } from '../vc-notification';\nimport useStyle from './style';\nimport { getCloseIcon, PureContent } from './PurePanel';\nimport { getMotion, getPlacementStyle } from './util';\nimport useConfigInject from '../config-provider/hooks/useConfigInject';\nimport classNames from '../_util/classNames';\nconst DEFAULT_OFFSET = 24;\nconst DEFAULT_DURATION = 4.5;\nconst Holder = defineComponent({\n name: 'Holder',\n inheritAttrs: false,\n props: ['prefixCls', 'class', 'type', 'icon', 'content', 'onAllRemoved'],\n setup(props, _ref) {\n let {\n expose\n } = _ref;\n const {\n getPrefixCls,\n getPopupContainer\n } = useConfigInject('notification', props);\n const prefixCls = computed(() => props.prefixCls || getPrefixCls('notification'));\n // =============================== Style ===============================\n const getStyles = placement => {\n var _a, _b;\n return getPlacementStyle(placement, (_a = props.top) !== null && _a !== void 0 ? _a : DEFAULT_OFFSET, (_b = props.bottom) !== null && _b !== void 0 ? _b : DEFAULT_OFFSET);\n };\n // Style\n const [, hashId] = useStyle(prefixCls);\n const getClassName = () => classNames(hashId.value, {\n [`${prefixCls.value}-rtl`]: props.rtl\n });\n // ============================== Motion ===============================\n const getNotificationMotion = () => getMotion(prefixCls.value);\n // ============================== Origin ===============================\n const [api, holder] = useVcNotification({\n prefixCls: prefixCls.value,\n getStyles,\n getClassName,\n motion: getNotificationMotion,\n closable: true,\n closeIcon: getCloseIcon(prefixCls.value),\n duration: DEFAULT_DURATION,\n getContainer: () => {\n var _a, _b;\n return ((_a = props.getPopupContainer) === null || _a === void 0 ? void 0 : _a.call(props)) || ((_b = getPopupContainer.value) === null || _b === void 0 ? void 0 : _b.call(getPopupContainer)) || document.body;\n },\n maxCount: props.maxCount,\n hashId: hashId.value,\n onAllRemoved: props.onAllRemoved\n });\n // ================================ Ref ================================\n expose(_extends(_extends({}, api), {\n prefixCls: prefixCls.value,\n hashId\n }));\n return holder;\n }\n});\n// ==============================================================================\n// == Hook ==\n// ==============================================================================\nexport function useInternalNotification(notificationConfig) {\n const holderRef = shallowRef(null);\n const holderKey = Symbol('notificationHolderKey');\n // ================================ API ================================\n // Wrap with notification content\n // >>> Open\n const open = config => {\n if (!holderRef.value) {\n return;\n }\n const {\n open: originOpen,\n prefixCls,\n hashId\n } = holderRef.value;\n const noticePrefixCls = `${prefixCls}-notice`;\n const {\n message,\n description,\n icon,\n type,\n btn,\n class: className\n } = config,\n restConfig = __rest(config, [\"message\", \"description\", \"icon\", \"type\", \"btn\", \"class\"]);\n return originOpen(_extends(_extends({\n placement: 'topRight'\n }, restConfig), {\n content: () => _createVNode(PureContent, {\n \"prefixCls\": noticePrefixCls,\n \"icon\": typeof icon === 'function' ? icon() : icon,\n \"type\": type,\n \"message\": typeof message === 'function' ? message() : message,\n \"description\": typeof description === 'function' ? description() : description,\n \"btn\": typeof btn === 'function' ? btn() : btn\n }, null),\n // @ts-ignore\n class: classNames(type && `${noticePrefixCls}-${type}`, hashId, className)\n }));\n };\n // >>> destroy\n const destroy = key => {\n var _a, _b;\n if (key !== undefined) {\n (_a = holderRef.value) === null || _a === void 0 ? void 0 : _a.close(key);\n } else {\n (_b = holderRef.value) === null || _b === void 0 ? void 0 : _b.destroy();\n }\n };\n const wrapAPI = {\n open,\n destroy\n };\n const keys = ['success', 'info', 'warning', 'error'];\n keys.forEach(type => {\n wrapAPI[type] = config => open(_extends(_extends({}, config), {\n type\n }));\n });\n // ============================== Return ===============================\n return [wrapAPI, () => _createVNode(Holder, _objectSpread(_objectSpread({\n \"key\": holderKey\n }, notificationConfig), {}, {\n \"ref\": holderRef\n }), null)];\n}\nexport default function useNotification(notificationConfig) {\n return useInternalNotification(notificationConfig);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport Notification from '../vc-notification';\nimport CheckCircleOutlined from \"@ant-design/icons-vue/es/icons/CheckCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons-vue/es/icons/InfoCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons-vue/es/icons/CloseCircleOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons-vue/es/icons/ExclamationCircleOutlined\";\nimport CloseOutlined from \"@ant-design/icons-vue/es/icons/CloseOutlined\";\nimport { renderHelper } from '../_util/util';\nimport { globalConfig } from '../config-provider';\nimport classNames from '../_util/classNames';\nimport useStyle from './style';\nimport useNotification from './useNotification';\nimport { getPlacementStyle } from './util';\nconst notificationInstance = {};\nlet defaultDuration = 4.5;\nlet defaultTop = '24px';\nlet defaultBottom = '24px';\nlet defaultPrefixCls = '';\nlet defaultPlacement = 'topRight';\nlet defaultGetContainer = () => document.body;\nlet defaultCloseIcon = null;\nlet rtl = false;\nlet maxCount;\nfunction setNotificationConfig(options) {\n const {\n duration,\n placement,\n bottom,\n top,\n getContainer,\n closeIcon,\n prefixCls\n } = options;\n if (prefixCls !== undefined) {\n defaultPrefixCls = prefixCls;\n }\n if (duration !== undefined) {\n defaultDuration = duration;\n }\n if (placement !== undefined) {\n defaultPlacement = placement;\n }\n if (bottom !== undefined) {\n defaultBottom = typeof bottom === 'number' ? `${bottom}px` : bottom;\n }\n if (top !== undefined) {\n defaultTop = typeof top === 'number' ? `${top}px` : top;\n }\n if (getContainer !== undefined) {\n defaultGetContainer = getContainer;\n }\n if (closeIcon !== undefined) {\n defaultCloseIcon = closeIcon;\n }\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n }\n}\nfunction getNotificationInstance(_ref, callback) {\n let {\n prefixCls: customizePrefixCls,\n placement = defaultPlacement,\n getContainer = defaultGetContainer,\n top,\n bottom,\n closeIcon = defaultCloseIcon,\n appContext\n } = _ref;\n const {\n getPrefixCls\n } = globalConfig();\n const prefixCls = getPrefixCls('notification', customizePrefixCls || defaultPrefixCls);\n const cacheKey = `${prefixCls}-${placement}-${rtl}`;\n const cacheInstance = notificationInstance[cacheKey];\n if (cacheInstance) {\n Promise.resolve(cacheInstance).then(instance => {\n callback(instance);\n });\n return;\n }\n const notificationClass = classNames(`${prefixCls}-${placement}`, {\n [`${prefixCls}-rtl`]: rtl === true\n });\n Notification.newInstance({\n name: 'notification',\n prefixCls: customizePrefixCls || defaultPrefixCls,\n useStyle,\n class: notificationClass,\n style: getPlacementStyle(placement, top !== null && top !== void 0 ? top : defaultTop, bottom !== null && bottom !== void 0 ? bottom : defaultBottom),\n appContext,\n getContainer,\n closeIcon: _ref2 => {\n let {\n prefixCls\n } = _ref2;\n const closeIconToRender = _createVNode(\"span\", {\n \"class\": `${prefixCls}-close-x`\n }, [renderHelper(closeIcon, {}, _createVNode(CloseOutlined, {\n \"class\": `${prefixCls}-close-icon`\n }, null))]);\n return closeIconToRender;\n },\n maxCount,\n hasTransitionName: true\n }, notification => {\n notificationInstance[cacheKey] = notification;\n callback(notification);\n });\n}\nconst typeToIcon = {\n success: CheckCircleOutlined,\n info: InfoCircleOutlined,\n error: CloseCircleOutlined,\n warning: ExclamationCircleOutlined\n};\nfunction notice(args) {\n const {\n icon,\n type,\n description,\n message,\n btn\n } = args;\n const duration = args.duration === undefined ? defaultDuration : args.duration;\n getNotificationInstance(args, notification => {\n notification.notice({\n content: _ref3 => {\n let {\n prefixCls: outerPrefixCls\n } = _ref3;\n const prefixCls = `${outerPrefixCls}-notice`;\n let iconNode = null;\n if (icon) {\n iconNode = () => _createVNode(\"span\", {\n \"class\": `${prefixCls}-icon`\n }, [renderHelper(icon)]);\n } else if (type) {\n const Icon = typeToIcon[type];\n iconNode = () => _createVNode(Icon, {\n \"class\": `${prefixCls}-icon ${prefixCls}-icon-${type}`\n }, null);\n }\n return _createVNode(\"div\", {\n \"class\": iconNode ? `${prefixCls}-with-icon` : ''\n }, [iconNode && iconNode(), _createVNode(\"div\", {\n \"class\": `${prefixCls}-message`\n }, [!description && iconNode ? _createVNode(\"span\", {\n \"class\": `${prefixCls}-message-single-line-auto-margin`\n }, null) : null, renderHelper(message)]), _createVNode(\"div\", {\n \"class\": `${prefixCls}-description`\n }, [renderHelper(description)]), btn ? _createVNode(\"span\", {\n \"class\": `${prefixCls}-btn`\n }, [renderHelper(btn)]) : null]);\n },\n duration,\n closable: true,\n onClose: args.onClose,\n onClick: args.onClick,\n key: args.key,\n style: args.style || {},\n class: args.class\n });\n });\n}\nconst api = {\n open: notice,\n close(key) {\n Object.keys(notificationInstance).forEach(cacheKey => Promise.resolve(notificationInstance[cacheKey]).then(instance => {\n instance.removeNotice(key);\n }));\n },\n config: setNotificationConfig,\n destroy() {\n Object.keys(notificationInstance).forEach(cacheKey => {\n Promise.resolve(notificationInstance[cacheKey]).then(instance => {\n instance.destroy();\n });\n delete notificationInstance[cacheKey]; // lgtm[js/missing-await]\n });\n }\n};\nconst iconTypes = ['success', 'info', 'warning', 'error'];\niconTypes.forEach(type => {\n api[type] = args => api.open(_extends(_extends({}, args), {\n type\n }));\n});\napi.warn = api.warning;\napi.useNotification = useNotification;\n/** @private test Only function. Not work on production */\nexport const getInstance = cacheKey => __awaiter(void 0, void 0, void 0, function* () {\n return process.env.NODE_ENV === 'test' ? notificationInstance[cacheKey] : null;\n});\nexport default api;","/* eslint-disable import/prefer-default-export, prefer-destructuring */\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { generate } from '@ant-design/colors';\nimport { updateCSS } from '../vc-util/Dom/dynamicCSS';\nimport canUseDom from '../_util/canUseDom';\nimport warning from '../_util/warning';\nconst dynamicStyleMark = `-ant-${Date.now()}-${Math.random()}`;\nexport function getStyle(globalPrefixCls, theme) {\n const variables = {};\n const formatColor = (color, updater) => {\n let clone = color.clone();\n clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n return clone.toRgbString();\n };\n const fillColor = (colorVal, type) => {\n const baseColor = new TinyColor(colorVal);\n const colorPalettes = generate(baseColor.toRgbString());\n variables[`${type}-color`] = formatColor(baseColor);\n variables[`${type}-color-disabled`] = colorPalettes[1];\n variables[`${type}-color-hover`] = colorPalettes[4];\n variables[`${type}-color-active`] = colorPalettes[6];\n variables[`${type}-color-outline`] = baseColor.clone().setAlpha(0.2).toRgbString();\n variables[`${type}-color-deprecated-bg`] = colorPalettes[0];\n variables[`${type}-color-deprecated-border`] = colorPalettes[2];\n };\n // ================ Primary Color ================\n if (theme.primaryColor) {\n fillColor(theme.primaryColor, 'primary');\n const primaryColor = new TinyColor(theme.primaryColor);\n const primaryColors = generate(primaryColor.toRgbString());\n // Legacy - We should use semantic naming standard\n primaryColors.forEach((color, index) => {\n variables[`primary-${index + 1}`] = color;\n });\n // Deprecated\n variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, c => c.lighten(35));\n variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, c => c.lighten(20));\n variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, c => c.tint(20));\n variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, c => c.tint(50));\n variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, c => c.setAlpha(c.getAlpha() * 0.12));\n const primaryActiveColor = new TinyColor(primaryColors[0]);\n variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, c => c.setAlpha(c.getAlpha() * 0.3));\n variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, c => c.darken(2));\n }\n // ================ Success Color ================\n if (theme.successColor) {\n fillColor(theme.successColor, 'success');\n }\n // ================ Warning Color ================\n if (theme.warningColor) {\n fillColor(theme.warningColor, 'warning');\n }\n // ================= Error Color =================\n if (theme.errorColor) {\n fillColor(theme.errorColor, 'error');\n }\n // ================= Info Color ==================\n if (theme.infoColor) {\n fillColor(theme.infoColor, 'info');\n }\n // Convert to css variables\n const cssList = Object.keys(variables).map(key => `--${globalPrefixCls}-${key}: ${variables[key]};`);\n return `\n :root {\n ${cssList.join('\\n')}\n }\n `.trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n const style = getStyle(globalPrefixCls, theme);\n if (canUseDom()) {\n updateCSS(style, `${dynamicStyleMark}-dynamic-theme`);\n } else {\n warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.');\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { useStyleRegister } from '../../_util/cssinjs';\nimport { resetIcon } from '../../style';\nimport { useToken } from '../../theme/internal';\nimport { computed } from 'vue';\nconst useStyle = iconPrefixCls => {\n const [theme, token] = useToken();\n // Generate style for icons\n return useStyleRegister(computed(() => ({\n theme: theme.value,\n token: token.value,\n hashId: '',\n path: ['ant-design-icons', iconPrefixCls.value]\n })), () => [{\n [`.${iconPrefixCls.value}`]: _extends(_extends({}, resetIcon()), {\n [`.${iconPrefixCls.value} .${iconPrefixCls.value}-icon`]: {\n display: 'block'\n }\n })\n }]);\n};\nexport default useStyle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { defaultConfig } from '../../theme/internal';\nimport { computed } from 'vue';\nexport default function useTheme(theme, parentTheme) {\n const themeConfig = computed(() => (theme === null || theme === void 0 ? void 0 : theme.value) || {});\n const parentThemeConfig = computed(() => themeConfig.value.inherit === false || !(parentTheme === null || parentTheme === void 0 ? void 0 : parentTheme.value) ? defaultConfig : parentTheme.value);\n const mergedTheme = computed(() => {\n if (!(theme === null || theme === void 0 ? void 0 : theme.value)) {\n return parentTheme === null || parentTheme === void 0 ? void 0 : parentTheme.value;\n }\n // Override\n const mergedComponents = _extends({}, parentThemeConfig.value.components);\n Object.keys(theme.value.components || {}).forEach(componentName => {\n mergedComponents[componentName] = _extends(_extends({}, mergedComponents[componentName]), theme.value.components[componentName]);\n });\n // Base token\n return _extends(_extends(_extends({}, parentThemeConfig.value), themeConfig.value), {\n token: _extends(_extends({}, parentThemeConfig.value.token), themeConfig.value.token),\n components: mergedComponents\n });\n });\n return mergedTheme;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { watch, computed, reactive, defineComponent, watchEffect } from 'vue';\nimport defaultRenderEmpty from './renderEmpty';\nimport LocaleProvider, { ANT_MARK } from '../locale-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport message from '../message';\nimport notification from '../notification';\nimport { registerTheme } from './cssVariables';\nimport defaultLocale from '../locale/en_US';\nimport useStyle from './style';\nimport useTheme from './hooks/useTheme';\nimport defaultSeedToken from '../theme/themes/seed';\nimport { useConfigContextProvider, useConfigContextInject, configProviderProps, useProvideGlobalForm, defaultIconPrefixCls } from './context';\nimport { useProviderSize } from './SizeContext';\nimport { useProviderDisabled } from './DisabledContext';\nimport { createTheme } from '../_util/cssinjs';\nimport { DesignTokenProvider } from '../theme/internal';\nexport const defaultPrefixCls = 'ant';\nexport { defaultIconPrefixCls };\nfunction getGlobalPrefixCls() {\n return globalConfigForApi.prefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n return globalConfigForApi.iconPrefixCls || defaultIconPrefixCls;\n}\nconst globalConfigBySet = reactive({}); // 权重最大\nexport const globalConfigForApi = reactive({});\nexport const configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\nwatchEffect(() => {\n _extends(globalConfigForApi, globalConfigBySet);\n globalConfigForApi.prefixCls = getGlobalPrefixCls();\n globalConfigForApi.iconPrefixCls = getGlobalIconPrefixCls();\n globalConfigForApi.getPrefixCls = (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? `${globalConfigForApi.prefixCls}-${suffixCls}` : globalConfigForApi.prefixCls;\n };\n globalConfigForApi.getRootPrefixCls = () => {\n // If Global prefixCls provided, use this\n if (globalConfigForApi.prefixCls) {\n return globalConfigForApi.prefixCls;\n }\n // Fallback to default prefixCls\n return getGlobalPrefixCls();\n };\n});\nlet stopWatchEffect;\nconst setGlobalConfig = params => {\n if (stopWatchEffect) {\n stopWatchEffect();\n }\n stopWatchEffect = watchEffect(() => {\n _extends(globalConfigBySet, reactive(params));\n _extends(globalConfigForApi, reactive(params));\n });\n if (params.theme) {\n registerTheme(getGlobalPrefixCls(), params.theme);\n }\n};\nexport const globalConfig = () => ({\n getPrefixCls: (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? `${getGlobalPrefixCls()}-${suffixCls}` : getGlobalPrefixCls();\n },\n getIconPrefixCls: getGlobalIconPrefixCls,\n getRootPrefixCls: () => {\n // If Global prefixCls provided, use this\n if (globalConfigForApi.prefixCls) {\n return globalConfigForApi.prefixCls;\n }\n // Fallback to default prefixCls\n return getGlobalPrefixCls();\n }\n});\nconst ConfigProvider = defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'AConfigProvider',\n inheritAttrs: false,\n props: configProviderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const parentContext = useConfigContextInject();\n const getPrefixCls = (suffixCls, customizePrefixCls) => {\n const {\n prefixCls = 'ant'\n } = props;\n if (customizePrefixCls) return customizePrefixCls;\n const mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? `${mergedPrefixCls}-${suffixCls}` : mergedPrefixCls;\n };\n const iconPrefixCls = computed(() => props.iconPrefixCls || parentContext.iconPrefixCls.value || defaultIconPrefixCls);\n const shouldWrapSSR = computed(() => iconPrefixCls.value !== parentContext.iconPrefixCls.value);\n const csp = computed(() => {\n var _a;\n return props.csp || ((_a = parentContext.csp) === null || _a === void 0 ? void 0 : _a.value);\n });\n const wrapSSR = useStyle(iconPrefixCls);\n const mergedTheme = useTheme(computed(() => props.theme), computed(() => {\n var _a;\n return (_a = parentContext.theme) === null || _a === void 0 ? void 0 : _a.value;\n }));\n const renderEmptyComponent = name => {\n const renderEmpty = props.renderEmpty || slots.renderEmpty || parentContext.renderEmpty || defaultRenderEmpty;\n return renderEmpty(name);\n };\n const autoInsertSpaceInButton = computed(() => {\n var _a, _b;\n return (_a = props.autoInsertSpaceInButton) !== null && _a !== void 0 ? _a : (_b = parentContext.autoInsertSpaceInButton) === null || _b === void 0 ? void 0 : _b.value;\n });\n const locale = computed(() => {\n var _a;\n return props.locale || ((_a = parentContext.locale) === null || _a === void 0 ? void 0 : _a.value);\n });\n watch(locale, () => {\n globalConfigBySet.locale = locale.value;\n }, {\n immediate: true\n });\n const direction = computed(() => {\n var _a;\n return props.direction || ((_a = parentContext.direction) === null || _a === void 0 ? void 0 : _a.value);\n });\n const space = computed(() => {\n var _a, _b;\n return (_a = props.space) !== null && _a !== void 0 ? _a : (_b = parentContext.space) === null || _b === void 0 ? void 0 : _b.value;\n });\n const virtual = computed(() => {\n var _a, _b;\n return (_a = props.virtual) !== null && _a !== void 0 ? _a : (_b = parentContext.virtual) === null || _b === void 0 ? void 0 : _b.value;\n });\n const dropdownMatchSelectWidth = computed(() => {\n var _a, _b;\n return (_a = props.dropdownMatchSelectWidth) !== null && _a !== void 0 ? _a : (_b = parentContext.dropdownMatchSelectWidth) === null || _b === void 0 ? void 0 : _b.value;\n });\n const getTargetContainer = computed(() => {\n var _a;\n return props.getTargetContainer !== undefined ? props.getTargetContainer : (_a = parentContext.getTargetContainer) === null || _a === void 0 ? void 0 : _a.value;\n });\n const getPopupContainer = computed(() => {\n var _a;\n return props.getPopupContainer !== undefined ? props.getPopupContainer : (_a = parentContext.getPopupContainer) === null || _a === void 0 ? void 0 : _a.value;\n });\n const pageHeader = computed(() => {\n var _a;\n return props.pageHeader !== undefined ? props.pageHeader : (_a = parentContext.pageHeader) === null || _a === void 0 ? void 0 : _a.value;\n });\n const input = computed(() => {\n var _a;\n return props.input !== undefined ? props.input : (_a = parentContext.input) === null || _a === void 0 ? void 0 : _a.value;\n });\n const pagination = computed(() => {\n var _a;\n return props.pagination !== undefined ? props.pagination : (_a = parentContext.pagination) === null || _a === void 0 ? void 0 : _a.value;\n });\n const form = computed(() => {\n var _a;\n return props.form !== undefined ? props.form : (_a = parentContext.form) === null || _a === void 0 ? void 0 : _a.value;\n });\n const select = computed(() => {\n var _a;\n return props.select !== undefined ? props.select : (_a = parentContext.select) === null || _a === void 0 ? void 0 : _a.value;\n });\n const componentSize = computed(() => props.componentSize);\n const componentDisabled = computed(() => props.componentDisabled);\n const wave = computed(() => {\n var _a, _b;\n return (_a = props.wave) !== null && _a !== void 0 ? _a : (_b = parentContext.wave) === null || _b === void 0 ? void 0 : _b.value;\n });\n const configProvider = {\n csp,\n autoInsertSpaceInButton,\n locale,\n direction,\n space,\n virtual,\n dropdownMatchSelectWidth,\n getPrefixCls,\n iconPrefixCls,\n theme: computed(() => {\n var _a, _b;\n return (_a = mergedTheme.value) !== null && _a !== void 0 ? _a : (_b = parentContext.theme) === null || _b === void 0 ? void 0 : _b.value;\n }),\n renderEmpty: renderEmptyComponent,\n getTargetContainer,\n getPopupContainer,\n pageHeader,\n input,\n pagination,\n form,\n select,\n componentSize,\n componentDisabled,\n transformCellText: computed(() => props.transformCellText),\n wave\n };\n // ================================ Dynamic theme ================================\n const memoTheme = computed(() => {\n const _a = mergedTheme.value || {},\n {\n algorithm,\n token\n } = _a,\n rest = __rest(_a, [\"algorithm\", \"token\"]);\n const themeObj = algorithm && (!Array.isArray(algorithm) || algorithm.length > 0) ? createTheme(algorithm) : undefined;\n return _extends(_extends({}, rest), {\n theme: themeObj,\n token: _extends(_extends({}, defaultSeedToken), token)\n });\n });\n const validateMessagesRef = computed(() => {\n var _a, _b;\n // Additional Form provider\n let validateMessages = {};\n if (locale.value) {\n validateMessages = ((_a = locale.value.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || ((_b = defaultLocale.Form) === null || _b === void 0 ? void 0 : _b.defaultValidateMessages) || {};\n }\n if (props.form && props.form.validateMessages) {\n validateMessages = _extends(_extends({}, validateMessages), props.form.validateMessages);\n }\n return validateMessages;\n });\n useConfigContextProvider(configProvider);\n useProvideGlobalForm({\n validateMessages: validateMessagesRef\n });\n useProviderSize(componentSize);\n useProviderDisabled(componentDisabled);\n const renderProvider = legacyLocale => {\n var _a, _b;\n let childNode = shouldWrapSSR.value ? wrapSSR((_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)) : (_b = slots.default) === null || _b === void 0 ? void 0 : _b.call(slots);\n if (props.theme) {\n const _childNode = function () {\n return childNode;\n }();\n childNode = _createVNode(DesignTokenProvider, {\n \"value\": memoTheme.value\n }, {\n default: () => [_childNode]\n });\n }\n return _createVNode(LocaleProvider, {\n \"locale\": locale.value || legacyLocale,\n \"ANT_MARK__\": ANT_MARK\n }, {\n default: () => [childNode]\n });\n };\n watchEffect(() => {\n if (direction.value) {\n message.config({\n rtl: direction.value === 'rtl'\n });\n notification.config({\n rtl: direction.value === 'rtl'\n });\n }\n });\n return () => _createVNode(LocaleReceiver, {\n \"children\": (_, __, legacyLocale) => renderProvider(legacyLocale)\n }, null);\n }\n});\nConfigProvider.config = setGlobalConfig;\nConfigProvider.install = function (app) {\n app.component(ConfigProvider.name, ConfigProvider);\n};\nexport default ConfigProvider;","import { useRequest } from 'liyu-pc-base/init-plugin';\n\nexport async function queryRoleAndPerson(params?: { [key: string]: any }): Promise<RoleResponse> {\n return useRequest().post('/permission/query_role_and_person_list', params);\n}\n\nexport async function removeRole(params: Record<string, any>) {\n return useRequest().post('/permission/delete_role', params);\n}\nexport async function recoverRole(params: Record<string, any>) {\n return useRequest().post('/permission/recover_role', params);\n}\nexport async function query_role_and_person_by_admin_list(params?: {\n [key: string]: any;\n}): Promise<RoleResponse> {\n return useRequest().post('/permission/query_role_and_person_by_admin_list', params);\n}\n\nexport async function addRole(params: Record<string, any>) {\n return useRequest().post('/permission/create_role', params);\n}\n\nexport async function updateRole(params: Record<string, any>) {\n return useRequest().post('/permission/update_role', params);\n}\nexport async function copy_role_info(params: Record<string, any>) {\n return useRequest().post('/permission/copy_role_info', params);\n}\nexport async function import_role(params: Record<string, any>) {\n return useRequest().post('/permission/import_role', params);\n}\nexport async function import_role_by_super(params: Record<string, any>) {\n return useRequest().post('/permission/import_role_by_super', params);\n}\nexport async function export_role_by_super(params: Record<string, any>) {\n return useRequest().post('/permission/export_role_by_super', params);\n}\ninterface RuleItem {\n key: string | number;\n callNo: number;\n avatar: string;\n desc: string;\n disabled: false;\n href: string;\n name: string;\n owner: string;\n progress: number;\n status: number;\n updatedAt: string;\n createdAt: string;\n}\n\ninterface RoleResponse {\n current: number;\n data: RuleItem[];\n pageSize: string;\n success: boolean;\n total: number;\n}\n","import { message } from 'ant-design-vue/es';\nimport { reactive, ref } from 'vue';\n\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport {\n copy_role_info,\n import_role_by_super,\n updateRole,\n} from 'liyu-pc-base/api/permission/auth-manage';\nimport { useEnv } from 'liyu-pc-base/init-plugin';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\n\nconst has_project = () => {\n const env = useEnv();\n return env.VITE_APP_HAS_PROJECT;\n};\nexport const btn_list: BtnListConfig = [\n {\n name: '修改',\n type: 'dropdown',\n clazz: 'primary',\n cb: ({ record }) => {\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n const editModal = reactive({\n visible: true,\n title: '修改',\n loading: false,\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'input',\n name: 'flag',\n label: '角色标识',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色标识',\n },\n {\n type: 'textarea',\n name: 'desc',\n label: '角色描述',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n placeholder: '请填写角色描述',\n },\n ],\n rules: {},\n model: {\n org_id: current_org.id,\n aim_org_id: record.org_id,\n role_id: record.id,\n name: record.name,\n flag: record.flag,\n desc: record.desc,\n },\n },\n options: {},\n ok: (payload: any) => {\n return new Promise(resolve => {\n editModal.loading = true;\n updateRole({\n ...payload,\n })\n .then((res: any) => {\n message.success('修改成功');\n Object.assign(record, res);\n event_obj().emit('refresh');\n resolve(null);\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n },\n });\n modalBox(editModal);\n },\n },\n {\n name: '修改模块',\n type: 'dropdown',\n is_show: ({ record }) => {\n return record.is_active && has_project();\n },\n model_kind: 'custom_component',\n model_config: {\n component: 'MenuProjectRoleModal',\n title: '修改模块({{record.name}})',\n },\n },\n {\n name: '修改权限',\n type: 'dropdown',\n is_show: ({ record }) => {\n return record.is_active;\n },\n cb: ({ record }) => {\n const editModal = reactive({\n visible: true,\n role_id: record.id,\n aim_org_id: record.org_id,\n component: 'AuthEditModal',\n ok: (data: any) => {},\n });\n modalBox(editModal);\n },\n },\n {\n name: '修改用户',\n type: 'dropdown',\n is_show: ({ record }) => {\n return record.is_active;\n },\n cb: ({ record, current_org }) => {\n const editModal = reactive({\n visible: true,\n title: '修改用户',\n org_id: record.org_id,\n person_list: record.person_list,\n role_id: record.id,\n component: 'PersonModal',\n ok: (data: any) => {\n return new Promise(function (resolve) {\n if (data && data.person_ids && data.person_ids.length > 0) {\n data.person_ids = data.person_ids.join(',');\n } else {\n data.person_ids = '';\n }\n updateRole({ org_id: current_org.id, aim_org_id: editModal.org_id, ...data }).then(\n () => {\n message.success('修改用户成功');\n event_obj().emit('refresh');\n resolve(true);\n },\n );\n editModal.visible = false;\n });\n },\n });\n modalBox(editModal);\n },\n },\n {\n name: '复制角色',\n type: 'dropdown',\n is_show: ({ record }) => {\n return record.is_active;\n },\n cb: ({ record, current_org }) => {\n const editModal = reactive({\n open: true,\n title: '复制角色',\n form: {\n settings: {\n name: '表单名称',\n labelAlign: 'right',\n layout: 'horizontal',\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'input',\n name: 'flag',\n label: '角色标识',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色标识',\n },\n {\n type: 'textarea',\n name: 'desc',\n label: '角色描述',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n placeholder: '请填写角色描述',\n },\n ],\n rules: {\n name: [{ required: true, message: '角色名称必须填写' }],\n },\n model: reactive({\n org_id: current_org.id,\n name: '',\n desc: '',\n flag: '',\n }),\n },\n options: {},\n ok: data => {\n copy_role_info({\n ...data,\n org_id: current_org.id,\n role_id: record.id,\n }).then(() => {\n message.success('复制角色成功');\n event_obj().emit('refresh');\n });\n },\n });\n modalBox(editModal);\n },\n },\n];\nexport const config = {\n creatCol: [],\n updateCol: [],\n};\nexport const head_btn_list: HeadBtnListConfig = [\n {\n name: '导出权限',\n clazz: 'primary',\n cb: ({ current_org }) => {\n const editModal = reactive({\n visible: true,\n loading: false,\n title: '导出权限',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '导出组织',\n disabled: false,\n datasourceType: 'remote',\n show_search: true,\n mode: 'default',\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n modalType: 'liyu_organization-query_org_for_login_list',\n },\n ],\n rules: reactive({}),\n model: reactive({\n org_id: current_org?.id,\n aim_org_id: current_org?.id,\n }),\n watch: {},\n },\n options: {},\n ok: (data: any) => {\n const p = new Promise(function (resolve) {\n window.open(\n `/permission/export_role_by_super?org_id=${current_org?.id}&aim_org_id=${data?.aim_org_id}`,\n '_blank',\n );\n resolve(null);\n });\n return p;\n },\n });\n modalBox(editModal);\n },\n },\n {\n name: '导入权限',\n clazz: 'primary',\n cb: ({ current_org }) => {\n const editModal = reactive({\n visible: true,\n loading: false,\n title: '导入权限',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '导入组织',\n disabled: false,\n datasourceType: 'remote',\n show_search: true,\n mode: 'default',\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n modalType: 'liyu_organization-query_org_for_login_list',\n },\n {\n type: 'textarea',\n name: 'role_json',\n label: '角色JSON',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '角色JSON',\n },\n ],\n rules: reactive({}),\n model: reactive({\n org_id: current_org?.id,\n aim_org_id: current_org?.id,\n }),\n watch: {},\n },\n options: {},\n ok: (data: any) => {\n const p = new Promise(function (resolve) {\n import_role_by_super(data).then(() => {\n editModal.loading = true;\n resolve(null);\n message.success('导入权限成功');\n });\n });\n return p;\n },\n });\n modalBox(editModal);\n },\n },\n];\n","import type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\nexport const btn_list: BtnListConfig = [];\nexport const config = {\n creatCol: [],\n updateCol: [],\n};\n\nexport const head_btn_list: HeadBtnListConfig = [];\n","import type { TableColumn } from 'liyu-pc-base/typing';\nimport type { Record, SearchConfig } from 'liyu-pc-base/components/remotePages/typing';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\nimport { btn_list, config, head_btn_list } from './permission-role-config';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport { useEnv } from 'liyu-pc-base/init-plugin';\nimport { reactive } from 'vue';\n\nexport default () => {\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n const env = useEnv();\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '目标组织',\n disabled: false,\n placeholder: '请选择目标组织',\n datasourceType: 'remote',\n mode: 'default',\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n modalType: 'sys-query_org_for_login_list',\n },\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'radio',\n name: 'is_active',\n label: '状态',\n mode: 'default',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择状态',\n datasource: 'is_active',\n },\n ],\n rules: {},\n model: reactive({\n org_id: current_org.id,\n aim_org_id: current_org.id,\n is_active: true,\n get_menu: true,\n name: '',\n }),\n options: {\n is_active: [\n { name: '全部', value: '' },\n { name: '正常', value: true },\n { name: '作废', value: false },\n ],\n },\n default_column_field: ['parent_id'],\n };\n\n const edit_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'input',\n name: 'flag',\n label: '角色标识',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色标识',\n },\n {\n type: 'textarea',\n name: 'desc',\n label: '角色描述',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n placeholder: '请填写角色描述',\n },\n ],\n rules: {\n name: [{ required: true, message: '角色名称必须填写' }],\n },\n model: {\n org_id: current_org.id,\n aim_org_id: current_org.id,\n id: null,\n name: '',\n desc: '',\n },\n options: {},\n };\n\n const update_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'input',\n name: 'flag',\n label: '角色标识',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色标识',\n },\n {\n type: 'textarea',\n name: 'desc',\n label: '角色描述',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n placeholder: '请填写角色描述',\n },\n ],\n rules: {},\n model: {\n org_id: current_org.id,\n aim_org_id: current_org.id,\n id: null,\n name: '',\n desc: '',\n },\n options: {},\n };\n\n const titleList = {\n title: '权限管理',\n addModalTitle: '新建角色',\n updateTitle: '修改',\n is_create: 'permission/create_role', // userStore.CHECK_AUTH(CREATE_ROLE), // 是否有【新建】按钮\n is_update: 'permission/update_role', // userStore.CHECK_AUTH(UPDATE_ROLE), // 是否有【修改】按钮\n is_remove: 'permission/delete_role', // userStore.CHECK_AUTH(DELETE_ROLE), // 是否有【删除】按钮\n is_recover: 'permission/recover_role', // userStore.CHECK_AUTH(RECOVER_ROLE), // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n role_id: 'id',\n },\n delete: {\n role_id: 'id',\n },\n recover: {\n role_id: 'id',\n },\n updateData: {\n org_id: 'org_id',\n role_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n width: 50,\n dataIndex: 'index',\n checked: true,\n fixed: 'left',\n },\n {\n title: 'ID',\n width: 150,\n dataIndex: 'id',\n checked: false,\n fixed: 'left',\n },\n {\n title: '名称',\n dataIndex: 'name',\n checked: true,\n fixed: 'left',\n },\n {\n title: '描述',\n checked: true,\n dataIndex: 'desc',\n },\n {\n title: '角色标识',\n checked: true,\n dataIndex: 'flag',\n },\n {\n title: '用户数量',\n dataIndex: 'person__count',\n checked: true,\n width: 100,\n },\n {\n title: '是否可用',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '全部', value: '' },\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n {\n title: '操作',\n checked: true,\n width: 50,\n dataIndex: 'action',\n cellComponent: 'action',\n },\n ];\n if (env.VITE_APP_HAS_PROJECT) {\n baseColumns.splice(5, 0, {\n title: '模块列表',\n dataIndex: 'menu_project__name',\n checked: true,\n cellComponent: 'list',\n });\n }\n return {\n searchConfig: search_config,\n formModalConfig: edit_model_config,\n updateFormModalConfig: update_model_config,\n queryData: '/permission/query_role_and_person_list',\n addData: '/permission/create_role',\n updateData: '/permission/update_role',\n removeData: '/permission/delete_role',\n recoverData: '/permission/recover_role',\n baseColumns,\n titleList,\n api_fields,\n btn_list,\n head_btn_list,\n event_obj: event_obj(),\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n queryConditionGroupData: null,\n isView: false,\n };\n};\n","import { addPerson, updatePerson } from 'liyu-pc-base/api/permission/user-manage';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport { reactive } from 'vue';\nimport { message } from 'ant-design-vue';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\nexport const btn_list: BtnListConfig = [\n {\n name: '修改',\n type: 'dropdown',\n clazz: 'primary',\n cb: ({ record }) => {\n const editModal = reactive({\n visible: true,\n title: '修改',\n loading: false,\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: [],\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '隶属组织',\n disabled: true,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请选择隶属组织',\n datasourceType: 'remote',\n mode: 'default',\n default: true,\n modalType: 'select-org-id',\n },\n {\n type: 'input',\n name: 'username',\n label: '手机号',\n disabled: false,\n allowClear: true,\n inputType: 'number',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填手机号',\n },\n {\n type: 'input',\n name: 'realname',\n label: '姓名',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'select',\n name: 'manage_type',\n label: '用户类型',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'remoteselect',\n name: 'role_ids',\n label: '角色',\n disabled: false,\n placeholder: '请选择角色',\n datasourceType: 'remote',\n mode: 'multiple',\n allowClear: true,\n modalType: 'liyu_permission-role',\n },\n ],\n rules: {},\n model: reactive({\n aim_org_id: record.org_id,\n person_id: record.id,\n username: record.user__username,\n realname: record.realname,\n title: record.title,\n manage_type: record.manage_type,\n email: record.email,\n role_ids: record.role_list?.map((item: any) => item.id),\n // group_ids: group_ids,\n }),\n },\n options: {\n manage_type: [\n { label: '普通用户', value: 0 },\n { label: '超级管理员', value: 2 },\n ],\n },\n ok: (payload: any) => {\n return new Promise(resolve => {\n editModal.loading = true;\n updatePerson({\n ...payload,\n })\n .then((res: any) => {\n message.success('修改成功');\n Object.assign(record, res);\n event_obj().emit('refresh');\n resolve(null);\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n },\n });\n modalBox(editModal);\n },\n },\n];\nexport const config = {\n creatCol: [],\n updateCol: [],\n};\n\nexport const head_btn_list: HeadBtnListConfig = [\n {\n name: '新建用户',\n type: 'dropdown',\n is_show: true,\n clazz: 'primary',\n cb: ({ searchModel }) => {\n const editModal = reactive({\n visible: true,\n title: '新建用户',\n loading: false,\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: [],\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '隶属组织',\n disabled: true,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请选择隶属组织',\n datasourceType: 'remote',\n mode: 'default',\n default: true,\n modalType: 'select-org-id',\n },\n {\n type: 'input',\n name: 'username',\n label: '手机号',\n disabled: false,\n allowClear: true,\n inputType: 'number',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填手机号',\n },\n {\n type: 'input',\n name: 'realname',\n label: '姓名',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'select',\n name: 'manage_type',\n label: '用户类型',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'remoteselect',\n name: 'role_ids',\n label: '角色',\n disabled: false,\n placeholder: '请选择角色',\n datasourceType: 'remote',\n mode: 'multiple',\n allowClear: true,\n modalType: 'liyu_permission-role',\n },\n ],\n rules: {},\n model: reactive({\n aim_org_id: searchModel.aim_org_id,\n person_id: null,\n username: null,\n realname: null,\n manage_type: 0,\n role_ids: [],\n }),\n },\n options: {\n manage_type: [\n { label: '普通用户', value: 0 },\n { label: '超级管理员', value: 2 },\n ],\n },\n ok: (payload: any) => {\n return new Promise(resolve => {\n editModal.loading = true;\n addPerson({\n ...payload,\n })\n .then((res: any) => {\n message.success('修改成功');\n event_obj().emit('refresh');\n resolve(null);\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n },\n });\n modalBox(editModal);\n },\n },\n];\n","import { TableColumn } from 'liyu-pc-base/typing';\nimport { Record, SearchConfig } from 'liyu-pc-base/components/remotePages/typing';\nimport { btn_list, config, head_btn_list } from './permission-user-config';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport { reactive } from 'vue';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '目标组织',\n disabled: false,\n placeholder: '请选择目标组织',\n datasourceType: 'remote',\n mode: 'default',\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n modalType: 'sys-query_org_for_login_list',\n },\n {\n type: 'input',\n name: 'name',\n label: '名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写用户名称',\n },\n ],\n rules: {},\n model: reactive({\n org_id: current_org.id,\n aim_org_id: current_org.id,\n is_active: true,\n name: '',\n get_role: true,\n }),\n options: {},\n };\n\n const edit_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '隶属组织',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请选择隶属组织',\n datasourceType: 'remote',\n mode: 'default',\n default: true,\n modalType: 'select-org-id',\n },\n {\n type: 'input',\n name: 'username',\n label: '手机号',\n disabled: false,\n allowClear: true,\n inputType: 'number',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填手机号',\n },\n {\n type: 'input',\n name: 'realname',\n label: '姓名',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'select',\n name: 'manage_type',\n label: '用户类型',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'remoteselect',\n name: 'role_ids',\n label: '角色',\n disabled: false,\n placeholder: '请选择角色',\n datasourceType: 'remote',\n mode: 'multiple',\n allowClear: true,\n modalType: 'liyu_permission-role',\n },\n ],\n rules: {\n username: [{ required: true, pattern: /^1[123456789]\\d{9}$/, message: '请输入正确手机号' }],\n realname: [{ required: true, message: '请输入姓名' }],\n },\n model: {\n org_id: current_org?.id,\n id: null,\n username: '',\n realname: '',\n aim_org_id: current_org?.id,\n },\n options: {\n manage_type: [\n { label: '普通用户', value: 0 },\n { label: '超级管理员', value: 2 },\n ],\n },\n };\n\n const update_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: config.creatCol,\n },\n fields: [],\n rules: {},\n model: reactive({\n org_id: current_org.id,\n id: null,\n username: '',\n realname: '',\n title: '',\n aim_org_id: '',\n email: '',\n }),\n options: {},\n };\n\n const titleList = {\n title: '用户管理',\n addModalTitle: '新建用户',\n updateTitle: '修改',\n is_create: false, // 是否有【新建】按钮\n is_update: false, // 是否有【修改】按钮\n is_remove: true, // 是否有【删除】按钮\n is_recover: false, // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n aim_org_id: 'org_id',\n person_id: 'id',\n },\n delete: {\n person_id: 'id',\n },\n recover: {\n person_id: 'id',\n },\n updateData: {\n org_id: 'org_id',\n person_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n width: 50,\n dataIndex: 'index',\n checked: true,\n fixed: 'left',\n },\n {\n title: '名称',\n width: 150,\n dataIndex: 'realname',\n checked: true,\n fixed: 'left',\n },\n {\n title: '用户类型',\n width: 120,\n dataIndex: 'manage_type',\n checked: true,\n cellComponent: 'tag',\n contentMap: {\n 0: '普通用户',\n 2: '超级管理员',\n },\n colorMap: {\n 0: '',\n 2: 'cyan',\n },\n },\n {\n title: '手机号',\n width: 130,\n checked: true,\n dataIndex: 'user__username',\n },\n {\n title: '角色',\n minWidth: 200,\n checked: true,\n dataIndex: 'role_list',\n cellComponent: 'list',\n },\n // {\n // title: '电子邮箱',\n // width: 150,\n // dataIndex: 'email',\n // },\n // {\n // title: '微信',\n // width: 80,\n // dataIndex: 'user__lyuserinfo__wechat_username',\n // cellComponent: 'tag',\n // color: (record: any, text: any) => {\n // return text ? 'green' : 'red';\n // },\n // content: (record: any, text: any) => {\n // return text ? '已绑定' : '未绑定';\n // },\n // },\n // {\n // title: '隶属部门',\n // minWidth: 200,\n // dataIndex: 'group_list',\n // cellComponent: 'list',\n // },\n // {\n // title: '职务',\n // width: 150,\n // dataIndex: 'title',\n // },\n {\n title: '是否可用',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '全部', value: '' },\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n {\n title: '操作',\n width: 50,\n checked: true,\n dataIndex: 'action',\n cellComponent: 'action',\n fixed: 'right',\n },\n ];\n\n return {\n searchConfig: search_config,\n formModalConfig: edit_model_config,\n updateFormModalConfig: update_model_config,\n queryData: '/sys/query_person_detail_list',\n addData: '/sys/create_user',\n updateData: '/sys/update_user',\n removeData: '/sys/delete_user',\n recoverData: '/sys/recover_user',\n baseColumns: baseColumns,\n titleList: titleList,\n api_fields: api_fields,\n btn_list: btn_list,\n head_btn_list: head_btn_list,\n event_obj: event_obj(),\n base_search_condition_config_list: [],\n default_search_condition_config_list: [[]],\n condition_group_config_list: [],\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n queryConditionGroupData: null,\n isView: false,\n };\n};\n","import {\n queryRole,\n addRole,\n updateRole,\n removeRole,\n recoverRole,\n} from 'liyu-pc-base/api/permission/role-manage';\nimport type { TableColumn } from 'liyu-pc-base/typing';\nimport type { SearchConfig, Record } from 'liyu-pc-base/components/remotePages/typing';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\nimport { btn_list, head_btn_list, config } from './permission-role-manage-config';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport { reactive } from 'vue';\n\nexport default () => {\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '目标组织',\n disabled: false,\n placeholder: '请选择目标组织',\n datasourceType: 'remote',\n mode: 'default',\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n modalType: 'sys-query_org_for_login_list',\n },\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'radio',\n name: 'is_active',\n label: '状态',\n mode: 'default',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择状态',\n datasource: 'is_active',\n },\n ],\n rules: {},\n model: reactive({\n org_id: current_org.id,\n aim_org_id: current_org.id,\n is_active: true,\n name: '',\n }),\n };\n const search_options = {\n is_active: [\n { name: '全部', value: '' },\n { name: '正常', value: true },\n { name: '作废', value: false },\n ],\n };\n\n const edit_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'input',\n name: 'flag',\n label: '角色标识',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色标识',\n },\n {\n type: 'textarea',\n name: 'desc',\n label: '角色描述',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n placeholder: '请填写角色描述',\n },\n ],\n rules: {\n name: [{ required: true, message: '角色名称必须填写' }],\n },\n model: {\n org_id: current_org.id,\n aim_org_id: current_org.id,\n id: null,\n name: '',\n desc: '',\n },\n };\n const edit_model_config_options = {};\n\n const update_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'input',\n name: 'flag',\n label: '角色标识',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色标识',\n },\n {\n type: 'textarea',\n name: 'desc',\n label: '角色描述',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n placeholder: '请填写角色描述',\n },\n ],\n rules: {},\n model: {\n org_id: current_org.id,\n aim_org_id: current_org.id,\n id: null,\n name: '',\n desc: '',\n },\n };\n const update_model_config_options = {};\n\n const titleList = {\n title: '角色管理',\n addModalTitle: '新建角色',\n updateTitle: '修改',\n is_create: true, // 是否有【新建】按钮\n is_update: true, // 是否有【修改】按钮\n is_remove: true, // 是否有【删除】按钮\n is_recover: true, // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n role_id: 'id',\n },\n delete: {\n role_id: 'id',\n },\n recover: {\n role_id: 'id',\n },\n updateData: {\n org_id: 'org_id',\n role_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n width: 50,\n dataIndex: 'index',\n checked: true,\n fixed: 'left',\n },\n {\n title: '名称',\n width: 150,\n dataIndex: 'name',\n checked: true,\n fixed: 'left',\n },\n {\n title: '描述',\n dataIndex: 'desc',\n checked: true,\n },\n {\n title: '角色标识',\n width: 180,\n dataIndex: 'flag',\n checked: true,\n },\n {\n title: '是否可用',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '全部', value: '' },\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n {\n title: '操作',\n width: 50,\n dataIndex: 'action',\n checked: true,\n cellComponent: 'action',\n },\n ];\n\n return {\n searchConfig: search_config,\n searchConfigOptions: search_options,\n formModalConfig: edit_model_config,\n formModalConfigOptions: edit_model_config_options,\n updateFormModalConfig: update_model_config,\n updateFormModalConfigOptions: update_model_config_options,\n queryData: queryRole,\n addData: addRole,\n updateData: updateRole,\n removeData: removeRole,\n recoverData: recoverRole,\n baseColumns: baseColumns,\n titleList: titleList,\n api_fields: api_fields,\n btn_list: btn_list,\n head_btn_list: head_btn_list,\n event_obj: event_obj(),\n base_search_condition_config_list: [],\n default_search_condition_config_list: [[]],\n condition_group_config_list: [],\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n queryConditionGroupData: null,\n isView: false,\n };\n};\n","/*\n * JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\n\n/* global define */\n\n/* eslint-disable strict */\n\n;(function ($) {\n 'use strict'\n\n /**\n * Add integers, wrapping at 2^32.\n * This uses 16-bit operations internally to work around bugs in interpreters.\n *\n * @param {number} x First integer\n * @param {number} y Second integer\n * @returns {number} Sum\n */\n function safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff)\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16)\n return (msw << 16) | (lsw & 0xffff)\n }\n\n /**\n * Bitwise rotate a 32-bit number to the left.\n *\n * @param {number} num 32-bit number\n * @param {number} cnt Rotation count\n * @returns {number} Rotated number\n */\n function bitRotateLeft(num, cnt) {\n return (num << cnt) | (num >>> (32 - cnt))\n }\n\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} q q\n * @param {number} a a\n * @param {number} b b\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5ff(a, b, c, d, x, s, t) {\n return md5cmn((b & c) | (~b & d), a, b, x, s, t)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5gg(a, b, c, d, x, s, t) {\n return md5cmn((b & d) | (c & ~d), a, b, x, s, t)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t)\n }\n\n /**\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n *\n * @param {Array} x Array of little-endian words\n * @param {number} len Bit length\n * @returns {Array<number>} MD5 Array\n */\n function binlMD5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32\n x[(((len + 64) >>> 9) << 4) + 14] = len\n\n var i\n var olda\n var oldb\n var oldc\n var oldd\n var a = 1732584193\n var b = -271733879\n var c = -1732584194\n var d = 271733878\n\n for (i = 0; i < x.length; i += 16) {\n olda = a\n oldb = b\n oldc = c\n oldd = d\n\n a = md5ff(a, b, c, d, x[i], 7, -680876936)\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586)\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819)\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330)\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897)\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426)\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341)\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983)\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416)\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417)\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063)\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162)\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682)\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101)\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290)\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329)\n\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510)\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632)\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713)\n b = md5gg(b, c, d, a, x[i], 20, -373897302)\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691)\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083)\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335)\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848)\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438)\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690)\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961)\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501)\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467)\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784)\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473)\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734)\n\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558)\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463)\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562)\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556)\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060)\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353)\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632)\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640)\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174)\n d = md5hh(d, a, b, c, x[i], 11, -358537222)\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979)\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189)\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487)\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835)\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520)\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651)\n\n a = md5ii(a, b, c, d, x[i], 6, -198630844)\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415)\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905)\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055)\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571)\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606)\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523)\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799)\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359)\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744)\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380)\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649)\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070)\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379)\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259)\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551)\n\n a = safeAdd(a, olda)\n b = safeAdd(b, oldb)\n c = safeAdd(c, oldc)\n d = safeAdd(d, oldd)\n }\n return [a, b, c, d]\n }\n\n /**\n * Convert an array of little-endian words to a string\n *\n * @param {Array<number>} input MD5 Array\n * @returns {string} MD5 string\n */\n function binl2rstr(input) {\n var i\n var output = ''\n var length32 = input.length * 32\n for (i = 0; i < length32; i += 8) {\n output += String.fromCharCode((input[i >> 5] >>> i % 32) & 0xff)\n }\n return output\n }\n\n /**\n * Convert a raw string to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n *\n * @param {string} input Raw input string\n * @returns {Array<number>} Array of little-endian words\n */\n function rstr2binl(input) {\n var i\n var output = []\n output[(input.length >> 2) - 1] = undefined\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0\n }\n var length8 = input.length * 8\n for (i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << i % 32\n }\n return output\n }\n\n /**\n * Calculate the MD5 of a raw string\n *\n * @param {string} s Input string\n * @returns {string} Raw MD5 string\n */\n function rstrMD5(s) {\n return binl2rstr(binlMD5(rstr2binl(s), s.length * 8))\n }\n\n /**\n * Calculates the HMAC-MD5 of a key and some data (raw strings)\n *\n * @param {string} key HMAC key\n * @param {string} data Raw input string\n * @returns {string} Raw MD5 string\n */\n function rstrHMACMD5(key, data) {\n var i\n var bkey = rstr2binl(key)\n var ipad = []\n var opad = []\n var hash\n ipad[15] = opad[15] = undefined\n if (bkey.length > 16) {\n bkey = binlMD5(bkey, key.length * 8)\n }\n for (i = 0; i < 16; i += 1) {\n ipad[i] = bkey[i] ^ 0x36363636\n opad[i] = bkey[i] ^ 0x5c5c5c5c\n }\n hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8)\n return binl2rstr(binlMD5(opad.concat(hash), 512 + 128))\n }\n\n /**\n * Convert a raw string to a hex string\n *\n * @param {string} input Raw input string\n * @returns {string} Hex encoded string\n */\n function rstr2hex(input) {\n var hexTab = '0123456789abcdef'\n var output = ''\n var x\n var i\n for (i = 0; i < input.length; i += 1) {\n x = input.charCodeAt(i)\n output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f)\n }\n return output\n }\n\n /**\n * Encode a string as UTF-8\n *\n * @param {string} input Input string\n * @returns {string} UTF8 string\n */\n function str2rstrUTF8(input) {\n return unescape(encodeURIComponent(input))\n }\n\n /**\n * Encodes input string as raw MD5 string\n *\n * @param {string} s Input string\n * @returns {string} Raw MD5 string\n */\n function rawMD5(s) {\n return rstrMD5(str2rstrUTF8(s))\n }\n /**\n * Encodes input string as Hex encoded string\n *\n * @param {string} s Input string\n * @returns {string} Hex encoded string\n */\n function hexMD5(s) {\n return rstr2hex(rawMD5(s))\n }\n /**\n * Calculates the raw HMAC-MD5 for the given key and data\n *\n * @param {string} k HMAC key\n * @param {string} d Input string\n * @returns {string} Raw MD5 string\n */\n function rawHMACMD5(k, d) {\n return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d))\n }\n /**\n * Calculates the Hex encoded HMAC-MD5 for the given key and data\n *\n * @param {string} k HMAC key\n * @param {string} d Input string\n * @returns {string} Raw MD5 string\n */\n function hexHMACMD5(k, d) {\n return rstr2hex(rawHMACMD5(k, d))\n }\n\n /**\n * Calculates MD5 value for a given string.\n * If a key is provided, calculates the HMAC-MD5 value.\n * Returns a Hex encoded string unless the raw argument is given.\n *\n * @param {string} string Input string\n * @param {string} [key] HMAC key\n * @param {boolean} [raw] Raw output switch\n * @returns {string} MD5 output\n */\n function md5(string, key, raw) {\n if (!key) {\n if (!raw) {\n return hexMD5(string)\n }\n return rawMD5(string)\n }\n if (!raw) {\n return hexHMACMD5(key, string)\n }\n return rawHMACMD5(key, string)\n }\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return md5\n })\n } else if (typeof module === 'object' && module.exports) {\n module.exports = md5\n } else {\n $.md5 = md5\n }\n})(this)\n","import { useEnv } from 'liyu-pc-base/init-plugin';\nimport cloneDeep from 'lodash-es/cloneDeep';\nimport md5 from 'blueimp-md5';\nimport type { PageConfig } from 'liyu-pc-base/components/remotePages/typing';\n\nexport function generateMD5(str: string): string {\n return md5(str);\n}\n\nconst getI18nId = (modalType: string): string => {\n // 取md5末尾3位\n return generateMD5(modalType).slice(-3);\n};\n\nconst modifyBaseColumns = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => Promise<string>,\n) => {\n if (!data || !Array.isArray(data)) {\n return data;\n }\n data.forEach((item: any) => {\n if (item.title) {\n item.title = t(`${i18n_id}_${item.title}`, {\n defaultValue: item.title,\n });\n }\n if (item.contentMap) {\n Object.keys(item.contentMap).forEach((key: string) => {\n item.contentMap[key] = t(\n `${i18n_id}_${get_field_i18n_id(item.dataIndex)}_${item.contentMap[key]}`,\n {\n defaultValue: item.contentMap[key],\n },\n );\n });\n }\n if (item.filters) {\n item.filters.forEach((filter: any) => {\n if (filter.text) {\n filter.text = t(`${i18n_id}_${get_field_i18n_id(item.dataIndex)}_${filter.text}`, {\n defaultValue: filter.text,\n });\n }\n });\n }\n });\n return data;\n};\n\nconst modifySearchConfig = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => string,\n) => {\n if (data?.fields && Array.isArray(data.fields)) {\n data.fields.forEach((item: any) => {\n if (item.label) {\n item.label = t(`${i18n_id}_${item.label}`, {\n defaultValue: item.label,\n });\n }\n if (Array.isArray(item.placeholder)) {\n item.placeholder = item.placeholder.map((placeholder: string) =>\n t(`${i18n_id}_${placeholder}`, {\n defaultValue: placeholder,\n }),\n );\n } else if (item.placeholder) {\n item.placeholder = t(`${i18n_id}_${item.placeholder}`, {\n defaultValue: item.placeholder,\n });\n }\n });\n }\n if (data?.options) {\n for (const key in data.options) {\n data.options[key].forEach((item: any) => {\n if (item.name) {\n item.name = t(`${i18n_id}_${get_field_i18n_id(key)}_${item.name}`, {\n defaultValue: item.name,\n });\n }\n if (item.label) {\n item.label = t(`${i18n_id}_${get_field_i18n_id(key)}_${item.label}`, {\n defaultValue: item.label,\n });\n }\n });\n }\n }\n const rules = data?.rules;\n if (rules) {\n Object.keys(rules).forEach((key: string) => {\n rules[key].forEach((rule: any) => {\n if (rule.message) {\n rule.message = t(`${i18n_id}_${rule.message}`, {\n defaultValue: rule.message,\n });\n }\n });\n });\n }\n return data;\n};\n\nconst modifyBaseSearchConditionConfigList = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => string,\n) => {\n if (data && Array.isArray(data)) {\n data.forEach((item: any) => {\n if (item.name) {\n item.name = t(`${i18n_id}_${item.name}`, {\n defaultValue: item.name,\n });\n }\n const group = item.group;\n if (group && Array.isArray(group)) {\n group.forEach((groupItem: any) => {\n if (groupItem.label) {\n groupItem.label = t(`${i18n_id}_${groupItem.label}`, {\n defaultValue: groupItem.label,\n });\n }\n if (groupItem.options) {\n groupItem.options.forEach((option: any) => {\n if (option.label) {\n option.label = t(\n `${i18n_id}_${get_field_i18n_id(groupItem.field_name)}_${option.label}`,\n {\n defaultValue: option.label,\n },\n );\n }\n });\n }\n });\n }\n });\n }\n return data;\n};\n\nconst modifyDefaultSearchConditionConfigList = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => string,\n) => {\n if (data && Array.isArray(data)) {\n data.forEach((item: any) => {\n if (item && Array.isArray(item)) {\n item.forEach((field: any) => {\n if (field.label) {\n field.label = t(`${i18n_id}_${field.label}`, {\n defaultValue: field.label,\n });\n }\n });\n }\n });\n }\n return data;\n};\n\nconst modifyConditionGroupConfigList = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => string,\n) => {\n if (data && Array.isArray(data)) {\n data.forEach((item: any) => {\n if (item.label) {\n item.label = t(`${i18n_id}_${item.label}`, {\n defaultValue: item.label,\n });\n }\n });\n }\n return data;\n};\n\nconst modifyFormModalConfig = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => string,\n) => {\n const dynamicFieldList = data?.dynamicFieldList;\n if (dynamicFieldList && Array.isArray(dynamicFieldList)) {\n dynamicFieldList.forEach((item: any) => {\n if (item.group_name) {\n item.group_name = t(`${i18n_id}_${item.group_name}`, {\n defaultValue: item.group_name,\n });\n }\n const children = item.children;\n if (children && Array.isArray(children)) {\n children.forEach((child: any) => {\n if (child.label) {\n child.label = t(`${i18n_id}_${child.label}`, {\n defaultValue: child.label,\n });\n }\n const placeholder = child.placeholder;\n if (placeholder && Array.isArray(placeholder)) {\n child.placeholder = placeholder.map((placeholder: string) =>\n t(`${i18n_id}_${placeholder}`, {\n defaultValue: placeholder,\n }),\n );\n } else if (placeholder) {\n child.placeholder = t(`${i18n_id}_${placeholder}`, {\n defaultValue: placeholder,\n });\n }\n });\n }\n });\n }\n const rules = data?.rules;\n if (rules) {\n Object.keys(rules).forEach((key: string) => {\n rules[key].forEach((rule: any) => {\n if (rule.message) {\n rule.message = t(`${i18n_id}_${rule.message}`, {\n defaultValue: rule.message,\n });\n }\n });\n });\n }\n const options = data?.options;\n if (options) {\n Object.keys(options).forEach((key: string) => {\n options[key].forEach((item: any) => {\n if (item.name) {\n item.name = t(`${i18n_id}_${get_field_i18n_id(key)}_${item.name}`, {\n defaultValue: item.name,\n });\n }\n if (item.label) {\n item.label = t(`${i18n_id}_${get_field_i18n_id(key)}_${item.label}`, {\n defaultValue: item.label,\n });\n }\n });\n });\n }\n return data;\n};\n\nconst modifyTitleList = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => string,\n): any => {\n if (data?.title) {\n data.title = t(`${i18n_id}_${data.title}`, {\n defaultValue: data.title,\n });\n }\n if (data?.addModalTitle) {\n data.addModalTitle = t(`${i18n_id}_${data.addModalTitle}`, {\n defaultValue: data.addModalTitle,\n });\n }\n if (data?.updateTitle) {\n data.updateTitle = t(`${i18n_id}_${data.updateTitle}`, {\n defaultValue: data.updateTitle,\n });\n }\n\n return data;\n};\n\nconst modifyBtnList = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => string,\n): any => {\n if (data && Array.isArray(data)) {\n data.forEach((item: any) => {\n if (item.name) {\n item.name = t(`${i18n_id}_${item.name}`, {\n defaultValue: item.name,\n });\n }\n const model_config = item.model_config;\n if (model_config) {\n if (model_config.title) {\n model_config.title = t(`${i18n_id}_${model_config.title}`, {\n defaultValue: model_config.title,\n });\n }\n if (model_config.content) {\n model_config.content = t(`${i18n_id}_${model_config.content}`, {\n defaultValue: model_config.content,\n });\n }\n if (model_config.form) {\n model_config.form = modifyFormModalConfig(\n model_config.form,\n t,\n i18n_id,\n get_field_i18n_id,\n );\n }\n }\n });\n }\n return data;\n};\n\n// 配置修改函数\nconst modifyFunc = {\n baseColumns: modifyBaseColumns,\n searchConfig: modifySearchConfig,\n base_search_condition_config_list: modifyBaseSearchConditionConfigList,\n default_search_condition_config_list: modifyDefaultSearchConditionConfigList,\n condition_group_config_list: modifyConditionGroupConfigList,\n formModalConfig: modifyFormModalConfig,\n updateFormModalConfig: modifyFormModalConfig,\n titleList: modifyTitleList,\n btn_list: modifyBtnList,\n head_btn_list: modifyBtnList,\n batch_update_list: modifyBtnList,\n};\n\nexport const modify_by_i18n_config = (mergedConfig: any, t: any, modalType: string): PageConfig => {\n const env = useEnv();\n if (!env.VITE_APP_ENABLE_ZH_EN) {\n return mergedConfig;\n }\n\n const result = cloneDeep(mergedConfig);\n const i18n_config = result.i18n;\n Object.keys(result).forEach(key => {\n if (modifyFunc[key]) {\n let i18n_id = i18n_config?.i18n_id;\n let fields = i18n_config?.fields;\n if (!i18n_id) {\n i18n_id = getI18nId(modalType);\n }\n const get_field_i18n_id = (field: string) => {\n if (fields) {\n const field_i18n_id = fields[field]?.i18n_id;\n if (field_i18n_id) {\n return field_i18n_id;\n }\n }\n return getI18nId(field);\n };\n result[key] = modifyFunc[key](result[key], t, i18n_id, get_field_i18n_id);\n }\n });\n console.log('result====', result);\n return result;\n};\n","import type { PageConfig } from 'liyu-pc-base/components/remotePages/typing';\nimport { reactive } from 'vue';\nimport { getApiPermission, getUrl } from 'liyu-pc-base/components/remotePages/utils';\nimport { cloneDeep } from 'lodash';\nimport { usePageConfigStore } from 'liyu-pc-base/init-plugin';\nimport { getApiData } from 'liyu-pc-base/api/api-model';\nimport { useEnv } from 'liyu-pc-base/init-plugin';\nimport { useGlobMap } from 'liyu-pc-base/init-plugin';\nimport { useCellComponentMap, useCellFormatExcelValueMap } from 'liyu-pc-base/init-plugin';\nimport { modify_by_i18n_config } from './i18n_config';\n\nconst mergeBtnList = (config: any[], customConfig: any[]) => {\n if (!customConfig) return config;\n const result = cloneDeep(config || []);\n\n // 创建一个按钮名称到索引的映射\n const btnMap = new Map();\n result.forEach((btn, index) => {\n delete btn._key;\n btnMap.set(btn.name, index);\n });\n\n // 遍历自定义配置进行合并\n let last_order = 0;\n customConfig.forEach(customBtn => {\n if (!customBtn.order) {\n customBtn.order = last_order + 1;\n }\n last_order = customBtn.order;\n customBtn._key = `custom_${customBtn.name}_${Math.random()}`;\n const existingIndex = btnMap.get(customBtn.name);\n\n if (existingIndex !== undefined) {\n // 如果按钮已存在,递归合并子按钮\n const existingBtn = result[existingIndex];\n if (customBtn.children && existingBtn.children) {\n existingBtn.children = mergeBtnList(existingBtn.children, customBtn.children);\n }\n const temp = cloneDeep(customBtn);\n delete temp.children;\n // 合并其他属性\n Object.assign(existingBtn, temp);\n } else {\n const temp = cloneDeep(customBtn);\n result.push(temp);\n if (temp.children) {\n temp.children = mergeBtnList([], temp.children);\n }\n }\n });\n\n return result;\n};\n\nconst mergeDataFunc = {\n btn_list: mergeBtnList,\n head_btn_list: mergeBtnList,\n batch_update_list: mergeBtnList,\n};\n\nconst mergeData = (config: any, customConfig: any) => {\n const res = cloneDeep(config);\n // Object.assign(mergedData, customConfig);\n Object.keys(customConfig).forEach(key => {\n if (mergeDataFunc[key]) {\n res[key] = mergeDataFunc[key](config[key], customConfig[key]);\n } else {\n res[key] = customConfig[key];\n }\n });\n\n Object.assign(config, res);\n};\nconst overrideBaseColumns = (config: any, overrideConfig: any) => {\n if (!config) {\n return;\n }\n config.forEach(item => {\n const dataIndex = item.dataIndex;\n if (overrideConfig[dataIndex]) {\n for (const key in overrideConfig[dataIndex]) {\n if (overrideConfig[dataIndex][key] === null) {\n delete item[key];\n } else {\n item[key] = overrideConfig[dataIndex][key];\n }\n }\n }\n });\n return config;\n};\nconst overrideBaseSearchConditionConfigList = (config: any, overrideConfig: any) => {\n if (!config) {\n return;\n }\n config.forEach(item => {\n const group = item.group;\n if (!group) {\n return;\n }\n group.forEach(groupItem => {\n const field_name = groupItem.field_name;\n if (overrideConfig[field_name]) {\n for (const key in overrideConfig[field_name]) {\n if (overrideConfig[field_name][key] === null) {\n delete groupItem[key];\n } else {\n groupItem[key] = overrideConfig[field_name][key];\n }\n }\n }\n });\n });\n return config;\n};\nconst overrideSearchConfig = (config: any, overrideConfig: any) => {\n if (!config) {\n return;\n }\n const fields = config.fields;\n const rules = config.rules || {};\n const model = config.model || {};\n const options = config.options || {};\n if (!fields) {\n return;\n }\n fields.forEach(field => {\n const name = field.name;\n if (overrideConfig.fields?.[name]) {\n for (const key in overrideConfig.fields[name]) {\n if (overrideConfig.fields[name][key] === null) {\n delete field[key];\n } else {\n field[key] = overrideConfig.fields[name][key];\n }\n }\n }\n if (overrideConfig.rules?.[name] !== undefined) {\n rules[name] = overrideConfig.rules[name];\n }\n if (overrideConfig.model?.[name] !== undefined) {\n model[name] = overrideConfig.model[name];\n }\n if (overrideConfig.options?.[name] !== undefined) {\n options[name] = overrideConfig.options[name];\n }\n });\n const newConfig = {\n fields,\n rules,\n model,\n options,\n };\n Object.assign(config, newConfig);\n return config;\n};\nconst overrideDataFunc = {\n baseColumns: overrideBaseColumns,\n base_search_condition_config_list: overrideBaseSearchConditionConfigList,\n searchConfig: overrideSearchConfig,\n};\n\nconst overrideData = (config: any, overrideConfig: any) => {\n const res = cloneDeep(config);\n // Object.assign(mergedData, customConfig);\n Object.keys(overrideConfig).forEach(key => {\n if (overrideDataFunc[key]) {\n config[key] = overrideDataFunc[key](config[key], overrideConfig[key]);\n }\n });\n return res;\n};\nconst processBaseColumns = (config: any) => {\n if (!config || !Array.isArray(config)) {\n return config;\n }\n const cellComponentMap = useCellComponentMap();\n const cellFormatExcelValueMap = useCellFormatExcelValueMap();\n for (const item of config) {\n if (item.cellComponent && !item.formatExcelValue) {\n const cellComponentData = cellComponentMap[item.cellComponent];\n if (cellComponentData) {\n const defaultExcelFormat = cellComponentData.defaultExcelFormat;\n const cellFormatExcelValue = cellFormatExcelValueMap[defaultExcelFormat];\n if (cellFormatExcelValue) {\n item.formatExcelValue = cellFormatExcelValue.flag;\n }\n }\n }\n }\n return config;\n};\nconst processDataFunc = {\n baseColumns: processBaseColumns,\n};\n\nconst processData = (config: any) => {\n Object.keys(config).forEach(key => {\n if (processDataFunc[key]) {\n config[key] = processDataFunc[key](config[key]);\n }\n });\n};\nconst res_components: { [key: string]: any } = {};\nconst init_components = () => {\n if (Object.keys(res_components).length > 0) {\n return;\n }\n const allComponents = import.meta.glob('liyu-pc-base/components/remotePages/configs/*/*.ts', {\n eager: true,\n });\n const customComponents = useGlobMap('remotePages');\n Object.assign(allComponents, customComponents);\n Object.keys(allComponents).forEach(full_file_name => {\n const file_name_list = full_file_name.split('/');\n const file_name = file_name_list[file_name_list.length - 1].replace('.ts', '');\n\n if (file_name.endsWith('-config')) {\n return;\n }\n // @ts-ignore\n res_components[file_name] = allComponents[full_file_name].default;\n });\n};\nexport const getViewSettingsAndPageConfig = async ({\n org_id,\n user_id,\n app_flag,\n modalType,\n sort_fields,\n is_cache,\n history_id,\n}: {\n org_id: string;\n user_id: number;\n app_flag: string;\n modalType: string;\n sort_fields: string[];\n is_cache: boolean;\n history_id?: number | null;\n}) => {\n const env = useEnv();\n const [viewSettings, defaultAndServerConfig] = await Promise.all([\n getApiData(\n {\n org_id,\n user_id,\n view_project__flag: env.VITE_APP_VIEW_PROJECT_FLAG,\n view_menu__flag: modalType,\n history_id,\n sort_fields,\n is_cache,\n },\n '/view/get_view_settings_for_user',\n ),\n getDefaultAndServerConfig({\n org_id,\n app_flag,\n modalType,\n history_id,\n }),\n ]);\n\n return {\n ...viewSettings,\n defaultAndServerConfig: defaultAndServerConfig,\n };\n};\n\nexport const getDefaultAndServerConfig = async ({\n org_id,\n app_flag,\n modalType,\n history_id,\n}: {\n org_id: string;\n app_flag: string;\n modalType: string;\n history_id?: number | null;\n}) => {\n const env = useEnv();\n const model_name = modalType.split('-')[1];\n const flag = modalType + '_config';\n const serverConfigParams: any = {\n flag,\n org_id,\n };\n if (history_id) {\n serverConfigParams.history_id = history_id;\n }\n const defaultConfigParams: any = {\n org_id,\n model_name,\n get_i18n_config: !!env.VITE_APP_ENABLE_ZH_EN,\n };\n const overrideConfigParams: any = {\n org_id,\n model_name,\n api_url: `/${app_flag}/query_${model_name}_list`,\n };\n const result: any = {};\n const skip_app_flag = [];\n if (skip_app_flag.includes(app_flag)) {\n const serverRes = await getApiData(\n serverConfigParams,\n '/sys/get_global_custom_data_by_flag_without_org_id',\n );\n result.defaultConfig = {};\n result.override = null;\n result.serverConfig = serverRes || {};\n return result;\n } else {\n const [defaultRes, overrideRes, serverRes] = await Promise.all([\n getApiData(\n defaultConfigParams,\n `/${app_flag}/dev_get_column_config_and_remote_config_json`,\n false,\n {\n skip_error: true,\n },\n ),\n getApiData(overrideConfigParams, `/${app_flag}/override_column_config`, false, {\n skip_error: true,\n }),\n getApiData(serverConfigParams, '/sys/get_global_custom_data_by_flag_without_org_id'),\n ]);\n result.defaultConfig = defaultRes || {};\n result.override = overrideRes || {};\n result.serverConfig = serverRes || {};\n return result;\n }\n};\n\nexport const getPageConfig = (\n app_flag: string,\n modalType: string,\n defaultAndServerConfig: {\n defaultConfig: any;\n serverConfig: any;\n override?: any;\n },\n t: any,\n use_store = true,\n to_i18n = false,\n): PageConfig => {\n init_components();\n const pageConfigStore = use_store ? usePageConfigStore() : null;\n let components: any;\n if (defaultAndServerConfig && pageConfigStore) {\n pageConfigStore.cleanPageConfig(modalType);\n }\n if (res_components[modalType] == undefined) {\n console.log('remotePages3没有组件:' + modalType);\n if (pageConfigStore) {\n pageConfigStore.setCustomConfig(modalType, {});\n }\n } else {\n components = { ...res_components[modalType](t) };\n if (pageConfigStore) {\n pageConfigStore.setCustomConfig(modalType, components);\n }\n }\n const titleList: any = reactive({\n title: '',\n addModalTitle: '新建',\n updateTitle: '修改',\n is_create: getApiPermission(app_flag + '-' + modalType.split('-')[1], 'create_'), // 是否有【新建】按钮\n is_update: getApiPermission(app_flag + '-' + modalType.split('-')[1], 'update_'), // 是否有【修改】按钮\n is_remove: getApiPermission(app_flag + '-' + modalType.split('-')[1], 'delete_'), // 是否有【删除】按钮\n is_recover: getApiPermission(app_flag + '-' + modalType.split('-')[1], 'recover_'), // 是否有【恢复】按钮\n });\n const searchConfig: any = {\n rules: reactive({}),\n fields: [],\n settings: {},\n model: reactive({}),\n options: {},\n };\n const defaultConfig: any = {\n is_selection: false,\n addData: getUrl(app_flag + '-' + modalType.split('-')[1], ['create_', '']),\n updateData: getUrl(app_flag + '-' + modalType.split('-')[1], ['update_', '']),\n recoverData: getUrl(app_flag + '-' + modalType.split('-')[1], ['recover_', '']),\n removeData: getUrl(app_flag + '-' + modalType.split('-')[1], ['delete_', '']),\n countData: getUrl(app_flag + '-' + modalType.split('-')[1], ['query_', '_count']),\n queryData: getUrl(app_flag + '-' + modalType.split('-')[1], ['query_', '_list']),\n queryConditionGroupData: getUrl(app_flag + '-' + modalType.split('-')[1], ['query_', '_group']),\n getData: getUrl(app_flag + '-' + modalType.split('-')[1], ['get_', '']),\n\n searchConfig: searchConfig,\n base_search_condition_config_list: null,\n default_search_condition_config_list: null,\n condition_group_config_list: null,\n is_show_advantage: true,\n is_show_normal_search: false,\n is_only_show_advantage: true,\n is_only_show_normal_search: false,\n init_request: true,\n processData: null,\n refresh_type: '手动', // '手动', '5s', '10s', '30s'\n required_condition: [],\n globalSearch: null,\n\n formModalConfig: null,\n updateFormModalConfig: null,\n titleList: titleList,\n api_fields: null,\n btn_list: null,\n head_btn_list: null,\n batch_update_list: null,\n event_obj: undefined,\n\n is_operation: [true, true, true, true],\n baseColumns: null,\n column_list_change: null,\n processColumn: null,\n customCell: null,\n customRow: null,\n customHeaderCell: null,\n\n is_pagination: true,\n pageSize: 50,\n page_size_options: [\n '10',\n '20',\n '50',\n '100',\n '200',\n '500',\n '1000',\n '3000',\n '10000',\n '50000',\n '60000',\n '70000',\n ], // 默认页面选项\n is_page_mode_change: false,\n is_stripe: null,\n\n isView: true,\n rowKey: 'id',\n rowSelection: { type: 'checkbax' },\n expandedRowRender: null,\n expandedRowRenderComponent: null,\n headerComponent: null,\n expandFunc: null,\n summaryData: null,\n summaryType: null,\n default_column_field: ['is_active'],\n i18n: null,\n };\n if (defaultAndServerConfig) {\n Object.assign(defaultConfig, defaultAndServerConfig.defaultConfig);\n if (pageConfigStore) {\n pageConfigStore.setDefaultConfig(modalType, defaultConfig);\n }\n } else {\n const cachedDefaultConfig = pageConfigStore && pageConfigStore.getDefaultConfig(modalType);\n if (cachedDefaultConfig) {\n Object.assign(defaultConfig, cachedDefaultConfig);\n }\n }\n const mergedConfig = cloneDeep(defaultConfig);\n let serverConfig = null;\n if (defaultAndServerConfig) {\n serverConfig = defaultAndServerConfig.serverConfig;\n if (pageConfigStore) {\n pageConfigStore.setServerConfig(modalType, serverConfig);\n }\n } else {\n serverConfig = pageConfigStore && pageConfigStore.getServerConfig(modalType);\n }\n if (\n !serverConfig?.default_column_field &&\n serverConfig?.searchConfig?.default_column_field &&\n serverConfig?.searchConfig?.default_column_field?.length > 0\n ) {\n serverConfig.default_column_field = serverConfig.searchConfig.default_column_field;\n }\n\n Object.assign(mergedConfig, serverConfig);\n let overrideConfig = null;\n if (defaultAndServerConfig) {\n overrideConfig = defaultAndServerConfig.override;\n if (pageConfigStore && overrideConfig) {\n pageConfigStore.setOverrideConfig(modalType, overrideConfig);\n }\n } else {\n overrideConfig = pageConfigStore && pageConfigStore.getOverrideConfig(modalType);\n }\n if (overrideConfig) {\n overrideData(mergedConfig, overrideConfig);\n }\n if (components) {\n mergeData(mergedConfig, components);\n if (components?.default_column_field && components?.default_column_field?.length > 0) {\n mergedConfig.default_column_field = components?.default_column_field;\n } else if (\n components?.searchConfig?.default_column_field &&\n components?.searchConfig?.default_column_field?.length > 0\n ) {\n mergedConfig.default_column_field = components?.searchConfig?.default_column_field;\n }\n }\n if (pageConfigStore) {\n pageConfigStore.setMergedConfig(modalType, mergedConfig);\n }\n if (mergedConfig.is_stripe) {\n const processData = raw_data_list => {\n let index = 0;\n const obj_dict = {};\n raw_data_list.forEach(item => {\n item.color_index0 = 1;\n if (obj_dict?.[item?.[mergedConfig.is_stripe]] == undefined) {\n obj_dict[item[mergedConfig.is_stripe]] = index;\n index += 1;\n item.color_index0 = 0;\n }\n item.color_index = obj_dict[item[mergedConfig.is_stripe]];\n });\n return raw_data_list;\n };\n\n const customRow = record => {\n if (record.color_index0 == 1) {\n return { style: { background: 'rgba(85,162,235,0.3)' } };\n }\n if (record.color_index % 2 == 0) {\n return { style: { background: '#FFFFFE' } };\n } else {\n return { style: { background: '#FAFAFA' } };\n }\n };\n mergedConfig.processData = processData;\n mergedConfig.customRow = customRow;\n }\n processData(mergedConfig);\n if (to_i18n) {\n return modify_by_i18n_config(mergedConfig, t, modalType);\n } else {\n return mergedConfig;\n }\n};\n"],"names":["i18nLanguage_project","event_obj","permissionApiurl2","search_config","reactive","edit_model_config","update_model_config","import_apiurl","params","useRequest","change_apiurl_auth","btn_list","record","current_org","Modal","createVNode","ExclamationCircleOutlined","resolve","res","message","config","head_btn_list","editModal","payload","modalBox","permissionApiurl","permissionDing_appinfo","env","useEnv","list","list1","item","type","component_type","suffix","state","_a","_c","_b","suffixs","_d","data","data1","org_ids","url_ids","menu_path","menu_name","notification","is_menu","getApiData","org__ids","queryOrgList","addMenu","userStore","useUserStore","import_menu","permissionMenu","titleList","api_fields","baseColumns","permissionMenu_helper","create_organization_by_role_template","addPerson","updatePerson","permissionOrganization","CloseOutlined","CloseOutlinedSvg","_objectSpread","target","i","source","ownKeys","sym","key","_defineProperty","obj","value","props","context","p","_createVNode","AntdIcon","CloseOutlined$1","CheckCircleOutlined","CheckCircleOutlinedSvg","CheckCircleOutlined$1","ExclamationCircleOutlinedSvg","ExclamationCircleOutlined$1","InfoCircleOutlined","InfoCircleOutlinedSvg","InfoCircleOutlined$1","CloseCircleOutlined","CloseCircleOutlinedSvg","CloseCircleOutlined$1","InfoCircleFilled","InfoCircleFilledSvg","InfoCircleFilled$1","runtimeLocale","_extends","defaultLocale","changeConfirmLocale","newLocale","ANT_MARK","LocaleProvider","defineComponent","_ref","slots","warning","provide","watch","locale","app","withInstall","Notice","attrs","closeTimer","isUnMounted","duration","computed","startCloseTimer","close","clearCloseTimer","e","onClose","noticeKey","restartCloseTimer","onMounted","onUnmounted","_ref2","_ref3","preDuration","preUpdateMark","preVisible","newDuration","newUpdateMark","newVisible","prefixCls","closable","closeIcon","onClick","holder","className","style","componentClass","dataOrAriaAttributeProps","acc","node","classNames","Teleport","__rest","this","s","t","seed","now","getUuid","id","Notification","expose","hookRefs","notices","ref","transitionProps","animation","name","getTransitionGroupProps","add","originNotice","holderCallback","notice","maxCount","noticeIndex","v","updatedNotices","remove","removeKey","toRaw","userPassKey","noticeNodes","index","updateMark","content","noticeProps","div","TransitionGroup","properties","callback","getContainer","appContext","customizePrefixCls","customRootPrefixCls","customTransitionName","hasTransitionName","useStyle","Wrapper","_props","_ref4","notiRef","shallowRef","globalConfigForApi","hashId","vueRender","global","rootPrefixCls","transitionName","ConfigProvider","vm","Notification$2","placements","nextPlacements","placement","placementList","noticesForPlacement","classes","styles","noticeNodesForPlacement","onAfterLeave","Portal","HookNotification","defaultGetContainer","uniqueKey","mergeConfig","clone","_len","objList","_key","val","useNotification","rootConfig","motion","getClassName","getStyles","onAllRemoved","shareConfig","notificationsRef","removeNotice","destroy","contextHolder","taskQueue","api","mergedConfig","task","genMessageStyle","token","componentCls","iconCls","boxShadowSecondary","colorBgElevated","colorSuccess","colorError","colorWarning","colorInfo","fontSizeLG","motionEaseInOutCirc","motionDurationSlow","marginXS","paddingXS","borderRadiusLG","zIndexPopup","messageNoticeContentPadding","messageMoveIn","Keyframes","messageMoveOut","resetComponent","useStyle$3","genComponentStyleHook","combinedToken","mergeToken","TypeIcon","CheckCircleFilled","CloseCircleFilled","ExclamationCircleFilled","LoadingOutlined","PureContent","getPrefixCls","useConfigContextInject","DEFAULT_OFFSET","DEFAULT_DURATION","Holder","getPopupContainer","useConfigInject","top","getNotificationMotion","getMotion","mergedCloseIcon","useVcNotification","keyIndex","useInternalMessage","messageConfig","holderRef","holderKey","open","fakeResult","originOpen","noticePrefixCls","icon","restConfig","mergedKey","wrapPromiseFn","wrapAPI","typeOpen","jointContent","mergedDuration","mergedOnClose","useMessage","defaultDuration","defaultTop","messageInstance","localPrefixCls","rtl","getKeyThenIncreaseKey","setMessageConfig","options","getMessageInstance","args","instance","typeToIcon","typeList","closePromise","Icon","iconNode","messageClass","result","filled","rejected","isArgsProps","messageKey","attachTypeApi","originalApi","genNotificationPlacementStyle","width","notificationMarginEdge","notificationTopFadeIn","notificationBottomFadeIn","notificationLeftFadeIn","genNotificationPlacementStyle$1","genNotificationStyle","notificationMarginBottom","colorTextHeading","notificationBg","notificationPadding","motionDurationMid","motionEaseInOut","fontSize","lineHeight","notificationIconSize","noticeCls","notificationFadeIn","notificationFadeOut","useStyle$2","notificationPaddingVertical","notificationPaddingHorizontal","notificationToken","getCloseIcon","description","btn","renderHelper","getPlacementStyle","bottom","useInternalNotification","notificationConfig","notificationInstance","defaultBottom","defaultPrefixCls","defaultPlacement","defaultCloseIcon","setNotificationConfig","getNotificationInstance","globalConfig","cacheKey","cacheInstance","notificationClass","outerPrefixCls","iconTypes","dynamicStyleMark","getStyle","globalPrefixCls","theme","variables","formatColor","color","updater","fillColor","colorVal","baseColor","TinyColor","colorPalettes","generate","primaryColor","primaryColors","c","primaryActiveColor","registerTheme","canUseDom","updateCSS","iconPrefixCls","useToken","useStyleRegister","resetIcon","useStyle$1","useTheme","parentTheme","themeConfig","parentThemeConfig","defaultConfig","mergedComponents","componentName","getGlobalPrefixCls","getGlobalIconPrefixCls","defaultIconPrefixCls","globalConfigBySet","watchEffect","suffixCls","stopWatchEffect","setGlobalConfig","configProviderProps","parentContext","mergedPrefixCls","shouldWrapSSR","csp","wrapSSR","mergedTheme","renderEmptyComponent","defaultRenderEmpty","autoInsertSpaceInButton","direction","space","virtual","dropdownMatchSelectWidth","getTargetContainer","pageHeader","input","pagination","form","select","componentSize","componentDisabled","wave","configProvider","memoTheme","algorithm","rest","themeObj","createTheme","defaultSeedToken","validateMessagesRef","validateMessages","useConfigContextProvider","useProvideGlobalForm","useProviderSize","useProviderDisabled","renderProvider","legacyLocale","childNode","_childNode","DesignTokenProvider","LocaleReceiver","_","__","ConfigProvider$1","updateRole","copy_role_info","import_role_by_super","has_project","permissionRole","searchModel","permissionUser","roleManage","search_options","edit_model_config_options","queryRole","addRole","removeRole","recoverRole","$","safeAdd","x","lsw","msw","bitRotateLeft","num","cnt","md5cmn","q","a","b","md5ff","d","md5gg","md5hh","md5ii","binlMD5","len","olda","oldb","oldc","oldd","binl2rstr","output","length32","rstr2binl","length8","rstrMD5","rstrHMACMD5","bkey","ipad","opad","hash","rstr2hex","hexTab","str2rstrUTF8","rawMD5","hexMD5","rawHMACMD5","k","hexHMACMD5","md5","string","raw","module","generateMD5","str","getI18nId","modalType","modifyBaseColumns","i18n_id","get_field_i18n_id","filter","modifySearchConfig","placeholder","rules","rule","modifyBaseSearchConditionConfigList","group","groupItem","option","modifyDefaultSearchConditionConfigList","field","modifyConditionGroupConfigList","modifyFormModalConfig","dynamicFieldList","children","child","modifyTitleList","modifyBtnList","model_config","modifyFunc","modify_by_i18n_config","cloneDeep","i18n_config","fields","field_i18n_id","mergeBtnList","customConfig","btnMap","last_order","customBtn","existingIndex","existingBtn","temp","mergeDataFunc","mergeData","overrideBaseColumns","overrideConfig","dataIndex","overrideBaseSearchConditionConfigList","field_name","overrideSearchConfig","model","overrideDataFunc","overrideData","processBaseColumns","cellComponentMap","useCellComponentMap","cellFormatExcelValueMap","useCellFormatExcelValueMap","cellComponentData","defaultExcelFormat","cellFormatExcelValue","processDataFunc","processData","res_components","init_components","allComponents","__vite_glob_0_0","__vite_glob_0_1","__vite_glob_0_2","__vite_glob_0_3","__vite_glob_0_4","__vite_glob_0_5","__vite_glob_0_6","__vite_glob_0_7","__vite_glob_0_8","__vite_glob_0_9","__vite_glob_0_10","__vite_glob_0_11","__vite_glob_0_12","__vite_glob_0_13","__vite_glob_0_14","__vite_glob_0_15","customComponents","useGlobMap","full_file_name","file_name_list","file_name","getViewSettingsAndPageConfig","org_id","user_id","app_flag","sort_fields","is_cache","history_id","viewSettings","defaultAndServerConfig","getDefaultAndServerConfig","model_name","serverConfigParams","defaultConfigParams","overrideConfigParams","serverRes","defaultRes","overrideRes","getPageConfig","use_store","to_i18n","pageConfigStore","usePageConfigStore","components","getApiPermission","searchConfig","getUrl","cachedDefaultConfig","serverConfig","_e","_g","_f","_h","raw_data_list","obj_dict","customRow"],"mappings":"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","x_google_ignoreList":[12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,51]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/remotePages/configs/i18n/i18n-language_project.ts","../../../src/components/remotePages/configs/permission/permission-apiurl-2.ts","../../../src/api/permission/apiurl-manage.ts","../../../src/components/remotePages/configs/permission/permission-apiurl-config.ts","../../../src/components/remotePages/configs/permission/permission-apiurl.ts","../../../src/components/remotePages/configs/permission/permission-ding_appinfo.ts","../../../src/components/remotePages/configs/permission/permission-menu-config.ts","../../../src/components/remotePages/configs/permission/permission-menu.ts","../../../src/components/remotePages/configs/permission/permission-menu_helper.ts","../../../src/api/permission/user-manage.ts","../../../src/components/remotePages/configs/permission/permission-organization-config.ts","../../../src/components/remotePages/configs/permission/permission-organization.ts","../../../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../../../node_modules/@ant-design/icons-vue/es/icons/CloseOutlined.js","../../../node_modules/@ant-design/icons-svg/es/asn/CheckCircleOutlined.js","../../../node_modules/@ant-design/icons-vue/es/icons/CheckCircleOutlined.js","../../../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleOutlined.js","../../../node_modules/@ant-design/icons-vue/es/icons/ExclamationCircleOutlined.js","../../../node_modules/@ant-design/icons-svg/es/asn/InfoCircleOutlined.js","../../../node_modules/@ant-design/icons-vue/es/icons/InfoCircleOutlined.js","../../../node_modules/@ant-design/icons-svg/es/asn/CloseCircleOutlined.js","../../../node_modules/@ant-design/icons-vue/es/icons/CloseCircleOutlined.js","../../../node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","../../../node_modules/@ant-design/icons-vue/es/icons/InfoCircleFilled.js","../../../node_modules/ant-design-vue/es/modal/locale.js","../../../node_modules/ant-design-vue/es/locale/index.js","../../../node_modules/ant-design-vue/es/vc-notification/Notice.js","../../../node_modules/ant-design-vue/es/vc-notification/Notification.js","../../../node_modules/ant-design-vue/es/vc-notification/HookNotification.js","../../../node_modules/ant-design-vue/es/vc-notification/useNotification.js","../../../node_modules/ant-design-vue/es/message/style/index.js","../../../node_modules/ant-design-vue/es/message/PurePanel.js","../../../node_modules/ant-design-vue/es/message/useMessage.js","../../../node_modules/ant-design-vue/es/message/index.js","../../../node_modules/ant-design-vue/es/notification/style/placement.js","../../../node_modules/ant-design-vue/es/notification/style/index.js","../../../node_modules/ant-design-vue/es/notification/PurePanel.js","../../../node_modules/ant-design-vue/es/notification/util.js","../../../node_modules/ant-design-vue/es/notification/useNotification.js","../../../node_modules/ant-design-vue/es/notification/index.js","../../../node_modules/ant-design-vue/es/config-provider/cssVariables.js","../../../node_modules/ant-design-vue/es/config-provider/style/index.js","../../../node_modules/ant-design-vue/es/config-provider/hooks/useTheme.js","../../../node_modules/ant-design-vue/es/config-provider/index.js","../../../src/api/permission/auth-manage.ts","../../../src/components/remotePages/configs/permission/permission-role-config.ts","../../../src/components/remotePages/configs/permission/permission-role-manage-config.ts","../../../src/components/remotePages/configs/permission/permission-role.ts","../../../src/components/remotePages/configs/permission/permission-user-config.ts","../../../src/components/remotePages/configs/permission/permission-user.ts","../../../src/components/remotePages/configs/permission/role-manage.ts","../../../node_modules/blueimp-md5/js/md5.js","../../../src/components/remotePages/i18n_config.ts","../../../src/components/remotePages/index.ts"],"sourcesContent":["import type { TableColumn } from 'liyu-pc-base/typing';\n\nimport { event_obj } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n dataIndex: 'index',\n checked: true,\n width: 70,\n fixed: 'left',\n },\n {\n title: 'ID',\n width: 150,\n dataIndex: 'id',\n checked: false,\n ellipsis: true,\n resizable: true,\n },\n {\n filterMultiple: false,\n cellComponent: 'tag',\n contentMap: {\n true: '可用',\n false: '禁用',\n },\n colorMap: {\n true: 'green',\n false: 'red',\n },\n filters: [\n {\n value: 'true',\n text: '可用',\n },\n {\n value: 'false',\n text: '禁用',\n },\n ],\n title: '是否可用',\n width: 150,\n dataIndex: 'is_active',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '创建时间',\n width: 150,\n dataIndex: 'create_time',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '更新时间',\n width: 150,\n dataIndex: 'update_time',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n sorter: {\n multiple: 1,\n },\n title: '模块flag',\n width: 150,\n dataIndex: 'project',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n sorter: {\n multiple: 1,\n },\n title: '模块名称',\n width: 150,\n dataIndex: 'name',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '备注',\n width: 150,\n dataIndex: 'bz',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '内部地址',\n width: 150,\n dataIndex: 'inner_url',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '外部地址',\n width: 150,\n dataIndex: 'link_url',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '图标地址',\n width: 150,\n dataIndex: 'icon_url',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n filterMultiple: true,\n cellComponent: 'tag',\n contentMap: {\n inner: '内部地址',\n link: '外部地址',\n },\n colorMap: {\n inner: 'green',\n link: 'cyan',\n },\n filters: [\n {\n value: 'inner',\n text: '内部地址',\n },\n {\n value: 'link',\n text: '外部地址',\n },\n ],\n title: '地址类型',\n width: 150,\n dataIndex: 'url_type',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '隶属组织',\n width: 150,\n dataIndex: 'orgs__name',\n checked: true,\n cellComponent: 'list',\n },\n {\n filterMultiple: true,\n cellComponent: 'tag',\n contentMap: {\n '10': 'PC端',\n '20': '手机端',\n },\n colorMap: {\n '10': 'green',\n '20': 'cyan',\n },\n filters: [\n {\n value: '10',\n text: 'PC端',\n },\n {\n value: '20',\n text: '手机端',\n },\n ],\n title: '平台',\n width: 150,\n dataIndex: 'platform',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n ];\n return {\n baseColumns,\n event_obj: event_obj(),\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n };\n};\n","import type { TableColumn } from 'liyu-pc-base/typing';\nimport type { Record, SearchConfig } from 'liyu-pc-base/components/remotePages/typing';\n\nimport { reactive } from 'vue';\n\nexport default () => {\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '接口名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写接口名称',\n },\n {\n type: 'input',\n name: 'url',\n label: '接口url',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写接口url',\n },\n {\n type: 'radio',\n name: 'is_auth',\n label: '是否需要授权',\n disabled: false,\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择是否授权',\n datasource: 'is_auth',\n mode: 'default',\n },\n {\n type: 'radio',\n name: 'is_active',\n label: '状态',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择状态',\n datasource: 'is_active',\n mode: 'default',\n },\n ],\n rules: {},\n model: reactive({\n is_active: true,\n is_auth: '',\n name: '',\n url: null,\n }),\n options: {\n is_active: [\n { name: '全部', value: '' },\n { name: '正常', value: true },\n { name: '作废', value: false },\n ],\n is_auth: [\n { name: '全部', value: '' },\n { name: '是', value: true },\n { name: '否', value: false },\n ],\n },\n default_column_field: ['is_auth'],\n };\n\n const edit_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '接口名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '接口名称',\n },\n {\n type: 'input',\n name: 'url',\n label: '绝对路径',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '绝对路径',\n },\n {\n type: 'radio',\n name: 'is_auth', // 传值字段\n label: '是否需要授权',\n disabled: false,\n labelKey: 'name', // options数据\n valueKey: 'value',\n placeholder: '请选择是否授权',\n datasource: 'is_auth', // 接参字段\n },\n ],\n rules: {\n name: [{ required: true, message: '请输入接口名称' }],\n url: [{ required: true, message: '请输入绝对路径' }],\n },\n model: {\n name: '',\n url: '',\n is_auth: null,\n },\n options: {\n is_auth: [\n { name: '是', value: true },\n { name: '否', value: false },\n ],\n },\n };\n\n const update_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '接口名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '接口名称',\n },\n {\n type: 'input',\n name: 'url',\n label: '绝对路径',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '绝对路径',\n },\n {\n type: 'radio',\n name: 'is_auth', // 传值字段\n label: '是否需要授权',\n disabled: false,\n labelKey: 'name', // options数据\n valueKey: 'value',\n placeholder: '请选择是否授权',\n datasource: 'is_auth', // 接参字段\n },\n ],\n rules: {},\n model: reactive({\n name: '',\n url: '',\n is_auth: null,\n }),\n options: {\n is_auth: [\n { name: '是', value: true },\n { name: '否', value: false },\n ],\n },\n };\n\n const titleList = {\n title: '接口列表',\n addModalTitle: '新建接口',\n updateTitle: '修改',\n is_create: false, // 是否有【新建】按钮\n is_update: false, // 是否有【修改】按钮\n is_remove: false, // 是否有【删除】按钮\n is_recover: false, // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n apiurl_id: 'id',\n },\n delete: {\n apiurl_id: 'id',\n },\n recover: {\n apiurl_id: 'id',\n },\n updateData: {\n apiurl_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n width: 50,\n dataIndex: 'index',\n checked: true,\n fixed: 'left',\n },\n {\n title: '名称',\n dataIndex: 'name',\n checked: true,\n fixed: 'left',\n },\n {\n title: 'url',\n dataIndex: 'url',\n checked: true,\n },\n {\n title: '是否需要授权',\n width: 130,\n dataIndex: 'is_auth',\n cellComponent: 'boolean',\n checked: true,\n name1: '是',\n name2: '否',\n },\n {\n title: '是否可用',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '全部', value: '' },\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n ];\n\n return {\n searchConfig: search_config,\n formModalConfig: edit_model_config,\n updateFormModalConfig: update_model_config,\n queryData: '/permission/query_url_not_bind_menu_list',\n addData: null,\n updateData: null,\n removeData: null,\n recoverData: null,\n baseColumns: baseColumns,\n titleList: titleList,\n api_fields: api_fields,\n base_search_condition_config_list: [],\n default_search_condition_config_list: [[]],\n condition_group_config_list: [],\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n queryConditionGroupData: null,\n isView: false,\n };\n};\n","import { useRequest } from 'liyu-pc-base/init-plugin';\n\nexport async function queryApiurl(params?: { [key: string]: any }): Promise<RoleResponse> {\n return useRequest().post('/permission/query_apiurl_list', params);\n}\n\nexport async function removeUrl(params: Record<string, any>) {\n return useRequest().post('/permission/delete_apiurl', params);\n}\n\nexport async function recoverUrl(params: Record<string, any>) {\n return useRequest().post('/permission/recover_apiurl', params);\n}\n\nexport async function addURL(params: Record<string, any>) {\n return useRequest().post('/permission/create_apiurl', params);\n}\n\nexport async function updateUrl(params: Record<string, any>) {\n return useRequest().post('/permission/update_apiurl', params);\n}\n\nexport async function import_apiurl(params: Record<string, any>) {\n return useRequest().post('/permission/import_apiurl', params);\n}\n\nexport async function queryUrlNotBind(params?: { [key: string]: any }): Promise<RoleResponse> {\n return useRequest().post('/permission/query_url_not_bind_menu_list', params);\n}\n\nexport async function change_apiurl_auth(params?: { [key: string]: any }): Promise<RoleResponse> {\n return useRequest().post('/permission/change_apiurl_auth', params);\n}\n\ninterface RuleItem {\n key: string | number;\n id: number;\n callNo: number;\n avatar: string;\n desc: string;\n disabled: false;\n href: string;\n name: string;\n owner: string;\n progress: number;\n status: number;\n updatedAt: string;\n createdAt: string;\n}\n\ninterface RoleResponse {\n current: number;\n data: RuleItem[];\n pageSize: string;\n success: boolean;\n total: number;\n}\n","import modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport { createVNode, reactive } from 'vue';\nimport { message, Modal } from 'ant-design-vue';\nimport { change_apiurl_auth, import_apiurl } from 'liyu-pc-base/api/permission/apiurl-manage';\nimport { ExclamationCircleOutlined } from '@ant-design/icons-vue';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\nexport const btn_list: BtnListConfig = [\n {\n name: '设为需要授权',\n type: 'dropdown',\n clazz: 'primary',\n is_show: ({ record }) => {\n return record.is_active && !record.is_auth;\n },\n cb: ({ record, current_org }) => {\n Modal.confirm({\n title: '是否设为需要授权?',\n icon: createVNode(ExclamationCircleOutlined),\n onOk() {\n return new Promise(resolve => {\n change_apiurl_auth({\n org_id: current_org.id,\n apiurl_id: record.id,\n is_auth: true,\n }).then((res: any) => {\n message.success('操作成功');\n Object.assign(record, res);\n resolve(null);\n event_obj().emit('refresh');\n });\n }).catch(() => console.log('Oops errors!'));\n },\n onCancel() {},\n });\n },\n },\n {\n name: '设为无需授权',\n type: 'dropdown',\n clazz: 'primary',\n is_show: ({ record }) => {\n return record.is_active && record.is_auth;\n },\n cb: ({ record, current_org }) => {\n Modal.confirm({\n title: '是否设为无需授权?',\n icon: createVNode(ExclamationCircleOutlined),\n onOk() {\n return new Promise(resolve => {\n change_apiurl_auth({\n org_id: current_org.id,\n apiurl_id: record.id,\n is_auth: false,\n }).then((res: any) => {\n message.success('操作成功');\n Object.assign(record, res);\n resolve(null);\n event_obj().emit('refresh');\n });\n }).catch(() => console.log('Oops errors!'));\n },\n onCancel() {},\n });\n },\n },\n];\nexport const config = {\n creatCol: [],\n updateCol: [],\n};\n\nexport const head_btn_list: HeadBtnListConfig = [\n {\n name: '导入接口',\n type: 'dropdown',\n clazz: 'primary',\n cb: () => {\n const editModal = reactive({\n visible: true,\n title: '导入api接口json文件',\n loading: false,\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'textarea',\n name: 'api_json',\n label: '接口JSON',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '接口JSON',\n },\n ],\n rules: {\n api_json: [{ username: true, message: '请填写账号名称' }],\n },\n model: reactive({\n org_id: current_org.id,\n api_json: '',\n }),\n },\n options: {},\n ok: (payload: any) => {\n return new Promise(resolve => {\n editModal.loading = true;\n import_apiurl({\n ...payload,\n })\n .then(() => {\n message.success('导入成功');\n resolve(null);\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n },\n });\n modalBox(editModal);\n },\n },\n];\n","import type { TableColumn } from 'liyu-pc-base/typing';\nimport type { Record, SearchConfig } from 'liyu-pc-base/components/remotePages/typing';\nimport { btn_list, config, head_btn_list } from './permission-apiurl-config';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport { reactive } from 'vue';\n\nexport default () => {\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '接口名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写接口名称',\n },\n {\n type: 'input',\n name: 'url',\n label: '绝对路径url',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写绝对路径url',\n },\n {\n type: 'radio',\n name: 'is_auth',\n label: '是否需要授权',\n disabled: false,\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择是否授权',\n datasource: 'is_auth',\n mode: 'default',\n },\n {\n type: 'radio',\n name: 'is_active',\n label: '状态',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择状态',\n datasource: 'is_active',\n mode: 'default',\n },\n ],\n rules: {},\n model: reactive({\n is_active: true,\n is_auth: '',\n name: '',\n url: '',\n }),\n options: {\n is_active: [\n { name: '全部', value: '' },\n { name: '正常', value: true },\n { name: '作废', value: false },\n ],\n is_auth: [\n { name: '全部', value: '' },\n { name: '是', value: true },\n { name: '否', value: false },\n ],\n },\n default_column_field: ['is_auth', 'is_active'],\n };\n\n const edit_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '接口名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '接口名称',\n },\n {\n type: 'input',\n name: 'url',\n label: '绝对路径',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '绝对路径',\n },\n {\n type: 'radio',\n name: 'is_auth', // 传值字段\n label: '是否需要授权',\n disabled: false,\n labelKey: 'name', // options数据\n valueKey: 'value',\n placeholder: '请选择是否授权',\n datasource: 'is_auth', // 接参字段\n },\n ],\n rules: {\n name: [{ required: true, message: '请输入接口名称' }],\n url: [{ required: true, message: '请输入绝对路径' }],\n },\n model: {\n name: '',\n url: '',\n is_auth: null,\n },\n options: {\n is_auth: [\n { name: '是', value: true },\n { name: '否', value: false },\n ],\n },\n };\n\n const update_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '接口名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '接口名称',\n },\n {\n type: 'input',\n name: 'url',\n label: '绝对路径',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '绝对路径',\n },\n {\n type: 'radio',\n name: 'is_auth', // 传值字段\n label: '是否需要授权',\n disabled: false,\n labelKey: 'name', // options数据\n valueKey: 'value',\n placeholder: '请选择是否授权',\n datasource: 'is_auth', // 接参字段\n },\n ],\n rules: {},\n model: reactive({\n name: '',\n url: '',\n is_auth: null,\n }),\n options: {\n is_auth: [\n { name: '是', value: true },\n { name: '否', value: false },\n ],\n },\n };\n\n const titleList = {\n title: '接口列表',\n addModalTitle: '新建接口',\n updateTitle: '修改',\n is_create: true, // 是否有【新建】按钮\n is_update: true, // 是否有【修改】按钮\n is_remove: true, // 是否有【删除】按钮\n is_recover: true, // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n apiurl_id: 'id',\n },\n delete: {\n apiurl_id: 'id',\n },\n recover: {\n apiurl_id: 'id',\n },\n updateData: {\n apiurl_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n width: 50,\n dataIndex: 'index',\n checked: true,\n fixed: 'left',\n },\n {\n title: '名称',\n dataIndex: 'name',\n checked: true,\n fixed: 'left',\n },\n {\n title: 'url',\n dataIndex: 'url',\n checked: true,\n },\n {\n title: '接口对应菜单',\n dataIndex: 'menu_list',\n checked: true,\n cellComponent: 'menu_list',\n },\n {\n title: '是否需要授权',\n width: 130,\n dataIndex: 'is_auth',\n checked: true,\n cellComponent: 'boolean',\n name1: '是',\n name2: '否',\n },\n {\n title: '是否可用',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '全部', value: '' },\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n {\n title: '操作',\n width: 170,\n dataIndex: 'action',\n checked: true,\n cellComponent: 'action',\n },\n ];\n\n return {\n searchConfig: search_config,\n formModalConfig: edit_model_config,\n updateFormModalConfig: update_model_config,\n queryData: '/permission/query_apiurl_list',\n addData: '/permission/create_apiurl',\n updateData: '/permission/update_apiurl',\n removeData: '/permission/delete_apiurl',\n recoverData: '/permission/recover_apiurl',\n baseColumns: baseColumns,\n titleList: titleList,\n api_fields: api_fields,\n btn_list: btn_list,\n head_btn_list: head_btn_list,\n event_obj: event_obj(),\n base_search_condition_config_list: [],\n default_search_condition_config_list: [[]],\n condition_group_config_list: [],\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n queryConditionGroupData: null,\n isView: false,\n };\n};\n","import { TableColumn } from 'liyu-pc-base/typing';\nimport { Record, SearchConfig } from 'liyu-pc-base/components/remotePages/typing';\n\nimport { reactive } from 'vue';\n\nexport default () => {\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写名称',\n },\n {\n type: 'input',\n name: 'corpid',\n label: 'CorpID',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写CorpID',\n },\n {\n type: 'input',\n name: 'appid',\n label: 'APPID',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPID',\n },\n\n {\n type: 'input',\n name: 'appkey',\n label: 'APPKey',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPKey',\n },\n {\n type: 'input',\n name: 'appsecret',\n label: 'APPSecret',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPSecret',\n },\n {\n type: 'radio',\n name: 'is_active',\n label: '状态',\n mode: 'default',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择状态',\n datasource: 'is_active',\n },\n ],\n rules: {},\n model: reactive({\n name: '',\n appid: '',\n corpid: '',\n appkey: '',\n appsecret: '',\n }),\n options: {\n is_active: [\n { name: '全部', value: '' },\n { name: '正常', value: true },\n { name: '作废', value: false },\n ],\n },\n };\n\n const edit_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写名称',\n },\n {\n type: 'input',\n name: 'corpid',\n label: 'CorpID',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写CorpID',\n },\n {\n type: 'input',\n name: 'appid',\n label: 'APPID',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPID',\n },\n {\n type: 'input',\n name: 'appkey',\n label: 'APPKey',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPKey',\n },\n {\n type: 'input',\n name: 'appsecret',\n label: 'APPSecret',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPSecret',\n },\n ],\n rules: {\n name: [{ required: true, message: '请输入名称' }],\n corpid: [{ required: true, message: '请填写CorpID' }],\n appid: [{ required: true, message: '请填写APPID' }],\n appkey: [{ required: true, message: '请填写APPKey' }],\n appsecret: [{ required: true, message: '请填写APPSecret' }],\n },\n model: {\n name: '',\n corpid: '',\n appid: '',\n appkey: '',\n appsecret: '',\n },\n options: {},\n };\n\n const update_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写名称',\n },\n {\n type: 'input',\n name: 'corpid',\n label: 'CorpID',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写CorpID',\n },\n {\n type: 'input',\n name: 'appid',\n label: 'APPID',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPID',\n },\n {\n type: 'input',\n name: 'appkey',\n label: 'APPKey',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPKey',\n },\n {\n type: 'input',\n name: 'appsecret',\n label: 'APPSecret',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写APPSecret',\n },\n ],\n rules: {\n name: [{ required: true, message: '请输入名称' }],\n corpid: [{ required: true, message: '请填写CorpID' }],\n appid: [{ required: true, message: '请填写APPID' }],\n appkey: [{ required: true, message: '请填写APPKey' }],\n appsecret: [{ required: true, message: '请填写APPSecret' }],\n },\n model: reactive({\n name: '',\n corpid: '',\n appid: '',\n appkey: '',\n appsecret: '',\n }),\n options: {},\n };\n\n const titleList = {\n title: '钉钉管理',\n addModalTitle: '新建钉钉信息',\n updateTitle: '修改',\n is_create: true, // 是否有【新建】按钮\n is_update: true, // 是否有【修改】按钮\n is_remove: true, // 是否有【删除】按钮\n is_recover: true, // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n token_id: 'id',\n },\n delete: {\n token_id: 'id',\n },\n recover: {\n token_id: 'id',\n },\n updateData: {\n token_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n width: 50,\n dataIndex: 'index',\n checked: true,\n fixed: 'left',\n },\n {\n title: '名称',\n width: 150,\n dataIndex: 'name',\n checked: true,\n fixed: 'left',\n },\n\n {\n title: 'CorpID',\n dataIndex: 'corpid',\n checked: true,\n },\n {\n title: 'APPID',\n dataIndex: 'appid',\n checked: true,\n },\n {\n title: 'APPKey',\n dataIndex: 'appkey',\n checked: true,\n },\n {\n title: 'APPSecret',\n dataIndex: 'appsecret',\n checked: true,\n },\n\n {\n title: 'PC端首页地址',\n dataIndex: 'pcurl',\n checked: true,\n },\n\n {\n title: '是否可用',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '全部', value: '' },\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n {\n title: '操作',\n checked: true,\n width: 50,\n dataIndex: 'action',\n cellComponent: 'action',\n fixed: 'right',\n },\n ];\n return {\n searchConfig: search_config,\n formModalConfig: edit_model_config,\n updateFormModalConfig: update_model_config,\n queryData: '/dd/query_ding_appinfo_list',\n addData: '/dd/create_ding_appinfo',\n updateData: '/dd/update_ding_appinfo',\n removeData: '/dd/delete_ding_appinfo',\n recoverData: '/dd/recover_ding_appinfo',\n baseColumns: baseColumns,\n titleList: titleList,\n api_fields: api_fields,\n base_search_condition_config_list: [],\n default_search_condition_config_list: [[]],\n condition_group_config_list: [],\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n queryConditionGroupData: null,\n isView: false,\n is_pagination: false,\n };\n};\n","import { reactive } from 'vue';\nimport { message, notification } from 'ant-design-vue';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport { addMenu, import_menu } from 'liyu-pc-base/api/permission/menu-manage';\nimport { queryOrgList } from 'liyu-pc-base/api/sys';\nimport { getApiData } from 'liyu-pc-base/api/api-model';\n\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\nimport { useEnv } from 'liyu-pc-base/init-plugin';\n\nexport const btn_list: BtnListConfig = [\n {\n name: '修改',\n clazz: 'primary',\n type: 'dropdown',\n is_show: ({ record }) => {\n return record.is_active;\n },\n cb: ({ record }) => {\n const env = useEnv();\n const list: any[] = [];\n const list1: any[] = [];\n if (record.org_id_list && record.org_id_list.length > 0) {\n record.org_id_list.forEach((item: any) => {\n list.push(item.id);\n });\n }\n if (record.url_id_list && record.url_id_list.length > 0) {\n record.url_id_list.forEach((item: any) => {\n list1.push(item.id);\n });\n }\n let type;\n let component_type;\n if (record.is_menu) {\n if (record.component) {\n if (record.component == '@/components/remotePages/index.vue') {\n component_type = 0;\n } else {\n component_type = 1;\n }\n type = 0;\n } else {\n type = 1;\n }\n } else {\n type = 2;\n }\n let suffix = null;\n let state = null;\n if (record.state && record.state?.split('-') && record.state?.split('-')?.length > 0) {\n const suffixs = record.state?.split('-');\n if (suffixs.length == 3) {\n suffix = suffixs[suffixs.length - 1];\n suffixs.pop();\n state = suffixs.join('-');\n } else {\n state = record.state;\n }\n } else {\n state = record.state;\n }\n const editModal = reactive<any>({\n open: true,\n loading: false,\n title: '修改菜单',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n dynamicFieldList: [\n {\n children: [\n {\n type: 'input',\n name: 'name',\n label: '菜单名称',\n label_i18n: '菜单名称',\n placeholder_i18n: '请填写菜单名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写菜单名称',\n span: 12,\n },\n {\n type: 'select',\n name: 'platform',\n label: '平台',\n label_i18n: '平台',\n placeholder_i18n: '请选择平台',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择平台',\n datasource: 'platform',\n mode: 'default',\n span: 12,\n },\n {\n type: 'radio',\n name: 'type',\n label: '菜单类型',\n label_i18n: '菜单类型',\n placeholder_i18n: '请选择菜单类型',\n disabled: true,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择菜单类型',\n datasource: 'type',\n mode: 'default',\n span: 12,\n },\n {\n type: 'input',\n name: 'state',\n label: '路由',\n label_i18n: '路由',\n placeholder_i18n: '请填写路由',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写路由',\n span: 8,\n },\n {\n type: 'input',\n name: 'suffix',\n label: '后缀',\n label_i18n: '后缀',\n placeholder_i18n: '后缀',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '后缀',\n span: 4,\n },\n {\n type: 'radio',\n name: 'component_type',\n label: '组件地址类型',\n label_i18n: '组件地址类型',\n placeholder_i18n: '请选择组件地址类型',\n disabled: false,\n datasource: 'component_type',\n maxlength: 100,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '请填写组件地址',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'type',\n class_name: 'int',\n operator: 'eq',\n value: [0],\n },\n ],\n ],\n },\n {\n type: 'input',\n name: 'component',\n label: '组件地址',\n label_i18n: '组件地址',\n placeholder_i18n: '请填写组件地址',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写组件地址',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'component_type',\n class_name: 'int',\n operator: 'eq',\n value: [1],\n },\n ],\n ],\n },\n {\n type: 'number',\n name: 'sort',\n label: '菜单索引',\n label_i18n: '菜单索引',\n placeholder_i18n: '请填写菜单索引',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写菜单索引',\n span: 12,\n },\n {\n type: 'remotetreeselectpro',\n name: 'parent_id',\n label: '父级菜单',\n label_i18n: '父级菜单',\n placeholder_i18n: '请选择父级菜单',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n valueKey: 'id',\n labelKey: 'name',\n placeholder: '请选择父级菜单',\n postUrl: '/permission/query_menu_list__tree',\n span: 12,\n },\n {\n type: 'iconselect',\n name: 'icon',\n label: '菜单图标',\n label_i18n: '请选择菜单图标',\n placeholder: '请选择菜单图标',\n placeholder_i18n: '请选择菜单图标',\n span: 12,\n },\n {\n type: 'remoteselectpro',\n name: 'org_ids',\n label: '隶属组织',\n label_i18n: '隶属组织',\n placeholder_i18n: '请选择组织',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请选择组织',\n datasource: 'org_ids',\n show_search: false,\n // maxTagCount: 5,\n mode: 'multiple',\n postUrl: '/org/query_org_for_login_list',\n span: 12,\n },\n {\n type: 'remotemodal',\n name: 'url_ids',\n label: '接口',\n label_i18n: '接口',\n placeholder_i18n: '接口',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '接口',\n datasource: 'urls',\n show_search: false,\n maxTagCount: 5,\n mode: 'multiple',\n title: '选择多个API接口',\n modalType: 'api-url',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'type',\n class_name: 'int',\n operator: 'eq',\n value: [2],\n },\n ],\n ],\n },\n ],\n },\n ],\n rules: reactive({\n suffix: [\n {\n pattern: /^[^-]*$/,\n message: \"不能带有'-'\",\n trigger: 'blur',\n },\n ],\n state: [{ pattern: /^[^-]+-[^-]+$/, message: \"路由中间必须带有'-'\" }],\n }),\n model: reactive({\n name: record.name,\n menu_id: record.id,\n platform: record.platform,\n icon: record.icon,\n state: state,\n sort: record.sort,\n parent_id: record.parent_id,\n component: record.component,\n org_ids: list,\n url_ids: list1,\n menu_project: record.menu_project,\n suffix: suffix,\n type: type,\n component_type: component_type,\n update_field_list: [\n 'name',\n 'platform',\n 'state',\n 'sort',\n 'parent_id',\n 'is_menu',\n 'org_ids',\n 'url_ids',\n 'menu_name',\n 'menu_path',\n 'component',\n 'chinese_name',\n 'english_name',\n 'icon',\n ],\n }),\n watch: {\n type: (data: any) => {\n if (data.type == 0) {\n setTimeout(() => {\n data.component_type = 0;\n }, 500);\n }\n },\n },\n options: {\n platform: [\n { name: 'PC', value: '10' },\n { name: '手机端', value: '20' },\n ],\n type: [\n { name: '菜单', value: 0 },\n { name: '菜单分组', value: 1 },\n { name: '按钮', value: 2 },\n ],\n component_type: [\n { name: '默认', value: 0 },\n { name: '其他', value: 1 },\n ],\n },\n },\n ok: (data1: any) => {\n return new Promise(resolve => {\n let org_ids = '';\n let url_ids = '';\n if (data1.org_ids && data1.org_ids.length > 0) {\n org_ids = data1.org_ids.join(',');\n }\n if (data1.url_ids && data1.url_ids.length > 0) {\n url_ids = data1.url_ids.join(',');\n }\n let state = data1.state;\n if (data1.suffix) {\n state = state + '-' + data1.suffix;\n }\n let menu_path = null;\n let menu_name = null;\n if (\n data1.type == 0 &&\n data1.state &&\n data1.state?.split('-') &&\n data1.state?.split('-').length != 2\n ) {\n notification.info({\n message: '温馨提示',\n description: '路由 格式不正确!应为 <app_flag>-<model_name>',\n });\n return;\n } else if (data1.type == 2) {\n menu_path = null;\n menu_name = null;\n } else {\n const str = data1.state?.split('-')[0];\n menu_path = '/' + str + '/' + state;\n menu_name = state;\n }\n if (record.state == state) {\n menu_path = null;\n menu_name = null;\n }\n if (data1.type == 0 && data1.component_type == 0) {\n data1.component = '@/components/remotePages/index.vue';\n }\n if (data1.type == 0 && !data1.component) {\n notification.info({\n message: '温馨提示',\n description: '请填写组件地址!',\n });\n return;\n }\n const is_menu = data1.type != 2;\n editModal.loading = true;\n getApiData(\n {\n ...data1,\n org_ids: org_ids,\n is_menu: is_menu,\n state: state,\n menu_name: menu_name,\n menu_path: menu_path,\n url_ids: url_ids,\n },\n '/permission/update_menu',\n )\n .then(() => {\n message.success('修改成功');\n event_obj().emit('refresh');\n resolve(null);\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n },\n });\n if (env.VITE_APP_HAS_PROJECT) {\n editModal.form.dynamicFieldList[0].children.push({\n type: 'remoteselectpro',\n name: 'menu_project',\n label: '模块',\n label_i18n: '模块',\n placeholder_i18n: '请选择模块',\n disabled: false,\n placeholder: '请选择模块',\n datasourceType: 'remote',\n mode: 'default',\n allowClear: true,\n show_search: true,\n labelKey: 'name',\n valueKey: 'project',\n postUrl: '/i18n/query_language_project_list',\n span: 12,\n });\n }\n modalBox(editModal);\n },\n },\n {\n name: '新建子菜单',\n clazz: 'primary',\n cb: ({ record }) => {\n const env = useEnv();\n const list: any[] = [];\n if (record.org_id_list && record.org_id_list.length > 0) {\n record.org_id_list.forEach((item: any) => {\n list.push(item.id);\n });\n }\n const org__ids = [];\n getApiData(\n {\n is_active: true,\n pageSize: 2000,\n },\n '/org/query_org_for_login_list',\n ).then((res: any) => {\n if (res && res.data && res.data.length > 0) {\n res.data.forEach((item: any) => {\n org__ids.push(item.id);\n });\n }\n });\n const editModal = reactive<any>({\n open: true,\n loading: false,\n title: '新建子菜单',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n dynamicFieldList: [\n {\n children: [\n {\n type: 'input',\n name: 'name',\n label: '菜单名称',\n label_i18n: '菜单名称',\n placeholder_i18n: '请填写菜单名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写菜单名称',\n span: 12,\n },\n {\n type: 'select',\n name: 'platform',\n label: '平台',\n label_i18n: '平台',\n placeholder_i18n: '请选择平台',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择平台',\n datasource: 'platform',\n mode: 'default',\n span: 12,\n },\n {\n type: 'radio',\n name: 'state_type',\n label: '路由类型',\n label_i18n: '路由类型',\n placeholder_i18n: '请选择路由类型',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择路由类型',\n datasource: 'state_type',\n mode: 'default',\n span: 12,\n },\n {\n type: 'remoteselectpro',\n name: 'state',\n label: '路由',\n label_i18n: '路由',\n placeholder_i18n: '请选择路由',\n disabled: false,\n defaultValue: '',\n labelKeyList: ['value', 'name'],\n valueKey: 'value',\n init_model: { has_underscore: true },\n placeholder: '请填写路由',\n datasource: 'org_ids',\n show_search: true,\n mode: 'default',\n postUrl: '/sys/base_model_list',\n span: 8,\n conditions: [\n [\n {\n watchKey: 'state_type',\n class_name: 'int',\n operator: 'eq',\n value: [0],\n },\n ],\n ],\n },\n {\n type: 'input',\n name: 'state',\n label: '路由',\n label_i18n: '路由',\n placeholder_i18n: '请填写路由',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写路由',\n span: 8,\n conditions: [\n [\n {\n watchKey: 'state_type',\n class_name: 'int',\n operator: 'eq',\n value: [1],\n },\n ],\n ],\n },\n {\n type: 'input',\n name: 'suffix',\n label: '后缀',\n label_i18n: '后缀',\n placeholder_i18n: '后缀',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '后缀',\n span: 4,\n },\n {\n type: 'radio',\n name: 'type',\n label: '菜单类型',\n label_i18n: '菜单类型',\n placeholder_i18n: '请选择菜单类型',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择菜单类型',\n datasource: 'type',\n mode: 'default',\n span: 12,\n },\n {\n type: 'radio',\n name: 'component_type',\n label: '组件地址类型',\n label_i18n: '组件地址类型',\n placeholder_i18n: '请选择组件地址类型',\n disabled: false,\n datasource: 'component_type',\n maxlength: 100,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '请填写组件地址',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'type',\n class_name: 'int',\n operator: 'eq',\n value: [0],\n },\n ],\n ],\n },\n {\n type: 'input',\n name: 'component',\n label: '组件地址',\n label_i18n: '组件地址',\n placeholder_i18n: '请填写组件地址',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写组件地址',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'component_type',\n class_name: 'int',\n operator: 'eq',\n value: [1],\n },\n ],\n ],\n },\n {\n type: 'number',\n name: 'sort',\n label: '菜单索引',\n label_i18n: '菜单索引',\n placeholder_i18n: '请填写菜单索引',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写菜单索引',\n span: 12,\n },\n {\n type: 'remotetreeselectpro',\n name: 'parent_id',\n label: '父级菜单',\n label_i18n: '父级菜单',\n placeholder_i18n: '请选择父级菜单',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n valueKey: 'id',\n labelKey: 'name',\n placeholder: '请选择父级菜单',\n postUrl: '/permission/query_menu_list__tree',\n span: 12,\n },\n {\n type: 'iconselect',\n name: 'icon',\n label: '菜单图标',\n label_i18n: '请选择菜单图标',\n placeholder: '请选择菜单图标',\n placeholder_i18n: '请选择菜单图标',\n span: 12,\n },\n {\n type: 'radio',\n name: 'org_type',\n label: '隶属组织',\n label_i18n: '隶属组织',\n placeholder_i18n: '请选择隶属组织',\n disabled: false,\n datasource: 'org_type',\n maxlength: 100,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '请选择隶属组织',\n span: 12,\n },\n {\n type: 'remoteselectpro',\n name: 'org_ids',\n label: '隶属组织',\n label_i18n: '隶属组织',\n placeholder_i18n: '请选择组织',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请选择组织',\n datasource: 'org_ids',\n show_search: false,\n maxTagCount: 5,\n mode: 'multiple',\n postUrl: '/org/query_org_for_login_list',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'org_type',\n class_name: 'int',\n operator: 'eq',\n value: [1],\n },\n ],\n ],\n },\n {\n type: 'remotemodal',\n name: 'url_ids',\n label: '接口',\n label_i18n: '接口',\n placeholder_i18n: '接口',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '接口',\n datasource: 'urls',\n show_search: false,\n maxTagCount: 5,\n mode: 'multiple',\n title: '选择多个API接口',\n modalType: 'api-url',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'type',\n class_name: 'int',\n operator: 'eq',\n value: [2],\n },\n ],\n ],\n },\n ],\n },\n ],\n rules: reactive({\n name: [{ required: true, message: '请填写菜单名称' }],\n state: [\n { required: true, message: '请填写路由' },\n { pattern: /^[^-]+-[^-]+$/, message: \"路由中间必须带有'-'\" },\n ],\n sort: [{ required: true, message: '请填写菜单索引' }],\n org_ids: [{ required: true, message: '请选择组织' }],\n suffix: [\n {\n pattern: /^[^-]*$/,\n message: \"不能带有'-'\",\n },\n ],\n }),\n model: reactive({\n name: null,\n menu_id: null,\n platform: '10',\n icon: null,\n state: null,\n sort: null,\n parent_id: record.id,\n type: 0,\n component_type: 0,\n state_type: 0,\n org_type: 1,\n component: null,\n org_ids: list,\n url_ids: null,\n menu_project: record.menu_project,\n }),\n watch: {\n type: (data: any) => {\n if (data.type == 0) {\n setTimeout(() => {\n data.component_type = 0;\n }, 500);\n }\n },\n },\n options: {\n platform: [\n { name: 'PC', value: '10' },\n { name: '手机端', value: '20' },\n ],\n type: [\n { name: '菜单', value: 0 },\n { name: '菜单分组', value: 1 },\n { name: '按钮', value: 2 },\n ],\n component_type: [\n { name: '默认', value: 0 },\n { name: '其他', value: 1 },\n ],\n org_type: [\n { name: '全部', value: 0 },\n { name: '自定义', value: 1 },\n ],\n state_type: [\n { name: '选择', value: 0 },\n { name: '其他', value: 1 },\n ],\n },\n },\n ok: data => {\n let org_ids = '';\n let url_ids = '';\n if (data.org_ids && data.org_ids.length > 0) {\n org_ids = data.org_ids.join(',');\n }\n if (data.org_type == 0) {\n org_ids = org__ids.join(',');\n }\n if (data.url_ids && data.url_ids.length > 0) {\n url_ids = data.url_ids.join(',');\n }\n let state = data.state;\n if (data.suffix) {\n state = state + '-' + data.suffix;\n }\n let menu_path;\n let menu_name;\n if (\n data.type == 0 &&\n data.state &&\n data.state?.split('-') &&\n data.state?.split('-').length != 2\n ) {\n notification.info({\n message: '温馨提示',\n description: `路由 格式不正确!应为 <app_flag>-<model_name>`,\n });\n return;\n } else if (data.type == 2) {\n menu_path = null;\n menu_name = null;\n } else {\n const str = data.state?.split('-')[0];\n menu_path = '/' + str + '/' + state;\n menu_name = state;\n }\n if (data.type == 0 && data.component_type == 0) {\n data.component = '@/components/remotePages/index.vue';\n }\n if (data.type == 0 && !data.component) {\n notification.info({\n message: '温馨提示',\n description: '请填写组件地址!',\n });\n return;\n }\n const is_menu = data.type != 2;\n editModal.loading = true;\n if (data.is_all_org) {\n queryOrgList().then(res => {\n org_ids = res.data.map((item: any) => item.id).join(',');\n addMenu({\n ...data,\n org_ids: org_ids,\n url_ids: url_ids,\n state: state,\n menu_name: menu_name,\n menu_path: menu_path,\n is_menu: is_menu,\n })\n .then(() => {\n message.success('新增菜单成功');\n event_obj().emit('refresh');\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n } else {\n addMenu({\n ...data,\n org_ids: org_ids,\n url_ids: url_ids,\n state: state,\n menu_name: menu_name,\n menu_path: menu_path,\n is_menu: is_menu,\n })\n .then(() => {\n message.success('新增菜单成功');\n event_obj().emit('refresh');\n })\n .finally(() => {\n editModal.loading = false;\n });\n }\n },\n });\n if (env.VITE_APP_HAS_PROJECT) {\n editModal.form.dynamicFieldList[0].children.push({\n type: 'remoteselectpro',\n name: 'menu_project',\n label: '模块',\n disabled: false,\n placeholder: '请选择模块',\n datasourceType: 'remote',\n mode: 'default',\n allowClear: true,\n show_search: true,\n labelKey: 'name',\n valueKey: 'project',\n postUrl: '/i18n/query_language_project_list',\n span: 12,\n });\n }\n modalBox(editModal);\n },\n },\n {\n name: '修改菜单帮助',\n model_kind: 'form',\n type: 'dropdown',\n clazz: 'primary',\n show_condition: [\n [\n {\n flag: 'menu_path',\n type: 'string',\n operator: 'not_blank_not_null',\n value: ['true'],\n },\n ],\n ],\n model_config: {\n title: '修改菜单帮助',\n api_fields: {\n menu_id: 'id',\n },\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n dynamicFieldList: [\n {\n children: [\n {\n type: 'upload',\n label: '文件',\n disabled: false,\n access_type: 'public',\n maxCount: 1,\n listType: 'picture',\n group: 'sys',\n span: 24,\n acceptList: ['.pdf'],\n name: 'helper_files',\n placeholder: '请选择文件上传',\n pull: 0,\n push: 0,\n offset: 0,\n queryType: 'advanced',\n },\n ],\n },\n ],\n model: {\n helper_files: [],\n },\n rules: {},\n options: {},\n },\n ok_url: '/permission/update_menu_helper',\n },\n authority: 'permission/update_menu_helper',\n },\n];\n\nexport const config = {\n creatCol: [],\n updateCol: [],\n};\nexport const head_btn_list: HeadBtnListConfig = [\n // {\n // name: '批量新建按钮',\n // clazz: 'primary',\n // authority: 'permissi-menu/batch_create_button',\n // urls: [\n // '/org/query_org_for_login_list',\n // '/permission/update_multi_menus_by_json',\n // '/permission/query_apiurl_list',\n // '/sys/query_all_global_custom_data_by_flags_list_without_org_id',\n // ],\n // model_kind: 'custom_component',\n // model_config: {\n // component: 'PermissionBatchCreate',\n // },\n // is_disabled: ({ dataSource }: { dataSource: any[] }) => {\n // return !dataSource || dataSource.length === 0;\n // },\n // },\n {\n name: '新建菜单',\n clazz: 'primary',\n cb: () => {\n const userStore = useUserStore();\n const env = useEnv();\n const current_org = userStore.currentOrg;\n const org__ids = [];\n getApiData(\n {\n org_id: current_org?.org_id,\n is_active: true,\n pageSize: 2000,\n },\n '/org/query_org_for_login_list',\n ).then((res: any) => {\n if (res && res.data && res.data.length > 0) {\n res.data.forEach((item: any) => {\n org__ids.push(item.id);\n });\n }\n });\n const editModal = reactive<any>({\n open: true,\n loading: false,\n title: '新建菜单',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n dynamicFieldList: [\n {\n children: [\n {\n type: 'input',\n name: 'name',\n label: '菜单名称',\n label_i18n: '菜单名称',\n placeholder_i18n: '请填写菜单名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写菜单名称',\n span: 12,\n },\n {\n type: 'select',\n name: 'platform',\n label: '平台',\n label_i18n: '平台',\n placeholder_i18n: '请选择平台',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择平台',\n datasource: 'platform',\n mode: 'default',\n span: 12,\n },\n {\n type: 'radio',\n name: 'state_type',\n label: '路由类型',\n label_i18n: '路由类型',\n placeholder_i18n: '请选择路由类型',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择路由类型',\n datasource: 'state_type',\n mode: 'default',\n span: 12,\n },\n {\n type: 'remoteselectpro',\n name: 'state',\n label: '路由',\n label_i18n: '路由',\n placeholder_i18n: '请选择路由',\n disabled: false,\n defaultValue: '',\n labelKeyList: ['value', 'name'],\n valueKey: 'value',\n init_model: { has_underscore: true },\n placeholder: '请填写路由',\n datasource: 'org_ids',\n show_search: true,\n mode: 'default',\n postUrl: '/sys/base_model_list',\n span: 8,\n conditions: [\n [\n {\n watchKey: 'state_type',\n class_name: 'int',\n operator: 'eq',\n value: [0],\n },\n ],\n ],\n },\n {\n type: 'input',\n name: 'state',\n label: '路由',\n label_i18n: '路由',\n placeholder_i18n: '请填写路由',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写路由',\n span: 8,\n conditions: [\n [\n {\n watchKey: 'state_type',\n class_name: 'int',\n operator: 'eq',\n value: [1],\n },\n ],\n ],\n },\n {\n type: 'input',\n name: 'suffix',\n label: '后缀',\n label_i18n: '后缀',\n placeholder_i18n: '后缀',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '后缀',\n span: 4,\n },\n {\n type: 'radio',\n name: 'type',\n label: '菜单类型',\n label_i18n: '菜单类型',\n placeholder_i18n: '请选择菜单类型',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择菜单类型',\n datasource: 'type',\n mode: 'default',\n span: 12,\n },\n {\n type: 'radio',\n name: 'component_type',\n label: '组件地址类型',\n label_i18n: '组件地址类型',\n placeholder_i18n: '请选择组件地址类型',\n disabled: false,\n datasource: 'component_type',\n maxlength: 100,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '请填写组件地址',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'type',\n class_name: 'int',\n operator: 'eq',\n value: [0],\n },\n ],\n ],\n },\n {\n type: 'input',\n name: 'component',\n label: '组件地址',\n label_i18n: '组件地址',\n placeholder_i18n: '请填写组件地址',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写组件地址',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'component_type',\n class_name: 'int',\n operator: 'eq',\n value: [1],\n },\n ],\n ],\n },\n {\n type: 'number',\n name: 'sort',\n label: '菜单索引',\n label_i18n: '菜单索引',\n placeholder_i18n: '请填写菜单索引',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写菜单索引',\n span: 12,\n },\n {\n type: 'remotetreeselectpro',\n name: 'parent_id',\n label: '父级菜单',\n label_i18n: '父级菜单',\n placeholder_i18n: '请选择父级菜单',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n valueKey: 'id',\n labelKey: 'name',\n placeholder: '请选择父级菜单',\n postUrl: '/permission/query_menu_list__tree',\n span: 12,\n },\n {\n type: 'iconselect',\n name: 'icon',\n label: '菜单图标',\n label_i18n: '请选择菜单图标',\n placeholder: '请选择菜单图标',\n placeholder_i18n: '请选择菜单图标',\n span: 12,\n },\n {\n type: 'radio',\n name: 'org_type',\n label: '隶属组织',\n label_i18n: '隶属组织',\n placeholder_i18n: '请选择隶属组织',\n disabled: false,\n datasource: 'org_type',\n maxlength: 100,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '请选择隶属组织',\n span: 12,\n },\n {\n type: 'remoteselectpro',\n name: 'org_ids',\n label: '隶属组织',\n label_i18n: '隶属组织',\n placeholder_i18n: '请选择组织',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请选择组织',\n datasource: 'org_ids',\n show_search: false,\n maxTagCount: 5,\n mode: 'multiple',\n postUrl: '/org/query_org_for_login_list',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'org_type',\n class_name: 'int',\n operator: 'eq',\n value: [1],\n },\n ],\n ],\n },\n {\n type: 'remotemodal',\n name: 'url_ids',\n label: '接口',\n label_i18n: '接口',\n placeholder_i18n: '接口',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '接口',\n datasource: 'urls',\n show_search: false,\n maxTagCount: 5,\n mode: 'multiple',\n title: '选择多个API接口',\n modalType: 'api-url',\n span: 12,\n conditions: [\n [\n {\n watchKey: 'type',\n class_name: 'int',\n operator: 'eq',\n value: [2],\n },\n ],\n ],\n },\n ],\n },\n ],\n rules: reactive({\n name: [{ required: true, message: '请填写菜单名称' }],\n state: [\n { required: true, message: '请填写路由' },\n { pattern: /^[^-]+-[^-]+$/, message: \"路由中间必须带有'-'\" },\n ],\n sort: [{ required: true, message: '请填写菜单索引' }],\n org_ids: [{ required: true, message: '请选择组织' }],\n suffix: [\n {\n pattern: /^[^-]*$/,\n message: \"不能带有'-'\",\n },\n ],\n }),\n model: reactive({\n name: '',\n platform: '10',\n state: '',\n sort: '',\n icon: '',\n parent_id: '',\n component: '',\n type: 0,\n org_ids: [],\n url_ids: [],\n menu_project: '',\n component_type: 0,\n org_type: 0,\n state_type: 0,\n suffix: null,\n }),\n watch: {\n type: (data: any) => {\n if (data.type == 0) {\n setTimeout(() => {\n data.component_type = 0;\n }, 500);\n }\n },\n },\n options: {\n platform: [\n { name: 'PC', value: '10' },\n { name: '手机端', value: '20' },\n ],\n type: [\n { name: '菜单', value: 0 },\n { name: '菜单分组', value: 1 },\n { name: '按钮', value: 2 },\n ],\n component_type: [\n { name: '默认', value: 0 },\n { name: '其他', value: 1 },\n ],\n org_type: [\n { name: '全部', value: 0 },\n { name: '自定义', value: 1 },\n ],\n state_type: [\n { name: '选择', value: 0 },\n { name: '其他', value: 1 },\n ],\n },\n },\n ok: (data1: any) => {\n return new Promise(resolve => {\n let org_ids = '';\n let url_ids = '';\n if (data1.org_ids && data1.org_ids.length > 0) {\n org_ids = data1.org_ids.join(',');\n }\n if (data1.org_type == 0) {\n org_ids = org__ids.join(',');\n }\n if (data1.url_ids && data1.url_ids.length > 0) {\n url_ids = data1.url_ids.join(',');\n }\n let state = data1.state;\n if (data1.suffix) {\n state = state + '-' + data1.suffix;\n }\n let menu_path;\n let menu_name;\n if (\n data1.type == 0 &&\n data1.state &&\n data1.state?.split('-') &&\n data1.state?.split('-').length != 2\n ) {\n notification.info({\n message: '温馨提示',\n description: '路由 格式不正确!应为 <app_flag>-<model_name>',\n });\n return;\n } else if (data1.type == 2) {\n menu_path = null;\n menu_name = null;\n } else {\n const str = data1.state?.split('-')[0];\n menu_path = '/' + str + '/' + state;\n menu_name = state;\n }\n if (data1.type == 0 && data1.component_type == 0) {\n data1.component = '@/components/remotePages/index.vue';\n }\n if (data1.type == 0 && !data1.component) {\n notification.info({\n message: '温馨提示',\n description: '请填写组件地址!',\n });\n return;\n }\n const is_menu = data1.type != 2;\n editModal.loading = true;\n getApiData(\n {\n ...data1,\n org_id: current_org.id,\n is_menu: is_menu,\n state: state,\n menu_name: menu_name,\n menu_path: menu_path,\n org_ids: org_ids,\n url_ids: url_ids,\n },\n '/permission/create_menu',\n )\n .then(() => {\n message.success('创建成功');\n event_obj().emit('refresh');\n resolve(null);\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n },\n });\n if (env.VITE_APP_HAS_PROJECT) {\n editModal.form.dynamicFieldList[0].children.push({\n type: 'remoteselectpro',\n name: 'menu_project',\n label: '模块',\n disabled: false,\n placeholder: '请选择模块',\n datasourceType: 'remote',\n mode: 'default',\n allowClear: true,\n show_search: true,\n labelKey: 'name',\n valueKey: 'project',\n postUrl: '/i18n/query_language_project_list',\n span: 12,\n });\n }\n modalBox(editModal);\n },\n },\n {\n name: '导出菜单',\n clazz: 'primary',\n model_kind: 'custom_component',\n model_config: {\n component: 'ExportMenu',\n },\n },\n {\n name: '导入完整菜单',\n clazz: 'primary',\n cb: () => {\n const userStore = useUserStore();\n const current_org = userStore.currentOrg;\n const editModal = reactive({\n visible: true,\n loading: false,\n title: '导入菜单',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n },\n fields: [\n {\n type: 'textarea',\n name: 'menu_json',\n label: '菜单JSON',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '菜单JSON',\n },\n ],\n rules: {},\n model: reactive({\n org_id: current_org?.id,\n }),\n watch: {},\n },\n options: {},\n ok: (data: any) => {\n editModal.loading = true;\n const p = new Promise((resolve: any) => {\n import_menu(data)\n .then(() => {\n resolve(null);\n message.success('导入菜单成功');\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n return p;\n },\n });\n modalBox(editModal);\n },\n },\n {\n name: '更新菜单',\n clazz: 'primary',\n model_kind: 'custom_component',\n model_config: {\n component: 'ImportMenu',\n },\n },\n];","import type { TableColumn } from 'liyu-pc-base/typing';\nimport type { Record, SearchConfig } from 'liyu-pc-base/components/remotePages/typing';\nimport { btn_list, head_btn_list } from './permission-menu-config';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport { reactive } from 'vue';\nimport { useEnv } from 'liyu-pc-base/init-plugin';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const env = useEnv();\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n name: 'is_active',\n label: '是否可用',\n disabled: false,\n allowClear: true,\n placeholder: '请选择是否可用',\n type: 'select',\n labelKey: 'name',\n },\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '目标组织',\n disabled: false,\n placeholder: '请选择目标组织',\n datasourceType: 'remote',\n mode: 'default',\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n modalType: 'sys-query_org_for_login_list',\n },\n {\n type: 'input',\n name: 'name',\n label: '菜单名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'input',\n name: 'state',\n label: '路由',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写路由',\n },\n {\n type: 'remotetreeselectpro',\n name: 'parent_id',\n label: '父级菜单',\n label_i18n: '父级菜单',\n placeholder_i18n: '请选择父级菜单',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n valueKey: 'value',\n labelKey: 'title',\n placeholder: '请选择父级菜单',\n postUrl: '/permission/query_menu_list__tree',\n init_model: {\n aim_org_id: current_org?.id,\n },\n },\n ],\n rules: {},\n model: reactive({\n org_id: current_org.id,\n aim_org_id: current_org.id,\n tree_struct_simulation: true,\n is_active: true,\n get_menu: true,\n state: null,\n parent_id: null,\n name: null,\n }),\n options: {\n is_active: [\n { name: '全部', value: '' },\n { name: '可用', value: true },\n { name: '禁用', value: false },\n ],\n },\n default_column_field: ['parent_id', 'index'],\n };\n\n const titleList = {\n title: '权限管理',\n addModalTitle: '新建角色',\n updateTitle: '修改',\n is_create: false, // 是否有【新建】按钮\n is_update: false, // 是否有【修改】按钮\n is_remove: 'permission/delete_menu', // 是否有【删除】按钮\n is_recover: 'permission/recover_menu', // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n menu_id: 'id',\n },\n delete: {\n menu_id: 'id',\n },\n recover: {\n menu_id: 'id',\n },\n updateData: {\n org_id: 'org_id',\n menu_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: 'id',\n dataIndex: 'id',\n width: 80,\n checked: false,\n fixed: 'left',\n },\n {\n title: '名称',\n width: 300,\n checked: true,\n dataIndex: 'name',\n fixed: 'left',\n },\n {\n title: '路由',\n dataIndex: 'state',\n checked: true,\n minWidth: 300,\n },\n {\n title: '菜单_菜单图标',\n width: 100,\n dataIndex: 'icon',\n checked: true,\n resizable: true,\n cellComponent: 'icon',\n },\n {\n title: '菜单_路由',\n dataIndex: 'state',\n width: 300,\n checked: false,\n resizable: true,\n },\n {\n title: '菜单_菜单地址',\n dataIndex: 'menu_path',\n width: 300,\n checked: false,\n resizable: true,\n },\n {\n title: '菜单_菜单标识',\n dataIndex: 'menu_name',\n width: 300,\n checked: false,\n resizable: true,\n },\n {\n title: '菜单_组件地址',\n dataIndex: 'component',\n width: 300,\n checked: false,\n resizable: true,\n },\n {\n title: '隶属组织列表',\n dataIndex: 'org_id_list',\n minWidth: 400,\n checked: false,\n cellComponent: 'list',\n },\n {\n title: '平台',\n dataIndex: 'platform',\n width: 60,\n checked: true,\n cellComponent: 'tag',\n contentMap: {\n '10': 'PC',\n '20': '手机端',\n },\n colorMap: {\n '10': 'green',\n '20': 'red',\n },\n },\n {\n title: '索引',\n width: 60,\n checked: true,\n dataIndex: 'sort',\n },\n {\n title: '是否菜单',\n dataIndex: 'is_menu',\n width: 80,\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '菜单',\n name2: '按钮',\n },\n {\n title: '菜单帮助',\n dataIndex: 'helper_files',\n minWidth: 100,\n checked: true,\n cellComponent: 'pdf',\n formatExcelValue: 'file',\n },\n {\n title: '绝对路径',\n dataIndex: 'menu_url',\n minWidth: 100,\n checked: false,\n },\n {\n title: '图标url',\n dataIndex: 'icon_url',\n minWidth: 100,\n checked: true,\n },\n {\n title: '状态',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n {\n title: '对应接口',\n dataIndex: 'url_id_list',\n width: 800,\n checked: false,\n cellComponent: 'list',\n },\n {\n title: '操作',\n width: 50,\n dataIndex: 'action',\n checked: true,\n cellComponent: 'action',\n fixed: 'right',\n },\n ];\n if (env.VITE_APP_HAS_PROJECT) {\n baseColumns.splice(5, 0, {\n title: '模块',\n dataIndex: 'menu_project__name',\n minWidth: 100,\n checked: true,\n });\n search_config.fields.push({\n type: 'remotetreeselectpro',\n name: 'menu_project',\n label: '模块',\n label_i18n: '模块',\n placeholder_i18n: '请选择模块',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n valueKey: 'project',\n labelKey: 'name',\n placeholder: '请选择模块',\n postUrl: '/i18n/query_language_project_list',\n });\n }\n return {\n searchConfig: search_config,\n queryData: '/permission/query_menu_list__tree',\n baseColumns,\n titleList,\n api_fields,\n btn_list,\n head_btn_list,\n event_obj: event_obj(),\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n isView: false,\n };\n};","import type { TableColumn } from 'liyu-pc-base/typing';\n\nexport default () => {\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n dataIndex: 'index',\n checked: true,\n width: 70,\n fixed: 'left',\n },\n {\n title: 'ID',\n width: 150,\n dataIndex: 'id',\n checked: false,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '标题',\n width: 150,\n dataIndex: 'name',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n filterMultiple: true,\n cellComponent: 'tag',\n contentMap: {\n simple: '简单匹配',\n regex: '正则匹配',\n },\n colorMap: {\n simple: 'green',\n regex: 'cyan',\n },\n filters: [\n {\n value: 'simple',\n text: '简单匹配',\n },\n {\n value: 'regex',\n text: '正则匹配',\n },\n ],\n title: '匹配类型',\n width: 150,\n dataIndex: 'match_type',\n checked: true,\n ellipsis: true,\n resizable: true,\n formatExcelValue: 'tag',\n },\n {\n title: '路径匹配',\n width: 150,\n dataIndex: 'content',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n title: '文件',\n width: 150,\n dataIndex: 'files',\n checked: true,\n ellipsis: true,\n resizable: true,\n cellComponent: 'pdf',\n formatExcelValue: 'file',\n },\n {\n filterMultiple: false,\n cellComponent: 'tag',\n contentMap: {\n true: '可用',\n false: '禁用',\n },\n colorMap: {\n true: 'green',\n false: 'red',\n },\n filters: [\n {\n value: 'true',\n text: '可用',\n },\n {\n value: 'false',\n text: '禁用',\n },\n ],\n title: '是否可用',\n width: 150,\n dataIndex: 'is_active',\n checked: true,\n ellipsis: true,\n resizable: true,\n formatExcelValue: 'tag',\n },\n {\n contentFunc: '({text}) => getDateTime(text)',\n title: '创建时间',\n width: 150,\n dataIndex: 'create_time',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n {\n contentFunc: '({text}) => getDateTime(text)',\n title: '更新时间',\n width: 150,\n dataIndex: 'update_time',\n checked: true,\n ellipsis: true,\n resizable: true,\n },\n ];\n const formModalConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n dynamicFieldList: [\n {\n children: [\n {\n type: 'input',\n name: 'name',\n label: '标题',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写标题',\n span: 24,\n required_condition: null,\n },\n {\n type: 'radio',\n name: 'match_type',\n label: '匹配类型',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '请选择匹配类型',\n span: 24,\n required_condition: null,\n queryType: 'advanced',\n },\n {\n type: 'remotecomplete',\n label: '路径匹配',\n disabled: false,\n allowClear: true,\n valueKey: 'menu_path',\n labelKeyType: 1,\n labelKey: 'name',\n labelKeyList: [],\n labelSpace: '-',\n mode: 'default',\n placeholder: '请输入内容',\n show_search: true,\n datasourceType: 'remote',\n queryType: 'advanced',\n searchConditions: [\n [\n {\n searchType: 3,\n field_name: 'is_active',\n operator: 'eq',\n value: [true],\n format: 'choices',\n class_name: 'bool',\n },\n ],\n ],\n simpleSearchConditions: [\n {\n searchType: 3,\n field_name: 'is_active',\n value: true,\n },\n ],\n postUrl: '/permission/query_menu_list',\n name: 'content',\n span: 24,\n pull: 0,\n push: 0,\n offset: 0,\n },\n {\n type: 'upload',\n label: '文件',\n disabled: false,\n access_type: 'public',\n maxCount: 1,\n listType: 'picture',\n group: 'sys',\n span: 24,\n acceptList: ['.pdf'],\n name: 'files',\n placeholder: '请输入文件',\n pull: 0,\n push: 0,\n offset: 0,\n queryType: 'advanced',\n },\n ],\n },\n ],\n model: {\n update_field_list: ['name', 'match_type', 'content', 'files'],\n name: null,\n match_type: 'simple',\n files: [],\n },\n rules: {\n name: [\n {\n required: true,\n message: '请填输入标题',\n },\n ],\n },\n options: {\n match_type: [\n {\n name: '简单匹配',\n value: 'simple',\n valueType: 'str',\n },\n {\n name: '正则匹配',\n value: 'regex',\n valueType: 'str',\n },\n ],\n },\n };\n const updateFormModalConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n dynamicFieldList: [\n {\n children: [\n {\n type: 'input',\n name: 'name',\n label: '标题',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写标题',\n span: 24,\n required_condition: null,\n },\n {\n type: 'radio',\n name: 'match_type',\n label: '匹配类型',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '请选择匹配类型',\n span: 24,\n required_condition: null,\n },\n {\n type: 'remotecomplete',\n label: '路径匹配',\n disabled: false,\n allowClear: true,\n valueKey: 'menu_path',\n labelKeyType: 1,\n labelKey: 'name',\n labelKeyList: [],\n labelSpace: '-',\n mode: 'default',\n placeholder: '请输入路径匹配',\n show_search: true,\n datasourceType: 'remote',\n queryType: 'advanced',\n searchConditions: [\n [\n {\n searchType: 3,\n field_name: 'is_active',\n operator: 'eq',\n value: [true],\n format: 'choices',\n class_name: 'bool',\n },\n ],\n ],\n simpleSearchConditions: [\n {\n searchType: 3,\n field_name: 'is_active',\n value: true,\n },\n ],\n postUrl: '/permission/query_menu_list',\n name: 'content',\n span: 24,\n pull: 0,\n push: 0,\n offset: 0,\n },\n {\n type: 'upload',\n label: '文件上传',\n disabled: false,\n access_type: 'public',\n maxCount: 1,\n listType: 'picture',\n group: 'sys',\n span: 24,\n acceptList: ['.pdf'],\n name: 'files',\n placeholder: '请选择文件上传',\n pull: 0,\n push: 0,\n offset: 0,\n queryType: 'advanced',\n },\n ],\n },\n ],\n model: {\n update_field_list: ['name', 'match_type', 'content', 'files'],\n name: null,\n match_type: 'simple',\n files: [],\n },\n rules: {\n name: [\n {\n required: true,\n message: '请填输入标题',\n },\n ],\n },\n options: {\n match_type: [\n {\n name: '简单匹配',\n value: 'simple',\n valueType: 'str',\n },\n {\n name: '正则匹配',\n value: 'regex',\n valueType: 'str',\n },\n ],\n },\n };\n\n return {\n baseColumns,\n formModalConfig,\n updateFormModalConfig,\n };\n};\n","import { useRequest } from 'liyu-pc-base/init-plugin';\n\nexport async function query_person_detail_list(params?: {\n [key: string]: any;\n}): Promise<RoleResponse> {\n return useRequest().post('/sys/query_person_detail_list', params);\n}\n\nexport async function create_organization_by_role_template(params: Record<string, any>) {\n return useRequest().post('/org/create_organization_by_role_template', params);\n}\n\nexport async function removePerson(params: Record<string, any>) {\n return useRequest().post('/sys/delete_user', params);\n}\nexport async function recoverPerson(params: Record<string, any>) {\n return useRequest().post('/sys/recover_user', params);\n}\nexport async function resetPassword(params: Record<string, any>) {\n return useRequest().post('/sys/reset_password', params);\n}\nexport async function create_role_list_and_person(params: Record<string, any>) {\n return useRequest().post('/org/create_role_list_and_person', params);\n}\nexport async function query_role_id_list(params: Record<string, any>) {\n return useRequest().post('/org/query_role_id_list', params);\n}\nexport async function query_role_list(params: Record<string, any>) {\n return useRequest().post('/production_event/query_role_list', params);\n}\nexport async function create_shift_and_user(params: Record<string, any>) {\n return useRequest().post('/shift/create_shift_and_user', params);\n}\nexport async function check_shift_and_user(params: Record<string, any>) {\n return useRequest().post('/shift/check_shift_and_user', params);\n}\n\nexport async function addPerson(params: Record<string, any>) {\n return useRequest().post('/sys/create_user', params);\n // return request('/sys.create_user', {\n // method: 'POST',\n // data: {\n // ...params,\n // method: 'post',\n // },\n // });\n}\n\nexport async function updatePerson(params: Record<string, any>) {\n return useRequest().post('/sys/update_user', params);\n}\n\ninterface RuleItem {\n key: string | number;\n callNo: number;\n avatar: string;\n desc: string;\n disabled: false;\n href: string;\n name: string;\n owner: string;\n progress: number;\n status: number;\n updatedAt: string;\n createdAt: string;\n}\n\ninterface RoleResponse {\n current: number;\n data: RuleItem[];\n pageSize: string;\n success: boolean;\n total: number;\n}\n","import { reactive } from 'vue';\nimport { message } from 'ant-design-vue';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport { create_organization_by_role_template } from 'liyu-pc-base/api/permission/user-manage';\nimport type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\nexport const btn_list: BtnListConfig = [];\nexport const config = {\n creatCol: [],\n updateCol: [],\n};\nexport const head_btn_list: HeadBtnListConfig = [\n {\n name: '添加账套',\n type: 'dropdown',\n is_show: true,\n clazz: 'primary',\n cb: () => {\n const editModal = reactive({\n visible: true,\n title: '新建账套',\n loading: false,\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '账套名称',\n disabled: false,\n allowClear: true,\n inputType: 'number',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填组织名称',\n },\n\n {\n type: 'remoteselect',\n name: 'role_org_id',\n label: '权限模板',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请填权限模板',\n datasourceType: 'remote',\n mode: 'default',\n modalType: 'select-org-id',\n },\n ],\n rules: {\n name: [{ required: true, message: '请输入账套名称' }],\n role_org_id: [{ required: true, message: '请选择权限模板' }],\n },\n model: reactive({\n name: '',\n role_org_id: '',\n }),\n },\n options: {},\n ok: (payload: any) => {\n return new Promise(resolve => {\n editModal.loading = true;\n create_organization_by_role_template({\n ...payload,\n })\n .then(() => {\n message.success('创建新账套成功');\n resolve(null);\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n },\n });\n modalBox(editModal);\n },\n },\n];\n","import { TableColumn } from 'liyu-pc-base/typing';\nimport { Record, SearchConfig } from 'liyu-pc-base/components/remotePages/typing';\nimport { btn_list, config, head_btn_list } from './permission-organization-config';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport { reactive } from 'vue';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写账套名称',\n },\n ],\n rules: {},\n model: reactive({\n org_id: current_org.id,\n aim_org_id: current_org.id,\n is_active: true,\n name: '',\n get_role: true,\n }),\n options: {},\n };\n\n const edit_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '隶属组织',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请选择隶属组织',\n datasourceType: 'remote',\n mode: 'default',\n default: true,\n modalType: 'select-org-id',\n },\n {\n type: 'input',\n name: 'username',\n label: '手机号',\n disabled: false,\n allowClear: true,\n inputType: 'number',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填手机号',\n },\n {\n type: 'input',\n name: 'realname',\n label: '姓名',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'select',\n name: 'manage_type',\n label: '用户类型',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'remoteselect',\n name: 'role_ids',\n label: '角色',\n disabled: false,\n placeholder: '请选择角色',\n datasourceType: 'remote',\n mode: 'multiple',\n allowClear: true,\n modalType: 'liyu_permission-role',\n },\n ],\n rules: {\n username: [{ required: true, pattern: /^1[123456789]\\d{9}$/, message: '请输入正确手机号' }],\n realname: [{ required: true, message: '请输入姓名' }],\n },\n model: {\n org_id: current_org?.id,\n id: null,\n username: '',\n realname: '',\n aim_org_id: current_org?.id,\n },\n options: {\n manage_type: [\n { label: '普通用户', value: 0 },\n { label: '超级管理员', value: 2 },\n ],\n },\n };\n\n const update_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '账套名称',\n disabled: false,\n allowClear: true,\n inputType: 'number',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填组织名称',\n },\n ],\n rules: {},\n model: reactive({\n org_id: current_org.id,\n id: null,\n username: '',\n realname: '',\n title: '',\n aim_org_id: '',\n email: '',\n }),\n options: {},\n };\n\n const titleList = {\n title: '账套管理',\n addModalTitle: '新建账套',\n updateTitle: '修改',\n is_create: false, // 是否有【新建】按钮\n is_update: true, // 是否有【修改】按钮\n is_remove: false, // 是否有【删除】按钮\n is_recover: false, // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n aim_org_id: 'id',\n },\n delete: {\n person_id: 'id',\n },\n recover: {\n person_id: 'id',\n },\n updateData: {\n org_id: 'org_id',\n aim_org_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n width: 50,\n dataIndex: 'index',\n checked: true,\n fixed: 'left',\n },\n {\n title: '名称',\n dataIndex: 'name',\n checked: true,\n fixed: 'left',\n },\n\n {\n title: '是否可用',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '全部', value: '' },\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n {\n title: '操作',\n width: 50,\n checked: true,\n dataIndex: 'action',\n cellComponent: 'action',\n fixed: 'right',\n },\n ];\n\n return {\n searchConfig: search_config,\n formModalConfig: edit_model_config,\n updateFormModalConfig: update_model_config,\n queryData: '/org/query_organization_list',\n addData: '/org/create_organization',\n updateData: '/org/update_organization',\n getData: '/org/get_organization',\n removeData: null,\n recoverData: null,\n baseColumns: baseColumns,\n titleList: titleList,\n api_fields: api_fields,\n btn_list: btn_list,\n head_btn_list: head_btn_list,\n event_obj: event_obj(),\n base_search_condition_config_list: [],\n default_search_condition_config_list: [[]],\n condition_group_config_list: [],\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n queryConditionGroupData: null,\n isView: false,\n };\n};\n","// This icon file is generated automatically.\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexport default CloseOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseOutlined = function CloseOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": CloseOutlinedSvg\n }), null);\n};\n\nCloseOutlined.displayName = 'CloseOutlined';\nCloseOutlined.inheritAttrs = false;\nexport default CloseOutlined;","// This icon file is generated automatically.\nvar CheckCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"check-circle\", \"theme\": \"outlined\" };\nexport default CheckCircleOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport CheckCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CheckCircleOutlined = function CheckCircleOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": CheckCircleOutlinedSvg\n }), null);\n};\n\nCheckCircleOutlined.displayName = 'CheckCircleOutlined';\nCheckCircleOutlined.inheritAttrs = false;\nexport default CheckCircleOutlined;","// This icon file is generated automatically.\nvar ExclamationCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"outlined\" };\nexport default ExclamationCircleOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport ExclamationCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ExclamationCircleOutlined = function ExclamationCircleOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": ExclamationCircleOutlinedSvg\n }), null);\n};\n\nExclamationCircleOutlined.displayName = 'ExclamationCircleOutlined';\nExclamationCircleOutlined.inheritAttrs = false;\nexport default ExclamationCircleOutlined;","// This icon file is generated automatically.\nvar InfoCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"info-circle\", \"theme\": \"outlined\" };\nexport default InfoCircleOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport InfoCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/InfoCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar InfoCircleOutlined = function InfoCircleOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": InfoCircleOutlinedSvg\n }), null);\n};\n\nInfoCircleOutlined.displayName = 'InfoCircleOutlined';\nInfoCircleOutlined.inheritAttrs = false;\nexport default InfoCircleOutlined;","// This icon file is generated automatically.\nvar CloseCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 00-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"close-circle\", \"theme\": \"outlined\" };\nexport default CloseCircleOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport CloseCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseCircleOutlined = function CloseCircleOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": CloseCircleOutlinedSvg\n }), null);\n};\n\nCloseCircleOutlined.displayName = 'CloseCircleOutlined';\nCloseCircleOutlined.inheritAttrs = false;\nexport default CloseCircleOutlined;","// This icon file is generated automatically.\nvar InfoCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"info-circle\", \"theme\": \"filled\" };\nexport default InfoCircleFilled;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport InfoCircleFilledSvg from \"@ant-design/icons-svg/es/asn/InfoCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar InfoCircleFilled = function InfoCircleFilled(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": InfoCircleFilledSvg\n }), null);\n};\n\nInfoCircleFilled.displayName = 'InfoCircleFilled';\nInfoCircleFilled.inheritAttrs = false;\nexport default InfoCircleFilled;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport defaultLocale from '../locale/en_US';\nlet runtimeLocale = _extends({}, defaultLocale.Modal);\nexport function changeConfirmLocale(newLocale) {\n if (newLocale) {\n runtimeLocale = _extends(_extends({}, runtimeLocale), newLocale);\n } else {\n runtimeLocale = _extends({}, defaultLocale.Modal);\n }\n}\nexport function getConfirmLocale() {\n return runtimeLocale;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { provide, defineComponent, reactive, watch } from 'vue';\nimport { changeConfirmLocale } from '../modal/locale';\nimport warning from '../_util/warning';\nimport { withInstall } from '../_util/type';\nexport const ANT_MARK = 'internalMark';\nconst LocaleProvider = defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'ALocaleProvider',\n props: {\n locale: {\n type: Object\n },\n ANT_MARK__: String\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n warning(props.ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead');\n const state = reactive({\n antLocale: _extends(_extends({}, props.locale), {\n exist: true\n }),\n ANT_MARK__: ANT_MARK\n });\n provide('localeData', state);\n watch(() => props.locale, locale => {\n changeConfirmLocale(locale && locale.Modal);\n state.antLocale = _extends(_extends({}, locale), {\n exist: true\n });\n }, {\n immediate: true\n });\n return () => {\n var _a;\n return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);\n };\n }\n});\n/* istanbul ignore next */\nLocaleProvider.install = function (app) {\n app.component(LocaleProvider.name, LocaleProvider);\n return app;\n};\nexport default withInstall(LocaleProvider);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\nimport { Teleport, computed, defineComponent, onMounted, watch, onUnmounted } from 'vue';\nimport classNames from '../_util/classNames';\nexport default defineComponent({\n name: 'Notice',\n inheritAttrs: false,\n props: ['prefixCls', 'duration', 'updateMark', 'noticeKey', 'closeIcon', 'closable', 'props', 'onClick', 'onClose', 'holder', 'visible'],\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n let closeTimer;\n let isUnMounted = false;\n const duration = computed(() => props.duration === undefined ? 4.5 : props.duration);\n const startCloseTimer = () => {\n if (duration.value && !isUnMounted) {\n closeTimer = setTimeout(() => {\n close();\n }, duration.value * 1000);\n }\n };\n const clearCloseTimer = () => {\n if (closeTimer) {\n clearTimeout(closeTimer);\n closeTimer = null;\n }\n };\n const close = e => {\n if (e) {\n e.stopPropagation();\n }\n clearCloseTimer();\n const {\n onClose,\n noticeKey\n } = props;\n if (onClose) {\n onClose(noticeKey);\n }\n };\n const restartCloseTimer = () => {\n clearCloseTimer();\n startCloseTimer();\n };\n onMounted(() => {\n startCloseTimer();\n });\n onUnmounted(() => {\n isUnMounted = true;\n clearCloseTimer();\n });\n watch([duration, () => props.updateMark, () => props.visible], (_ref2, _ref3) => {\n let [preDuration, preUpdateMark, preVisible] = _ref2;\n let [newDuration, newUpdateMark, newVisible] = _ref3;\n if (preDuration !== newDuration || preUpdateMark !== newUpdateMark || preVisible !== newVisible && newVisible) {\n restartCloseTimer();\n }\n }, {\n flush: 'post'\n });\n return () => {\n var _a, _b;\n const {\n prefixCls,\n closable,\n closeIcon = (_a = slots.closeIcon) === null || _a === void 0 ? void 0 : _a.call(slots),\n onClick,\n holder\n } = props;\n const {\n class: className,\n style\n } = attrs;\n const componentClass = `${prefixCls}-notice`;\n const dataOrAriaAttributeProps = Object.keys(attrs).reduce((acc, key) => {\n if (key.startsWith('data-') || key.startsWith('aria-') || key === 'role') {\n acc[key] = attrs[key];\n }\n return acc;\n }, {});\n const node = _createVNode(\"div\", _objectSpread({\n \"class\": classNames(componentClass, className, {\n [`${componentClass}-closable`]: closable\n }),\n \"style\": style,\n \"onMouseenter\": clearCloseTimer,\n \"onMouseleave\": startCloseTimer,\n \"onClick\": onClick\n }, dataOrAriaAttributeProps), [_createVNode(\"div\", {\n \"class\": `${componentClass}-content`\n }, [(_b = slots.default) === null || _b === void 0 ? void 0 : _b.call(slots)]), closable ? _createVNode(\"a\", {\n \"tabindex\": 0,\n \"onClick\": close,\n \"class\": `${componentClass}-close`\n }, [closeIcon || _createVNode(\"span\", {\n \"class\": `${componentClass}-close-x`\n }, null)]) : null]);\n if (holder) {\n return _createVNode(Teleport, {\n \"to\": holder\n }, {\n default: () => node\n });\n }\n return node;\n };\n }\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { getTransitionGroupProps } from '../_util/transition';\nimport { toRaw, shallowRef, createVNode, computed, defineComponent, ref, TransitionGroup, onMounted, render as vueRender } from 'vue';\nimport Notice from './Notice';\nimport ConfigProvider, { globalConfigForApi } from '../config-provider';\nimport classNames from '../_util/classNames';\nlet seed = 0;\nconst now = Date.now();\nfunction getUuid() {\n const id = seed;\n seed += 1;\n return `rcNotification_${now}_${id}`;\n}\nconst Notification = defineComponent({\n name: 'Notification',\n inheritAttrs: false,\n props: ['prefixCls', 'transitionName', 'animation', 'maxCount', 'closeIcon', 'hashId'],\n setup(props, _ref) {\n let {\n attrs,\n expose,\n slots\n } = _ref;\n const hookRefs = new Map();\n const notices = ref([]);\n const transitionProps = computed(() => {\n const {\n prefixCls,\n animation = 'fade'\n } = props;\n let name = props.transitionName;\n if (!name && animation) {\n name = `${prefixCls}-${animation}`;\n }\n return getTransitionGroupProps(name);\n });\n const add = (originNotice, holderCallback) => {\n const key = originNotice.key || getUuid();\n const notice = _extends(_extends({}, originNotice), {\n key\n });\n const {\n maxCount\n } = props;\n const noticeIndex = notices.value.map(v => v.notice.key).indexOf(key);\n const updatedNotices = notices.value.concat();\n if (noticeIndex !== -1) {\n updatedNotices.splice(noticeIndex, 1, {\n notice,\n holderCallback\n });\n } else {\n if (maxCount && notices.value.length >= maxCount) {\n // XXX, use key of first item to update new added (let React to move exsiting\n // instead of remove and mount). Same key was used before for both a) external\n // manual control and b) internal react 'key' prop , which is not that good.\n // eslint-disable-next-line no-param-reassign\n // zombieJ: Not know why use `updateKey`. This makes Notice infinite loop in jest.\n // Change to `updateMark` for compare instead.\n // https://github.com/react-component/notification/commit/32299e6be396f94040bfa82517eea940db947ece\n notice.key = updatedNotices[0].notice.key;\n notice.updateMark = getUuid();\n // zombieJ: That's why. User may close by key directly.\n // We need record this but not re-render to avoid upper issue\n // https://github.com/react-component/notification/issues/129\n notice.userPassKey = key;\n updatedNotices.shift();\n }\n updatedNotices.push({\n notice,\n holderCallback\n });\n }\n notices.value = updatedNotices;\n };\n const remove = removeKey => {\n notices.value = toRaw(notices.value).filter(_ref2 => {\n let {\n notice: {\n key,\n userPassKey\n }\n } = _ref2;\n const mergedKey = userPassKey || key;\n return mergedKey !== removeKey;\n });\n };\n expose({\n add,\n remove,\n notices\n });\n return () => {\n var _a;\n const {\n prefixCls,\n closeIcon = (_a = slots.closeIcon) === null || _a === void 0 ? void 0 : _a.call(slots, {\n prefixCls\n })\n } = props;\n const noticeNodes = notices.value.map((_ref3, index) => {\n let {\n notice,\n holderCallback\n } = _ref3;\n const updateMark = index === notices.value.length - 1 ? notice.updateMark : undefined;\n const {\n key,\n userPassKey\n } = notice;\n const {\n content\n } = notice;\n const noticeProps = _extends(_extends(_extends({\n prefixCls,\n closeIcon: typeof closeIcon === 'function' ? closeIcon({\n prefixCls\n }) : closeIcon\n }, notice), notice.props), {\n key,\n noticeKey: userPassKey || key,\n updateMark,\n onClose: noticeKey => {\n var _a;\n remove(noticeKey);\n (_a = notice.onClose) === null || _a === void 0 ? void 0 : _a.call(notice);\n },\n onClick: notice.onClick\n });\n if (holderCallback) {\n return _createVNode(\"div\", {\n \"key\": key,\n \"class\": `${prefixCls}-hook-holder`,\n \"ref\": div => {\n if (typeof key === 'undefined') {\n return;\n }\n if (div) {\n hookRefs.set(key, div);\n holderCallback(div, noticeProps);\n } else {\n hookRefs.delete(key);\n }\n }\n }, null);\n }\n return _createVNode(Notice, _objectSpread(_objectSpread({}, noticeProps), {}, {\n \"class\": classNames(noticeProps.class, props.hashId)\n }), {\n default: () => [typeof content === 'function' ? content({\n prefixCls\n }) : content]\n });\n });\n const className = {\n [prefixCls]: 1,\n [attrs.class]: !!attrs.class,\n [props.hashId]: true\n };\n return _createVNode(\"div\", {\n \"class\": className,\n \"style\": attrs.style || {\n top: '65px',\n left: '50%'\n }\n }, [_createVNode(TransitionGroup, _objectSpread({\n \"tag\": \"div\"\n }, transitionProps.value), {\n default: () => [noticeNodes]\n })]);\n };\n }\n});\nNotification.newInstance = function newNotificationInstance(properties, callback) {\n const _a = properties || {},\n {\n name = 'notification',\n getContainer,\n appContext,\n prefixCls: customizePrefixCls,\n rootPrefixCls: customRootPrefixCls,\n transitionName: customTransitionName,\n hasTransitionName,\n useStyle\n } = _a,\n props = __rest(_a, [\"name\", \"getContainer\", \"appContext\", \"prefixCls\", \"rootPrefixCls\", \"transitionName\", \"hasTransitionName\", \"useStyle\"]);\n const div = document.createElement('div');\n if (getContainer) {\n const root = getContainer();\n root.appendChild(div);\n } else {\n document.body.appendChild(div);\n }\n const Wrapper = defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'NotificationWrapper',\n setup(_props, _ref4) {\n let {\n attrs\n } = _ref4;\n const notiRef = shallowRef();\n const prefixCls = computed(() => globalConfigForApi.getPrefixCls(name, customizePrefixCls));\n const [, hashId] = useStyle(prefixCls);\n onMounted(() => {\n callback({\n notice(noticeProps) {\n var _a;\n (_a = notiRef.value) === null || _a === void 0 ? void 0 : _a.add(noticeProps);\n },\n removeNotice(key) {\n var _a;\n (_a = notiRef.value) === null || _a === void 0 ? void 0 : _a.remove(key);\n },\n destroy() {\n vueRender(null, div);\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n },\n component: notiRef\n });\n });\n return () => {\n const global = globalConfigForApi;\n const rootPrefixCls = global.getRootPrefixCls(customRootPrefixCls, prefixCls.value);\n const transitionName = hasTransitionName ? customTransitionName : `${prefixCls.value}-${customTransitionName}`;\n return _createVNode(ConfigProvider, _objectSpread(_objectSpread({}, global), {}, {\n \"prefixCls\": rootPrefixCls\n }), {\n default: () => [_createVNode(Notification, _objectSpread(_objectSpread({\n \"ref\": notiRef\n }, attrs), {}, {\n \"prefixCls\": prefixCls.value,\n \"transitionName\": transitionName,\n \"hashId\": hashId.value\n }), null)]\n });\n };\n }\n });\n const vm = createVNode(Wrapper, props);\n vm.appContext = appContext || vm.appContext;\n vueRender(vm, div);\n};\nexport default Notification;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { watch, computed, defineComponent, ref, TransitionGroup } from 'vue';\nimport Notice from './Notice';\nimport { getTransitionGroupProps } from '../_util/transition';\nimport classNames from '../_util/classNames';\nimport Portal from '../_util/Portal';\nlet seed = 0;\nconst now = Date.now();\nexport function getUuid() {\n const id = seed;\n seed += 1;\n return `rcNotification_${now}_${id}`;\n}\nconst Notification = defineComponent({\n name: 'HookNotification',\n inheritAttrs: false,\n props: ['prefixCls', 'transitionName', 'animation', 'maxCount', 'closeIcon', 'hashId', 'remove', 'notices', 'getStyles', 'getClassName', 'onAllRemoved', 'getContainer'],\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const hookRefs = new Map();\n const notices = computed(() => props.notices);\n const transitionProps = computed(() => {\n let name = props.transitionName;\n if (!name && props.animation) {\n switch (typeof props.animation) {\n case 'string':\n name = props.animation;\n break;\n case 'function':\n name = props.animation().name;\n break;\n case 'object':\n name = props.animation.name;\n break;\n default:\n name = `${props.prefixCls}-fade`;\n break;\n }\n }\n return getTransitionGroupProps(name);\n });\n const remove = key => props.remove(key);\n const placements = ref({});\n watch(notices, () => {\n const nextPlacements = {};\n // init placements with animation\n Object.keys(placements.value).forEach(placement => {\n nextPlacements[placement] = [];\n });\n props.notices.forEach(config => {\n const {\n placement = 'topRight'\n } = config.notice;\n if (placement) {\n nextPlacements[placement] = nextPlacements[placement] || [];\n nextPlacements[placement].push(config);\n }\n });\n placements.value = nextPlacements;\n });\n const placementList = computed(() => Object.keys(placements.value));\n return () => {\n var _a;\n const {\n prefixCls,\n closeIcon = (_a = slots.closeIcon) === null || _a === void 0 ? void 0 : _a.call(slots, {\n prefixCls\n })\n } = props;\n const noticeNodes = placementList.value.map(placement => {\n var _a, _b;\n const noticesForPlacement = placements.value[placement];\n const classes = (_a = props.getClassName) === null || _a === void 0 ? void 0 : _a.call(props, placement);\n const styles = (_b = props.getStyles) === null || _b === void 0 ? void 0 : _b.call(props, placement);\n const noticeNodesForPlacement = noticesForPlacement.map((_ref2, index) => {\n let {\n notice,\n holderCallback\n } = _ref2;\n const updateMark = index === notices.value.length - 1 ? notice.updateMark : undefined;\n const {\n key,\n userPassKey\n } = notice;\n const {\n content\n } = notice;\n const noticeProps = _extends(_extends(_extends({\n prefixCls,\n closeIcon: typeof closeIcon === 'function' ? closeIcon({\n prefixCls\n }) : closeIcon\n }, notice), notice.props), {\n key,\n noticeKey: userPassKey || key,\n updateMark,\n onClose: noticeKey => {\n var _a;\n remove(noticeKey);\n (_a = notice.onClose) === null || _a === void 0 ? void 0 : _a.call(notice);\n },\n onClick: notice.onClick\n });\n if (holderCallback) {\n return _createVNode(\"div\", {\n \"key\": key,\n \"class\": `${prefixCls}-hook-holder`,\n \"ref\": div => {\n if (typeof key === 'undefined') {\n return;\n }\n if (div) {\n hookRefs.set(key, div);\n holderCallback(div, noticeProps);\n } else {\n hookRefs.delete(key);\n }\n }\n }, null);\n }\n return _createVNode(Notice, _objectSpread(_objectSpread({}, noticeProps), {}, {\n \"class\": classNames(noticeProps.class, props.hashId)\n }), {\n default: () => [typeof content === 'function' ? content({\n prefixCls\n }) : content]\n });\n });\n const className = {\n [prefixCls]: 1,\n [`${prefixCls}-${placement}`]: 1,\n [attrs.class]: !!attrs.class,\n [props.hashId]: true,\n [classes]: !!classes\n };\n function onAfterLeave() {\n var _a;\n if (noticesForPlacement.length > 0) {\n return;\n }\n Reflect.deleteProperty(placements.value, placement);\n (_a = props.onAllRemoved) === null || _a === void 0 ? void 0 : _a.call(props);\n }\n return _createVNode(\"div\", {\n \"key\": placement,\n \"class\": className,\n \"style\": attrs.style || styles || {\n top: '65px',\n left: '50%'\n }\n }, [_createVNode(TransitionGroup, _objectSpread(_objectSpread({\n \"tag\": \"div\"\n }, transitionProps.value), {}, {\n \"onAfterLeave\": onAfterLeave\n }), {\n default: () => [noticeNodesForPlacement]\n })]);\n });\n return _createVNode(Portal, {\n \"getContainer\": props.getContainer\n }, {\n default: () => [noticeNodes]\n });\n };\n }\n});\nexport default Notification;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { shallowRef, watch } from 'vue';\nimport HookNotification, { getUuid } from './HookNotification';\nconst defaultGetContainer = () => document.body;\nlet uniqueKey = 0;\nfunction mergeConfig() {\n const clone = {};\n for (var _len = arguments.length, objList = new Array(_len), _key = 0; _key < _len; _key++) {\n objList[_key] = arguments[_key];\n }\n objList.forEach(obj => {\n if (obj) {\n Object.keys(obj).forEach(key => {\n const val = obj[key];\n if (val !== undefined) {\n clone[key] = val;\n }\n });\n }\n });\n return clone;\n}\nexport default function useNotification() {\n let rootConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n getContainer = defaultGetContainer,\n motion,\n prefixCls,\n maxCount,\n getClassName,\n getStyles,\n onAllRemoved\n } = rootConfig,\n shareConfig = __rest(rootConfig, [\"getContainer\", \"motion\", \"prefixCls\", \"maxCount\", \"getClassName\", \"getStyles\", \"onAllRemoved\"]);\n const notices = shallowRef([]);\n const notificationsRef = shallowRef();\n const add = (originNotice, holderCallback) => {\n const key = originNotice.key || getUuid();\n const notice = _extends(_extends({}, originNotice), {\n key\n });\n const noticeIndex = notices.value.map(v => v.notice.key).indexOf(key);\n const updatedNotices = notices.value.concat();\n if (noticeIndex !== -1) {\n updatedNotices.splice(noticeIndex, 1, {\n notice,\n holderCallback\n });\n } else {\n if (maxCount && notices.value.length >= maxCount) {\n notice.key = updatedNotices[0].notice.key;\n notice.updateMark = getUuid();\n notice.userPassKey = key;\n updatedNotices.shift();\n }\n updatedNotices.push({\n notice,\n holderCallback\n });\n }\n notices.value = updatedNotices;\n };\n const removeNotice = removeKey => {\n notices.value = notices.value.filter(_ref => {\n let {\n notice: {\n key,\n userPassKey\n }\n } = _ref;\n const mergedKey = userPassKey || key;\n return mergedKey !== removeKey;\n });\n };\n const destroy = () => {\n notices.value = [];\n };\n const contextHolder = () => _createVNode(HookNotification, {\n \"ref\": notificationsRef,\n \"prefixCls\": prefixCls,\n \"maxCount\": maxCount,\n \"notices\": notices.value,\n \"remove\": removeNotice,\n \"getClassName\": getClassName,\n \"getStyles\": getStyles,\n \"animation\": motion,\n \"hashId\": rootConfig.hashId,\n \"onAllRemoved\": onAllRemoved,\n \"getContainer\": getContainer\n }, null);\n const taskQueue = shallowRef([]);\n // ========================= Refs =========================\n const api = {\n open: config => {\n const mergedConfig = mergeConfig(shareConfig, config);\n //@ts-ignore\n if (mergedConfig.key === null || mergedConfig.key === undefined) {\n //@ts-ignore\n mergedConfig.key = `vc-notification-${uniqueKey}`;\n uniqueKey += 1;\n }\n taskQueue.value = [...taskQueue.value, {\n type: 'open',\n config: mergedConfig\n }];\n },\n close: key => {\n taskQueue.value = [...taskQueue.value, {\n type: 'close',\n key\n }];\n },\n destroy: () => {\n taskQueue.value = [...taskQueue.value, {\n type: 'destroy'\n }];\n }\n };\n // ======================== Effect ========================\n watch(taskQueue, () => {\n // Flush task when node ready\n if (taskQueue.value.length) {\n taskQueue.value.forEach(task => {\n switch (task.type) {\n case 'open':\n // @ts-ignore\n add(task.config);\n break;\n case 'close':\n removeNotice(task.key);\n break;\n case 'destroy':\n destroy();\n break;\n }\n });\n taskQueue.value = [];\n }\n });\n // ======================== Return ========================\n return [api, contextHolder];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// deps-lint-skip-all\nimport { Keyframes } from '../../_util/cssinjs';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent } from '../../style';\nconst genMessageStyle = token => {\n const {\n componentCls,\n iconCls,\n boxShadowSecondary,\n colorBgElevated,\n colorSuccess,\n colorError,\n colorWarning,\n colorInfo,\n fontSizeLG,\n motionEaseInOutCirc,\n motionDurationSlow,\n marginXS,\n paddingXS,\n borderRadiusLG,\n zIndexPopup,\n // Custom token\n messageNoticeContentPadding\n } = token;\n const messageMoveIn = new Keyframes('MessageMoveIn', {\n '0%': {\n padding: 0,\n transform: 'translateY(-100%)',\n opacity: 0\n },\n '100%': {\n padding: paddingXS,\n transform: 'translateY(0)',\n opacity: 1\n }\n });\n const messageMoveOut = new Keyframes('MessageMoveOut', {\n '0%': {\n maxHeight: token.height,\n padding: paddingXS,\n opacity: 1\n },\n '100%': {\n maxHeight: 0,\n padding: 0,\n opacity: 0\n }\n });\n return [\n // ============================ Holder ============================\n {\n [componentCls]: _extends(_extends({}, resetComponent(token)), {\n position: 'fixed',\n top: marginXS,\n left: '50%',\n transform: 'translateX(-50%)',\n width: '100%',\n pointerEvents: 'none',\n zIndex: zIndexPopup,\n [`${componentCls}-move-up`]: {\n animationFillMode: 'forwards'\n },\n [`\n ${componentCls}-move-up-appear,\n ${componentCls}-move-up-enter\n `]: {\n animationName: messageMoveIn,\n animationDuration: motionDurationSlow,\n animationPlayState: 'paused',\n animationTimingFunction: motionEaseInOutCirc\n },\n [`\n ${componentCls}-move-up-appear${componentCls}-move-up-appear-active,\n ${componentCls}-move-up-enter${componentCls}-move-up-enter-active\n `]: {\n animationPlayState: 'running'\n },\n [`${componentCls}-move-up-leave`]: {\n animationName: messageMoveOut,\n animationDuration: motionDurationSlow,\n animationPlayState: 'paused',\n animationTimingFunction: motionEaseInOutCirc\n },\n [`${componentCls}-move-up-leave${componentCls}-move-up-leave-active`]: {\n animationPlayState: 'running'\n },\n '&-rtl': {\n direction: 'rtl',\n span: {\n direction: 'rtl'\n }\n }\n })\n },\n // ============================ Notice ============================\n {\n [`${componentCls}-notice`]: {\n padding: paddingXS,\n textAlign: 'center',\n [iconCls]: {\n verticalAlign: 'text-bottom',\n marginInlineEnd: marginXS,\n fontSize: fontSizeLG\n },\n [`${componentCls}-notice-content`]: {\n display: 'inline-block',\n padding: messageNoticeContentPadding,\n background: colorBgElevated,\n borderRadius: borderRadiusLG,\n boxShadow: boxShadowSecondary,\n pointerEvents: 'all'\n },\n [`${componentCls}-success ${iconCls}`]: {\n color: colorSuccess\n },\n [`${componentCls}-error ${iconCls}`]: {\n color: colorError\n },\n [`${componentCls}-warning ${iconCls}`]: {\n color: colorWarning\n },\n [`\n ${componentCls}-info ${iconCls},\n ${componentCls}-loading ${iconCls}`]: {\n color: colorInfo\n }\n }\n },\n // ============================= Pure =============================\n {\n [`${componentCls}-notice-pure-panel`]: {\n padding: 0,\n textAlign: 'start'\n }\n }];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Message', token => {\n // Gen-style functions here\n const combinedToken = mergeToken(token, {\n messageNoticeContentPadding: `${(token.controlHeightLG - token.fontSize * token.lineHeight) / 2}px ${token.paddingSM}px`\n });\n return [genMessageStyle(combinedToken)];\n}, token => ({\n height: 150,\n zIndexPopup: token.zIndexPopupBase + 10\n}));","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode } from \"vue\";\nimport Notice from '../vc-notification/Notice';\nimport useStyle from './style';\nimport LoadingOutlined from \"@ant-design/icons-vue/es/icons/LoadingOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons-vue/es/icons/ExclamationCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons-vue/es/icons/CloseCircleFilled\";\nimport CheckCircleFilled from \"@ant-design/icons-vue/es/icons/CheckCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons-vue/es/icons/InfoCircleFilled\";\nimport classNames from '../_util/classNames';\nimport { useConfigContextInject } from '../config-provider/context';\nimport { computed, defineComponent } from 'vue';\nexport const TypeIcon = {\n info: _createVNode(InfoCircleFilled, null, null),\n success: _createVNode(CheckCircleFilled, null, null),\n error: _createVNode(CloseCircleFilled, null, null),\n warning: _createVNode(ExclamationCircleFilled, null, null),\n loading: _createVNode(LoadingOutlined, null, null)\n};\nexport const PureContent = defineComponent({\n name: 'PureContent',\n inheritAttrs: false,\n props: ['prefixCls', 'type', 'icon'],\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"class\": classNames(`${props.prefixCls}-custom-content`, `${props.prefixCls}-${props.type}`)\n }, [props.icon || TypeIcon[props.type], _createVNode(\"span\", null, [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)])]);\n };\n }\n});\n/** @private Internal Component. Do not use in your production. */\nexport default defineComponent({\n name: 'PurePanel',\n inheritAttrs: false,\n props: ['prefixCls', 'class', 'type', 'icon', 'content'],\n setup(props, _ref2) {\n let {\n slots,\n attrs\n } = _ref2;\n var _a;\n const {\n getPrefixCls\n } = useConfigContextInject();\n const prefixCls = computed(() => props.prefixCls || getPrefixCls('message'));\n const [, hashId] = useStyle(prefixCls);\n return _createVNode(Notice, _objectSpread(_objectSpread({}, attrs), {}, {\n \"prefixCls\": prefixCls.value,\n \"class\": classNames(hashId.value, `${prefixCls.value}-notice-pure-panel`),\n \"noticeKey\": \"pure\",\n \"duration\": null\n }), {\n default: () => [_createVNode(PureContent, {\n \"prefixCls\": prefixCls.value,\n \"type\": props.type,\n \"icon\": props.icon\n }, {\n default: () => [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)]\n })]\n });\n }\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { shallowRef, computed, defineComponent } from 'vue';\nimport { useNotification as useVcNotification } from '../vc-notification';\nimport CloseOutlined from \"@ant-design/icons-vue/es/icons/CloseOutlined\";\nimport useStyle from './style';\nimport { PureContent } from './PurePanel';\nimport { getMotion } from '../vc-trigger/utils/motionUtil';\nimport { wrapPromiseFn } from '../_util/util';\nimport useConfigInject from '../config-provider/hooks/useConfigInject';\nimport classNames from '../_util/classNames';\nconst DEFAULT_OFFSET = 8;\nconst DEFAULT_DURATION = 3;\nconst Holder = defineComponent({\n name: 'Holder',\n inheritAttrs: false,\n props: ['top', 'prefixCls', 'getContainer', 'maxCount', 'duration', 'rtl', 'transitionName', 'onAllRemoved', 'animation', 'staticGetContainer'],\n setup(props, _ref) {\n let {\n expose\n } = _ref;\n var _a, _b;\n const {\n getPrefixCls,\n getPopupContainer\n } = useConfigInject('message', props);\n const prefixCls = computed(() => getPrefixCls('message', props.prefixCls));\n const [, hashId] = useStyle(prefixCls);\n // =============================== Style ===============================\n const getStyles = () => {\n var _a;\n const top = (_a = props.top) !== null && _a !== void 0 ? _a : DEFAULT_OFFSET;\n return {\n left: '50%',\n transform: 'translateX(-50%)',\n top: typeof top === 'number' ? `${top}px` : top\n };\n };\n const getClassName = () => classNames(hashId.value, props.rtl ? `${prefixCls.value}-rtl` : '');\n // ============================== Motion ===============================\n const getNotificationMotion = () => {\n var _a;\n return getMotion({\n prefixCls: prefixCls.value,\n animation: (_a = props.animation) !== null && _a !== void 0 ? _a : `move-up`,\n transitionName: props.transitionName\n });\n };\n // ============================ Close Icon =============================\n const mergedCloseIcon = _createVNode(\"span\", {\n \"class\": `${prefixCls.value}-close-x`\n }, [_createVNode(CloseOutlined, {\n \"class\": `${prefixCls.value}-close-icon`\n }, null)]);\n // ============================== Origin ===============================\n const [api, holder] = useVcNotification({\n //@ts-ignore\n getStyles,\n prefixCls: prefixCls.value,\n getClassName,\n motion: getNotificationMotion,\n closable: false,\n closeIcon: mergedCloseIcon,\n duration: (_a = props.duration) !== null && _a !== void 0 ? _a : DEFAULT_DURATION,\n getContainer: (_b = props.staticGetContainer) !== null && _b !== void 0 ? _b : getPopupContainer.value,\n maxCount: props.maxCount,\n onAllRemoved: props.onAllRemoved\n });\n // ================================ Ref ================================\n expose(_extends(_extends({}, api), {\n prefixCls,\n hashId\n }));\n return holder;\n }\n});\n// ==============================================================================\n// == Hook ==\n// ==============================================================================\nlet keyIndex = 0;\nexport function useInternalMessage(messageConfig) {\n const holderRef = shallowRef(null);\n const holderKey = Symbol('messageHolderKey');\n // ================================ API ================================\n // Wrap with notification content\n // >>> close\n const close = key => {\n var _a;\n (_a = holderRef.value) === null || _a === void 0 ? void 0 : _a.close(key);\n };\n // >>> Open\n const open = config => {\n if (!holderRef.value) {\n const fakeResult = () => {};\n fakeResult.then = () => {};\n return fakeResult;\n }\n const {\n open: originOpen,\n prefixCls,\n hashId\n } = holderRef.value;\n const noticePrefixCls = `${prefixCls}-notice`;\n const {\n content,\n icon,\n type,\n key,\n class: className,\n onClose\n } = config,\n restConfig = __rest(config, [\"content\", \"icon\", \"type\", \"key\", \"class\", \"onClose\"]);\n let mergedKey = key;\n if (mergedKey === undefined || mergedKey === null) {\n keyIndex += 1;\n mergedKey = `antd-message-${keyIndex}`;\n }\n return wrapPromiseFn(resolve => {\n originOpen(_extends(_extends({}, restConfig), {\n key: mergedKey,\n content: () => _createVNode(PureContent, {\n \"prefixCls\": prefixCls,\n \"type\": type,\n \"icon\": typeof icon === 'function' ? icon() : icon\n }, {\n default: () => [typeof content === 'function' ? content() : content]\n }),\n placement: 'top',\n // @ts-ignore\n class: classNames(type && `${noticePrefixCls}-${type}`, hashId, className),\n onClose: () => {\n onClose === null || onClose === void 0 ? void 0 : onClose();\n resolve();\n }\n }));\n // Return close function\n return () => {\n close(mergedKey);\n };\n });\n };\n // >>> destroy\n const destroy = key => {\n var _a;\n if (key !== undefined) {\n close(key);\n } else {\n (_a = holderRef.value) === null || _a === void 0 ? void 0 : _a.destroy();\n }\n };\n const wrapAPI = {\n open,\n destroy\n };\n const keys = ['info', 'success', 'warning', 'error', 'loading'];\n keys.forEach(type => {\n const typeOpen = (jointContent, duration, onClose) => {\n let config;\n if (jointContent && typeof jointContent === 'object' && 'content' in jointContent) {\n config = jointContent;\n } else {\n config = {\n content: jointContent\n };\n }\n // Params\n let mergedDuration;\n let mergedOnClose;\n if (typeof duration === 'function') {\n mergedOnClose = duration;\n } else {\n mergedDuration = duration;\n mergedOnClose = onClose;\n }\n const mergedConfig = _extends(_extends({\n onClose: mergedOnClose,\n duration: mergedDuration\n }, config), {\n type\n });\n return open(mergedConfig);\n };\n wrapAPI[type] = typeOpen;\n });\n // ============================== Return ===============================\n return [wrapAPI, () => _createVNode(Holder, _objectSpread(_objectSpread({\n \"key\": holderKey\n }, messageConfig), {}, {\n \"ref\": holderRef\n }), null)];\n}\nexport default function useMessage(messageConfig) {\n return useInternalMessage(messageConfig);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport Notification from '../vc-notification';\nimport LoadingOutlined from \"@ant-design/icons-vue/es/icons/LoadingOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons-vue/es/icons/ExclamationCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons-vue/es/icons/CloseCircleFilled\";\nimport CheckCircleFilled from \"@ant-design/icons-vue/es/icons/CheckCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons-vue/es/icons/InfoCircleFilled\";\nimport classNames from '../_util/classNames';\nimport useStyle from './style';\nimport useMessage from './useMessage';\nlet defaultDuration = 3;\nlet defaultTop;\nlet messageInstance;\nlet key = 1;\nlet localPrefixCls = '';\nlet transitionName = 'move-up';\nlet hasTransitionName = false;\nlet getContainer = () => document.body;\nlet maxCount;\nlet rtl = false;\nexport function getKeyThenIncreaseKey() {\n return key++;\n}\nfunction setMessageConfig(options) {\n if (options.top !== undefined) {\n defaultTop = options.top;\n messageInstance = null; // delete messageInstance for new defaultTop\n }\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n }\n if (options.prefixCls !== undefined) {\n localPrefixCls = options.prefixCls;\n }\n if (options.getContainer !== undefined) {\n getContainer = options.getContainer;\n messageInstance = null; // delete messageInstance for new getContainer\n }\n if (options.transitionName !== undefined) {\n transitionName = options.transitionName;\n messageInstance = null; // delete messageInstance for new transitionName\n hasTransitionName = true;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n messageInstance = null;\n }\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n}\nfunction getMessageInstance(args, callback) {\n if (messageInstance) {\n callback(messageInstance);\n return;\n }\n Notification.newInstance({\n appContext: args.appContext,\n prefixCls: args.prefixCls || localPrefixCls,\n rootPrefixCls: args.rootPrefixCls,\n transitionName,\n hasTransitionName,\n style: {\n top: defaultTop\n },\n getContainer: getContainer || args.getPopupContainer,\n maxCount,\n name: 'message',\n useStyle\n }, instance => {\n if (messageInstance) {\n callback(messageInstance);\n return;\n }\n messageInstance = instance;\n callback(instance);\n });\n}\nconst typeToIcon = {\n info: InfoCircleFilled,\n success: CheckCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled,\n loading: LoadingOutlined\n};\nexport const typeList = Object.keys(typeToIcon);\nfunction notice(args) {\n const duration = args.duration !== undefined ? args.duration : defaultDuration;\n const target = args.key || getKeyThenIncreaseKey();\n const closePromise = new Promise(resolve => {\n const callback = () => {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n return resolve(true);\n };\n getMessageInstance(args, instance => {\n instance.notice({\n key: target,\n duration,\n style: args.style || {},\n class: args.class,\n content: _ref => {\n let {\n prefixCls\n } = _ref;\n const Icon = typeToIcon[args.type];\n const iconNode = Icon ? _createVNode(Icon, null, null) : '';\n const messageClass = classNames(`${prefixCls}-custom-content`, {\n [`${prefixCls}-${args.type}`]: args.type,\n [`${prefixCls}-rtl`]: rtl === true\n });\n return _createVNode(\"div\", {\n \"class\": messageClass\n }, [typeof args.icon === 'function' ? args.icon() : args.icon || iconNode, _createVNode(\"span\", null, [typeof args.content === 'function' ? args.content() : args.content])]);\n },\n onClose: callback,\n onClick: args.onClick\n });\n });\n });\n const result = () => {\n if (messageInstance) {\n messageInstance.removeNotice(target);\n }\n };\n result.then = (filled, rejected) => closePromise.then(filled, rejected);\n result.promise = closePromise;\n return result;\n}\nfunction isArgsProps(content) {\n return Object.prototype.toString.call(content) === '[object Object]' && !!content.content;\n}\nconst api = {\n open: notice,\n config: setMessageConfig,\n destroy(messageKey) {\n if (messageInstance) {\n if (messageKey) {\n const {\n removeNotice\n } = messageInstance;\n removeNotice(messageKey);\n } else {\n const {\n destroy\n } = messageInstance;\n destroy();\n messageInstance = null;\n }\n }\n }\n};\nexport function attachTypeApi(originalApi, type) {\n originalApi[type] = (content, duration, onClose) => {\n if (isArgsProps(content)) {\n return originalApi.open(_extends(_extends({}, content), {\n type\n }));\n }\n if (typeof duration === 'function') {\n onClose = duration;\n duration = undefined;\n }\n return originalApi.open({\n content,\n duration,\n type,\n onClose\n });\n };\n}\ntypeList.forEach(type => attachTypeApi(api, type));\napi.warn = api.warning;\napi.useMessage = useMessage;\n/** @private test Only function. Not work on production */\nexport const getInstance = () => process.env.NODE_ENV === 'test' ? messageInstance : null;\nexport default api;","import { Keyframes } from '../../_util/cssinjs';\nconst genNotificationPlacementStyle = token => {\n const {\n componentCls,\n width,\n notificationMarginEdge\n } = token;\n const notificationTopFadeIn = new Keyframes('antNotificationTopFadeIn', {\n '0%': {\n marginTop: '-100%',\n opacity: 0\n },\n '100%': {\n marginTop: 0,\n opacity: 1\n }\n });\n const notificationBottomFadeIn = new Keyframes('antNotificationBottomFadeIn', {\n '0%': {\n marginBottom: '-100%',\n opacity: 0\n },\n '100%': {\n marginBottom: 0,\n opacity: 1\n }\n });\n const notificationLeftFadeIn = new Keyframes('antNotificationLeftFadeIn', {\n '0%': {\n right: {\n _skip_check_: true,\n value: width\n },\n opacity: 0\n },\n '100%': {\n right: {\n _skip_check_: true,\n value: 0\n },\n opacity: 1\n }\n });\n return {\n [`&${componentCls}-top, &${componentCls}-bottom`]: {\n marginInline: 0\n },\n [`&${componentCls}-top`]: {\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: notificationTopFadeIn\n }\n },\n [`&${componentCls}-bottom`]: {\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: notificationBottomFadeIn\n }\n },\n [`&${componentCls}-topLeft, &${componentCls}-bottomLeft`]: {\n marginInlineEnd: 0,\n marginInlineStart: notificationMarginEdge,\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: notificationLeftFadeIn\n }\n }\n };\n};\nexport default genNotificationPlacementStyle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { Keyframes } from '../../_util/cssinjs';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genNotificationPlacementStyle from './placement';\nimport { resetComponent } from '../../style';\nconst genNotificationStyle = token => {\n const {\n iconCls,\n componentCls,\n // .ant-notification\n boxShadowSecondary,\n fontSizeLG,\n notificationMarginBottom,\n borderRadiusLG,\n colorSuccess,\n colorInfo,\n colorWarning,\n colorError,\n colorTextHeading,\n notificationBg,\n notificationPadding,\n notificationMarginEdge,\n motionDurationMid,\n motionEaseInOut,\n fontSize,\n lineHeight,\n width,\n notificationIconSize\n } = token;\n const noticeCls = `${componentCls}-notice`;\n const notificationFadeIn = new Keyframes('antNotificationFadeIn', {\n '0%': {\n left: {\n _skip_check_: true,\n value: width\n },\n opacity: 0\n },\n '100%': {\n left: {\n _skip_check_: true,\n value: 0\n },\n opacity: 1\n }\n });\n const notificationFadeOut = new Keyframes('antNotificationFadeOut', {\n '0%': {\n maxHeight: token.animationMaxHeight,\n marginBottom: notificationMarginBottom,\n opacity: 1\n },\n '100%': {\n maxHeight: 0,\n marginBottom: 0,\n paddingTop: 0,\n paddingBottom: 0,\n opacity: 0\n }\n });\n return [\n // ============================ Holder ============================\n {\n [componentCls]: _extends(_extends(_extends(_extends({}, resetComponent(token)), {\n position: 'fixed',\n zIndex: token.zIndexPopup,\n marginInlineEnd: notificationMarginEdge,\n [`${componentCls}-hook-holder`]: {\n position: 'relative'\n },\n [`&${componentCls}-top, &${componentCls}-bottom`]: {\n [`${componentCls}-notice`]: {\n marginInline: 'auto auto'\n }\n },\n [`&${componentCls}-topLeft, &${componentCls}-bottomLeft`]: {\n [`${componentCls}-notice`]: {\n marginInlineEnd: 'auto',\n marginInlineStart: 0\n }\n },\n // animation\n [`${componentCls}-fade-enter, ${componentCls}-fade-appear`]: {\n animationDuration: token.motionDurationMid,\n animationTimingFunction: motionEaseInOut,\n animationFillMode: 'both',\n opacity: 0,\n animationPlayState: 'paused'\n },\n [`${componentCls}-fade-leave`]: {\n animationTimingFunction: motionEaseInOut,\n animationFillMode: 'both',\n animationDuration: motionDurationMid,\n animationPlayState: 'paused'\n },\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: notificationFadeIn,\n animationPlayState: 'running'\n },\n [`${componentCls}-fade-leave${componentCls}-fade-leave-active`]: {\n animationName: notificationFadeOut,\n animationPlayState: 'running'\n }\n }), genNotificationPlacementStyle(token)), {\n // RTL\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-notice-btn`]: {\n float: 'left'\n }\n }\n })\n },\n // ============================ Notice ============================\n {\n [noticeCls]: {\n position: 'relative',\n width,\n maxWidth: `calc(100vw - ${notificationMarginEdge * 2}px)`,\n marginBottom: notificationMarginBottom,\n marginInlineStart: 'auto',\n padding: notificationPadding,\n overflow: 'hidden',\n lineHeight,\n wordWrap: 'break-word',\n background: notificationBg,\n borderRadius: borderRadiusLG,\n boxShadow: boxShadowSecondary,\n [`${componentCls}-close-icon`]: {\n fontSize,\n cursor: 'pointer'\n },\n [`${noticeCls}-message`]: {\n marginBottom: token.marginXS,\n color: colorTextHeading,\n fontSize: fontSizeLG,\n lineHeight: token.lineHeightLG\n },\n [`${noticeCls}-description`]: {\n fontSize\n },\n [`&${noticeCls}-closable ${noticeCls}-message`]: {\n paddingInlineEnd: token.paddingLG\n },\n [`${noticeCls}-with-icon ${noticeCls}-message`]: {\n marginBottom: token.marginXS,\n marginInlineStart: token.marginSM + notificationIconSize,\n fontSize: fontSizeLG\n },\n [`${noticeCls}-with-icon ${noticeCls}-description`]: {\n marginInlineStart: token.marginSM + notificationIconSize,\n fontSize\n },\n // Icon & color style in different selector level\n // https://github.com/ant-design/ant-design/issues/16503\n // https://github.com/ant-design/ant-design/issues/15512\n [`${noticeCls}-icon`]: {\n position: 'absolute',\n fontSize: notificationIconSize,\n lineHeight: 0,\n // icon-font\n [`&-success${iconCls}`]: {\n color: colorSuccess\n },\n [`&-info${iconCls}`]: {\n color: colorInfo\n },\n [`&-warning${iconCls}`]: {\n color: colorWarning\n },\n [`&-error${iconCls}`]: {\n color: colorError\n }\n },\n [`${noticeCls}-close`]: {\n position: 'absolute',\n top: token.notificationPaddingVertical,\n insetInlineEnd: token.notificationPaddingHorizontal,\n color: token.colorIcon,\n outline: 'none',\n width: token.notificationCloseButtonSize,\n height: token.notificationCloseButtonSize,\n borderRadius: token.borderRadiusSM,\n transition: `background-color ${token.motionDurationMid}, color ${token.motionDurationMid}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n '&:hover': {\n color: token.colorIconHover,\n backgroundColor: token.wireframe ? 'transparent' : token.colorFillContent\n }\n },\n [`${noticeCls}-btn`]: {\n float: 'right',\n marginTop: token.marginSM\n }\n }\n },\n // ============================= Pure =============================\n {\n [`${noticeCls}-pure-panel`]: {\n margin: 0\n }\n }];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Notification', token => {\n const notificationPaddingVertical = token.paddingMD;\n const notificationPaddingHorizontal = token.paddingLG;\n const notificationToken = mergeToken(token, {\n // default.less variables\n notificationBg: token.colorBgElevated,\n notificationPaddingVertical,\n notificationPaddingHorizontal,\n // index.less variables\n notificationPadding: `${token.paddingMD}px ${token.paddingContentHorizontalLG}px`,\n notificationMarginBottom: token.margin,\n notificationMarginEdge: token.marginLG,\n animationMaxHeight: 150,\n notificationIconSize: token.fontSizeLG * token.lineHeightLG,\n notificationCloseButtonSize: token.controlHeightLG * 0.55\n });\n return [genNotificationStyle(notificationToken)];\n}, token => ({\n zIndexPopup: token.zIndexPopupBase + 50,\n width: 384\n}));","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { computed, defineComponent } from 'vue';\nimport useStyle from './style';\nimport useConfigInject from '../config-provider/hooks/useConfigInject';\nimport Notice from '../vc-notification/Notice';\nimport classNames from '../_util/classNames';\nimport LoadingOutlined from \"@ant-design/icons-vue/es/icons/LoadingOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons-vue/es/icons/ExclamationCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons-vue/es/icons/CloseCircleFilled\";\nimport CheckCircleFilled from \"@ant-design/icons-vue/es/icons/CheckCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons-vue/es/icons/InfoCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons-vue/es/icons/CloseOutlined\";\nimport { renderHelper } from '../_util/util';\nexport function getCloseIcon(prefixCls, closeIcon) {\n return closeIcon || _createVNode(\"span\", {\n \"class\": `${prefixCls}-close-x`\n }, [_createVNode(CloseOutlined, {\n \"class\": `${prefixCls}-close-icon`\n }, null)]);\n}\nexport const TypeIcon = {\n info: _createVNode(InfoCircleFilled, null, null),\n success: _createVNode(CheckCircleFilled, null, null),\n error: _createVNode(CloseCircleFilled, null, null),\n warning: _createVNode(ExclamationCircleFilled, null, null),\n loading: _createVNode(LoadingOutlined, null, null)\n};\nconst typeToIcon = {\n success: CheckCircleFilled,\n info: InfoCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled\n};\nexport function PureContent(_ref) {\n let {\n prefixCls,\n icon,\n type,\n message,\n description,\n btn\n } = _ref;\n let iconNode = null;\n if (icon) {\n iconNode = _createVNode(\"span\", {\n \"class\": `${prefixCls}-icon`\n }, [renderHelper(icon)]);\n } else if (type) {\n const Icon = typeToIcon[type];\n iconNode = _createVNode(Icon, {\n \"class\": `${prefixCls}-icon ${prefixCls}-icon-${type}`\n }, null);\n }\n return _createVNode(\"div\", {\n \"class\": classNames({\n [`${prefixCls}-with-icon`]: iconNode\n }),\n \"role\": \"alert\"\n }, [iconNode, _createVNode(\"div\", {\n \"class\": `${prefixCls}-message`\n }, [message]), _createVNode(\"div\", {\n \"class\": `${prefixCls}-description`\n }, [description]), btn && _createVNode(\"div\", {\n \"class\": `${prefixCls}-btn`\n }, [btn])]);\n}\n/** @private Internal Component. Do not use in your production. */\nexport default defineComponent({\n name: 'PurePanel',\n inheritAttrs: false,\n props: ['prefixCls', 'icon', 'type', 'message', 'description', 'btn', 'closeIcon'],\n setup(props) {\n const {\n getPrefixCls\n } = useConfigInject('notification', props);\n const prefixCls = computed(() => props.prefixCls || getPrefixCls('notification'));\n const noticePrefixCls = computed(() => `${prefixCls.value}-notice`);\n const [, hashId] = useStyle(prefixCls);\n return () => {\n return _createVNode(Notice, _objectSpread(_objectSpread({}, props), {}, {\n \"prefixCls\": prefixCls.value,\n \"class\": classNames(hashId.value, `${noticePrefixCls.value}-pure-panel`),\n \"noticeKey\": \"pure\",\n \"duration\": null,\n \"closable\": props.closable,\n \"closeIcon\": getCloseIcon(prefixCls.value, props.closeIcon)\n }), {\n default: () => [_createVNode(PureContent, {\n \"prefixCls\": noticePrefixCls.value,\n \"icon\": props.icon,\n \"type\": props.type,\n \"message\": props.message,\n \"description\": props.description,\n \"btn\": props.btn\n }, null)]\n });\n };\n }\n});","export function getPlacementStyle(placement, top, bottom) {\n let style;\n top = typeof top === 'number' ? `${top}px` : top;\n bottom = typeof bottom === 'number' ? `${bottom}px` : bottom;\n switch (placement) {\n case 'top':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top,\n bottom: 'auto'\n };\n break;\n case 'topLeft':\n style = {\n left: 0,\n top,\n bottom: 'auto'\n };\n break;\n case 'topRight':\n style = {\n right: 0,\n top,\n bottom: 'auto'\n };\n break;\n case 'bottom':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: 'auto',\n bottom\n };\n break;\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom\n };\n break;\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom\n };\n break;\n }\n return style;\n}\nexport function getMotion(prefixCls) {\n return {\n name: `${prefixCls}-fade`\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { shallowRef, computed, defineComponent } from 'vue';\nimport { useNotification as useVcNotification } from '../vc-notification';\nimport useStyle from './style';\nimport { getCloseIcon, PureContent } from './PurePanel';\nimport { getMotion, getPlacementStyle } from './util';\nimport useConfigInject from '../config-provider/hooks/useConfigInject';\nimport classNames from '../_util/classNames';\nconst DEFAULT_OFFSET = 24;\nconst DEFAULT_DURATION = 4.5;\nconst Holder = defineComponent({\n name: 'Holder',\n inheritAttrs: false,\n props: ['prefixCls', 'class', 'type', 'icon', 'content', 'onAllRemoved'],\n setup(props, _ref) {\n let {\n expose\n } = _ref;\n const {\n getPrefixCls,\n getPopupContainer\n } = useConfigInject('notification', props);\n const prefixCls = computed(() => props.prefixCls || getPrefixCls('notification'));\n // =============================== Style ===============================\n const getStyles = placement => {\n var _a, _b;\n return getPlacementStyle(placement, (_a = props.top) !== null && _a !== void 0 ? _a : DEFAULT_OFFSET, (_b = props.bottom) !== null && _b !== void 0 ? _b : DEFAULT_OFFSET);\n };\n // Style\n const [, hashId] = useStyle(prefixCls);\n const getClassName = () => classNames(hashId.value, {\n [`${prefixCls.value}-rtl`]: props.rtl\n });\n // ============================== Motion ===============================\n const getNotificationMotion = () => getMotion(prefixCls.value);\n // ============================== Origin ===============================\n const [api, holder] = useVcNotification({\n prefixCls: prefixCls.value,\n getStyles,\n getClassName,\n motion: getNotificationMotion,\n closable: true,\n closeIcon: getCloseIcon(prefixCls.value),\n duration: DEFAULT_DURATION,\n getContainer: () => {\n var _a, _b;\n return ((_a = props.getPopupContainer) === null || _a === void 0 ? void 0 : _a.call(props)) || ((_b = getPopupContainer.value) === null || _b === void 0 ? void 0 : _b.call(getPopupContainer)) || document.body;\n },\n maxCount: props.maxCount,\n hashId: hashId.value,\n onAllRemoved: props.onAllRemoved\n });\n // ================================ Ref ================================\n expose(_extends(_extends({}, api), {\n prefixCls: prefixCls.value,\n hashId\n }));\n return holder;\n }\n});\n// ==============================================================================\n// == Hook ==\n// ==============================================================================\nexport function useInternalNotification(notificationConfig) {\n const holderRef = shallowRef(null);\n const holderKey = Symbol('notificationHolderKey');\n // ================================ API ================================\n // Wrap with notification content\n // >>> Open\n const open = config => {\n if (!holderRef.value) {\n return;\n }\n const {\n open: originOpen,\n prefixCls,\n hashId\n } = holderRef.value;\n const noticePrefixCls = `${prefixCls}-notice`;\n const {\n message,\n description,\n icon,\n type,\n btn,\n class: className\n } = config,\n restConfig = __rest(config, [\"message\", \"description\", \"icon\", \"type\", \"btn\", \"class\"]);\n return originOpen(_extends(_extends({\n placement: 'topRight'\n }, restConfig), {\n content: () => _createVNode(PureContent, {\n \"prefixCls\": noticePrefixCls,\n \"icon\": typeof icon === 'function' ? icon() : icon,\n \"type\": type,\n \"message\": typeof message === 'function' ? message() : message,\n \"description\": typeof description === 'function' ? description() : description,\n \"btn\": typeof btn === 'function' ? btn() : btn\n }, null),\n // @ts-ignore\n class: classNames(type && `${noticePrefixCls}-${type}`, hashId, className)\n }));\n };\n // >>> destroy\n const destroy = key => {\n var _a, _b;\n if (key !== undefined) {\n (_a = holderRef.value) === null || _a === void 0 ? void 0 : _a.close(key);\n } else {\n (_b = holderRef.value) === null || _b === void 0 ? void 0 : _b.destroy();\n }\n };\n const wrapAPI = {\n open,\n destroy\n };\n const keys = ['success', 'info', 'warning', 'error'];\n keys.forEach(type => {\n wrapAPI[type] = config => open(_extends(_extends({}, config), {\n type\n }));\n });\n // ============================== Return ===============================\n return [wrapAPI, () => _createVNode(Holder, _objectSpread(_objectSpread({\n \"key\": holderKey\n }, notificationConfig), {}, {\n \"ref\": holderRef\n }), null)];\n}\nexport default function useNotification(notificationConfig) {\n return useInternalNotification(notificationConfig);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport Notification from '../vc-notification';\nimport CheckCircleOutlined from \"@ant-design/icons-vue/es/icons/CheckCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons-vue/es/icons/InfoCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons-vue/es/icons/CloseCircleOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons-vue/es/icons/ExclamationCircleOutlined\";\nimport CloseOutlined from \"@ant-design/icons-vue/es/icons/CloseOutlined\";\nimport { renderHelper } from '../_util/util';\nimport { globalConfig } from '../config-provider';\nimport classNames from '../_util/classNames';\nimport useStyle from './style';\nimport useNotification from './useNotification';\nimport { getPlacementStyle } from './util';\nconst notificationInstance = {};\nlet defaultDuration = 4.5;\nlet defaultTop = '24px';\nlet defaultBottom = '24px';\nlet defaultPrefixCls = '';\nlet defaultPlacement = 'topRight';\nlet defaultGetContainer = () => document.body;\nlet defaultCloseIcon = null;\nlet rtl = false;\nlet maxCount;\nfunction setNotificationConfig(options) {\n const {\n duration,\n placement,\n bottom,\n top,\n getContainer,\n closeIcon,\n prefixCls\n } = options;\n if (prefixCls !== undefined) {\n defaultPrefixCls = prefixCls;\n }\n if (duration !== undefined) {\n defaultDuration = duration;\n }\n if (placement !== undefined) {\n defaultPlacement = placement;\n }\n if (bottom !== undefined) {\n defaultBottom = typeof bottom === 'number' ? `${bottom}px` : bottom;\n }\n if (top !== undefined) {\n defaultTop = typeof top === 'number' ? `${top}px` : top;\n }\n if (getContainer !== undefined) {\n defaultGetContainer = getContainer;\n }\n if (closeIcon !== undefined) {\n defaultCloseIcon = closeIcon;\n }\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n }\n}\nfunction getNotificationInstance(_ref, callback) {\n let {\n prefixCls: customizePrefixCls,\n placement = defaultPlacement,\n getContainer = defaultGetContainer,\n top,\n bottom,\n closeIcon = defaultCloseIcon,\n appContext\n } = _ref;\n const {\n getPrefixCls\n } = globalConfig();\n const prefixCls = getPrefixCls('notification', customizePrefixCls || defaultPrefixCls);\n const cacheKey = `${prefixCls}-${placement}-${rtl}`;\n const cacheInstance = notificationInstance[cacheKey];\n if (cacheInstance) {\n Promise.resolve(cacheInstance).then(instance => {\n callback(instance);\n });\n return;\n }\n const notificationClass = classNames(`${prefixCls}-${placement}`, {\n [`${prefixCls}-rtl`]: rtl === true\n });\n Notification.newInstance({\n name: 'notification',\n prefixCls: customizePrefixCls || defaultPrefixCls,\n useStyle,\n class: notificationClass,\n style: getPlacementStyle(placement, top !== null && top !== void 0 ? top : defaultTop, bottom !== null && bottom !== void 0 ? bottom : defaultBottom),\n appContext,\n getContainer,\n closeIcon: _ref2 => {\n let {\n prefixCls\n } = _ref2;\n const closeIconToRender = _createVNode(\"span\", {\n \"class\": `${prefixCls}-close-x`\n }, [renderHelper(closeIcon, {}, _createVNode(CloseOutlined, {\n \"class\": `${prefixCls}-close-icon`\n }, null))]);\n return closeIconToRender;\n },\n maxCount,\n hasTransitionName: true\n }, notification => {\n notificationInstance[cacheKey] = notification;\n callback(notification);\n });\n}\nconst typeToIcon = {\n success: CheckCircleOutlined,\n info: InfoCircleOutlined,\n error: CloseCircleOutlined,\n warning: ExclamationCircleOutlined\n};\nfunction notice(args) {\n const {\n icon,\n type,\n description,\n message,\n btn\n } = args;\n const duration = args.duration === undefined ? defaultDuration : args.duration;\n getNotificationInstance(args, notification => {\n notification.notice({\n content: _ref3 => {\n let {\n prefixCls: outerPrefixCls\n } = _ref3;\n const prefixCls = `${outerPrefixCls}-notice`;\n let iconNode = null;\n if (icon) {\n iconNode = () => _createVNode(\"span\", {\n \"class\": `${prefixCls}-icon`\n }, [renderHelper(icon)]);\n } else if (type) {\n const Icon = typeToIcon[type];\n iconNode = () => _createVNode(Icon, {\n \"class\": `${prefixCls}-icon ${prefixCls}-icon-${type}`\n }, null);\n }\n return _createVNode(\"div\", {\n \"class\": iconNode ? `${prefixCls}-with-icon` : ''\n }, [iconNode && iconNode(), _createVNode(\"div\", {\n \"class\": `${prefixCls}-message`\n }, [!description && iconNode ? _createVNode(\"span\", {\n \"class\": `${prefixCls}-message-single-line-auto-margin`\n }, null) : null, renderHelper(message)]), _createVNode(\"div\", {\n \"class\": `${prefixCls}-description`\n }, [renderHelper(description)]), btn ? _createVNode(\"span\", {\n \"class\": `${prefixCls}-btn`\n }, [renderHelper(btn)]) : null]);\n },\n duration,\n closable: true,\n onClose: args.onClose,\n onClick: args.onClick,\n key: args.key,\n style: args.style || {},\n class: args.class\n });\n });\n}\nconst api = {\n open: notice,\n close(key) {\n Object.keys(notificationInstance).forEach(cacheKey => Promise.resolve(notificationInstance[cacheKey]).then(instance => {\n instance.removeNotice(key);\n }));\n },\n config: setNotificationConfig,\n destroy() {\n Object.keys(notificationInstance).forEach(cacheKey => {\n Promise.resolve(notificationInstance[cacheKey]).then(instance => {\n instance.destroy();\n });\n delete notificationInstance[cacheKey]; // lgtm[js/missing-await]\n });\n }\n};\nconst iconTypes = ['success', 'info', 'warning', 'error'];\niconTypes.forEach(type => {\n api[type] = args => api.open(_extends(_extends({}, args), {\n type\n }));\n});\napi.warn = api.warning;\napi.useNotification = useNotification;\n/** @private test Only function. Not work on production */\nexport const getInstance = cacheKey => __awaiter(void 0, void 0, void 0, function* () {\n return process.env.NODE_ENV === 'test' ? notificationInstance[cacheKey] : null;\n});\nexport default api;","/* eslint-disable import/prefer-default-export, prefer-destructuring */\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { generate } from '@ant-design/colors';\nimport { updateCSS } from '../vc-util/Dom/dynamicCSS';\nimport canUseDom from '../_util/canUseDom';\nimport warning from '../_util/warning';\nconst dynamicStyleMark = `-ant-${Date.now()}-${Math.random()}`;\nexport function getStyle(globalPrefixCls, theme) {\n const variables = {};\n const formatColor = (color, updater) => {\n let clone = color.clone();\n clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n return clone.toRgbString();\n };\n const fillColor = (colorVal, type) => {\n const baseColor = new TinyColor(colorVal);\n const colorPalettes = generate(baseColor.toRgbString());\n variables[`${type}-color`] = formatColor(baseColor);\n variables[`${type}-color-disabled`] = colorPalettes[1];\n variables[`${type}-color-hover`] = colorPalettes[4];\n variables[`${type}-color-active`] = colorPalettes[6];\n variables[`${type}-color-outline`] = baseColor.clone().setAlpha(0.2).toRgbString();\n variables[`${type}-color-deprecated-bg`] = colorPalettes[0];\n variables[`${type}-color-deprecated-border`] = colorPalettes[2];\n };\n // ================ Primary Color ================\n if (theme.primaryColor) {\n fillColor(theme.primaryColor, 'primary');\n const primaryColor = new TinyColor(theme.primaryColor);\n const primaryColors = generate(primaryColor.toRgbString());\n // Legacy - We should use semantic naming standard\n primaryColors.forEach((color, index) => {\n variables[`primary-${index + 1}`] = color;\n });\n // Deprecated\n variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, c => c.lighten(35));\n variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, c => c.lighten(20));\n variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, c => c.tint(20));\n variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, c => c.tint(50));\n variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, c => c.setAlpha(c.getAlpha() * 0.12));\n const primaryActiveColor = new TinyColor(primaryColors[0]);\n variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, c => c.setAlpha(c.getAlpha() * 0.3));\n variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, c => c.darken(2));\n }\n // ================ Success Color ================\n if (theme.successColor) {\n fillColor(theme.successColor, 'success');\n }\n // ================ Warning Color ================\n if (theme.warningColor) {\n fillColor(theme.warningColor, 'warning');\n }\n // ================= Error Color =================\n if (theme.errorColor) {\n fillColor(theme.errorColor, 'error');\n }\n // ================= Info Color ==================\n if (theme.infoColor) {\n fillColor(theme.infoColor, 'info');\n }\n // Convert to css variables\n const cssList = Object.keys(variables).map(key => `--${globalPrefixCls}-${key}: ${variables[key]};`);\n return `\n :root {\n ${cssList.join('\\n')}\n }\n `.trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n const style = getStyle(globalPrefixCls, theme);\n if (canUseDom()) {\n updateCSS(style, `${dynamicStyleMark}-dynamic-theme`);\n } else {\n warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.');\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { useStyleRegister } from '../../_util/cssinjs';\nimport { resetIcon } from '../../style';\nimport { useToken } from '../../theme/internal';\nimport { computed } from 'vue';\nconst useStyle = iconPrefixCls => {\n const [theme, token] = useToken();\n // Generate style for icons\n return useStyleRegister(computed(() => ({\n theme: theme.value,\n token: token.value,\n hashId: '',\n path: ['ant-design-icons', iconPrefixCls.value]\n })), () => [{\n [`.${iconPrefixCls.value}`]: _extends(_extends({}, resetIcon()), {\n [`.${iconPrefixCls.value} .${iconPrefixCls.value}-icon`]: {\n display: 'block'\n }\n })\n }]);\n};\nexport default useStyle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { defaultConfig } from '../../theme/internal';\nimport { computed } from 'vue';\nexport default function useTheme(theme, parentTheme) {\n const themeConfig = computed(() => (theme === null || theme === void 0 ? void 0 : theme.value) || {});\n const parentThemeConfig = computed(() => themeConfig.value.inherit === false || !(parentTheme === null || parentTheme === void 0 ? void 0 : parentTheme.value) ? defaultConfig : parentTheme.value);\n const mergedTheme = computed(() => {\n if (!(theme === null || theme === void 0 ? void 0 : theme.value)) {\n return parentTheme === null || parentTheme === void 0 ? void 0 : parentTheme.value;\n }\n // Override\n const mergedComponents = _extends({}, parentThemeConfig.value.components);\n Object.keys(theme.value.components || {}).forEach(componentName => {\n mergedComponents[componentName] = _extends(_extends({}, mergedComponents[componentName]), theme.value.components[componentName]);\n });\n // Base token\n return _extends(_extends(_extends({}, parentThemeConfig.value), themeConfig.value), {\n token: _extends(_extends({}, parentThemeConfig.value.token), themeConfig.value.token),\n components: mergedComponents\n });\n });\n return mergedTheme;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { watch, computed, reactive, defineComponent, watchEffect } from 'vue';\nimport defaultRenderEmpty from './renderEmpty';\nimport LocaleProvider, { ANT_MARK } from '../locale-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport message from '../message';\nimport notification from '../notification';\nimport { registerTheme } from './cssVariables';\nimport defaultLocale from '../locale/en_US';\nimport useStyle from './style';\nimport useTheme from './hooks/useTheme';\nimport defaultSeedToken from '../theme/themes/seed';\nimport { useConfigContextProvider, useConfigContextInject, configProviderProps, useProvideGlobalForm, defaultIconPrefixCls } from './context';\nimport { useProviderSize } from './SizeContext';\nimport { useProviderDisabled } from './DisabledContext';\nimport { createTheme } from '../_util/cssinjs';\nimport { DesignTokenProvider } from '../theme/internal';\nexport const defaultPrefixCls = 'ant';\nexport { defaultIconPrefixCls };\nfunction getGlobalPrefixCls() {\n return globalConfigForApi.prefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n return globalConfigForApi.iconPrefixCls || defaultIconPrefixCls;\n}\nconst globalConfigBySet = reactive({}); // 权重最大\nexport const globalConfigForApi = reactive({});\nexport const configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\nwatchEffect(() => {\n _extends(globalConfigForApi, globalConfigBySet);\n globalConfigForApi.prefixCls = getGlobalPrefixCls();\n globalConfigForApi.iconPrefixCls = getGlobalIconPrefixCls();\n globalConfigForApi.getPrefixCls = (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? `${globalConfigForApi.prefixCls}-${suffixCls}` : globalConfigForApi.prefixCls;\n };\n globalConfigForApi.getRootPrefixCls = () => {\n // If Global prefixCls provided, use this\n if (globalConfigForApi.prefixCls) {\n return globalConfigForApi.prefixCls;\n }\n // Fallback to default prefixCls\n return getGlobalPrefixCls();\n };\n});\nlet stopWatchEffect;\nconst setGlobalConfig = params => {\n if (stopWatchEffect) {\n stopWatchEffect();\n }\n stopWatchEffect = watchEffect(() => {\n _extends(globalConfigBySet, reactive(params));\n _extends(globalConfigForApi, reactive(params));\n });\n if (params.theme) {\n registerTheme(getGlobalPrefixCls(), params.theme);\n }\n};\nexport const globalConfig = () => ({\n getPrefixCls: (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? `${getGlobalPrefixCls()}-${suffixCls}` : getGlobalPrefixCls();\n },\n getIconPrefixCls: getGlobalIconPrefixCls,\n getRootPrefixCls: () => {\n // If Global prefixCls provided, use this\n if (globalConfigForApi.prefixCls) {\n return globalConfigForApi.prefixCls;\n }\n // Fallback to default prefixCls\n return getGlobalPrefixCls();\n }\n});\nconst ConfigProvider = defineComponent({\n compatConfig: {\n MODE: 3\n },\n name: 'AConfigProvider',\n inheritAttrs: false,\n props: configProviderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const parentContext = useConfigContextInject();\n const getPrefixCls = (suffixCls, customizePrefixCls) => {\n const {\n prefixCls = 'ant'\n } = props;\n if (customizePrefixCls) return customizePrefixCls;\n const mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? `${mergedPrefixCls}-${suffixCls}` : mergedPrefixCls;\n };\n const iconPrefixCls = computed(() => props.iconPrefixCls || parentContext.iconPrefixCls.value || defaultIconPrefixCls);\n const shouldWrapSSR = computed(() => iconPrefixCls.value !== parentContext.iconPrefixCls.value);\n const csp = computed(() => {\n var _a;\n return props.csp || ((_a = parentContext.csp) === null || _a === void 0 ? void 0 : _a.value);\n });\n const wrapSSR = useStyle(iconPrefixCls);\n const mergedTheme = useTheme(computed(() => props.theme), computed(() => {\n var _a;\n return (_a = parentContext.theme) === null || _a === void 0 ? void 0 : _a.value;\n }));\n const renderEmptyComponent = name => {\n const renderEmpty = props.renderEmpty || slots.renderEmpty || parentContext.renderEmpty || defaultRenderEmpty;\n return renderEmpty(name);\n };\n const autoInsertSpaceInButton = computed(() => {\n var _a, _b;\n return (_a = props.autoInsertSpaceInButton) !== null && _a !== void 0 ? _a : (_b = parentContext.autoInsertSpaceInButton) === null || _b === void 0 ? void 0 : _b.value;\n });\n const locale = computed(() => {\n var _a;\n return props.locale || ((_a = parentContext.locale) === null || _a === void 0 ? void 0 : _a.value);\n });\n watch(locale, () => {\n globalConfigBySet.locale = locale.value;\n }, {\n immediate: true\n });\n const direction = computed(() => {\n var _a;\n return props.direction || ((_a = parentContext.direction) === null || _a === void 0 ? void 0 : _a.value);\n });\n const space = computed(() => {\n var _a, _b;\n return (_a = props.space) !== null && _a !== void 0 ? _a : (_b = parentContext.space) === null || _b === void 0 ? void 0 : _b.value;\n });\n const virtual = computed(() => {\n var _a, _b;\n return (_a = props.virtual) !== null && _a !== void 0 ? _a : (_b = parentContext.virtual) === null || _b === void 0 ? void 0 : _b.value;\n });\n const dropdownMatchSelectWidth = computed(() => {\n var _a, _b;\n return (_a = props.dropdownMatchSelectWidth) !== null && _a !== void 0 ? _a : (_b = parentContext.dropdownMatchSelectWidth) === null || _b === void 0 ? void 0 : _b.value;\n });\n const getTargetContainer = computed(() => {\n var _a;\n return props.getTargetContainer !== undefined ? props.getTargetContainer : (_a = parentContext.getTargetContainer) === null || _a === void 0 ? void 0 : _a.value;\n });\n const getPopupContainer = computed(() => {\n var _a;\n return props.getPopupContainer !== undefined ? props.getPopupContainer : (_a = parentContext.getPopupContainer) === null || _a === void 0 ? void 0 : _a.value;\n });\n const pageHeader = computed(() => {\n var _a;\n return props.pageHeader !== undefined ? props.pageHeader : (_a = parentContext.pageHeader) === null || _a === void 0 ? void 0 : _a.value;\n });\n const input = computed(() => {\n var _a;\n return props.input !== undefined ? props.input : (_a = parentContext.input) === null || _a === void 0 ? void 0 : _a.value;\n });\n const pagination = computed(() => {\n var _a;\n return props.pagination !== undefined ? props.pagination : (_a = parentContext.pagination) === null || _a === void 0 ? void 0 : _a.value;\n });\n const form = computed(() => {\n var _a;\n return props.form !== undefined ? props.form : (_a = parentContext.form) === null || _a === void 0 ? void 0 : _a.value;\n });\n const select = computed(() => {\n var _a;\n return props.select !== undefined ? props.select : (_a = parentContext.select) === null || _a === void 0 ? void 0 : _a.value;\n });\n const componentSize = computed(() => props.componentSize);\n const componentDisabled = computed(() => props.componentDisabled);\n const wave = computed(() => {\n var _a, _b;\n return (_a = props.wave) !== null && _a !== void 0 ? _a : (_b = parentContext.wave) === null || _b === void 0 ? void 0 : _b.value;\n });\n const configProvider = {\n csp,\n autoInsertSpaceInButton,\n locale,\n direction,\n space,\n virtual,\n dropdownMatchSelectWidth,\n getPrefixCls,\n iconPrefixCls,\n theme: computed(() => {\n var _a, _b;\n return (_a = mergedTheme.value) !== null && _a !== void 0 ? _a : (_b = parentContext.theme) === null || _b === void 0 ? void 0 : _b.value;\n }),\n renderEmpty: renderEmptyComponent,\n getTargetContainer,\n getPopupContainer,\n pageHeader,\n input,\n pagination,\n form,\n select,\n componentSize,\n componentDisabled,\n transformCellText: computed(() => props.transformCellText),\n wave\n };\n // ================================ Dynamic theme ================================\n const memoTheme = computed(() => {\n const _a = mergedTheme.value || {},\n {\n algorithm,\n token\n } = _a,\n rest = __rest(_a, [\"algorithm\", \"token\"]);\n const themeObj = algorithm && (!Array.isArray(algorithm) || algorithm.length > 0) ? createTheme(algorithm) : undefined;\n return _extends(_extends({}, rest), {\n theme: themeObj,\n token: _extends(_extends({}, defaultSeedToken), token)\n });\n });\n const validateMessagesRef = computed(() => {\n var _a, _b;\n // Additional Form provider\n let validateMessages = {};\n if (locale.value) {\n validateMessages = ((_a = locale.value.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || ((_b = defaultLocale.Form) === null || _b === void 0 ? void 0 : _b.defaultValidateMessages) || {};\n }\n if (props.form && props.form.validateMessages) {\n validateMessages = _extends(_extends({}, validateMessages), props.form.validateMessages);\n }\n return validateMessages;\n });\n useConfigContextProvider(configProvider);\n useProvideGlobalForm({\n validateMessages: validateMessagesRef\n });\n useProviderSize(componentSize);\n useProviderDisabled(componentDisabled);\n const renderProvider = legacyLocale => {\n var _a, _b;\n let childNode = shouldWrapSSR.value ? wrapSSR((_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)) : (_b = slots.default) === null || _b === void 0 ? void 0 : _b.call(slots);\n if (props.theme) {\n const _childNode = function () {\n return childNode;\n }();\n childNode = _createVNode(DesignTokenProvider, {\n \"value\": memoTheme.value\n }, {\n default: () => [_childNode]\n });\n }\n return _createVNode(LocaleProvider, {\n \"locale\": locale.value || legacyLocale,\n \"ANT_MARK__\": ANT_MARK\n }, {\n default: () => [childNode]\n });\n };\n watchEffect(() => {\n if (direction.value) {\n message.config({\n rtl: direction.value === 'rtl'\n });\n notification.config({\n rtl: direction.value === 'rtl'\n });\n }\n });\n return () => _createVNode(LocaleReceiver, {\n \"children\": (_, __, legacyLocale) => renderProvider(legacyLocale)\n }, null);\n }\n});\nConfigProvider.config = setGlobalConfig;\nConfigProvider.install = function (app) {\n app.component(ConfigProvider.name, ConfigProvider);\n};\nexport default ConfigProvider;","import { useRequest } from 'liyu-pc-base/init-plugin';\n\nexport async function queryRoleAndPerson(params?: { [key: string]: any }): Promise<RoleResponse> {\n return useRequest().post('/permission/query_role_and_person_list', params);\n}\n\nexport async function removeRole(params: Record<string, any>) {\n return useRequest().post('/permission/delete_role', params);\n}\nexport async function recoverRole(params: Record<string, any>) {\n return useRequest().post('/permission/recover_role', params);\n}\nexport async function query_role_and_person_by_admin_list(params?: {\n [key: string]: any;\n}): Promise<RoleResponse> {\n return useRequest().post('/permission/query_role_and_person_by_admin_list', params);\n}\n\nexport async function addRole(params: Record<string, any>) {\n return useRequest().post('/permission/create_role', params);\n}\n\nexport async function updateRole(params: Record<string, any>) {\n return useRequest().post('/permission/update_role', params);\n}\nexport async function copy_role_info(params: Record<string, any>) {\n return useRequest().post('/permission/copy_role_info', params);\n}\nexport async function import_role(params: Record<string, any>) {\n return useRequest().post('/permission/import_role', params);\n}\nexport async function import_role_by_super(params: Record<string, any>) {\n return useRequest().post('/permission/import_role_by_super', params);\n}\nexport async function export_role_by_super(params: Record<string, any>) {\n return useRequest().post('/permission/export_role_by_super', params);\n}\ninterface RuleItem {\n key: string | number;\n callNo: number;\n avatar: string;\n desc: string;\n disabled: false;\n href: string;\n name: string;\n owner: string;\n progress: number;\n status: number;\n updatedAt: string;\n createdAt: string;\n}\n\ninterface RoleResponse {\n current: number;\n data: RuleItem[];\n pageSize: string;\n success: boolean;\n total: number;\n}\n","import { message } from 'ant-design-vue/es';\nimport { reactive, ref } from 'vue';\n\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport {\n copy_role_info,\n import_role_by_super,\n updateRole,\n} from 'liyu-pc-base/api/permission/auth-manage';\nimport { useEnv } from 'liyu-pc-base/init-plugin';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\n\nconst has_project = () => {\n const env = useEnv();\n return env.VITE_APP_HAS_PROJECT;\n};\nexport const btn_list: BtnListConfig = [\n {\n name: '修改',\n type: 'dropdown',\n clazz: 'primary',\n cb: ({ record }) => {\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n const editModal = reactive({\n visible: true,\n title: '修改',\n loading: false,\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'input',\n name: 'flag',\n label: '角色标识',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色标识',\n },\n {\n type: 'textarea',\n name: 'desc',\n label: '角色描述',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n placeholder: '请填写角色描述',\n },\n ],\n rules: {},\n model: {\n org_id: current_org.id,\n aim_org_id: record.org_id,\n role_id: record.id,\n name: record.name,\n flag: record.flag,\n desc: record.desc,\n },\n },\n options: {},\n ok: (payload: any) => {\n return new Promise(resolve => {\n editModal.loading = true;\n updateRole({\n ...payload,\n })\n .then((res: any) => {\n message.success('修改成功');\n Object.assign(record, res);\n event_obj().emit('refresh');\n resolve(null);\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n },\n });\n modalBox(editModal);\n },\n },\n {\n name: '修改模块',\n type: 'dropdown',\n is_show: ({ record }) => {\n return record.is_active && has_project();\n },\n model_kind: 'custom_component',\n model_config: {\n component: 'MenuProjectRoleModal',\n title: '修改模块({{record.name}})',\n },\n },\n {\n name: '修改权限',\n type: 'dropdown',\n is_show: ({ record }) => {\n return record.is_active;\n },\n cb: ({ record }) => {\n const editModal = reactive({\n visible: true,\n role_id: record.id,\n aim_org_id: record.org_id,\n component: 'AuthEditModal',\n ok: (data: any) => {},\n });\n modalBox(editModal);\n },\n },\n {\n name: '修改用户',\n type: 'dropdown',\n is_show: ({ record }) => {\n return record.is_active;\n },\n cb: ({ record, current_org }) => {\n const editModal = reactive({\n visible: true,\n title: '修改用户',\n org_id: record.org_id,\n person_list: record.person_list,\n role_id: record.id,\n component: 'PersonModal',\n ok: (data: any) => {\n return new Promise(function (resolve) {\n if (data && data.person_ids && data.person_ids.length > 0) {\n data.person_ids = data.person_ids.join(',');\n } else {\n data.person_ids = '';\n }\n updateRole({ org_id: current_org.id, aim_org_id: editModal.org_id, ...data }).then(\n () => {\n message.success('修改用户成功');\n event_obj().emit('refresh');\n resolve(true);\n },\n );\n editModal.visible = false;\n });\n },\n });\n modalBox(editModal);\n },\n },\n {\n name: '复制角色',\n type: 'dropdown',\n is_show: ({ record }) => {\n return record.is_active;\n },\n cb: ({ record, current_org }) => {\n const editModal = reactive({\n open: true,\n title: '复制角色',\n form: {\n settings: {\n name: '表单名称',\n labelAlign: 'right',\n layout: 'horizontal',\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'input',\n name: 'flag',\n label: '角色标识',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色标识',\n },\n {\n type: 'textarea',\n name: 'desc',\n label: '角色描述',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n placeholder: '请填写角色描述',\n },\n ],\n rules: {\n name: [{ required: true, message: '角色名称必须填写' }],\n },\n model: reactive({\n org_id: current_org.id,\n name: '',\n desc: '',\n flag: '',\n }),\n },\n options: {},\n ok: data => {\n copy_role_info({\n ...data,\n org_id: current_org.id,\n role_id: record.id,\n }).then(() => {\n message.success('复制角色成功');\n event_obj().emit('refresh');\n });\n },\n });\n modalBox(editModal);\n },\n },\n];\nexport const config = {\n creatCol: [],\n updateCol: [],\n};\nexport const head_btn_list: HeadBtnListConfig = [\n {\n name: '导出权限',\n clazz: 'primary',\n cb: ({ current_org }) => {\n const editModal = reactive({\n visible: true,\n loading: false,\n title: '导出权限',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '导出组织',\n disabled: false,\n datasourceType: 'remote',\n show_search: true,\n mode: 'default',\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n modalType: 'liyu_organization-query_org_for_login_list',\n },\n ],\n rules: reactive({}),\n model: reactive({\n org_id: current_org?.id,\n aim_org_id: current_org?.id,\n }),\n watch: {},\n },\n options: {},\n ok: (data: any) => {\n const p = new Promise(function (resolve) {\n window.open(\n `/permission/export_role_by_super?org_id=${current_org?.id}&aim_org_id=${data?.aim_org_id}`,\n '_blank',\n );\n resolve(null);\n });\n return p;\n },\n });\n modalBox(editModal);\n },\n },\n {\n name: '导入权限',\n clazz: 'primary',\n cb: ({ current_org }) => {\n const editModal = reactive({\n visible: true,\n loading: false,\n title: '导入权限',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '导入组织',\n disabled: false,\n datasourceType: 'remote',\n show_search: true,\n mode: 'default',\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n modalType: 'liyu_organization-query_org_for_login_list',\n },\n {\n type: 'textarea',\n name: 'role_json',\n label: '角色JSON',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '角色JSON',\n },\n ],\n rules: reactive({}),\n model: reactive({\n org_id: current_org?.id,\n aim_org_id: current_org?.id,\n }),\n watch: {},\n },\n options: {},\n ok: (data: any) => {\n const p = new Promise(function (resolve) {\n import_role_by_super(data).then(() => {\n editModal.loading = true;\n resolve(null);\n message.success('导入权限成功');\n });\n });\n return p;\n },\n });\n modalBox(editModal);\n },\n },\n];\n","import type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\nexport const btn_list: BtnListConfig = [];\nexport const config = {\n creatCol: [],\n updateCol: [],\n};\n\nexport const head_btn_list: HeadBtnListConfig = [];\n","import type { TableColumn } from 'liyu-pc-base/typing';\nimport type { Record, SearchConfig } from 'liyu-pc-base/components/remotePages/typing';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\nimport { btn_list, config, head_btn_list } from './permission-role-config';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport { useEnv } from 'liyu-pc-base/init-plugin';\nimport { reactive } from 'vue';\n\nexport default () => {\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n const env = useEnv();\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '目标组织',\n disabled: false,\n placeholder: '请选择目标组织',\n datasourceType: 'remote',\n mode: 'default',\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n modalType: 'sys-query_org_for_login_list',\n },\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'radio',\n name: 'is_active',\n label: '状态',\n mode: 'default',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择状态',\n datasource: 'is_active',\n },\n ],\n rules: {},\n model: reactive({\n org_id: current_org.id,\n aim_org_id: current_org.id,\n is_active: true,\n get_menu: true,\n name: '',\n }),\n options: {\n is_active: [\n { name: '全部', value: '' },\n { name: '正常', value: true },\n { name: '作废', value: false },\n ],\n },\n default_column_field: ['parent_id'],\n };\n\n const edit_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'input',\n name: 'flag',\n label: '角色标识',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色标识',\n },\n {\n type: 'textarea',\n name: 'desc',\n label: '角色描述',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n placeholder: '请填写角色描述',\n },\n ],\n rules: {\n name: [{ required: true, message: '角色名称必须填写' }],\n },\n model: {\n org_id: current_org.id,\n aim_org_id: current_org.id,\n id: null,\n name: '',\n desc: '',\n },\n options: {},\n };\n\n const update_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'input',\n name: 'flag',\n label: '角色标识',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色标识',\n },\n {\n type: 'textarea',\n name: 'desc',\n label: '角色描述',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n placeholder: '请填写角色描述',\n },\n ],\n rules: {},\n model: {\n org_id: current_org.id,\n aim_org_id: current_org.id,\n id: null,\n name: '',\n desc: '',\n },\n options: {},\n };\n\n const titleList = {\n title: '权限管理',\n addModalTitle: '新建角色',\n updateTitle: '修改',\n is_create: 'permission/create_role', // userStore.CHECK_AUTH(CREATE_ROLE), // 是否有【新建】按钮\n is_update: 'permission/update_role', // userStore.CHECK_AUTH(UPDATE_ROLE), // 是否有【修改】按钮\n is_remove: 'permission/delete_role', // userStore.CHECK_AUTH(DELETE_ROLE), // 是否有【删除】按钮\n is_recover: 'permission/recover_role', // userStore.CHECK_AUTH(RECOVER_ROLE), // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n role_id: 'id',\n },\n delete: {\n role_id: 'id',\n },\n recover: {\n role_id: 'id',\n },\n updateData: {\n org_id: 'org_id',\n role_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n width: 50,\n dataIndex: 'index',\n checked: true,\n fixed: 'left',\n },\n {\n title: 'ID',\n width: 150,\n dataIndex: 'id',\n checked: false,\n fixed: 'left',\n },\n {\n title: '名称',\n dataIndex: 'name',\n checked: true,\n fixed: 'left',\n },\n {\n title: '描述',\n checked: true,\n dataIndex: 'desc',\n },\n {\n title: '角色标识',\n checked: true,\n dataIndex: 'flag',\n },\n {\n title: '用户数量',\n dataIndex: 'person__count',\n checked: true,\n width: 100,\n },\n {\n title: '是否可用',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '全部', value: '' },\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n {\n title: '操作',\n checked: true,\n width: 50,\n dataIndex: 'action',\n cellComponent: 'action',\n },\n ];\n if (env.VITE_APP_HAS_PROJECT) {\n baseColumns.splice(5, 0, {\n title: '模块列表',\n dataIndex: 'menu_project__name',\n checked: true,\n cellComponent: 'list',\n });\n }\n return {\n searchConfig: search_config,\n formModalConfig: edit_model_config,\n updateFormModalConfig: update_model_config,\n queryData: '/permission/query_role_and_person_list',\n addData: '/permission/create_role',\n updateData: '/permission/update_role',\n removeData: '/permission/delete_role',\n recoverData: '/permission/recover_role',\n baseColumns,\n titleList,\n api_fields,\n btn_list,\n head_btn_list,\n event_obj: event_obj(),\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n queryConditionGroupData: null,\n isView: false,\n };\n};\n","import { addPerson, updatePerson } from 'liyu-pc-base/api/permission/user-manage';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport { reactive } from 'vue';\nimport { message } from 'ant-design-vue';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\nexport const btn_list: BtnListConfig = [\n {\n name: '修改',\n type: 'dropdown',\n clazz: 'primary',\n cb: ({ record }) => {\n const editModal = reactive({\n visible: true,\n title: '修改',\n loading: false,\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: [],\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '隶属组织',\n disabled: true,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请选择隶属组织',\n datasourceType: 'remote',\n mode: 'default',\n default: true,\n modalType: 'select-org-id',\n },\n {\n type: 'input',\n name: 'username',\n label: '手机号',\n disabled: false,\n allowClear: true,\n inputType: 'number',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填手机号',\n },\n {\n type: 'input',\n name: 'realname',\n label: '姓名',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'select',\n name: 'manage_type',\n label: '用户类型',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'remoteselect',\n name: 'role_ids',\n label: '角色',\n disabled: false,\n placeholder: '请选择角色',\n datasourceType: 'remote',\n mode: 'multiple',\n allowClear: true,\n modalType: 'liyu_permission-role',\n },\n ],\n rules: {},\n model: reactive({\n aim_org_id: record.org_id,\n person_id: record.id,\n username: record.user__username,\n realname: record.realname,\n title: record.title,\n manage_type: record.manage_type,\n email: record.email,\n role_ids: record.role_list?.map((item: any) => item.id),\n // group_ids: group_ids,\n }),\n },\n options: {\n manage_type: [\n { label: '普通用户', value: 0 },\n { label: '超级管理员', value: 2 },\n ],\n },\n ok: (payload: any) => {\n return new Promise(resolve => {\n editModal.loading = true;\n updatePerson({\n ...payload,\n })\n .then((res: any) => {\n message.success('修改成功');\n Object.assign(record, res);\n event_obj().emit('refresh');\n resolve(null);\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n },\n });\n modalBox(editModal);\n },\n },\n];\nexport const config = {\n creatCol: [],\n updateCol: [],\n};\n\nexport const head_btn_list: HeadBtnListConfig = [\n {\n name: '新建用户',\n type: 'dropdown',\n is_show: true,\n clazz: 'primary',\n cb: ({ searchModel }) => {\n const editModal = reactive({\n visible: true,\n title: '新建用户',\n loading: false,\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: [],\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '隶属组织',\n disabled: true,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请选择隶属组织',\n datasourceType: 'remote',\n mode: 'default',\n default: true,\n modalType: 'select-org-id',\n },\n {\n type: 'input',\n name: 'username',\n label: '手机号',\n disabled: false,\n allowClear: true,\n inputType: 'number',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填手机号',\n },\n {\n type: 'input',\n name: 'realname',\n label: '姓名',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'select',\n name: 'manage_type',\n label: '用户类型',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'remoteselect',\n name: 'role_ids',\n label: '角色',\n disabled: false,\n placeholder: '请选择角色',\n datasourceType: 'remote',\n mode: 'multiple',\n allowClear: true,\n modalType: 'liyu_permission-role',\n },\n ],\n rules: {},\n model: reactive({\n aim_org_id: searchModel.aim_org_id,\n person_id: null,\n username: null,\n realname: null,\n manage_type: 0,\n role_ids: [],\n }),\n },\n options: {\n manage_type: [\n { label: '普通用户', value: 0 },\n { label: '超级管理员', value: 2 },\n ],\n },\n ok: (payload: any) => {\n return new Promise(resolve => {\n editModal.loading = true;\n addPerson({\n ...payload,\n })\n .then((res: any) => {\n message.success('修改成功');\n event_obj().emit('refresh');\n resolve(null);\n })\n .finally(() => {\n editModal.loading = false;\n });\n });\n },\n });\n modalBox(editModal);\n },\n },\n];\n","import { TableColumn } from 'liyu-pc-base/typing';\nimport { Record, SearchConfig } from 'liyu-pc-base/components/remotePages/typing';\nimport { btn_list, config, head_btn_list } from './permission-user-config';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport { reactive } from 'vue';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '目标组织',\n disabled: false,\n placeholder: '请选择目标组织',\n datasourceType: 'remote',\n mode: 'default',\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n modalType: 'sys-query_org_for_login_list',\n },\n {\n type: 'input',\n name: 'name',\n label: '名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写用户名称',\n },\n ],\n rules: {},\n model: reactive({\n org_id: current_org.id,\n aim_org_id: current_org.id,\n is_active: true,\n name: '',\n get_role: true,\n }),\n options: {},\n };\n\n const edit_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '隶属组织',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n placeholder: '请选择隶属组织',\n datasourceType: 'remote',\n mode: 'default',\n default: true,\n modalType: 'select-org-id',\n },\n {\n type: 'input',\n name: 'username',\n label: '手机号',\n disabled: false,\n allowClear: true,\n inputType: 'number',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填手机号',\n },\n {\n type: 'input',\n name: 'realname',\n label: '姓名',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'select',\n name: 'manage_type',\n label: '用户类型',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填姓名',\n },\n {\n type: 'remoteselect',\n name: 'role_ids',\n label: '角色',\n disabled: false,\n placeholder: '请选择角色',\n datasourceType: 'remote',\n mode: 'multiple',\n allowClear: true,\n modalType: 'liyu_permission-role',\n },\n ],\n rules: {\n username: [{ required: true, pattern: /^1[123456789]\\d{9}$/, message: '请输入正确手机号' }],\n realname: [{ required: true, message: '请输入姓名' }],\n },\n model: {\n org_id: current_org?.id,\n id: null,\n username: '',\n realname: '',\n aim_org_id: current_org?.id,\n },\n options: {\n manage_type: [\n { label: '普通用户', value: 0 },\n { label: '超级管理员', value: 2 },\n ],\n },\n };\n\n const update_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'horizontal',\n col: config.creatCol,\n },\n fields: [],\n rules: {},\n model: reactive({\n org_id: current_org.id,\n id: null,\n username: '',\n realname: '',\n title: '',\n aim_org_id: '',\n email: '',\n }),\n options: {},\n };\n\n const titleList = {\n title: '用户管理',\n addModalTitle: '新建用户',\n updateTitle: '修改',\n is_create: false, // 是否有【新建】按钮\n is_update: false, // 是否有【修改】按钮\n is_remove: true, // 是否有【删除】按钮\n is_recover: false, // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n aim_org_id: 'org_id',\n person_id: 'id',\n },\n delete: {\n person_id: 'id',\n },\n recover: {\n person_id: 'id',\n },\n updateData: {\n org_id: 'org_id',\n person_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n width: 50,\n dataIndex: 'index',\n checked: true,\n fixed: 'left',\n },\n {\n title: '名称',\n width: 150,\n dataIndex: 'realname',\n checked: true,\n fixed: 'left',\n },\n {\n title: '用户类型',\n width: 120,\n dataIndex: 'manage_type',\n checked: true,\n cellComponent: 'tag',\n contentMap: {\n 0: '普通用户',\n 2: '超级管理员',\n },\n colorMap: {\n 0: '',\n 2: 'cyan',\n },\n },\n {\n title: '手机号',\n width: 130,\n checked: true,\n dataIndex: 'user__username',\n },\n {\n title: '角色',\n minWidth: 200,\n checked: true,\n dataIndex: 'role_list',\n cellComponent: 'list',\n },\n // {\n // title: '电子邮箱',\n // width: 150,\n // dataIndex: 'email',\n // },\n // {\n // title: '微信',\n // width: 80,\n // dataIndex: 'user__lyuserinfo__wechat_username',\n // cellComponent: 'tag',\n // color: (record: any, text: any) => {\n // return text ? 'green' : 'red';\n // },\n // content: (record: any, text: any) => {\n // return text ? '已绑定' : '未绑定';\n // },\n // },\n // {\n // title: '隶属部门',\n // minWidth: 200,\n // dataIndex: 'group_list',\n // cellComponent: 'list',\n // },\n // {\n // title: '职务',\n // width: 150,\n // dataIndex: 'title',\n // },\n {\n title: '是否可用',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '全部', value: '' },\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n {\n title: '操作',\n width: 50,\n checked: true,\n dataIndex: 'action',\n cellComponent: 'action',\n fixed: 'right',\n },\n ];\n\n return {\n searchConfig: search_config,\n formModalConfig: edit_model_config,\n updateFormModalConfig: update_model_config,\n queryData: '/sys/query_person_detail_list',\n addData: '/sys/create_user',\n updateData: '/sys/update_user',\n removeData: '/sys/delete_user',\n recoverData: '/sys/recover_user',\n baseColumns: baseColumns,\n titleList: titleList,\n api_fields: api_fields,\n btn_list: btn_list,\n head_btn_list: head_btn_list,\n event_obj: event_obj(),\n base_search_condition_config_list: [],\n default_search_condition_config_list: [[]],\n condition_group_config_list: [],\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n queryConditionGroupData: null,\n isView: false,\n };\n};\n","import {\n queryRole,\n addRole,\n updateRole,\n removeRole,\n recoverRole,\n} from 'liyu-pc-base/api/permission/role-manage';\nimport type { TableColumn } from 'liyu-pc-base/typing';\nimport type { SearchConfig, Record } from 'liyu-pc-base/components/remotePages/typing';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\nimport { btn_list, head_btn_list, config } from './permission-role-manage-config';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport { reactive } from 'vue';\n\nexport default () => {\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n const search_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'inline',\n },\n fields: [\n {\n type: 'remoteselect',\n name: 'aim_org_id',\n label: '目标组织',\n disabled: false,\n placeholder: '请选择目标组织',\n datasourceType: 'remote',\n mode: 'default',\n allowClear: true,\n labelKey: 'name',\n valueKey: 'id',\n modalType: 'sys-query_org_for_login_list',\n },\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'radio',\n name: 'is_active',\n label: '状态',\n mode: 'default',\n disabled: false,\n defaultValue: '',\n labelKey: 'name',\n valueKey: 'value',\n placeholder: '请选择状态',\n datasource: 'is_active',\n },\n ],\n rules: {},\n model: reactive({\n org_id: current_org.id,\n aim_org_id: current_org.id,\n is_active: true,\n name: '',\n }),\n };\n const search_options = {\n is_active: [\n { name: '全部', value: '' },\n { name: '正常', value: true },\n { name: '作废', value: false },\n ],\n };\n\n const edit_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'input',\n name: 'flag',\n label: '角色标识',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色标识',\n },\n {\n type: 'textarea',\n name: 'desc',\n label: '角色描述',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n placeholder: '请填写角色描述',\n },\n ],\n rules: {\n name: [{ required: true, message: '角色名称必须填写' }],\n },\n model: {\n org_id: current_org.id,\n aim_org_id: current_org.id,\n id: null,\n name: '',\n desc: '',\n },\n };\n const edit_model_config_options = {};\n\n const update_model_config: SearchConfig = {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: config.creatCol,\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '角色名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色名称',\n },\n {\n type: 'input',\n name: 'flag',\n label: '角色标识',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n maxlength: 100,\n defaultValue: '',\n placeholder: '请填写角色标识',\n },\n {\n type: 'textarea',\n name: 'desc',\n label: '角色描述',\n disabled: false,\n allowClear: true,\n defaultValue: '',\n placeholder: '请填写角色描述',\n },\n ],\n rules: {},\n model: {\n org_id: current_org.id,\n aim_org_id: current_org.id,\n id: null,\n name: '',\n desc: '',\n },\n };\n const update_model_config_options = {};\n\n const titleList = {\n title: '角色管理',\n addModalTitle: '新建角色',\n updateTitle: '修改',\n is_create: true, // 是否有【新建】按钮\n is_update: true, // 是否有【修改】按钮\n is_remove: true, // 是否有【删除】按钮\n is_recover: true, // 是否有【恢复】按钮\n };\n\n const api_fields: Record = {\n update: {\n role_id: 'id',\n },\n delete: {\n role_id: 'id',\n },\n recover: {\n role_id: 'id',\n },\n updateData: {\n org_id: 'org_id',\n role_id: 'id',\n },\n };\n\n const baseColumns: TableColumn[] = [\n {\n title: '序号',\n width: 50,\n dataIndex: 'index',\n checked: true,\n fixed: 'left',\n },\n {\n title: '名称',\n width: 150,\n dataIndex: 'name',\n checked: true,\n fixed: 'left',\n },\n {\n title: '描述',\n dataIndex: 'desc',\n checked: true,\n },\n {\n title: '角色标识',\n width: 180,\n dataIndex: 'flag',\n checked: true,\n },\n {\n title: '是否可用',\n width: 100,\n dataIndex: 'is_active',\n checked: true,\n resizable: true,\n cellComponent: 'boolean',\n name1: '可用',\n name2: '禁用',\n filterMultiple: false,\n filters: [\n { text: '全部', value: '' },\n { text: '可用', value: 'true' },\n { text: '禁用', value: 'false' },\n ],\n },\n {\n title: '操作',\n width: 50,\n dataIndex: 'action',\n checked: true,\n cellComponent: 'action',\n },\n ];\n\n return {\n searchConfig: search_config,\n searchConfigOptions: search_options,\n formModalConfig: edit_model_config,\n formModalConfigOptions: edit_model_config_options,\n updateFormModalConfig: update_model_config,\n updateFormModalConfigOptions: update_model_config_options,\n queryData: queryRole,\n addData: addRole,\n updateData: updateRole,\n removeData: removeRole,\n recoverData: recoverRole,\n baseColumns: baseColumns,\n titleList: titleList,\n api_fields: api_fields,\n btn_list: btn_list,\n head_btn_list: head_btn_list,\n event_obj: event_obj(),\n base_search_condition_config_list: [],\n default_search_condition_config_list: [[]],\n condition_group_config_list: [],\n is_show_advantage: false,\n is_show_normal_search: true,\n is_only_show_advantage: false,\n is_only_show_normal_search: true,\n queryConditionGroupData: null,\n isView: false,\n };\n};\n","/*\n * JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\n\n/* global define */\n\n/* eslint-disable strict */\n\n;(function ($) {\n 'use strict'\n\n /**\n * Add integers, wrapping at 2^32.\n * This uses 16-bit operations internally to work around bugs in interpreters.\n *\n * @param {number} x First integer\n * @param {number} y Second integer\n * @returns {number} Sum\n */\n function safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff)\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16)\n return (msw << 16) | (lsw & 0xffff)\n }\n\n /**\n * Bitwise rotate a 32-bit number to the left.\n *\n * @param {number} num 32-bit number\n * @param {number} cnt Rotation count\n * @returns {number} Rotated number\n */\n function bitRotateLeft(num, cnt) {\n return (num << cnt) | (num >>> (32 - cnt))\n }\n\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} q q\n * @param {number} a a\n * @param {number} b b\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5ff(a, b, c, d, x, s, t) {\n return md5cmn((b & c) | (~b & d), a, b, x, s, t)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5gg(a, b, c, d, x, s, t) {\n return md5cmn((b & d) | (c & ~d), a, b, x, s, t)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t)\n }\n\n /**\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n *\n * @param {Array} x Array of little-endian words\n * @param {number} len Bit length\n * @returns {Array<number>} MD5 Array\n */\n function binlMD5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32\n x[(((len + 64) >>> 9) << 4) + 14] = len\n\n var i\n var olda\n var oldb\n var oldc\n var oldd\n var a = 1732584193\n var b = -271733879\n var c = -1732584194\n var d = 271733878\n\n for (i = 0; i < x.length; i += 16) {\n olda = a\n oldb = b\n oldc = c\n oldd = d\n\n a = md5ff(a, b, c, d, x[i], 7, -680876936)\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586)\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819)\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330)\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897)\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426)\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341)\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983)\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416)\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417)\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063)\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162)\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682)\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101)\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290)\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329)\n\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510)\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632)\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713)\n b = md5gg(b, c, d, a, x[i], 20, -373897302)\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691)\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083)\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335)\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848)\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438)\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690)\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961)\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501)\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467)\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784)\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473)\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734)\n\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558)\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463)\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562)\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556)\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060)\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353)\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632)\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640)\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174)\n d = md5hh(d, a, b, c, x[i], 11, -358537222)\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979)\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189)\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487)\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835)\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520)\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651)\n\n a = md5ii(a, b, c, d, x[i], 6, -198630844)\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415)\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905)\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055)\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571)\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606)\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523)\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799)\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359)\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744)\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380)\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649)\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070)\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379)\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259)\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551)\n\n a = safeAdd(a, olda)\n b = safeAdd(b, oldb)\n c = safeAdd(c, oldc)\n d = safeAdd(d, oldd)\n }\n return [a, b, c, d]\n }\n\n /**\n * Convert an array of little-endian words to a string\n *\n * @param {Array<number>} input MD5 Array\n * @returns {string} MD5 string\n */\n function binl2rstr(input) {\n var i\n var output = ''\n var length32 = input.length * 32\n for (i = 0; i < length32; i += 8) {\n output += String.fromCharCode((input[i >> 5] >>> i % 32) & 0xff)\n }\n return output\n }\n\n /**\n * Convert a raw string to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n *\n * @param {string} input Raw input string\n * @returns {Array<number>} Array of little-endian words\n */\n function rstr2binl(input) {\n var i\n var output = []\n output[(input.length >> 2) - 1] = undefined\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0\n }\n var length8 = input.length * 8\n for (i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << i % 32\n }\n return output\n }\n\n /**\n * Calculate the MD5 of a raw string\n *\n * @param {string} s Input string\n * @returns {string} Raw MD5 string\n */\n function rstrMD5(s) {\n return binl2rstr(binlMD5(rstr2binl(s), s.length * 8))\n }\n\n /**\n * Calculates the HMAC-MD5 of a key and some data (raw strings)\n *\n * @param {string} key HMAC key\n * @param {string} data Raw input string\n * @returns {string} Raw MD5 string\n */\n function rstrHMACMD5(key, data) {\n var i\n var bkey = rstr2binl(key)\n var ipad = []\n var opad = []\n var hash\n ipad[15] = opad[15] = undefined\n if (bkey.length > 16) {\n bkey = binlMD5(bkey, key.length * 8)\n }\n for (i = 0; i < 16; i += 1) {\n ipad[i] = bkey[i] ^ 0x36363636\n opad[i] = bkey[i] ^ 0x5c5c5c5c\n }\n hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8)\n return binl2rstr(binlMD5(opad.concat(hash), 512 + 128))\n }\n\n /**\n * Convert a raw string to a hex string\n *\n * @param {string} input Raw input string\n * @returns {string} Hex encoded string\n */\n function rstr2hex(input) {\n var hexTab = '0123456789abcdef'\n var output = ''\n var x\n var i\n for (i = 0; i < input.length; i += 1) {\n x = input.charCodeAt(i)\n output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f)\n }\n return output\n }\n\n /**\n * Encode a string as UTF-8\n *\n * @param {string} input Input string\n * @returns {string} UTF8 string\n */\n function str2rstrUTF8(input) {\n return unescape(encodeURIComponent(input))\n }\n\n /**\n * Encodes input string as raw MD5 string\n *\n * @param {string} s Input string\n * @returns {string} Raw MD5 string\n */\n function rawMD5(s) {\n return rstrMD5(str2rstrUTF8(s))\n }\n /**\n * Encodes input string as Hex encoded string\n *\n * @param {string} s Input string\n * @returns {string} Hex encoded string\n */\n function hexMD5(s) {\n return rstr2hex(rawMD5(s))\n }\n /**\n * Calculates the raw HMAC-MD5 for the given key and data\n *\n * @param {string} k HMAC key\n * @param {string} d Input string\n * @returns {string} Raw MD5 string\n */\n function rawHMACMD5(k, d) {\n return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d))\n }\n /**\n * Calculates the Hex encoded HMAC-MD5 for the given key and data\n *\n * @param {string} k HMAC key\n * @param {string} d Input string\n * @returns {string} Raw MD5 string\n */\n function hexHMACMD5(k, d) {\n return rstr2hex(rawHMACMD5(k, d))\n }\n\n /**\n * Calculates MD5 value for a given string.\n * If a key is provided, calculates the HMAC-MD5 value.\n * Returns a Hex encoded string unless the raw argument is given.\n *\n * @param {string} string Input string\n * @param {string} [key] HMAC key\n * @param {boolean} [raw] Raw output switch\n * @returns {string} MD5 output\n */\n function md5(string, key, raw) {\n if (!key) {\n if (!raw) {\n return hexMD5(string)\n }\n return rawMD5(string)\n }\n if (!raw) {\n return hexHMACMD5(key, string)\n }\n return rawHMACMD5(key, string)\n }\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return md5\n })\n } else if (typeof module === 'object' && module.exports) {\n module.exports = md5\n } else {\n $.md5 = md5\n }\n})(this)\n","import { useEnv } from 'liyu-pc-base/init-plugin';\nimport cloneDeep from 'lodash-es/cloneDeep';\nimport md5 from 'blueimp-md5';\nimport type { PageConfig } from 'liyu-pc-base/components/remotePages/typing';\n\nexport function generateMD5(str: string): string {\n return md5(str);\n}\n\nconst getI18nId = (modalType: string): string => {\n // 取md5末尾3位\n return generateMD5(modalType).slice(-3);\n};\n\nconst modifyBaseColumns = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => Promise<string>,\n) => {\n if (!data || !Array.isArray(data)) {\n return data;\n }\n data.forEach((item: any) => {\n if (item.title) {\n item.title = t(`${i18n_id}_${item.title}`, {\n defaultValue: item.title,\n });\n }\n if (item.contentMap) {\n Object.keys(item.contentMap).forEach((key: string) => {\n item.contentMap[key] = t(\n `${i18n_id}_${get_field_i18n_id(item.dataIndex)}_${item.contentMap[key]}`,\n {\n defaultValue: item.contentMap[key],\n },\n );\n });\n }\n if (item.filters) {\n item.filters.forEach((filter: any) => {\n if (filter.text) {\n filter.text = t(`${i18n_id}_${get_field_i18n_id(item.dataIndex)}_${filter.text}`, {\n defaultValue: filter.text,\n });\n }\n });\n }\n });\n return data;\n};\n\nconst modifySearchConfig = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => string,\n) => {\n if (data?.fields && Array.isArray(data.fields)) {\n data.fields.forEach((item: any) => {\n if (item.label) {\n item.label = t(`${i18n_id}_${item.label}`, {\n defaultValue: item.label,\n });\n }\n if (Array.isArray(item.placeholder)) {\n item.placeholder = item.placeholder.map((placeholder: string) =>\n t(`${i18n_id}_${placeholder}`, {\n defaultValue: placeholder,\n }),\n );\n } else if (item.placeholder) {\n item.placeholder = t(`${i18n_id}_${item.placeholder}`, {\n defaultValue: item.placeholder,\n });\n }\n });\n }\n if (data?.options) {\n for (const key in data.options) {\n data.options[key].forEach((item: any) => {\n if (item.name) {\n item.name = t(`${i18n_id}_${get_field_i18n_id(key)}_${item.name}`, {\n defaultValue: item.name,\n });\n }\n if (item.label) {\n item.label = t(`${i18n_id}_${get_field_i18n_id(key)}_${item.label}`, {\n defaultValue: item.label,\n });\n }\n });\n }\n }\n const rules = data?.rules;\n if (rules) {\n Object.keys(rules).forEach((key: string) => {\n rules[key].forEach((rule: any) => {\n if (rule.message) {\n rule.message = t(`${i18n_id}_${rule.message}`, {\n defaultValue: rule.message,\n });\n }\n });\n });\n }\n return data;\n};\n\nconst modifyBaseSearchConditionConfigList = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => string,\n) => {\n if (data && Array.isArray(data)) {\n data.forEach((item: any) => {\n if (item.name) {\n item.name = t(`${i18n_id}_${item.name}`, {\n defaultValue: item.name,\n });\n }\n const group = item.group;\n if (group && Array.isArray(group)) {\n group.forEach((groupItem: any) => {\n if (groupItem.label) {\n groupItem.label = t(`${i18n_id}_${groupItem.label}`, {\n defaultValue: groupItem.label,\n });\n }\n if (groupItem.options) {\n groupItem.options.forEach((option: any) => {\n if (option.label) {\n option.label = t(\n `${i18n_id}_${get_field_i18n_id(groupItem.field_name)}_${option.label}`,\n {\n defaultValue: option.label,\n },\n );\n }\n });\n }\n });\n }\n });\n }\n return data;\n};\n\nconst modifyDefaultSearchConditionConfigList = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => string,\n) => {\n if (data && Array.isArray(data)) {\n data.forEach((item: any) => {\n if (item && Array.isArray(item)) {\n item.forEach((field: any) => {\n if (field.label) {\n field.label = t(`${i18n_id}_${field.label}`, {\n defaultValue: field.label,\n });\n }\n });\n }\n });\n }\n return data;\n};\n\nconst modifyConditionGroupConfigList = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => string,\n) => {\n if (data && Array.isArray(data)) {\n data.forEach((item: any) => {\n if (item.label) {\n item.label = t(`${i18n_id}_${item.label}`, {\n defaultValue: item.label,\n });\n }\n });\n }\n return data;\n};\n\nconst modifyFormModalConfig = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => string,\n) => {\n const dynamicFieldList = data?.dynamicFieldList;\n if (dynamicFieldList && Array.isArray(dynamicFieldList)) {\n dynamicFieldList.forEach((item: any) => {\n if (item.group_name) {\n item.group_name = t(`${i18n_id}_${item.group_name}`, {\n defaultValue: item.group_name,\n });\n }\n const children = item.children;\n if (children && Array.isArray(children)) {\n children.forEach((child: any) => {\n if (child.label) {\n child.label = t(`${i18n_id}_${child.label}`, {\n defaultValue: child.label,\n });\n }\n const placeholder = child.placeholder;\n if (placeholder && Array.isArray(placeholder)) {\n child.placeholder = placeholder.map((placeholder: string) =>\n t(`${i18n_id}_${placeholder}`, {\n defaultValue: placeholder,\n }),\n );\n } else if (placeholder) {\n child.placeholder = t(`${i18n_id}_${placeholder}`, {\n defaultValue: placeholder,\n });\n }\n });\n }\n });\n }\n const rules = data?.rules;\n if (rules) {\n Object.keys(rules).forEach((key: string) => {\n rules[key].forEach((rule: any) => {\n if (rule.message) {\n rule.message = t(`${i18n_id}_${rule.message}`, {\n defaultValue: rule.message,\n });\n }\n });\n });\n }\n const options = data?.options;\n if (options) {\n Object.keys(options).forEach((key: string) => {\n options[key].forEach((item: any) => {\n if (item.name) {\n item.name = t(`${i18n_id}_${get_field_i18n_id(key)}_${item.name}`, {\n defaultValue: item.name,\n });\n }\n if (item.label) {\n item.label = t(`${i18n_id}_${get_field_i18n_id(key)}_${item.label}`, {\n defaultValue: item.label,\n });\n }\n });\n });\n }\n return data;\n};\n\nconst modifyTitleList = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => string,\n): any => {\n if (data?.title) {\n data.title = t(`${i18n_id}_${data.title}`, {\n defaultValue: data.title,\n });\n }\n if (data?.addModalTitle) {\n data.addModalTitle = t(`${i18n_id}_${data.addModalTitle}`, {\n defaultValue: data.addModalTitle,\n });\n }\n if (data?.updateTitle) {\n data.updateTitle = t(`${i18n_id}_${data.updateTitle}`, {\n defaultValue: data.updateTitle,\n });\n }\n\n return data;\n};\n\nconst modifyBtnList = (\n data: any,\n t: any,\n i18n_id: string,\n get_field_i18n_id: (field: string) => string,\n): any => {\n if (data && Array.isArray(data)) {\n data.forEach((item: any) => {\n if (item.name) {\n item.name = t(`${i18n_id}_${item.name}`, {\n defaultValue: item.name,\n });\n }\n const model_config = item.model_config;\n if (model_config) {\n if (model_config.title) {\n model_config.title = t(`${i18n_id}_${model_config.title}`, {\n defaultValue: model_config.title,\n });\n }\n if (model_config.content) {\n model_config.content = t(`${i18n_id}_${model_config.content}`, {\n defaultValue: model_config.content,\n });\n }\n if (model_config.form) {\n model_config.form = modifyFormModalConfig(\n model_config.form,\n t,\n i18n_id,\n get_field_i18n_id,\n );\n }\n }\n });\n }\n return data;\n};\n\n// 配置修改函数\nconst modifyFunc = {\n baseColumns: modifyBaseColumns,\n searchConfig: modifySearchConfig,\n base_search_condition_config_list: modifyBaseSearchConditionConfigList,\n default_search_condition_config_list: modifyDefaultSearchConditionConfigList,\n condition_group_config_list: modifyConditionGroupConfigList,\n formModalConfig: modifyFormModalConfig,\n updateFormModalConfig: modifyFormModalConfig,\n titleList: modifyTitleList,\n btn_list: modifyBtnList,\n head_btn_list: modifyBtnList,\n batch_update_list: modifyBtnList,\n};\n\nexport const modify_by_i18n_config = (mergedConfig: any, t: any, modalType: string): PageConfig => {\n const env = useEnv();\n if (!env.VITE_APP_ENABLE_ZH_EN) {\n return mergedConfig;\n }\n\n const result = cloneDeep(mergedConfig);\n const i18n_config = result.i18n;\n Object.keys(result).forEach(key => {\n if (modifyFunc[key]) {\n let i18n_id = i18n_config?.i18n_id;\n let fields = i18n_config?.fields;\n if (!i18n_id) {\n i18n_id = getI18nId(modalType);\n }\n const get_field_i18n_id = (field: string) => {\n if (fields) {\n const field_i18n_id = fields[field]?.i18n_id;\n if (field_i18n_id) {\n return field_i18n_id;\n }\n }\n return getI18nId(field);\n };\n result[key] = modifyFunc[key](result[key], t, i18n_id, get_field_i18n_id);\n }\n });\n console.log('result====', result);\n return result;\n};\n","import type { PageConfig } from 'liyu-pc-base/components/remotePages/typing';\nimport { reactive } from 'vue';\nimport { getApiPermission, getUrl } from 'liyu-pc-base/components/remotePages/utils';\nimport { cloneDeep } from 'lodash';\nimport { usePageConfigStore } from 'liyu-pc-base/init-plugin';\nimport { getApiData } from 'liyu-pc-base/api/api-model';\nimport { useEnv } from 'liyu-pc-base/init-plugin';\nimport { useGlobMap } from 'liyu-pc-base/init-plugin';\nimport { useCellComponentMap, useCellFormatExcelValueMap } from 'liyu-pc-base/init-plugin';\nimport { modify_by_i18n_config } from './i18n_config';\n\nconst mergeBtnList = (config: any[], customConfig: any[]) => {\n if (!customConfig) return config;\n const result = cloneDeep(config || []);\n\n // 创建一个按钮名称到索引的映射\n const btnMap = new Map();\n result.forEach((btn, index) => {\n delete btn._key;\n btnMap.set(btn.name, index);\n });\n\n // 遍历自定义配置进行合并\n let last_order = 0;\n customConfig.forEach(customBtn => {\n if (!customBtn.order) {\n customBtn.order = last_order + 1;\n }\n last_order = customBtn.order;\n customBtn._key = `custom_${customBtn.name}_${Math.random()}`;\n const existingIndex = btnMap.get(customBtn.name);\n\n if (existingIndex !== undefined) {\n // 如果按钮已存在,递归合并子按钮\n const existingBtn = result[existingIndex];\n if (customBtn.children && existingBtn.children) {\n existingBtn.children = mergeBtnList(existingBtn.children, customBtn.children);\n }\n const temp = cloneDeep(customBtn);\n delete temp.children;\n // 合并其他属性\n Object.assign(existingBtn, temp);\n } else {\n const temp = cloneDeep(customBtn);\n result.push(temp);\n if (temp.children) {\n temp.children = mergeBtnList([], temp.children);\n }\n }\n });\n\n return result;\n};\n\nconst mergeDataFunc = {\n btn_list: mergeBtnList,\n head_btn_list: mergeBtnList,\n batch_update_list: mergeBtnList,\n};\n\nconst mergeData = (config: any, customConfig: any) => {\n const res = cloneDeep(config);\n // Object.assign(mergedData, customConfig);\n Object.keys(customConfig).forEach(key => {\n if (mergeDataFunc[key]) {\n res[key] = mergeDataFunc[key](config[key], customConfig[key]);\n } else {\n res[key] = customConfig[key];\n }\n });\n\n Object.assign(config, res);\n};\nconst overrideBaseColumns = (config: any, overrideConfig: any) => {\n if (!config) {\n return;\n }\n config.forEach(item => {\n const dataIndex = item.dataIndex;\n if (overrideConfig[dataIndex]) {\n for (const key in overrideConfig[dataIndex]) {\n if (overrideConfig[dataIndex][key] === null) {\n delete item[key];\n } else {\n item[key] = overrideConfig[dataIndex][key];\n }\n }\n }\n });\n return config;\n};\nconst overrideBaseSearchConditionConfigList = (config: any, overrideConfig: any) => {\n if (!config) {\n return;\n }\n config.forEach(item => {\n const group = item.group;\n if (!group) {\n return;\n }\n group.forEach(groupItem => {\n const field_name = groupItem.field_name;\n if (overrideConfig[field_name]) {\n for (const key in overrideConfig[field_name]) {\n if (overrideConfig[field_name][key] === null) {\n delete groupItem[key];\n } else {\n groupItem[key] = overrideConfig[field_name][key];\n }\n }\n }\n });\n });\n return config;\n};\nconst overrideSearchConfig = (config: any, overrideConfig: any) => {\n if (!config) {\n return;\n }\n const fields = config.fields;\n const rules = config.rules || {};\n const model = config.model || {};\n const options = config.options || {};\n if (!fields) {\n return;\n }\n fields.forEach(field => {\n const name = field.name;\n if (overrideConfig.fields?.[name]) {\n for (const key in overrideConfig.fields[name]) {\n if (overrideConfig.fields[name][key] === null) {\n delete field[key];\n } else {\n field[key] = overrideConfig.fields[name][key];\n }\n }\n }\n if (overrideConfig.rules?.[name] !== undefined) {\n rules[name] = overrideConfig.rules[name];\n }\n if (overrideConfig.model?.[name] !== undefined) {\n model[name] = overrideConfig.model[name];\n }\n if (overrideConfig.options?.[name] !== undefined) {\n options[name] = overrideConfig.options[name];\n }\n });\n const newConfig = {\n fields,\n rules,\n model,\n options,\n };\n Object.assign(config, newConfig);\n return config;\n};\nconst overrideDataFunc = {\n baseColumns: overrideBaseColumns,\n base_search_condition_config_list: overrideBaseSearchConditionConfigList,\n searchConfig: overrideSearchConfig,\n};\n\nconst overrideData = (config: any, overrideConfig: any) => {\n const res = cloneDeep(config);\n // Object.assign(mergedData, customConfig);\n Object.keys(overrideConfig).forEach(key => {\n if (overrideDataFunc[key]) {\n config[key] = overrideDataFunc[key](config[key], overrideConfig[key]);\n }\n });\n return res;\n};\nconst processBaseColumns = (config: any) => {\n if (!config || !Array.isArray(config)) {\n return config;\n }\n const cellComponentMap = useCellComponentMap();\n const cellFormatExcelValueMap = useCellFormatExcelValueMap();\n for (const item of config) {\n if (item.cellComponent && !item.formatExcelValue) {\n const cellComponentData = cellComponentMap[item.cellComponent];\n if (cellComponentData) {\n const defaultExcelFormat = cellComponentData.defaultExcelFormat;\n const cellFormatExcelValue = cellFormatExcelValueMap[defaultExcelFormat];\n if (cellFormatExcelValue) {\n item.formatExcelValue = cellFormatExcelValue.flag;\n }\n }\n }\n }\n return config;\n};\nconst processDataFunc = {\n baseColumns: processBaseColumns,\n};\n\nconst processData = (config: any) => {\n Object.keys(config).forEach(key => {\n if (processDataFunc[key]) {\n config[key] = processDataFunc[key](config[key]);\n }\n });\n};\nconst res_components: { [key: string]: any } = {};\nconst init_components = () => {\n if (Object.keys(res_components).length > 0) {\n return;\n }\n const allComponents = import.meta.glob('liyu-pc-base/components/remotePages/configs/*/*.ts', {\n eager: true,\n });\n const customComponents = useGlobMap('remotePages');\n Object.assign(allComponents, customComponents);\n Object.keys(allComponents).forEach(full_file_name => {\n const file_name_list = full_file_name.split('/');\n const file_name = file_name_list[file_name_list.length - 1].replace('.ts', '');\n\n if (file_name.endsWith('-config')) {\n return;\n }\n // @ts-ignore\n res_components[file_name] = allComponents[full_file_name].default;\n });\n};\nexport const getViewSettingsAndPageConfig = async ({\n org_id,\n user_id,\n app_flag,\n modalType,\n sort_fields,\n is_cache,\n history_id,\n}: {\n org_id: string;\n user_id: number;\n app_flag: string;\n modalType: string;\n sort_fields: string[];\n is_cache: boolean;\n history_id?: number | null;\n}) => {\n const env = useEnv();\n const [viewSettings, defaultAndServerConfig] = await Promise.all([\n getApiData(\n {\n org_id,\n user_id,\n view_project__flag: env.VITE_APP_VIEW_PROJECT_FLAG,\n view_menu__flag: modalType,\n history_id,\n sort_fields,\n is_cache,\n },\n '/view/get_view_settings_for_user',\n ),\n getDefaultAndServerConfig({\n org_id,\n app_flag,\n modalType,\n history_id,\n }),\n ]);\n\n return {\n ...viewSettings,\n defaultAndServerConfig: defaultAndServerConfig,\n };\n};\n\nexport const getDefaultAndServerConfig = async ({\n org_id,\n app_flag,\n modalType,\n history_id,\n}: {\n org_id: string;\n app_flag: string;\n modalType: string;\n history_id?: number | null;\n}) => {\n const env = useEnv();\n const model_name = modalType.split('-')[1];\n const flag = modalType + '_config';\n const serverConfigParams: any = {\n flag,\n org_id,\n };\n if (history_id) {\n serverConfigParams.history_id = history_id;\n }\n const defaultConfigParams: any = {\n org_id,\n model_name,\n get_i18n_config: !!env.VITE_APP_ENABLE_ZH_EN,\n };\n const overrideConfigParams: any = {\n org_id,\n model_name,\n api_url: `/${app_flag}/query_${model_name}_list`,\n };\n const result: any = {};\n const skip_app_flag = [];\n if (skip_app_flag.includes(app_flag)) {\n const serverRes = await getApiData(\n serverConfigParams,\n '/sys/get_global_custom_data_by_flag_without_org_id',\n );\n result.defaultConfig = {};\n result.override = null;\n result.serverConfig = serverRes || {};\n return result;\n } else {\n const [defaultRes, overrideRes, serverRes] = await Promise.all([\n getApiData(\n defaultConfigParams,\n `/${app_flag}/dev_get_column_config_and_remote_config_json`,\n false,\n {\n skip_error: true,\n },\n ),\n getApiData(overrideConfigParams, `/${app_flag}/override_column_config`, false, {\n skip_error: true,\n }),\n getApiData(serverConfigParams, '/sys/get_global_custom_data_by_flag_without_org_id'),\n ]);\n result.defaultConfig = defaultRes || {};\n result.override = overrideRes || {};\n result.serverConfig = serverRes || {};\n return result;\n }\n};\n\nexport const getPageConfig = (\n app_flag: string,\n modalType: string,\n defaultAndServerConfig: {\n defaultConfig: any;\n serverConfig: any;\n override?: any;\n },\n t: any,\n use_store = true,\n to_i18n = false,\n): PageConfig => {\n init_components();\n const pageConfigStore = use_store ? usePageConfigStore() : null;\n let components: any;\n if (defaultAndServerConfig && pageConfigStore) {\n pageConfigStore.cleanPageConfig(modalType);\n }\n if (res_components[modalType] == undefined) {\n console.log('remotePages3没有组件:' + modalType);\n if (pageConfigStore) {\n pageConfigStore.setCustomConfig(modalType, {});\n }\n } else {\n components = { ...res_components[modalType](t) };\n if (pageConfigStore) {\n pageConfigStore.setCustomConfig(modalType, components);\n }\n }\n const titleList: any = reactive({\n title: '',\n addModalTitle: '新建',\n updateTitle: '修改',\n is_create: getApiPermission(app_flag + '-' + modalType.split('-')[1], 'create_'), // 是否有【新建】按钮\n is_update: getApiPermission(app_flag + '-' + modalType.split('-')[1], 'update_'), // 是否有【修改】按钮\n is_remove: getApiPermission(app_flag + '-' + modalType.split('-')[1], 'delete_'), // 是否有【删除】按钮\n is_recover: getApiPermission(app_flag + '-' + modalType.split('-')[1], 'recover_'), // 是否有【恢复】按钮\n });\n const searchConfig: any = {\n rules: reactive({}),\n fields: [],\n settings: {},\n model: reactive({}),\n options: {},\n };\n const defaultConfig: any = {\n is_selection: false,\n addData: getUrl(app_flag + '-' + modalType.split('-')[1], ['create_', '']),\n updateData: getUrl(app_flag + '-' + modalType.split('-')[1], ['update_', '']),\n recoverData: getUrl(app_flag + '-' + modalType.split('-')[1], ['recover_', '']),\n removeData: getUrl(app_flag + '-' + modalType.split('-')[1], ['delete_', '']),\n countData: getUrl(app_flag + '-' + modalType.split('-')[1], ['query_', '_count']),\n queryData: getUrl(app_flag + '-' + modalType.split('-')[1], ['query_', '_list']),\n queryConditionGroupData: getUrl(app_flag + '-' + modalType.split('-')[1], ['query_', '_group']),\n getData: getUrl(app_flag + '-' + modalType.split('-')[1], ['get_', '']),\n\n searchConfig: searchConfig,\n base_search_condition_config_list: null,\n default_search_condition_config_list: null,\n condition_group_config_list: null,\n is_show_advantage: true,\n is_show_normal_search: false,\n is_only_show_advantage: true,\n is_only_show_normal_search: false,\n init_request: true,\n processData: null,\n refresh_type: '手动', // '手动', '5s', '10s', '30s'\n required_condition: [],\n globalSearch: null,\n\n formModalConfig: null,\n updateFormModalConfig: null,\n titleList: titleList,\n api_fields: null,\n btn_list: null,\n head_btn_list: null,\n batch_update_list: null,\n event_obj: undefined,\n\n is_operation: [true, true, true, true],\n baseColumns: null,\n column_list_change: null,\n processColumn: null,\n customCell: null,\n customRow: null,\n customHeaderCell: null,\n\n is_pagination: true,\n pageSize: 50,\n page_size_options: [\n '10',\n '20',\n '50',\n '100',\n '200',\n '500',\n '1000',\n '3000',\n '10000',\n '50000',\n '60000',\n '70000',\n ], // 默认页面选项\n is_page_mode_change: false,\n is_stripe: null,\n\n isView: true,\n rowKey: 'id',\n rowSelection: { type: 'checkbax' },\n expandedRowRender: null,\n expandedRowRenderComponent: null,\n headerComponent: null,\n expandFunc: null,\n summaryData: null,\n summaryType: null,\n default_column_field: ['is_active'],\n i18n: null,\n };\n if (defaultAndServerConfig) {\n Object.assign(defaultConfig, defaultAndServerConfig.defaultConfig);\n if (pageConfigStore) {\n pageConfigStore.setDefaultConfig(modalType, defaultConfig);\n }\n } else {\n const cachedDefaultConfig = pageConfigStore && pageConfigStore.getDefaultConfig(modalType);\n if (cachedDefaultConfig) {\n Object.assign(defaultConfig, cachedDefaultConfig);\n }\n }\n const mergedConfig = cloneDeep(defaultConfig);\n let serverConfig = null;\n if (defaultAndServerConfig) {\n serverConfig = defaultAndServerConfig.serverConfig;\n if (pageConfigStore) {\n pageConfigStore.setServerConfig(modalType, serverConfig);\n }\n } else {\n serverConfig = pageConfigStore && pageConfigStore.getServerConfig(modalType);\n }\n if (\n !serverConfig?.default_column_field &&\n serverConfig?.searchConfig?.default_column_field &&\n serverConfig?.searchConfig?.default_column_field?.length > 0\n ) {\n serverConfig.default_column_field = serverConfig.searchConfig.default_column_field;\n }\n\n Object.assign(mergedConfig, serverConfig);\n let overrideConfig = null;\n if (defaultAndServerConfig) {\n overrideConfig = defaultAndServerConfig.override;\n if (pageConfigStore && overrideConfig) {\n pageConfigStore.setOverrideConfig(modalType, overrideConfig);\n }\n } else {\n overrideConfig = pageConfigStore && pageConfigStore.getOverrideConfig(modalType);\n }\n if (overrideConfig) {\n overrideData(mergedConfig, overrideConfig);\n }\n if (components) {\n mergeData(mergedConfig, components);\n if (components?.default_column_field && components?.default_column_field?.length > 0) {\n mergedConfig.default_column_field = components?.default_column_field;\n } else if (\n components?.searchConfig?.default_column_field &&\n components?.searchConfig?.default_column_field?.length > 0\n ) {\n mergedConfig.default_column_field = components?.searchConfig?.default_column_field;\n }\n }\n if (pageConfigStore) {\n pageConfigStore.setMergedConfig(modalType, mergedConfig);\n }\n if (mergedConfig.is_stripe) {\n const processData = raw_data_list => {\n let index = 0;\n const obj_dict = {};\n raw_data_list.forEach(item => {\n item.color_index0 = 1;\n if (obj_dict?.[item?.[mergedConfig.is_stripe]] == undefined) {\n obj_dict[item[mergedConfig.is_stripe]] = index;\n index += 1;\n item.color_index0 = 0;\n }\n item.color_index = obj_dict[item[mergedConfig.is_stripe]];\n });\n return raw_data_list;\n };\n\n const customRow = record => {\n if (record.color_index0 == 1) {\n return { style: { background: 'rgba(85,162,235,0.3)' } };\n }\n if (record.color_index % 2 == 0) {\n return { style: { background: '#FFFFFE' } };\n } else {\n return { style: { background: '#FAFAFA' } };\n }\n };\n mergedConfig.processData = processData;\n mergedConfig.customRow = customRow;\n }\n processData(mergedConfig);\n if (to_i18n) {\n return modify_by_i18n_config(mergedConfig, t, modalType);\n } else {\n return mergedConfig;\n }\n};\n"],"names":["i18nLanguage_project","event_obj","permissionApiurl2","search_config","reactive","edit_model_config","update_model_config","import_apiurl","params","useRequest","change_apiurl_auth","btn_list","record","current_org","Modal","createVNode","ExclamationCircleOutlined","resolve","res","message","config","head_btn_list","editModal","payload","modalBox","permissionApiurl","permissionDing_appinfo","env","useEnv","list","list1","item","type","component_type","suffix","state","_a","_c","_b","suffixs","_d","data","data1","org_ids","url_ids","menu_path","menu_name","notification","is_menu","getApiData","org__ids","queryOrgList","addMenu","userStore","useUserStore","import_menu","permissionMenu","titleList","api_fields","baseColumns","permissionMenu_helper","create_organization_by_role_template","addPerson","updatePerson","permissionOrganization","CloseOutlined","CloseOutlinedSvg","_objectSpread","target","i","source","ownKeys","sym","key","_defineProperty","obj","value","props","context","p","_createVNode","AntdIcon","CloseOutlined$1","CheckCircleOutlined","CheckCircleOutlinedSvg","CheckCircleOutlined$1","ExclamationCircleOutlinedSvg","ExclamationCircleOutlined$1","InfoCircleOutlined","InfoCircleOutlinedSvg","InfoCircleOutlined$1","CloseCircleOutlined","CloseCircleOutlinedSvg","CloseCircleOutlined$1","InfoCircleFilled","InfoCircleFilledSvg","InfoCircleFilled$1","runtimeLocale","_extends","defaultLocale","changeConfirmLocale","newLocale","ANT_MARK","LocaleProvider","defineComponent","_ref","slots","warning","provide","watch","locale","app","withInstall","Notice","attrs","closeTimer","isUnMounted","duration","computed","startCloseTimer","close","clearCloseTimer","e","onClose","noticeKey","restartCloseTimer","onMounted","onUnmounted","_ref2","_ref3","preDuration","preUpdateMark","preVisible","newDuration","newUpdateMark","newVisible","prefixCls","closable","closeIcon","onClick","holder","className","style","componentClass","dataOrAriaAttributeProps","acc","node","classNames","Teleport","__rest","this","s","t","seed","now","getUuid","id","Notification","expose","hookRefs","notices","ref","transitionProps","animation","name","getTransitionGroupProps","add","originNotice","holderCallback","notice","maxCount","noticeIndex","v","updatedNotices","remove","removeKey","toRaw","userPassKey","noticeNodes","index","updateMark","content","noticeProps","div","TransitionGroup","properties","callback","getContainer","appContext","customizePrefixCls","customRootPrefixCls","customTransitionName","hasTransitionName","useStyle","Wrapper","_props","_ref4","notiRef","shallowRef","globalConfigForApi","hashId","vueRender","global","rootPrefixCls","transitionName","ConfigProvider","vm","Notification$2","placements","nextPlacements","placement","placementList","noticesForPlacement","classes","styles","noticeNodesForPlacement","onAfterLeave","Portal","HookNotification","defaultGetContainer","uniqueKey","mergeConfig","clone","_len","objList","_key","val","useNotification","rootConfig","motion","getClassName","getStyles","onAllRemoved","shareConfig","notificationsRef","removeNotice","destroy","contextHolder","taskQueue","api","mergedConfig","task","genMessageStyle","token","componentCls","iconCls","boxShadowSecondary","colorBgElevated","colorSuccess","colorError","colorWarning","colorInfo","fontSizeLG","motionEaseInOutCirc","motionDurationSlow","marginXS","paddingXS","borderRadiusLG","zIndexPopup","messageNoticeContentPadding","messageMoveIn","Keyframes","messageMoveOut","resetComponent","useStyle$3","genComponentStyleHook","combinedToken","mergeToken","TypeIcon","CheckCircleFilled","CloseCircleFilled","ExclamationCircleFilled","LoadingOutlined","PureContent","getPrefixCls","useConfigContextInject","DEFAULT_OFFSET","DEFAULT_DURATION","Holder","getPopupContainer","useConfigInject","top","getNotificationMotion","getMotion","mergedCloseIcon","useVcNotification","keyIndex","useInternalMessage","messageConfig","holderRef","holderKey","open","fakeResult","originOpen","noticePrefixCls","icon","restConfig","mergedKey","wrapPromiseFn","wrapAPI","typeOpen","jointContent","mergedDuration","mergedOnClose","useMessage","defaultDuration","defaultTop","messageInstance","localPrefixCls","rtl","getKeyThenIncreaseKey","setMessageConfig","options","getMessageInstance","args","instance","typeToIcon","typeList","closePromise","Icon","iconNode","messageClass","result","filled","rejected","isArgsProps","messageKey","attachTypeApi","originalApi","genNotificationPlacementStyle","width","notificationMarginEdge","notificationTopFadeIn","notificationBottomFadeIn","notificationLeftFadeIn","genNotificationPlacementStyle$1","genNotificationStyle","notificationMarginBottom","colorTextHeading","notificationBg","notificationPadding","motionDurationMid","motionEaseInOut","fontSize","lineHeight","notificationIconSize","noticeCls","notificationFadeIn","notificationFadeOut","useStyle$2","notificationPaddingVertical","notificationPaddingHorizontal","notificationToken","getCloseIcon","description","btn","renderHelper","getPlacementStyle","bottom","useInternalNotification","notificationConfig","notificationInstance","defaultBottom","defaultPrefixCls","defaultPlacement","defaultCloseIcon","setNotificationConfig","getNotificationInstance","globalConfig","cacheKey","cacheInstance","notificationClass","outerPrefixCls","iconTypes","dynamicStyleMark","getStyle","globalPrefixCls","theme","variables","formatColor","color","updater","fillColor","colorVal","baseColor","TinyColor","colorPalettes","generate","primaryColor","primaryColors","c","primaryActiveColor","registerTheme","canUseDom","updateCSS","iconPrefixCls","useToken","useStyleRegister","resetIcon","useStyle$1","useTheme","parentTheme","themeConfig","parentThemeConfig","defaultConfig","mergedComponents","componentName","getGlobalPrefixCls","getGlobalIconPrefixCls","defaultIconPrefixCls","globalConfigBySet","watchEffect","suffixCls","stopWatchEffect","setGlobalConfig","configProviderProps","parentContext","mergedPrefixCls","shouldWrapSSR","csp","wrapSSR","mergedTheme","renderEmptyComponent","defaultRenderEmpty","autoInsertSpaceInButton","direction","space","virtual","dropdownMatchSelectWidth","getTargetContainer","pageHeader","input","pagination","form","select","componentSize","componentDisabled","wave","configProvider","memoTheme","algorithm","rest","themeObj","createTheme","defaultSeedToken","validateMessagesRef","validateMessages","useConfigContextProvider","useProvideGlobalForm","useProviderSize","useProviderDisabled","renderProvider","legacyLocale","childNode","_childNode","DesignTokenProvider","LocaleReceiver","_","__","ConfigProvider$1","updateRole","copy_role_info","import_role_by_super","has_project","permissionRole","searchModel","permissionUser","roleManage","search_options","edit_model_config_options","queryRole","addRole","removeRole","recoverRole","$","safeAdd","x","lsw","msw","bitRotateLeft","num","cnt","md5cmn","q","a","b","md5ff","d","md5gg","md5hh","md5ii","binlMD5","len","olda","oldb","oldc","oldd","binl2rstr","output","length32","rstr2binl","length8","rstrMD5","rstrHMACMD5","bkey","ipad","opad","hash","rstr2hex","hexTab","str2rstrUTF8","rawMD5","hexMD5","rawHMACMD5","k","hexHMACMD5","md5","string","raw","module","generateMD5","str","getI18nId","modalType","modifyBaseColumns","i18n_id","get_field_i18n_id","filter","modifySearchConfig","placeholder","rules","rule","modifyBaseSearchConditionConfigList","group","groupItem","option","modifyDefaultSearchConditionConfigList","field","modifyConditionGroupConfigList","modifyFormModalConfig","dynamicFieldList","children","child","modifyTitleList","modifyBtnList","model_config","modifyFunc","modify_by_i18n_config","cloneDeep","i18n_config","fields","field_i18n_id","mergeBtnList","customConfig","btnMap","last_order","customBtn","existingIndex","existingBtn","temp","mergeDataFunc","mergeData","overrideBaseColumns","overrideConfig","dataIndex","overrideBaseSearchConditionConfigList","field_name","overrideSearchConfig","model","overrideDataFunc","overrideData","processBaseColumns","cellComponentMap","useCellComponentMap","cellFormatExcelValueMap","useCellFormatExcelValueMap","cellComponentData","defaultExcelFormat","cellFormatExcelValue","processDataFunc","processData","res_components","init_components","allComponents","__vite_glob_0_0","__vite_glob_0_1","__vite_glob_0_2","__vite_glob_0_3","__vite_glob_0_4","__vite_glob_0_5","__vite_glob_0_6","__vite_glob_0_7","__vite_glob_0_8","__vite_glob_0_9","__vite_glob_0_10","__vite_glob_0_11","__vite_glob_0_12","__vite_glob_0_13","__vite_glob_0_14","__vite_glob_0_15","customComponents","useGlobMap","full_file_name","file_name_list","file_name","getViewSettingsAndPageConfig","org_id","user_id","app_flag","sort_fields","is_cache","history_id","viewSettings","defaultAndServerConfig","getDefaultAndServerConfig","model_name","serverConfigParams","defaultConfigParams","overrideConfigParams","serverRes","defaultRes","overrideRes","getPageConfig","use_store","to_i18n","pageConfigStore","usePageConfigStore","components","getApiPermission","searchConfig","getUrl","cachedDefaultConfig","serverConfig","_e","_g","_f","_h","raw_data_list","obj_dict","customRow"],"mappings":"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","x_google_ignoreList":[12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,51]}
|