GitBucket
4.6.0
Toggle navigation
Sign in
Files
Branches
1
Tags
Issues
Pull Requests
Labels
Milestones
Wiki
08335
/
hivui-platform-template
hivui平台项目模板
Browse code
Merge branch 'master' of http://git.hieap.cn/gitbucket/git/08335/hivui-platform-template
master
commit
d857782a5134a8d8cfe3ff94988e9a66155f4882
2 parents
e2043f6
+
0bf2c76
20278
authored
on 26 Jan 2024
Showing
3 changed files
build/webpack.base.conf.js
project/hivuiBirt/App.vue
project/hivuiMain/lang/def.language
Ignore Space
Show notes
View
build/webpack.base.conf.js
const path = require('path'); var HtmlWebpackPlugin = require('html-webpack-plugin'); const AddAssetHtmlPlugin = require('add-asset-html-webpack-plugin');//------------ const CleanWebpackPlugin = require('clean-webpack-plugin'); const VueLoaderPlugin = require('vue-loader/lib/plugin'); const CopyWebpackPlugin = require('copy-webpack-plugin'); const ProgressBarPlugin = require('progress-bar-webpack-plugin'); // const UglifyJsPlugin = require("uglifyjs-webpack-plugin"); const TerserPlugin = require("terser-webpack-plugin"); const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin"); const webpack = require('webpack'); const threadLoader = require('thread-loader'); const packageConfig = require('../package.json'); const utils = require('./utils') const vueLoaderConfig = require('./vue-loader.conf') let evnConfig = require('./getEnvVar') // HappyPack // 原理:每次 webapck 解析一个模块时,HappyPack 会将它及它的依赖分配到worker线程中。 // 提示:由于HappyPack 对file-loader、url-loader 支持的不友好,所以不建议对该loader使用。 // 引入 Happpack 可以在 package.json 找到你下载的 const HappyPack = require('happypack'); // 安装 OS 模块 这个主要是拿到当前电脑的CPU核数 const os = require('os'); /* 这个是设置共享线程池中的数量 size 控制设置数量 类型 只能是 整数类型 */ const cpus = os.cpus().length; const happyThreadPool = HappyPack.ThreadPool({ size: cpus>1?cpus-1:1 });// os.cpus().length 不能开最大 // const happyThreadPool = HappyPack.ThreadPool({ size: 1 });//os.cpus().length 不能开最大 let threadCfg = { loader: "thread-loader", // 有同样配置的 loader 会共享一个 worker 池(worker pool) options: { // 产生的 worker 的数量,默认是 cpu 的核心数 // workers: Math.floor(cpus / 2) || 1, // 一个 worker 进程中并行执行工作的数量 // 默认为 20 workerParallelJobs: 50, // 额外的 node.js 参数 // workerNodeArgs: ['--max-old-space-size', '1024'], // 闲置时定时删除 worker 进程 // 默认为 500ms // 可以设置为无穷大, 这样在监视模式(--watch)下可以保持 worker 持续存在 poolTimeout: 2000, // 池(pool)分配给 worker 的工作数量 // 默认为 200 // 降低这个数值会降低总体的效率,但是会提升工作分布更均一 poolParallelJobs: 50, // 池(pool)的名称 // 可以修改名称来创建其余选项都一样的池(pool) // name: "my-pool" } }; let projectName = packageConfig.name == 'hi-vui-template' ? 'project' : packageConfig.name; module.exports = { // entry: { // 'login': ['babel-polyfill', './project/hivuiLogin/index.js'], // 'main': ['babel-polyfill','./project/hivuiMain/index.js'] // }, // output: { // filename: '[name].[contenthash].js', // chunkFilename: '[name].[contenthash].js', // path: path.resolve(__dirname, 'dist') // }, //去除 node 系统模块不引用 node: { fs: 'empty', net:'empty', tls:'empty', }, stats: { assets: true, warnings: true, errors: true, errorDetails: true, performance: true, modules: false, colors: true }, resolve: { extensions: ['.js', '.jsx', '.vue', '.json', '.dtvevt', '.dvue','.es6'], alias: { 'vue$': 'vue/dist/vue.esm.js', 'vuex$': 'vuex/dist/vuex.esm.js', '@': path.resolve(__dirname, `${projectName}`), '@main': path.resolve(__dirname, `../${projectName}/hivuiMain`), // '@': path.resolve(__dirname, 'src'), '@birt':path.resolve(__dirname, `../${projectName}/hivuiBirt`), 'pinyin': 'js-pinyin', //这里单独对 vue-video-player中组件引用video.js 编译不过的问题做映射 'videojs': 'video.js' } }, externals: { 'vue': 'Vue', 'vuex': 'Vuex', 'vue-router': 'VueRouter', "element-ui": "ELEMENT", }, module: { rules: [ ...(utils.styleLoaders({ sourceMap: false, extract: process.env.NODE_ENV === 'production', usePostCSS: true })), { test: /\.(js|jsx|dtvevt?|babel|es6)$/, loader: 'happypack/loader?id=happy_js_jsx', // use:[threadCfg,'babel-loader'] // loader: 'babel-loader', // exclude: [path.resolve(__dirname, 'node_modules')]//放开,里头有些也是 可选链操作符 }, { test: /\.(vue|dvue)$/, loader: 'vue-loader', // use:[{ // loader: "vue-loader", // options: vueLoaderConfig // }], }, { test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, loader: 'url-loader', options: { limit: 10000, name: '[name].[hash:7].[ext]', // 注释下面,统一用,output.publicPath 配置,这样打包放在服务器上是绝对路径 // publicPath: "../img/", //替换CSS引用的图片路径 可以替换成爱拍云上的路径 outputPath: "static/img/" //生成之后存放的路径 } }, { test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, loader: 'url-loader', options: { limit: 10000, name: '[name].[hash:7].[ext]', // 注释下面,统一用,output.publicPath 配置,这样打包放在服务器上是绝对路径 // publicPath: "../img/", //替换CSS引用的图片路径 可以替换成爱拍云上的路径 outputPath: "static/media/" //生成之后存放的路径 } }, { test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, loader: 'url-loader', options: { limit: 10000, name: '[name].[hash:7].[ext]', // 注释下面,统一用,output.publicPath 配置,这样打包放在服务器上是绝对路径 // publicPath: "../fonts/", //替换CSS引用的图片路径 可以替换成爱拍云上的路径 outputPath: "static/fonts/" //生成之后存放的路径 } } ] }, optimization: { minimizer: [ // new UglifyJsPlugin({ // cache: true, // parallel: true, // sourceMap: true // }), new TerserPlugin({ parallel: false, //使用多进程并发运行 }), new OptimizeCSSAssetsPlugin({ cssProcessor: require('cssnano'), cssProcessorPluginOptions: { preset: ['default', { discardComments: { removeAll: true } }], }, canPrint: false }) ], runtimeChunk: { "name": "manifest" }, splitChunks: { // chunks: 'all', // 将代码拆分到所有的 chunk 中,包括同步和异步导入的模块 // minSize: 30000, // 模块的最小大小,只有大于这个值的模块才会被拆分 // maxSize: 0, // 模块的最大大小,设置为 0 表示没有限制 // //minChunks: 1, // 至少被引用次数超过这个值的模块才会被拆分 // maxAsyncRequests: 5, // 按需加载的模块,最大的并行请求数 // maxInitialRequests: 3, // 入口点处的最大并行请求数 // automaticNameDelimiter: '~', // 文件名的连接符 // name: true, // 允许使用命名规则 cacheGroups: { default: false, vendors: false, vendor: { test: /[\\/]node_modules[\\/]/, name: 'vendors', chunks: 'all', minSize: 200 * 1024, // 设置最大的文件大小为500KB maxSize: 800 * 1024 // 设置最大的文件大小为500KB } }, }, /*splitChunks: { cacheGroups: { default: false, vendors: false, vendor: { test: /[\\/]node_modules[\\/]/, name: 'vendors', chunks: 'all' } } }*/ }, plugins: [ new VueLoaderPlugin(), new HappyPack({ id: 'happy_js_jsx', verbose:false,//不输出日志 verboseWhenProfiling:true,//输出webpack日志 //共享进程池 threadPool: happyThreadPool, loaders: ['babel-loader'] }), new webpack.HashedModuleIdsPlugin(), new ProgressBarPlugin(), // new CleanWebpackPlugin(['dist']), //注入全局变量的插件,通常使用该插件来判别代码运行的环境变量 new webpack.DefinePlugin({ 'process.env': evnConfig }), new webpack.DllReferencePlugin({ context: path.resolve(__dirname), manifest: require('../assets_platform/vendor_dll/vendor-manifest.json') }), //这个主要是将生成的vendor.dll.js文件加上hash值插入到页面中。[也可以手动写到html这里不做处理] // new AddAssetHtmlPlugin([{ // filepath: path.resolve(__dirname, 'js_dll/comm_vendors.dll.js'), // outputPath: 'js_dll/', // publicPath: 'js_dll/', // includeSourcemap: false, // hash: true, // }]), // new CopyWebpackPlugin([ // { // from: path.resolve(__dirname, 'assets_platform'), // to: path.resolve(__dirname, 'dist/assets_platform') // }, // // { // // from: path.resolve(__dirname, 'js_dll'), // // to: path.resolve(__dirname, 'dist') // // } // ]) ] };
const path = require('path'); var HtmlWebpackPlugin = require('html-webpack-plugin'); const AddAssetHtmlPlugin = require('add-asset-html-webpack-plugin');//------------ const CleanWebpackPlugin = require('clean-webpack-plugin'); const VueLoaderPlugin = require('vue-loader/lib/plugin'); const CopyWebpackPlugin = require('copy-webpack-plugin'); const ProgressBarPlugin = require('progress-bar-webpack-plugin'); // const UglifyJsPlugin = require("uglifyjs-webpack-plugin"); const TerserPlugin = require("terser-webpack-plugin"); const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin"); const webpack = require('webpack'); const threadLoader = require('thread-loader'); const packageConfig = require('../package.json'); const utils = require('./utils') const vueLoaderConfig = require('./vue-loader.conf') let evnConfig = require('./getEnvVar') // HappyPack // 原理:每次 webapck 解析一个模块时,HappyPack 会将它及它的依赖分配到worker线程中。 // 提示:由于HappyPack 对file-loader、url-loader 支持的不友好,所以不建议对该loader使用。 // 引入 Happpack 可以在 package.json 找到你下载的 const HappyPack = require('happypack'); // 安装 OS 模块 这个主要是拿到当前电脑的CPU核数 const os = require('os'); /* 这个是设置共享线程池中的数量 size 控制设置数量 类型 只能是 整数类型 */ const cpus = os.cpus().length; const happyThreadPool = HappyPack.ThreadPool({ size: cpus>1?cpus-1:1 });// os.cpus().length 不能开最大 // const happyThreadPool = HappyPack.ThreadPool({ size: 1 });//os.cpus().length 不能开最大 let threadCfg = { loader: "thread-loader", // 有同样配置的 loader 会共享一个 worker 池(worker pool) options: { // 产生的 worker 的数量,默认是 cpu 的核心数 // workers: Math.floor(cpus / 2) || 1, // 一个 worker 进程中并行执行工作的数量 // 默认为 20 workerParallelJobs: 50, // 额外的 node.js 参数 // workerNodeArgs: ['--max-old-space-size', '1024'], // 闲置时定时删除 worker 进程 // 默认为 500ms // 可以设置为无穷大, 这样在监视模式(--watch)下可以保持 worker 持续存在 poolTimeout: 2000, // 池(pool)分配给 worker 的工作数量 // 默认为 200 // 降低这个数值会降低总体的效率,但是会提升工作分布更均一 poolParallelJobs: 50, // 池(pool)的名称 // 可以修改名称来创建其余选项都一样的池(pool) // name: "my-pool" } }; let projectName = packageConfig.name == 'hi-vui-template' ? 'project' : packageConfig.name; module.exports = { // entry: { // 'login': ['babel-polyfill', './project/hivuiLogin/index.js'], // 'main': ['babel-polyfill','./project/hivuiMain/index.js'] // }, // output: { // filename: '[name].[contenthash].js', // chunkFilename: '[name].[contenthash].js', // path: path.resolve(__dirname, 'dist') // }, //去除 node 系统模块不引用 node: { fs: 'empty', net:'empty', tls:'empty', }, stats: { assets: true, warnings: true, errors: true, errorDetails: true, performance: true, modules: false, colors: true }, resolve: { extensions: ['.js', '.jsx', '.vue', '.json', '.dtvevt', '.dvue','.es6'], alias: { 'vue$': 'vue/dist/vue.esm.js', 'vuex$': 'vuex/dist/vuex.esm.js', '@': path.resolve(__dirname, `${projectName}`), '@main': path.resolve(__dirname, `../${projectName}/hivuiMain`), // '@': path.resolve(__dirname, 'src'), '@birt':path.resolve(__dirname, `../${projectName}/hivuiBirt`), 'pinyin': 'js-pinyin', //这里单独对 vue-video-player中组件引用video.js 编译不过的问题做映射 'videojs': 'video.js' } }, externals: { 'vue': 'Vue', 'vuex': 'Vuex', 'vue-router': 'VueRouter', "element-ui": "ELEMENT", }, module: { rules: [ ...(utils.styleLoaders({ sourceMap: false, extract: process.env.NODE_ENV === 'production', usePostCSS: true })), { test: /\.(js|jsx|dtvevt?|babel|es6)$/, loader: 'happypack/loader?id=happy_js_jsx', // use:[threadCfg,'babel-loader'] // loader: 'babel-loader', // exclude: [path.resolve(__dirname, 'node_modules')]//放开,里头有些也是 可选链操作符 }, { test: /\.(vue|dvue)$/, loader: 'vue-loader', // use:[{ // loader: "vue-loader", // options: vueLoaderConfig // }], }, { test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, loader: 'url-loader', options: { limit: 10000, name: '[name].[hash:7].[ext]', // 注释下面,统一用,output.publicPath 配置,这样打包放在服务器上是绝对路径 // publicPath: "../img/", //替换CSS引用的图片路径 可以替换成爱拍云上的路径 outputPath: "static/img/" //生成之后存放的路径 } }, { test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, loader: 'url-loader', options: { limit: 10000, name: '[name].[hash:7].[ext]', // 注释下面,统一用,output.publicPath 配置,这样打包放在服务器上是绝对路径 // publicPath: "../img/", //替换CSS引用的图片路径 可以替换成爱拍云上的路径 outputPath: "static/media/" //生成之后存放的路径 } }, { test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, loader: 'url-loader', options: { limit: 10000, name: '[name].[hash:7].[ext]', // 注释下面,统一用,output.publicPath 配置,这样打包放在服务器上是绝对路径 // publicPath: "../fonts/", //替换CSS引用的图片路径 可以替换成爱拍云上的路径 outputPath: "static/fonts/" //生成之后存放的路径 } } ] }, optimization: { minimizer: [ // new UglifyJsPlugin({ // cache: true, // parallel: true, // sourceMap: true // }), new TerserPlugin({ parallel: false, //使用多进程并发运行 }), new OptimizeCSSAssetsPlugin({ cssProcessor: require('cssnano'), cssProcessorPluginOptions: { preset: ['default', { discardComments: { removeAll: true } }], }, canPrint: false }) ], runtimeChunk: { "name": "manifest" }, splitChunks: { cacheGroups: { default: false, vendors: false, vendor: { test: /[\\/]node_modules[\\/]/, name: 'vendors', chunks: 'all' } } } }, plugins: [ new VueLoaderPlugin(), new HappyPack({ id: 'happy_js_jsx', verbose:false,//不输出日志 verboseWhenProfiling:true,//输出webpack日志 //共享进程池 threadPool: happyThreadPool, loaders: ['babel-loader'] }), new webpack.HashedModuleIdsPlugin(), new ProgressBarPlugin(), // new CleanWebpackPlugin(['dist']), //注入全局变量的插件,通常使用该插件来判别代码运行的环境变量 new webpack.DefinePlugin({ 'process.env': evnConfig }), new webpack.DllReferencePlugin({ context: path.resolve(__dirname), manifest: require('../assets_platform/vendor_dll/vendor-manifest.json') }), //这个主要是将生成的vendor.dll.js文件加上hash值插入到页面中。[也可以手动写到html这里不做处理] // new AddAssetHtmlPlugin([{ // filepath: path.resolve(__dirname, 'js_dll/comm_vendors.dll.js'), // outputPath: 'js_dll/', // publicPath: 'js_dll/', // includeSourcemap: false, // hash: true, // }]), // new CopyWebpackPlugin([ // { // from: path.resolve(__dirname, 'assets_platform'), // to: path.resolve(__dirname, 'dist/assets_platform') // }, // // { // // from: path.resolve(__dirname, 'js_dll'), // // to: path.resolve(__dirname, 'dist') // // } // ]) ] };
Ignore Space
Show notes
View
project/hivuiBirt/App.vue
<script> // import HcPage from "./components/Birt/Page"; // import { BirtModelFactory } from "./templates/BirtModelFactory"; import cmps from 'zhc-birt-cmps' import { LoadUtil } from "./funclib/LoadUtil"; import { getToken } from "./utils/auth"; // import { Tool } from "./funclib/Tool"; import { projectName, requestUrl } from "@birt/config"; // import 'echarts-liquidfill/src/liquidFill.js' export default { extends: cmps.BirtPage, data() { return { birtModel: {}, VUE_APP_BASE_API: requestUrl, pn: projectName || "birt", }; }, watch: { // $route() { // this.loadBirtModel(this.$route.path); // }, }, methods: { // 动态加载报表模型方法 birtModelMethod(routePath, birtModelMethod, scope) { return new Promise((resolve, reject) => { let me = this; let token = getToken(); // let token = '3d3fe30c-3d99-41e8-9aea-addd8528aa07' // let vId = this.getQueryVariable('viewItemId') let vId = window.scpRequestData && window.scpRequestData.__viewItemId LoadUtil.loadJsBirtModel({ loadModelUrl: this.$HI.birtModel, routePath: routePath, token: token, pn: this.pn, vId: vId }) .then(() => { try { if(!window.getBirtModel){ me.$message.warning("model1接口未响应,请稍等") return } let birtModel = cmps.BirtModelFactory.buildModel( getBirtModel(scope || me, cmps.Tool),scope || me ); if(birtModel.css){ let css = birtModel.css if(Array.isArray(css) && css.length > 0){ css.forEach(c =>{ LoadUtil.loadCss(c) }) } if(typeof css == 'string'){ LoadUtil.loadCss(css) } } birtModel.token = token; birtModel.birtModelMethod = birtModelMethod; resolve(birtModel); } catch (e) { console.error(e); } }) .catch(() => { reject(); }); }); }, loadBirtModel(routePath) { return new Promise((resolve, reject) => { let me = this; this.birtModelMethod(routePath, this.birtModelMethod) .then((birtModel) => { me.birtModel = birtModel; /** *网络环境比较差的情况下,打开查找定义model1接口未响应时, 再次打开查找定义弹框,会应用已加载的getBirtModel, 导致打开的弹框显示的是上个model1加载的页面,故这边删去挂载在window的getBirtModel方法 * */ me.$nextTick(() =>{ if(window.getBirtModel){ window.getBirtModel = undefined } }) me.applyRouteParam(); me.setWorkBookParam(); resolve(); }) .catch(() => { reject(); }); }); }, // 获取地址栏参数 getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split("="); if (pair[0] == variable) { return pair[1]; } } return false; }, _needsDecodeURI(str) { // 使用正则表达式检查字符串是否包含%字符 return /%[0-9A-F]{2}/i.test(str); }, }, mounted() { var path = window.location.pathname; // 编译后多e5 if (window.HIVUI_SETTING) { var serverName = window.HIVUI_SETTING.serverName; if (serverName && path.startsWith(serverName)) { path = path.substring(serverName.length); } } var __push = window && window.scpRequestData && window.scpRequestData.__push if(__push){ if (this._needsDecodeURI(__push)) { __push = decodeURI(__push); } this.param["__push"] = JSON.parse(__push); } // var _push = window.scpRequestData // var path = '/platf/user-info/func/query.func' this.loadBirtModel(path).then(() => { // if (path == "/platf/permission/func/assign.func") this.getOrgData(-1); // else if (path == "/platf/permission/func/modify.func") // this.getOrgDataM(-1); }); }, }; </script> <style> html,body{ height: 100%; } </style>
<script> // import HcPage from "./components/Birt/Page"; // import { BirtModelFactory } from "./templates/BirtModelFactory"; import cmps from 'zhc-birt-cmps' import { LoadUtil } from "./funclib/LoadUtil"; import { getToken } from "./utils/auth"; // import { Tool } from "./funclib/Tool"; import { projectName, requestUrl } from "@birt/config"; // import 'echarts-liquidfill/src/liquidFill.js' export default { extends: cmps.BirtPage, data() { return { birtModel: {}, VUE_APP_BASE_API: requestUrl, pn: projectName || "birt", }; }, watch: { // $route() { // this.loadBirtModel(this.$route.path); // }, }, methods: { // 动态加载报表模型方法 birtModelMethod(routePath, birtModelMethod, scope) { return new Promise((resolve, reject) => { let me = this; let token = getToken(); // let token = '3d3fe30c-3d99-41e8-9aea-addd8528aa07' // let vId = this.getQueryVariable('viewItemId') let vId = window.scpRequestData && window.scpRequestData.__viewItemId LoadUtil.loadJsBirtModel({ loadModelUrl: this.$HI.birtModel, routePath: routePath, token: token, pn: this.pn, vId: vId }) .then(() => { try { let birtModel = cmps.BirtModelFactory.buildModel( getBirtModel(scope || me, cmps.Tool),scope || me ); if(birtModel.css){ let css = birtModel.css if(Array.isArray(css) && css.length > 0){ css.forEach(c =>{ LoadUtil.loadCss(c) }) } if(typeof css == 'string'){ LoadUtil.loadCss(css) } } birtModel.token = token; birtModel.birtModelMethod = birtModelMethod; resolve(birtModel); } catch (e) { console.error(e); } }) .catch(() => { reject(); }); }); }, loadBirtModel(routePath) { return new Promise((resolve, reject) => { let me = this; this.birtModelMethod(routePath, this.birtModelMethod) .then((birtModel) => { debugger; me.birtModel = birtModel; console.log("birtModel", birtModel); me.applyRouteParam(); me.setWorkBookParam(); resolve(); }) .catch(() => { reject(); }); }); }, // 获取地址栏参数 getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split("="); if (pair[0] == variable) { return pair[1]; } } return false; }, _needsDecodeURI(str) { // 使用正则表达式检查字符串是否包含%字符 return /%[0-9A-F]{2}/i.test(str); }, }, mounted() { var path = window.location.pathname; // 编译后多e5 if (window.HIVUI_SETTING) { var serverName = window.HIVUI_SETTING.serverName; if (serverName && path.startsWith(serverName)) { path = path.substring(serverName.length); } } var __push = window && window.scpRequestData && window.scpRequestData.__push if(__push){ if (this._needsDecodeURI(__push)) { __push = decodeURI(__push); } this.param["__push"] = JSON.parse(__push); } // var _push = window.scpRequestData // var path = '/platf/user-info/func/query.func' this.loadBirtModel(path).then(() => { // if (path == "/platf/permission/func/assign.func") this.getOrgData(-1); // else if (path == "/platf/permission/func/modify.func") // this.getOrgDataM(-1); }); }, }; </script> <style> html,body{ height: 100%; } </style>
Ignore Space
Show notes
View
project/hivuiMain/lang/def.language
hivuiMain_sysInit=系统初始化中... hivuiMain_clickRefresh=【点我刷新】 hivuiMain_recentlyUsed=最近使用 hivuiMain_projectManage=项目管理 hivuiMain_allFunction=全部功能 hivuiMain_nodata=暂无数据 hivuiMain_searchKey=搜索关键字 hivuiMain_customWorkbench=自定义工作台 hivuiMain_logout=退出系统 hivuiMain_sysLoading=系统加载中... hivuiMain_loadedFailClickRefresh=加载失败,点我重试! hivuiMain_dialog_cancel=取消 hivuiMain_dialog_define=确定 hivuiMain_dialog_def_title=提示 hivuiMain_portal_text=暂无功能权限! hivuiMain_tab_ctxmenu_refresh=刷新 hivuiMain_tab_ctxmenu_close=关闭 hivuiMain_tab_ctxmenu_closeleft=关闭左侧 hivuiMain_tab_ctxmenu_closeright=关闭右侧 hivuiMain_tab_ctxmenu_closeother=关闭其它 hivuiMain_tab_ctxmenu_closeall=关闭所有 hivuiMain_tab_ctxmenu_fullscreen=全屏 hivuiMain_tab_ctxmenu_blankPage=新窗口打开 hivuiMain_tab_scroll_lt=左边滚动 hivuiMain_tab_scroll_rt=右边滚动 hivuiMain_tab_scroll_more=更多 hivuiMain_store_msg1=获取 hivuiMain_store_msg2=失败, hivuiMain_store_msg3=点我重试! hivuiMain_store_sysmenu=系统菜单 hivuiMain_store_userinfo=用户信息 hivuiMain_store_bzlist=多岗信息 hivuiMain_store_lately=最近使用功能 hivuiMain_allfuncmenu_text=请输入关键词 hivuiMain_modifypw_title=修改密码 hivuiMain_modifypw_oldpw=旧密码: hivuiMain_modifypw_oldpw=请输入旧密码 hivuiMain_modifypw_newpw=新密码: hivuiMain_modifypw_newpw_ph=请输入4-25个数字、字母或符号组合 hivuiMain_modifypw_valid_pw2_msg=两次输入密码不一致! hivuiMain_modifypw_valid_pw_empty=请输入新密码! hivuiMain_modifypw_valid_pw2_empty=请再次输入新密码! hivuiMain_modifypw_valid_pw2_empty2=请再次输入密码! hivuiMain_modifypw_newpw2=确认新密码: hivuiMain_modifypw_newpw2_ph=再次确认新密码 hivuiMain_modifypw_weak=弱 hivuiMain_modifypw_middle=中 hivuiMain_modifypw_strong=高 hivuiMain_modifypw_success=修改成功!请重新登录 hivuiMain_header_null=空 hivuiMain_header_notification_title=消息提示 hivuiMain_header_bzhoverbtn_title=设为主岗 hivuiMain_header_bzchooseIcon_title=当前主岗 hivuiMain_taskcenter_untreated=未处理 hivuiMain_app_user=用户编号 hivuiMain_app_orgbz=岗位编制 hivuiMain_app_orgname=机构名称 hivuiMain_app_rolename=岗位名称 hivuiMain_app_personal_Center=个人中心 hivuiMain_app_modifyPw=修改密码 hivuiMain_des_title=门户自定义 hivuiMain_des_setHeight=设置高度 hivuiMain_des_dragOrderFlag=拖动排序标识 hivuiMain_des_cancel=取消 hivuiMain_des_ok=确定 hivuiMain_des_editSerialRowLayout=确定 hivuiMain_des_serialRowLayout=第{0}行布局 hivuiMain_des_addColunms=添加门户栏目 hivuiMain_des_dragInArea=拖入此区 hivuiMain_des_save=保存 hivuiMain_des_columnLayout=栏目布局 hivuiMain_des_selectTemplate=选择模板 hivuiMain_des_addSingleLine=添加单行 hivuiMain_des_demoLayoutTip=选择以下模板,拖拽添加至内容区 hivuiMain_des_row24=一行一栏 hivuiMain_des_rowAvg2=两栏均分 hivuiMain_des_row8_16=一行两栏 hivuiMain_des_rowAvg3=三栏均分 hivuiMain_des_rowAvg4=一行四栏 hivuiMain_des_customLayoutTip=自定义分栏数值,数字总和须为24,以空格分隔,点击任意位置确认 hivuiMain_des_custom=自定义 hivuiMain_des_spaceSeparate=数值以[空格]隔开 hivuiMain_des_saving=保存中... hivuiMain_des_saveSuc=保存成功! hivuiMain_des_saveError=保存出错! hivuiMain_app_user=用户 hivuiMain_app_orgbz=岗编 hivuiMain_eap_msgTips=消息提示 hivuiMain_eap_define=确定 hivuiMain_eap_showErrorDetail=弹出报错详情 hivuiMain_eap_hideErrorDetail=收起报错详情 hivuiMain_eap_noPermissionTips=你已被登出,请重新登录 hivuiMain_eap_timeOut=登录超时 hivuiMain_eap_Relist=重新登录 hivuiMain_eap_responseNull=后端请求返回出错,请联系开发人员 hivuiMain_main_bz=主岗 hivuiMain_validate_FMBPHONE=电话号码格式有误 hivuiMain_validate_FEMAIL=邮箱地址格式有误 hivuiMain_validate_FIDCARD=身份证号格式有误 customSysCfg_taskcenter=任务中心 customSysCfg_mainpage=首页 customSysCfg_layout=布局 customSysCfg_updownlayout=上下布局 customSysCfg_leftrightlayout=左右布局 customSysCfg_messagecenter=消息中心 customSysCfg_unreadmessage=您有{0}条未读消息 customSysCfg_companyname=中海创科技 customSysCfg_copyright=版权所有 © 2020-2025 中海创科技 customSysCfg_pageTitle=中海创主页 hivuiMain_personalCenter_name=姓名 hivuiMain_personalCenter_sex=性别 hivuiMain_personalCenter_birthday=出生年月 hivuiMain_personalCenter_mbphone=手机号码 hivuiMain_personalCenter_email=邮箱 hivuiMain_personalCenter_WeChat=微信 hivuiMain_personalCenter_usersfz=身份证号 hivuiMain_personalCenter_address=地址 hivuiMain_personalCenter_male=男 hivuiMain_personalCenter_female=女 hivuiMain_personalCenter_editTips=修改成功 hi_messagebox_title=提示 hi_messagebox_confirm=确定 hi_messagebox_cancel=取消 hi_monitor_approvalRecord=审批记录 hi_monitor_flow=流程 hi_monitor_displayname=流程名称 hi_monitor_ordernumber=流程编号 hi_monitor_createtime=创建时间 hi_monitor_finishtime=完成时间 hi_monitor_flowstate=流程状态 hi_monitor_finish=已完成 hi_monitor_taskname=任务名称 hi_monitor_noReceived=未接收 hi_monitor_timeConsuming=耗时 hi_monitor_approver=审批人 hi_monitor_processingStatus=处理状态 hi_monitor_processe=需处理 hi_monitor_postscript=附言 hi_monitor_flowchart=流程图 hi_monitor_gantt=甘特图 hi_monitor_processed=已处理 hi_monitor_back=回退 hi_monitor_sysAuto=系统自动流转 hi_monitor_terminate=终止 hi_monitor_cancel=取消 hi_monitor_transfer=转办 hi_monitor_taskWithdraw=任务撤回 hi_monitor_tsBeforSigning=前加签中 hi_monitor_tsAfterSigning=后加签中 hi_monitor_tsBeforSignDW=前加签处理 hi_monitor_tsAfterSignDW=后加签处理 hi_monitor_tsBeforSigned=已前加签 hi_monitor_tsAfterSigned=已后加签 hi_monitor_day=天 hi_monitor_hour=小时 hi_monitor_Min=分 hi_monitor_second=秒 hi_monitor_gantt_dept=所属部门 hi_monitor_gantt_role=岗位职称 hi_taskcenter_myTasks=我的任务 hi_taskcenter_query=查询 hi_taskcenter_reset=重置 hi_taskcenter_operate=操作 hi_taskcenter_batchProcessing=批处理 hi_taskcenter_flowOut=流转 hi_taskcenter_flowBack=回退 hi_taskcenter_process=处理 hi_taskcenter_view=查看 hi_taskcenter_fwithdraw=撤回 hi_taskcenter_originator=发起人 hi_taskcenter_approver=审批人 hi_taskcenter_urgent=急 hi_taskcenter_back=退 hi_taskcenter_summary=流程摘要 hi_taskcenter_summaryinfo=流程摘要信息 hi_taskcenter_task=任务 hi_taskcenter_createtime=创建时间 hi_taskcenter_finishtime=完成时间 hi_taskcenter_monitor=流程监控 hi_taskcenter_batchTitle=任务批处理({0}) hi_taskcenter_batchtip=任务正在处理中{0}/{1},已成功{2}个,失败{3}个。 hi_taskcenter_number=单号 hi_taskcenter_flowname=流程名称 hi_taskcenter_taskname=任务名称 hi_taskcenter_detailMsg=处理结果 hi_taskcenter_untreated=未处理 hi_taskcenter_processed=已处理 hi_taskcenter_completed=已完成 hi_taskcenter_displayname=环节名称 hi_taskcenter_fordernumber=流程单号 hi_taskcenter_fusername=编制ID hi_taskcenter_withdrawinfo=是否撤回任务? hi_taskcenter_taskWithdrawsuccess=任务撤回成功! hi_taskcenter_confirmtitle=确认信息 hi_taskcenter_processSuccess=处理成功 hi_taskcenter_oneselect=请至少选择一条单据! hivuiMain_errorPage4xx=抱歉,文件请求出错了 hivuiMain_errorPage5xx=抱歉,服务器出错了 hivuiMain_errorPage401=抱歉,该页面暂无权限 hivuiMain_errorPage404=抱歉,您访问的页面不存在 hivuiMain_errorPage500=抱歉,服务器出错了
hivuiMain_sysInit=系统初始化中... hivuiMain_clickRefresh=【点我刷新】 hivuiMain_recentlyUsed=最近使用 hivuiMain_projectManage=项目管理 hivuiMain_allFunction=全部功能 hivuiMain_nodata=暂无数据 hivuiMain_searchKey=搜索关键字 hivuiMain_customWorkbench=自定义工作台 hivuiMain_logout=退出系统 hivuiMain_sysLoading=系统加载中... hivuiMain_loadedFailClickRefresh=加载失败,点我重试! hivuiMain_dialog_cancel=取消 hivuiMain_dialog_define=确定 hivuiMain_dialog_def_title=提示 hivuiMain_portal_text=暂无功能权限! hivuiMain_tab_ctxmenu_refresh=刷新 hivuiMain_tab_ctxmenu_close=关闭 hivuiMain_tab_ctxmenu_closeleft=关闭左侧 hivuiMain_tab_ctxmenu_closeright=关闭右侧 hivuiMain_tab_ctxmenu_closeother=关闭其它 hivuiMain_tab_ctxmenu_closeall=关闭所有 hivuiMain_tab_ctxmenu_fullscreen=全屏 hivuiMain_tab_ctxmenu_blankPage=新窗口打开 hivuiMain_tab_scroll_lt=左边滚动 hivuiMain_tab_scroll_rt=右边滚动 hivuiMain_tab_scroll_more=更多 hivuiMain_store_msg1=获取 hivuiMain_store_msg2=失败, hivuiMain_store_msg3=点我重试! hivuiMain_store_sysmenu=系统菜单 hivuiMain_store_userinfo=用户信息 hivuiMain_store_bzlist=多岗信息 hivuiMain_store_lately=最近使用功能 hivuiMain_allfuncmenu_text=请输入关键词 hivuiMain_modifypw_title=修改密码 hivuiMain_modifypw_oldpw=旧密码: hivuiMain_modifypw_oldpw=请输入旧密码 hivuiMain_modifypw_newpw=新密码: hivuiMain_modifypw_newpw_ph=请输入4-25个数字、字母或符号组合 hivuiMain_modifypw_valid_pw2_msg=两次输入密码不一致! hivuiMain_modifypw_valid_pw_empty=请输入新密码! hivuiMain_modifypw_valid_pw2_empty=请再次输入新密码! hivuiMain_modifypw_valid_pw2_empty2=请再次输入密码! hivuiMain_modifypw_newpw2=确认新密码: hivuiMain_modifypw_newpw2_ph=再次确认新密码 hivuiMain_modifypw_weak=弱 hivuiMain_modifypw_middle=中 hivuiMain_modifypw_strong=高 hivuiMain_modifypw_success=修改成功!请重新登录 hivuiMain_header_null=空 hivuiMain_header_notification_title=消息提示 hivuiMain_header_bzhoverbtn_title=设为主岗 hivuiMain_header_bzchooseIcon_title=当前主岗 hivuiMain_taskcenter_untreated=未处理 hivuiMain_app_user=用户编号 hivuiMain_app_orgbz=岗位编制 hivuiMain_app_orgname=机构名称 hivuiMain_app_rolename=岗位名称 hivuiMain_app_personal_Center=个人中心 hivuiMain_app_modifyPw=修改密码 hivuiMain_des_title=门户自定义 hivuiMain_des_setHeight=设置高度 hivuiMain_des_dragOrderFlag=拖动排序标识 hivuiMain_des_cancel=取消 hivuiMain_des_ok=确定 hivuiMain_des_editSerialRowLayout=确定 hivuiMain_des_serialRowLayout=第{0}行布局 hivuiMain_des_addColunms=添加门户栏目 hivuiMain_des_dragInArea=拖入此区 hivuiMain_des_save=保存 hivuiMain_des_columnLayout=栏目布局 hivuiMain_des_selectTemplate=选择模板 hivuiMain_des_addSingleLine=添加单行 hivuiMain_des_demoLayoutTip=选择以下模板,拖拽添加至内容区 hivuiMain_des_row24=一行一栏 hivuiMain_des_rowAvg2=两栏均分 hivuiMain_des_row8_16=一行两栏 hivuiMain_des_rowAvg3=三栏均分 hivuiMain_des_rowAvg4=一行四栏 hivuiMain_des_customLayoutTip=自定义分栏数值,数字总和须为24,以空格分隔,点击任意位置确认 hivuiMain_des_custom=自定义 hivuiMain_des_spaceSeparate=数值以[空格]隔开 hivuiMain_des_saving=保存中... hivuiMain_des_saveSuc=保存成功! hivuiMain_des_saveError=保存出错! hivuiMain_app_user=用户 hivuiMain_app_orgbz=岗编 hivuiMain_eap_msgTips=消息提示 hivuiMain_eap_define=确定 hivuiMain_eap_showErrorDetail=弹出报错详情 hivuiMain_eap_hideErrorDetail=收起报错详情 hivuiMain_eap_noPermissionTips=你已被登出,请重新登录 hivuiMain_eap_timeOut=登录超时 hivuiMain_eap_Relist=重新登录 hivuiMain_eap_responseNull=后端请求返回出错,请联系开发人员 hivuiMain_main_bz=主岗 hivuiMain_validate_FMBPHONE=电话号码格式有误 hivuiMain_validate_FEMAIL=邮箱地址格式有误 hivuiMain_validate_FIDCARD=身份证号格式有误 customSysCfg_taskcenter=任务中心 customSysCfg_mainpage=首页 customSysCfg_layout=布局 customSysCfg_updownlayout=上下布局 customSysCfg_leftrightlayout=左右布局 customSysCfg_messagecenter=消息中心 customSysCfg_unreadmessage=您有{0}条未读消息 customSysCfg_companyname=中海创科技 customSysCfg_copyright=版权所有 © 2020-2025 中海创科技 customSysCfg_pageTitle=中海创主页 hivuiMain_personalCenter_sex=性别 hivuiMain_personalCenter_birthday=出生年月 hivuiMain_personalCenter_mbphone=手机号码 hivuiMain_personalCenter_email=邮箱 hivuiMain_personalCenter_WeChat=微信 hivuiMain_personalCenter_usersfz=身份证号 hivuiMain_personalCenter_address=地址 hivuiMain_personalCenter_male=男 hivuiMain_personalCenter_female=女 hivuiMain_personalCenter_editTips=修改成功 hi_messagebox_title=提示 hi_messagebox_confirm=确定 hi_messagebox_cancel=取消 hi_monitor_approvalRecord=审批记录 hi_monitor_flow=流程 hi_monitor_displayname=流程名称 hi_monitor_ordernumber=流程编号 hi_monitor_createtime=创建时间 hi_monitor_finishtime=完成时间 hi_monitor_flowstate=流程状态 hi_monitor_finish=已完成 hi_monitor_taskname=任务名称 hi_monitor_noReceived=未接收 hi_monitor_timeConsuming=耗时 hi_monitor_approver=审批人 hi_monitor_processingStatus=处理状态 hi_monitor_processe=需处理 hi_monitor_postscript=附言 hi_monitor_flowchart=流程图 hi_monitor_gantt=甘特图 hi_monitor_processed=已处理 hi_monitor_back=回退 hi_monitor_sysAuto=系统自动流转 hi_monitor_terminate=终止 hi_monitor_cancel=取消 hi_monitor_transfer=转办 hi_monitor_taskWithdraw=任务撤回 hi_monitor_tsBeforSigning=前加签中 hi_monitor_tsAfterSigning=后加签中 hi_monitor_tsBeforSignDW=前加签处理 hi_monitor_tsAfterSignDW=后加签处理 hi_monitor_tsBeforSigned=已前加签 hi_monitor_tsAfterSigned=已后加签 hi_monitor_day=天 hi_monitor_hour=小时 hi_monitor_Min=分 hi_monitor_second=秒 hi_monitor_gantt_dept=所属部门 hi_monitor_gantt_role=岗位职称 hi_taskcenter_myTasks=我的任务 hi_taskcenter_query=查询 hi_taskcenter_reset=重置 hi_taskcenter_operate=操作 hi_taskcenter_batchProcessing=批处理 hi_taskcenter_flowOut=流转 hi_taskcenter_flowBack=回退 hi_taskcenter_process=处理 hi_taskcenter_view=查看 hi_taskcenter_fwithdraw=撤回 hi_taskcenter_originator=发起人 hi_taskcenter_approver=审批人 hi_taskcenter_urgent=急 hi_taskcenter_back=退 hi_taskcenter_summary=流程摘要 hi_taskcenter_summaryinfo=流程摘要信息 hi_taskcenter_task=任务 hi_taskcenter_createtime=创建时间 hi_taskcenter_finishtime=完成时间 hi_taskcenter_monitor=流程监控 hi_taskcenter_batchTitle=任务批处理({0}) hi_taskcenter_batchtip=任务正在处理中{0}/{1},已成功{2}个,失败{3}个。 hi_taskcenter_number=单号 hi_taskcenter_flowname=流程名称 hi_taskcenter_taskname=任务名称 hi_taskcenter_detailMsg=处理结果 hi_taskcenter_untreated=未处理 hi_taskcenter_processed=已处理 hi_taskcenter_completed=已完成 hi_taskcenter_displayname=环节名称 hi_taskcenter_fordernumber=流程单号 hi_taskcenter_fusername=编制ID hi_taskcenter_withdrawinfo=是否撤回任务? hi_taskcenter_taskWithdrawsuccess=任务撤回成功! hi_taskcenter_confirmtitle=确认信息 hi_taskcenter_processSuccess=处理成功 hi_taskcenter_oneselect=请至少选择一条单据! hivuiMain_errorPage4xx=抱歉,文件请求出错了 hivuiMain_errorPage5xx=抱歉,服务器出错了 hivuiMain_errorPage401=抱歉,该页面暂无权限 hivuiMain_errorPage404=抱歉,您访问的页面不存在 hivuiMain_errorPage500=抱歉,服务器出错了
Show line notes below