Browse Source

Merge branch 'yantai_master' of http://git.elinkit.com.cn:7070/r/epmet-oper-gov

yantai_master
dai 3 years ago
parent
commit
bd48fdc554
  1. 580
      report.20221017.102821.29368.0.001.json
  2. 7
      src/assets/scss/people-info.scss
  3. 19
      src/router/index.js
  4. 43
      src/views/modules/base/community/roomDetail.vue
  5. 57
      src/views/modules/base/community/roomForm.vue
  6. 57
      src/views/modules/base/community/roomTable.vue
  7. 1658
      src/views/modules/base/resi.vue
  8. 440
      src/views/modules/shequ/cpts/people-more.vue
  9. 412
      src/views/modules/shequzhili/event/cpts/add.vue
  10. 175
      src/views/modules/visual/command/cpts/popup.vue
  11. 4
      src/views/modules/visual/communityParty/crateForm.vue
  12. 378
      src/views/modules/workSys/operAuth.vue

580
report.20221017.102821.29368.0.001.json

@ -0,0 +1,580 @@
{
"header": {
"event": "Allocation failed - JavaScript heap out of memory",
"trigger": "FatalError",
"filename": "report.20221017.102821.29368.0.001.json",
"dumpEventTime": "2022-10-17T10:28:21Z",
"processId": 29368,
"cwd": "D:\\Project\\Web\\epmet-oper-gov",
"commandLine": [
"node",
"D:\\Project\\Web\\epmet-oper-gov\\node_modules\\.bin\\\\..\\_@vue_cli-service@3.12.1@@vue\\cli-service\\bin\\vue-cli-service.js",
"serve"
],
"nodejsVersion": "v11.15.0",
"wordSize": 64,
"arch": "x64",
"platform": "win32",
"componentVersions": {
"node": "11.15.0",
"v8": "7.0.276.38-node.19",
"uv": "1.27.0",
"zlib": "1.2.11",
"brotli": "1.0.7",
"ares": "1.15.0",
"modules": "67",
"nghttp2": "1.37.0",
"napi": "4",
"llhttp": "1.1.1",
"http_parser": "2.8.0",
"openssl": "1.1.1b",
"cldr": "34.0",
"icu": "63.1",
"tz": "2018e",
"unicode": "11.0"
},
"release": {
"name": "node",
"headersUrl": "https://nodejs.org/download/release/v11.15.0/node-v11.15.0-headers.tar.gz",
"sourceUrl": "https://nodejs.org/download/release/v11.15.0/node-v11.15.0.tar.gz",
"libUrl": "https://nodejs.org/download/release/v11.15.0/win-x64/node.lib"
},
"osName": "Windows_NT",
"osRelease": "10.0.22621",
"osVersion": "Windows 10 Home China",
"osMachine": "x86_64",
"host": "DESKTOP-KD168PS"
},
"javascriptStack": {
"message": "No stack.",
"stack": [
"Unavailable."
]
},
"nativeStack": [
{
"pc": "0x00007ff7ab21d24e",
"symbol": "std::basic_ios<char,std::char_traits<char> >::fill+16366"
},
{
"pc": "0x00007ff7ab21c0f9",
"symbol": "std::basic_ios<char,std::char_traits<char> >::fill+11929"
},
{
"pc": "0x00007ff7ab21b923",
"symbol": "std::basic_ios<char,std::char_traits<char> >::fill+9923"
},
{
"pc": "0x00007ff7ab30dc22",
"symbol": "uv_loop_fork+89362"
},
{
"pc": "0x00007ff7ab73609e",
"symbol": "v8::internal::FatalProcessOutOfMemory+798"
},
{
"pc": "0x00007ff7ab735fd7",
"symbol": "v8::internal::FatalProcessOutOfMemory+599"
},
{
"pc": "0x00007ff7ab7e9a14",
"symbol": "v8::internal::Heap::RootIsImmortalImmovable+14068"
},
{
"pc": "0x00007ff7ab7df822",
"symbol": "v8::internal::Heap::CollectGarbage+7234"
},
{
"pc": "0x00007ff7ab7de038",
"symbol": "v8::internal::Heap::CollectGarbage+1112"
},
{
"pc": "0x00007ff7ab7e7967",
"symbol": "v8::internal::Heap::RootIsImmortalImmovable+5703"
},
{
"pc": "0x00007ff7ab7e79e6",
"symbol": "v8::internal::Heap::RootIsImmortalImmovable+5830"
},
{
"pc": "0x00007ff7ab91f8b1",
"symbol": "v8::internal::Factory::NewFillerObject+49"
},
{
"pc": "0x00007ff7ab9d9786",
"symbol": "v8::internal::StoreBuffer::StoreBufferOverflow+27190"
},
{
"pc": "0x00000104951d0481",
"symbol": ""
}
],
"javascriptHeap": {
"totalMemory": 1501376512,
"totalCommittedMemory": 1501376512,
"usedMemory": 1346924536,
"availableMemory": 39500640,
"memoryLimit": 1526909922,
"heapSpaces": {
"read_only_space": {
"memorySize": 524288,
"committedMemory": 524288,
"capacity": 515584,
"used": 33520,
"available": 482064
},
"new_space": {
"memorySize": 33554432,
"committedMemory": 33554432,
"capacity": 16498688,
"used": 1868816,
"available": 14629872
},
"old_space": {
"memorySize": 1206063104,
"committedMemory": 1206063104,
"capacity": 1114694856,
"used": 1113755240,
"available": 939616
},
"code_space": {
"memorySize": 11534336,
"committedMemory": 11534336,
"capacity": 9093152,
"used": 9093152,
"available": 0
},
"map_space": {
"memorySize": 31993856,
"committedMemory": 31993856,
"capacity": 6363360,
"used": 6363360,
"available": 0
},
"large_object_space": {
"memorySize": 217706496,
"committedMemory": 217706496,
"capacity": 239259536,
"used": 215810448,
"available": 23449088
},
"new_large_object_space": {
"memorySize": 0,
"committedMemory": 0,
"capacity": 0,
"used": 0,
"available": 0
}
}
},
"resourceUsage": {
"userCpuSeconds": 2690.61,
"kernelCpuSeconds": 179.828,
"cpuConsumptionPercent": 0.692249,
"maxRss": 1829195776,
"pageFaults": {
"IORequired": 48054699,
"IONotRequired": 0
},
"fsActivity": {
"reads": 145756,
"writes": 5834
}
},
"libuv": [
],
"environmentVariables": {
"=C:": "C:\\",
"=D:": "D:\\Project\\Web\\epmet-oper-gov",
"add_path": "D:\\APP\\cmder",
"add_to_path": "D:\\APP\\cmder",
"aliases": "D:\\APP\\cmder\\config\\user_aliases.cmd",
"ALLUSERSPROFILE": "C:\\ProgramData",
"ANSICON": "90x1000 (90x24)",
"ANSICON_DEF": "7",
"APPDATA": "C:\\Users\\lenovo\\AppData\\Roaming",
"architecture_bits": "64",
"BABEL_ENV": "development",
"ccall": "call \"D:\\APP\\cmder\\vendor\\bin\\cexec.cmd\"",
"cexec": "\"D:\\APP\\cmder\\vendor\\bin\\cexec.cmd\"",
"clink_architecture": "x64",
"CMDER_ALIASES": "1",
"CMDER_CLINK": "1",
"CMDER_CONFIGURED": "1",
"CMDER_INIT_END": "10:45:24.68",
"CMDER_INIT_START": "10:45:22.18",
"CMDER_ROOT": "D:\\APP\\cmder",
"CMDER_SHELL": "cmd",
"CMDER_USER_FLAGS": " ",
"COLUMNS": "90",
"CommonProgramFiles": "C:\\Program Files\\Common Files",
"CommonProgramFiles(x86)": "C:\\Program Files (x86)\\Common Files",
"CommonProgramW6432": "C:\\Program Files\\Common Files",
"COMPUTERNAME": "DESKTOP-KD168PS",
"ComSpec": "C:\\WINDOWS\\system32\\cmd.exe",
"ConEmuANSI": "ON",
"ConEmuAnsiLog": "",
"ConEmuArgs": "/Icon \"D:\\APP\\cmder\\icons\\cmder.ico\" /Title Cmder /dir \"D:\\Project\\Web\\epmet-oper-gov\"",
"ConEmuArgs2": "",
"ConEmuBackHWND": "0x00020E34",
"ConEmuBaseDir": "D:\\APP\\cmder\\vendor\\conemu-maximus5\\ConEmu",
"ConEmuBaseDirShort": "D:\\APP\\cmder\\vendor\\conemu-maximus5\\ConEmu",
"ConEmuBuild": "210912",
"ConEmuCfgDir": "D:\\APP\\cmder\\vendor\\conemu-maximus5",
"ConEmuConfig": "",
"ConEmuDir": "D:\\APP\\cmder\\vendor\\conemu-maximus5",
"ConEmuDrawHWND": "0x00020E38",
"ConEmuDrive": "D:",
"ConEmuHooks": "Enabled",
"ConEmuHWND": "0x00390A98",
"ConEmuPalette": "Monokai",
"ConEmuPID": "24844",
"ConEmuServerPID": "14680",
"ConEmuTask": "{cmd::Cmder}",
"ConEmuWorkDir": "D:\\Project\\Web\\epmet-oper-gov",
"ConEmuWorkDrive": "D:",
"currenArgu": "/setpath",
"debug_output": "0",
"depth": "1",
"dp0": "D:\\Project\\Web\\epmet-oper-gov\\node_modules\\.bin\\",
"DriverData": "C:\\Windows\\System32\\Drivers\\DriverData",
"fast_init": "0",
"feFlagName": " ",
"feNot": "false",
"find_query": "D:\\\\APP\\\\cmder",
"found": "1",
"git_executable": "D:\\APP\\Git\\cmd\\git.exe",
"GIT_INSTALL_ROOT": "D:\\APP\\Git",
"git_locale": "\"D:\\APP\\Git\\usr\\bin\\locale.exe\"",
"GIT_VERSION_USER": "2.31.1.windows.1",
"HOME": "C:\\Users\\lenovo",
"HOMEDRIVE": "C:",
"HOMEPATH": "\\Users\\lenovo",
"INIT_CWD": "D:\\Project\\Web\\epmet-oper-gov",
"LANG": "zh_CN.UTF-8",
"lib_base": "call \"D:\\APP\\cmder\\vendor\\lib\\lib_base.cmd\"",
"lib_console": "call \"D:\\APP\\cmder\\vendor\\lib\\lib_console.cmd\"",
"lib_git": "call \"D:\\APP\\cmder\\vendor\\lib\\lib_git.cmd\"",
"lib_path": "call \"D:\\APP\\cmder\\vendor\\lib\\lib_path.cmd\"",
"lib_profile": "call \"D:\\APP\\cmder\\vendor\\lib\\lib_profile.cmd\"",
"LINES": "24",
"LOCALAPPDATA": "C:\\Users\\lenovo\\AppData\\Local",
"LOGONSERVER": "\\\\DESKTOP-KD168PS",
"max_depth": "1",
"nix_tools": "1",
"NODE": "D:\\APP\\nodejs\\node.exe",
"NODE_ENV": "development",
"NODE_EXE": "D:\\APP\\nodejs\\\\node.exe",
"NPM_CLI_JS": "D:\\APP\\nodejs\\\\node_modules\\npm\\bin\\npm-cli.js",
"npm_config_access": "",
"npm_config_allow_same_version": "",
"npm_config_also": "",
"npm_config_always_auth": "",
"npm_config_argv": "{\"remain\":[],\"cooked\":[\"run\",\"dev\"],\"original\":[\"run\",\"dev\"]}",
"npm_config_audit": "true",
"npm_config_audit_level": "low",
"npm_config_auth_type": "legacy",
"npm_config_bin_links": "true",
"npm_config_browser": "",
"npm_config_ca": "",
"npm_config_cache": "C:\\Users\\lenovo\\AppData\\Roaming\\npm-cache",
"npm_config_cache_lock_retries": "10",
"npm_config_cache_lock_stale": "60000",
"npm_config_cache_lock_wait": "10000",
"npm_config_cache_max": "Infinity",
"npm_config_cache_min": "10",
"npm_config_cafile": "",
"npm_config_cert": "",
"npm_config_cidr": "",
"npm_config_color": "true",
"npm_config_commit_hooks": "true",
"npm_config_depth": "Infinity",
"npm_config_description": "true",
"npm_config_dev": "",
"npm_config_dry_run": "",
"npm_config_editor": "notepad.exe",
"npm_config_engine_strict": "",
"npm_config_fetch_retries": "2",
"npm_config_fetch_retry_factor": "10",
"npm_config_fetch_retry_maxtimeout": "60000",
"npm_config_fetch_retry_mintimeout": "10000",
"npm_config_force": "",
"npm_config_git": "git",
"npm_config_git_tag_version": "true",
"npm_config_global": "",
"npm_config_globalconfig": "C:\\Users\\lenovo\\AppData\\Roaming\\npm\\etc\\npmrc",
"npm_config_globalignorefile": "C:\\Users\\lenovo\\AppData\\Roaming\\npm\\etc\\npmignore",
"npm_config_global_style": "",
"npm_config_group": "",
"npm_config_ham_it_up": "",
"npm_config_heading": "npm",
"npm_config_https_proxy": "",
"npm_config_if_present": "",
"npm_config_ignore_prepublish": "",
"npm_config_ignore_scripts": "",
"npm_config_init_author_email": "",
"npm_config_init_author_name": "",
"npm_config_init_author_url": "",
"npm_config_init_license": "ISC",
"npm_config_init_module": "C:\\Users\\lenovo\\.npm-init.js",
"npm_config_init_version": "1.0.0",
"npm_config_json": "",
"npm_config_key": "",
"npm_config_legacy_bundling": "",
"npm_config_link": "",
"npm_config_local_address": "",
"npm_config_loglevel": "notice",
"npm_config_logs_max": "10",
"npm_config_long": "",
"npm_config_maxsockets": "50",
"npm_config_message": "%s",
"npm_config_metrics_registry": "https://registry.npmjs.org/",
"npm_config_node_gyp": "D:\\APP\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js",
"npm_config_node_options": "",
"npm_config_node_version": "11.15.0",
"npm_config_noproxy": "",
"npm_config_offline": "",
"npm_config_onload_script": "",
"npm_config_only": "",
"npm_config_optional": "true",
"npm_config_otp": "",
"npm_config_package_lock": "true",
"npm_config_package_lock_only": "",
"npm_config_parseable": "",
"npm_config_prefer_offline": "",
"npm_config_prefer_online": "",
"npm_config_prefix": "C:\\Users\\lenovo\\AppData\\Roaming\\npm",
"npm_config_preid": "",
"npm_config_production": "",
"npm_config_progress": "true",
"npm_config_proxy": "",
"npm_config_read_only": "",
"npm_config_rebuild_bundle": "true",
"npm_config_registry": "https://registry.npmjs.org/",
"npm_config_rollback": "true",
"npm_config_save": "true",
"npm_config_save_bundle": "",
"npm_config_save_dev": "",
"npm_config_save_exact": "",
"npm_config_save_optional": "",
"npm_config_save_prefix": "^",
"npm_config_save_prod": "",
"npm_config_scope": "",
"npm_config_scripts_prepend_node_path": "warn-only",
"npm_config_script_shell": "",
"npm_config_searchexclude": "",
"npm_config_searchlimit": "20",
"npm_config_searchopts": "",
"npm_config_searchstaleness": "900",
"npm_config_send_metrics": "",
"npm_config_shell": "C:\\WINDOWS\\system32\\cmd.exe",
"npm_config_shrinkwrap": "true",
"npm_config_sign_git_commit": "",
"npm_config_sign_git_tag": "",
"npm_config_sso_poll_frequency": "500",
"npm_config_sso_type": "oauth",
"npm_config_strict_ssl": "true",
"npm_config_tag": "latest",
"npm_config_tag_version_prefix": "v",
"npm_config_timing": "",
"npm_config_tmp": "C:\\Users\\lenovo\\AppData\\Local\\Temp",
"npm_config_umask": "0000",
"npm_config_unicode": "",
"npm_config_unsafe_perm": "true",
"npm_config_update_notifier": "true",
"npm_config_usage": "",
"npm_config_user": "",
"npm_config_userconfig": "C:\\Users\\lenovo\\.npmrc",
"npm_config_user_agent": "npm/6.7.0 node/v11.15.0 win32 x64",
"npm_config_version": "",
"npm_config_versions": "",
"npm_config_viewer": "browser",
"npm_execpath": "D:\\APP\\nodejs\\node_modules\\npm\\bin\\npm-cli.js",
"npm_lifecycle_event": "dev",
"npm_lifecycle_script": "vue-cli-service serve",
"npm_node_execpath": "D:\\APP\\nodejs\\node.exe",
"npm_package_browserslist_0": "> 1%",
"npm_package_browserslist_1": "last 2 versions",
"npm_package_browserslist_2=not ie <": " 10",
"npm_package_dependencies_async_validator": "^4.2.5",
"npm_package_dependencies_axios": "^0.19.0",
"npm_package_dependencies_babel_eslint": "^8.0.1",
"npm_package_dependencies_babel_plugin_component": "^1.1.1",
"npm_package_dependencies_echarts": "^5.2.2",
"npm_package_dependencies_echarts_gl": "^2.0.9",
"npm_package_dependencies_element_theme": "^2.0.1",
"npm_package_dependencies_element_ui": "^2.13.0",
"npm_package_dependencies_file_saver": "^2.0.5",
"npm_package_dependencies_gulp_autoprefixer": "^6.1.0",
"npm_package_dependencies_gulp_clean_css": "^4.2.0",
"npm_package_dependencies_gulp_load_plugins": "^2.0.0",
"npm_package_dependencies_gulp_rename": "^1.4.0",
"npm_package_dependencies_gulp_sass": "^4.0.2",
"npm_package_dependencies_jsencrypt": "^3.0.3",
"npm_package_dependencies_js_cookie": "^2.2.0",
"npm_package_dependencies_lodash": "^4.17.15",
"npm_package_dependencies_mint_ui": "^2.2.13",
"npm_package_dependencies_node_sass": "^4.12.0",
"npm_package_dependencies_ol": "^6.9.0",
"npm_package_dependencies_portfinder": "^1.0.21",
"npm_package_dependencies_qs": "^6.7.0",
"npm_package_dependencies_quill": "^1.3.6",
"npm_package_dependencies_sass_loader": "^7.1.0",
"npm_package_dependencies_screenfull": "^4.2.1",
"npm_package_dependencies_sortablejs": "^1.12.0",
"npm_package_dependencies_svg_sprite_loader": "^4.1.6",
"npm_package_dependencies_throttle_debounce": "^3.0.1",
"npm_package_dependencies_vue": "^2.6.11",
"npm_package_dependencies_vuex": "^3.1.1",
"npm_package_dependencies_vue_baidu_map": "^0.21.22",
"npm_package_dependencies_vue_i18n": "^8.12.0",
"npm_package_dependencies_vue_quill_editor": "^3.0.6",
"npm_package_dependencies_vue_router": "^3.0.7",
"npm_package_dependencies_v_distpicker": "^1.2.2",
"npm_package_dependencies_xlsx": "^0.17.1",
"npm_package_dependencies__antv_l7": "2.9.14",
"npm_package_dependencies__antv_l7_draw": "3.0.5",
"npm_package_dependencies__antv_l7_maps": "2.9.14",
"npm_package_dependencies__riophae_vue_treeselect": "^0.4.0",
"npm_package_dependencies__tinymce_tinymce_vue": "^3.2.8",
"npm_package_description": "## Project setup ``` npm install ```",
"npm_package_devDependencies_dai_js": "^0.0.12",
"npm_package_devDependencies_element_theme_chalk": "^2.13.0",
"npm_package_devDependencies_natives": "^1.1.6",
"npm_package_devDependencies_ol": "^6.9.0",
"npm_package_devDependencies_script_loader": "^0.7.2",
"npm_package_devDependencies_tinymce": "^5.8.2",
"npm_package_devDependencies_vue_template_compiler": "^2.6.11",
"npm_package_devDependencies__antv_f2": "^3.8.10-beta.1",
"npm_package_devDependencies__tinymce_tinymce_vue": "^3.2.8",
"npm_package_devDependencies__vue_cli_plugin_babel": "^3.10.0",
"npm_package_devDependencies__vue_cli_plugin_eslint": "^3.10.0",
"npm_package_devDependencies__vue_cli_service": "^3.10.0",
"npm_package_devDependencies__vue_eslint_config_standard": "^4.0.0",
"npm_package_element_theme_browsers_0": "> 1%",
"npm_package_element_theme_browsers_1": "last 2 versions",
"npm_package_element_theme_browsers_2=not ie <": " 10",
"npm_package_element_theme_config": "./src/element-ui/theme-variables.scss",
"npm_package_element_theme_minimize": "true",
"npm_package_element_theme_out": "./src/element-ui/theme",
"npm_package_engines_node=>": " 8.11.1",
"npm_package_engines_npm=>": " 5.6.0",
"npm_package_eslintConfig_env_node": "true",
"npm_package_eslintConfig_extends_0": "plugin:vue/essential",
"npm_package_eslintConfig_extends_1": "@vue/standard",
"npm_package_eslintConfig_parserOptions_parser": "babel-eslint",
"npm_package_eslintConfig_root": "true",
"npm_package_gitHead": "c3dee098d64cf40debbc5455d165b478a335f317",
"npm_package_name": "epmet-oper-web",
"npm_package_private": "true",
"npm_package_readmeFilename": "README.md",
"npm_package_scripts_build": "vue-cli-service build",
"npm_package_scripts_build_prod": "vue-cli-service build --mode production",
"npm_package_scripts_build_shibei_prod": "vue-cli-service build --mode shibei_production",
"npm_package_scripts_build_sit": "vue-cli-service build --mode production.sit",
"npm_package_scripts_build_uat": "vue-cli-service build --mode production.uat",
"npm_package_scripts_dev": "vue-cli-service serve",
"npm_package_scripts_et": "et",
"npm_package_scripts_et_init": "et -i",
"npm_package_scripts_et_list": "gulp themes",
"npm_package_scripts_lint": "vue-cli-service lint",
"npm_package_scripts_serve": "vue-cli-service serve",
"npm_package_version": "2.0.0",
"NPM_PREFIX_NPM_CLI_JS": "C:\\Users\\lenovo\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js",
"NUMBER_OF_PROCESSORS": "8",
"OLD_PATH": "D:\\APP\\cmder\\vendor\\conemu-maximus5\\ConEmu\\Scripts;D:\\APP\\cmder\\vendor\\conemu-maximus5;D:\\APP\\cmder\\vendor\\conemu-maximus5\\ConEmu;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;D:\\APP\\cmder;D:\\APP\\Git\\cmd;D:\\APP\\微信web开发者工具\\dll;D:\\APP\\nodejs\\;D:\\APP\\python\\Scripts\\;D:\\APP\\python\\;C:\\Users\\lenovo\\AppData\\Local\\Microsoft\\WindowsApps;D:\\APP\\Microsoft VS Code\\bin;C:\\Users\\lenovo\\AppData\\Roaming\\npm;D:\\APP\\Git\\mingw64\\bin;D:\\APP\\Git\\usr\\bin;D:\\APP\\cmder\\vendor\\bin",
"OneDrive": "C:\\Users\\lenovo\\OneDrive",
"OS": "Windows_NT",
"Path": "D:\\APP\\nodejs\\node_modules\\npm\\node_modules\\npm-lifecycle\\node-gyp-bin;D:\\Project\\Web\\epmet-oper-gov\\node_modules\\.bin;D:\\APP\\cmder\\vendor\\conemu-maximus5\\ConEmu\\Scripts;D:\\APP\\cmder\\vendor\\conemu-maximus5;D:\\APP\\cmder\\vendor\\conemu-maximus5\\ConEmu;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;D:\\APP\\cmder;D:\\APP\\Git\\cmd;D:\\APP\\微信web开发者工具\\dll;D:\\APP\\nodejs\\;D:\\APP\\python\\Scripts\\;D:\\APP\\python\\;C:\\Users\\lenovo\\AppData\\Local\\Microsoft\\WindowsApps;D:\\APP\\Microsoft VS Code\\bin;C:\\Users\\lenovo\\AppData\\Roaming\\npm;D:\\APP\\Git\\mingw64\\bin;D:\\APP\\Git\\usr\\bin;D:\\APP\\cmder\\vendor\\bin",
"PATHEXT": ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JSE;.WSF;.WSH;.MSC",
"path_position": "append",
"PLINK_PROTOCOL": "ssh",
"position": "append",
"print_debug": "if 0 gtr 0 call \"D:\\APP\\cmder\\vendor\\lib\\lib_console.cmd\" debug_output",
"print_error": "call \"D:\\APP\\cmder\\vendor\\lib\\lib_console.cmd\" show_error",
"print_verbose": "if 0 gtr 0 call \"D:\\APP\\cmder\\vendor\\lib\\lib_console.cmd\" verbose_output",
"PROCESSOR_ARCHITECTURE": "AMD64",
"PROCESSOR_IDENTIFIER": "Intel64 Family 6 Model 142 Stepping 12, GenuineIntel",
"PROCESSOR_LEVEL": "6",
"PROCESSOR_REVISION": "8e0c",
"ProgramData": "C:\\ProgramData",
"ProgramFiles": "C:\\Program Files",
"ProgramFiles(x86)": "C:\\Program Files (x86)",
"ProgramW6432": "C:\\Program Files",
"PROMPT": "C\bL\bI\bN\bK\b \b$P$G",
"PSModulePath": "C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules",
"PUBLIC": "C:\\Users\\Public",
"SESSIONNAME": "Console",
"SVN_SSH": "D:\\\\APP\\\\Git\\\\bin\\\\ssh.exe",
"SystemDrive": "C:",
"SystemRoot": "C:\\WINDOWS",
"TEMP": "C:\\Users\\lenovo\\AppData\\Local\\Temp",
"TERM": "cygwin",
"time_init": "0",
"TMP": "C:\\Users\\lenovo\\AppData\\Local\\Temp",
"USERDOMAIN": "DESKTOP-KD168PS",
"USERDOMAIN_ROAMINGPROFILE": "DESKTOP-KD168PS",
"USERNAME": "lenovo",
"USERPROFILE": "C:\\Users\\lenovo",
"user_aliases": "D:\\APP\\cmder\\config\\user_aliases.cmd",
"USER_BUILD": "windows.1",
"USER_MAJOR": "2",
"USER_MINOR": "31",
"USER_PATCH": "1",
"verbose_output": "0",
"VUE_APP_API_SERVER": "http://192.168.1.140/api",
"VUE_APP_NODE_ENV": "dev",
"VUE_APP_PUBLIC_PATH": "epmet-oper",
"VUE_CLI_ENTRY_FILES": "[\"D:\\\\Project\\\\Web\\\\epmet-oper-gov\\\\src\\\\main.js\"]",
"WEBPACK_DEV_SERVER": "true",
"windir": "C:\\WINDOWS",
"ZES_ENABLE_SYSMAN": "1",
"_prog": "node"
},
"sharedObjects": [
"D:\\APP\\nodejs\\node.exe",
"C:\\WINDOWS\\SYSTEM32\\ntdll.dll",
"C:\\WINDOWS\\System32\\KERNEL32.DLL",
"C:\\WINDOWS\\System32\\KERNELBASE.dll",
"C:\\WINDOWS\\System32\\PSAPI.DLL",
"C:\\WINDOWS\\System32\\WS2_32.dll",
"C:\\WINDOWS\\System32\\RPCRT4.dll",
"C:\\WINDOWS\\System32\\ADVAPI32.dll",
"C:\\WINDOWS\\System32\\msvcrt.dll",
"C:\\WINDOWS\\System32\\sechost.dll",
"C:\\WINDOWS\\System32\\USER32.dll",
"C:\\WINDOWS\\System32\\win32u.dll",
"C:\\WINDOWS\\System32\\GDI32.dll",
"C:\\WINDOWS\\System32\\gdi32full.dll",
"C:\\WINDOWS\\SYSTEM32\\dbghelp.dll",
"C:\\WINDOWS\\System32\\msvcp_win.dll",
"C:\\WINDOWS\\System32\\ucrtbase.dll",
"C:\\WINDOWS\\System32\\combase.dll",
"C:\\WINDOWS\\System32\\CRYPT32.dll",
"C:\\WINDOWS\\System32\\OLEAUT32.dll",
"C:\\WINDOWS\\SYSTEM32\\IPHLPAPI.DLL",
"C:\\WINDOWS\\SYSTEM32\\bcrypt.dll",
"C:\\WINDOWS\\SYSTEM32\\USERENV.dll",
"C:\\WINDOWS\\SYSTEM32\\WINMM.dll",
"C:\\WINDOWS\\System32\\IMM32.DLL",
"D:\\APP\\cmder\\vendor\\conemu-maximus5\\ConEmu\\ConEmuHk64.dll",
"C:\\WINDOWS\\SYSTEM32\\powrprof.dll",
"C:\\WINDOWS\\SYSTEM32\\UMPDC.dll",
"C:\\WINDOWS\\system32\\uxtheme.dll",
"C:\\WINDOWS\\system32\\mswsock.dll",
"C:\\WINDOWS\\SYSTEM32\\kernel.appcore.dll",
"C:\\WINDOWS\\System32\\bcryptprimitives.dll",
"C:\\WINDOWS\\system32\\napinsp.dll",
"C:\\WINDOWS\\system32\\pnrpnsp.dll",
"C:\\WINDOWS\\SYSTEM32\\DNSAPI.dll",
"C:\\WINDOWS\\System32\\NSI.dll",
"C:\\WINDOWS\\System32\\winrnr.dll",
"C:\\WINDOWS\\system32\\wshbth.dll",
"C:\\WINDOWS\\system32\\nlansp_c.dll",
"C:\\WINDOWS\\SYSTEM32\\dhcpcsvc6.DLL",
"C:\\WINDOWS\\SYSTEM32\\dhcpcsvc.DLL",
"C:\\WINDOWS\\SYSTEM32\\CRYPTBASE.DLL",
"\\\\?\\D:\\Project\\Web\\epmet-oper-gov\\node_modules\\_node-sass@4.14.1@node-sass\\vendor\\win32-x64-67\\binding.node"
]
}

7
src/assets/scss/people-info.scss

@ -20,6 +20,7 @@
width: 1180px;
overflow-y: auto;
overflow-x: hidden;
position: relative;
}
.title {
@ -40,6 +41,12 @@
}
}
.div_tuomin{
position: absolute;
top:25px;
right:40px;
}
.btn-close {
position: absolute;
z-index: 2;

19
src/router/index.js

@ -147,6 +147,18 @@ function cookApiDataItem(item) {
// });
return item;
}
// 把按钮都化为页面内部的权限
function cookApiDataItem2(item) {
let { children } = item;
if (children && Array.isArray(children) && children.length > 0) {
let btns = item.children.filter((item) => item.type == 1);
item.btns = btns;
item.children = item.children
.filter((val) => val.type == 0)
.map((val) => cookApiDataItem2(val));
}
return item;
}
// 模块路由(基于主入口布局页面) 可视化数据
export const moduleShujuRoutes = {
@ -294,9 +306,9 @@ router.beforeEach((to, from, next) => {
name: "login",
});
}
window.SITE_CONFIG["menuList"] = res.data.map((item) =>
cookApiDataItem(item)
);
window.SITE_CONFIG["menuList"] = res.data
.map((item) => cookApiDataItem2(item))
.map((item) => cookApiDataItem(item));
fnAddDynamicMenuRoutes(window.SITE_CONFIG["menuList"]);
// next({ ...to, replace: true })
next({
@ -350,6 +362,7 @@ function fnAddDynamicMenuRoutes(menuList = [], routes = []) {
...window.SITE_CONFIG["contentTabDefault"],
menuId: menuList[i].id,
title: menuList[i].name,
btns: menuList[i].btns || [],
},
};
// eslint-disable-next-line

43
src/views/modules/base/community/roomDetail.vue

@ -1,7 +1,12 @@
<template>
<div>
<div class="dialog-h-content scroll-h">
<div class="div_tuomin">
<el-button v-if="view_real_data"
size="mini"
class="diy-button--search"
@click="handleTuomin">显示脱敏信息</el-button>
</div>
<div v-if="initLoading"
class="m-row">
<div class="m-info">
@ -51,11 +56,11 @@
</div>
<div class="info-prop">
<span class="info-title-2">联系方式</span>
<span>{{dataForm.ownerPhone?dataForm.ownerPhone:'--' }}</span>
<span>{{dataForm.showOwnerPhone?dataForm.showOwnerPhone:'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">房主身份证</span>
<span>{{dataForm.ownerIdCard?dataForm.ownerIdCard:'--' }}</span>
<span>{{dataForm.showOwnerIdCard?dataForm.showOwnerIdCard:'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">备注</span>
@ -164,6 +169,24 @@ export default {
},
async handleTuomin () {
const url = "/gov/org/ichouse/detailByType";
const { data, code, msg } = await requestPost(url, {
id: this.houseId,
type: "house",
});
if (code === 0) {
this.$set(this.dataForm, 'showOwnerPhone', data.mobile)
this.$set(this.dataForm, 'showOwnerIdCard', data.idCard)
} else {
this.$message.error(msg);
}
},
async loadHouseInfo () {
const url = "/gov/org/ichouse/" + this.houseId
@ -261,9 +284,21 @@ export default {
},
},
props: {}
props: {
view_real_data: {//
type: Boolean,
default: false,
}
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/management/detail-main.scss";
.div_tuomin {
position: absolute;
top: 0;
right: 40px;
z-index: 1000;
}
</style>

57
src/views/modules/base/community/roomForm.vue

@ -1,6 +1,12 @@
<template>
<div>
<div class="dialog-h-content scroll-h">
<div v-if="false"
class="div_tuomin">
<el-button size="mini"
class="diy-button--search"
@click="handleTuomin">显示脱敏信息</el-button>
</div>
<el-form ref="ref_form"
:inline="false"
:model="dataForm"
@ -39,7 +45,8 @@
v-model="dataForm.doorName">
</el-input>
</el-form-item>
<el-form-item v-if="formType != 'detail'" label="房屋编码"
<el-form-item v-if="formType != 'detail'"
label="房屋编码"
prop="coding"
label-width="150px"
style="display: block">
@ -47,12 +54,12 @@
maxlength="50"
placeholder="请输入楼栋编码"
v-model="dataForm.coding">
</el-input>
<el-button style="margin-left: 10px"
type="primary"
size="small"
@click="handleCode">生成</el-button>
type="primary"
size="small"
@click="handleCode">生成</el-button>
</el-form-item>
<div v-if="formType === 'detail'">
<el-form-item label="房屋编码"
@ -225,6 +232,7 @@ export default {
},
methods: {
async initForm (type, row, agencyObj) {
this.$refs.ref_form.resetFields();
@ -245,7 +253,7 @@ export default {
// this.rentFlag = parseInt(this.dataForm.rentFlagKey)
} else {
this.dataForm.neighborHoodId = this.agencyObj.neighborHoodId
this.dataForm.buildingId = this.agencyObj.id
}
@ -255,6 +263,24 @@ export default {
},
async handleTuomin () {
const url = "/gov/org/ichouse/detailByType";
const { data, code, msg } = await requestPost(url, {
id: this.houseId,
type: "house",
});
if (code === 0) {
this.$set(this.dataForm, 'ownerPhone', data.mobile)
this.$set(this.dataForm, 'ownerIdCard', data.idCard)
} else {
this.$message.error(msg);
}
},
async loadHouseInfo () {
const url = "/gov/org/ichouse/" + this.houseId
@ -292,15 +318,15 @@ export default {
this.$message.error(msg)
}
},
async handleCode() {
async handleCode () {
if (!this.dataForm.buildingUnitId) return this.$message.error('请选择单元')
const { data, code, msg } = await requestPost(
"/gov/org/houseInformation/getHouseCoding/" + this.dataForm.buildingUnitId);
if (msg == "success" && code == 0) {
this.dataForm.coding = data.coding
this.dataForm.sysCoding = data.sysCoding
}
}
},
async handleComfirm () {
@ -450,9 +476,20 @@ export default {
},
},
props: {}
props: {
view_real_data: {//
type: Boolean,
default: false,
}
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
.div_tuomin {
position: absolute;
top: 0;
right: 40px;
}
</style>

57
src/views/modules/base/community/roomTable.vue

@ -2,6 +2,7 @@
<div>
<div class="div_btn">
<el-button v-if="agencyObj.level === 'building' || source !== 'search'"
v-show="btnAuths.ic_house_add"
style="float: left"
class="diy-button--add"
size="small"
@ -9,11 +10,13 @@
<div class="btn_upload"
v-if="showImportBtn">
<el-button :headers="$getElUploadHeaders()"
v-if="btnAuths.ic_house_import"
style="float: left"
class="diy-button--export"
size="small"
@click="handleExportModule">下载房屋模板</el-button>
<el-upload ref="upload"
v-if="btnAuths.ic_house_import"
:multiple="false"
:show-file-list="false"
:before-upload="beforeUpload"
@ -28,21 +31,24 @@
</el-upload>
</div>
<el-button style="float: left; margin-left: 10px"
v-if="btnAuths.ic_house_export"
class="diy-button--reset"
size="small"
@click="handleExport">导出</el-button>
<el-button style="float: left; margin-left: 10px"
v-if="btnAuths.ic_house_batch_del"
class="diy-button--more"
size="small"
@click="deleteBatch">批量删除</el-button>
<el-button style="margin-left: 10px"
v-if="btnAuths.ic_house_export_yhyd"
class="diy-button--export"
size="small"
:disabled="yihuyidangDisabled"
@click="handleExportYihuyidang()">导出一户一档</el-button>
<el-button size="small"
class="diy-button--add"
v-if="displayedBaobiaoBtn"
v-if="btnAuths.ic_house_smart_import && displayedBaobiaoBtn"
@click="reportForm">智能填报</el-button>
</div>
@ -145,16 +151,17 @@
class="operate">
<template slot-scope="scope">
<el-button type="text"
v-if="btnAuths.ic_house_view"
class="div-table-button--detail"
size="small"
@click="handleDetail(scope.row)">查看</el-button>
<el-button v-if="scope.row.showBtn"
<el-button v-if="btnAuths.ic_house_update && scope.row.showBtn"
type="text"
class="div-table-button--edit"
size="small"
@click="handleEdit(scope.row)">修改</el-button>
<el-button v-if="scope.row.showBtn"
<el-button v-if="btnAuths.ic_house_del && scope.row.showBtn"
type="text"
class="div-table-button--delete"
size="small"
@ -184,6 +191,7 @@
class="dialog-h"
@closed="diaClose">
<room-form ref="ref_form"
:view_real_data="btnAuths.ic_house_view_real_data"
@dialogCancle="addFormCancle"
@dialogOk="addFormOk"></room-form>
</el-dialog>
@ -192,12 +200,13 @@
<el-dialog :visible.sync="detailShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
:title="'查看房屋'"
width="900px"
top="5vh"
class="dialog-h"
@closed="detailFormCancle">
<room-detail ref="ref_form_detail"
:view_real_data="btnAuths.ic_house_view_real_data"
@diaDetailClose="detailFormCancle"></room-detail>
</el-dialog>
@ -259,18 +268,34 @@ export default {
yihuyidangDisabled: false,
displayedBaobiaoBtn: false,
btnAuths: {
ic_house_add: false, //
ic_house_import: false, //
ic_house_export: false, //
ic_house_batch_del: false, //
ic_house_export_yhyd: false, //
ic_house_smart_import: false, //
ic_house_del: false, //
ic_house_view: false, //
ic_house_update: false, //
ic_house_view_real_data: false, //
},
};
},
components: {
baobiao,
roomForm,
roomDetail
roomDetail,
},
async mounted () {
this.updateBtnAuths();
this.displayedBaobiaoBtn = await this.$refs.baobiao.existsTemplate({
elseParams: {
categoryKeys: ['house_info'], categoryKey: 'house_info',
}
categoryKeys: ["house_info"],
categoryKey: "house_info",
},
});
},
computed: {
@ -283,6 +308,16 @@ export default {
...mapGetters(["clientHeight", "iframeHeight"]),
},
methods: {
//
updateBtnAuths () {
let rot = this.$route;
if (Array.isArray(rot.meta.btns)) {
rot.meta.btns.forEach((item) => {
this.btnAuths[item.permissions] = true;
});
}
},
reportForm () {
let paramMap = {
pageSize: this.pageSize,
@ -446,17 +481,17 @@ export default {
// this.$refs.ref_form.initForm("detail", row, this.agencyObj);
// });
this.detailShow = true
this.detailShow = true;
// const _data = await this.detail(row)
this.$nextTick(() => {
this.$refs.ref_form_detail.initForm(row, this.agencyObj)
})
this.$refs.ref_form_detail.initForm(row, this.agencyObj);
});
},
detailFormCancle () {
// this.$refs.ref_form_detail.diaDestroy()
this.detailShow = false
this.detailShow = false;
},
handleAdd () {

1658
src/views/modules/base/resi.vue

File diff suppressed because it is too large

440
src/views/modules/shequ/cpts/people-more.vue

@ -1,46 +1,55 @@
<template>
<div class="m-pop">
<div class="wrap">
<div class="btn-close" @click="handleClose">
<div class="btn-close"
@click="handleClose">
<img src="@/assets/img/shuju/people/close.png" />
</div>
<div class="wrap2">
<div class="title">
<span>更多信息</span>
</div>
<div v-if="view_real_data"
class="div_tuomin">
<el-button size="mini"
class="diy-button--search"
@click="handleTuomin">显示脱敏信息</el-button>
</div>
<div
:key="'fieldSubList' + index"
v-for="(fieldSubList, index) in fieldList"
>
<div :key="'fieldSubList' + index"
v-for="(fieldSubList, index) in fieldList">
<div class="list">
<div class="item" v-if="index == 0">
<div class="item"
v-if="index == 0">
<span class="item-field">所属网格</span>
<span>{{ gridName }}</span>
</div>
<div class="item" v-if="index == 0">
<div class="item"
v-if="index == 0">
<span class="item-field">所属小区</span>
<span>{{ xiaoquName }}</span>
</div>
<div class="item" v-if="index == 0">
<div class="item"
v-if="index == 0">
<span class="item-field">所属楼栋</span>
<span>{{ louName }}-{{ danyuanName }}</span>
</div>
<div class="item" v-if="index == 0">
<div class="item"
v-if="index == 0">
<span class="item-field">所属家庭</span>
<span>{{ homeName }}</span>
</div>
<div class="item" :key="field.itemId" v-for="field in fieldSubList">
<div class="item"
:key="field.itemId"
v-for="field in fieldSubList">
<span class="item-field">{{ field.label }}</span>
<span
v-if="
<span v-if="field.columnName==='MOBILE'||field.columnName==='ID_CARD'">{{ info[field.columnName]||'--'}}</span>
<span v-else-if="
field.itemType == 'select' ||
field.itemType == 'radio' ||
field.itemType == 'checkbox' ||
field.itemType == 'cascader'
"
>{{
">{{
info[field.columnName] == null
? "--"
: getOptionLabel(
@ -48,8 +57,7 @@
info[field.columnName],
field.itemType
)
}}</span
>
}}</span>
<span v-else>{{
info[field.columnName] == null ? "--" : info[field.columnName]
@ -61,63 +69,47 @@
</div>
<div class="tabs">
<div
class="tab-btn"
@click="subStartGroupIndex"
v-if="groupList.length > 9"
>
<div class="tab-btn"
@click="subStartGroupIndex"
v-if="groupList.length > 9">
<img src="@/assets/img/shuju/people/arrow-double-left.png" />
</div>
<div
v-show="index >= startGroupIndex && index < startGroupIndex + 9"
class="tab"
:class="groupIndex % groupList.length == index ? 'z-on' : ''"
:key="'tab' + index"
@click="groupIndex = index"
v-for="(item, index) in groupList"
>
<div v-show="index >= startGroupIndex && index < startGroupIndex + 9"
class="tab"
:class="groupIndex % groupList.length == index ? 'z-on' : ''"
:key="'tab' + index"
@click="groupIndex = index"
v-for="(item, index) in groupList">
{{ item.label }}
</div>
<div
class="tab-btn"
@click="addStartGroupIndex"
v-if="groupList.length > 9"
>
<div class="tab-btn"
@click="addStartGroupIndex"
v-if="groupList.length > 9">
<img src="@/assets/img/shuju/people/arrow-double-right.png" />
</div>
</div>
<div
:key="'group' + index"
v-show="groupIndex % groupList.length == index"
v-for="(group, index) in groupList"
>
<div
v-if="
<div :key="'group' + index"
v-show="groupIndex % groupList.length == index"
v-for="(group, index) in groupList">
<div v-if="
group.tableName == 'ic_resi_demand' &&
Array.isArray(allInfo.ic_resi_demand) &&
allInfo.ic_resi_demand.length > 0
"
>
<div
class="list"
:key="'ic_resi_demand' + infoIndex"
v-for="(infoItem, infoIndex) in allInfo.ic_resi_demand"
>
<div
class="item"
:key="field.itemId"
v-for="field in group.itemList"
>
">
<div class="list"
:key="'ic_resi_demand' + infoIndex"
v-for="(infoItem, infoIndex) in allInfo.ic_resi_demand">
<div class="item"
:key="field.itemId"
v-for="field in group.itemList">
<span class="item-field">{{ field.label }}</span>
<span
v-if="
<span v-if="
field.itemType == 'select' ||
field.itemType == 'radio' ||
field.itemType == 'checkbox' ||
field.itemType == 'cascader'
"
>{{
">{{
infoItem[field.columnName] == null
? "--"
: getOptionLabel(
@ -125,8 +117,7 @@
infoItem[field.columnName],
field.itemType
)
}}</span
>
}}</span>
<span v-else>{{
infoItem[field.columnName] == null
@ -136,179 +127,136 @@
</div>
</div>
</div>
<div
v-else-if="group.tableName == 'ic_hs'"
style="margin-top: 10px; padding: 0 20px"
>
<el-table
class="table"
:data="natList"
border
height="400"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
style="width: 100%"
>
<el-table-column
label="序号"
header-align="center"
align="center"
type="index"
width="50"
></el-table-column>
<el-table-column
prop="testTime"
header-align="center"
align="center"
label="检测时间"
width="150"
>
<div v-else-if="group.tableName == 'ic_hs'"
style="margin-top: 10px; padding: 0 20px">
<el-table class="table"
:data="natList"
border
height="400"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
style="width: 100%">
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50"></el-table-column>
<el-table-column prop="testTime"
header-align="center"
align="center"
label="检测时间"
width="150">
</el-table-column>
<el-table-column
prop="address"
header-align="center"
align="center"
label="检测机构"
show-overflow-tooltip
min-width="180"
>
<el-table-column prop="address"
header-align="center"
align="center"
label="检测机构"
show-overflow-tooltip
min-width="180">
</el-table-column>
<el-table-column
prop="result"
header-align="center"
align="center"
label="检测结果"
width="240"
>
<el-table-column prop="result"
header-align="center"
align="center"
label="检测结果"
width="240">
</el-table-column>
</el-table>
</div>
<div
v-else-if="group.tableName == 'ic_xc'"
style="margin-top: 10px; padding: 0 20px"
>
<el-table
class="table"
:data="tripList"
border
height="400"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
style="width: 100%"
>
<el-table-column
label="序号"
header-align="center"
align="center"
type="index"
width="50"
></el-table-column>
<el-table-column
prop="fromRegion"
header-align="center"
align="center"
label="来自地区"
show-overflow-tooltip
min-width="100"
>
<div v-else-if="group.tableName == 'ic_xc'"
style="margin-top: 10px; padding: 0 20px">
<el-table class="table"
:data="tripList"
border
height="400"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
style="width: 100%">
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50"></el-table-column>
<el-table-column prop="fromRegion"
header-align="center"
align="center"
label="来自地区"
show-overflow-tooltip
min-width="100">
</el-table-column>
<el-table-column
prop="arrivalTime"
header-align="center"
align="center"
label="来到本地时间"
width="140"
>
<el-table-column prop="arrivalTime"
header-align="center"
align="center"
label="来到本地时间"
width="140">
</el-table-column>
<el-table-column
prop="leaveTime"
header-align="center"
align="center"
label="离开本地时间"
width="140"
>
<el-table-column prop="leaveTime"
header-align="center"
align="center"
label="离开本地时间"
width="140">
</el-table-column>
<el-table-column
prop="noticeTime"
header-align="center"
align="center"
label="最近一次通知时间"
width="140"
>
<el-table-column prop="noticeTime"
header-align="center"
align="center"
label="最近一次通知时间"
width="140">
</el-table-column>
<el-table-column
prop="remark"
header-align="center"
align="center"
label="备注"
show-overflow-tooltip
width="120"
>
<el-table-column prop="remark"
header-align="center"
align="center"
label="备注"
show-overflow-tooltip
width="120">
</el-table-column>
</el-table>
</div>
<div
v-else-if="group.tableName == 'ic_ym'"
style="margin-top: 10px; padding: 0 20px"
>
<el-table
v-if="vaccineList"
class="table"
:data="vaccineList"
border
height="400"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
style="width: 100%"
>
<el-table-column
label="序号"
header-align="center"
align="center"
type="index"
width="50"
></el-table-column>
<el-table-column
prop="vaccinateTime"
header-align="center"
align="center"
label="接种时间"
show-overflow-tooltip
min-width="100"
>
<div v-else-if="group.tableName == 'ic_ym'"
style="margin-top: 10px; padding: 0 20px">
<el-table v-if="vaccineList"
class="table"
:data="vaccineList"
border
height="400"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
style="width: 100%">
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50"></el-table-column>
<el-table-column prop="vaccinateTime"
header-align="center"
align="center"
label="接种时间"
show-overflow-tooltip
min-width="100">
</el-table-column>
<el-table-column
prop="address"
header-align="center"
align="center"
label="接种地点"
>
<el-table-column prop="address"
header-align="center"
align="center"
label="接种地点">
</el-table-column>
<el-table-column
prop="manufactor"
header-align="center"
align="center"
label="疫苗厂家"
>
<el-table-column prop="manufactor"
header-align="center"
align="center"
label="疫苗厂家">
</el-table-column>
</el-table>
</div>
<div class="list" v-else>
<div
class="item"
:class="{ 'z-long': group.itemList.length == 1 }"
:key="field.itemId"
v-for="field in group.itemList"
>
<div class="list"
v-else>
<div class="item"
:class="{ 'z-long': group.itemList.length == 1 }"
:key="field.itemId"
v-for="field in group.itemList">
<span class="item-field">{{ field.label }}</span>
<span
v-if="
<span v-if="
field.itemType == 'select' ||
field.itemType == 'radio' ||
field.itemType == 'checkbox' ||
field.itemType == 'cascader'
"
>{{
">{{
!allInfo[group.tableName] ||
allInfo[group.tableName][0][field.columnName] == null
? "--"
@ -317,8 +265,7 @@
allInfo[group.tableName][0][field.columnName],
field.itemType
)
}}</span
>
}}</span>
<span v-else>{{
!allInfo[group.tableName] ||
@ -349,13 +296,17 @@ export default {
type: String,
default: "",
},
view_real_data: {//
type: Boolean,
default: false,
}
},
components: {
cptCard,
},
data() {
data () {
return {
fieldList: [],
groupList: [],
@ -376,11 +327,11 @@ export default {
},
computed: {
isShundeju() {
isShundeju () {
return this.$store.state.user.customerId == "1550309684576591874";
},
xiaoquName() {
xiaoquName () {
const {
xiaoquList,
info: { VILLAGE_ID },
@ -393,7 +344,7 @@ export default {
}
return "";
},
louName() {
louName () {
const {
louList,
info: { BUILD_ID },
@ -406,7 +357,7 @@ export default {
}
return "";
},
danyuanName() {
danyuanName () {
const {
danyuanList,
info: { UNIT_ID },
@ -419,7 +370,7 @@ export default {
}
return "";
},
danyuanName() {
danyuanName () {
const {
danyuanList,
info: { UNIT_ID },
@ -432,7 +383,7 @@ export default {
}
return "";
},
homeName() {
homeName () {
const {
homeList,
info: { HOME_ID },
@ -448,17 +399,34 @@ export default {
},
watch: {
userId() {
userId () {
this.getApiData();
},
},
mounted() {
mounted () {
this.getApiData();
},
methods: {
addStartGroupIndex() {
async handleTuomin () {
const url = "/gov/org/ichouse/detailByType";
const { data, code, msg } = await requestPost(url, {
id: this.userId,
type: "icResiUser",
});
if (code === 0) {
this.$set(this.info, 'MOBILE', data.mobile)
this.$set(this.info, 'ID_CARD', data.idCard)
} else {
this.$message.error(msg);
}
},
addStartGroupIndex () {
const { startGroupIndex, groupList } = this;
if (startGroupIndex < groupList.length - 9) {
this.startGroupIndex = startGroupIndex + 1;
@ -466,7 +434,7 @@ export default {
this.startGroupIndex = groupList.length - 9;
}
},
subStartGroupIndex() {
subStartGroupIndex () {
const { startGroupIndex, groupList } = this;
if (startGroupIndex > 0) {
this.startGroupIndex = startGroupIndex - 1;
@ -474,11 +442,11 @@ export default {
this.startGroupIndex = 0;
}
},
handleClose() {
handleClose () {
this.$emit("close");
},
async getApiData() {
async getApiData () {
await this.getField();
await this.getInfo();
this.getDetailList();
@ -488,7 +456,7 @@ export default {
this.getHomeList();
},
getOptionLabel(options, value, type = "") {
getOptionLabel (options, value, type = "") {
if (Array.isArray(options)) {
let valueArr = value.split(",");
if (type == "cascader") {
@ -510,7 +478,7 @@ export default {
return "--";
},
getNodePath(node, val, path) {
getNodePath (node, val, path) {
// node:val:id, path:id
for (let i = 0; i < node.length; i++) {
const ele = node[i];
@ -530,7 +498,7 @@ export default {
},
//
async getField() {
async getField () {
const url = "/oper/customize/icform/getcustomerform";
const { data, code, msg } = await requestPost(url, {
@ -570,7 +538,7 @@ export default {
},
//
async getInfo() {
async getInfo () {
const url = "/epmetuser/icresiuser/detail";
const { data, code, msg } = await requestPost(url, {
@ -651,7 +619,7 @@ export default {
},
//
async getOptions(url) {
async getOptions (url) {
if (!url) return [];
const { data, code, msg } = await requestPost(url, {});
@ -663,7 +631,7 @@ export default {
}
},
async getXiaoquList() {
async getXiaoquList () {
const url = "/gov/org/icneighborhood/neighborhoodoption";
const { data, code, msg } = await requestPost(url, {
@ -677,7 +645,7 @@ export default {
this.$message.error(msg);
}
},
async getLouList() {
async getLouList () {
const url = "/gov/org/icbuilding/buildingoption";
const { data, code, msg } = await requestPost(url, {
@ -690,7 +658,7 @@ export default {
this.$message.error(msg);
}
},
async getDanyuanList() {
async getDanyuanList () {
const url = "/gov/org/icbuildingunit/unitoption";
const { data, code, msg } = await requestPost(url, {
@ -703,7 +671,7 @@ export default {
this.$message.error(msg);
}
},
async getHomeList() {
async getHomeList () {
const url = "/gov/org/ichouse/houseoption";
const { data, code, msg } = await requestPost(url, {
@ -716,7 +684,7 @@ export default {
this.$message.error(msg);
}
},
async getDetailList() {
async getDetailList () {
const url = "/epmetuser/epidemicPrevention/info";
let params = {
id: this.userId,

412
src/views/modules/shequzhili/event/cpts/add.vue

@ -2,202 +2,160 @@
<div class="g-add">
<div class="g-add-page">
<div class="g-left">
<el-form
ref="ref_form1"
:inline="true"
:model="formData"
:rules="dataRule"
class="form"
>
<el-form-item
label="所属网格 "
prop="gridId"
label-width="150px"
style="display: block"
>
<el-select
v-model.trim="formData.gridId"
placeholder="请选择"
clearable
class="cell-width-1"
>
<el-option
v-for="item in gridList"
:key="item.value"
:label="item.label"
:value="item.value"
>
<el-form ref="ref_form1"
:inline="true"
:model="formData"
:rules="dataRule"
class="form">
<el-form-item label="所属网格 "
prop="gridId"
label-width="150px"
style="display: block">
<el-select v-model.trim="formData.gridId"
placeholder="请选择"
clearable
class="cell-width-1">
<el-option v-for="item in gridList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="报事人"
prop="name"
label-width="150px"
style="display: block"
>
<el-input
class="cell-width-1"
maxlength="10"
placeholder="请输入报事人姓名"
v-model="formData.name"
>
<el-form-item label="报事人"
prop="name"
label-width="150px"
style="display: block">
<el-input class="cell-width-1"
maxlength="10"
placeholder="请输入报事人姓名"
v-model="formData.name">
</el-input>
<div>
<el-button
style="margin-top: 10px"
type="primary"
size="mini"
@click="handleShowPersonList"
>居民信息中选择</el-button
>
<el-button style="margin-top: 10px"
type="primary"
size="mini"
@click="handleShowPersonList">居民信息中选择</el-button>
</div>
</el-form-item>
<el-form-item
label="手机号"
prop="mobile"
label-width="150px"
style="display: block"
>
<el-input
class="cell-width-1"
maxlength="30"
placeholder="请输入手机号 "
v-model="formData.mobile"
>
<el-form-item label="手机号"
prop="mobile"
label-width="150px"
style="display: block">
<el-input class="cell-width-1"
maxlength="30"
placeholder="请输入手机号 "
v-model="formData.mobile">
</el-input>
</el-form-item>
<el-form-item
label="身份证号"
prop="idCard"
label-width="150px"
style="display: block"
>
<el-input
class="cell-width-1"
maxlength="30"
placeholder="请输入身份证号"
v-model="formData.idCard"
></el-input>
<el-form-item label="身份证号"
prop="idCard"
label-width="150px"
style="display: block">
<el-input class="cell-width-1"
maxlength="30"
placeholder="请输入身份证号"
v-model="formData.idCard"></el-input>
</el-form-item>
<el-form-item label="反应渠道" label-width="150px" prop="sourceType">
<el-select
v-model="formData.sourceType"
placeholder="请选择"
size="small"
clearable
class="cell-width-1"
>
<el-option
v-for="item in qudaoArray"
:key="item.value"
:label="item.label"
:value="item.value"
>
<el-form-item label="反应渠道"
label-width="150px"
prop="sourceType">
<el-select v-model="formData.sourceType"
placeholder="请选择"
size="small"
clearable
class="cell-width-1">
<el-option v-for="item in qudaoArray"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="发生时间"
prop="happenTime"
label-width="150px"
style="display: block"
>
<el-date-picker
v-model="formData.happenTime"
class="cell-width-1"
type="datetime"
placeholder="发生时间"
value-format="yyyy-MM-dd hh:mm:ss"
>
<el-form-item label="发生时间"
prop="happenTime"
label-width="150px"
style="display: block">
<el-date-picker v-model="formData.happenTime"
class="cell-width-1"
type="datetime"
placeholder="发生时间"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
<el-form-item
label="事件内容"
prop="eventContent"
label-width="150px"
style="display: block"
>
<el-input
class="cell-width-2"
type="textarea"
maxlength="500"
show-word-limit
:rows="5"
placeholder="请输入事件内容,不超过500字"
v-model="formData.eventContent"
></el-input>
<el-form-item label="事件内容"
prop="eventContent"
label-width="150px"
style="display: block">
<el-input class="cell-width-2"
type="textarea"
maxlength="500"
show-word-limit
:rows="5"
placeholder="请输入事件内容,不超过500字"
v-model="formData.eventContent"></el-input>
</el-form-item>
</el-form>
</div>
<div class="g-right">
<el-form
ref="ref_form2"
:inline="true"
:model="formData"
:rules="dataRule"
class="form"
>
<el-form-item label="图片" label-width="150px" style="display: block">
<el-upload
:headers="$getElUploadHeaders()"
:class="['avatar-uploader', { hide: hideUploadBtn }]"
ref="uploadPic"
:action="uploadUlr"
list-type="picture-card"
:on-exceed="exceedPic"
:on-remove="removePic"
:file-list="replayImgList"
:on-change="handleEditChange"
:on-success="handleSuccess"
:limit="3"
>
<el-form ref="ref_form2"
:inline="true"
:model="formData"
:rules="dataRule"
class="form">
<el-form-item label="图片"
label-width="150px"
style="display: block">
<el-upload :headers="$getElUploadHeaders()"
:class="['avatar-uploader', { hide: hideUploadBtn }]"
ref="uploadPic"
:action="uploadUlr"
list-type="picture-card"
:on-exceed="exceedPic"
:on-remove="removePic"
:file-list="replayImgList"
:on-change="handleEditChange"
:on-success="handleSuccess"
:limit="3">
<span class="font-14">选择图片</span>
<div slot="tip" class="upload_tip">
<div slot="tip"
class="upload_tip">
最多上传3张图片图片支持jpgjpegbmpgit或png格式
</div>
</el-upload>
</el-form-item>
<el-form-item
label="地理位置"
prop="address"
label-width="150px"
style="display: block"
>
<el-input class="cell-width-1" v-model="formData.address">
<el-form-item label="地理位置"
prop="address"
label-width="150px"
style="display: block">
<el-input class="cell-width-1"
v-model="formData.address">
</el-input>
</el-form-item>
<el-form-item
label="位置坐标"
prop="longitude"
label-width="150px"
style="display: block"
>
<el-form-item label="位置坐标"
prop="longitude"
label-width="150px"
style="display: block">
<div style="width: 500px">
<div class="div_map">
<div id="app"></div>
<div class="div_searchmap">
<el-input
class="cell-width-map"
maxlength="50"
size="mini"
placeholder="请输入关键字"
v-model="keyWords"
>
<el-input class="cell-width-map"
maxlength="50"
size="mini"
placeholder="请输入关键字"
v-model="keyWords">
</el-input>
<el-button
style="margin-left: 10px"
type="primary"
size="mini"
@click="handleSearchMap"
>查询</el-button
>
<el-button style="margin-left: 10px"
type="primary"
size="mini"
@click="handleSearchMap">查询</el-button>
</div>
</div>
@ -222,62 +180,54 @@
</div>
<!-- 新增弹出框 -->
<el-dialog
:visible.sync="personTableShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:destroy-on-close="true"
title="选择居民"
width="550px"
top="5vh"
class="dialog-h"
@closed="diaClose"
>
<el-dialog :visible.sync="personTableShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:destroy-on-close="true"
title="选择居民"
width="550px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<div style="padding: 10px 30px">
<el-form :inline="false" ref="ref_formSearch" :label-width="'90px'">
<el-form-item label="所属网格" label-width="150px">
<el-select
class="cell-width-1"
v-model.trim="selGridId"
placeholder="请选择"
clearable
>
<el-option
v-for="item in gridList"
@click.native="handleChangeGrid"
:key="item.value"
:label="item.label"
:value="item.value"
>
<el-form :inline="false"
ref="ref_formSearch"
:label-width="'90px'">
<el-form-item label="所属网格"
label-width="150px">
<el-select class="cell-width-1"
v-model.trim="selGridId"
placeholder="请选择"
clearable>
<el-option v-for="item in gridList"
@click.native="handleChangeGrid"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="居民" label-width="150px" prop="selPersonIndex">
<el-select
v-model="selPersonIndex"
class="cell-width-1"
filterable
placeholder="请选择"
clearable
>
<el-option
v-for="(item, index) in demandUserList"
:key="item.demandUserId"
:label="item.label"
:value="index"
>
<el-form-item label="居民"
label-width="150px"
prop="selPersonIndex">
<el-select v-model="selPersonIndex"
class="cell-width-1"
filterable
placeholder="请选择"
clearable>
<el-option v-for="(item, index) in demandUserList"
:key="item.demandUserId"
:label="item.label"
:value="index">
</el-option>
</el-select>
</el-form-item>
</el-form>
<div class="div-btn">
<el-button
style="margin-left: 20px"
type="primary"
size="small"
@click="handleComfirmSelPerson"
>确定</el-button
>
<el-button style="margin-left: 20px"
type="primary"
size="small"
@click="handleComfirmSelPerson">确定</el-button>
</div>
</div>
</el-dialog>
@ -298,7 +248,7 @@ var markers;
var infoWindowList;
var geocoder; //
function iniFmData() {
function iniFmData () {
return {
gridId: "", //
reportUserId: "", // ID
@ -320,7 +270,7 @@ function iniFmData() {
}
export default {
data() {
data () {
return {
formType: "add", // addeditdetail
@ -376,7 +326,7 @@ export default {
},
components: {},
computed: {
dataRule() {
dataRule () {
let checkIdCard = (rule, value, callback) => {
if (value === "") {
callback(new Error("请输入身份证"));
@ -435,7 +385,7 @@ export default {
},
},
async mounted() {
async mounted () {
const { user } = this.$store.state;
this.agencyId = user.agencyId;
let { latitude, longitude } = this.$store.state.user;
@ -453,7 +403,7 @@ export default {
},
methods: {
async handleShowPersonList() {
async handleShowPersonList () {
if (this.formData.gridId) {
await this.handleChangeGrid();
this.personTableShow = true;
@ -461,10 +411,10 @@ export default {
this.$message.info("请先选择网格");
}
},
diaClose() {
diaClose () {
this.personTableShow = false;
},
handleComfirmSelPerson() {
handleComfirmSelPerson () {
if (this.selPersonIndex === 0 || this.selPersonIndex) {
let selPerson = this.demandUserList[this.selPersonIndex];
this.formData.name = selPerson.demandUserName;
@ -478,7 +428,7 @@ export default {
}
},
async handleChangeGrid() {
async handleChangeGrid () {
const url = "/epmetuser/icresiuser/demandusers";
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/epidemicPrevention/page"
let params = {
@ -497,7 +447,7 @@ export default {
this.tableLoading = false;
},
async loadGrid() {
async loadGrid () {
const url = "/gov/org/customergrid/gridoption";
let params = {
@ -513,7 +463,7 @@ export default {
this.$message.error(msg);
}
},
async getCategoryList() {
async getCategoryList () {
const url = "/gov/issue/issueprojectcategorydict/list";
let params = {};
@ -535,7 +485,7 @@ export default {
},
//
filterTree(arr) {
filterTree (arr) {
let childs = arr;
for (let i = childs.length; i--; i > 0) {
if (childs[i].subCategory) {
@ -549,12 +499,12 @@ export default {
return arr;
},
handleChangeAgency(value) {
handleChangeAgency (value) {
// this.agencyName = this.$refs["myCascader"].getCheckedNodes()[0].label
// this.orgId = this.selCategoryArray.length > 0 ? this.selCategoryArray[this.selCategoryArray.length - 1] : ''
},
async getEventInfo() {
async getEventInfo () {
this.okflag = false;
this.$refs["ref_form1"].validate((valid, messageObj) => {
if (!valid) {
@ -592,7 +542,7 @@ export default {
});
},
removePic(file, fileList) {
removePic (file, fileList) {
this.formData.imageList.splice(
this.formData.imageList.findIndex((item) => item === file.url),
1
@ -604,19 +554,19 @@ export default {
this.hideUploadBtn = fileList.length >= 3;
},
// 3
handleEditChange(file, fileList) {
handleEditChange (file, fileList) {
this.hideUploadBtn = fileList.length >= 3;
},
exceedPic() {
exceedPic () {
this.$message.warning("最多上传3张预览图片");
},
handleSuccess(response, file, fileList) {
handleSuccess (response, file, fileList) {
this.replayImgList.push(file);
this.formData.imageList.push(response.data.url);
},
// init
initMap() {
initMap () {
//
var center = new window.TMap.LatLng(
this.formData.latitude,
@ -648,7 +598,7 @@ export default {
// this.convert()
},
setMarker(lat, lng) {
setMarker (lat, lng) {
markers.setGeometries([]);
markers.add([
{
@ -662,7 +612,7 @@ export default {
]);
},
handleSearchMap() {
handleSearchMap () {
infoWindowList.forEach((infoWindow) => {
infoWindow.close();
});
@ -694,7 +644,7 @@ export default {
});
},
handleMoveCenter() {
handleMoveCenter () {
//
const center = map.getCenter();
const lat = center.getLat();
@ -705,7 +655,7 @@ export default {
this.convert(lat, lng);
},
convert(lat, lng) {
convert (lat, lng) {
markers.setGeometries([]);
// var input = document.getElementById('location').value.split(',');
let location;
@ -739,12 +689,12 @@ export default {
});
},
resetData() {
resetData () {
this.formData = iniFmData();
this.replayImgList = [];
},
//
startLoading() {
startLoading () {
loading = Loading.service({
lock: true, //
text: "正在加载……", //
@ -752,7 +702,7 @@ export default {
});
},
//
endLoading() {
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close();

175
src/views/modules/visual/command/cpts/popup.vue

@ -1,13 +1,14 @@
<template>
<div class="m-pop" ref="pop" @mousewheel="handleWheel" v-show="!hidden">
<div class="m-pop"
ref="pop"
@mousewheel="handleWheel"
v-show="!hidden">
<div class="info">
<div
v-if="
<div v-if="
placeType === 'resi' ||
placeType === 'special_resi' ||
placeType === 'volunteer'
"
>
">
<div class="info-title">居民信息</div>
<div class="item">
姓名
@ -52,25 +53,22 @@
<span>{{ info.resiCategoryNames || "--" }}</span>
</div>
<div @click="handleClickBtn('watch-resi')" class="more-btn">更多</div>
<div @click="handleClickBtn('watch-resi')"
class="more-btn">更多</div>
<div class="operate">
<div
@click="handleClickBtn('create-demand')"
v-if="info.agencyId == $store.state.user.agencyId"
class="btn z-blue"
>
<div @click="handleClickBtn('create-demand')"
v-if="info.agencyId == $store.state.user.agencyId"
class="btn z-blue">
发布需求
</div>
<div
v-if="
<div v-if="
info.agencyId == $store.state.user.agencyId &&
placeType === 'volunteer'
"
@click="handleClickBtn('create-service')"
class="btn z-yellow"
>
@click="handleClickBtn('create-service')"
class="btn z-yellow">
发起服务
</div>
</div>
@ -112,13 +110,11 @@
</div>
</div>
<div
v-if="
<div v-if="
placeType === 'public_service' ||
placeType === 'city_management' ||
placeType === 'superior_resource'
"
>
">
<div class="info-title">场所信息</div>
<div class="item">
场所名称
@ -150,11 +146,9 @@
</div>
</div>
<div
v-if="
<div v-if="
placeType === 'nucleic_point'
"
>
">
<div class="info-title">核酸检测点信息</div>
<div class="item">
检测点名称
@ -177,11 +171,9 @@
<span>{{ info.address || "--" }}</span>
</div>
</div>
<div
v-if="
<div v-if="
placeType === 'vaccine_point'
"
>
">
<div class="info-title">疫苗接种点信息</div>
<div class="item">
接种点名称
@ -221,35 +213,27 @@
<span>{{ info.eventContent || "--" }}</span>
</div>
<div
v-if="info.imageList && info.imageList.length > 0"
class="info-prop"
>
<div v-if="info.imageList && info.imageList.length > 0"
class="info-prop">
<span>图片</span>
<div class="item-pics">
<img
:src="src"
:key="src"
style="width: 100px; height: 100px; padding-right: 10px"
v-for="src in info.imageList"
@click="watchImg(src)"
/>
<img :src="src"
:key="src"
style="width: 100px; height: 100px; padding-right: 10px"
v-for="src in info.imageList"
@click="watchImg(src)" />
</div>
</div>
<div
v-if="info.voiceList && info.voiceList.length > 0"
class="info-prop"
>
<div v-if="info.voiceList && info.voiceList.length > 0"
class="info-prop">
<span>音频</span>
<div class="item-pics">
<audio controls>
<source
:src="item.url"
type=""
:key="item.url"
v-for="item in info.voiceList"
/>
<source :src="item.url"
type=""
:key="item.url"
v-for="item in info.voiceList" />
</audio>
</div>
</div>
@ -270,12 +254,13 @@
手机号
<span>{{ info.mobile || "--" }}</span>
</div>
<div class="item">
<!-- <div class="item">
身份证号
<span>{{ info.idCard || "--" }}</span>
</div>
</div> -->
<div @click="handleClickBtn('watch-event')" class="more-btn">更多</div>
<div @click="handleClickBtn('watch-event')"
class="more-btn">更多</div>
</div>
<div v-if="placeType === 'community_org'">
@ -313,11 +298,9 @@
<span>{{ info.organizationCreatedTime || "--" }}</span>
</div>
<div
v-if="info.agencyId == $store.state.user.agencyId"
@click="handleClickBtn('create-service')"
class="btn z-yellow"
>
<div v-if="info.agencyId == $store.state.user.agencyId"
@click="handleClickBtn('create-service')"
class="btn z-yellow">
发起服务
</div>
</div>
@ -354,12 +337,10 @@
</div>
</div>
<div
v-if="
<div v-if="
placeType === 'enterprise_patrol' ||
placeType === 'enterprise_patrol_unqualified'
"
>
">
<div class="info-title">企事业信息</div>
<div class="item">
场所类型
@ -390,7 +371,8 @@
<span>{{ info.mobile || "--" }}</span>
</div>
<div @click="handleClickBtn('watch-xuncha')" class="more-btn">更多</div>
<div @click="handleClickBtn('watch-xuncha')"
class="more-btn">更多</div>
</div>
<div v-if="placeType === 'party_unit'">
@ -428,11 +410,9 @@
<span>{{ info.address || "--" }}</span>
</div>
<div
v-if="info.agencyId == $store.state.user.agencyId"
@click="handleClickBtn('create-service')"
class="btn z-yellow"
>
<div v-if="info.agencyId == $store.state.user.agencyId"
@click="handleClickBtn('create-service')"
class="btn z-yellow">
发起服务
</div>
</div>
@ -460,7 +440,8 @@
<span>{{ info.centerAddress || "--" }}</span>
</div>
<div class="operate">
<div @click="handleClickBtn('create-service')" class="btn z-yellow">
<div @click="handleClickBtn('create-service')"
class="btn z-yellow">
发起服务
</div>
</div>
@ -469,18 +450,14 @@
<div v-if="placeType === 'list'">
<div class="info-title">列表</div>
<div class="list">
<div
class="item"
@click="handleClickListItem(item)"
:key="'list' + item.id"
v-for="(item, index) in list"
>
<div class="item"
@click="handleClickListItem(item)"
:key="'list' + item.id"
v-for="(item, index) in list">
<div class="item-cnt">{{ index + 1 }}{{ item.content }}</div>
<img
src="@/assets/img/shuju/command/arrow-right-green.png"
alt=""
class="i-arrow"
/>
<img src="@/assets/img/shuju/command/arrow-right-green.png"
alt=""
class="i-arrow" />
</div>
</div>
</div>
@ -501,7 +478,7 @@ export default {
},
},
data() {
data () {
return {
hidden: true,
placeType: "",
@ -514,16 +491,16 @@ export default {
computed: {},
watch: {},
mounted() {},
mounted () { },
methods: {
handleWheel(e) {
handleWheel (e) {
if (this.$refs.pop.clientHeight >= 321) {
e.stopPropagation();
}
},
handleClickBtn(type) {
handleClickBtn (type) {
this.$emit("operate", type, {
placeType: this.placeType,
id: this.srcItem.id,
@ -531,12 +508,12 @@ export default {
});
},
handleClickListItem(item) {
handleClickListItem (item) {
console.log("handleClickListItem", item);
this.$emit("clickListItem", item);
},
async show(item) {
async show (item) {
console.log("-----------------show:", item);
const { placeType, latitude, longitude } = item;
if (!placeType) {
@ -620,7 +597,7 @@ export default {
return true;
},
async loadResi(info) {
async loadResi (info) {
const url = "/epmetuser/icresiuser/resi-brief/" + info.id;
// const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/distribution"
@ -675,7 +652,7 @@ export default {
}
},
async loadPublicService(info) {
async loadPublicService (info) {
const url = "/gov/org/icPublicService/detail";
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/icPublicService/detail"
@ -700,7 +677,7 @@ export default {
}
},
async loadEvent(info) {
async loadEvent (info) {
const url = "/gov/project/icEvent/detail";
//const url = "http://yapi.elinkservice.cn/mock/245/api/gov/project/icEvent/processAnalysis/eventDetail/" + this.eventId;
@ -715,7 +692,7 @@ export default {
}
},
async loadDangerousChemicals(info) {
async loadDangerousChemicals (info) {
const url = "/gov/org/icDangerousChemicals/detail";
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/icDangerousChemicals/detail"
@ -743,7 +720,7 @@ export default {
}
},
async loadCityManagement(info) {
async loadCityManagement (info) {
const url = "/gov/org/icCityManagement/detail";
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/icCityManagement/detail"
@ -768,7 +745,7 @@ export default {
}
},
async loadCommunityOrg(info) {
async loadCommunityOrg (info) {
// const url = "/gov/org/icCityManagement/detail"
const url =
"/heart/iccommunityselforganization/community-self-org-detail/" +
@ -794,7 +771,7 @@ export default {
}
},
async loadGridInfo(info) {
async loadGridInfo (info) {
const url = "/gov/org/icSuperiorResource/detail";
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/icSuperiorResource/detail"
@ -819,7 +796,7 @@ export default {
}
},
async loadEnterprisePartrol(info) {
async loadEnterprisePartrol (info) {
const url = "/gov/org/enterprise/detail/" + info.id;
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/enterprise/detail"
@ -833,7 +810,7 @@ export default {
this.$message.error(msg);
}
},
async loadVaccinePoint(info) {
async loadVaccinePoint (info) {
const url = "/epmetuser/icPointVaccinesInoculation/" + info.id;
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/enterprise/detail"
@ -847,7 +824,7 @@ export default {
this.$message.error(msg);
}
},
async loadHesuanPoint(info) {
async loadHesuanPoint (info) {
const url = "/epmetuser/icPointNucleicMonitoring/" + info.id;
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/enterprise/detail"
@ -861,7 +838,7 @@ export default {
this.$message.error(msg);
}
},
async loadGroupRent(info) {
async loadGroupRent (info) {
const url = "/gov/org/ichouse/" + info.id;
const { data, code, msg } = await requestGet(url);
@ -874,7 +851,7 @@ export default {
this.$message.error(msg);
}
},
async loadPartyUnit(info) {
async loadPartyUnit (info) {
const url = "/heart/icpartyunit/detail";
// const url = 'http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/detail'
let params = {
@ -896,7 +873,7 @@ export default {
}
},
async loadGridInfo(info) {
async loadGridInfo (info) {
const url = "/gov/org/grid/griddetail";
let params = {
@ -920,7 +897,7 @@ export default {
}
},
async requestList() {
async requestList () {
const url = "/data/aggregator/coverage/analysis/resourceCategories";
let params = {
agencyId: this.orgId,

4
src/views/modules/visual/communityParty/crateForm.vue

@ -26,11 +26,11 @@
</div>
<div class="info-prop">
<span>手机号</span>
<span>{{ form.mobile }}</span>
<span>{{ form.showMobile }}</span>
</div>
<div class="info-prop">
<span>身份证</span>
<span>{{ form.idCard }}</span>
<span>{{ form.showIdCard }}</span>
</div>
<div class="info-prop">
<span>地址</span>

378
src/views/modules/workSys/operAuth.vue

@ -0,0 +1,378 @@
<template>
<div class="div_main">
<div class="div_search">
<el-form :inline="true"
:model="formData"
ref="ref_searchform"
:label-width="'110px'">
<div>
<el-form-item label="操作时间"
label-width="110px"
prop="startTime">
<el-date-picker v-model="timeRange"
size="small"
type="datetimerange"
@change="handleTimeChange"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="姓名"
prop="operatorName">
<el-input v-model="formData.operatorName"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入姓名">
</el-input>
</el-form-item>
<el-form-item label="手机"
prop="operatorMobile">
<el-input v-model="formData.operatorMobile"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入手机号">
</el-input>
</el-form-item>
<el-button style="margin-left:30px"
size="small"
class="diy-button--search"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
size="small"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
</div>
</el-form>
</div>
<div class="div_table">
<div class="div_btn">
<el-button v-if="false"
style="float:left;margin-left:10px"
class="diy-button--reset"
size="small"
@click="handleExport">导出</el-button>
</div>
<el-table class="table"
ref="ref_table"
:data="tableData"
border
:height="tableHeight"
v-loading="tableLoading"
:header-cell-style="{background:'#2195FE',color:'#FFFFFF'}"
style="width: 100%">
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50"></el-table-column>
<el-table-column prop="operatorName"
header-align="center"
align="center"
label="姓名"
min-width="100">
</el-table-column>
<el-table-column prop="operatorMobile"
header-align="center"
align="center"
label="手机号"
min-width="110">
</el-table-column>
<el-table-column prop="content"
header-align="center"
align="center"
label="操作事项"
min-width="230">
</el-table-column>
<el-table-column prop="operateTime"
header-align="center"
align="center"
show-overflow-tooltip
label="操作时间"
min-width="150">
</el-table-column>
<!-- <el-table-column label="操作"
fixed="right"
width="140"
header-align="center"
align="center"
class="operate">
<template slot-scope="scope">
<el-button type="text"
class="div-table-button--detail"
size="small"
@click="handleDetail(scope.row)">查看</el-button>
</template>
</el-table-column> -->
</el-table>
<div>
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
layout="sizes, prev, pager, next, total"
:total="total">
</el-pagination>
</div>
</div>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
let loading //
export default {
data () {
return {
loading: false,
total: 0,
pageSize: 20,
pageNo: 0,
tableLoading: false,
agencyId: '',
timeRange: [],
formData: {
category: 'data_tm',
operatorName: '',//
operatorMobile: '',//
startTime: '',//yyyy-MM-dd HH:mm
endTime: '',//yyyy-MM-dd HH:mm
},
tableData: [],
}
},
components: {
},
async created () {
},
async mounted () {
//
const { user } = this.$store.state
this.agencyId = user.agencyId
await this.loadTable()
},
activated () {
this.$refs['ref_table'].doLayout()
},
methods: {
async handleSearch () {
await this.loadTable()
this.$nextTick(() => {
this.$refs.ref_table.doLayout() //
})
},
async loadTable () {
this.tableLoading = true
const url = "/sys/log/operation/page"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/natlist"
let params = {
pageSize: this.pageSize,
pageNo: this.pageNo,
...this.formData
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.total = data.total
this.tableData = data.list
this.tableData.forEach(item => {
item.isResiUserShow = item.isResiUser === '0' ? '否' : '是'
if (item.natResult === '1') {
item.natResultShow = '阳性'
} else if (item.natResult === '0') {
item.natResultShow = '阴性'
} else {
item.natResultShow = ''
}
});
} else {
this.$message.error(msg)
}
this.tableLoading = false
},
handleTimeChange (time) {
if (time) {
this.formData.startTime = time[0]
this.formData.endTime = time[1]
} else {
this.formData.startTime = ''
this.formData.endTime = ''
}
},
//
resetSearch () {
this.formData = {
category: 'data_tm',
operatorName: '',//
operatorMobile: '',//
startTime: '',//yyyy-MM-dd HH:mm
endTime: '',//yyyy-MM-dd HH:mm
}
this.timeRange = []
this.pageNo = 0
// this.loadTable()
},
handleSizeChange (val) {
this.pageSize = val
this.pageNo = 1
this.loadTable()
},
handleCurrentChange (val) {
this.pageNo = val
this.loadTable()
},
//
async handleExport () {
let title = '操作记录'
const url = "/epmetuser/icNat/export"
app.ajax.exportFilePost(
url,
this.formData,
(data, rspMsg) => {
this.download(data, title + '.xlsx')
},
(rspMsg, data) => {
this.$message.error(rspMsg);
}
);
},
//
download (data, fileName) {
if (!data) {
return
}
var csvData = new Blob([data])
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(csvData, fileName);
}
// for Non-IE (chrome, firefox etc.)
else {
var a = document.createElement('a');
document.body.appendChild(a);
a.style = 'display: none';
var url = window.URL.createObjectURL(csvData);
a.href = url;
a.download = fileName;
a.click();
a.remove();
window.URL.revokeObjectURL(url);
}
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close()
}
}
},
computed: {
tableHeight () {
return this.$store.state.inIframe ? this.clientHeight - 330 + this.iframeHeight : this.clientHeight - 330
},
...mapGetters(['clientHeight', 'iframeHeight'])
},
watch: {
},
props: {
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/management/epidemic.scss";
</style>
Loading…
Cancel
Save