liyu-pc-base 1.0.218 → 1.0.222
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/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';\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 update_field_list: ['name', 'url', 'is_auth'],\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 { createVNode, reactive } from 'vue';\nimport { message, Modal, notification } from 'ant-design-vue';\nimport { event_obj, useEnv, useMenuComponents, 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';\nimport type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\nimport { cloneDeep } from 'lodash';\nimport { ExclamationCircleOutlined } from '@ant-design/icons-vue';\n\nconst genID = (): string => {\n const array = new Uint8Array(16); // 16 字节 = 128 位\n window.crypto.getRandomValues(array);\n return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('');\n};\nconst defaultComponentTypes = [\n {\n name: '默认',\n value: '@/components/remotePages/index.vue',\n order: 0,\n },\n {\n name: '其他',\n value: null,\n order: 10,\n },\n];\nlet _allComponentTypes = null;\n\nconst getAllComponentTypes = () => {\n if (!_allComponentTypes) {\n const res = cloneDeep(defaultComponentTypes);\n const custom_menu_components = useMenuComponents();\n for (const item of custom_menu_components) {\n res.push(item);\n }\n res.sort((a, b) => a.order - b.order);\n _allComponentTypes = res;\n }\n return _allComponentTypes;\n};\nconst getComponentTypeByValue = value => {\n const all = getAllComponentTypes();\n const res = all.find(item => {\n return item.value === value;\n });\n if (!res) {\n return all.find(item => {\n return item.value === null;\n });\n } else {\n return res;\n }\n};\nexport const btn_list: BtnListConfig = [\n {\n name: '修改',\n model_kind: 'custom_component',\n type: 'dropdown',\n clazz: 'primary',\n model_config: {\n title: '修改菜单',\n component: 'menuConfig',\n init_data: {\n form_type: 'edit',\n },\n },\n },\n {\n name: '新建子菜单',\n model_kind: 'custom_component',\n type: 'dropdown',\n clazz: 'primary',\n model_config: {\n title: '新建子菜单',\n component: 'menuConfig',\n init_data: {\n form_type: 'create_sub_menu',\n },\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 model_kind: 'custom_component',\n type: 'dropdown',\n clazz: 'primary',\n model_config: {\n title: '新建菜单',\n component: 'menuConfig',\n init_data: {\n form_type: 'create',\n },\n },\n },\n {\n name: '批量删除',\n clazz: 'primary',\n authority: 'permission/batch_delete_menu',\n urls: ['permission/batch_delete_menu'],\n cb: ({ selectedRowKeys }) => {\n if (!selectedRowKeys || selectedRowKeys.length <= 0) {\n notification.info({\n message: '温馨提示',\n description: '请选择要操作的数据',\n });\n return;\n }\n const userStore = useUserStore();\n const current_org = userStore.currentOrg;\n Modal.confirm({\n title: () => '是否批量删除已选中数据',\n icon: () => createVNode(ExclamationCircleOutlined),\n onOk() {\n return new Promise(resolve => {\n getApiData(\n {\n org_id: current_org.id,\n menu_id: selectedRowKeys,\n },\n '/permission/batch_delete_menu',\n )\n .then((res: any) => {\n message.success('成功删除' + res.count + '条数据');\n event_obj().emit('refresh');\n })\n .finally(() => {\n resolve(null);\n });\n }).catch(() => console.log('Oops errors!'));\n },\n onCancel() {},\n });\n },\n },\n {\n name: '批量恢复',\n clazz: 'primary',\n authority: 'permission/batch_recover_menu',\n urls: ['permission/batch_recover_menu'],\n cb: ({ selectedRowKeys }) => {\n if (!selectedRowKeys || selectedRowKeys.length <= 0) {\n notification.info({\n message: '温馨提示',\n description: '请选择要操作的数据',\n });\n return;\n }\n const userStore = useUserStore();\n const current_org = userStore.currentOrg;\n Modal.confirm({\n title: () => '是否批量恢复已选中数据',\n icon: () => createVNode(ExclamationCircleOutlined),\n onOk() {\n return new Promise(resolve => {\n getApiData(\n {\n org_id: current_org.id,\n menu_id: selectedRowKeys,\n },\n '/permission/batch_recover_menu',\n )\n .then((res: any) => {\n message.success('成功恢复' + res.count + '条数据');\n event_obj().emit('refresh');\n })\n .finally(() => {\n resolve(null);\n });\n }).catch(() => console.log('Oops errors!'));\n },\n onCancel() {},\n });\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];\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 width: 60,\n checked: true,\n dataIndex: 'sort',\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 checked: true,\n resizable: true,\n },\n {\n title: '菜单地址',\n dataIndex: 'menu_path',\n checked: true,\n resizable: true,\n },\n {\n title: ' 路由名称',\n dataIndex: 'menu_name',\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: 'json',\n resizable: true,\n },\n {\n title: '平台',\n dataIndex: 'platform',\n minWidth: 100,\n checked: true,\n cellComponent: 'tag',\n contentMap: {\n '10': 'PC',\n '11': 'PC 隐藏菜单',\n '12': 'PC 隐藏子菜单',\n '20': '手机端',\n },\n colorMap: {\n '10': 'green',\n '11': 'yellow',\n '12': 'orange',\n '20': 'red',\n },\n },\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 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};\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, resetPassword, updatePerson } from 'liyu-pc-base/api/permission/user-manage';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport { createVNode, reactive } from 'vue';\nimport { message, Modal } from 'ant-design-vue';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\nimport { ExclamationCircleOutlined } from '@ant-design/icons-vue';\n\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: 1 },\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 {\n name: '重置密码',\n clazz: 'primary',\n cb: ({ record }) => {\n Modal.confirm({\n title: '温馨提示',\n content: '是否重置 [' + record.realname + '] 的密码?',\n icon: () => createVNode(ExclamationCircleOutlined),\n okText: '确定',\n onOk() {\n return new Promise(resolve => {\n resetPassword({\n org_id: record.org_id,\n username: record.user__username,\n })\n .then(() => {\n message.success('重置密码成功');\n })\n .finally(() => {\n resolve(null);\n });\n }).catch(() => console.log('Oops errors!'));\n },\n onCancel() {\n },\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 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: 1,\n role_ids: [],\n }),\n },\n options: {\n manage_type: [\n { label: '普通用户', value: 0 },\n { label: '管理员', value: 1 },\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 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 rules: {},\n model: reactive({\n org_id: current_org.id,\n aim_org_id: current_org.id,\n is_active: true,\n name: '',\n manage_type: null,\n get_role: true,\n }),\n options: {\n manage_type: [\n { label: '普通用户', value: 0 },\n { label: '管理员', value: 1 },\n { label: '超级管理员', value: 2 },\n ],\n },\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 manage_type: 1,\n aim_org_id: current_org?.id,\n },\n options: {\n manage_type: [\n { label: '普通用户', value: 0 },\n { label: '管理员', value: 1 },\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 1: '管理员',\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 options?: {\n use_store?: Boolean;\n to_i18n?: Boolean;\n enable_btn?: Boolean;\n },\n): PageConfig => {\n const { use_store = true, to_i18n = false, enable_btn = false } = options || {};\n init_components();\n const pageConfigStore = use_store ? usePageConfigStore() : null;\n let components: any;\n if (pageConfigStore) {\n if (defaultAndServerConfig) {\n pageConfigStore.cleanPageConfig(modalType);\n } else {\n const cachedConfig = pageConfigStore.getCachedConfig(modalType);\n if (cachedConfig) {\n return cachedConfig;\n }\n }\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 if (!enable_btn && serverConfig) {\n delete serverConfig['btn_list'];\n delete serverConfig['head_btn_list'];\n delete serverConfig['batch_update_list'];\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\n let result = mergedConfig;\n if (to_i18n) {\n result = modify_by_i18n_config(mergedConfig, t, modalType);\n }\n pageConfigStore.setCachedConfig(modalType, result);\n return result;\n};\n"],"names":["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","event_obj","config","head_btn_list","editModal","payload","modalBox","permissionApiurl","permissionDing_appinfo","selectedRowKeys","notification","useUserStore","getApiData","data","import_menu","permissionMenu","env","useEnv","titleList","api_fields","baseColumns","permissionMenu_helper","create_organization_by_role_template","resetPassword","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","state","provide","watch","locale","_a","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","_b","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","type","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","item","searchModel","permissionUser","roleManage","search_options","edit_model_config_options","queryRole","addRole","removeRole","recoverRole","$","safeAdd","x","y","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","_c","_d","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","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","enable_btn","pageConfigStore","usePageConfigStore","components","cachedConfig","getApiPermission","searchConfig","getUrl","cachedDefaultConfig","serverConfig","_e","_g","_f","_h","raw_data_list","obj_dict","customRow"],"mappings":"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","x_google_ignoreList":[11,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,50]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../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';\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 update_field_list: ['name', 'url', 'is_auth'],\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 { createVNode, reactive } from 'vue';\nimport { message, Modal, notification } from 'ant-design-vue';\nimport { event_obj, useEnv, useMenuComponents, 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';\nimport type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\nimport { cloneDeep } from 'lodash';\nimport { ExclamationCircleOutlined } from '@ant-design/icons-vue';\n\nconst genID = (): string => {\n const array = new Uint8Array(16); // 16 字节 = 128 位\n window.crypto.getRandomValues(array);\n return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('');\n};\nconst defaultComponentTypes = [\n {\n name: '默认',\n value: '@/components/remotePages/index.vue',\n order: 0,\n },\n {\n name: '其他',\n value: null,\n order: 10,\n },\n];\nlet _allComponentTypes = null;\n\nconst getAllComponentTypes = () => {\n if (!_allComponentTypes) {\n const res = cloneDeep(defaultComponentTypes);\n const custom_menu_components = useMenuComponents();\n for (const item of custom_menu_components) {\n res.push(item);\n }\n res.sort((a, b) => a.order - b.order);\n _allComponentTypes = res;\n }\n return _allComponentTypes;\n};\nconst getComponentTypeByValue = value => {\n const all = getAllComponentTypes();\n const res = all.find(item => {\n return item.value === value;\n });\n if (!res) {\n return all.find(item => {\n return item.value === null;\n });\n } else {\n return res;\n }\n};\nexport const btn_list: BtnListConfig = [\n {\n name: '修改',\n model_kind: 'custom_component',\n type: 'dropdown',\n clazz: 'primary',\n model_config: {\n title: '修改菜单',\n component: 'menuConfig',\n init_data: {\n form_type: 'edit',\n },\n },\n },\n {\n name: '新建子菜单',\n model_kind: 'custom_component',\n type: 'dropdown',\n clazz: 'primary',\n model_config: {\n title: '新建子菜单',\n component: 'menuConfig',\n init_data: {\n form_type: 'create_sub_menu',\n },\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 model_kind: 'custom_component',\n type: 'dropdown',\n clazz: 'primary',\n model_config: {\n title: '新建菜单',\n component: 'menuConfig',\n init_data: {\n form_type: 'create',\n },\n },\n },\n {\n name: '批量删除',\n clazz: 'primary',\n authority: 'permission/batch_delete_menu',\n urls: ['permission/batch_delete_menu'],\n cb: ({ selectedRowKeys }) => {\n if (!selectedRowKeys || selectedRowKeys.length <= 0) {\n notification.info({\n message: '温馨提示',\n description: '请选择要操作的数据',\n });\n return;\n }\n const userStore = useUserStore();\n const current_org = userStore.currentOrg;\n Modal.confirm({\n title: () => '是否批量删除已选中数据',\n icon: () => createVNode(ExclamationCircleOutlined),\n onOk() {\n return new Promise(resolve => {\n getApiData(\n {\n org_id: current_org.id,\n menu_id: selectedRowKeys,\n },\n '/permission/batch_delete_menu',\n )\n .then((res: any) => {\n message.success('成功删除' + res.count + '条数据');\n event_obj().emit('refresh');\n })\n .finally(() => {\n resolve(null);\n });\n }).catch(() => console.log('Oops errors!'));\n },\n onCancel() {},\n });\n },\n },\n {\n name: '批量恢复',\n clazz: 'primary',\n authority: 'permission/batch_recover_menu',\n urls: ['permission/batch_recover_menu'],\n cb: ({ selectedRowKeys }) => {\n if (!selectedRowKeys || selectedRowKeys.length <= 0) {\n notification.info({\n message: '温馨提示',\n description: '请选择要操作的数据',\n });\n return;\n }\n const userStore = useUserStore();\n const current_org = userStore.currentOrg;\n Modal.confirm({\n title: () => '是否批量恢复已选中数据',\n icon: () => createVNode(ExclamationCircleOutlined),\n onOk() {\n return new Promise(resolve => {\n getApiData(\n {\n org_id: current_org.id,\n menu_id: selectedRowKeys,\n },\n '/permission/batch_recover_menu',\n )\n .then((res: any) => {\n message.success('成功恢复' + res.count + '条数据');\n event_obj().emit('refresh');\n })\n .finally(() => {\n resolve(null);\n });\n }).catch(() => console.log('Oops errors!'));\n },\n onCancel() {},\n });\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];\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 width: 60,\n checked: true,\n dataIndex: 'sort',\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 checked: true,\n resizable: true,\n },\n {\n title: '菜单地址',\n dataIndex: 'menu_path',\n checked: true,\n resizable: true,\n },\n {\n title: ' 路由名称',\n dataIndex: 'menu_name',\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: 'json',\n resizable: true,\n },\n {\n title: '平台',\n dataIndex: 'platform',\n minWidth: 100,\n checked: true,\n cellComponent: 'tag',\n contentMap: {\n '10': 'PC',\n '11': 'PC 隐藏菜单',\n '12': 'PC 隐藏子菜单',\n '20': '手机端',\n },\n colorMap: {\n '10': 'green',\n '11': 'yellow',\n '12': 'orange',\n '20': 'red',\n },\n },\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 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 dataIndex: 'options',\n checked: false,\n cellComponent: 'json',\n resizable: true,\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};\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, resetPassword, updatePerson } from 'liyu-pc-base/api/permission/user-manage';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport { createVNode, reactive } from 'vue';\nimport { message, Modal } from 'ant-design-vue';\nimport { event_obj } from 'liyu-pc-base/init-plugin';\nimport type { BtnListConfig, HeadBtnListConfig } from 'liyu-pc-base/api/typing';\nimport { ExclamationCircleOutlined } from '@ant-design/icons-vue';\n\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: 1 },\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 {\n name: '重置密码',\n clazz: 'primary',\n cb: ({ record }) => {\n Modal.confirm({\n title: '温馨提示',\n content: '是否重置 [' + record.realname + '] 的密码?',\n icon: () => createVNode(ExclamationCircleOutlined),\n okText: '确定',\n onOk() {\n return new Promise(resolve => {\n resetPassword({\n org_id: record.org_id,\n username: record.user__username,\n })\n .then(() => {\n message.success('重置密码成功');\n })\n .finally(() => {\n resolve(null);\n });\n }).catch(() => console.log('Oops errors!'));\n },\n onCancel() {\n },\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 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: 1,\n role_ids: [],\n }),\n },\n options: {\n manage_type: [\n { label: '普通用户', value: 0 },\n { label: '管理员', value: 1 },\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 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 rules: {},\n model: reactive({\n org_id: current_org.id,\n aim_org_id: current_org.id,\n is_active: true,\n name: '',\n manage_type: null,\n get_role: true,\n }),\n options: {\n manage_type: [\n { label: '普通用户', value: 0 },\n { label: '管理员', value: 1 },\n { label: '超级管理员', value: 2 },\n ],\n },\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 manage_type: 1,\n aim_org_id: current_org?.id,\n },\n options: {\n manage_type: [\n { label: '普通用户', value: 0 },\n { label: '管理员', value: 1 },\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 1: '管理员',\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 options?: {\n use_store?: Boolean;\n to_i18n?: Boolean;\n enable_btn?: Boolean;\n },\n): PageConfig => {\n const { use_store = true, to_i18n = false, enable_btn = false } = options || {};\n init_components();\n const pageConfigStore = use_store ? usePageConfigStore() : null;\n let components: any;\n if (pageConfigStore) {\n if (defaultAndServerConfig) {\n pageConfigStore.cleanPageConfig(modalType);\n } else {\n const cachedConfig = pageConfigStore.getCachedConfig(modalType);\n if (cachedConfig) {\n return cachedConfig;\n }\n }\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 default_hide_view: false,\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 if (!enable_btn && serverConfig) {\n delete serverConfig['btn_list'];\n delete serverConfig['head_btn_list'];\n delete serverConfig['batch_update_list'];\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\n let result = mergedConfig;\n if (to_i18n) {\n result = modify_by_i18n_config(mergedConfig, t, modalType);\n }\n pageConfigStore.setCachedConfig(modalType, result);\n return result;\n};\n"],"names":["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","event_obj","config","head_btn_list","editModal","payload","modalBox","permissionApiurl","permissionDing_appinfo","selectedRowKeys","notification","useUserStore","getApiData","data","import_menu","permissionMenu","env","useEnv","titleList","api_fields","baseColumns","permissionMenu_helper","create_organization_by_role_template","resetPassword","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","state","provide","watch","locale","_a","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","_b","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","type","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","item","searchModel","permissionUser","roleManage","search_options","edit_model_config_options","queryRole","addRole","removeRole","recoverRole","$","safeAdd","x","y","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","_c","_d","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","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","enable_btn","pageConfigStore","usePageConfigStore","components","cachedConfig","getApiPermission","searchConfig","getUrl","cachedDefaultConfig","serverConfig","_e","_g","_f","_h","raw_data_list","obj_dict","customRow"],"mappings":"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","x_google_ignoreList":[11,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,50]}
|