Browse Source

Merge branch 'dev-烟台中转登录' of http://git.elinkit.com.cn:7070/r/epmet-oper-gov

yantai_master
dai 3 years ago
parent
commit
00db514e69
  1. 6
      package.json
  2. 580
      report.20221017.102821.29368.0.001.json
  3. 7
      src/assets/scss/people-info.scss
  4. 31
      src/router/index.js
  5. 7
      src/utils/request.js
  6. 11
      src/views/main-navbar.vue
  7. 6
      src/views/modules/base/community/buildForm.vue
  8. 6
      src/views/modules/base/community/communityForm.vue
  9. 2
      src/views/modules/base/community/communityTable.vue
  10. 43
      src/views/modules/base/community/roomDetail.vue
  11. 57
      src/views/modules/base/community/roomForm.vue
  12. 57
      src/views/modules/base/community/roomTable.vue
  13. 2
      src/views/modules/base/epidemic/antiInfo.vue
  14. 8
      src/views/modules/base/epidemic/natFocus/nfVisiteList.vue
  15. 3135
      src/views/modules/base/organization/organization.vue
  16. 1658
      src/views/modules/base/resi.vue
  17. 1010
      src/views/modules/communityParty/heart/heartForm.vue
  18. 8
      src/views/modules/communityParty/regionalParty/activitysForm.vue
  19. 8
      src/views/modules/communityParty/regionalParty/unitsForm.vue
  20. 8
      src/views/modules/communityService/dqfwzx/cpts/edit.vue
  21. 6
      src/views/modules/communityService/fuwujilu/addForm.vue
  22. 6
      src/views/modules/communityService/fuwujilu/editForm.vue
  23. 8
      src/views/modules/communityService/fuwuzuzhi/cpts/edit.vue
  24. 294
      src/views/modules/communityService/shzz/cpts/edit.vue
  25. 12
      src/views/modules/communityService/sqzzz/cpts/edit.vue
  26. 8
      src/views/modules/cpts/base/cpts/edit.vue
  27. 526
      src/views/modules/cpts/base/index.vue
  28. 1060
      src/views/modules/partymember/icpartyorg-add-or-update.vue
  29. 6
      src/views/modules/plugins/point/icpointnucleicmonitoring-add-or-update.vue
  30. 6
      src/views/modules/plugins/point/icpointvaccinesinoculation-add-or-update.vue
  31. 108
      src/views/modules/renFangTongJi/cpts/shequtongji.vue
  32. 364
      src/views/modules/renFangTongJi/index.vue
  33. 440
      src/views/modules/shequ/cpts/people-more.vue
  34. 8
      src/views/modules/shequzhili/csgltc/csglForm.vue
  35. 420
      src/views/modules/shequzhili/event/cpts/add.vue
  36. 8
      src/views/modules/shequzhili/ggfwtc/ggfwForm.vue
  37. 179
      src/views/modules/shujuduibi/canji.vue
  38. 111
      src/views/modules/shujuduibi/siwang.vue
  39. 16
      src/views/modules/visual/command/cpts/map.vue
  40. 175
      src/views/modules/visual/command/cpts/popup.vue
  41. 2
      src/views/modules/visual/cpts/map/index.vue
  42. 378
      src/views/modules/workSys/operAuth.vue
  43. 107
      src/views/pages/yantai-login-transit.vue

6
package.json

@ -16,9 +16,9 @@
"et:list": "gulp themes"
},
"dependencies": {
"@antv/l7": "^2.9.14",
"@antv/l7-draw": "^3.0.5",
"@antv/l7-maps": "^2.9.14",
"@antv/l7": "2.9.14",
"@antv/l7-draw": "3.0.5",
"@antv/l7-maps": "2.9.14",
"@riophae/vue-treeselect": "^0.4.0",
"@tinymce/tinymce-vue": "^3.2.8",
"async-validator": "^4.2.5",

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;

31
src/router/index.js

@ -26,12 +26,22 @@ export const pageRoutes = [
},
},
{
path: "/login",
path: "/login-local",
component: () => {
return CUSTOMER == "yantai"
? import("@/views/pages/yantai-login")
: import("@/views/pages/login");
},
name: "login-local",
meta: {
title: "登录",
},
},
{
path: "/login",
component: () => {
return import("@/views/pages/yantai-login-transit");
},
name: "login",
meta: {
title: "登录",
@ -147,6 +157,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 +316,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 +372,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

7
src/utils/request.js

@ -54,13 +54,6 @@ http.interceptors.response.use(response => {
const code = [10007, 401, 10001, 10005]
if (code.includes(response.data.code)) {
clearLoginInfo()
// localStorage.setItem('userType', 'work')
// let userType = localStorage.getItem("userType");
// if (userType === 'work'){
// router.replace({ name: 'loginWork' })
// }else {
// router.replace({ name: 'login' })
// }
router.replace({ name: 'login' })
return Promise.reject(response.data.msg)

11
src/views/main-navbar.vue

@ -8,10 +8,10 @@
<div class="aui-navbar__header">
<h1 class="aui-navbar__brand" @click="$router.push({ name: 'home' })">
<a class="aui-navbar__brand-lg" href="javascript:;">{{
$store.state.user.agencyName
$store.state.user.agencyName
}}</a>
<a class="aui-navbar__brand-mini" href="javascript:;">{{
$store.state.user.agencyName .slice(0, 2)
$store.state.user.agencyName.slice(0, 2)
}}</a>
</h1>
</div>
@ -48,7 +48,7 @@
</el-menu-item>
<el-menu-item
v-show="menu.showFlag==1"
v-show="menu.showFlag == 1"
v-for="(menu, idx) in $store.state.sidebarMenuList"
:key="menu.id"
:menu="menu"
@ -229,11 +229,6 @@ export default {
clearLoginInfo();
this.$router.push({ name: "login" });
// if (localStorage.getItem('userType') === 'work') {
// this.$router.push({ name: 'loginWork' })
// } else {
// this.$router.push({ name: 'login' })
// }
})
.catch(() => {});
})

6
src/views/modules/base/community/buildForm.vue

@ -372,9 +372,11 @@ export default {
markers.setGeometries([])
//
search
.searchRectangle({
.searchNearby({
keyword: this.keyWords,
bounds: map.getBounds()
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result

6
src/views/modules/base/community/communityForm.vue

@ -285,9 +285,11 @@ export default {
markers.setGeometries([])
//
search
.searchRectangle({
.searchNearby({
keyword: this.keyWords,
bounds: map.getBounds()
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result

2
src/views/modules/base/community/communityTable.vue

@ -82,7 +82,7 @@
class="diy-button--reset"
size="small"
@click="handleExportOpen">导出</el-button>
<el-button v-if="agencyObj.level == 'community'"
<el-button v-if="agencyObj.level == 'community' && false"
style="margin-left:10px"
class="diy-button--qrcode"
size="small"

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 () {

2
src/views/modules/base/epidemic/antiInfo.vue

@ -556,7 +556,7 @@ export default {
return subYear + '-' + nowMonth + '-' + nowDay
},
handleCnalceForm () {
this.$refs.detail_form.resetFields()
this.vaccineList = []
this.natList = []
this.tripList = []

8
src/views/modules/base/epidemic/natFocus/nfVisiteList.vue

@ -131,7 +131,7 @@ export default {
formData: {
visitTime: '',//访
content: '',//
realIdCard: '',
idCard: '',
name: '',
mobile: '',
origin: ''
@ -150,7 +150,7 @@ export default {
async initTable (row, origin) {
this.formData.realIdCard = row.realIdCard
this.formData.idCard = row.realIdCard
this.formData.name = row.name
this.formData.mobile = row.mobile
this.formData.origin = origin
@ -167,7 +167,7 @@ export default {
// const url = 'http://yapi.elinkservice.cn/mock/245/epmetuser/followup/page'
let params = {
name: this.formData.name,
idCard: this.formData.realIdCard,
idCard: this.formData.idCard,
pageNo: this.pageNo,
pageSize: this.pageSize,
origin: this.formData.origin
@ -225,7 +225,7 @@ export default {
const url = "/epmetuser/followup/export"
let params = {
idCard: this.formData.realIdCard,
idCard: this.formData.idCard,
name: this.formData.name,
origin: this.formData.origin
}

3135
src/views/modules/base/organization/organization.vue

File diff suppressed because it is too large

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

File diff suppressed because it is too large

1010
src/views/modules/communityParty/heart/heartForm.vue

File diff suppressed because it is too large

8
src/views/modules/communityParty/regionalParty/activitysForm.vue

@ -425,7 +425,7 @@ export default {
// map TMap.Map()
map = new window.TMap.Map(document.getElementById('app'), {
center: center, //
zoom: 17.2, //
zoom: 16.2, //
pitch: 43.5, //
rotation: 45 //
})
@ -470,9 +470,11 @@ export default {
markers.setGeometries([])
//
search
.searchRectangle({
.searchNearby({
keyword: this.keyWords,
bounds: map.getBounds()
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result

8
src/views/modules/communityParty/regionalParty/unitsForm.vue

@ -354,7 +354,7 @@ export default {
// map TMap.Map()
map = new window.TMap.Map(document.getElementById('app'), {
center: center, //
zoom: 17.2, //
zoom: 16.2, //
pitch: 43.5, //
rotation: 45 //
})
@ -399,9 +399,11 @@ export default {
markers.setGeometries([])
//
search
.searchRectangle({
.searchNearby({
keyword: this.keyWords,
bounds: map.getBounds()
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result

8
src/views/modules/communityService/dqfwzx/cpts/edit.vue

@ -449,7 +449,7 @@ export default {
// map TMap.Map()
map = new window.TMap.Map(document.getElementById("app"), {
center: center, //
zoom: 17.2, //
zoom: 16.2, //
pitch: 43.5, //
rotation: 45, //
});
@ -493,9 +493,11 @@ export default {
markers.setGeometries([]);
//
search
.searchRectangle({
.searchNearby({
keyword: this.dataForm.locationAddress,
bounds: map.getBounds(),
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result;

6
src/views/modules/communityService/fuwujilu/addForm.vue

@ -1023,9 +1023,11 @@ export default {
markers.setGeometries([]);
//
search
.searchRectangle({
.searchNearby({
keyword: this.keyWords,
bounds: map.getBounds(),
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result;

6
src/views/modules/communityService/fuwujilu/editForm.vue

@ -608,9 +608,11 @@ export default {
markers.setGeometries([])
//
search
.searchRectangle({
.searchNearby({
keyword: this.keyWords,
bounds: map.getBounds()
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result

8
src/views/modules/communityService/fuwuzuzhi/cpts/edit.vue

@ -279,7 +279,7 @@ export default {
// map TMap.Map()
map = new window.TMap.Map(document.getElementById("app"), {
center: center, //
zoom: 17.2, //
zoom: 16.2, //
pitch: 43.5, //
rotation: 45, //
});
@ -323,9 +323,11 @@ export default {
markers.setGeometries([]);
//
search
.searchRectangle({
.searchNearby({
keyword: this.fmData.address,
bounds: map.getBounds(),
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result;

294
src/views/modules/communityService/shzz/cpts/edit.vue

@ -2,76 +2,90 @@
<div>
<div>
<el-form
ref="ref_form"
:inline="true"
:model="dataForm"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form"
ref="ref_form"
:inline="true"
:model="dataForm"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form"
>
<el-form-item label="头像" label-width="150px"
prop="imageList"
style="display: block">
<el-form-item
label="头像"
label-width="150px"
prop="imageList"
style="display: block"
>
<div class="imsg-list">
<div v-for="(item, index) in dataForm.imageList" :key="index" class="imgs-item">
<div
v-for="(item, index) in dataForm.imageList"
:key="index"
class="imgs-item"
>
<el-image
style="width: 100px; height: 100px"
:src="item"
fit="fill"
:preview-src-list="dataForm.imageList"></el-image>
style="width: 100px; height: 100px"
:src="item"
fit="fill"
:preview-src-list="dataForm.imageList"
></el-image>
<i class="el-icon-delete" @click="handleDelimg(item, index)"></i>
</div>
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader"
v-if="dataForm.imageList.length < 1 && !disabled"
:action="uploadUlr"
:data="{customerId:customerId}"
:show-file-list="false"
:disabled="disabled"
:on-progress="handleProgress"
:on-success="handleImgSuccess"
:before-upload="beforeImgUpload"
accept=".jpg,.jpeg,.png,.gif,.bmp,.JPG,.JPEG,.PBG,.GIF,.BMP">
<el-progress v-if="uploading" :width="100" type="circle" :percentage="unloadPencent"></el-progress>
<el-upload
:headers="$getElUploadHeaders()"
class="avatar-uploader"
v-if="dataForm.imageList.length < 1 && !disabled"
:action="uploadUlr"
:data="{ customerId: customerId }"
:show-file-list="false"
:disabled="disabled"
:on-progress="handleProgress"
:on-success="handleImgSuccess"
:before-upload="beforeImgUpload"
accept=".jpg,.jpeg,.png,.gif,.bmp,.JPG,.JPEG,.PBG,.GIF,.BMP"
>
<el-progress
v-if="uploading"
:width="100"
type="circle"
:percentage="unloadPencent"
></el-progress>
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</el-form-item>
<el-form-item
label="组织名称 "
prop="societyName"
label-width="150px"
style="display: block"
label="组织名称 "
prop="societyName"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入组织名称 "
v-model="dataForm.societyName"
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入组织名称 "
v-model="dataForm.societyName"
>
</el-input>
</el-form-item>
<el-form-item
label="服务内容"
prop="serviceMatters"
label-width="150px"
style="display: block"
label="服务内容"
prop="serviceMatters"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入服务内容,不超过1000字"
v-model="dataForm.serviceMatters"
class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入服务内容,不超过1000字"
v-model="dataForm.serviceMatters"
></el-input>
</el-form-item>
<!-- <el-form-item
<!-- <el-form-item
label="负责人姓名 "
prop="personInCharge"
label-width="150px"
@ -88,36 +102,36 @@
</el-form-item>-->
<el-form-item
label="服务电话 "
prop="mobile"
label-width="150px"
style="display: block"
label="服务电话 "
prop="mobile"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入服务电话 "
v-model="dataForm.mobile"
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入服务电话 "
v-model="dataForm.mobile"
>
</el-input>
</el-form-item>
<el-form-item
label="服务时间 "
prop="serviceTimeStr"
label-width="150px"
style="display: block"
label="服务时间 "
prop="serviceTimeStr"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入服务时间 "
v-model="dataForm.serviceTimeStr"
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入服务时间 "
v-model="dataForm.serviceTimeStr"
>
</el-input>
<!-- <el-date-picker
<!-- <el-date-picker
v-model="dataForm.serviceTime"
type="daterange"
range-separator="至"
@ -129,23 +143,23 @@
</el-form-item>
<el-form-item
label="绑定管理员"
prop="adminStaffId"
label-width="150px"
style="display: block"
label="绑定管理员"
prop="adminStaffId"
label-width="150px"
style="display: block"
>
<el-select
class="item_width_1"
v-model="dataForm.adminStaffId"
placeholder="请选择"
clearable
filterable
class="item_width_1"
v-model="dataForm.adminStaffId"
placeholder="请选择"
clearable
filterable
>
<el-option
v-for="item in staffList"
:key="item.staffId"
:label="item.staffName"
:value="item.staffId"
v-for="item in staffList"
:key="item.staffId"
:label="item.staffName"
:value="item.staffId"
>
</el-option>
</el-select>
@ -198,21 +212,20 @@
<div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<el-button
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"
>
</el-button
>
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"
>
</el-button>
</div>
</div>
</template>
<script>
import {mapGetters} from "vuex";
import {Loading} from "element-ui"; // Loading
import {requestPost} from "@/js/dai/request";
import { mapGetters } from "vuex";
import { Loading } from "element-ui"; // Loading
import { requestPost } from "@/js/dai/request";
var map;
var search;
@ -223,11 +236,11 @@ let loading; // 加载动画
export default {
data() {
return {
uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadqrcodeV2',
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadqrcodeV2",
btnLoading: false,
uploading: false,
disabled: false,
customerId: '',
customerId: "",
formType: "add", // addeditdetail
agencyId: "",
@ -259,7 +272,7 @@ export default {
dataRule() {
return {
societyName: [
{required: true, message: "组织名称 不能为空", trigger: "blur"},
{ required: true, message: "组织名称 不能为空", trigger: "blur" },
{
min: 1,
max: 50,
@ -268,10 +281,10 @@ export default {
},
],
imageList: [
{required: true, message: "头像不能为空", trigger: "blur"},
{ required: true, message: "头像不能为空", trigger: "blur" },
],
serviceMatters: [
{required: true, message: "服务内容不能为空", trigger: "blur"},
{ required: true, message: "服务内容不能为空", trigger: "blur" },
],
/*personInCharge: [
{required: true, message: "负责人姓名不能为空", trigger: "blur"},
@ -280,10 +293,10 @@ export default {
{ required: true, message: "绑定管理员不能为空", trigger: "blur" },
],*/
mobile: [
{required: true, message: "服务电话不能为空", trigger: "blur"},
{ required: true, message: "服务电话不能为空", trigger: "blur" },
],
serviceTimeStr: [
{required: true, message: "服务时间不能为空", trigger: "blur"},
{ required: true, message: "服务时间不能为空", trigger: "blur" },
],
/*longitude: [
{ required: true, message: "位置坐标不能为空", trigger: "blur" },
@ -316,12 +329,12 @@ export default {
// map TMap.Map()
map = new window.TMap.Map(document.getElementById("app"), {
center: center, //
zoom: 17.2, //
zoom: 16.2, //
pitch: 43.5, //
rotation: 45, //
});
search = new window.TMap.service.Search({pageSize: 10});
search = new window.TMap.service.Search({ pageSize: 10 });
//
markers = new TMap.MultiMarker({
map: map,
@ -358,52 +371,54 @@ export default {
markers.setGeometries([]);
//
search
.searchRectangle({
keyword: this.dataForm.address,
bounds: map.getBounds(),
})
.then((result) => {
let {data} = result;
if (Array.isArray(data) && data.length > 0) {
const {
location: {lat, lng},
} = data[0];
map.setCenter(new TMap.LatLng(lat, lng));
this.setMarker(lat, lng);
this.dataForm.latitude = lat;
this.dataForm.longitude = lng;
} else {
this.$message.error("未检索到相关位置坐标");
}
});
.searchNearby({
keyword: this.dataForm.address,
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result;
if (Array.isArray(data) && data.length > 0) {
const {
location: { lat, lng },
} = data[0];
map.setCenter(new TMap.LatLng(lat, lng));
this.setMarker(lat, lng);
this.dataForm.latitude = lat;
this.dataForm.longitude = lng;
} else {
this.$message.error("未检索到相关位置坐标");
}
});
},
beforeImgUpload(file) {
const isPNG = (file.type === 'image/png') || (file.type === 'image/jpeg')
const isLt1M = file.size / 1024 / 1024 < 10
const isPNG = file.type === "image/png" || file.type === "image/jpeg";
const isLt1M = file.size / 1024 / 1024 < 10;
if (!isPNG) {
this.$message.error('上传图片只能是 PNG 或 JPEG 格式!')
this.$message.error("上传图片只能是 PNG 或 JPEG 格式!");
}
if (!isLt1M) {
this.$message.error('上传图片大小不能超过 10MB!')
this.$message.error("上传图片大小不能超过 10MB!");
}
return isPNG && isLt1M
return isPNG && isLt1M;
},
handleProgress(event, file, fileList) {
this.uploading = true
this.unloadPencent = Number(file.percentage.toFixed(0))
this.uploading = true;
this.unloadPencent = Number(file.percentage.toFixed(0));
},
handleImgSuccess(res, file) {
if (res.code === 0 && res.msg === 'success') {
this.uploading = false
this.unloadPencent = 0
this.dataForm.imageList.push(res.data.url)
if (res.code === 0 && res.msg === "success") {
this.uploading = false;
this.unloadPencent = 0;
this.dataForm.imageList.push(res.data.url);
} else {
this.$message.error(res.msg)
this.$message.error(res.msg);
}
},
handleDelimg(item, index) {
this.dataForm.imageList.splice(index, 1)
this.dataForm.imageList.splice(index, 1);
},
handleMoveCenter() {
//
@ -419,9 +434,9 @@ export default {
this.$refs.ref_form.resetFields();
this.formType = type;
this.dataForm.imageList = []
this.dataForm.imageList = [];
if (row) {
this.dataForm = {...this.dataForm, ...row};
this.dataForm = { ...this.dataForm, ...row };
if (row.imgUrl) {
this.dataForm.imageList.push(row.imgUrl);
}
@ -436,7 +451,7 @@ export default {
async loadAgency() {
const url = "/epmetuser/customerstaff/staffbasicinfo";
let params = {};
const {data, code, msg} = await requestPost(url, params);
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.agencyId = data.agencyId;
@ -455,7 +470,7 @@ export default {
pageSize: 100000,
};
const {data, code, msg} = await requestPost(url, params);
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.staffList = data.staffList.map((item) => {
@ -485,7 +500,6 @@ export default {
},
async submit() {
let url = "";
if (this.formType === "add") {
url = "/heart/societyorg/add";
@ -496,7 +510,7 @@ export default {
this.dataForm.societyId = this.societyId;
}
const {data, code, msg} = await requestPost(url, this.dataForm);
const { data, code, msg } = await requestPost(url, this.dataForm);
if (code === 0) {
this.$message({
@ -520,7 +534,7 @@ export default {
this.societyId = ""; //ID
this.$refs.ref_form.resetFields();
this.propertyFormShow = false;
/*
/*
this.dataForm = {
societyName: "",
serviceMatters: "",
@ -535,7 +549,6 @@ export default {
latitude: "",
imageList:[]
};*/
},
//
startLoading() {
@ -597,15 +610,14 @@ export default {
}
.avatar-uploader {
::v-deep
.el-upload {
::v-deep .el-upload {
cursor: pointer;
position: relative;
overflow: hidden;
}
.el-upload:hover {
border-color: #409EFF;
border-color: #409eff;
}
.avatar {

12
src/views/modules/communityService/sqzzz/cpts/edit.vue

@ -314,9 +314,7 @@ export default {
principalPhone: [
{ required: true, message: "联系电话不能为空", trigger: "blur" },
],
address: [
{ required: true, message: "地址不能为空", trigger: "blur" },
],
address: [{ required: true, message: "地址不能为空", trigger: "blur" }],
longitude: [
{ required: true, message: "请拖动地图选择坐标点", trigger: "blur" },
],
@ -404,7 +402,7 @@ export default {
// map TMap.Map()
map = new window.TMap.Map(document.getElementById("app"), {
center: center, //
zoom: 17.2, //
zoom: 16.2, //
pitch: 43.5, //
rotation: 45, //
});
@ -448,9 +446,11 @@ export default {
markers.setGeometries([]);
//
search
.searchRectangle({
.searchNearby({
keyword: this.dataForm.address,
bounds: map.getBounds(),
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result;

8
src/views/modules/cpts/base/cpts/edit.vue

@ -635,7 +635,7 @@ export default {
// map TMap.Map()
map = new window.TMap.Map(document.getElementById("app"), {
center: center, //
zoom: 13, //
zoom: 16.2, //
pitch: 43.5, //
rotation: 45, //
});
@ -679,9 +679,11 @@ export default {
markers.setGeometries([]);
//
search
.searchRectangle({
.searchNearby({
keyword: this.fmData[item.keyName],
bounds: map.getBounds(),
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result;

526
src/views/modules/cpts/base/index.vue

@ -1,239 +1,315 @@
<template>
<div class="div_main">
<div v-show="true">
<div class="div_search"
ref="ref_search">
<el-form :inline="true"
ref="ref_searchform"
label-width="100px">
<div class="div_search" ref="ref_search">
<el-form :inline="true" ref="ref_searchform" label-width="100px">
<div>
<el-form-item v-for="item in searchParams"
:key="'serach' + item.keyName"
:label="item.field"
:prop="item.keyName">
<el-form-item
v-for="item in searchParams"
:key="'serach' + item.keyName"
:label="item.field"
:prop="item.keyName"
>
<template v-if="item.type == 'input'">
<el-input v-model="item.value"
style="width: 240px"
size="small"
clearable
:placeholder="item.placeholder || '请输入'">
<el-input
v-model="item.value"
style="width: 240px"
size="small"
clearable
:placeholder="item.placeholder || '请输入'"
>
</el-input>
</template>
<template v-else-if="item.type == 'select'">
<el-select v-model="item.value"
:placeholder="item.placeholder || '请选择'"
size="small"
clearable
style="width: 240px"
:multiple="item.multiple || false">
<el-option v-for="item in item.optionList"
:key="'serach' + item.keyName + item.value"
:label="item.label"
:value="item.value">
<el-select
v-model="item.value"
:placeholder="item.placeholder || '请选择'"
size="small"
clearable
style="width: 240px"
:multiple="item.multiple || false"
>
<el-option
v-for="item in item.optionList"
:key="'serach' + item.keyName + item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</template>
<template v-else-if="item.type == 'cascader'">
<el-cascader v-model="item.value"
:placeholder="item.placeholder || '请选择'"
:options="item.optionList"
:props="item.optionProps"
:show-all-levels="false"
size="small"
clearable
style="width: 240px"
@change="(e) => handleChangeCascader(e, item)">
<el-cascader
v-model="item.value"
:placeholder="item.placeholder || '请选择'"
:options="item.optionList"
:props="item.optionProps"
:show-all-levels="false"
size="small"
clearable
style="width: 240px"
@change="(e) => handleChangeCascader(e, item)"
>
</el-cascader>
</template>
<template v-if="item.type == 'date-range'">
<el-date-picker v-model="item.supValues[0]"
type="date"
placeholder="开始时间"
style="width: 150px"
value-format="yyyy-MM-dd"
clearable>
<el-date-picker
v-model="item.supValues[0]"
type="date"
placeholder="开始时间"
style="width: 150px"
value-format="yyyy-MM-dd"
clearable
>
</el-date-picker>
<span style="display: inline-block; margin: 0 10px"></span>
<el-date-picker v-model="item.supValues[1]"
type="date"
placeholder="结束时间"
style="width: 150px"
value-format="yyyy-MM-dd"
clearable>
<el-date-picker
v-model="item.supValues[1]"
type="date"
placeholder="结束时间"
style="width: 150px"
value-format="yyyy-MM-dd"
clearable
>
</el-date-picker>
</template>
</el-form-item>
<el-button style="margin-left: 30px; margin-bottom: 20px"
size="small"
class="diy-button--search"
@click="handleSearch">查询</el-button>
<el-button style="margin-left: 10px; margin-bottom: 20px"
size="small"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
<el-button
style="margin-left: 30px; margin-bottom: 20px"
size="small"
class="diy-button--search"
@click="handleSearch"
>查询</el-button
>
<el-button
style="margin-left: 10px; margin-bottom: 20px"
size="small"
class="diy-button--reset"
@click="resetSearch"
>重置</el-button
>
</div>
</el-form>
</div>
<div class="div_table"
:style="{ height: maxTableHeight + 130 + 'px' }">
<div class="div_table" :style="{ height: maxTableHeight + 130 + 'px' }">
<div class="div_btn">
<el-button class="diy-button--add"
v-if="addUrl"
size="small"
@click="handleAdd">新增</el-button>
<el-button v-if="mubanUrl"
class="btn_upload diy-button--export"
size="small"
@click="handleExportModule('room')">下载模板</el-button>
<el-upload :headers="$getElUploadHeaders()"
v-if="importUrl"
ref="upload"
class="upload-btn"
action="uploadUlr"
:limit="1"
:accept="'.xls,.xlsx'"
:with-credentials="true"
:show-file-list="false"
:auto-upload="true"
:before-upload="beforeExcelUpload"
:http-request="uploadHttpRequest">
<el-button size="small"
class="btn_upload diy-button--delete">导入</el-button>
<el-button
class="diy-button--add"
v-if="addUrl"
size="small"
@click="handleAdd"
>新增</el-button
>
<el-button
v-if="mubanUrl"
class="btn_upload diy-button--export"
size="small"
@click="handleExportModule('room')"
>下载模板</el-button
>
<el-upload
:headers="$getElUploadHeaders()"
v-if="importUrl"
ref="upload"
class="upload-btn"
action="uploadUlr"
:limit="1"
:accept="'.xls,.xlsx'"
:with-credentials="true"
:show-file-list="false"
:auto-upload="true"
:before-upload="beforeExcelUpload"
:http-request="uploadHttpRequest"
>
<el-button size="small" class="btn_upload diy-button--delete"
>导入</el-button
>
</el-upload>
<el-button v-if="exportUrl"
@click="handleExport"
class="btn_upload diy-button--reset"
size="small">导出</el-button>
<el-button
v-if="exportUrl"
@click="handleExport"
class="btn_upload diy-button--reset"
size="small"
>导出</el-button
>
<el-button
v-if="delMultipleUrl"
size="small"
@click="handleDeleteMultiple"
>批量删除</el-button
>
<slot
name="listBtn"
v-bind:multipleSelection="multipleSelection"
></slot>
</div>
<el-table ref="ref_table"
:data="tableData"
border
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
class="table"
style="width: 100%"
:height="maxTableHeight">
<template v-for="item in tableParams"
:prop="item.keyName">
<el-table-column v-if="item.type == 'no'"
:key="'table-no' + item.keyName"
:label="item.field"
fixed="left"
type="index"
align="center"
width="50" />
<el-table-column v-else-if="item.type == 'text'"
:key="'table' + item.keyName"
:prop="item.keyName"
:label="item.field"
align="center"
:width="item.width || ''"
:show-overflow-tooltip="true">
<el-table
ref="ref_table"
:data="tableData"
border
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
class="table"
style="width: 100%"
:height="maxTableHeight"
@selection-change="handleSelectionChange"
>
<template v-for="(item, index) in tableParams" :prop="item.keyName">
<el-table-column
v-if="item.type == 'selection'"
:key="'table-selection' + index"
type="selection"
align="center"
width="50"
/>
<el-table-column
v-if="item.type == 'no'"
:key="'table-no' + item.keyName"
:label="item.field"
fixed="left"
type="index"
align="center"
width="50"
/>
<el-table-column
v-else-if="item.type == 'text'"
:key="'table' + item.keyName"
:prop="item.keyName"
:label="item.field"
align="center"
:width="item.width || ''"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column v-else-if="item.type == 'array'"
:key="'table-array' + item.keyName"
:prop="item.keyName"
:label="item.field"
align="center"
:width="item.width || ''"
:show-overflow-tooltip="true">
<el-table-column
v-else-if="item.type == 'array'"
:key="'table-array' + item.keyName"
:prop="item.keyName"
:label="item.field"
align="center"
:width="item.width || ''"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
{{ scope.row[item.keyName].join(item.arrayDiv || ",") }}
</template>
</el-table-column>
</template>
<el-table-column fixed="right"
label="操作"
align="center"
width="200">
<el-table-column
v-if="operateCol"
fixed="right"
label="操作"
align="center"
width="200"
>
<template slot-scope="scope">
<slot name="listBtnbefore"
v-bind:item="scope.row"></slot>
<el-button v-if="infoUrl && infoAuth(scope.row)"
@click="handleWatch(scope.row)"
type="text"
size="small"
class=".div-table-button--detail">查看</el-button>
<el-button v-if="editUrl && editAuth(scope.row)"
@click="handleEdit(scope.row)"
type="text"
size="small"
class="div-table-button--edit">{{ editBtnName(scope.row) }}</el-button>
<el-popconfirm v-if="delUrl && delAuth(scope.row)"
title="删除之后无法回复,确认删除?"
@onConfirm="handleDelete(scope.row, scope.$index)"
@confirm="handleDelete(scope.row, scope.$index)">
<el-button slot="reference"
type="text"
size="small"
style="margin-left: 10px"
class="div-table-button--delete">删除</el-button>
<slot name="listBtnbefore" v-bind:item="scope.row"></slot>
<el-button
v-if="infoUrl && infoAuth(scope.row)"
@click="handleWatch(scope.row)"
type="text"
size="small"
class=".div-table-button--detail"
>查看</el-button
>
<el-button
v-if="editUrl && editAuth(scope.row)"
@click="handleEdit(scope.row)"
type="text"
size="small"
class="div-table-button--edit"
>{{ editBtnName(scope.row) }}</el-button
>
<el-popconfirm
v-if="delUrl && delAuth(scope.row)"
title="删除之后无法回复,确认删除?"
@onConfirm="handleDelete(scope.row, scope.$index)"
@confirm="handleDelete(scope.row, scope.$index)"
>
<el-button
slot="reference"
type="text"
size="small"
style="margin-left: 10px"
class="div-table-button--delete"
>删除</el-button
>
</el-popconfirm>
<slot name="listBtnSup"
v-bind:item="scope.row"></slot>
<slot name="listBtnSup" v-bind:item="scope.row"></slot>
</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="parseInt(pageSize)"
layout="sizes, prev, pager, next, total"
:total="total">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="parseInt(pageSize)"
layout="sizes, prev, pager, next, total"
:total="total"
>
</el-pagination>
</div>
</div>
</div>
<!-- 修改弹出框 -->
<el-dialog v-if="formShow"
:visible.sync="formShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
:width="editParamsDiv ? '1100px' : '850px'"
top="5vh"
class="dialog-h"
@closed="handleClose">
<edit-form v-if="formShow"
ref="editForm"
:idName="idName"
:formId="formId"
:formType="formType"
:infoUrl="infoUrl"
:addUrl="addUrl"
:editUrl="editUrl"
:editParams="editParams"
:editParamsDiv="editParamsDiv"
:editElseRules="editElseRules"
:editFixedParams="editFixedParams"
:formBtnFixed="formBtnFixed"
:editConfig="editConfig"
@close="handleClose"
@afterEdit="handleEditSuccess">
<el-dialog
v-if="formShow"
:visible.sync="formShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
:width="editParamsDiv ? '1100px' : '850px'"
top="5vh"
class="dialog-h"
@closed="handleClose"
>
<edit-form
v-if="formShow"
ref="editForm"
:idName="idName"
:formId="formId"
:formType="formType"
:infoUrl="infoUrl"
:addUrl="addUrl"
:editUrl="editUrl"
:editParams="editParams"
:editParamsDiv="editParamsDiv"
:editElseRules="editElseRules"
:editFixedParams="editFixedParams"
:formBtnFixed="formBtnFixed"
:editConfig="editConfig"
@close="handleClose"
@afterEdit="handleEditSuccess"
>
<template v-slot:bottomSup="{ id, formType, info }">
<slot name="editBottomSup"
v-bind:id="id"
v-bind:formType="formType"
v-bind:info="info"></slot>
<slot
name="editBottomSup"
v-bind:id="id"
v-bind:formType="formType"
v-bind:info="info"
></slot>
</template>
<template v-slot:operateSup="{ id, formType, info }">
<slot name="editOperateSup"
v-bind:id="id"
v-bind:formType="formType"
v-bind:info="info"></slot>
<slot
name="editOperateSup"
v-bind:id="id"
v-bind:formType="formType"
v-bind:info="info"
></slot>
</template>
</edit-form>
</el-dialog>
@ -282,6 +358,10 @@ export default {
type: String,
default: "",
},
delMultipleUrl: {
type: String,
default: "",
},
infoUrl: {
type: String,
default: "",
@ -346,9 +426,14 @@ export default {
type: Boolean,
default: true,
},
operateCol: {
type: Boolean,
default: true,
},
},
data () {
data() {
return {
tableData: [],
@ -362,11 +447,13 @@ export default {
formType: "", // list add edit info
ref_search_height: 100,
multipleSelection: [],
};
},
computed: {
maxTableHeight () {
maxTableHeight() {
const { ref_search_height } = this;
return this.$store.state.inIframe
? this.clientHeight - ref_search_height - 265 + this.iframeHeight
@ -377,7 +464,7 @@ export default {
watch: {},
async mounted () {
async mounted() {
console.log(this.$store.state);
this.user = this.$store.state.user;
@ -391,19 +478,24 @@ export default {
this.computeSearchHeight();
},
activated () {
activated() {
console.log("-------------activated");
this.$refs["ref_table"].doLayout();
},
methods: {
computeSearchHeight () {
handleSelectionChange(val) {
console.log(val);
this.multipleSelection = val;
},
computeSearchHeight() {
this.ref_search_height = this.$refs["ref_search"].clientHeight;
console.log(this.$refs["ref_search"]);
console.log(this.ref_search_height);
},
iniSearchData () {
iniSearchData() {
const { searchParams } = this;
searchParams.forEach((item, index) => {
if (item.type == "select" || item.type == "cascader") {
@ -419,7 +511,7 @@ export default {
});
},
async getFmOptions (index, url, params, cookFn) {
async getFmOptions(index, url, params, cookFn) {
const { data, code, msg } = await requestPost(url, {
...params,
});
@ -432,19 +524,19 @@ export default {
}
},
handleChangeCascader (vals, item) {
handleChangeCascader(vals, item) {
if (typeof item.handleChangeFn == "function") {
item.handleChangeFn(vals, item);
}
},
handleSearch (val) {
handleSearch(val) {
this.pageNo = 1;
this.getTableData();
},
beforeExcelUpload (file) {
beforeExcelUpload(file) {
console.log("file", file);
const isType = file.type === "application/vnd.ms-excel";
const isTypeComputer =
@ -462,7 +554,7 @@ export default {
return fileType && isLt1M;
},
async uploadHttpRequest (file) {
async uploadHttpRequest(file) {
let { importUrl: url } = this;
if (!url) return;
@ -491,7 +583,7 @@ export default {
});
},
async handleExportModule () {
async handleExportModule() {
let { mubanUrl: url } = this;
if (!url) return;
@ -528,7 +620,7 @@ export default {
});
},
async handleExport () {
async handleExport() {
const { exportUrl: url } = this;
if (!url) return;
@ -566,13 +658,13 @@ export default {
});
},
handleAdd () {
handleAdd() {
this.formType = "add";
this.formTitle = "新增";
this.formShow = true;
},
handleWatch (row) {
handleWatch(row) {
const { idName } = this;
this.formType = "watch";
this.formId = row[idName];
@ -580,7 +672,7 @@ export default {
this.formShow = true;
},
handleEdit (row) {
handleEdit(row) {
const { idName } = this;
this.formType = "edit";
this.formId = row[idName];
@ -588,17 +680,35 @@ export default {
this.formShow = true;
},
handleClose () {
handleClose() {
this.formShow = false;
this.getTableData();
},
handleEditSuccess () {
handleEditSuccess() {
this.handleClose();
// this.getTableData();
},
async handleDelete (rowData, rowIndex) {
async handleDeleteMultiple() {
let { delMultipleUrl: url } = this;
if (!url) return;
const { multipleSelection, idName } = this;
const { data, code, msg } = await requestPost(url, [
...multipleSelection.map((item) => item[idName]),
]);
if (code === 0) {
this.$message.success("批量删除成功!");
this.getTableData();
} else {
this.$message.error("操作失败!");
}
},
async handleDelete(rowData, rowIndex) {
console.log(rowData, rowIndex);
let { delUrl: url } = this;
if (!url) return;
@ -621,7 +731,7 @@ export default {
}
},
computeFmData () {
computeFmData() {
let fmData = {};
this.searchParams.forEach((item) => {
fmData[item.keyName] = item.value;
@ -634,11 +744,11 @@ export default {
return fmData;
},
refresh () {
refresh() {
this.getTableData();
},
async getTableData () {
async getTableData() {
const { tableUrl: url } = this;
if (!url) return;
@ -653,25 +763,25 @@ export default {
this.total = data.total || 0;
this.tableData = data.list
? data.list.map((item) => {
return item;
})
return item;
})
: [];
} else {
this.$message.error(msg);
}
},
handleSizeChange (val) {
handleSizeChange(val) {
this.pageSize = val;
window.localStorage.setItem("pageSize", val);
this.getTableData();
},
handleCurrentChange (val) {
handleCurrentChange(val) {
this.pageNo = val;
this.getTableData();
},
resetSearch () {
resetSearch() {
console.log("----------------resetSearch", this.searchParams);
this.searchParams.forEach((item) => {
if (typeof item.value == "string") {

1060
src/views/modules/partymember/icpartyorg-add-or-update.vue

File diff suppressed because it is too large

6
src/views/modules/plugins/point/icpointnucleicmonitoring-add-or-update.vue

@ -282,9 +282,11 @@ export default {
markers.setGeometries([]);
//
search
.searchRectangle({
.searchNearby({
keyword: this.dataForm.address,
bounds: map.getBounds(),
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result;

6
src/views/modules/plugins/point/icpointvaccinesinoculation-add-or-update.vue

@ -367,9 +367,11 @@ export default {
markers.setGeometries([]);
//
search
.searchRectangle({
.searchNearby({
keyword: this.dataForm.address,
bounds: map.getBounds(),
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result;

108
src/views/modules/renFangTongJi/cpts/shequtongji.vue

@ -0,0 +1,108 @@
<template>
<div v-if="iniLoaded">
<base-page
:searchParams="searchParams"
:tableParams="tableParams"
:tableUrl="tableUrl"
:operateCol="false"
idName="icDangerousChemicalsId"
></base-page>
</div>
</template>
<script>
import basePage from "@/views/modules/cpts/base/index";
import { getItemByIdInCascader, collapse } from "@/utils/cascader";
export default {
props: {
orgId: {
type: String,
default: "",
},
orgIds: {
type: Array,
default: () => [],
},
},
data() {
return {
iniLoaded: false,
searchParams: [
{
field: "选择范围",
keyName: "org",
type: "cascader",
value: "",
// optionUrl: "/gov/org/customeragency/agencygridtree",
optionUrl: "/gov/org/customeragency/my-subagency-list",
optionUrlParams: {
agencyId: this.$store.state.user.agencyId,
},
optionList: [],
optionProps: {
multiple: false,
value: "agencyId",
label: "agencyName",
children: "subAgencyList",
checkStrictly: true,
},
optionCook(obj) {
return [obj];
},
supKeys: ["orgId", "orgType"],
supValues: ["", ""],
handleChangeFn(vals, item) {
const { optionList } = item;
if (vals.length > 0) {
item["supValues"][0] = vals[vals.length - 1];
item["supValues"][1] = getItemByIdInCascader(
optionList,
vals,
"agencyId",
"subAgencyList"
)[vals.length - 1]["level"];
item["supValues"][1] =
item["supValues"][1] == "grid" ? "grid" : "agency";
} else {
item["supValues"][0] = "";
item["supValues"][1] = "";
}
},
},
],
tableParams: [
{ field: "序号", keyName: "", type: "no" },
{ field: "所属组织", keyName: "orgName", type: "text", width: "220" },
{ field: "人口总数", keyName: "userTotal", type: "text" },
{ field: "常住人口数", keyName: "czUserTotal", type: "text" },
{ field: "流动人口数", keyName: "ldUserTotal", type: "text" },
{ field: "房屋总数", keyName: "houseTotal", type: "text" },
{ field: "自住房屋数", keyName: "zzHouseTotal", type: "text" },
{ field: "出租房屋数", keyName: "czHouseTotal", type: "text" },
{ field: "闲置房屋数", keyName: "xzHouseTotal", type: "text" },
],
tableUrl: "/gov/org/house/usingCommunityUserHouseStats",
};
},
components: { basePage },
computed: {},
watch: {},
async mounted() {
this.searchParams[0].value = this.orgIds;
this.searchParams[0].supValues[0] = this.orgId;
if (this.orgId) {
this.searchParams[0].supValues[1] = "agency";
}
this.iniLoaded = true;
},
methods: {},
};
</script>
<style lang="scss" scoped></style>

364
src/views/modules/renFangTongJi/index.vue

@ -0,0 +1,364 @@
<template>
<el-card class="g-cnt">
<div class="m-cards">
<div
class="item"
:key="item.name"
@click="handleClickCard(item)"
v-for="item in list"
>
<div class="item-left">
<div class="num">{{ item.num }}</div>
<div class="name">{{ item.name }}</div>
</div>
<div class="item-right">
<div class="hint">
<div class="hint-title">较上月</div>
<b v-if="item.variation >= 0">+ {{ item.variationAbs }}</b>
<b v-else>- {{ item.variationAbs }}</b>
</div>
</div>
</div>
</div>
<div class="m-tb">
<h3>下级平台使用进度汇总</h3>
<el-table
:data="tableData"
border
style="width: 100%"
class="tb"
:height="maxTableHeight"
align="center"
>
<el-table-column label="序号" type="index" align="center" width="50" />
<el-table-column
prop="orgName"
label="所属组织"
width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="usingCommunityNum"
label="开通平台社区数"
align="center"
>
<template slot-scope="scope">
<a style="cursor: pointer" @click="showDetail(scope.row.orgId)">{{
scope.row.usingCommunityNum
}}</a>
</template>
</el-table-column>
<el-table-column
prop="userTotal"
label="人口总数"
align="center"
></el-table-column>
<el-table-column
prop="czUserTotal"
label="常住人口总数"
align="center"
></el-table-column>
<el-table-column
prop="ldUserTotal"
label="流动人口总数"
align="center"
></el-table-column>
<el-table-column
prop="houseTotal"
label="房屋总数"
align="center"
></el-table-column>
<el-table-column
prop="zzHouseTotal"
label="自住房屋总数"
align="center"
></el-table-column>
<el-table-column
prop="czHouseTotal"
label="出租房屋总数"
align="center"
></el-table-column>
<el-table-column
prop="xzHouseTotal"
label="闲置房屋总数"
align="center"
></el-table-column>
</el-table>
</div>
<!-- 修改弹出框 -->
<el-dialog
v-if="displayedDetail"
:visible="true"
title="社区列表 "
width="1150px"
top="5vh"
@close="displayedDetail = false"
>
<shequtongji
ref="shequtongji"
:orgId="detailOrgId"
:orgIds="[orgId, detailOrgId]"
/>
</el-dialog>
</el-card>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
import { mapGetters } from "vuex";
import shequtongji from "./cpts/shequtongji";
export default {
name: "renFangTongJi",
components: { shequtongji },
data() {
return {
displayedDetail: false,
tableData: [],
orgId: "",
orgType: "",
detailOrgId: "",
list: [
{
name: "开通平台社区数",
num: "--",
variation: 0,
variationAbs: "0",
},
{
name: "人口总数",
num: "--",
variation: 0,
variationAbs: "0",
},
{
name: "常住人口数",
num: "--",
variation: 0,
variationAbs: "0",
},
{
name: "流动人口数",
num: "--",
variation: 0,
variationAbs: "0",
},
{
name: "房屋总数",
num: "--",
variation: 0,
variationAbs: "0",
},
{
name: "自住房屋数",
num: "--",
variation: 0,
variationAbs: "0",
},
{
name: "出租房屋数",
num: "--",
variation: 0,
variationAbs: "0",
},
{
name: "闲置房屋数",
num: "--",
variation: 0,
variationAbs: "0",
},
],
};
},
computed: {
maxTableHeight() {
return this.clientHeight - 420;
},
...mapGetters(["clientHeight"]),
},
watch: {
orgId() {
this.getTableData();
},
},
mounted() {
this.getCommunityData();
this.getResiData();
this.getHouseData();
this.getTableData();
},
methods: {
handleClickCard(item) {
if (item.name == "开通平台社区数") {
this.showDetail();
}
},
async showDetail(orgId = "") {
this.displayedDetail = true;
this.detailOrgId = orgId;
},
async getCommunityData() {
const url = "/gov/org/agency/usingCommunityStats";
const { data, code, msg } = await requestPost(url, {
orgId: this.orgId,
orgType: this.orgType,
});
if (code === 0) {
const { list } = this;
let item1 = list.find((item) => item.name == "开通平台社区数");
item1.num = data.usingCommunityNum;
item1.variation = parseInt(data.usingCommunityNumJSY);
item1.variationAbs = Math.abs(item1.variation);
}
},
async getResiData() {
const url = "/epmetuser/icresiuser/userchart";
const { data, code, msg } = await requestPost(url, {
orgId: this.orgId,
orgType: this.orgType,
});
if (code === 0) {
const { list } = this;
this.orgId = data.orgId;
this.orgType = data.orgType;
let item1 = list.find((item) => item.name == "人口总数");
item1.num = data.userTotal;
item1.variation = parseInt(data.userTotalJSY);
item1.variationAbs = Math.abs(item1.variation);
let item2 = list.find((item) => item.name == "常住人口数");
item2.num = data.czUserTotal;
item2.variation = parseInt(data.czUserTotalJSY);
item2.variationAbs = Math.abs(item2.variation);
let item3 = list.find((item) => item.name == "流动人口数");
item3.num = data.ldUserTotal;
item3.variation = parseInt(data.ldUserTotalJSY);
item3.variationAbs = Math.abs(item3.variation);
}
},
async getHouseData() {
const url = "/gov/org/house/housechart";
const { data, code, msg } = await requestPost(url, {
orgId: this.orgId,
orgType: this.orgType,
});
if (code === 0) {
const { list } = this;
let item1 = list.find((item) => item.name == "房屋总数");
item1.num = data.houseTotal;
item1.variation = parseInt(data.houseTotalJSY);
item1.variationAbs = Math.abs(item1.variation);
let item2 = list.find((item) => item.name == "自住房屋数");
item2.num = data.zzHouseTotal;
item2.variation = parseInt(data.zzHouseTotalJSY);
item2.variationAbs = Math.abs(item2.variation);
let item3 = list.find((item) => item.name == "出租房屋数");
item3.num = data.czHouseTotal;
item3.variation = parseInt(data.czHouseTotalJSY);
item3.variationAbs = Math.abs(item3.variation);
let item4 = list.find((item) => item.name == "闲置房屋数");
item4.num = data.xzHouseTotal;
item4.variation = parseInt(data.xzHouseTotalJSY);
item4.variationAbs = Math.abs(item4.variation);
}
},
async getTableData() {
const url = "/gov/org/house/subuserhouselist";
const { data, code, msg } = await requestPost(url, {
orgId: this.orgId,
orgType: this.orgType,
});
if (code === 0) {
this.tableData = data
? data.map((item) => {
return item;
})
: [];
}
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/scss/c/config.scss";
@import "@/assets/scss/c/function.scss";
.m-cards {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
.item {
display: flex;
width: 24%;
margin-top: 15px;
// margin-right: 1%;
box-sizing: border-box;
color: #ffffff;
padding: 12px;
border-radius: 4px;
background-image: linear-gradient(to left, #43c8c4, #2aa5c6);
cursor: pointer;
.item-right {
margin-left: auto;
}
.item-left {
text-align: center;
}
.num {
font-size: 28px;
font-weight: bold;
line-height: 40px;
}
.name {
font-size: 14px;
line-height: 20px;
}
.hint {
margin-top: 10px;
line-height: 20px;
text-align: center;
font-size: 18px;
.hint-title {
font-size: 14px;
}
}
}
}
.m-tb {
margin-top: 20px;
}
</style>

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,

8
src/views/modules/shequzhili/csgltc/csglForm.vue

@ -307,7 +307,7 @@ export default {
// map TMap.Map()
map = new window.TMap.Map(document.getElementById('app'), {
center: center, //
zoom: 17.2, //
zoom: 16.2, //
pitch: 43.5, //
rotation: 45 //
})
@ -352,9 +352,11 @@ export default {
markers.setGeometries([])
//
search
.searchRectangle({
.searchNearby({
keyword: this.formData.address,
bounds: map.getBounds()
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result

420
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,
@ -625,7 +575,7 @@ export default {
// map TMap.Map()
map = new window.TMap.Map(document.getElementById("app"), {
center: center, //
zoom: 17.2, //
zoom: 16.2, //
pitch: 43.5, //
rotation: 45, //
});
@ -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();
});
@ -670,9 +620,11 @@ export default {
markers.setGeometries([]);
//
search
.searchRectangle({
.searchNearby({
keyword: this.keyWords,
bounds: map.getBounds(),
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result;
@ -692,7 +644,7 @@ export default {
});
},
handleMoveCenter() {
handleMoveCenter () {
//
const center = map.getCenter();
const lat = center.getLat();
@ -703,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;
@ -737,12 +689,12 @@ export default {
});
},
resetData() {
resetData () {
this.formData = iniFmData();
this.replayImgList = [];
},
//
startLoading() {
startLoading () {
loading = Loading.service({
lock: true, //
text: "正在加载……", //
@ -750,7 +702,7 @@ export default {
});
},
//
endLoading() {
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close();

8
src/views/modules/shequzhili/ggfwtc/ggfwForm.vue

@ -284,7 +284,7 @@ export default {
// map TMap.Map()
map = new window.TMap.Map(document.getElementById('app'), {
center: center, //
zoom: 17.2, //
zoom: 16.2, //
pitch: 43.5, //
rotation: 45 //
})
@ -329,9 +329,11 @@ export default {
markers.setGeometries([])
//
search
.searchRectangle({
.searchNearby({
keyword: this.formData.address,
bounds: map.getBounds()
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result

179
src/views/modules/shujuduibi/canji.vue

@ -0,0 +1,179 @@
<template>
<div>
<base-page
ref="basePage"
:searchParams="searchParams"
:tableParams="tableParams"
:tableUrl="tableUrl"
:delUrl="delUrl"
:delMultipleUrl="delMultipleUrl"
:delAuth="delAuth"
:infoUrl="infoUrl"
:exportUrl="exportUrl"
:editParams="editParams"
:editElseRules="editElseRules"
:editBtnName="(item) => (!item.latitude ? '待完善' : '修改')"
idName="id"
>
<template v-slot:listBtn="{ multipleSelection }">
<el-button @click="handleSyncMultiple(multipleSelection)" size="small"
>批量更新</el-button
>
</template>
<template v-slot:listBtnSup="{ item }">
<el-button type="text" @click="handleSync(item)" size="small"
>全部更新</el-button
>
</template>
<template v-slot:editOperateSup="{ id, info }">
<h3>对比信息</h3>
<el-table
:data="cookInfo(info)"
style="width: 100%"
:row-class-name="tableRowClassName"
>
<el-table-column prop="resiinfo" label="对比信息" width="180">
</el-table-column>
<el-table-column prop="result" label="结果">
<template slot-scope="scope">
<i class="el-icon-time"></i>
<span style="margin-left: 10px">{{ scope.row.date }}</span>
</template>
</el-table-column>
</el-table>
</template>
</base-page>
</div>
</template>
<script>
import basePage from "@/views/modules/cpts/base/index";
import { requestPost } from "@/js/dai/request";
export default {
props: {},
data() {
return {
searchParams: [
{ field: "姓名", keyName: "name", type: "input" },
{ field: "证件号", keyName: "idCard", type: "input" },
{ field: "手机", keyName: "mobile", type: "input" },
],
tableParams: [
{ field: "选择框", keyName: "", type: "selection" },
{ field: "序号", keyName: "", type: "no" },
{ field: "姓名", keyName: "name", type: "text" },
{ field: "证件号", keyName: "idCard", type: "text" },
{ field: "手机", keyName: "mobile", type: "text" },
{ field: "性别", keyName: "gender", type: "text" },
{ field: "民族", keyName: "mz", type: "text" },
{ field: "家庭住址", keyName: "address", type: "text" },
{ field: "残疾类别", keyName: "cjlb", type: "text" },
{ field: "残疾等级", keyName: "cardNum", type: "text" },
{ field: "残疾证号", keyName: "cjzk", type: "text" },
{ field: "监护人", keyName: "guardian", type: "text" },
{ field: "状态", keyName: "dealStatus", type: "text" },
{ field: "失败原因", keyName: "dealResult", type: "text" },
],
tableUrl: "/epmetuser/dataSyncRecordDisability/page",
delMultipleUrl: "/epmetuser/dataSyncRecordDisability/delete",
infoUrl: "/epmetuser/dataSyncRecordDisability/detail/",
// delUrl: "/gov/org/icDangerousChemicals/del",
exportUrl: "/epmetuser/dataSyncRecordDisability/export",
editParams: [
{ field: "姓名", keyName: "name", type: "input" },
{ field: "证件号", keyName: "idCard", type: "input" },
{ field: "手机", keyName: "mobile", type: "input" },
{ field: "性别", keyName: "gender", type: "input" },
{ field: "民族", keyName: "mz", type: "input" },
{ field: "家庭住址", keyName: "address", type: "input" },
{ field: "残疾类别", keyName: "cjlb", type: "input" },
{ field: "残疾等级", keyName: "cardNum", type: "input" },
{ field: "残疾证号", keyName: "cjzk", type: "input" },
{ field: "监护人", keyName: "guardian", type: "input" },
{ field: "状态", keyName: "dealStatus", type: "input" },
{ field: "失败原因", keyName: "dealResult", type: "input" },
],
};
},
components: { basePage },
computed: {},
watch: {},
async mounted() {},
methods: {
cookInfo(info) {
let arr = [
{ field: "姓名", keyName: "name", type: "text" },
{ field: "证件号", keyName: "idCard", type: "text" },
{ field: "手机", keyName: "mobile", type: "text" },
{ field: "性别", keyName: "gender", type: "text" },
{ field: "民族", keyName: "mz", type: "text" },
{ field: "家庭住址", keyName: "address", type: "text" },
{ field: "残疾类别", keyName: "cjlb", type: "text" },
{ field: "残疾等级", keyName: "cardNum", type: "text" },
{ field: "残疾证号", keyName: "cjzk", type: "text" },
{ field: "监护人", keyName: "guardian", type: "text" },
];
return arr.map((item) => {
return {
resiinfo: item.field + ":" + info.resiinfo[item.keyName],
result:
info.resiinfo[item.keyName] == info[item.keyName]
? "一致"
: "不一致",
};
});
},
tableRowClassName({ row }) {
if (row.result === "不一致") {
return "z-stress";
}
return "";
},
async handleSync(item) {
const { data, code, msg } = await requestPost(
"/epmetuser/dataSyncRecordDisability/batchUpdate",
[item["id"]]
);
if (code === 0) {
this.$message.success("更新成功!");
this.$refs.basePage.getTableData();
} else {
this.$message.error("操作失败!");
}
},
async handleSyncMultiple(multipleSelection) {
const { data, code, msg } = await requestPost(
"/epmetuser/dataSyncRecordDisability/batchUpdate",
[...multipleSelection.map((item) => item["id"])]
);
if (code === 0) {
this.$message.success("批量更新成功!");
this.$refs.basePage.getTableData();
} else {
this.$message.error("操作失败!");
}
},
},
};
</script>
<style lang="scss" scoped>
.el-table .z-stress {
background: #f0f9eb;
}
</style>

111
src/views/modules/shujuduibi/siwang.vue

@ -0,0 +1,111 @@
<template>
<div>
<base-page
ref="basePage"
:searchParams="searchParams"
:tableParams="tableParams"
:tableUrl="tableUrl"
:delUrl="delUrl"
:delMultipleUrl="delMultipleUrl"
:delAuth="delAuth"
:infoUrl="infoUrl"
:exportUrl="exportUrl"
:editParams="editParams"
:editElseRules="editElseRules"
:editBtnName="(item) => (!item.latitude ? '待完善' : '修改')"
idName="id"
>
<template v-slot:listBtn="{ multipleSelection }">
<el-button @click="handleSyncMultiple(multipleSelection)" size="small"
>批量更新</el-button
>
</template>
<template v-slot:listBtnSup="{ item }">
<el-button type="text" @click="handleSync(item)" size="small"
>全部更新</el-button
>
</template>
</base-page>
</div>
</template>
<script>
import basePage from "@/views/modules/cpts/base/index";
import { requestPost } from "@/js/dai/request";
export default {
props: {},
data() {
return {
searchParams: [
{ field: "姓名", keyName: "name", type: "input" },
{ field: "证件号", keyName: "idCard", type: "input" },
],
tableParams: [
{ field: "选择框", keyName: "", type: "selection" },
{ field: "序号", keyName: "", type: "no" },
{ field: "姓名", keyName: "name", type: "text" },
{ field: "证件号", keyName: "idCard", type: "text" },
{ field: "死亡日期", keyName: "deathDate", type: "text" },
{ field: "现年龄", keyName: "age", type: "text" },
{ field: "家庭住址", keyName: "address", type: "text" },
],
tableUrl: "/epmetuser/dataSyncRecordDeath/page",
delMultipleUrl: "/epmetuser/dataSyncRecordDeath/delete",
infoUrl: "/epmetuser/dataSyncRecordDeath/detail/",
// delUrl: "/gov/org/icDangerousChemicals/del",
exportUrl: "/epmetuser/dataSyncRecordDeath/expoprt",
editParams: [
{ field: "姓名", keyName: "name", type: "input" },
{ field: "证件号", keyName: "idCard", type: "input" },
{ field: "死亡日期", keyName: "deathDate", type: "input" },
{ field: "现年龄", keyName: "age", type: "input" },
{ field: "家庭住址", keyName: "address", type: "input" },
],
};
},
components: { basePage },
computed: {},
watch: {},
async mounted() {},
methods: {
async handleSync(item) {
const { data, code, msg } = await requestPost(
"/epmetuser/dataSyncRecordDeath/batchupdate",
[item["id"]]
);
if (code === 0) {
this.$message.success("更新成功!");
this.$refs.basePage.getTableData();
} else {
this.$message.error("操作失败!");
}
},
async handleSyncMultiple(multipleSelection) {
const { data, code, msg } = await requestPost(
"/epmetuser/dataSyncRecordDeath/batchupdate",
[...multipleSelection.map((item) => item["id"])]
);
if (code === 0) {
this.$message.success("批量更新成功!");
this.$refs.basePage.getTableData();
} else {
this.$message.error("操作失败!");
}
},
},
};
</script>
<style lang="scss" scoped></style>

16
src/views/modules/visual/command/cpts/map.vue

@ -444,8 +444,8 @@ export default {
.size(12)
.style({
offsets: [0, 8], // [, ]
// rotation: 60,
layerType: "fillImage",
rotation: 0,
// layerType: "fillImage",
});
scene.addLayer(posLayer);
@ -516,7 +516,7 @@ export default {
iniMapDot(scene) {
const { darkStyle, lightStyle, dotIcoList, dotData } = this;
console.log('--------------------------图标', dotIcoList)
console.log("--------------------------图标", dotIcoList);
Object.keys(dotIcoList).forEach((k) => {
scene.addImage(k, dotIcoList[k]);
});
@ -538,11 +538,12 @@ export default {
})
.source(dotData)
.shape("categoryKey", (k) => k)
.size(10)
.style({
offsets: [0, 0],
rotation: 0,
layerType: "fillImage",
});
})
.size(10);
scene.addLayer(dotBgLayer);
scene.addLayer(dotLayer);
@ -573,11 +574,12 @@ export default {
})
.source(dotData)
.shape("categoryKey", (k) => k + "2")
.size(30)
.style({
offsets: [0, 0],
rotation: 0,
layerType: "fillImage",
});
})
.size(30);
scene.addLayer(dotLayer2);
dotLayer2.on("click", (e) => {

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,

2
src/views/modules/visual/cpts/map/index.vue

@ -408,7 +408,7 @@ export default {
.style({
offsets: [0, 8], // [, ]
// rotation: 60,
layerType: "fillImage",
// layerType: "fillImage",
});
scene.addLayer(posLayer);

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>

107
src/views/pages/yantai-login-transit.vue

@ -0,0 +1,107 @@
<template>
<div class="g-app">
<div class="m-loading">
<p v-if="status == 'success'">登录成功</p>
<p v-else-if="status == 'failed'">登录失败</p>
</div>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import getQueryPara from "dai-js/modules/getQueryPara";
export default {
data() {
return {
status: "ing",
};
},
components: {},
computed: {},
async mounted() {
let code = getQueryPara("code");
const loading = this.$loading({
lock: true,
text: "登录中……",
spinner: "el-icon-loading",
customClass: "u-loading-yantai-login-transit",
background: "rgba(255, 255, 255, 0.7)",
});
if (code) {
await this.login(code);
loading.close();
} else {
// await this.skip(code);
location.href =
"http://172.20.46.155:8080/sso/login?client_id=1000006&redirect_url=" +
encodeURIComponent(location.href);
}
},
methods: {
//id
async skip() {
const url = "/gov222";
let params = {};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
location.href = data.url;
} else {
console.log("获取跳转页面失败", msg);
}
},
//id
async login(client_code) {
const url = "/auth/sso-govlogin-yantai/" + client_code;
let params = {};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.status = "success";
localStorage.setItem("token", data.token);
this.$router.replace({ name: "index" });
} else {
this.status = "failed";
}
},
},
};
</script>
<style lang="scss" scoped>
.m-loading {
text-align: center;
margin-top: 10vh;
line-height: 100px;
font-size: 50px;
color: rgb(62, 142, 247);
}
</style>
<style lang="scss">
.u-loading-yantai-login-transit {
margin-top: -140px;
// transform: translateY(-100px);
.el-loading-spinner {
.el-loading-text,
.el-icon-loading {
line-height: 60px;
font-size: 30px;
color: rgb(62, 142, 247);
}
.el-icon-loading {
font-size: 40px;
}
}
}
</style>
Loading…
Cancel
Save