😎整理格式化前端多语言相关代码

This commit is contained in:
zuohuaijun 2025-03-01 12:02:59 +08:00
parent 51a7c54aad
commit bdfbb2226f
40 changed files with 270 additions and 177 deletions

View File

@ -40,7 +40,9 @@
color: #666; color: #666;
} }
@keyframes l3 { @keyframes l3 {
100% {background-size:100%} 100% {
background-size: 100%;
}
} }
</style> </style>
</head> </head>

View File

@ -2,7 +2,7 @@
"name": "admin.net.pro", "name": "admin.net.pro",
"type": "module", "type": "module",
"version": "2.4.33", "version": "2.4.33",
"lastBuildTime": "2025.02.27", "lastBuildTime": "2025.03.01",
"description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架", "description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",
"author": "zuohuaijun", "author": "zuohuaijun",
"license": "MIT", "license": "MIT",
@ -76,7 +76,7 @@
"vue-signature-pad": "^3.0.2", "vue-signature-pad": "^3.0.2",
"vue3-flag-icons": "^0.0.3", "vue3-flag-icons": "^0.0.3",
"vue3-tree-org": "^4.2.2", "vue3-tree-org": "^4.2.2",
"vxe-pc-ui": "^4.3.98", "vxe-pc-ui": "^4.3.99",
"vxe-table": "^4.10.0", "vxe-table": "^4.10.0",
"vxe-table-plugin-element": "^4.0.4", "vxe-table-plugin-element": "^4.0.4",
"vxe-table-plugin-export-xlsx": "^4.0.7", "vxe-table-plugin-export-xlsx": "^4.0.7",
@ -87,7 +87,7 @@
"@iconify/vue": "^4.3.0", "@iconify/vue": "^4.3.0",
"@plugin-web-update-notification/vite": "^2.0.0", "@plugin-web-update-notification/vite": "^2.0.0",
"@types/lodash-es": "^4.17.12", "@types/lodash-es": "^4.17.12",
"@types/node": "^20.17.19", "@types/node": "^20.17.20",
"@types/nprogress": "^0.2.3", "@types/nprogress": "^0.2.3",
"@types/sortablejs": "^1.15.8", "@types/sortablejs": "^1.15.8",
"@typescript-eslint/eslint-plugin": "^8.25.0", "@typescript-eslint/eslint-plugin": "^8.25.0",
@ -104,7 +104,7 @@
"rollup-plugin-visualizer": "^5.14.0", "rollup-plugin-visualizer": "^5.14.0",
"sass": "^1.85.1", "sass": "^1.85.1",
"terser": "^5.39.0", "terser": "^5.39.0",
"typescript": "^5.7.3", "typescript": "^5.8.2",
"vite": "^6.2.0", "vite": "^6.2.0",
"vite-plugin-cdn-import": "^1.0.1", "vite-plugin-cdn-import": "^1.0.1",
"vite-plugin-compression2": "^1.3.3", "vite-plugin-compression2": "^1.3.3",

View File

@ -394,6 +394,7 @@ export const SysCodeGenConfigApiAxiosParamCreator = function (configuration?: Co
* @param {string} [whetherRequired] * @param {string} [whetherRequired]
* @param {string} [whetherSortable] * @param {string} [whetherSortable]
* @param {string} [statistical] * @param {string} [statistical]
* @param {string} [isGroupBy] GroupBy字段
* @param {string} [queryWhether] * @param {string} [queryWhether]
* @param {string} [queryType] * @param {string} [queryType]
* @param {string} [whetherTable] * @param {string} [whetherTable]
@ -415,7 +416,7 @@ export const SysCodeGenConfigApiAxiosParamCreator = function (configuration?: Co
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
apiSysCodeGenConfigDetailGet: async (id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => { apiSysCodeGenConfigDetailGet: async (id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, isGroupBy?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/sysCodeGenConfig/detail`; const localVarPath = `/api/sysCodeGenConfig/detail`;
// use dummy base URL string because the URL constructor only accepts absolute URLs. // use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, 'https://example.com'); const localVarUrlObj = new URL(localVarPath, 'https://example.com');
@ -524,6 +525,10 @@ export const SysCodeGenConfigApiAxiosParamCreator = function (configuration?: Co
localVarQueryParameter['Statistical'] = statistical; localVarQueryParameter['Statistical'] = statistical;
} }
if (isGroupBy !== undefined) {
localVarQueryParameter['IsGroupBy'] = isGroupBy;
}
if (queryWhether !== undefined) { if (queryWhether !== undefined) {
localVarQueryParameter['QueryWhether'] = queryWhether; localVarQueryParameter['QueryWhether'] = queryWhether;
} }
@ -686,6 +691,7 @@ export const SysCodeGenConfigApiAxiosParamCreator = function (configuration?: Co
* @param {string} [whetherRequired] * @param {string} [whetherRequired]
* @param {string} [whetherSortable] * @param {string} [whetherSortable]
* @param {string} [statistical] * @param {string} [statistical]
* @param {string} [isGroupBy] GroupBy字段
* @param {string} [queryWhether] * @param {string} [queryWhether]
* @param {string} [queryType] * @param {string} [queryType]
* @param {string} [whetherTable] * @param {string} [whetherTable]
@ -707,7 +713,7 @@ export const SysCodeGenConfigApiAxiosParamCreator = function (configuration?: Co
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
apiSysCodeGenConfigListGet: async (id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => { apiSysCodeGenConfigListGet: async (id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, isGroupBy?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/sysCodeGenConfig/list`; const localVarPath = `/api/sysCodeGenConfig/list`;
// use dummy base URL string because the URL constructor only accepts absolute URLs. // use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, 'https://example.com'); const localVarUrlObj = new URL(localVarPath, 'https://example.com');
@ -816,6 +822,10 @@ export const SysCodeGenConfigApiAxiosParamCreator = function (configuration?: Co
localVarQueryParameter['Statistical'] = statistical; localVarQueryParameter['Statistical'] = statistical;
} }
if (isGroupBy !== undefined) {
localVarQueryParameter['IsGroupBy'] = isGroupBy;
}
if (queryWhether !== undefined) { if (queryWhether !== undefined) {
localVarQueryParameter['QueryWhether'] = queryWhether; localVarQueryParameter['QueryWhether'] = queryWhether;
} }
@ -1057,6 +1067,7 @@ export const SysCodeGenConfigApiFp = function(configuration?: Configuration) {
* @param {string} [whetherRequired] * @param {string} [whetherRequired]
* @param {string} [whetherSortable] * @param {string} [whetherSortable]
* @param {string} [statistical] * @param {string} [statistical]
* @param {string} [isGroupBy] GroupBy字段
* @param {string} [queryWhether] * @param {string} [queryWhether]
* @param {string} [queryType] * @param {string} [queryType]
* @param {string} [whetherTable] * @param {string} [whetherTable]
@ -1078,8 +1089,8 @@ export const SysCodeGenConfigApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async apiSysCodeGenConfigDetailGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminNETResultSysCodeGenConfig>>> { async apiSysCodeGenConfigDetailGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, isGroupBy?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminNETResultSysCodeGenConfig>>> {
const localVarAxiosArgs = await SysCodeGenConfigApiAxiosParamCreator(configuration).apiSysCodeGenConfigDetailGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, statistical, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, defaultValue, ruleItems, remoteVerify, anyRule, trigger, options); const localVarAxiosArgs = await SysCodeGenConfigApiAxiosParamCreator(configuration).apiSysCodeGenConfigDetailGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, statistical, isGroupBy, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, defaultValue, ruleItems, remoteVerify, anyRule, trigger, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
return axios.request(axiosRequestArgs); return axios.request(axiosRequestArgs);
@ -1124,6 +1135,7 @@ export const SysCodeGenConfigApiFp = function(configuration?: Configuration) {
* @param {string} [whetherRequired] * @param {string} [whetherRequired]
* @param {string} [whetherSortable] * @param {string} [whetherSortable]
* @param {string} [statistical] * @param {string} [statistical]
* @param {string} [isGroupBy] GroupBy字段
* @param {string} [queryWhether] * @param {string} [queryWhether]
* @param {string} [queryType] * @param {string} [queryType]
* @param {string} [whetherTable] * @param {string} [whetherTable]
@ -1145,8 +1157,8 @@ export const SysCodeGenConfigApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async apiSysCodeGenConfigListGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminNETResultListCodeGenConfig>>> { async apiSysCodeGenConfigListGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, isGroupBy?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminNETResultListCodeGenConfig>>> {
const localVarAxiosArgs = await SysCodeGenConfigApiAxiosParamCreator(configuration).apiSysCodeGenConfigListGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, statistical, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, defaultValue, ruleItems, remoteVerify, anyRule, trigger, options); const localVarAxiosArgs = await SysCodeGenConfigApiAxiosParamCreator(configuration).apiSysCodeGenConfigListGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, statistical, isGroupBy, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, defaultValue, ruleItems, remoteVerify, anyRule, trigger, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
return axios.request(axiosRequestArgs); return axios.request(axiosRequestArgs);
@ -1263,6 +1275,7 @@ export const SysCodeGenConfigApiFactory = function (configuration?: Configuratio
* @param {string} [whetherRequired] * @param {string} [whetherRequired]
* @param {string} [whetherSortable] * @param {string} [whetherSortable]
* @param {string} [statistical] * @param {string} [statistical]
* @param {string} [isGroupBy] GroupBy字段
* @param {string} [queryWhether] * @param {string} [queryWhether]
* @param {string} [queryType] * @param {string} [queryType]
* @param {string} [whetherTable] * @param {string} [whetherTable]
@ -1284,8 +1297,8 @@ export const SysCodeGenConfigApiFactory = function (configuration?: Configuratio
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async apiSysCodeGenConfigDetailGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminNETResultSysCodeGenConfig>> { async apiSysCodeGenConfigDetailGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, isGroupBy?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminNETResultSysCodeGenConfig>> {
return SysCodeGenConfigApiFp(configuration).apiSysCodeGenConfigDetailGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, statistical, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, defaultValue, ruleItems, remoteVerify, anyRule, trigger, options).then((request) => request(axios, basePath)); return SysCodeGenConfigApiFp(configuration).apiSysCodeGenConfigDetailGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, statistical, isGroupBy, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, defaultValue, ruleItems, remoteVerify, anyRule, trigger, options).then((request) => request(axios, basePath));
}, },
/** /**
* *
@ -1322,6 +1335,7 @@ export const SysCodeGenConfigApiFactory = function (configuration?: Configuratio
* @param {string} [whetherRequired] * @param {string} [whetherRequired]
* @param {string} [whetherSortable] * @param {string} [whetherSortable]
* @param {string} [statistical] * @param {string} [statistical]
* @param {string} [isGroupBy] GroupBy字段
* @param {string} [queryWhether] * @param {string} [queryWhether]
* @param {string} [queryType] * @param {string} [queryType]
* @param {string} [whetherTable] * @param {string} [whetherTable]
@ -1343,8 +1357,8 @@ export const SysCodeGenConfigApiFactory = function (configuration?: Configuratio
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
* @throws {RequiredError} * @throws {RequiredError}
*/ */
async apiSysCodeGenConfigListGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminNETResultListCodeGenConfig>> { async apiSysCodeGenConfigListGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, isGroupBy?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminNETResultListCodeGenConfig>> {
return SysCodeGenConfigApiFp(configuration).apiSysCodeGenConfigListGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, statistical, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, defaultValue, ruleItems, remoteVerify, anyRule, trigger, options).then((request) => request(axios, basePath)); return SysCodeGenConfigApiFp(configuration).apiSysCodeGenConfigListGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, statistical, isGroupBy, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, defaultValue, ruleItems, remoteVerify, anyRule, trigger, options).then((request) => request(axios, basePath));
}, },
/** /**
* *
@ -1456,6 +1470,7 @@ export class SysCodeGenConfigApi extends BaseAPI {
* @param {string} [whetherRequired] * @param {string} [whetherRequired]
* @param {string} [whetherSortable] * @param {string} [whetherSortable]
* @param {string} [statistical] * @param {string} [statistical]
* @param {string} [isGroupBy] GroupBy字段
* @param {string} [queryWhether] * @param {string} [queryWhether]
* @param {string} [queryType] * @param {string} [queryType]
* @param {string} [whetherTable] * @param {string} [whetherTable]
@ -1478,8 +1493,8 @@ export class SysCodeGenConfigApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof SysCodeGenConfigApi * @memberof SysCodeGenConfigApi
*/ */
public async apiSysCodeGenConfigDetailGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminNETResultSysCodeGenConfig>> { public async apiSysCodeGenConfigDetailGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, isGroupBy?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminNETResultSysCodeGenConfig>> {
return SysCodeGenConfigApiFp(this.configuration).apiSysCodeGenConfigDetailGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, statistical, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, defaultValue, ruleItems, remoteVerify, anyRule, trigger, options).then((request) => request(this.axios, this.basePath)); return SysCodeGenConfigApiFp(this.configuration).apiSysCodeGenConfigDetailGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, statistical, isGroupBy, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, defaultValue, ruleItems, remoteVerify, anyRule, trigger, options).then((request) => request(this.axios, this.basePath));
} }
/** /**
* *
@ -1517,6 +1532,7 @@ export class SysCodeGenConfigApi extends BaseAPI {
* @param {string} [whetherRequired] * @param {string} [whetherRequired]
* @param {string} [whetherSortable] * @param {string} [whetherSortable]
* @param {string} [statistical] * @param {string} [statistical]
* @param {string} [isGroupBy] GroupBy字段
* @param {string} [queryWhether] * @param {string} [queryWhether]
* @param {string} [queryType] * @param {string} [queryType]
* @param {string} [whetherTable] * @param {string} [whetherTable]
@ -1539,8 +1555,8 @@ export class SysCodeGenConfigApi extends BaseAPI {
* @throws {RequiredError} * @throws {RequiredError}
* @memberof SysCodeGenConfigApi * @memberof SysCodeGenConfigApi
*/ */
public async apiSysCodeGenConfigListGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminNETResultListCodeGenConfig>> { public async apiSysCodeGenConfigListGet(id?: number, codeGenId?: number, columnName?: string, propertyName?: string, columnLength?: number, lowerPropertyName?: string, columnComment?: string, netType?: string, effectType?: string, fkConfigId?: string, fkEntityName?: string, fkTableName?: string, lowerFkEntityName?: string, fkColumnName?: string, fkLinkColumnName?: string, lowerFkColumnName?: string, fkColumnNetType?: string, dictTypeCode?: string, whetherRetract?: string, whetherRequired?: string, whetherSortable?: string, statistical?: string, isGroupBy?: string, queryWhether?: string, queryType?: string, whetherTable?: string, whetherAddUpdate?: string, columnKey?: string, dataType?: string, whetherCommon?: string, tableNickName?: string, displayColumn?: string, valueColumn?: string, pidColumn?: string, orderNo?: number, rules?: string, defaultValue?: string, ruleItems?: Array<VerifyRuleItem>, remoteVerify?: boolean, anyRule?: boolean, trigger?: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminNETResultListCodeGenConfig>> {
return SysCodeGenConfigApiFp(this.configuration).apiSysCodeGenConfigListGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, statistical, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, defaultValue, ruleItems, remoteVerify, anyRule, trigger, options).then((request) => request(this.axios, this.basePath)); return SysCodeGenConfigApiFp(this.configuration).apiSysCodeGenConfigListGet(id, codeGenId, columnName, propertyName, columnLength, lowerPropertyName, columnComment, netType, effectType, fkConfigId, fkEntityName, fkTableName, lowerFkEntityName, fkColumnName, fkLinkColumnName, lowerFkColumnName, fkColumnNetType, dictTypeCode, whetherRetract, whetherRequired, whetherSortable, statistical, isGroupBy, queryWhether, queryType, whetherTable, whetherAddUpdate, columnKey, dataType, whetherCommon, tableNickName, displayColumn, valueColumn, pidColumn, orderNo, rules, defaultValue, ruleItems, remoteVerify, anyRule, trigger, options).then((request) => request(this.axios, this.basePath));
} }
/** /**
* *

View File

@ -651,7 +651,7 @@ export const SysWechatPayApiAxiosParamCreator = function (configuration?: Config
}, },
/** /**
* *
* @summary Id获取退款信息列表 * @summary Id获取退款信息列表 🔖
* @param {string} [transactionId] * @param {string} [transactionId]
* @param {string} [outTradeNumber] * @param {string} [outTradeNumber]
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
@ -940,7 +940,7 @@ export const SysWechatPayApiFp = function(configuration?: Configuration) {
}, },
/** /**
* *
* @summary Id获取退款信息列表 * @summary Id获取退款信息列表 🔖
* @param {string} [transactionId] * @param {string} [transactionId]
* @param {string} [outTradeNumber] * @param {string} [outTradeNumber]
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
@ -1105,7 +1105,7 @@ export const SysWechatPayApiFactory = function (configuration?: Configuration, b
}, },
/** /**
* *
* @summary Id获取退款信息列表 * @summary Id获取退款信息列表 🔖
* @param {string} [transactionId] * @param {string} [transactionId]
* @param {string} [outTradeNumber] * @param {string} [outTradeNumber]
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.
@ -1276,7 +1276,7 @@ export class SysWechatPayApi extends BaseAPI {
} }
/** /**
* *
* @summary Id获取退款信息列表 * @summary Id获取退款信息列表 🔖
* @param {string} [transactionId] * @param {string} [transactionId]
* @param {string} [outTradeNumber] * @param {string} [outTradeNumber]
* @param {*} [options] Override http request option. * @param {*} [options] Override http request option.

View File

@ -211,6 +211,14 @@ export interface AddMenuInput {
*/ */
remark?: string | null; remark?: string | null;
/**
*
*
* @type {string}
* @memberof AddMenuInput
*/
i18nName?: string | null;
/** /**
* *
* *

View File

@ -197,6 +197,14 @@ export interface CodeGenConfig {
*/ */
statistical?: string | null; statistical?: string | null;
/**
* GroupBy字段
*
* @type {string}
* @memberof CodeGenConfig
*/
isGroupBy?: string | null;
/** /**
* *
* *

View File

@ -12,6 +12,7 @@
* Do not edit the class manually. * Do not edit the class manually.
*/ */
import { WechatPayParaOutput } from './wechat-pay-para-output';
/** /**
* *
* *
@ -31,4 +32,10 @@ export interface CreatePayTransactionOutput {
* @memberof CreatePayTransactionOutput * @memberof CreatePayTransactionOutput
*/ */
outTradeNumber?: string | null; outTradeNumber?: string | null;
/**
* @type {WechatPayParaOutput}
* @memberof CreatePayTransactionOutput
*/
singInfo?: WechatPayParaOutput;
} }

View File

@ -484,6 +484,7 @@ export * from './visual-db-table';
export * from './visual-table'; export * from './visual-table';
export * from './wechat-pay-output'; export * from './wechat-pay-output';
export * from './wechat-pay-para-input'; export * from './wechat-pay-para-input';
export * from './wechat-pay-para-output';
export * from './wechat-pay-transaction-input'; export * from './wechat-pay-transaction-input';
export * from './wechat-user-login'; export * from './wechat-user-login';
export * from './wx-open-id-login-input'; export * from './wx-open-id-login-input';

View File

@ -54,6 +54,14 @@ export interface MenuOutput {
*/ */
name?: string | null; name?: string | null;
/**
*
*
* @type {string}
* @memberof MenuOutput
*/
i18nName?: string | null;
/** /**
* *
* *

View File

@ -197,7 +197,7 @@ export interface SysCodeGenConfig {
dictTypeCode?: string | null; dictTypeCode?: string | null;
/** /**
* *
* *
* @type {string} * @type {string}
* @memberof SysCodeGenConfig * @memberof SysCodeGenConfig
@ -228,6 +228,14 @@ export interface SysCodeGenConfig {
*/ */
statistical?: string | null; statistical?: string | null;
/**
*
*
* @type {string}
* @memberof SysCodeGenConfig
*/
isGroupBy?: string | null;
/** /**
* *
* *

View File

@ -219,6 +219,14 @@ export interface SysMenu {
*/ */
remark?: string | null; remark?: string | null;
/**
*
*
* @type {string}
* @memberof SysMenu
*/
i18nName?: string | null;
/** /**
* *
* *
@ -226,5 +234,4 @@ export interface SysMenu {
* @memberof SysMenu * @memberof SysMenu
*/ */
children?: Array<SysMenu> | null; children?: Array<SysMenu> | null;
i18nName?: string | null;
} }

View File

@ -211,6 +211,14 @@ export interface UpdateMenuInput {
*/ */
remark?: string | null; remark?: string | null;
/**
*
*
* @type {string}
* @memberof UpdateMenuInput
*/
i18nName?: string | null;
/** /**
* *
* *

View File

@ -0,0 +1,58 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* OpenAPI spec version: 1.0.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
/**
*
*
* @export
* @interface WechatPayParaOutput
*/
export interface WechatPayParaOutput {
/**
* @type {string}
* @memberof WechatPayParaOutput
*/
appId?: string | null;
/**
* @type {string}
* @memberof WechatPayParaOutput
*/
timeStamp?: string | null;
/**
* @type {string}
* @memberof WechatPayParaOutput
*/
nonceStr?: string | null;
/**
* @type {string}
* @memberof WechatPayParaOutput
*/
_package?: string | null;
/**
* @type {string}
* @memberof WechatPayParaOutput
*/
signType?: string | null;
/**
* @type {string}
* @memberof WechatPayParaOutput
*/
paySign?: string | null;
}

View File

@ -20,7 +20,6 @@ const { t } = useI18n();
const defaultText = t('message.list.welcomein') + ' <a href="https://gitee.com/zuohuaijun/Admin.NET" target="_blank">https://gitee.com/zuohuaijun/Admin.NET</a>'; const defaultText = t('message.list.welcomein') + ' <a href="https://gitee.com/zuohuaijun/Admin.NET" target="_blank">https://gitee.com/zuohuaijun/Admin.NET</a>';
const props = defineProps({ const props = defineProps({
mode: { type: String, default: '' }, // closeable link mode: { type: String, default: '' }, // closeable link
text: { type: String, default: '' }, // text: { type: String, default: '' }, //

View File

@ -10,7 +10,6 @@
</tr> </tr>
</thead> </thead>
<tbody class="el-table-tbody"> <tbody class="el-table-tbody">
<tr v-for="(item, index) in vm.value" :key="index"> <tr v-for="(item, index) in vm.value" :key="index">
<td v-for="(citem, ci) in $props.columns" :key="ci" style="text-align: center" v-show="citem.ifShow == undefined ? true : citem.ifShow"> <td v-for="(citem, ci) in $props.columns" :key="ci" style="text-align: center" v-show="citem.ifShow == undefined ? true : citem.ifShow">
<component v-if="citem.component != 'el-select'" :is="citem.component" v-model="item[citem.field]" v-bind="renderComponentProp(citem)" :disabled="$props.disabled" /> <component v-if="citem.component != 'el-select'" :is="citem.component" v-model="item[citem.field]" v-bind="renderComponentProp(citem)" :disabled="$props.disabled" />
@ -37,7 +36,6 @@
</td> </td>
</tr> </tr>
</tfoot> </tfoot>
</table> </table>
</div> </div>
</template> </template>

View File

@ -23,7 +23,7 @@
<div class="mr-2"> <div class="mr-2">
<FlagIcon :code="getCountryCode(key)" :size="18" /> <FlagIcon :code="getCountryCode(key)" :size="18" />
</div> </div>
<div style="margin-left:10px;"> <div style="margin-left: 10px">
{{ value }} {{ value }}
</div> </div>
</div> </div>
@ -117,8 +117,8 @@ import { Avatar, CircleCloseFilled, Loading, Lock } from '@element-plus/icons-vu
import { clearAccessTokens, getAPI } from '/@/utils/axios-utils'; import { clearAccessTokens, getAPI } from '/@/utils/axios-utils';
import { SysAuthApi, SysNoticeApi, SysUpgradeApi, SysUserApi } from '/@/api-services/api'; import { SysAuthApi, SysNoticeApi, SysUpgradeApi, SysUserApi } from '/@/api-services/api';
import { languageList, getCountryCode } from '/@/i18n'; import { languageList, getCountryCode } from '/@/i18n';
import FlagIcon from 'vue3-flag-icons' import FlagIcon from 'vue3-flag-icons';
import type { CountryCode } from 'vue3-flag-icons' import type { CountryCode } from 'vue3-flag-icons';
// //
const UserNews = defineAsyncComponent(() => import('/@/layout/navBars/topBar/userNews.vue')); const UserNews = defineAsyncComponent(() => import('/@/layout/navBars/topBar/userNews.vue'));

View File

@ -21,19 +21,15 @@
<div class="notice-foot" @click="goToNotice" v-if="noticeList.length > 0">{{ $t('message.list.goToNotice') }}</div> <div class="notice-foot" @click="goToNotice" v-if="noticeList.length > 0">{{ $t('message.list.goToNotice') }}</div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('message.list.my')"> <el-tab-pane :label="$t('message.list.my')">
<template #label> <template #label>
<el-icon><ele-Position /></el-icon> <el-icon><ele-Position /></el-icon>
<span style="margin-left: 5px">{{ $t('message.list.my') }}</span> <span style="margin-left: 5px">{{ $t('message.list.my') }}</span>
</template> </template>
<div style="height: 400px; overflow-y: auto; padding-right: 10px"> <div style="height: 400px; overflow-y: auto; padding-right: 10px">
<el-empty :description="$t('message.list.empty')"></el-empty> <el-empty :description="$t('message.list.empty')"></el-empty>
</div> </div>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<el-dialog v-model="state.dialogVisible" draggable width="769px"> <el-dialog v-model="state.dialogVisible" draggable width="769px">
<template #header> <template #header>
@ -51,7 +47,6 @@
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>

View File

@ -25,11 +25,11 @@ import { setupVXETable } from '/@/hooks/setupVXETableHook';
import JwChat from 'jwchat'; import JwChat from 'jwchat';
import 'jwchat/lib/style.css'; import 'jwchat/lib/style.css';
// 自定义字典组件 // 自定义字典组件
import sysDict from "/@/components/sysDict/sysDict.vue"; import sysDict from '/@/components/sysDict/sysDict.vue';
// 关闭自动打印 // 关闭自动打印
import { disAutoConnect } from 'vue-plugin-hiprint'; import { disAutoConnect } from 'vue-plugin-hiprint';
import 'vue3-flag-icons/styles' import 'vue3-flag-icons/styles';
disAutoConnect(); disAutoConnect();
@ -44,14 +44,4 @@ other.elSvg(app);
// 注册全局字典组件 // 注册全局字典组件
app.component('GSysDict', sysDict); app.component('GSysDict', sysDict);
app.use(pinia) app.use(pinia).use(i18n).use(router).use(ElementPlus).use(setupVXETable).use(VueGridLayout).use(VForm3).use(VueSignaturePad).use(vue3TreeOrg).use(JwChat).mount('#app');
.use(i18n)
.use(router)
.use(ElementPlus)
.use(setupVXETable)
.use(VueGridLayout)
.use(VForm3)
.use(VueSignaturePad)
.use(vue3TreeOrg)
.use(JwChat)
.mount('#app');

View File

@ -119,7 +119,6 @@ export async function getBackEndControlRoutes() {
let resData = res.data.result; let resData = res.data.result;
recursive(resData); recursive(resData);
return resData; return resData;
} }

View File

@ -135,7 +135,7 @@ export function formatAxis(param: Date, t?: Function): string {
pmGreeting: '下午好', pmGreeting: '下午好',
duskGreeting: '傍晚好', duskGreeting: '傍晚好',
eveningGreeting: '晚上好', eveningGreeting: '晚上好',
nightGreeting: '夜里好' nightGreeting: '夜里好',
}; };
const getMessage = (key: string) => { const getMessage = (key: string) => {

View File

@ -12,13 +12,10 @@
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6"> <el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item :label="$t('message.list.type')" prop="type"> <el-form-item :label="$t('message.list.type')" prop="type">
<el-select v-model="state.queryParams.type" :placeholder="$t('message.list.type')" clearable @clear="state.queryParams.type = undefined"> <el-select v-model="state.queryParams.type" :placeholder="$t('message.list.type')" clearable @clear="state.queryParams.type = undefined">
<el-option :label="$t('message.list.notice')" :value="1" /> <el-option :label="$t('message.list.notice')" :value="1" />
<el-option :label="$t('message.list.announcement')" :value="2" /> <el-option :label="$t('message.list.announcement')" :value="2" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -33,7 +30,6 @@
</el-button-group> </el-button-group>
</el-col> </el-col>
</el-row> </el-row>
</el-card> </el-card>
<el-card class="full-table" shadow="hover" style="margin-top: 5px"> <el-card class="full-table" shadow="hover" style="margin-top: 5px">
@ -56,7 +52,6 @@
<el-button icon="ele-InfoFilled" text type="primary" @click="handleView(row)"> </el-button> <el-button icon="ele-InfoFilled" text type="primary" @click="handleView(row)"> </el-button>
</el-tooltip> </el-tooltip>
</template> </template>
</vxe-grid> </vxe-grid>
</el-card> </el-card>
@ -121,7 +116,6 @@ const options = useVxeTable<SysNoticeUser>(
// { type: 'checkbox', width: 40, fixed: 'left' }, // { type: 'checkbox', width: 40, fixed: 'left' },
{ field: 'seq', type: 'seq', title: t('message.list.seq'), width: 60, fixed: 'left' }, { field: 'seq', type: 'seq', title: t('message.list.seq'), width: 60, fixed: 'left' },
{ field: 'sysNotice.title', title: t('message.list.title'), minWidth: 200, showOverflow: 'tooltip' }, { field: 'sysNotice.title', title: t('message.list.title'), minWidth: 200, showOverflow: 'tooltip' },
{ field: 'sysNotice.content', title: t('message.list.content'), minWidth: 180, showOverflow: 'tooltip', slots: { default: (scope: any) => removeHtml(scope.row.sysNotice.content) } }, { field: 'sysNotice.content', title: t('message.list.content'), minWidth: 180, showOverflow: 'tooltip', slots: { default: (scope: any) => removeHtml(scope.row.sysNotice.content) } },
@ -133,7 +127,6 @@ const options = useVxeTable<SysNoticeUser>(
{ field: 'sysNotice.publicTime', title: t('message.list.publishTime'), minWidth: 150, showOverflow: 'tooltip' }, { field: 'sysNotice.publicTime', title: t('message.list.publishTime'), minWidth: 150, showOverflow: 'tooltip' },
{ field: 'buttons', title: t('message.list.operation'), fixed: 'right', width: 100, showOverflow: true, slots: { default: 'row_buttons' } }, { field: 'buttons', title: t('message.list.operation'), fixed: 'right', width: 100, showOverflow: true, slots: { default: 'row_buttons' } },
], ],
}, },
// vxeGrid()vxe-table // vxeGrid()vxe-table

View File

@ -11,7 +11,14 @@
<el-row :gutter="35"> <el-row :gutter="35">
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="8" class="mb20 time-padding-right"> <el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="8" class="mb20 time-padding-right">
<el-form-item :label="t('message.list.scheduleTime')" prop="scheduleTime" :rules="[{ required: true, message: t('message.list.scheduleTimeRequired'), trigger: 'blur' }]"> <el-form-item :label="t('message.list.scheduleTime')" prop="scheduleTime" :rules="[{ required: true, message: t('message.list.scheduleTimeRequired'), trigger: 'blur' }]">
<el-date-picker v-model="state.ruleForm.scheduleTime" type="datetime" :placeholder="t('message.list.scheduleTimePlaceholder')" format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" class="w100" /> <el-date-picker
v-model="state.ruleForm.scheduleTime"
type="datetime"
:placeholder="t('message.list.scheduleTimePlaceholder')"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD HH:mm:ss"
class="w100"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="5" :sm="5" :md="5" :lg="5" :xl="5" class="mb20 time-padding"> <el-col :xs="5" :sm="5" :md="5" :lg="5" :xl="5" class="mb20 time-padding">

View File

@ -37,10 +37,9 @@
</template> </template>
<script setup lang="ts" name="welcome"> <script setup lang="ts" name="welcome">
const godoc = () => { const godoc = () => {
window.open('http://101.43.53.74:5050/'); window.open('http://101.43.53.74:5050/');
} };
</script> </script>
<script lang="ts"> <script lang="ts">
@ -51,14 +50,12 @@ const storesThemeConfig = useThemeConfig();
const { themeConfig } = storeToRefs(storesThemeConfig); const { themeConfig } = storeToRefs(storesThemeConfig);
export default { export default {
title: "Welcome", title: 'Welcome',
icon: 'ele-Promotion', icon: 'ele-Promotion',
description: "项目特色以及文档链接", description: '项目特色以及文档链接',
}; };
</script> </script>
<style scoped> <style scoped>
.welcome .logo { .welcome .logo {
text-align: center; text-align: center;

View File

@ -2,8 +2,7 @@
<el-tooltip :visible="state.capsLockVisible" effect="light" :content="t('message.account.lockTag')" placement="top"> <el-tooltip :visible="state.capsLockVisible" effect="light" :content="t('message.account.lockTag')" placement="top">
<el-form ref="ruleFormRef" :model="state.ruleForm" size="large" :rules="state.rules" class="login-content-form"> <el-form ref="ruleFormRef" :model="state.ruleForm" size="large" :rules="state.rules" class="login-content-form">
<el-form-item class="login-animation1" prop="account"> <el-form-item class="login-animation1" prop="account">
<el-input ref="accountRef" text :placeholder="t('message.account.accountneed')" <el-input ref="accountRef" text :placeholder="t('message.account.accountneed')" v-model="state.ruleForm.account" clearable autocomplete="off" @keyup.enter.native="handleSignIn">
v-model="state.ruleForm.account" clearable autocomplete="off" @keyup.enter.native="handleSignIn">
<template #prefix> <template #prefix>
<el-icon> <el-icon>
<ele-User /> <ele-User />
@ -12,26 +11,37 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item class="login-animation2" prop="password"> <el-form-item class="login-animation2" prop="password">
<el-input ref="passwordRef" :type="state.isShowPassword ? 'text' : 'password'" <el-input
:placeholder="t('message.account.passwordneed')" v-model="state.ruleForm.password" ref="passwordRef"
autocomplete="off" @keyup.enter.native="handleSignIn"> :type="state.isShowPassword ? 'text' : 'password'"
:placeholder="t('message.account.passwordneed')"
v-model="state.ruleForm.password"
autocomplete="off"
@keyup.enter.native="handleSignIn"
>
<template #prefix> <template #prefix>
<el-icon> <el-icon>
<ele-Unlock /> <ele-Unlock />
</el-icon> </el-icon>
</template> </template>
<template #suffix> <template #suffix>
<i class="iconfont el-input__icon login-content-password" <i class="iconfont el-input__icon login-content-password" :class="state.isShowPassword ? 'icon-yincangmima' : 'icon-xianshimima'" @click="state.isShowPassword = !state.isShowPassword">
:class="state.isShowPassword ? 'icon-yincangmima' : 'icon-xianshimima'"
@click="state.isShowPassword = !state.isShowPassword">
</i> </i>
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item class="login-animation3" prop="captcha" v-if="state.captchaEnabled"> <el-form-item class="login-animation3" prop="captcha" v-if="state.captchaEnabled">
<el-col :span="15"> <el-col :span="15">
<el-input ref="codeRef" text maxlength="4" :placeholder="$t('message.account.accountPlaceholder3')" <el-input
v-model="state.ruleForm.code" clearable autocomplete="off" @keyup.enter.native="handleSignIn"> ref="codeRef"
text
maxlength="4"
:placeholder="$t('message.account.accountPlaceholder3')"
v-model="state.ruleForm.code"
clearable
autocomplete="off"
@keyup.enter.native="handleSignIn"
>
<template #prefix> <template #prefix>
<el-icon> <el-icon>
<ele-Position /> <ele-Position />
@ -41,22 +51,18 @@
</el-col> </el-col>
<el-col :span="1"></el-col> <el-col :span="1"></el-col>
<el-col :span="8"> <el-col :span="8">
<div :class="[state.expirySeconds > 0 ? 'login-content-code' : 'login-content-code-expired']" <div :class="[state.expirySeconds > 0 ? 'login-content-code' : 'login-content-code-expired']" @click="getCaptcha">
@click="getCaptcha"> <div style="width: 130px; height: 38px; text-align: center; cursor: pointer" v-if="state.captchaImage == ''">
<div style="width: 130px; height: 38px; text-align: center; cursor: pointer"
v-if="state.captchaImage == ''">
<el-icon class="is-loading"> <el-icon class="is-loading">
<ele-Loading /> <ele-Loading />
</el-icon> </el-icon>
</div> </div>
<img class="login-content-code-img" width="130px" height="38px" :src="state.captchaImage" <img class="login-content-code-img" width="130px" height="38px" :src="state.captchaImage" style="cursor: pointer" v-else />
style="cursor: pointer" v-else />
</div> </div>
</el-col> </el-col>
</el-form-item> </el-form-item>
<el-form-item class="login-animation4"> <el-form-item class="login-animation4">
<el-button type="primary" icon="ele-Promotion" class="login-content-submit" round v-waves <el-button type="primary" icon="ele-Promotion" class="login-content-submit" round v-waves @click="handleSignIn" :loading="state.loading.signIn">
@click="handleSignIn" :loading="state.loading.signIn">
<span>{{ $t('message.account.accountBtnText') }}</span> <span>{{ $t('message.account.accountBtnText') }}</span>
</el-button> </el-button>
</el-form-item> </el-form-item>
@ -66,10 +72,16 @@
</el-tooltip> </el-tooltip>
<div class="dialog-header"> <div class="dialog-header">
<el-dialog v-model="state.rotateVerifyVisible" :show-close="false"> <el-dialog v-model="state.rotateVerifyVisible" :show-close="false">
<DragVerifyImgRotate ref="dragRef" :imgsrc="state.rotateVerifyImg" v-model:isPassing="state.isPassRotate" <DragVerifyImgRotate
:text="t('message.account.splitslive')" :successText="t('message.account.success')" ref="dragRef"
handlerIcon="fa fa-angle-double-right" successIcon="fa fa-hand-peace-o" :imgsrc="state.rotateVerifyImg"
@passcallback="passRotateVerify" /> v-model:isPassing="state.isPassRotate"
:text="t('message.account.splitslive')"
:successText="t('message.account.success')"
handlerIcon="fa fa-angle-double-right"
successIcon="fa fa-hand-peace-o"
@passcallback="passRotateVerify"
/>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>

View File

@ -352,7 +352,6 @@ onMounted(async () => {
} }
@media screen and (max-width: 1200px) { @media screen and (max-width: 1200px) {
.copyright, .copyright,
.icp { .icp {
left: 50%; left: 50%;
@ -367,7 +366,6 @@ onMounted(async () => {
} }
@media screen and (max-width: 580px) { @media screen and (max-width: 580px) {
.copyright, .copyright,
.icp { .icp {
left: 50%; left: 50%;

View File

@ -58,7 +58,9 @@
<el-tooltip :content="$t('message.list.delete')" placement="top"> <el-tooltip :content="$t('message.list.delete')" placement="top">
<el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'sysNotice/delete'" :disabled="row.status === 1" /> <el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'sysNotice/delete'" :disabled="row.status === 1" />
</el-tooltip> </el-tooltip>
<el-button icon="ele-Position" size="small" text type="primary" @click="handlePublic(row)" v-auth="'sysNotice/public'" :disabled="row.status === 1">{{ $t('message.list.publish') }}</el-button> <el-button icon="ele-Position" size="small" text type="primary" @click="handlePublic(row)" v-auth="'sysNotice/public'" :disabled="row.status === 1">{{
$t('message.list.publish')
}}</el-button>
</template> </template>
</vxe-grid> </vxe-grid>
</el-card> </el-card>

View File

@ -12,19 +12,14 @@
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item :label="$t('message.list.recipient')" prop="receiveUserName" :rules="[{ required: true, message: $t('message.list.recipientRequired'), trigger: 'blur' }]"> <el-form-item :label="$t('message.list.recipient')" prop="receiveUserName" :rules="[{ required: true, message: $t('message.list.recipientRequired'), trigger: 'blur' }]">
<el-input v-model="state.ruleForm.receiveUserName" :placeholder="$t('message.list.recipient')" disabled /> <el-input v-model="state.ruleForm.receiveUserName" :placeholder="$t('message.list.recipient')" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item :label="$t('message.list.title')" prop="title" :rules="[{ required: true, message: $t('message.list.titleRequired'), trigger: 'blur' }]"> <el-form-item :label="$t('message.list.title')" prop="title" :rules="[{ required: true, message: $t('message.list.titleRequired'), trigger: 'blur' }]">
<el-input v-model="state.ruleForm.title" :placeholder="$t('message.list.title')" clearable /> <el-input v-model="state.ruleForm.title" :placeholder="$t('message.list.title')" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item :label="$t('message.list.content')" prop="message" :rules="[{ required: true, message: $t('message.list.contentRequired'), trigger: 'blur' }]"> <el-form-item :label="$t('message.list.content')" prop="message" :rules="[{ required: true, message: $t('message.list.contentRequired'), trigger: 'blur' }]">
<Editor v-model:get-html="state.ruleForm.message" /> <Editor v-model:get-html="state.ruleForm.message" />
</el-form-item> </el-form-item>
@ -37,7 +32,6 @@
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>

View File

@ -18,10 +18,8 @@
<el-col class="mb5" :xs="24" :sm="12" :md="12" :lg="12" :xl="12"> <el-col class="mb5" :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
<el-form-item :label="$t('message.list.realName')" prop="realName"> <el-form-item :label="$t('message.list.realName')" prop="realName">
<el-input v-model="state.queryParams.realName" :placeholder="$t('message.list.realName')" clearable @keyup.enter.native="handleQuery(true)" /> <el-input v-model="state.queryParams.realName" :placeholder="$t('message.list.realName')" clearable @keyup.enter.native="handleQuery(true)" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -50,7 +48,6 @@
<el-button icon="ele-Position" text type="primary" @click="openSendMessage(row)"> </el-button> <el-button icon="ele-Position" text type="primary" @click="openSendMessage(row)"> </el-button>
</el-tooltip> </el-tooltip>
<el-tooltip :content="$t('message.list.forceOffline')" placement="top"> <el-tooltip :content="$t('message.list.forceOffline')" placement="top">
<el-button icon="ele-CircleCloseFilled" text type="danger" v-auth="'sysOnlineUser/forceOffline'" @click="forceOffline(row)"> </el-button> <el-button icon="ele-CircleCloseFilled" text type="danger" v-auth="'sysOnlineUser/forceOffline'" @click="forceOffline(row)"> </el-button>
</el-tooltip> </el-tooltip>
</template> </template>
@ -62,7 +59,6 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, reactive, ref } from 'vue'; import { onMounted, reactive, ref } from 'vue';
import { ElMessageBox, ElNotification } from 'element-plus'; import { ElMessageBox, ElNotification } from 'element-plus';
@ -117,7 +113,6 @@ const options = useVxeTable<SysOnlineUser>(
// { field: 'connectionId', title: 'Id', minWidth: 160, showOverflow: 'tooltip', sortable: true }, // { field: 'connectionId', title: 'Id', minWidth: 160, showOverflow: 'tooltip', sortable: true },
{ field: 'time', title: t('message.list.loginTime'), minWidth: 120, showOverflow: 'tooltip' }, { field: 'time', title: t('message.list.loginTime'), minWidth: 120, showOverflow: 'tooltip' },
{ title: t('message.list.operation'), fixed: 'right', width: 100, showOverflow: true, slots: { default: 'row_buttons' } }, { title: t('message.list.operation'), fixed: 'right', width: 100, showOverflow: true, slots: { default: 'row_buttons' } },
], ],
}, },
// vxeGrid()vxe-table // vxeGrid()vxe-table

View File

@ -119,7 +119,13 @@ const options = useVxeTable<SysOrg>(
{ field: 'name', title: i18n.t('message.list.organizationName'), minWidth: 200, showOverflow: 'tooltip', treeNode: true, align: 'left', headerAlign: 'center' }, { field: 'name', title: i18n.t('message.list.organizationName'), minWidth: 200, showOverflow: 'tooltip', treeNode: true, align: 'left', headerAlign: 'center' },
{ field: 'code', title: i18n.t('message.list.organizationCode'), minWidth: 200, showOverflow: 'tooltip' }, { field: 'code', title: i18n.t('message.list.organizationCode'), minWidth: 200, showOverflow: 'tooltip' },
{ field: 'level', title: i18n.t('message.list.level'), minWidth: 70, showOverflow: 'tooltip' }, { field: 'level', title: i18n.t('message.list.level'), minWidth: 70, showOverflow: 'tooltip' },
{ field: 'type', title: i18n.t('message.list.organizationType'), minWidth: 80, formatter: ({ cellValue }: any) => state.orgTypeList.find((u: any) => u.code == cellValue)?.value, showOverflow: 'tooltip' }, {
field: 'type',
title: i18n.t('message.list.organizationType'),
minWidth: 80,
formatter: ({ cellValue }: any) => state.orgTypeList.find((u: any) => u.code == cellValue)?.value,
showOverflow: 'tooltip',
},
{ field: 'orderNo', title: i18n.t('message.list.orderNo'), width: 80, showOverflow: 'tooltip' }, { field: 'orderNo', title: i18n.t('message.list.orderNo'), width: 80, showOverflow: 'tooltip' },
{ field: 'status', title: i18n.t('message.list.status'), width: 80, showOverflow: 'tooltip', slots: { default: 'row_status' } }, { field: 'status', title: i18n.t('message.list.status'), width: 80, showOverflow: 'tooltip', slots: { default: 'row_status' } },
{ field: 'record', title: i18n.t('message.list.record'), width: 100, showOverflow: 'tooltip', slots: { default: 'row_record' } }, { field: 'record', title: i18n.t('message.list.record'), width: 100, showOverflow: 'tooltip', slots: { default: 'row_record' } },

View File

@ -69,7 +69,6 @@ import { useI18n } from 'vue-i18n';
const { t } = useI18n(); const { t } = useI18n();
const filterText = ref(''); const filterText = ref('');
const treeRef = ref<InstanceType<typeof ElTree>>(); const treeRef = ref<InstanceType<typeof ElTree>>();
const state = reactive({ const state = reactive({
@ -109,8 +108,6 @@ const openDrawer = async (row: any) => {
state.roleId = row.id; state.roleId = row.id;
state.drawerTitle = t('message.list.setApiBlacklist', { name: row.name }); state.drawerTitle = t('message.list.setApiBlacklist', { name: row.name });
state.loading = true; state.loading = true;
// //
var res1 = await getAPI(SysRoleApi).apiSysRoleRoleApiListGet(state.roleId); var res1 = await getAPI(SysRoleApi).apiSysRoleRoleApiListGet(state.roleId);

View File

@ -64,7 +64,6 @@ const state = reactive({
const openDialog = async (row: any) => { const openDialog = async (row: any) => {
state.title = t('message.list.authRoleDataScopeWithName', { name: row.name }); state.title = t('message.list.authRoleDataScopeWithName', { name: row.name });
state.ruleForm = JSON.parse(JSON.stringify(row)); state.ruleForm = JSON.parse(JSON.stringify(row));
var res = await getAPI(SysRoleApi).apiSysRoleOwnOrgListGet(row.id); var res = await getAPI(SysRoleApi).apiSysRoleOwnOrgListGet(row.id);
setTimeout(() => { setTimeout(() => {

View File

@ -62,11 +62,10 @@ onMounted(async () => {
state.menuData = res.data.result ?? []; state.menuData = res.data.result ?? [];
recurenceMenuData(state.menuData); recurenceMenuData(state.menuData);
state.loading = false; state.loading = false;
}); });
const recurenceMenuData = (menuData: Array<SysMenu>) => { const recurenceMenuData = (menuData: Array<SysMenu>) => {
menuData.forEach(item => { menuData.forEach((item) => {
item.title = item.i18nName ?? item.title; item.title = item.i18nName ?? item.title;
if (item.children) { if (item.children) {
recurenceMenuData(item.children); recurenceMenuData(item.children);
@ -74,14 +73,11 @@ const recurenceMenuData = (menuData: Array<SysMenu>) => {
}); });
}; };
// //
const openDrawer = async (row: any) => { const openDrawer = async (row: any) => {
state.roleId = row.id; state.roleId = row.id;
state.drawerTitle = t('message.list.grantRoleMenuWithName', { name: row.name }); state.drawerTitle = t('message.list.grantRoleMenuWithName', { name: row.name });
state.loading = true; state.loading = true;
treeRef.value?.setCheckedKeys([]); // treeRef.value?.setCheckedKeys([]); //
if (row.id != undefined) { if (row.id != undefined) {

View File

@ -68,7 +68,6 @@ const openDrawer = async (row: any) => {
state.roleId = row.id; state.roleId = row.id;
state.drawerTitle = t('message.list.setApiBlacklist', { name: row.name }); state.drawerTitle = t('message.list.setApiBlacklist', { name: row.name });
state.loading = true; state.loading = true;
treeRef.value?.setCheckedKeys([]); // treeRef.value?.setCheckedKeys([]); //
if (row.id != undefined) { if (row.id != undefined) {

View File

@ -64,7 +64,7 @@ onMounted(async () => {
}); });
const recurenceMenuData = (menuData: Array<SysMenu>) => { const recurenceMenuData = (menuData: Array<SysMenu>) => {
menuData.forEach(item => { menuData.forEach((item) => {
item.title = item.i18nName ?? item.title; item.title = item.i18nName ?? item.title;
if (item.children) { if (item.children) {
recurenceMenuData(item.children); recurenceMenuData(item.children);

View File

@ -101,7 +101,15 @@
<el-button icon="ele-Delete" type="danger" circle plain size="small" @click="deleteExtOrgRow(k)" /> <el-button icon="ele-Delete" type="danger" circle plain size="small" @click="deleteExtOrgRow(k)" />
<span class="ml5">{{ $t('message.list.organization') }}</span> <span class="ml5">{{ $t('message.list.organization') }}</span>
</template> </template>
<el-cascader :options="props.orgData" :props="cascaderProps" :placeholder="$t('message.list.organization')" clearable filterable class="w100" v-model="state.ruleForm.extOrgIdList[k].orgId"> <el-cascader
:options="props.orgData"
:props="cascaderProps"
:placeholder="$t('message.list.organization')"
clearable
filterable
class="w100"
v-model="state.ruleForm.extOrgIdList[k].orgId"
>
<template #default="{ node, data }"> <template #default="{ node, data }">
<span>{{ data.name }}</span> <span>{{ data.name }}</span>
<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
@ -110,7 +118,11 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item :label="$t('message.list.jobTitle')" :prop="`extOrgIdList[${k}].posId`" :rules="[{ required: true, message: $t('message.list.positionRequired'), trigger: 'blur' }]"> <el-form-item
:label="$t('message.list.jobTitle')"
:prop="`extOrgIdList[${k}].posId`"
:rules="[{ required: true, message: $t('message.list.positionRequired'), trigger: 'blur' }]"
>
<el-select v-model="state.ruleForm.extOrgIdList[k].posId" :placeholder="$t('message.list.jobTitle')" class="w100"> <el-select v-model="state.ruleForm.extOrgIdList[k].posId" :placeholder="$t('message.list.jobTitle')" class="w100">
<el-option v-for="d in state.posData" :key="d.id" :label="d.name" :value="d.id" /> <el-option v-for="d in state.posData" :key="d.id" :label="d.name" :value="d.id" />
</el-select> </el-select>
@ -124,12 +136,7 @@
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('message.list.roleAuth')" style="height: 550px; overflow-y: auto; overflow-x: hidden"> <el-tab-pane :label="$t('message.list.roleAuth')" style="height: 550px; overflow-y: auto; overflow-x: hidden">
<Transfer <Transfer :left-title="$t('message.list.unauthorized')" :right-title="$t('message.list.authorized')" v-model:leftData="state.availableRoles" v-model:rightData="state.grantedRoles" />
:left-title="$t('message.list.unauthorized')"
:right-title="$t('message.list.authorized')"
v-model:leftData="state.availableRoles"
v-model:rightData="state.grantedRoles"
/>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('message.list.profileInfo')" style="height: 550px; overflow-y: auto; overflow-x: hidden"> <el-tab-pane :label="$t('message.list.profileInfo')" style="height: 550px; overflow-y: auto; overflow-x: hidden">
<el-form :model="state.ruleForm" label-width="auto"> <el-form :model="state.ruleForm" label-width="auto">

View File

@ -59,8 +59,6 @@
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item :label="t('message.list.realNameText')" prop="realName" :rules="[{ required: true, message: t('message.list.realNameRequired'), trigger: 'blur' }]"> <el-form-item :label="t('message.list.realNameText')" prop="realName" :rules="[{ required: true, message: t('message.list.realNameRequired'), trigger: 'blur' }]">
<el-input v-model="state.ruleFormBase.realName" :placeholder="t('message.list.realNameText')" clearable /> <el-input v-model="state.ruleFormBase.realName" :placeholder="t('message.list.realNameText')" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
@ -72,7 +70,6 @@
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item :label="t('message.list.phoneNumber')" prop="phone" :rules="[{ required: true, message: t('message.list.phoneRequired'), trigger: 'blur' }]"> <el-form-item :label="t('message.list.phoneNumber')" prop="phone" :rules="[{ required: true, message: t('message.list.phoneRequired'), trigger: 'blur' }]">
<el-input v-model="state.ruleFormBase.phone" :placeholder="t('message.list.phoneNumber')" clearable /> <el-input v-model="state.ruleFormBase.phone" :placeholder="t('message.list.phoneNumber')" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
@ -93,7 +90,6 @@
<el-radio :value="2">{{ t('message.list.female') }}</el-radio> <el-radio :value="2">{{ t('message.list.female') }}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item :label="t('message.list.address')"> <el-form-item :label="t('message.list.address')">
@ -119,11 +115,9 @@
<OrgTree ref="orgTreeRef" /> <OrgTree ref="orgTreeRef" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="t('message.list.changePassword')"> <el-tab-pane :label="t('message.list.changePassword')">
<div style="color: red; padding: 10px 10px; background: #faecd8; margin-bottom: 15px"> <div style="color: red; padding: 10px 10px; background: #faecd8; margin-bottom: 15px">
<el-icon style="transform: translateY(2px)"><ele-Bell /></el-icon> <el-icon style="transform: translateY(2px)"><ele-Bell /></el-icon>
<span> {{ $t('message.list.passwordPolicy') }} </span> <span> {{ $t('message.list.passwordPolicy') }} </span>
</div> </div>
<el-form ref="ruleFormPasswordRef" :model="state.ruleFormPassword" label-width="auto" class="mb10"> <el-form ref="ruleFormPasswordRef" :model="state.ruleFormPassword" label-width="auto" class="mb10">
<el-form-item :label="t('message.list.currentPassword')" prop="passwordOld" :rules="[{ required: true, message: t('message.list.currentPasswordRequired'), trigger: 'blur' }]"> <el-form-item :label="t('message.list.currentPassword')" prop="passwordOld" :rules="[{ required: true, message: t('message.list.currentPasswordRequired'), trigger: 'blur' }]">
@ -158,7 +152,9 @@
</div> </div>
<div style="margin-top: 10px"> <div style="margin-top: 10px">
<div style="display: inline">{{ $t('message.list.brushThickness') }}<el-input-number v-model="state.signOptions.minWidth" :min="0.5" :max="2.5" :step="0.1" size="small" /></div> <div style="display: inline">{{ $t('message.list.brushThickness') }}<el-input-number v-model="state.signOptions.minWidth" :min="0.5" :max="2.5" :step="0.1" size="small" /></div>
<div style="display: inline; margin-left: 30px">{{ $t('message.list.brushColor') }}<el-color-picker v-model="state.signOptions.penColor" color-format="hex" size="default"> </el-color-picker></div> <div style="display: inline; margin-left: 30px">
{{ $t('message.list.brushColor') }}<el-color-picker v-model="state.signOptions.penColor" color-format="hex" size="default"> </el-color-picker>
</div>
</div> </div>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">

View File

@ -30,7 +30,6 @@
<el-input v-model="state.queryParams.phone" :placeholder="$t('message.list.phoneNumber')" clearable @keyup.enter.native="handleQuery(true)" /> <el-input v-model="state.queryParams.phone" :placeholder="$t('message.list.phoneNumber')" clearable @keyup.enter.native="handleQuery(true)" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -44,7 +43,6 @@
</el-button-group> </el-button-group>
</el-col> </el-col>
</el-row> </el-row>
</el-card> </el-card>
<el-card class="full-table" shadow="hover" style="margin-top: 5px; flex: 1"> <el-card class="full-table" shadow="hover" style="margin-top: 5px; flex: 1">
@ -54,7 +52,6 @@
</template> </template>
<template #toolbar_tools> </template> <template #toolbar_tools> </template>
<template #empty> <template #empty>
<el-empty :image-size="200" /> <el-empty :image-size="200" />
</template> </template>
<!-- <template #row_avatar="{ row }"> <!-- <template #row_avatar="{ row }">
@ -96,7 +93,6 @@
<el-button icon="ele-Unlock" text type="primary" v-auth="'sysUser/unlockLogin'" @click="handleUnlock(row)">{{ $t('message.list.unlockAccount') }}</el-button> <el-button icon="ele-Unlock" text type="primary" v-auth="'sysUser/unlockLogin'" @click="handleUnlock(row)">{{ $t('message.list.unlockAccount') }}</el-button>
</template> </template>
</vxe-grid> </vxe-grid>
</el-card> </el-card>
</pane> </pane>
</splitpanes> </splitpanes>
@ -177,7 +173,6 @@ const options = useVxeTable<UserOutput>(
{ field: 'record', title: t('message.list.record'), width: 100, showOverflow: 'tooltip', slots: { default: 'row_record' } }, { field: 'record', title: t('message.list.record'), width: 100, showOverflow: 'tooltip', slots: { default: 'row_record' } },
{ field: 'buttons', title: t('message.list.operation'), fixed: 'right', width: 300, showOverflow: true, slots: { default: 'row_buttons' } }, { field: 'buttons', title: t('message.list.operation'), fixed: 'right', width: 300, showOverflow: true, slots: { default: 'row_buttons' } },
], ],
}, },
// vxeGrid()vxe-table // vxeGrid()vxe-table
@ -246,7 +241,6 @@ const handleEdit = (row: any) => {
editUserRef.value?.openDialog(row); editUserRef.value?.openDialog(row);
}; };
// //
const openCopyMenu = (row: any) => { const openCopyMenu = (row: any) => {
state.title = t('message.list.copyAccount'); state.title = t('message.list.copyAccount');
@ -256,14 +250,12 @@ const openCopyMenu = (row: any) => {
editUserRef.value?.openDialog(copyRow); editUserRef.value?.openDialog(copyRow);
}; };
// //
const handleDelete = (row: any) => { const handleDelete = (row: any) => {
ElMessageBox.confirm(t('message.list.confirmDeleteAccount', { account: row.account }), t('message.list.hint'), { ElMessageBox.confirm(t('message.list.confirmDeleteAccount', { account: row.account }), t('message.list.hint'), {
confirmButtonText: t('message.list.confirmButtonText'), confirmButtonText: t('message.list.confirmButtonText'),
cancelButtonText: t('message.list.cancelButtonText'), cancelButtonText: t('message.list.cancelButtonText'),
type: 'warning', type: 'warning',
}) })
.then(async () => { .then(async () => {
await getAPI(SysUserApi).apiSysUserDeletePost({ id: row.id }); await getAPI(SysUserApi).apiSysUserDeletePost({ id: row.id });
@ -271,7 +263,6 @@ const handleDelete = (row: any) => {
ElMessage.success(t('message.list.successDelete')); ElMessage.success(t('message.list.successDelete'));
}) })
.catch(() => {}); .catch(() => {});
}; };
// //
@ -298,7 +289,6 @@ const changeStatus = (row: any) => {
.catch(() => { .catch(() => {
row.status = row.status == 1 ? 2 : 1; row.status = row.status == 1 ? 2 : 1;
}); });
}; };
// //
@ -307,10 +297,6 @@ const resetQueryPwd = async (row: any) => {
confirmButtonText: t('message.list.confirmButtonText'), confirmButtonText: t('message.list.confirmButtonText'),
cancelButtonText: t('message.list.cancelButtonText'), cancelButtonText: t('message.list.cancelButtonText'),
type: 'warning', type: 'warning',
}) })
.then(async () => { .then(async () => {
await getAPI(SysUserApi) await getAPI(SysUserApi)
@ -318,7 +304,6 @@ const resetQueryPwd = async (row: any) => {
.then((res) => { .then((res) => {
ElMessage.success(t('message.list.passwordResetSuccess', { password: res.data.result })); ElMessage.success(t('message.list.passwordResetSuccess', { password: res.data.result }));
}); });
}) })
.catch(() => {}); .catch(() => {});
}; };
@ -329,7 +314,6 @@ const handleUnlock = async (row: any) => {
confirmButtonText: t('message.list.confirmButtonText'), confirmButtonText: t('message.list.confirmButtonText'),
cancelButtonText: t('message.list.cancelButtonText'), cancelButtonText: t('message.list.cancelButtonText'),
type: 'warning', type: 'warning',
}) })
.then(async () => { .then(async () => {
await getAPI(SysUserApi) await getAPI(SysUserApi)
@ -337,7 +321,6 @@ const handleUnlock = async (row: any) => {
.then(() => { .then(() => {
ElMessage.success(t('message.list.unlockSuccess')); ElMessage.success(t('message.list.unlockSuccess'));
}); });
}) })
.catch(() => {}); .catch(() => {});
}; };