Browse Source

Merge branch 'dev-220309' into dev

shibei_master
jiangyy 4 years ago
parent
commit
1a6cdee97e
  1. 4
      .env.shibei_production
  2. 1
      package.json
  3. 16
      public/index.html
  4. 58
      src/App.vue
  5. BIN
      src/assets/img/modules/visual/popup.png
  6. 14
      src/assets/scss/aui.scss
  7. 67
      src/assets/scss/buttonstyle copy.scss
  8. 154
      src/assets/scss/buttonstyle.scss
  9. 62
      src/assets/scss/modules/search.scss
  10. 499
      src/assets/scss/modules/visual/basicInfoMain copy.scss
  11. 130
      src/assets/scss/modules/visual/basicInfoMain.scss
  12. 32
      src/assets/scss/modules/visual/communityManageForm.scss
  13. 1151
      src/assets/scss/modules/visual/people.scss
  14. 57
      src/assets/scss/modules/visual/personCategory.scss
  15. 147
      src/assets/scss/modules/warning.scss
  16. 90
      src/js/dai/request2.js
  17. 2
      src/main.js
  18. 78
      src/router/index.js
  19. 35
      src/views/components/CTable.vue
  20. 8
      src/views/components/editResi.vue
  21. 2
      src/views/components/resiSearch.vue
  22. 14
      src/views/components/resiTransfer.vue
  23. 7
      src/views/components/scoreRecord.vue
  24. 5
      src/views/modules/base/category/addCategory.vue
  25. 49
      src/views/modules/base/community/buildForm.vue
  26. 53
      src/views/modules/base/community/buildTable.vue
  27. 49
      src/views/modules/base/community/communityForm.vue
  28. 73
      src/views/modules/base/community/communityTable.vue
  29. 43
      src/views/modules/base/community/roomForm.vue
  30. 47
      src/views/modules/base/community/roomTable.vue
  31. 124
      src/views/modules/base/grid.vue
  32. 270
      src/views/modules/base/resi.vue
  33. 99
      src/views/modules/communityParty/elegant/index.vue
  34. 28
      src/views/modules/communityParty/regionalParty/activitys.vue
  35. 195
      src/views/modules/communityParty/regionalParty/activitysDetail.vue
  36. 41
      src/views/modules/communityParty/regionalParty/activitysForm.vue
  37. 2
      src/views/modules/communityParty/regionalParty/finishList.vue
  38. 102
      src/views/modules/communityParty/regionalParty/units.vue
  39. 164
      src/views/modules/communityParty/regionalParty/unitsDetail.vue
  40. 308
      src/views/modules/communityParty/regionalParty/unitsForm.vue
  41. 405
      src/views/modules/communityService/dqfwzx/cpts/edit.vue
  42. 205
      src/views/modules/communityService/dqfwzx/cpts/order.vue
  43. 106
      src/views/modules/communityService/dqfwzx/cpts/orderList.vue
  44. 215
      src/views/modules/communityService/dqfwzx/index.vue
  45. 25
      src/views/modules/communityService/measure/index.vue
  46. 28
      src/views/modules/communityService/ninePlaces/inspect/inspect.vue
  47. 311
      src/views/modules/communityService/ninePlaces/inspect/inspectForm.vue
  48. 2
      src/views/modules/communityService/ninePlaces/inspect/inspectReview.vue
  49. 15
      src/views/modules/communityService/ninePlaces/places/places.vue
  50. 243
      src/views/modules/communityService/ninePlaces/places/placesForm.vue
  51. 37
      src/views/modules/communityService/ninePlaces/team/team.vue
  52. 297
      src/views/modules/communityService/ninePlaces/team/teamForm.vue
  53. 11
      src/views/modules/communityService/sqzzz/cpts/edit.vue
  54. 248
      src/views/modules/communityService/sqzzz/index.vue
  55. 137
      src/views/modules/importRecord/index.vue
  56. 200
      src/views/modules/shequ/cpts/bar-chart.vue
  57. 125
      src/views/modules/shequ/cpts/scroll-notice.vue
  58. 897
      src/views/modules/shequ/index.vue
  59. 12
      src/views/modules/systemManagement/serviceMatter/service.vue
  60. 12
      src/views/modules/systemManagement/serviceMatter/serviceForm.vue
  61. 1074
      src/views/modules/visual/basicinfo/basicInfoMain copy.vue
  62. 95
      src/views/modules/visual/basicinfo/basicInfoMain.vue
  63. 475
      src/views/modules/visual/basicinfo/people.vue
  64. 33
      src/views/modules/visual/basicinfo/personCategory/index.vue
  65. 68
      src/views/modules/warning/components/screen-loading/index.vue
  66. 392
      src/views/modules/warning/components/screen-table/index.vue
  67. 200
      src/views/modules/warning/index.vue
  68. 112
      src/views/modules/workPc/guidance/categoryList.vue
  69. 93
      src/views/modules/workPc/guidance/guidanceList.vue
  70. 256
      src/views/modules/workSys/demandCate.vue
  71. 23
      src/views/modules/workSys/elegantCate.vue
  72. 13
      src/views/modules/workSys/elegantEdit.vue
  73. 29
      src/views/modules/workSys/resiCate.vue

4
.env.shibei_production

@ -0,0 +1,4 @@
NODE_ENV=production
VUE_APP_API_SERVER = https://epdc-shibei.elinkservice.cn/api
VUE_APP_NODE_ENV=shibei_prod
VUE_APP_PUBLIC_PATH=epmet-oper

1
package.json

@ -9,6 +9,7 @@
"build:sit": "vue-cli-service build --mode production.sit",
"build:uat": "vue-cli-service build --mode production.uat",
"build:prod": "vue-cli-service build --mode production",
"build:shibei_prod": "vue-cli-service build --mode shibei_production",
"lint": "vue-cli-service lint",
"et": "node_modules/.bin/et",
"et:init": "node_modules/.bin/et -i",

16
public/index.html

@ -14,7 +14,7 @@
window.SITE_CONFIG = {}
window.SITE_CONFIG['version'] = 'v2.0.0'
window.SITE_CONFIG['nodeEnv'] = '<%= process.env.VUE_APP_NODE_ENV %>'
window.SITE_CONFIG['apiURL'] = '' // api请求地址
window.SITE_CONFIG['apiURL'] = '<%= process.env.VUE_APP_API_SERVER %>' // api请求地址
window.SITE_CONFIG['storeState'] = {} // vuex本地储存初始化状态(用于不刷新页面的情况下,也能重置初始化项目中所有状态)
window.SITE_CONFIG['contentTabDefault'] = {
// 内容标签页默认属性对象
@ -36,7 +36,7 @@
<!-- npm run build:sit -->
<!-- 开发环境 -->
<% if (process.env.VUE_APP_NODE_ENV==='dev' ) { %>
<!-- <% if (process.env.VUE_APP_NODE_ENV==='dev' ) { %>
<script>
window.SITE_CONFIG['apiURL'] = 'http://192.168.1.140/api'
// window.SITE_CONFIG['apiURL'] = 'https://epmet-test.elinkservice.cn/api'
@ -44,7 +44,7 @@
// window.SITE_CONFIG['apiURL'] = 'https://epmet-dev.elinkservice.cn/api'
</script>
<% } %>
<!-- 集成测试环境 dev -->
&lt;!&ndash; 集成测试环境 dev &ndash;&gt;
<% if (process.env.VUE_APP_NODE_ENV==='prod:sit' ) { %>
<script>
// window.SITE_CONFIG['apiURL'] =
@ -54,19 +54,23 @@
window.SITE_CONFIG['apiURL'] = 'http://192.168.1.140/api'
</script>
<% } %>
<!-- 验收测试环境 aliyun -->
&lt;!&ndash; 验收测试环境 aliyun &ndash;&gt;
<% if (process.env.VUE_APP_NODE_ENV==='prod:uat' ) { %>
<script>
// window.SITE_CONFIG['apiURL'] = 'http://120.27.18.76/api'
window.SITE_CONFIG['apiURL'] = 'https://epmet-test.elinkservice.cn/api'
</script>
<% } %>
<!-- 生产环境 -->
&lt;!&ndash; 生产环境 &ndash;&gt;
<% if (process.env.VUE_APP_NODE_ENV==='prod' ) { %>
<script>
window.SITE_CONFIG['apiURL'] = 'https://epmet-cloud.elinkservice.cn/api'
</script>
<% } %>
<% } %>-->
<script>
//window.SITE_CONFIG['apiURL'] = '<%= process.env.VUE_APP_API_SERVER %>'
</script>
</head>
<body>

58
src/App.vue

@ -106,6 +106,8 @@ export default {
</script>
<style lang="scss">
@import "@/assets/scss/buttonstyle.scss";
.tox-dialog__disable-scroll {
.tox-tinymce-aux {
z-index: 130000000;
@ -120,4 +122,60 @@ export default {
z-index: 200000;
}
}
.search-card {
.el-card__body {
padding: 20px 20px 0 20px;
}
}
.name-a {
cursor: pointer;
}
.dialog-h {
.el-dialog__body {
position: relative;
height: 82vh;
box-sizing: border-box;
padding: 0 10px 20px !important;
.dialog-h-content {
height: calc(82vh - 80px);
box-sizing: border-box;
overflow: auto;
}
}
}
.resi-btns {
margin-top: 20px;
text-align: center;
}
.scroll-h {
&::-webkit-scrollbar {
// display: none;
width: 8px;
height: 8px;
// background: linear-gradient(270deg, #0063FE, #0095FF);
}
&::-webkit-scrollbar-corner,
/* 滚动条角落 */
&::-webkit-scrollbar-thumb,
&::-webkit-scrollbar-track {
/*滚动条的轨道*/
border-radius: 4px;
}
&::-webkit-scrollbar-corner,
&::-webkit-scrollbar-track {
/* 滚动条轨道 */
// background: rgba(12, 129, 254, .24);
box-shadow: inset 0 0 1px rgba(180, 160, 120, 0.5);
}
&::-webkit-scrollbar-thumb {
/* 滚动条手柄 */
background: rgba(0, 0, 0, 0.3);
// background: linear-gradient(270deg, #0063FE, #0095FF);
}
}
</style>

BIN
src/assets/img/modules/visual/popup.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

14
src/assets/scss/aui.scss

@ -1,11 +1,11 @@
// 变量
@import "~@/element-ui/theme-variables.scss";
@import "./variables.scss";
@import '~@/element-ui/theme-variables.scss';
@import './variables.scss';
// 公共
@import "./normalize.scss";
@import "./common.scss";
@import './normalize.scss';
@import './common.scss';
// 页面
@import "./pages/login.scss";
@import "./pages/404.scss";
@import './pages/login.scss';
@import './pages/404.scss';
// 模块
@import "./modules/home.scss";
@import './modules/home.scss';

67
src/assets/scss/buttonstyle copy.scss

@ -0,0 +1,67 @@
//新增
.el-button--add {
color: #fff;
background-color: #22c1c3;
border-color: #22c1c3;
}
.el-button--add:hover {
color: #fff;
background-color: #05b1b4;
border-color: #05b1b4;
}
.el-button--add:focus {
color: #fff;
background-color: #22c1c3;
border-color: #22c1c3;
}
//删除导入
.el-button--delete {
color: #fff;
background-color: #fe6252;
border-color: #fe6252;
}
.el-button--delete:hover {
color: #fff;
background-color: #fe6252;
border-color: #fe6252;
}
.el-button--delete:focus {
color: #fff;
background-color: #fe6252;
border-color: #fe6252;
}
//重置导出
.el-button--reset {
color: #fff;
background-color: #feb349;
border-color: #feb349;
}
.el-button--reset:hover {
color: #fff;
background-color: #feb349;
border-color: #feb349;
}
.el-button--reset:focus {
color: #fff;
background-color: #feb349;
border-color: #feb349;
}
//查询确定
.el-button--search:hover {
color: #fff;
background-color: #3e8ef7;
border-color: #3e8ef7;
}
.el-button--search:focus {
color: #fff;
background-color: #3e8ef7;
border-color: #3e8ef7;
}
.el-button--search {
color: #fff;
background-color: #3e8ef7;
border-color: #3e8ef7;
}

154
src/assets/scss/buttonstyle.scss

@ -1,61 +1,103 @@
.el-button--green {
color: #fff;
background-color: #22c1c3;
border-color: #22c1c3;
//查询确定
.diy-button--search {
color: #fff !important;
background-color: #3e8ef7 !important;
border-color: #3e8ef7 !important;
}
.el-button--green:hover {
color: #fff;
background-color: #05b1b4;
border-color: #05b1b4;
.diy-button--search:hover {
color: #fff !important;
background-color: #3e8ef7 !important;
border-color: #3e8ef7 !important;
}
.el-button--green:focus {
color: #fff;
background-color: #22c1c3;
border-color: #22c1c3;
.diy-button--search:focus {
color: #fff !important;
background-color: #3e8ef7 !important;
border-color: #3e8ef7 !important;
}
.el-button--yellow:hover {
color: #fff;
background-color: #fa9200;
border-color: #fa9200;
}
.el-button--yellow:focus {
color: #fff;
background-color: #feb349;
border-color: #feb349;
}
.el-button--yellow {
color: #fff;
background-color: #feb349;
border-color: #feb349;
}
.el-button--blue:focus {
color: #fff;
background-color: #2195fe;
border-color: #2195fe;
}
.el-button--blue:hover {
color: #fff;
background-color: #0083fd;
border-color: #0083fd;
}
.el-button--blue {
color: #fff;
background-color: #2195fe;
border-color: #2195fe;
}
.el-button--red:focus {
color: #fff;
background-color: #fe6252;
border-color: #fe6252;
}
.el-button--red:hover {
color: #fff;
background-color: #fd341e;
border-color: #fd341e;
}
.el-button--red {
color: #fff;
background-color: #fe6252;
border-color: #fe6252;
//重置导出
.diy-button--reset {
color: #fff !important;
background-color: #feb349 !important;
border-color: #feb349 !important;
}
.diy-button--reset:hover {
color: #fff !important;
background-color: #feb349 !important;
border-color: #feb349 !important;
}
.diy-button--reset:focus {
color: #fff !important;
background-color: #feb349 !important;
border-color: #feb349 !important;
}
//新增
.diy-button--add {
color: #fff !important;
background-color: #22c1c3 !important;
border-color: #22c1c3 !important;
}
.diy-button--add:hover {
color: #fff !important;
background-color: #22c1c3 !important;
border-color: #22c1c3 !important;
}
.diy-button--add:focus {
color: #fff !important;
background-color: #22c1c3 !important;
border-color: #22c1c3 !important;
}
//删除导入
.diy-button--delete {
color: #fff !important;
background-color: #fe6252 !important;
border-color: #fe6252 !important;
}
.diy-button--delete:hover {
color: #fff !important;
background-color: #fe6252 !important;
border-color: #fe6252 !important;
}
.diy-button--delete:focus {
color: #fff !important;
background-color: #fe6252 !important;
border-color: #fe6252 !important;
}
//下载模板
.diy-button--export {
color: #fff !important;
background-color: #3e8ef7 !important;
border-color: #3e8ef7 !important;
}
.diy-button--export:hover {
color: #fff !important;
background-color: #3e8ef7 !important;
border-color: #3e8ef7 !important;
}
.diy-button--export:focus {
color: #fff !important;
background-color: #3e8ef7 !important;
border-color: #3e8ef7 !important;
}
//table按钮样式
//查看
.div-table-button--detail {
color: #3E8EF7 !important;
text-decoration: underline !important;
}
//修改
.div-table-button--edit {
color: #00a7a9 !important;
text-decoration: underline !important;
}
//删除
.div-table-button--delete {
color: #d51010 !important;
text-decoration: underline !important;
}

62
src/assets/scss/modules/search.scss

@ -199,13 +199,48 @@
background-color: #fff;
border-radius: 10px;
padding: 30px 40px;
.headline {
.header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
font-size: 24px;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
.headline {
font-size: 24px;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
}
.notice {
width: 85%;
line-height: 24px;
display: flex;
justify-content: space-between;
align-items: center;
.notice-btn {
width: 50px;
background-color: #3e8ef7;
color: #fff;
text-align: center;
border-radius: 4px;
cursor: pointer;
}
.notice-list {
// @include toe;
width: 92%;
// height: 24px;
// overflow: hidden;
a {
margin-right: 20px;
cursor: pointer;
color: #999;
&:hover {
color: #3e8ef7;
}
}
}
}
}
.cnt {
@ -219,3 +254,18 @@
}
}
}
.m-crumbs {
padding: 10px 30px 0;
font-size: 16px;
a {
color: #666;
&:hover {
color: #094bea;
}
cursor: pointer;
}
span {
color: #094bea;
}
}

499
src/assets/scss/modules/visual/basicInfoMain copy.scss

@ -0,0 +1,499 @@
.div_top {
margin-left: 10px;
height: 35px;
.router_line {
width: 212px;
height: 1px;
border: 1px solid #ffffff;
opacity: 0.09;
/* opacity: 0.09; */
}
.div_router {
margin-top: 5px;
font-size: 16px;
.router_parents {
color: #a0c3d9;
.arrow {
padding: 0 5px;
}
}
.router_parents:hover {
cursor: pointer;
}
.router_child {
color: #ffffff;
}
}
}
.div_content {
display: flex;
.div_map {
box-sizing: border-box;
width: 100%;
// padding: 10px 5px 13px;
// margin-top: 8px;
height: calc(88vh - 15px);
color: #fff;
// background: url('../../../img/modules/visual/warning-box.png') no-repeat
// center;
// background-size: 100% 100%;
}
.div_data {
flex: 0 0 562px;
margin-left: 12px;
.div_search {
width: 100%;
height: 56px;
text-align: center;
background-color: #011168;
border-radius: 4px 0 0 4px;
border: none;
box-shadow: 0 0 10px inset #1a5afd;
font-size: 18px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
opacity: 0.7;
display: flex;
justify-content: space-between;
.div_search_left {
display: flex;
justify-content: flex-start;
.icon {
display: flex;
align-items: center;
margin-left: 29px;
> img {
width: 24px;
height: 24px;
}
}
> span {
line-height: 56px;
margin-left: 10px;
}
}
.btn {
text-align: center;
flex: 0 0 113px;
height: 56px;
background: linear-gradient(90deg, #1a5afd, #26c4ff);
font-size: 20px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 56px;
border-radius: 0 4px 4px 0;
}
}
.div_search:hover {
cursor: pointer;
}
.div_info {
box-sizing: border-box;
width: 100%;
margin-top: 21px;
height: calc(88vh - 87px);
color: #fff;
background: url('../../../img/modules/visual/warning-box.png') no-repeat
center;
background-size: 100% 100%;
// padding: 45px 21px 35px 24px;
.info_loading {
margin-top: 50px;
}
.info_tip {
padding: 31px 0 0 19px;
display: flex;
> img {
height: 34px;
width: 46px;
}
.tip_title {
line-height: 34px;
margin-left: 7px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
color: #ffffff;
}
}
.info_list {
margin-top: 9px;
.item {
.item_line {
margin-top: 13px;
margin-left: 24px;
width: 517px;
height: 0px;
border: 1px dotted #1797ff31;
border-width: 0.5px;
}
.last_line {
border: 1px dotted #1797ff00;
}
.list_item {
display: flex;
padding: 18px 59px 0;
justify-content: space-between;
.list_item_col {
flex: 0 0 240px;
display: flex;
> img {
height: 76px;
width: 76px;
}
.item_content {
margin-left: 10px;
height: 76px;
display: flex;
flex-direction: column;
justify-content: center;
.item_label {
font-size: 18px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
}
.item_count {
margin-top: 10px;
font-size: 28px;
font-family: PingFang SC;
font-weight: bold;
color: #00fffc;
}
}
}
}
::v-deep .el-popper {
padding: 0px;
}
//
}
}
}
.div_info {
/deep/ .el-scrollbar__wrap {
overflow-x: hidden !important;
}
}
}
}
.div_community_info {
box-sizing: border-box;
flex: 0 0 calc(100vw - 620px);
// width: calc(100vw - 560px);
height: calc(88vh - 10px);
color: #fff;
background: url('../../../img/modules/visual/warning-box.png') no-repeat
center;
background-size: 100% 100%;
.div_select {
margin-top: 28px;
margin-left: 24px;
display: flex;
.customer_select {
display: flex;
justify-content: flex-start;
> span {
width: auto;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
color: #ffffff;
line-height: 34px;
}
}
> img {
height: 34px;
width: 46px;
}
.tip_title {
line-height: 34px;
margin-left: 12px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
color: #ffffff;
}
}
.div_room_bar {
box-sizing: border-box;
margin-top: 9px;
height: calc(88vh - 120px);
}
.div_room {
// height: calc(88vh - 40px);
// margin-top: 9px;
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
margin: 0 21px 0 21px;
.item:hover {
cursor: pointer;
}
.item_sel {
box-shadow: 0 0 10px inset #1a5afd;
}
.item {
background-color: #011168;
margin-top: 12px;
width: 244px;
height: 190px;
border: 1px solid #037ddc;
border-radius: 8px;
text-align: center;
margin-left: 11px;
position: relative;
// &:first-child {
// margin-left: 0;
// }
.housename {
margin-top: 70px;
font-size: 24px;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
// line-height: 180px;
}
.icon_party {
position: absolute;
top: 13px;
left: 18px;
}
.icon_category {
position: absolute;
bottom: 14px;
left: 9px;
// margin-left: 7px;
> img {
margin-left: 5px;
width: 21px;
height: 20px;
}
}
.div_user:hover {
cursor: pointer;
}
.div_user {
position: absolute;
bottom: 10px;
right: 11px;
width: 88px;
height: 30px;
background: #073082;
border-radius: 15px;
> img {
width: 10px;
height: 6px;
margin-left: 4px;
}
> span {
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 30px;
}
}
}
}
.div_room::after {
content: '';
flex: 1;
}
}
.user_list {
position: relative;
z-index: 10;
background: #020340;
border: 1px solid #0a359b;
border-radius: 4px;
box-shadow: 0 0 10px inset #1a5afd;
.user_item {
padding: 13px 8px 0 14px;
font-size: 16px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
.user_item_content {
display: flex;
// justify-content: space-between;
align-items: center;
.name {
max-width: 80%;
text-align: left;
}
> img {
margin-left: auto;
margin-top: 4px;
width: 8px;
height: 12px;
}
}
.item_line {
margin-top: 9px;
width: 70px;
height: 0px;
border: 1px dotted #1797ff31;
border-width: 0.5px;
}
.last_line {
border: 1px dotted #1797ff00;
}
}
}
.div_agency_tran {
transition: width 2s ease-out, opacity 1s ease-in, visibility 1s ease-in;
width: 0;
height: 470px;
z-index: 1000;
position: absolute;
top: 50px;
right: 600px;
box-sizing: border-box;
display: flex;
justify-content: center;
align-items: center;
.div_agency_list {
width: 320px;
height: 470px;
color: #fff;
background: url('../../../img/modules/visual/box-2.png') no-repeat center;
background-size: 100% 100%;
padding: 45px 20px 35px 20px;
.agency_main {
height: 100%;
position: relative;
}
.agency_main {
/deep/ .el-scrollbar__wrap {
overflow-x: hidden !important;
}
}
.no-data-img {
text-align: center;
margin-top: 50px;
margin-left: 15px;
}
.agency_list {
.agency_item {
// height: 60px;
padding: 15px 0;
font-size: 17px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
// line-height: 50px;
padding-left: 12px;
display: flex;
flex-direction: row;
align-items: center;
// padding-top: 15px;
.agency_item_name {
// line-height: 20px;
}
}
.agency_item_on {
background: #08216c;
border-radius: 2px;
}
.agency_item:hover {
cursor: pointer;
background-color: #011168;
border-radius: 4px 0 0 4px;
border: none;
box-shadow: 0 0 10px inset #1a5afd;
border-radius: 2px;
}
}
}
.arrow_tip {
margin-right: -2px;
> img {
width: 21px;
height: 176px;
}
}
.arrow_tip:hover {
cursor: pointer;
}
}
.div_agency_tran-fade-in {
width: 341px;
opacity: 1;
visibility: 1;
}
.div_agency_tran-fade-out {
visibility: 0;
opacity: 1;
width: 0;
right: 575px;
}
// .div_agency_list-fade-in {
// width: 341px;
// opacity: 1;
// visibility: 1;
// }
// .div_agency_list-fade-out {
// visibility: 0;
// opacity: 0;
// width: 0;
// }

130
src/assets/scss/modules/visual/basicInfoMain.scss

@ -42,6 +42,7 @@
// background: url('../../../img/modules/visual/warning-box.png') no-repeat
// center;
// background-size: 100% 100%;
position: relative;
}
.div_data {
@ -112,6 +113,9 @@
background-size: 100% 100%;
// padding: 45px 21px 35px 24px;
.info_loading {
margin-top: 50px;
}
.info_tip {
padding: 31px 0 0 19px;
display: flex;
@ -190,6 +194,12 @@
}
}
}
.div_info {
/deep/ .el-scrollbar__wrap {
overflow-x: hidden !important;
}
}
}
}
@ -383,56 +393,98 @@
}
}
.div_agency_list {
z-index: 1000;
.m-sidebar {
position: absolute;
right: 0;
top: 50px;
right: 600px;
box-sizing: border-box;
width: 320px;
z-index: 1000;
width: 370px;
height: 470px;
overflow: hidden;
color: #fff;
background: url('../../../img/modules/visual/box-2.png') no-repeat center;
background-size: 100% 100%;
padding: 45px 20px 35px 20px;
.no-data-img {
text-align: center;
margin-top: 50px;
margin-left: 15px;
.wrap {
display: flex;
justify-content: flex-start;
align-items: center;
background-color: rgba(rgb(173, 173, 173), 0);
transform: translateX(-5px);
transition: all ease 1s;
border-radius: 4px;
}
.agency_list {
.agency_item {
// height: 60px;
padding: 15px 0;
font-size: 17px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
// line-height: 50px;
padding-left: 12px;
display: flex;
flex-direction: row;
align-items: center;
// padding-top: 15px;
.agency_item_name {
// line-height: 20px;
.wrap-hidden {
transform: translateX(339px);
}
.div_agency_list {
width: 320px;
height: 470px;
color: #fff;
background: url('../../../img/modules/visual/box-2.png') no-repeat center;
background-size: 100% 100%;
padding: 45px 20px 35px 20px;
.agency_main {
height: 100%;
position: relative;
}
.agency_main {
/deep/ .el-scrollbar__wrap {
overflow-x: hidden !important;
}
}
.agency_item_on {
background: #08216c;
border-radius: 2px;
.no-data-img {
text-align: center;
margin-top: 50px;
margin-left: 15px;
}
.agency_list {
.agency_item {
// height: 60px;
padding: 15px 0;
font-size: 17px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
// line-height: 50px;
padding-left: 12px;
display: flex;
flex-direction: row;
align-items: center;
// padding-top: 15px;
.agency_item:hover {
cursor: pointer;
background-color: #011168;
border-radius: 4px 0 0 4px;
border: none;
box-shadow: 0 0 10px inset #1a5afd;
border-radius: 2px;
.agency_item_name {
// line-height: 20px;
}
}
.agency_item_on {
background: #08216c;
border-radius: 2px;
}
.agency_item:hover {
cursor: pointer;
background-color: #011168;
border-radius: 4px 0 0 4px;
border: none;
box-shadow: 0 0 10px inset #1a5afd;
border-radius: 2px;
}
}
}
.arrow_tip {
margin-right: -2px;
margin-left: 10px;
> img {
width: 22px;
height: 176px;
}
}
.arrow_tip:hover {
cursor: pointer;
}
}

32
src/assets/scss/modules/visual/communityManageForm.scss

@ -0,0 +1,32 @@
.item_width_1 {
width: 500px;
}
.item_width_2 {
width: 400px;
}
.item_width_3 {
margin-left: 10px;
width: 200px;
}
.item_width_4 {
width: 200px;
}
.div_map {
margin-top: 10px;
}
.div_btn {
margin-top: 20px;
text-align: center;
}
.el-tabs {
margin: 0 20px;
}
.el-upload__tip {
color: rgb(155, 155, 155);
margin: 0;
}
.form {
margin-top: 30px;
}

1151
src/assets/scss/modules/visual/people.scss

File diff suppressed because it is too large

57
src/assets/scss/modules/visual/personCategory.scss

@ -76,10 +76,42 @@
width: 100%;
display: flex;
position: relative;
flex-direction: column;
align-items: space-between;
justify-content: space-between;
align-items: flex-start;
margin-top: 10px;
// border: 1px solid red;
.item_left {
font-size: 16px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
}
.item_right {
width: 160px;
display: flex;
flex-direction: column;
align-items: space-between;
font-size: 16px;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
.item_right_row {
display: flex;
justify-content: space-between;
.item_right_title {
}
}
.row2 {
margin-top: 10px;
}
}
.num-item {
position: relative;
width: 100%;
@ -90,19 +122,6 @@
justify-content: space-between;
padding: 0 10px 0 9px;
// &::after {
// display: block;
// content: "";
// width: 8px;
// height: 8px;
// background: #f0f3f7;
// border-radius: 50%;
// position: absolute;
// left: 12px;
// top: 50%;
// transform: translate(0, -50%);
// }
div:nth-child(1) {
font-size: 16px;
font-family: PingFang SC;
@ -111,17 +130,15 @@
}
div:nth-child(2) {
display: flex;
align-items: center;
justify-content: space-between;
// width: 70%;
display: flex;
font-size: 20px;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
.right-icon {
width: 10px;
height: 14px;
}
}
}

147
src/assets/scss/modules/warning.scss

@ -0,0 +1,147 @@
.warning-box {
box-sizing: border-box;
// width: 1881px;
width: 100%;
// height: 100%;
min-height: 100%;
margin: 0 auto;
color: #999;
// background: url("../../../img/modules/visual/warning-box.png") no-repeat center;
background-size: 100% 100%;
padding: 25px 21px 35px 24px;
&-top {
display: flex;
// justify-content: space-around;
justify-content: flex-start;
flex-wrap: wrap;
min-height: 190px;
.top-item {
box-sizing: border-box;
width: 280px;
height: 190px;
padding: 10px 22px 14px 21px;
border-radius: 8px;
margin-right: 15px;
margin-bottom: 15px;
background-color: #fff;
&-img {
display: flex;
align-items: center;
img {
width: 78px;
height: 78px;
margin-right: 16px;
margin-bottom: 10px;
}
.top-item-left {
display: flex;
flex-direction: column;
span {
display: inline-block;
}
span:nth-child(1) {
font-size: 18px;
font-weight: 400;
color: #333333;
}
span:nth-child(2) {
font-size: 28px;
font-weight: bold;
color: #2194fe;
margin-top: 10px;
}
}
}
&-num {
width: 100%;
display: flex;
position: relative;
flex-direction: column;
align-items: space-between;
// border: 1px solid red;
.num-item {
position: relative;
width: 100%;
height: 35px;
display: flex;
border-radius: 4px;
align-items: center;
justify-content: space-between;
padding: 0 10px 0 29px;
cursor: pointer;
&::after {
display: block;
content: "";
width: 8px;
height: 8px;
background: #2194fe;
border-radius: 50%;
position: absolute;
left: 12px;
top: 50%;
transform: translate(0, -50%);
}
div:nth-child(1) {
font-size: 16px;
font-family: PingFang SC;
font-weight: 400;
color: #333333;
}
div:nth-child(2) {
// width: 70%;
display: flex;
font-size: 20px;
font-family: PingFang SC;
font-weight: 500;
color: #333;
.right-icon {
width: 10px;
height: 14px;
}
}
}
.num-item-active {
background-color: #f0f3f7;
}
.num-item:nth-child(2) {
margin-top: 10px;
}
}
}
}
&-bottom {
box-sizing: border-box;
width: 100%;
height: calc(100% - 300px);
padding: 35px 40px;
min-height: 300px;
margin-top: 30px;
background-color: #fff;
.pagination {
box-sizing: border-box;
margin-top: 20px;
width: 100%;
height: 40px;
display: flex;
justify-content: flex-end;
}
}
}

90
src/js/dai/request2.js

@ -0,0 +1,90 @@
/*---------------------------------------------------------------
| 请求接口封装 |
---------------------------------------------------------------*/
import axios from "axios";
import curry from "dai-js/tools/curry";
import { Message } from "element-ui";
const request = curry(
(method, url, data = {}, headers = {}, progress = () => {}) => {
return new Promise((reslove) => {
let returnIniData = {
httpCode: "",
data: {},
msg: "",
code: "",
};
// 添加服务器端URL
function processUrl(url) {
if (url.indexOf("http://") > -1 || url.indexOf("https://") > -1) {
return url;
}
return process.env.VUE_APP_API_SERVER + url;
}
url = processUrl(url);
const succFn = (res) => {
// log(`[request成功] ${url}`, data, res);
let retData = {
...returnIniData,
...res.data,
httpCode: res.statusCode,
};
// if(typeof Vue.$afterRequestHook == 'function'){
// retData = Vue.$afterRequestHook(retData);
// }
if (res.data.code > 8000 && res.data.code < 10000) {
Message.error(res.data.msg);
}
reslove(retData);
};
const failFn = (err) => {
// log(`[request失败] ${url}`, data, err);
reslove(
Object.assign({}, returnIniData, {
httpCode: "9999", //访问出现意外
msg: "网络错误",
})
);
};
if (method.toUpperCase() == "POST") {
axios
.post(url, data, {
headers,
responseType: "json",
// progress,
// credentials: false,
})
.then(succFn)
.catch(failFn);
} else {
axios
.get(url, {
params: data,
headers,
responseType: "json",
// credentials: true,
})
.then(succFn)
.catch(failFn);
}
});
}
);
export const requestGet = request("get");
export const requestPost = request("post");
export default {
install(Vue) {
Vue.prototype.$requestGet = requestGet;
Vue.prototype.$requestPost = requestPost;
},
};

2
src/main.js

@ -8,6 +8,8 @@ import router from "@/router";
import "@/icons";
import "@/element-ui/theme/index.css";
import "@/assets/scss/aui.scss";
//按钮
import http from "@/utils/request";
import renRadioGroup from "@/components/ren-radio-group";
import renSelect from "@/components/ren-select";

78
src/router/index.js

@ -282,44 +282,44 @@ router.beforeEach((to, from, next) => {
url: "visual/heart/index",
children: [],
},
// {
// icon: "icon-setting",
// id: "44rq22222q2222",
// name: "AI安防",
// // url: "visual/basicinfo/basicInfoMain",
// children: [
// {
// url: "/visual/ai/index",
// name: "AI安防",
// id: "5feawfwa111111efwa57",
// },
// {
// url: "/visual/ai/renliu",
// name: "人流数据",
// id: "5fwaefwae222112fawef58",
// },
// {
// url: "/visual/ai/cheliu",
// name: "车流数据",
// id: "erawerwecsxefwaw",
// },
// {
// url: "/visual/ai/shebei",
// name: "设备数据",
// id: "zfzffewaf",
// },
// {
// url: "/visual/ai/gongdan",
// name: "工单数据",
// id: "fewafwafewaefddd",
// },
// {
// url: "/visual/ai/yujing",
// name: "预警事件",
// id: "545345fdsfs",
// },
// ],
// },
{
icon: "icon-setting",
id: "44rq22222q2222",
name: "AI安防",
// url: "visual/basicinfo/basicInfoMain",
children: [
{
url: "/visual/ai/index",
name: "AI安防",
id: "5feawfwa111111efwa57",
},
{
url: "/visual/ai/renliu",
name: "人流数据",
id: "5fwaefwae222112fawef58",
},
{
url: "/visual/ai/cheliu",
name: "车流数据",
id: "erawerwecsxefwaw",
},
{
url: "/visual/ai/shebei",
name: "设备数据",
id: "zfzffewaf",
},
{
url: "/visual/ai/gongdan",
name: "工单数据",
id: "fewafwafewaefddd",
},
{
url: "/visual/ai/yujing",
name: "预警事件",
id: "545345fdsfs",
},
],
},
];
fnAddDynamicMenuRoutes2(window.SITE_CONFIG["menuShujuList"]);
@ -375,7 +375,7 @@ function fnAddDynamicMenuRoutes(menuList = [], routes = []) {
for (var i = 0; i < menuList.length; i++) {
if (menuList[i].children && menuList[i].children.length >= 1) {
temp = temp.concat(menuList[i].children);
continue;
// continue;
}
// 组装路由
var route = {

35
src/views/components/CTable.vue

@ -4,7 +4,6 @@
ref="table"
class="tableLimit"
:height="table.height"
:header-cell-style="{color:'#000'}"
:data="tableData"
:style="{width: '100%'}"
border
@ -18,7 +17,7 @@
@row-click="handleRowClick">
<!--设置index索引-->
<div v-if="columnType==='index'">
<el-table-column :type="columnType"></el-table-column>
<el-table-column label="序号" :type="columnType" width="50"></el-table-column>
</div>
<!--设置checkbox-->
<div v-if="columnType==='selection'">
@ -87,7 +86,7 @@
fixed="right"
:min-width="operationWidth"
header-align="center"
align="buttonAlign"
:align="buttonAlign"
class="operate">
<template slot-scope="scope">
<!--传入的操作按钮属性 lyx 20190411 -->
@ -103,12 +102,12 @@
</el-table-column>
</el-table>
<!--分页-->
<el-row class="page "
<!-- <el-row class="page "
v-if="pageVisible">
<el-col :span="8"
style="text-align: leftline-height: 32px">
<slot style="text-align: left"></slot>
<span></span>
<div></div>
</el-col>
<el-col :span="16">
<el-pagination @size-change="handleSizeChange"
@ -121,7 +120,23 @@
layout="jumper, prev, pager, next,sizes, total"
:total="total"></el-pagination>
</el-col>
</el-row>
</el-row> -->
<div v-if="pageVisible" class="pagination-diy">
<div class="pagination-left">
<slot></slot>
</div>
<div class="pagination-left">
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
@prev-click="handlePrevClick"
@next-click="handleNextClick"
:current-page="pageNo"
:page-sizes="tablePageSizes"
:page-size="pageSize"
layout="jumper, prev, pager, next,sizes, total"
:total="total"></el-pagination>
</div>
</div>
</div>
</template>
@ -211,7 +226,7 @@ export default {
//
buttonAlign: {
type: String,
default: ""
default: "center"
}
},
@ -421,4 +436,10 @@ export default {
.el-table .cell {
white-space: pre-line; /*保留换行符*/
}
.pagination-diy {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
</style>

8
src/views/components/editResi.vue

@ -38,7 +38,7 @@
<div class="resi-cell-col">
<el-form-item prop="VILLAGE_ID">
<el-select v-model.trim="form.VILLAGE_ID" placeholder="请选择小区" size="small"
clearable class="resi-cell-select" @change="handleChangeV"
clearable class="resi-cell-select" :disabled="disabled" @change="handleChangeV"
>
<el-option
v-for="item in optionsV"
@ -50,7 +50,7 @@
</el-form-item>
<el-form-item prop="BUILD_ID">
<el-select v-model.trim="form.BUILD_ID" placeholder="请选择楼号" size="small"
clearable class="resi-cell-select resi-cell-select-middle" @change="handleChangeB"
clearable :disabled="disabled" class="resi-cell-select resi-cell-select-middle" @change="handleChangeB"
>
<el-option
v-for="item in optionsB"
@ -62,7 +62,7 @@
</el-form-item>
<el-form-item prop="UNIT_ID">
<el-select v-model.trim="form.UNIT_ID" placeholder="请选择单元" size="small"
clearable class="resi-cell-select resi-cell-select-middle" @change="handleChangeD"
clearable :disabled="disabled" class="resi-cell-select resi-cell-select-middle" @change="handleChangeD"
>
<el-option
v-for="item in optionsD"
@ -74,7 +74,7 @@
</el-form-item>
<el-form-item prop="HOME_ID">
<el-select v-model.trim="form.HOME_ID" placeholder="请选择房号" size="small"
clearable class="resi-cell-select resi-cell-select-middle"
clearable :disabled="disabled" class="resi-cell-select resi-cell-select-middle"
>
<el-option
v-for="item in optionsH"

2
src/views/components/resiSearch.vue

@ -189,7 +189,7 @@
<el-button type="primary" size="mini">查询</el-button>
</el-col> -->
<el-col :span="24">
<el-button type="primary" size="mini" @click="handleSearch">查询</el-button>
<el-button type="primary" size="small" @click="handleSearch">查询</el-button>
</el-col>
</el-row>
<div class="resi-down" @click="handleOpenSearch">

14
src/views/components/resiTransfer.vue

@ -1,6 +1,6 @@
<template>
<div>
<div>
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="false"
:model="dataForm"
@ -112,12 +112,20 @@
</el-form>
</div>
<div class="div_btn">
<!-- <div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<el-button type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
</div>
</div> -->
<div class="resi-btns">
<el-button size="small"
@click="handleCancle">取消</el-button>
<el-button type="primary"
size="small"
:loading="btnDisable"
@click="handleComfirm">提交</el-button>
</div>
</div>
</template>

7
src/views/components/scoreRecord.vue

@ -54,12 +54,13 @@
header-align="center"
align="center"
label="需求人"
width="100">
width="120">
</el-table-column>
<el-table-column prop="content"
header-align="center"
align="center"
label="需求内容"
:show-overflow-tooltip="true"
min-width="230">
</el-table-column>
@ -74,14 +75,14 @@
header-align="center"
align="center"
label="评价"
width="80">
width="120">
</el-table-column>
<el-table-column prop="point"
header-align="center"
align="center"
label="积分"
width="80">
width="100">
</el-table-column>
</el-table>

5
src/views/modules/base/category/addCategory.vue

@ -35,9 +35,10 @@
</div>
<div class="div_btn">
<el-button type="warning"
<el-button size="small"
@click="handleCancle">取消</el-button>
<el-button type="primary"
<el-button size="small"
type="primary"
class="btn_right"
@click="handleConfirm">确定</el-button>
</div>

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

@ -1,6 +1,6 @@
<template>
<div>
<div>
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
@ -109,8 +109,10 @@
</div>
<div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<el-button v-if="formType != 'detail'"
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button size="small"
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
@ -381,43 +383,6 @@ export default {
props: {}
}
</script>
<style lang="scss" scoped>
.item_width_1 {
width: 500px;
}
.item_width_2 {
width: 400px;
}
.item_width_3 {
margin-left: 10px;
width: 200px;
}
.item_width_4 {
width: 200px;
}
.div_map {
margin-top: 10px;
}
.div_btn {
display: flex;
justify-content: flex-end;
}
.el-tabs {
margin: 0 20px;
}
.el-upload__tip {
color: rgb(155, 155, 155);
margin: 0;
}
.form {
margin-top: 30px;
}
</style>
<style>
.el-dialog__body {
padding: 0 10px 20px !important;
}
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
</style>

53
src/views/modules/base/community/buildTable.vue

@ -26,27 +26,25 @@
</div>
</div>
<el-button style="margin-left:10px"
type="primary"
class="diy-button--search"
size="small"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
class="diy-button--reset"
size="small"
@click="resetSearch">重置</el-button>
</div>
<div class="div_btn">
<el-button style="float:left"
type="yellow"
size="small"
icon="el-icon-download"
@click="handleExport">导出</el-button>
<el-button style="float:left"
type="green"
class="diy-button--add"
size="small"
icon="el-icon-plus"
@click="handleAdd">新增楼宇</el-button>
<div class="btn_upload"
v-if="showImportBtn">
<el-button style=";margin-left:10px"
type="blue"
class="diy-button--export"
size="small"
icon="el-icon-download"
@click="handleExportModule('building')">下载楼宇模板</el-button>
<el-upload style=""
@ -59,14 +57,11 @@
:http-request="(()=>{uploadFile( 'building')})">
<el-button style="margin-left:10px"
size="small"
icon="el-icon-upload2"
:loading="importBuildingLoading"
type="red">导入楼宇数据</el-button>
class="diy-button--delete">导入楼宇数据</el-button>
</el-upload>
<el-button style=";margin-left:10px"
type="blue"
class="diy-button--export"
size="small"
icon="el-icon-download"
@click="handleExportModule('room')">下载房屋模板</el-button>
<el-upload style=""
@ -79,11 +74,13 @@
:http-request="(()=>{uploadFile( 'room')})">
<el-button style="margin-left:10px"
size="small"
icon="el-icon-upload2"
:loading="importRoomLoading"
type="red">导入房屋数据</el-button>
class="diy-button--delete">导入房屋数据</el-button>
</el-upload>
</div>
<el-button style="float:left;margin-left:10px"
class="diy-button--reset"
size="small"
@click="handleExport">导出</el-button>
</div>
<div class="div_table">
@ -134,18 +131,18 @@
size="small"
@click="handleToNextLevel(scope.row)">进入</el-button> -->
<el-button type="text"
style="color:#1C6AFD;text-decoration: underline;"
class="div-table-button--detail"
size="small"
@click="handleDetail(scope.row)">查看</el-button>
<el-button v-if="scope.row.showBtn"
type="text"
style="color:#00A7A9;text-decoration: underline;"
class="div-table-button--edit"
size="small"
@click="handleEdit(scope.row)">修改</el-button>
<el-button v-if="scope.row.showBtn"
type="text"
style="color:#D51010;text-decoration: underline;"
class="div-table-button--delete"
size="small"
@click="handleDelete(scope.row)">删除</el-button>
</template>
@ -172,7 +169,7 @@
style="margin-left:15px"
type="red"
size="small"
@click="deleteBatch">批量删除</el-button>
@click="deleteBatch">删除</el-button>
</div>
</div>
@ -184,6 +181,7 @@
:title="formTitle"
top="5vh"
width="900px"
class="dialog-h"
@closed="diaClose">
<build-form ref="ref_form"
@dialogCancle="addFormCancle"
@ -244,7 +242,15 @@ export default {
...mapGetters(['clientHeight'])
},
methods: {
//
resetSearch () {
this.ownerName = ''
this.ownerPhone = ''
this.pageSize = 10
this.pageNo = 0
// this.loadTable()
},
handleSearch () {
this.loadTable()
},
@ -715,6 +721,5 @@ export default {
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/buttonstyle.scss";
@import "@/assets/scss/modules/visual/communityManage.scss";
</style>

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

@ -1,6 +1,6 @@
<template>
<div>
<div>
<div class="dialog-h-content scroll-h">
<div v-show="!propertyFormShow">
<el-form ref="ref_form"
:inline="true"
@ -73,6 +73,7 @@
v-model="dataForm.address">
</el-input>
</el-form-item>
<el-form-item label="备注"
prop="remark"
label-width="150px"
@ -139,8 +140,10 @@
</div>
</div>
<div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<el-button v-if="formType != 'detail'"
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button size="small"
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
@ -503,43 +506,9 @@ export default {
props: {}
}
</script>
<style scoped>
.item_width_1 {
width: 500px;
}
.item_width_2 {
width: 400px;
}
.item_width_3 {
margin-left: 10px;
width: 200px;
}
.item_width_4 {
width: 200px;
}
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
</style>
.div_map {
margin-top: 10px;
}
.div_btn {
display: flex;
justify-content: flex-end;
}
.el-tabs {
margin: 0 20px;
}
.el-upload__tip {
color: rgb(155, 155, 155);
margin: 0;
}
.form {
margin-top: 30px;
}
</style>
<style>
.el-dialog__body {
padding: 0 10px 20px !important;
}
</style>

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

@ -26,27 +26,25 @@
</div>
</div>
<el-button style="margin-left:10px"
type="primary"
class="diy-button--search"
size="small"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
class="diy-button--reset"
size="small"
@click="resetSearch">重置</el-button>
</div>
<div class="div_btn">
<el-button style=""
type="yellow"
size="small"
icon="el-icon-download"
@click="handleExport">导出</el-button>
<el-button style=""
type="green"
class="diy-button--add"
size="small"
icon="el-icon-plus"
@click="handleAdd">新增小区</el-button>
<div class="btn_upload"
v-if="showImportBtn">
<el-button style=""
type="blue"
class="diy-button--export"
size="small"
icon="el-icon-download"
@click="handleExportModule('community')">下载小区模板</el-button>
<el-upload ref="upload_community"
@ -59,15 +57,12 @@
:http-request="(()=>{uploadFile( 'community')})">
<el-button style="margin-left:10px"
size="small"
icon="el-icon-upload2"
:loading="importCommunityLoading"
type="red">导入小区数据</el-button>
class="diy-button--delete">导入小区数据</el-button>
</el-upload>
<el-button style=";margin-left:10px"
type="blue"
class="diy-button--export"
size="small"
icon="el-icon-download"
@click="handleExportModule('building')">下载楼宇模板</el-button>
<el-upload style=""
@ -80,14 +75,11 @@
:http-request="(()=>{uploadFile( 'building')})">
<el-button style="margin-left:10px"
size="small"
icon="el-icon-upload2"
:loading="importBuildingLoading"
type="red">导入楼宇数据</el-button>
class="diy-button--delete">导入楼宇数据</el-button>
</el-upload>
<el-button style=";margin-left:10px"
type="blue"
class="diy-button--export"
size="small"
icon="el-icon-download"
@click="handleExportModule('room')">下载房屋模板</el-button>
<el-upload style=""
@ -100,11 +92,13 @@
:http-request="(()=>{uploadFile( 'room')})">
<el-button style="margin-left:10px"
size="small"
icon="el-icon-upload2"
:loading="importRoomLoading"
type="red">导入房屋数据</el-button>
class="diy-button--delete">导入房屋数据</el-button>
</el-upload>
</div>
<el-button style="margin-left:10px"
class="diy-button--reset"
size="small"
@click="handleExport">导出</el-button>
</div>
@ -134,6 +128,14 @@
label="所属网格"
min-width="120">
</el-table-column>
<!-- <el-table-column prop="总单元数"
label="所属网格"
min-width="80">
</el-table-column>
<el-table-column prop="总户数"
label="所属网格"
min-width="80">
</el-table-column> -->
<el-table-column prop="address"
label="详细地址"
min-width="180">
@ -155,18 +157,18 @@
size="small"
@click="handleToNextLevel(scope.row)">进入</el-button> -->
<el-button type="text"
style="color:#1C6AFD;text-decoration: underline;"
class="div-table-button--detail"
size="small"
@click="handleDetail(scope.row)">查看</el-button>
<el-button v-if="scope.row.showBtn"
type="text"
style="color:#00A7A9;text-decoration: underline;"
class="div-table-button--edit"
size="small"
@click="handleEdit(scope.row)">修改</el-button>
<el-button v-if="scope.row.showBtn"
type="text"
style="color:#D51010;text-decoration: underline;"
class="div-table-button--delete"
size="small"
@click="handleDelete(scope.row)">删除</el-button>
</template>
@ -191,9 +193,9 @@
@change="handleSelectAll">全选</el-checkbox>
<el-button v-show="showDeletBtn"
style="margin-left:15px"
type="red"
class="diy-button--delete"
size="small"
@click="deleteBatch">批量删除</el-button>
@click="deleteBatch">删除</el-button>
</div>
</div>
@ -204,6 +206,7 @@
:title="formTitle"
width="850px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<community-form ref="ref_form"
@dialogCancle="addFormCancle"
@ -272,7 +275,15 @@ export default {
...mapGetters(['clientHeight'])
},
methods: {
//
resetSearch () {
this.ownerName = ''
this.ownerPhone = ''
this.pageSize = 10
this.pageNo = 0
// this.loadTable()
},
handleSearch () {
this.loadTable()
},
@ -762,12 +773,12 @@ export default {
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/buttonstyle.scss";
@import "@/assets/scss/modules/visual/communityManage.scss";
</style>
<style>
<style >
.el-message.is-closable .el-message__content {
line-height: 20px;
}
</style>

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

@ -1,6 +1,6 @@
<template>
<div>
<div>
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="false"
:model="dataForm"
@ -112,8 +112,10 @@
</div>
<div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<el-button v-if="formType != 'detail'"
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button size="small"
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
@ -163,7 +165,7 @@ export default {
methods: {
async initForm (type, row, agencyObj) {
debugger
this.$refs.ref_form.resetFields();
this.agencyObj = agencyObj
this.dataForm.neighborHoodId = agencyObj.neighborHoodId
@ -348,35 +350,6 @@ export default {
props: {}
}
</script>
<style lang="scss" scoped>
.item_width_1 {
width: 500px;
}
.item_width_2 {
width: 400px;
}
.item_width_3 {
margin-left: 10px;
width: 200px;
}
.div_btn {
display: flex;
justify-content: flex-end;
}
.el-tabs {
margin: 0 20px;
}
.el-upload__tip {
color: rgb(155, 155, 155);
margin: 0;
}
.form {
margin-top: 30px;
}
</style>
<style>
.el-dialog__body {
padding: 0 10px 20px !important;
}
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
</style>

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

@ -26,27 +26,25 @@
</div>
</div>
<el-button style="margin-left:10px"
type="primary"
class="diy-button--search"
size="small"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
class="diy-button--reset"
size="small"
@click="resetSearch">重置</el-button>
</div>
<div class="div_btn">
<el-button style="float:left"
type="yellow"
size="small"
icon="el-icon-download"
@click="handleExport">导出</el-button>
<el-button style="float:left"
type="green"
icon="el-icon-plus"
class="diy-button--add"
size="small"
@click="handleAdd">新增房屋</el-button>
<div class="btn_upload"
v-if="showImportBtn">
<el-button style="float:left"
type="blue"
class="diy-button--export"
size="small"
icon="el-icon-download"
@click="handleExportModule">下载房屋模板</el-button>
<el-upload ref="upload"
:multiple='false'
@ -59,11 +57,13 @@
:http-request="uploadFile">
<el-button style="margin-left:10px"
size="small"
icon="el-icon-upload2"
:loading="importRoomLoading"
type="red">导入房屋数据</el-button>
class="diy-button--delete">导入房屋数据</el-button>
</el-upload>
</div>
<el-button style="float:left;margin-left:10px"
class="diy-button--reset"
size="small"
@click="handleExport">导出</el-button>
</div>
<div class="div_table">
@ -126,18 +126,18 @@
<template slot-scope="scope">
<el-button type="text"
style="color:#1C6AFD;text-decoration: underline;"
class="div-table-button--detail"
size="small"
@click="handleDetail(scope.row)">查看</el-button>
<el-button v-if="scope.row.showBtn"
type="text"
style="color:#00A7A9;text-decoration: underline;"
class="div-table-button--edit"
size="small"
@click="handleEdit(scope.row)">修改</el-button>
<el-button v-if="scope.row.showBtn"
type="text"
style="color:#D51010;text-decoration: underline;"
class="div-table-button--delete"
size="small"
@click="handleDelete(scope.row)">删除</el-button>
</template>
@ -164,7 +164,7 @@
style="margin-left:15px"
type="red"
size="small"
@click="deleteBatch">批量删除</el-button>
@click="deleteBatch">删除</el-button>
</div>
</div>
@ -175,6 +175,8 @@
:close-on-press-escape="false"
:title="formTitle"
width="900px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<room-form ref="ref_form"
@dialogCancle="addFormCancle"
@ -235,7 +237,15 @@ export default {
...mapGetters(['clientHeight'])
},
methods: {
//
resetSearch () {
this.ownerName = ''
this.ownerPhone = ''
this.pageSize = 10
this.pageNo = 0
// this.loadTable()
},
handleSearch () {
this.loadTable()
@ -678,6 +688,5 @@ export default {
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/buttonstyle.scss";
@import "@/assets/scss/modules/visual/communityManage.scss";
</style>

124
src/views/modules/base/grid.vue

@ -2,25 +2,24 @@
<div>
<div class="resi-container">
<el-card class="resi-card">
<el-row class="resi-row-box" :class="openSearch && 'resi-row-more'">
<el-row class="resi-row" :gutter="20">
<el-row class="resi-row-box"
:class="openSearch && 'resi-row-more'">
<el-row class="resi-row"
:gutter="20">
<el-col span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属组织</div>
<div class="resi-cell-value" :class="'resi-cell-value-radio'">
<el-select
v-model="fmData.agencyId"
placeholder="请选择"
size="small"
clearable
class="resi-cell-select"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
<div class="resi-cell-value"
:class="'resi-cell-value-radio'">
<el-select v-model="fmData.agencyId"
placeholder="请选择"
size="small"
clearable
class="resi-cell-select">
<el-option v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
@ -30,54 +29,60 @@
<el-col span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属组织</div>
<div class="resi-cell-value" :class="'resi-cell-value-radio'">
<el-input
v-model="fmData.agencyId"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入内容"
>
<div class="resi-cell-value"
:class="'resi-cell-value-radio'">
<el-input v-model="fmData.agencyId"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入内容">
</el-input>
</div>
</div>
</el-col>
</el-row>
</el-row>
<el-row class="resi-search">
<el-col span="24">
<el-button type="primary" size="mini" @click="handleSearch"
>查询</el-button
>
</el-col>
</el-row>
<div class="resi-card-btn">
<el-button type="primary"
size="mini"
@click="handleSearch">查询</el-button>
</div>
</el-card>
</div>
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-button type="warning" size="small">导出</el-button>
<el-button type="success" size="small" @click="handleAdd"
>新增</el-button
>
<el-button type="yellow"
size="small">导出</el-button>
<el-button size="small"
type="green"
@click="handleAdd">新增</el-button>
</div>
<el-table :data="tableData" border style="width: 100%">
<el-table-column prop="date" label="日期" width="180">
<el-table :data="tableData"
border
style="width: 100%">
<el-table-column prop="date"
label="日期"
width="180">
</el-table-column>
<el-table-column prop="name" label="姓名" width="180">
<el-table-column prop="name"
label="姓名"
width="180">
</el-table-column>
<el-table-column prop="address" label="地址"> </el-table-column>
<el-table-column prop="address"
label="地址"> </el-table-column>
</el-table>
<div>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
:page-sizes="[100, 200, 300, 400]"
:page-size="100"
layout="sizes, prev, pager, next"
:total="1000"
>
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
:page-sizes="[100, 200, 300, 400]"
:page-size="100"
layout="sizes, prev, pager, next"
:total="1000">
</el-pagination>
</div>
</el-card>
@ -87,7 +92,7 @@
<script>
export default {
components: {},
data() {
data () {
return {
dialogVisible: false,
openSearch: false,
@ -113,25 +118,25 @@ export default {
}
},
methods: {
handleSizeChange(val) {
handleSizeChange (val) {
console.log(`每页 ${val}`)
},
handleCurrentChange(val) {
handleCurrentChange (val) {
console.log(`当前页: ${val}`)
},
handleClose() {
handleClose () {
this.dialogVisible = false
},
handleSearch(val) {
handleSearch (val) {
console.log('searchhh--', val)
},
handleClick(tab, event) {
handleClick (tab, event) {
console.log(tab, event)
},
handleAdd() {
handleAdd () {
this.dialogVisible = true
},
handleSUbmit() {
handleSUbmit () {
console.log('baseform', this.$refs)
this.tabsList.forEach((item) => {
@ -223,7 +228,7 @@ export default {
}
}
.resi-row-box {
height: 104px;
height: 84px;
overflow: hidden;
transition: height 0.5s;
}
@ -234,6 +239,11 @@ export default {
.resi-row {
margin-bottom: 20px;
}
.resi-card-btn {
position: absolute;
right: 20px;
bottom: 15px;
}
.resi-search {
.el-col {
text-align: right;

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

@ -7,14 +7,12 @@
@search="handleSearch" />
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-button type="success"
size="small"
<el-button size="small"
class="diy-button--add"
@click="handleAdd">新增</el-button>
<el-button type="warning"
<el-button class="diy-button--export"
size="small"
:loading="exportBtn"
@click="handleExport">{{exportBtnTitle}}</el-button>
<!-- <el-button type="primary" size="small">下载人口模板</el-button> -->
@click="handleExportModule('room')">下载人口模板</el-button>
<el-upload ref="upload"
class="upload-demo"
action="uploadUlr"
@ -26,23 +24,34 @@
:on-success="handleExcelSuccess"
:before-upload="beforeExcelUpload"
:http-request="uploadHttpRequest">
<el-button type="danger"
size="small"
<el-button size="small"
class="diy-button--delete"
:loading="importLoading">{{importBtnTitle}}</el-button>
</el-upload>
<el-button size="small"
class="diy-button--reset"
:loading="exportBtn"
@click="handleExport">{{exportBtnTitle}}</el-button>
<!-- <el-button type="primary" size="small">下载人口模板</el-button> -->
</div>
<el-table ref="ref_table" :data="tableData"
<el-table ref="ref_table"
:data="tableData"
v-loading="tableLoading"
border
style="width: 100%"
class="resi-table"
:height="tableHeight"
@select-all="selectAll"
@selection-change="selectionChange">
<el-table-column type="selection"
fixed="left"
:selectable="checkSelect"
width="55" />
<el-table-column label="序号"
type="index"
fixed="left"
align="center"
width="50">
</el-table-column>
@ -51,10 +60,16 @@
:prop="item.columnName"
:label="item.label"
align="center"
:fixed="item.columnName == 'NAME' ? 'left' : false"
:show-overflow-tooltip="true"
:width="item.itemType === 'radio' ? computedWidth(item.label) : 180">
<template slot-scope="scope">
<span>{{ handleFilterSpan(scope.row, item) }}</span>
<a v-if="item.columnName == 'NAME'"
class="name-a"
@click="handleLook(scope.row)">
{{ handleFilterSpan(scope.row, item) }}
</a>
<span v-else>{{ handleFilterSpan(scope.row, item) }}</span>
</template>
</el-table-column>
<el-table-column fixed="right"
@ -62,29 +77,29 @@
align="center"
width="150">
<template slot-scope="scope">
<el-button @click="handleLook(scope.row)"
<!-- <el-button @click="handleLook(scope.row)"
type="text"
size="small"
class="btn-color-look">查看</el-button>
class="btn-color-look">查看</el-button> -->
<el-button @click="handleTransfer(scope.row)"
type="text"
size="small"
class="btn-color-look">调动</el-button>
class="div-table-button--detail">调动</el-button>
<el-button @click="handleChangeRecord(scope.row)"
type="text"
size="small"
class="btn-color-look">变更记录</el-button>
class="div-table-button--detail">变更记录</el-button>
<template v-if="filterEdit(scope.row.ORG_ID)">
<el-button @click="handleEdit(scope.row)"
type="text"
size="small"
class="btn-color-edit">编辑</el-button>
class="div-table-button--edit">编辑</el-button>
<el-popconfirm title="删除之后无法回复,确认删除?"
@onConfirm="handleDel(scope.row)">
<el-button slot="reference"
<!-- <el-button slot="reference"
type="text"
size="small"
class="btn-color-del">删除</el-button>
class="btn-color-del">删除</el-button> -->
</el-popconfirm>
</template>
</template>
@ -93,58 +108,64 @@
<div class="div-flex">
<div class="div_del">
<el-checkbox :indeterminate="isIndeterminate"
v-model="selAllFlag"
:disabled="tableData.length==0"
@change="handleSelectAll">全选</el-checkbox>
<el-button v-if="selection.length > 0" style="margin-left:15px"
type="danger"
size="small"
@click="deleteBatch">删除</el-button>
v-model="selAllFlag"
:disabled="selAllFlagDisabled"
@change="handleSelectAll">全选</el-checkbox>
<el-button v-if="selection.length > 0"
style="margin-left:15px"
type="danger"
size="small"
@click="deleteBatch">删除</el-button>
</div>
<div>
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
layout="sizes, prev, pager, next, total"
:total="total">
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
layout="sizes, prev, pager, next, total"
:total="total">
</el-pagination>
</div>
</div>
</el-card>
<el-dialog :title="formName"
:visible.sync="dialogVisible"
width="80%"
top="5vh"
append-to-body
class="dialog-h"
:close-on-click-modal="false"
:before-close="handlerCancle">
<resi-form v-if="dialogVisible"
ref="baseForm"
:fixed="true"
:form-list="formList"
@changegroup="handleChangeGroup" />
<div v-if="dialogVisible"
class="resi-other">
<div class="resi-other-title">其他</div>
<div class="tabs-other-info">
<el-tabs v-model="activeName"
@tab-click="handleClick">
<el-tab-pane v-for="item in tabsList"
:key="item.columnName"
:label="item.label"
:name="'group' + item.groupId">
<resi-form :ref="'group' + item.groupId"
:columns="3"
:support-add="item.supportAdd"
:form-id="item.columnName"
:form-list="item.itemList" />
</el-tab-pane>
</el-tabs>
<div class="dialog-h-content scroll-h">
<resi-form v-if="dialogVisible"
ref="baseForm"
:fixed="true"
:form-list="formList"
@changegroup="handleChangeGroup" />
<div v-if="dialogVisible"
class="resi-other">
<div class="resi-other-title">其他</div>
<div class="tabs-other-info">
<el-tabs v-model="activeName"
@tab-click="handleClick">
<el-tab-pane v-for="item in tabsList"
:key="item.columnName"
:label="item.label"
:name="'group' + item.groupId">
<resi-form :ref="'group' + item.groupId"
:columns="3"
:support-add="item.supportAdd"
:form-id="item.columnName"
:form-list="item.itemList" />
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
<div class="resi-btns">
<el-button size="small"
@click="handlerCancle">取消</el-button>
@ -159,37 +180,41 @@
:visible.sync="dialogEditVisible"
width="80%"
append-to-body
class="dialog-h"
top="5vh"
:close-on-click-modal="false"
:before-close="handlerEditCancle">
<edit-resi v-if="dialogEditVisible"
ref="baseForm"
:disabled="disabled"
:form-info="editForm"
:fixed="true"
:form-list="formList"
:agency-id="editAgencyId"
@changegroup="handleChangeGroup" />
<div v-if="dialogEditVisible"
class="resi-other">
<div class="resi-other-title">其他</div>
<div class="tabs-other-info">
<el-tabs v-model="activeName"
@tab-click="handleClick">
<el-tab-pane v-for="item in tabsList"
:key="item.columnName"
:label="item.label"
:name="'group' + item.groupId">
<edit-resi :ref="'group' + item.groupId"
:columns="3"
:support-add="item.supportAdd"
:form-id="item.columnName"
:muti-list="item.mutiList"
:form-list="item.itemList"
:disabled="disabled"
:label-width="'140px'"
:agency-id="editAgencyId" />
</el-tab-pane>
</el-tabs>
<div class="dialog-h-content scroll-h">
<edit-resi v-if="dialogEditVisible"
ref="baseForm"
:disabled="disabled"
:form-info="editForm"
:fixed="true"
:form-list="formList"
:agency-id="editAgencyId"
@changegroup="handleChangeGroup" />
<div v-if="dialogEditVisible"
class="resi-other">
<div class="resi-other-title">其他</div>
<div class="tabs-other-info">
<el-tabs v-model="activeName"
@tab-click="handleClick">
<el-tab-pane v-for="item in tabsList"
:key="item.columnName"
:label="item.label"
:name="'group' + item.groupId">
<edit-resi :ref="'group' + item.groupId"
:columns="3"
:support-add="item.supportAdd"
:form-id="item.columnName"
:muti-list="item.mutiList"
:form-list="item.itemList"
:disabled="disabled"
:label-width="'140px'"
:agency-id="editAgencyId" />
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
<div class="resi-btns">
@ -210,6 +235,7 @@
:title="'人员调动'"
width="950px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<resi-transfer ref="ref_transfer"
@dialogCancle="transferClose"></resi-transfer>
@ -235,6 +261,7 @@ import resiSearch from '../../components/resiSearch.vue'
import resiForm from '../../components/resiForm.vue'
import editResi from '../../components/editResi.vue'
import axios from 'axios'
import { mapGetters } from 'vuex'
import resiTransfer from '../../components/resiTransfer.vue'
import resiChangeRecord from '../../components/resiChangeRecord.vue'
@ -258,6 +285,7 @@ export default {
disabled: false,
pageLoading: false,
selAllFlag: false,
selAllFlagDisabled: false,
isIndeterminate: false,
dialogEditVisible: false,
dialogVisible: false,
@ -265,6 +293,7 @@ export default {
currentPage: 1,
pageSize: 20,
total: null,
tableHeight: 0,
conditions: [],
activeName: '',
tableData: [],
@ -315,13 +344,23 @@ export default {
await this.getTableHeader()
// console.log('this.$refs.resiSearch', this)
this.$refs.resiSearch.handleSearch()
// this.handleSearch()
// this.getTableData()
this.pageLoading = true
console.log('storeoooo----0000', this.$store)
console.log('resiSearch', this.$refs.resiSearch.$el.offsetHeight)
this.tableHeight = document.documentElement.clientHeight - this.$refs.resiSearch.$el.offsetHeight - 280 + 'px'
},
mounted () {
console.log('document.documentElement.clientWidth', document.documentElement.clientHeight)
},
methods: {
checkSelect (row, index) {
return row.isChecked
},
//
async handleTransfer (row) {
this.tranferShow = true
@ -378,7 +417,10 @@ export default {
this.$refs.ref_table.clearSelection();
if (selectAllFlag) {
this.tableData.forEach(row => {
this.$refs.ref_table.toggleRowSelection(row);
// this.$refs.ref_table.toggleRowSelection(row);
if (row.isChecked) {
this.$refs.ref_table.toggleRowSelection(row);
}
});
}
},
@ -440,6 +482,36 @@ export default {
this.conditions = val
this.getTableData()
},
async handleExportModule () {
let url = "/epmetuser/icresiuser/import/download-template"
let params = {}
await this.$http
.post(url, params)
.then(res => {
console.log('res----dddd', res)
// this.download(res.data, title + '.xls')
if (res.headers["content-disposition"]) {
let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1])
console.log('filename', fileName)
let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
var url = window.URL.createObjectURL(blob)
var aLink = document.createElement('a')
aLink.style.display = 'none'
aLink.href = url
aLink.setAttribute('download', fileName)
document.body.appendChild(aLink)
aLink.click()
document.body.removeChild(aLink) //
window.URL.revokeObjectURL(url) //blob
} else this.$message.error('下载失败')
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
//
download (data, fileName) {
console.log('data', data)
@ -820,7 +892,17 @@ export default {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.tableData = res.data.list
this.tableData = res.data.list.map(item => {
return {
...item,
isChecked: this.filterEdit(item.ORG_ID)
}
})
let _selAllFlagDisabled = true
this.tableData.forEach(item => {
if (item.isChecked) _selAllFlagDisabled = false
})
this.selAllFlagDisabled = _selAllFlagDisabled
this.total = res.data.total
}
})
@ -932,7 +1014,7 @@ export default {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
// console.log('', res.data)
console.log('获取查询详情成功--sss', res)
this.searchList = res.data
res.data.forEach((item) => {
if (item.optionSourceType === 'remote') {
@ -1097,15 +1179,15 @@ export default {
margin-left: 10px;
border: 0;
}
.el-button--success {
background: rgba(34, 193, 195, 1);
}
.el-button--warning {
background: rgba(254, 179, 73, 1);
}
.el-button--danger {
background: rgba(254, 98, 82, 1);
}
// .el-button--success {
// background: rgba(34, 193, 195, 1);
// }
// .el-button--warning {
// background: rgba(254, 179, 73, 1);
// }
// .el-button--danger {
// background: rgba(254, 98, 82, 1);
// }
}
.resi-other {
width: 100%;

99
src/views/modules/communityParty/elegant/index.vue

@ -1,7 +1,7 @@
<template>
<div v-if="pageLoading" class="resi-container">
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-card ref="searchCard" class="search-card">
<div class="">
<el-form ref="searchForm" :inline="true" :model="searchForm" class="demo-form-inline">
<el-form-item label="所属网格" prop="gridId">
<el-select v-model="searchForm.gridId" filterable placeholder="请选择" clearable>
@ -34,18 +34,20 @@
</el-select> -->
<el-input v-model="searchForm.name" placeholder="请输入" class="input-width" clearable></el-input>
</el-form-item>
<el-form-item label="主要事迹" prop="mainDeed">
<el-form-item label="主要事迹" prop="mainDeed" >
<el-input v-model="searchForm.mainDeed" placeholder="请输入" class="input-width" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSearch">查询</el-button>
<el-button type="yellow" @click="resetForm('searchForm')">重置</el-button>
<el-button class="diy-button--search" size="small" @click="handleSearch">查询</el-button>
<el-button class="diy-button--reset" size="small" @click="resetForm('searchForm')">重置</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-button type="success" @click="handleAdd">新增</el-button>
<el-button type="warning" size="small" :loading="exportBtn" @click="handleExport">{{ exportBtnTitle }}</el-button>
<el-button class="diy-button--add" size="small" @click="handleAdd">新增</el-button>
<el-upload
ref="upload"
class="upload-demo"
@ -58,16 +60,21 @@
:before-upload="beforeExcelUpload"
:http-request="uploadHttpRequest"
>
<el-button type="danger" :loading="importLoading">{{importBtnTitle}}</el-button>
<el-button size="small" class="diy-button--delete" :loading="importLoading">{{importBtnTitle}}</el-button>
</el-upload>
<el-button class="diy-button--reset" size="small" :loading="exportBtn" @click="handleExport">{{ exportBtnTitle }}</el-button>
<!-- <el-button
class="diy-button--export"
size="small"
@click="handleExportModule('room')">下载模板</el-button> -->
</div>
<el-table
:data="tableData"
row-key="categoryId"
row-key="id"
v-loading="tableLoading"
border
max-height="800"
:height="tableHeight"
style="width: 100%"
class="resi-table"
>
@ -82,7 +89,7 @@
:width="item.width"
>
<template slot-scope="scope">
<span>{{ handleFilterSpan(scope.row, item) }}</span>
<div class="div-content">{{ handleFilterSpan(scope.row, item) }}</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="200">
@ -123,7 +130,7 @@
:current-page.sync="currentPage"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
layout="sizes, prev, pager, next"
layout="sizes, prev, pager, next, total"
:total="total"
>
</el-pagination>
@ -133,12 +140,15 @@
<el-dialog
title="党员风采"
:visible.sync="dialogVisible"
width="40%"
width="50%"
top="5vh"
class="dialog-h"
append-to-body
:close-on-click-modal="false"
:before-close="handlerCancle"
>
<el-form v-if="dialogVisible" label-width="100px" :model="form" :rules="rules" ref="ruleForm" class="form-wr">
<el-form v-if="dialogVisible" label-width="100px" :model="form" :rules="rules" ref="ruleForm"
class="form-wr dialog-h-content scroll-h">
<el-form-item label="所属网格" prop="gridId">
<el-select v-model="form.gridId" filterable
:disabled="disabled" placeholder="请选择" class="input-width" clearable>
@ -240,6 +250,7 @@ export default {
pageSize: 20,
total: null,
tableData: [],
tableHeight: 400,
unloadPencent: 0,
addLevel: '1',
addType: 'add',
@ -269,13 +280,13 @@ export default {
label: '所属网格',
align: 'center',
columnName: 'gridName',
width: '300',
width: '200',
options: []
}, {
label: '分类类别',
align: 'center',
columnName: 'categoryName',
width: '200',
width: '160',
options: []
}, {
label: '主要事迹',
@ -310,16 +321,29 @@ export default {
},
async created() {
this.customerId = localStorage.getItem('customerId')
setTimeout(() => {
this.getTableData()
// setTimeout(() => {
// this.getTableData()
// this.getGridList('query')
// this.getGridList('addorupdate')
// this.getCateList('query')
// this.getCateList('addorupdate')
// }, 200)
this.getTableData()
this.getGridList('query')
this.getGridList('addorupdate')
this.getCateList('query')
this.getCateList('addorupdate')
}, 200)
this.pageLoading = true
// this.tableHeight = document.documentElement.clientHeight - this.$refs.searchCard.$el.offsetHeight - 280 + 'px'
},
mounted() {
this.$nextTick(() => {
this.tableHeight = document.documentElement.clientHeight - this.$refs.searchCard.$el.offsetHeight - 280 + 'px'
console.log('tableHeight', this.tableHeight)
})
},
methods: {
handleSizeChange(val) {
@ -356,6 +380,35 @@ export default {
this.uploading = true
this.unloadPencent = Number(file.percentage.toFixed(0))
},
async handleExportModule () {
let url = "/resi/partymember/import/template-download"
let params = {}
await this.$http
.post(url, params)
.then(res => {
// this.download(res.data, title + '.xls')
if (res.headers["content-disposition"]) {
let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1])
console.log('filename', fileName)
let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
var url = window.URL.createObjectURL(blob)
var aLink = document.createElement('a')
aLink.style.display = 'none'
aLink.href = url
aLink.setAttribute('download', fileName)
document.body.appendChild(aLink)
aLink.click()
document.body.removeChild(aLink) //
window.URL.revokeObjectURL(url) //blob
} else this.$message.error('下载失败')
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
beforeExcelUpload (file) {
console.log('file', file)
const isType = file.type === 'application/vnd.ms-excel'
@ -706,7 +759,7 @@ export default {
}
.input-width-textarea {
width: 400px;
width: 500px;
}
.imsg-list {
display: flex;
@ -726,6 +779,12 @@ export default {
}
}
}
.div-content {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
</style>
<style lang="scss" scoped>

28
src/views/modules/communityParty/regionalParty/activitys.vue

@ -66,11 +66,11 @@
</el-form-item>
<el-button style="margin-left:10px"
type="primary"
class="diy-button--search"
size="small"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
type="yellow"
class="diy-button--reset"
size="small"
@click="resetSearch">重置</el-button>
</div>
@ -79,13 +79,10 @@
<div class="div_table">
<div class="div_btn">
<el-button style=""
type="green"
class="diy-button--add"
size="small"
@click="handleAdd">新增</el-button>
<!-- <el-button style="float:left"
type="yellow"
size="small"
@click="handleExport">导出</el-button>
<!--
<el-upload ref="upload"
:multiple='false'
:show-file-list='false'
@ -97,10 +94,14 @@
:http-request="uploadFile">
<el-button style="margin-left:10px"
size="small"
type="red">导入</el-button>
class="diy-button--delete">导入</el-button>
</el-upload> -->
</el-upload>
<el-button style="float:left"
class="diy-button--reset"
size="small"
@click="handleExport">导出</el-button>-->
</div>
@ -203,6 +204,7 @@
:title="formTitle"
width="950px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<activitys-form ref="ref_form"
:unitList="unitList"
@ -216,9 +218,11 @@
:title="'活动详情'"
width="950px"
top="5vh"
class="dialog-h"
@closed="detailClosed">
<activitys-detail ref="ref_detail"
:serviceList="serviceList"></activitys-detail>
:serviceList="serviceList"
@diaClose="diaClose"></activitys-detail>
</el-dialog>
</div>
@ -630,7 +634,7 @@ export default {
computed: {
tableHeight () {
return (this.clientHeight - 460)
return (this.clientHeight - 430)
},
rowHeight () {
@ -647,8 +651,6 @@ export default {
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/buttonstyle.scss";
.div_main {
width: 100%;
}

195
src/views/modules/communityParty/regionalParty/activitysDetail.vue

@ -1,100 +1,104 @@
<template>
<div>
<div>
<div>
<el-form ref="ref_form"
:inline="true"
:model="formData"
class="form">
<el-form-item label="服务事项"
label-width="150px"
prop="serviceMatterShow">
<span class="detail_span">{{formData.serviceMatterShow}}</span>
</el-form-item>
<el-form-item label="单位名称"
prop="unitId"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.unitName}}</span>
</el-form-item>
<el-form-item label="活动标题"
prop="title"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.title}}</span>
</el-form-item>
<el-form-item label="活动目标"
prop="target"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.target}}</span>
</el-form-item>
<el-form-item label="活动内容"
prop="target"
label-width="150px"
style="display: block">
<p class="text_p"
v-html="formData.content"></p>
</el-form-item>
<el-form-item label="服务人数"
style="display: block"
prop="peopleCount"
label-width="150px">
<span class="detail_span">{{formData.peopleCount}}</span>
</el-form-item>
<el-form-item label="活动时间"
style="display: block"
prop="activityTime"
label-width="150px">
<span class="detail_span">{{formData.activityTime}}</span>
</el-form-item>
<el-form-item label="活动地址"
prop="address"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.address}}</span>
</el-form-item>
<el-form-item label="活动坐标"
prop="longitude"
label-width="150px"
style="display: block">
<div style="width:500px">
<div id="app">
</div>
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
:model="formData"
class="form">
<el-form-item label="服务事项"
label-width="150px"
prop="serviceMatterShow">
<span class="detail_span">{{formData.serviceMatterShow}}</span>
</el-form-item>
<el-form-item label="单位名称"
prop="unitId"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.unitName}}</span>
</el-form-item>
<el-form-item label="活动标题"
prop="title"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.title}}</span>
</el-form-item>
<el-form-item label="活动目标"
prop="target"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.target}}</span>
</el-form-item>
<el-form-item label="活动内容"
prop="target"
label-width="150px"
style="display: block">
<p class="text_p"
v-html="formData.content"></p>
</el-form-item>
<el-form-item label="服务人数"
style="display: block"
prop="peopleCount"
label-width="150px">
<span class="detail_span">{{formData.peopleCount}}</span>
</el-form-item>
<el-form-item label="活动时间"
style="display: block"
prop="activityTime"
label-width="150px">
<span class="detail_span">{{formData.activityTime}}</span>
</el-form-item>
<el-form-item label="活动地址"
prop="address"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.address}}</span>
</el-form-item>
<el-form-item label="活动坐标"
prop="longitude"
label-width="150px"
style="display: block">
<div style="width:500px">
<div id="app">
</div>
</el-form-item>
</div>
<el-form-item label="活动结果"
prop="result"
label-width="150px"
style="display: block">
</el-form-item>
<p class="text_p"
v-html="formData.result"></p>
<el-form-item label="活动结果"
prop="result"
label-width="150px"
style="display: block">
<p class="text_p"
v-html="formData.result"></p>
</el-form-item>
</el-form>
</div>
</el-form-item>
</el-form>
</div>
<div class="div_btn">
<el-button size="small"
@click="handleCancle"> </el-button>
</div>
@ -124,7 +128,11 @@ export default {
},
methods: {
handleCancle () {
this.$emit('diaClose')
},
async initForm (row) {
this.startLoading()
@ -278,6 +286,11 @@ export default {
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
</style>
<style lang="scss" scoped>
.detail_span {
width: 500px;
@ -294,9 +307,5 @@ export default {
margin: 0 0;
}
}
.div_map {
position: relative;
}
</style>

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

@ -1,7 +1,7 @@
<template>
<div>
<div>
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
:model="formData"
@ -192,8 +192,10 @@
</div>
<div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<el-button v-if="formType != 'detail'"
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button size="small"
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
@ -556,6 +558,11 @@ export default {
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
</style>
<style lang="scss" scoped>
.item_width_1 {
width: 560px;
@ -569,16 +576,6 @@ export default {
z-index: 2000000000;
}
}
.item_width_2 {
width: 600px;
}
.item_width_3 {
margin-left: 10px;
width: 200px;
}
.item_width_4 {
width: 200px;
}
.div_map {
position: relative;
@ -590,19 +587,6 @@ export default {
left: 5px;
}
.div_btn {
display: flex;
justify-content: flex-end;
}
.el-upload__tip {
color: rgb(155, 155, 155);
margin: 0;
}
.form {
margin-top: 30px;
}
.tinymce_view {
height: 400px;
overflow: auto;
@ -618,8 +602,3 @@ export default {
}
</style>
<style lang=scss>
.el-dialog__body {
padding: 0 10px 20px !important;
}
</style>

2
src/views/modules/communityParty/regionalParty/finishList.vue

@ -1,5 +1,5 @@
<template>
<div>
<div class="dialog-h-content scroll-h">
<div class="div_table">
<el-button type="green"
size="small"

102
src/views/modules/communityParty/regionalParty/units.vue

@ -72,11 +72,11 @@
</el-form-item>
<el-button style="margin-left:10px"
type="primary"
class="diy-button--search"
size="small"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
type="yellow"
class="diy-button--reset"
size="small"
@click="resetSearch">重置</el-button>
</div>
@ -84,14 +84,10 @@
</div>
<div class="div_table">
<div class="div_btn">
<el-button style=""
type="green"
<el-button class="diy-button--add"
size="small"
@click="handleAdd">新增</el-button>
<!-- <el-button style="float:left"
type="yellow"
size="small"
@click="handleExport">导出</el-button>
<!--
<el-upload ref="upload"
:multiple='false'
:show-file-list='false'
@ -103,9 +99,13 @@
:http-request="uploadFile">
<el-button style="margin-left:10px"
size="small"
type="red">导入</el-button>
class="diy-button--delete">导入</el-button>
</el-upload>-->
</el-upload>
<el-button style="float:left"
class="diy-button--reset"
size="small"
@click="handleExport">导出</el-button>-->
</div>
@ -134,18 +134,19 @@
label="分类"
min-width="80">
</el-table-column>
<el-table-column prop="serviceMatterList"
<el-table-column prop="serviceMatterListShow"
header-align="center"
align="center"
label="服务事项"
show-overflow-tooltip
min-width="250">
<template slot-scope="scope">
<!-- <template slot-scope="scope">
<p style="text-align:center;margin:2px 0;"
v-for="(item,index) in scope.row.serviceMatterList"
:key="index">{{item}}</p>
</template>
</template> -->
</el-table-column>
<el-table-column prop="contact"
header-align="center"
@ -181,41 +182,39 @@
header-align="center"
align="center"
label="备注"
:show-overflow-tooltip="true"
show-overflow-tooltip
width="150">
</el-table-column>
<el-table-column label="操作"
fixed="right"
width="190"
width="250"
header-align="center"
align="center"
class="operate">
<template slot-scope="scope">
<div>
<el-button type="text"
style="color:#1C6AFD;text-decoration: underline;"
size="small"
@click="handleDetail(scope.row)">查看</el-button>
<el-button type="text"
style="color:#1C6AFD;text-decoration: underline;"
size="small"
@click="handleFinish(scope.row)">完成情况</el-button>
<el-button type="text"
style="color:#1C6AFD;text-decoration: underline;"
size="small"
@click="handleScore(scope.row)">积分记录</el-button>
</div>
<div>
<el-button type="text"
style="color:#00A7A9;text-decoration: underline;"
size="small"
@click="handleEdit(scope.row)">修改</el-button>
<el-button type="text"
style="color:#D51010;text-decoration: underline;"
size="small"
@click="handleDelete(scope.row)">删除</el-button>
</div>
<el-button type="text"
class="div-table-button--detail"
size="small"
@click="handleDetail(scope.row)">查看</el-button>
<el-button type="text"
class="div-table-button--edit"
size="small"
@click="handleEdit(scope.row)">修改</el-button>
<el-button type="text"
class="div-table-button--detail"
size="small"
@click="handleFinish(scope.row)">完成情况</el-button>
<el-button type="text"
class="div-table-button--detail"
size="small"
@click="handleScore(scope.row)">积分记录</el-button>
<el-button type="text"
class="div-table-button--delete"
size="small"
@click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
@ -238,6 +237,7 @@
:title="formTitle"
width="950px"
top="5vh"
class="dialog-h"
@closed="editDiaClose">
<units-form ref="ref_form"
:typeList="typeList"
@ -251,8 +251,10 @@
:title="'单位详情'"
width="950px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<units-detail ref="ref_detail"></units-detail>
<units-detail ref="ref_detail"
@diaClose="diaClose"></units-detail>
</el-dialog>
<!-- 完成情况 -->
@ -262,6 +264,7 @@
:title="finishDiaTitle"
width="950px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<finish-list ref="ref_finish"></finish-list>
</el-dialog>
@ -414,6 +417,14 @@ export default {
if (code === 0) {
this.total = data.total
data.list.forEach(element => {
if (element.serviceMatterList.length > 0) {
element.serviceMatterListShow = element.serviceMatterList.join(',')
} else {
element.serviceMatterListShow = ''
}
});
this.tableData = data.list
} else {
@ -531,7 +542,7 @@ export default {
}
this.pageSize = 10
this.pageNo = 0
this.loadTable()
// this.loadTable()
},
//
@ -664,7 +675,7 @@ export default {
computed: {
tableHeight () {
return (this.clientHeight - 460)
return (this.clientHeight - 430)
},
rowHeight () {
@ -681,8 +692,6 @@ export default {
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/buttonstyle.scss";
.div_main {
width: 100%;
}
@ -713,9 +722,6 @@ export default {
}
}
.div_btn {
}
.el-row {
/* margin-bottom: 20px; */
display: flex;

164
src/views/modules/communityParty/regionalParty/unitsDetail.vue

@ -1,82 +1,89 @@
<template>
<div>
<el-form ref="ref_form"
:inline="true"
:model="formData"
class="form">
<el-form-item label="单位名称:"
prop="unitName"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.unitName}}</span>
</el-form-item>
<el-form-item label="分类:"
prop="type"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.type}}</span>
</el-form-item>
<el-form-item label="服务事项:"
prop="serviceMatterList"
label-width="150px"
style="display: block">
<p class="detail_span"
v-for="(item,index) in formData.serviceMatterList"
:key="index">{{item}}</p>
</el-form-item>
<el-form-item label="联系人:"
prop="contact"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.contact}}</span>
</el-form-item>
<el-form-item label="联系电话:"
prop="contactMobile"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.contactMobile}}</span>
</el-form-item>
<el-form-item label="在职党员:"
style="display: block"
prop="memberCount"
label-width="150px">
<span class="detail_span">{{formData.memberCount}}</span>
</el-form-item>
<el-form-item label="备注:"
prop="remark"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.remark?formData.remark:'无'}}</span>
</el-form-item>
<el-form-item label="地理位置:"
prop="address"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.address}}</span>
</el-form-item>
<el-form-item label="位置坐标:"
prop="longitude"
label-width="150px"
style="display: block">
<div style="width:500px">
<div id="app">
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
:model="formData"
class="form">
<el-form-item label="单位名称:"
prop="unitName"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.unitName}}</span>
</el-form-item>
<el-form-item label="分类:"
prop="type"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.type}}</span>
</el-form-item>
<el-form-item label="服务事项:"
prop="serviceMatterList"
label-width="150px"
style="display: block">
<p class="detail_span"
v-for="(item,index) in formData.serviceMatterList"
:key="index">{{item}}</p>
</el-form-item>
<el-form-item label="联系人:"
prop="contact"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.contact}}</span>
</el-form-item>
<el-form-item label="联系电话:"
prop="contactMobile"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.contactMobile}}</span>
</el-form-item>
<el-form-item label="在职党员:"
style="display: block"
prop="memberCount"
label-width="150px">
<span class="detail_span">{{formData.memberCount}}</span>
</el-form-item>
<el-form-item label="备注:"
prop="remark"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.remark?formData.remark:'无'}}</span>
</el-form-item>
<el-form-item label="地理位置:"
prop="address"
label-width="150px"
style="display: block">
<span class="detail_span">{{formData.address}}</span>
</el-form-item>
<el-form-item label="位置坐标:"
prop="longitude"
label-width="150px"
style="display: block">
<div style="width:500px">
<div id="app">
</div>
</div>
</el-form-item>
</div>
</el-form-item>
</el-form>
</el-form>
</div>
<div class="div_btn">
<el-button size="small"
@click="handleCancle"> </el-button>
</div>
</div>
</template>
@ -104,6 +111,11 @@ export default {
},
methods: {
handleCancle () {
this.$emit('diaClose')
},
async initForm (row) {
this.startLoading()
@ -249,7 +261,9 @@ export default {
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
</style>
<style scoped>
.detail_span {
width: 500px;
@ -259,10 +273,6 @@ export default {
font-size: 16px;
}
.div_map {
position: relative;
}
.form {
margin-top: 30px;
}

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

@ -1,153 +1,154 @@
<template>
<div>
<div>
<div>
<el-form ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form">
<el-form-item label="单位名称"
prop="unitName"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入单位名称"
v-model="formData.unitName">
</el-input>
</el-form-item>
<el-form-item label="分类"
prop="type"
label-width="150px"
style="display: block">
<el-select class="item_width_1"
v-model="formData.type"
placeholder="请选择"
filterable
clearable>
<el-option v-for="item in typeList"
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form">
<el-form-item label="单位名称"
prop="unitName"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入单位名称"
v-model="formData.unitName">
</el-input>
</el-form-item>
<el-form-item label="分类"
prop="type"
label-width="150px"
style="display: block">
<el-select class="item_width_1"
v-model="formData.type"
placeholder="请选择"
filterable
clearable>
<el-option v-for="item in typeList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="服务事项"
prop="serviceMatterList"
label-width="150px"
style="display: block">
<el-checkbox-group class="item_width_1"
style="display:flex;flex-wrap:wrap"
v-model="formData.serviceMatterList">
<el-checkbox v-for="item in serviceList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="服务事项"
prop="serviceMatterList"
label-width="150px"
style="display: block">
<el-checkbox-group class="item_width_1"
style="display:flex;flex-wrap:wrap"
v-model="formData.serviceMatterList">
<el-checkbox v-for="item in serviceList"
:key="item.value"
:label="item.value">{{item.label}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="联系人"
prop="contact"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入联系人姓名"
v-model="formData.contact">
</el-input>
</el-form-item>
<el-form-item label="联系电话"
prop="contactMobile"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入联系人电话"
v-model="formData.contactMobile">
</el-input>
</el-form-item>
<el-form-item label="在职党员"
style="display: block"
prop="memberCount"
label-width="150px">
<el-input-number class="item_width_1"
v-model="formData.memberCount"
:min="0"
label="在职党员"></el-input-number>
</el-form-item>
<el-form-item label="备注"
prop="remark"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="500"
show-word-limit
:rows="3"
placeholder="请输入备注,不超过500字"
v-model="formData.remark"></el-input>
</el-form-item>
<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="item_width_4"
maxlength="50"
size="mini"
placeholder="请输入关键字"
v-model="keyWords">
</el-input>
<el-button style="margin-left: 10px"
type="primary"
size="mini"
@click="handleSearchMap">查询</el-button>
</div>
</div>
:label="item.value">{{item.label}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="联系人"
prop="contact"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入联系人姓名"
v-model="formData.contact">
</el-input>
</el-form-item>
<el-form-item label="联系电话"
prop="contactMobile"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入联系人电话"
v-model="formData.contactMobile">
</el-input>
</el-form-item>
<el-form-item label="在职党员"
style="display: block"
prop="memberCount"
label-width="150px">
<el-input-number class="item_width_1"
v-model="formData.memberCount"
:min="0"
label="在职党员"></el-input-number>
</el-form-item>
<el-form-item label="备注"
prop="remark"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="500"
show-word-limit
:rows="3"
placeholder="请输入备注,不超过500字"
v-model="formData.remark"></el-input>
</el-form-item>
<el-form-item label="位置坐标"
prop="longitude"
label-width="150px"
style="display: block">
<div style="width:500px">
<div class="div_map">
<div id="app">
<div style="margin-top: 10px">
<span>经度</span>
<el-input class="item_width_3"
maxlength="50"
placeholder="请输入经度"
v-model="formData.longitude">
</el-input>
<span style="margin-left: 20px">纬度</span>
<el-input class="item_width_3"
</div>
<div class="div_searchmap">
<el-input class="item_width_4"
maxlength="50"
placeholder="请输入纬度"
v-model="formData.latitude">
size="mini"
placeholder="请输入关键字"
v-model="keyWords">
</el-input>
<el-button style="margin-left: 10px"
type="primary"
size="mini"
@click="handleSearchMap">查询</el-button>
</div>
</div>
</el-form-item>
<el-form-item label="地理位置"
prop="address"
label-width="150px"
style="display: block">
<div style="margin-top: 10px">
<span>经度</span>
<el-input class="item_width_3"
maxlength="50"
placeholder="请输入经度"
v-model="formData.longitude">
</el-input>
<span style="margin-left: 20px">纬度</span>
<el-input class="item_width_3"
maxlength="50"
placeholder="请输入纬度"
v-model="formData.latitude">
</el-input>
</div>
</div>
</el-form-item>
<el-input class="item_width_1"
v-model="formData.address">
</el-input>
<el-form-item label="地理位置"
prop="address"
label-width="150px"
style="display: block">
</el-form-item>
</el-form>
</div>
<el-input class="item_width_1"
v-model="formData.address">
</el-input>
</el-form-item>
</el-form>
</div>
<div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<el-button v-if="formType != 'detail'"
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button size="small"
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
@ -509,20 +510,6 @@ export default {
}
</script>
<style scoped>
.item_width_1 {
width: 500px;
}
.item_width_2 {
width: 400px;
}
.item_width_3 {
margin-left: 10px;
width: 200px;
}
.item_width_4 {
width: 200px;
}
.div_map {
position: relative;
}
@ -532,25 +519,8 @@ export default {
top: 5px;
left: 5px;
}
.div_btn {
display: flex;
justify-content: flex-end;
}
.el-tabs {
margin: 0 20px;
}
.el-upload__tip {
color: rgb(155, 155, 155);
margin: 0;
}
.form {
margin-top: 30px;
}
</style>
<style lang=scss>
.el-dialog__body {
padding: 0 10px 20px !important;
}
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
</style>

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

@ -1,281 +1,227 @@
<template>
<div>
<div>
<el-form
ref="ref_form"
:inline="true"
:model="dataForm"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form"
>
<el-form-item
label="中心名称 "
prop="centerName"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入中心名称 "
v-model="dataForm.centerName"
>
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
:model="dataForm"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form">
<el-form-item label="中心名称 "
prop="centerName"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入中心名称 "
v-model="dataForm.centerName">
</el-input>
</el-form-item>
<el-form-item
label="办公电话"
prop="workPhone"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入办公电话"
v-model="dataForm.workPhone"
>
<el-form-item label="办公电话"
prop="workPhone"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入办公电话"
v-model="dataForm.workPhone">
</el-input>
</el-form-item>
<el-form-item
label="社区地址"
prop="address"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入社区地址 "
v-model="dataForm.address"
>
<el-form-item label="社区地址"
prop="address"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入社区地址 "
v-model="dataForm.address">
</el-input>
</el-form-item>
<el-form-item
label="办公时间"
prop="amStartTime"
label-width="150px"
style="display: block"
>
<el-form-item label="办公时间"
prop="amStartTime"
label-width="150px"
style="display: block">
<div class="row">
<span>上午</span>
<el-time-select
style="margin-left: 10px"
v-model="dataForm.amStartTime"
:picker-options="{
<el-time-select style="margin-left: 10px"
v-model="dataForm.amStartTime"
:picker-options="{
start: '00:00',
step: '00:30',
end: '12:00',
}"
placeholder="开始时间"
>
placeholder="开始时间">
</el-time-select>
<span style="margin: 0 5px"></span>
<el-time-select
v-model="dataForm.amEndTime"
:picker-options="{
<el-time-select v-model="dataForm.amEndTime"
:picker-options="{
start: '00:00',
step: '00:30',
end: '12:00',
minTime: dataForm.amStartTime,
}"
placeholder="结束时间"
>
placeholder="结束时间">
</el-time-select>
</div>
<div class="row" style="margin-top: 5px">
<div class="row"
style="margin-top: 5px">
<span>下午</span>
<el-time-select
style="margin-left: 10px"
v-model="dataForm.pmStartTime"
:picker-options="{
<el-time-select style="margin-left: 10px"
v-model="dataForm.pmStartTime"
:picker-options="{
start: '12:00',
step: '00:30',
end: '24:00',
}"
placeholder="开始时间"
>
placeholder="开始时间">
</el-time-select>
<span style="margin: 0 5px"></span>
<el-time-select
v-model="dataForm.pmEndTime"
:picker-options="{
<el-time-select v-model="dataForm.pmEndTime"
:picker-options="{
start: '12:00',
step: '00:30',
end: '24:00',
minTime: dataForm.pmStartTime,
}"
placeholder="结束时间"
>
placeholder="结束时间">
</el-time-select>
</div>
</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">
<el-input
class="item_width_4"
maxlength="50"
placeholder="请输入关键字"
v-model="dataForm.locationAddress"
>
<el-input class="item_width_4"
maxlength="50"
placeholder="请输入关键字"
v-model="dataForm.locationAddress">
</el-input>
<el-button
style="margin-left: 10px"
type="primary"
size="small"
@click="handleSearchMap"
>查询</el-button
>
<div id="app" class="div_map"></div>
<el-button style="margin-left: 10px"
type="primary"
size="small"
@click="handleSearchMap">查询</el-button>
<div id="app"
class="div_map"></div>
<div style="margin-top: 10px">
<span>经度</span>
<el-input
class="item_width_3"
maxlength="50"
placeholder="请输入经度"
v-model="dataForm.longitude"
>
<el-input class="item_width_3"
maxlength="50"
placeholder="请输入经度"
v-model="dataForm.longitude">
</el-input>
<span style="margin-left: 20px">纬度</span>
<el-input
class="item_width_3"
maxlength="50"
placeholder="请输入纬度"
v-model="dataForm.latitude"
>
<el-input class="item_width_3"
maxlength="50"
placeholder="请输入纬度"
v-model="dataForm.latitude">
</el-input>
</div>
</div>
</el-form-item>
<el-form-item
label="可预约事项"
prop="matterList"
label-width="150px"
style="display: block"
>
<el-form-item label="可预约事项"
prop="matterList"
label-width="150px"
style="display: block">
<div class="m-staffs">
<div
class="item"
:key="'staff' + index"
v-for="(item, index) in dataForm.matterList"
>
<div class="item"
:key="'staff' + index"
v-for="(item, index) in dataForm.matterList">
<div class="item-info">
<el-input
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="事项名"
v-model="item.matterName"
:disabled="item.matterId != undefined"
/>
<el-select
style="margin-left: 10px"
v-model="item.appointmentType"
filterable
placeholder="预约类型"
:disabled="item.matterId != undefined"
>
<el-option
v-for="item in appointmentTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
<el-input class="item_width_1"
maxlength="50"
show-word-limit
placeholder="事项名"
v-model="item.matterName"
:disabled="item.matterId != undefined" />
<el-select style="margin-left: 10px"
v-model="item.appointmentType"
filterable
placeholder="预约类型"
:disabled="item.matterId != undefined">
<el-option v-for="item in appointmentTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-time-select
style="margin-left: 10px"
v-model="item.startTime"
:picker-options="{
<el-time-select style="margin-left: 10px"
v-model="item.startTime"
:picker-options="{
start: '00:00',
step: '00:30',
end: '24:00',
}"
placeholder="开始时间"
:disabled="item.matterId != undefined"
>
placeholder="开始时间"
:disabled="item.matterId != undefined">
</el-time-select>
<span style="margin: 0 5px"></span>
<el-time-select
v-model="item.endTime"
:picker-options="{
<el-time-select v-model="item.endTime"
:picker-options="{
start: '00:00',
step: '00:30',
end: '24:00',
minTime: item.startTime,
}"
placeholder="结束时间"
:disabled="item.matterId != undefined"
>
placeholder="结束时间"
:disabled="item.matterId != undefined">
</el-time-select>
</div>
<div class="item-pic">
<el-upload
:disabled="item.matterId != undefined"
class="avatar-uploader"
:action="uploadUlr"
:data="{ customerId: customerId }"
:show-file-list="false"
:on-success="
<el-upload :disabled="item.matterId != undefined"
class="avatar-uploader"
:action="uploadUlr"
:data="{ customerId: customerId }"
:show-file-list="false"
:on-success="
(response, file, fileList) =>
handleImgSuccess(index, response, file, fileList)
"
:before-upload="beforeImgUpload"
>
<img
v-if="item.matterImg"
:src="item.matterImg"
style="width: 50px; height: 50px"
class="function-icon"
/>
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
:before-upload="beforeImgUpload">
<img v-if="item.matterImg"
:src="item.matterImg"
style="width: 50px; height: 50px"
class="function-icon" />
<i v-else
class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
<div class="hint">事项封面图片小于1M</div>
<el-button
style="margin-left: auto"
size="small"
@click="handleDelStaff(index)"
>删除</el-button
>
<el-button style="margin-left: auto"
size="small"
@click="handleDelStaff(index)">删除</el-button>
</div>
</div>
<div class="item-add">
<el-button size="small" type="warning" @click="handleAddStaff"
>添加</el-button
>
<el-button size="small"
type="warning"
@click="handleAddStaff">添加</el-button>
</div>
</div>
</el-form-item>
</el-form>
</div>
<div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<el-button
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"
> </el-button
>
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button size="small"
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
</div>
</div>
</template>
@ -292,7 +238,7 @@ var infoWindowList;
let loading; //
export default {
data() {
data () {
return {
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadqrcodeV2",
customerId: "",
@ -336,7 +282,7 @@ export default {
},
components: {},
computed: {
dataRule() {
dataRule () {
return {
centerName: [
{ required: true, message: "中心名称 不能为空", trigger: "blur" },
@ -372,13 +318,13 @@ export default {
props: {},
watch: {},
async mounted() {
async mounted () {
this.customerId = localStorage.getItem("customerId");
this.initMap();
},
methods: {
handleImgSuccess(index, res, file) {
handleImgSuccess (index, res, file) {
if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url);
this.dataForm.matterList[index].matterImg = res.data.url;
@ -387,7 +333,7 @@ export default {
}
},
beforeImgUpload(file) {
beforeImgUpload (file) {
const isLt1M = file.size / 1024 / 1024 < 1;
if (!isLt1M) {
@ -396,7 +342,7 @@ export default {
return isLt1M;
},
handleAddStaff() {
handleAddStaff () {
this.dataForm.matterList = [
...this.dataForm.matterList,
{
@ -408,7 +354,7 @@ export default {
},
];
},
async handleDelStaff(index) {
async handleDelStaff (index) {
const { matterList } = this.dataForm;
let list = [...matterList];
let delItem = list.splice(index, 1);
@ -425,7 +371,7 @@ export default {
this.dataForm.matterList = list;
},
async delStaff(matterId) {
async delStaff (matterId) {
const { data, code, msg } = await requestPost(
"/gov/org/icpartyservicecenter/delmatter",
{
@ -435,7 +381,7 @@ export default {
return code === 0;
},
// init
initMap() {
initMap () {
//
var center = new window.TMap.LatLng(36.0722275, 120.38945519);
// map TMap.Map()
@ -461,7 +407,7 @@ export default {
this.handleMoveCenter();
},
setMarker(lat, lng) {
setMarker (lat, lng) {
markers.setGeometries([]);
markers.add([
{
@ -475,7 +421,7 @@ export default {
]);
},
handleSearchMap() {
handleSearchMap () {
infoWindowList.forEach((infoWindow) => {
infoWindow.close();
});
@ -503,7 +449,7 @@ export default {
});
},
handleMoveCenter() {
handleMoveCenter () {
//
const center = map.getCenter();
const lat = center.getLat();
@ -513,7 +459,7 @@ export default {
this.setMarker(lat, lng);
},
async initForm(type, row) {
async initForm (type, row) {
this.$refs.ref_form.resetFields();
this.formType = type;
@ -525,7 +471,7 @@ export default {
}
},
async handleComfirm() {
async handleComfirm () {
this.btnDisable = true;
setTimeout(() => {
this.btnDisable = false;
@ -540,7 +486,7 @@ export default {
});
},
async submit() {
async submit () {
let url = "";
if (this.formType === "add") {
url = "/gov/org/icpartyservicecenter/addpartyservicecenter";
@ -589,11 +535,11 @@ export default {
}
},
handleCancle() {
handleCancle () {
this.resetData();
this.$emit("dialogCancle");
},
resetData() {
resetData () {
this.partyServiceCenterId = "";
this.dataForm = {
centerName: "",
@ -611,7 +557,7 @@ export default {
};
},
//
startLoading() {
startLoading () {
loading = Loading.service({
lock: true, //
text: "正在加载……", //
@ -619,7 +565,7 @@ export default {
});
},
//
endLoading() {
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close();
@ -629,40 +575,11 @@ export default {
};
</script>
<style lang="scss" scoped>
.item_width_1 {
width: 500px;
}
.item_width_2 {
width: 400px;
}
.item_width_3 {
margin-left: 10px;
width: 200px;
}
.item_width_4 {
width: 200px;
}
.div_map {
margin-top: 10px;
}
.div_btn {
display: flex;
justify-content: flex-end;
}
.el-tabs {
margin: 0 20px;
}
.el-upload__tip {
color: rgb(155, 155, 155);
margin: 0;
}
.form {
margin-top: 30px;
}
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
</style>
<style lang="scss" scoped>
.m-staffs {
margin-left: auto;
width: 650px;
@ -711,13 +628,7 @@ export default {
}
}
}
.item-add {
}
}
</style>
<style>
.el-dialog__body {
padding: 0 10px 20px !important;
}
</style>

205
src/views/modules/communityService/dqfwzx/cpts/order.vue

@ -1,36 +1,28 @@
<template>
<div>
<div>
<el-form
ref="ref_form"
:inline="true"
:model="dataForm"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form"
>
<el-form-item
label="事项名称"
prop="matterName"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
maxlength="50"
show-word-limit
v-model="info.matterName"
disabled
>
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
:model="dataForm"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form">
<el-form-item label="事项名称"
prop="matterName"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
maxlength="50"
show-word-limit
v-model="info.matterName"
disabled>
</el-input>
</el-form-item>
<el-form-item
label="预约日期"
prop="appointmentDate"
label-width="150px"
style="display: block"
>
<el-form-item label="预约日期"
prop="appointmentDate"
label-width="150px"
style="display: block">
<!-- <el-date-picker
v-model="dataForm.appointmentDate"
placeholder="预约日期"
@ -38,98 +30,77 @@
:picker-options="dateOptions"
>
</el-date-picker> -->
<el-select v-model="dataForm.appointmentDate" placeholder="请选择">
<el-option
v-for="item in dateList"
:key="item"
:label="item"
:value="item"
>
</el-option
></el-select>
<el-select v-model="dataForm.appointmentDate"
placeholder="请选择">
<el-option v-for="item in dateList"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
<el-form-item
v-if="timeList.length > 0"
label="预约时段"
prop="timeId"
label-width="150px"
style="display: block"
>
<el-form-item v-if="timeList.length > 0"
label="预约时段"
prop="timeId"
label-width="150px"
style="display: block">
<div style="margin-left: auto; width: 600px">
<el-checkbox
:label="item.timeId"
:key="item.timeId"
:disabled="!item.isAppointment"
v-for="(item, index) in timeList"
:checked="item.selected"
:value="item.selected"
@change="selectTime(index)"
@onChange="selectTime(index)"
>{{ item.time }}</el-checkbox
>
<el-checkbox :label="item.timeId"
:key="item.timeId"
:disabled="!item.isAppointment"
v-for="(item, index) in timeList"
:checked="item.selected"
:value="item.selected"
@change="selectTime(index)"
@onChange="selectTime(index)">{{ item.time }}</el-checkbox>
</div>
</el-form-item>
<el-form-item
label="预约人"
prop="appointmentName"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入预约人"
v-model="dataForm.appointmentName"
>
<el-form-item label="预约人"
prop="appointmentName"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入预约人"
v-model="dataForm.appointmentName">
</el-input>
</el-form-item>
<el-form-item
label="联系方式"
prop="appointmentPhone"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入联系方式"
v-model="dataForm.appointmentPhone"
>
<el-form-item label="联系方式"
prop="appointmentPhone"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入联系方式"
v-model="dataForm.appointmentPhone">
</el-input>
</el-form-item>
<el-form-item
label="备注"
prop="remark"
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.remark"
></el-input>
<el-form-item label="备注"
prop="remark"
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.remark"></el-input>
</el-form-item>
</el-form>
</div>
<div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<el-button
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"
> </el-button
>
<el-button v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
</div>
</div>
</template>
@ -155,7 +126,7 @@ var infoWindowList;
let loading; //
export default {
data() {
data () {
return {
formType: "add", // addeditdetail
@ -166,7 +137,7 @@ export default {
},
dateOptions: {
disabledDate(time) {
disabledDate (time) {
return (
time.getTime() < Date.now() - 3600 * 24 * 1 * 1000 ||
time.getTime() > Date.now() + 3600 * 24 * 6 * 1000
@ -188,7 +159,7 @@ export default {
},
components: {},
computed: {
dataRule() {
dataRule () {
return {
appointmentName: [
{ required: true, message: "预约人不能为空", trigger: "blur" },
@ -212,10 +183,10 @@ export default {
},
},
async mounted() {},
async mounted () { },
methods: {
async initForm(type, row, index) {
async initForm (type, row, index) {
this.$refs.ref_form.resetFields();
let item = row.matterList[index];
@ -226,7 +197,7 @@ export default {
}
},
selectTime(index) {
selectTime (index) {
// return console.log(index);
let list = deepClone(this.timeList);
if (!list[index].isAppointment) return false;
@ -302,7 +273,7 @@ export default {
return false;
},
async getDateList() {
async getDateList () {
let url = "/gov/org/icpartyservicecenter/appointmenttime";
const {
@ -322,7 +293,7 @@ export default {
}
},
async getTimeList() {
async getTimeList () {
let url = "/gov/org/icpartyservicecenter/appointmenttime";
const {
@ -344,7 +315,7 @@ export default {
}
},
async handleComfirm() {
async handleComfirm () {
this.btnDisable = true;
setTimeout(() => {
this.btnDisable = false;
@ -365,7 +336,7 @@ export default {
});
},
async submit() {
async submit () {
let url = "";
if (this.formType === "add") {
url = "/gov/org/icpartyservicecenter/appointment";
@ -391,11 +362,11 @@ export default {
}
},
handleCancle() {
handleCancle () {
this.resetData();
this.$emit("dialogCancle");
},
resetData() {
resetData () {
this.dataForm = {
matterId: "",
appointmentDate: "",
@ -407,7 +378,7 @@ export default {
this.timeList = [];
},
//
startLoading() {
startLoading () {
loading = Loading.service({
lock: true, //
text: "正在加载……", //
@ -415,7 +386,7 @@ export default {
});
},
//
endLoading() {
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close();

106
src/views/modules/communityService/dqfwzx/cpts/orderList.vue

@ -1,55 +1,55 @@
<template>
<div style="min-height: 400px">
<el-form ref="ref_form" :inline="true" class="form">
<el-form-item
label="选择预约日期"
prop="appointmentDate"
label-width="110px"
style="display: block"
>
<el-date-picker
v-model="appointmentDate"
placeholder="预约日期"
value-format="yyyy-MM-dd"
>
<el-form ref="ref_form"
:inline="true"
class="form">
<el-form-item label="选择预约日期"
prop="appointmentDate"
label-width="110px"
style="display: block">
<el-date-picker v-model="appointmentDate"
placeholder="预约日期"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-form>
<el-table
v-if="tableData.length > 0"
:data="tableData"
border
style="width: 96%; margin: 0 auto"
class="resi-table"
:max-height="maxTableHeight"
>
<el-table-column label="序号" type="index" align="center" width="50" />
<el-table-column prop="matterName" label="预约事项"></el-table-column>
<el-table-column
prop="appointmentTime"
label="预约时间"
></el-table-column>
<el-table-column prop="appointmentName" label="预约人"></el-table-column>
<el-table-column
prop="appointmentPhone"
label="联系方式"
></el-table-column>
<el-table-column prop="remark" label="备注"></el-table-column>
<el-table-column fixed="right" label="操作" align="center" width="120">
<el-table v-if="tableData.length > 0"
:data="tableData"
border
style="width: 96%; margin: 0 auto"
class="resi-table"
:max-height="maxTableHeight">
<el-table-column label="序号"
type="index"
align="center"
width="50" />
<el-table-column prop="matterName"
label="预约事项"></el-table-column>
<el-table-column prop="appointmentTime"
label="预约时间"></el-table-column>
<el-table-column prop="appointmentName"
label="预约人"></el-table-column>
<el-table-column prop="appointmentPhone"
label="联系方式"></el-table-column>
<el-table-column prop="remark"
label="备注"></el-table-column>
<el-table-column fixed="right"
label="操作"
align="center"
width="120">
<template slot-scope="scope">
<el-button
@click="handleCancel(scope.$index)"
type="text"
size="small"
>取消</el-button
>
<el-button @click="handleCancel(scope.$index)"
type="text"
size="small">取消</el-button>
</template>
</el-table-column>
</el-table>
<div class="m-hint" v-else>
<el-empty description="暂无内容" :image-size="200"></el-empty>
<div class="m-hint"
v-else>
<el-empty description="暂无内容"
:image-size="200"></el-empty>
</div>
</div>
</template>
@ -66,7 +66,7 @@ var infoWindowList;
let loading; //
export default {
data() {
data () {
return {
appointmentDate: new Date().toLocaleDateString().split("/").join("-"),
matterId: "",
@ -82,10 +82,10 @@ export default {
},
},
async mounted() {},
async mounted () { },
methods: {
async init(row, index) {
async init (row, index) {
let item = row.matterList[index];
if (item) {
this.matterId = item.matterId;
@ -93,7 +93,7 @@ export default {
}
},
async getList() {
async getList () {
let url = "/gov/org/icpartyservicecenter/appointmentrecord";
const { matterId, appointmentDate } = this;
@ -107,14 +107,14 @@ export default {
if (code === 0) {
this.tableData = data
? data.map((item) => {
item.appointmentTime = item.appointmentTime.join(",");
return item;
})
item.appointmentTime = item.appointmentTime.join(",");
return item;
})
: [];
} else {
}
},
async handleCancel(index) {
async handleCancel (index) {
let url = "/gov/org/icpartyservicecenter/cancelappointment";
const { matterId, tableData } = this;
@ -132,15 +132,15 @@ export default {
}
},
handleCancle() {
handleCancle () {
this.resetData();
this.$emit("dialogCancle");
},
resetData() {
resetData () {
this.tableData = [];
},
//
startLoading() {
startLoading () {
loading = Loading.service({
lock: true, //
text: "正在加载……", //
@ -148,7 +148,7 @@ export default {
});
},
//
endLoading() {
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close();

215
src/views/modules/communityService/dqfwzx/index.vue

@ -2,26 +2,23 @@
<div>
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-button type="success" size="small" @click="handleAdd"
>新增</el-button
>
<el-button class="diy-button--add"
size="small"
@click="handleAdd">新增</el-button>
</div>
<div class="m-center" v-if="tableData.length > 0">
<div class="m-center"
v-if="tableData.length > 0">
<div class="center-left">
<div class="list">
<div
@click="currentIndex = index"
class="item"
:class="{ 'z-on': currentIndex == index }"
:key="'ct' + index"
v-for="(item, index) in tableData"
>
<div
class="item-btn"
v-if="currentIndex == index"
@click="handleEdit"
>
<div @click="currentIndex = index"
class="item"
:class="{ 'z-on': currentIndex == index }"
:key="'ct' + index"
v-for="(item, index) in tableData">
<div class="item-btn"
v-if="currentIndex == index"
@click="handleEdit">
修改
</div>
<div class="item-name">{{ item.centerName }}</div>
@ -51,104 +48,88 @@
>
</div> -->
<div id="centerIndexApp" class="div_map"></div>
<el-table
:data="tableData[currentIndex].matterList"
border
style="width: 100%"
class="resi-table"
:max-height="maxTableHeight"
>
<el-table-column
label="序号"
type="index"
align="center"
width="50"
/>
<el-table-column prop="matterName" label="事项名称">
<div id="centerIndexApp"
class="div_map"></div>
<el-table :data="tableData[currentIndex].matterList"
border
style="width: 100%"
class="resi-table"
:max-height="maxTableHeight">
<el-table-column label="序号"
type="index"
align="center"
width="50" />
<el-table-column prop="matterName"
label="事项名称">
</el-table-column>
<el-table-column prop="allowTime" label="可预约时间 ">
<el-table-column prop="allowTime"
label="可预约时间 ">
</el-table-column>
<el-table-column
fixed="right"
label="操作"
align="center"
width="120"
>
<el-table-column fixed="right"
label="操作"
align="center"
width="120">
<template slot-scope="scope">
<el-button
@click="handleOrder(scope.$index)"
type="text"
size="small"
>预约</el-button
>
<el-button
@click="handleOrderList(scope.$index)"
type="text"
size="small"
style="margin-right: 10px; color: #00a7a9"
>预约记录</el-button
>
<el-button @click="handleOrder(scope.$index)"
type="text"
size="small">预约</el-button>
<el-button @click="handleOrderList(scope.$index)"
type="text"
size="small"
style="margin-right: 10px; color: #00a7a9">预约记录</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
<div class="m-hint" v-else>
<el-empty description="暂无内容" :image-size="200"></el-empty>
<div class="m-hint"
v-else>
<el-empty description="暂无内容"
:image-size="200"></el-empty>
</div>
</el-card>
<!-- 修改弹出框 -->
<el-dialog
:visible.sync="formShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
width="850px"
top="5vh"
@closed="handleClose"
>
<edit-form
ref="eleEditForm"
@dialogCancle="handleClose"
@dialogOk="handleEditSuccess"
></edit-form>
<el-dialog :visible.sync="formShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
width="850px"
top="5vh"
class="dialog-h"
@closed="handleClose">
<edit-form ref="eleEditForm"
@dialogCancle="handleClose"
@dialogOk="handleEditSuccess"></edit-form>
</el-dialog>
<!-- 修改弹出框 -->
<el-dialog
:visible.sync="form2Show"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="预约"
width="850px"
top="5vh"
@closed="handleCloseForm2"
>
<order-form
ref="eleOrderForm"
@dialogCancle="handleCloseForm2"
@dialogOk="handleOrderSuccess"
></order-form>
<el-dialog :visible.sync="form2Show"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="预约"
width="850px"
top="5vh"
class="dialog-h"
@closed="handleCloseForm2">
<order-form ref="eleOrderForm"
@dialogCancle="handleCloseForm2"
@dialogOk="handleOrderSuccess"></order-form>
</el-dialog>
<!-- 修改弹出框 -->
<el-dialog
:visible.sync="orderListShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="预约记录"
width="850px"
top="5vh"
@closed="handleCloseOrderList"
>
<order-list
ref="eleOrderList"
@dialogCancle="handleCloseOrderList"
></order-list>
<el-dialog :visible.sync="orderListShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="预约记录"
width="850px"
top="5vh"
class="dialog-h"
@closed="handleCloseOrderList">
<order-list ref="eleOrderList"
@dialogCancle="handleCloseOrderList"></order-list>
</el-dialog>
</div>
</template>
@ -169,7 +150,7 @@ let loading; // 加载动画
export default {
components: { editForm, orderForm, orderList },
data() {
data () {
return {
openSearch: false,
@ -186,23 +167,23 @@ export default {
};
},
computed: {
maxTableHeight() {
maxTableHeight () {
return this.clientHeight - 410;
},
...mapGetters(["clientHeight"]),
},
watch: {
currentIndex() {
currentIndex () {
this.setMap();
},
},
async mounted() {
async mounted () {
await this.loadAgency();
await this.getTableData();
},
methods: {
// init
initMap() {
initMap () {
//
var center = new window.TMap.LatLng(36.0722275, 120.38945519);
// map TMap.Map()
@ -222,7 +203,7 @@ export default {
infoWindowList = Array(10);
},
setMarker(lat, lng, centerName) {
setMarker (lat, lng, centerName) {
markers.setGeometries([]);
markers.add([
{
@ -236,11 +217,11 @@ export default {
]);
},
setCenter(lat, lng) {
setCenter (lat, lng) {
map.setCenter(new window.TMap.LatLng(lat, lng));
},
setMap() {
setMap () {
const { tableData, currentIndex } = this;
let item = tableData[currentIndex];
if (item) {
@ -249,24 +230,24 @@ export default {
}
},
handleClose() {
handleClose () {
this.formShow = false;
},
handleCloseForm2() {
handleCloseForm2 () {
this.form2Show = false;
},
handleCloseOrderList() {
handleCloseOrderList () {
this.orderListShow = false;
},
async handleAdd() {
async handleAdd () {
this.formShow = true;
await nextTick();
console.log(this.$refs);
this.$refs.eleEditForm.initForm("add");
},
async handleWatch() {
async handleWatch () {
this.formShow = true;
await nextTick();
this.$refs.eleEditForm.initForm(
@ -275,7 +256,7 @@ export default {
);
},
async handleEdit() {
async handleEdit () {
this.formShow = true;
await nextTick();
this.$refs.eleEditForm.initForm(
@ -284,12 +265,12 @@ export default {
);
},
handleEditSuccess() {
handleEditSuccess () {
this.handleClose();
this.getTableData();
},
async handleOrder(index) {
async handleOrder (index) {
this.form2Show = true;
await nextTick();
this.$refs.eleOrderForm.initForm(
@ -299,18 +280,18 @@ export default {
);
},
handleOrderSuccess() {
handleOrderSuccess () {
this.handleCloseForm2();
},
async handleOrderList(index) {
async handleOrderList (index) {
this.orderListShow = true;
await nextTick(0);
console.log(this.$refs);
this.$refs.eleOrderList.init(this.tableData[this.currentIndex], index);
},
async handleDel(rowData, rowIndex) {
async handleDel (rowData, rowIndex) {
console.log(rowData, rowIndex);
const url =
"/heart/iccommunityselforganization/delcommunityselforganization";
@ -328,7 +309,7 @@ export default {
}
},
async getTableData() {
async getTableData () {
const oldLen = this.tableData.length;
const url = "/gov/org/icpartyservicecenter/partyservicecenterlist";
const { data, code, msg } = await requestPost(url, {
@ -349,7 +330,7 @@ export default {
},
//
async loadAgency() {
async loadAgency () {
const url = "/epmetuser/customerstaff/staffbasicinfo";
let params = {};

25
src/views/modules/communityService/measure/index.vue

@ -1,7 +1,7 @@
<template>
<div v-if="pageLoading" class="resi-container">
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-card ref="searchCard" class="search-card">
<div>
<el-form
ref="searchForm"
:inline="true"
@ -141,6 +141,9 @@
</div>
</el-form>
</div>
</el-card>
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-button type="success" @click="handleAdd('add')">新增需求</el-button>
</div>
@ -150,7 +153,7 @@
row-key="categoryId"
v-loading="tableLoading"
border
max-height="800"
:height="tableHeight"
style="width: 100%"
class="resi-table"
>
@ -257,7 +260,7 @@
:current-page.sync="currentPage"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
layout="sizes, prev, pager, next"
layout="sizes, prev, pager, next, total"
:total="total"
>
</el-pagination>
@ -267,8 +270,10 @@
<el-dialog
title="需求信息"
:visible.sync="dialogVisible"
width="40%"
width="50%"
top="5vh"
append-to-body
class="dialog-h"
:close-on-click-modal="false"
:before-close="handlerCancle"
>
@ -278,7 +283,7 @@
:model="form"
:rules="rules"
ref="ruleForm"
class="form-wr"
class="form-wr dialog-h-content scroll-h"
>
<el-form-item label="所属网格" prop="gridId">
<el-input
@ -598,6 +603,7 @@ export default {
pageSize: 20,
total: null,
tableData: [],
tableHeight: 400,
addLevel: "1",
addType: "add",
value: "",
@ -854,7 +860,12 @@ export default {
}, 200);
this.pageLoading = true;
},
mounted() {},
mounted() {
this.$nextTick(() => {
this.tableHeight = document.documentElement.clientHeight - this.$refs.searchCard.$el.offsetHeight - 280 + 'px'
console.log('tableHeight', this.tableHeight)
})
},
methods: {
handleSizeChange(val) {
console.log(`每页 ${val}`);

28
src/views/modules/communityService/ninePlaces/inspect/inspect.vue

@ -84,17 +84,17 @@
<el-button style="margin-left:30px"
size="small"
type="primary"
class="diy-button--search"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
size="small"
type="yellow"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
</div>
</el-form>
</div>
<div class="div_table">
<el-button type="green"
<el-button class="diy-button--add"
size="small"
@click="handleAdd">新增</el-button>
@ -132,13 +132,13 @@
<el-table-column prop="inspectorsNames"
header-align="center"
align="center"
label="检人员"
label="检人员"
min-width="180">
</el-table-column>
<el-table-column prop="firstTime"
header-align="center"
align="center"
label="首次巡时间"
label="首次巡时间"
width="110">
</el-table-column>
<el-table-column prop="detailed"
@ -180,18 +180,18 @@
class="operate">
<template slot-scope="scope">
<el-button type="text"
style="color:#1C6AFD;text-decoration: underline;"
class="div-table-button--detail"
size="small"
@click="handleDetail(scope.row)">查看</el-button>
<el-button type="text"
style="color:#D51010;text-decoration: underline;"
class="div-table-button--edit"
size="small"
@click="handleDelete(scope.row)">删除</el-button>
@click="handleReview(scope.row)">复查记录</el-button>
<el-button type="text"
style="color:#00A7A9;text-decoration: underline;"
class="div-table-button--delete"
size="small"
@click="handleReview(scope.row)">复查记录</el-button>
@click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
@ -214,6 +214,7 @@
:title="formTitle"
width="850px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<inspect-form ref="ref_form"
:gridList="gridList"
@ -230,6 +231,7 @@
:title="'复查记录'"
width="80%"
top="5vh"
class="dialog-h"
@closed="reviewDiaClose">
<inspect-review ref="ref_review"
:resultList="resultList"
@ -527,7 +529,7 @@ export default {
computed: {
tableHeight () {
return (this.clientHeight - 460)
return (this.clientHeight - 420)
},
rowHeight () {
@ -544,8 +546,6 @@ export default {
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/buttonstyle.scss";
.div_main {
width: 100%;
}

311
src/views/modules/communityService/ninePlaces/inspect/inspectForm.vue

@ -1,150 +1,151 @@
<template>
<div>
<div>
<div>
<el-form ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form">
<el-form-item label="场所区域"
prop="gridId"
label-width="150px"
style="display: block">
<el-select class="item_width_1"
v-model="formData.gridId"
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="ninePlaceVal">
<el-select class="item_width_1"
v-model="formData.ninePlaceVal"
placeholder="请选择"
clearable>
<el-option v-for="item in placeTypeList"
@click.native="handleChangeType"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="场所名称"
label-width="150px"
prop="placeOrgId">
<el-select class="item_width_1"
v-model="formData.placeOrgId"
placeholder="请选择"
clearable>
<el-option v-for="item in placesList"
:key="item.placeOrgId"
:label="item.placeOrgName"
:value="item.placeOrgId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="分队名称"
label-width="150px"
prop="placePatrolTeamId">
<el-select class="item_width_1"
v-model="formData.placePatrolTeamId"
placeholder="请选择"
clearable>
<el-option v-for="(item,index) in teamsList"
@click.native="hancleChangeTeam(index)"
:key="item.teamId"
:label="item.teamName"
:value="item.teamId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="检查人员"
prop="inspectorArray"
label-width="150px"
style="display: block">
<el-checkbox-group class="item_width_1"
style="display:flex;flex-wrap:wrap"
v-model="formData.inspectorArray">
<el-checkbox v-for="item in inspectorsList"
:key="item.id"
:label="item.id">{{item.name}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="首次巡查时间"
style="display: block"
prop="firstTime"
label-width="150px">
<el-date-picker v-model="formData.firstTime"
value-format="yyyy-MM-dd HH:mm:ss"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="隐患明细"
prop="detailed"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="500"
show-word-limit
:rows="3"
placeholder="请输入备注,不超过500字"
v-model="formData.detailed"></el-input>
</el-form-item>
<el-form-item label="首次检查结论"
prop="firstResult"
label-width="150px"
style="display: block">
<el-select class="item_width_1"
v-model="formData.firstResult"
placeholder="全部"
clearable>
<el-option v-for="item in resultList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟复查时间"
style="display: block"
prop="reviewTime"
label-width="150px">
<el-date-picker v-model="formData.reviewTime"
value-format="yyyy-MM-dd HH:mm:ss"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-form>
</div>
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form">
<el-form-item label="场所区域"
prop="gridId"
label-width="150px"
style="display: block">
<el-select class="item_width_1"
v-model="formData.gridId"
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="ninePlaceVal">
<el-select class="item_width_1"
v-model="formData.ninePlaceVal"
placeholder="请选择"
clearable>
<el-option v-for="item in placeTypeList"
@click.native="handleChangeType"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="场所名称"
label-width="150px"
prop="placeOrgId">
<el-select class="item_width_1"
v-model="formData.placeOrgId"
placeholder="请选择"
clearable>
<el-option v-for="item in placesList"
:key="item.placeOrgId"
:label="item.placeOrgName"
:value="item.placeOrgId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="分队名称"
label-width="150px"
prop="placePatrolTeamId">
<el-select class="item_width_1"
v-model="formData.placePatrolTeamId"
placeholder="请选择"
clearable>
<el-option v-for="(item,index) in teamsList"
@click.native="hancleChangeTeam(index)"
:key="item.teamId"
:label="item.teamName"
:value="item.teamId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="检查人员"
prop="inspectorArray"
label-width="150px"
style="display: block">
<el-checkbox-group class="item_width_1"
style="display:flex;flex-wrap:wrap"
v-model="formData.inspectorArray">
<el-checkbox v-for="item in inspectorsList"
:key="item.id"
:label="item.id">{{item.name}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="首次巡查时间"
style="display: block"
prop="firstTime"
label-width="150px">
<el-date-picker v-model="formData.firstTime"
value-format="yyyy-MM-dd HH:mm:ss"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="隐患明细"
prop="detailed"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="500"
show-word-limit
:rows="3"
placeholder="请输入备注,不超过500字"
v-model="formData.detailed"></el-input>
</el-form-item>
<el-form-item label="首次检查结论"
prop="firstResult"
label-width="150px"
style="display: block">
<el-select class="item_width_1"
v-model="formData.firstResult"
placeholder="全部"
clearable>
<el-option v-for="item in resultList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟复查时间"
style="display: block"
prop="reviewTime"
label-width="150px">
<el-date-picker v-model="formData.reviewTime"
value-format="yyyy-MM-dd HH:mm:ss"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-form>
</div>
<div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<el-button v-if="formType != 'detail'"
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button size="small"
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
@ -415,7 +416,7 @@ export default {
{ required: true, message: '隐患明细不能为空', trigger: 'blur' }
],
firstResult: [
{ required: true, message: '首次巡结果不能为空', trigger: 'blur' }
{ required: true, message: '首次巡结果不能为空', trigger: 'blur' }
]
}
},
@ -438,28 +439,8 @@ export default {
}
}
</script>
<style scoped>
.item_width_1 {
width: 500px;
}
.item_width_2 {
width: 400px;
}
.item_width_3 {
margin-left: 10px;
width: 200px;
}
.item_width_4 {
width: 200px;
}
.div_btn {
display: flex;
justify-content: flex-end;
}
.form {
margin-top: 30px;
}
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
</style>

2
src/views/modules/communityService/ninePlaces/inspect/inspectReview.vue

@ -1,5 +1,5 @@
<template>
<div>
<div class="dialog-h-content scroll-h">
<div class="div_table">
<el-button type="green"
size="small"

15
src/views/modules/communityService/ninePlaces/places/places.vue

@ -80,17 +80,17 @@
<el-button style="margin-left:30px"
size="small"
type="primary"
class="diy-button--search"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
size="small"
type="yellow"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
</div>
</el-form>
</div>
<div class="div_table">
<el-button type="green"
<el-button class="diy-button--add"
size="small"
@click="handleAdd">新增</el-button>
@ -152,12 +152,12 @@
<template slot-scope="scope">
<el-button type="text"
style="color:#00A7A9;text-decoration: underline;"
class="div-table-button--edit"
size="small"
@click="handleEdit(scope.row)">修改</el-button>
<el-button type="text"
style="color:#D51010;text-decoration: underline;"
class="div-table-button--delete"
size="small"
@click="handleDelete(scope.row)">删除</el-button>
</template>
@ -182,6 +182,7 @@
:title="formTitle"
width="850px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<places-form ref="ref_form"
:gridList="gridList"
@ -463,7 +464,7 @@ export default {
computed: {
tableHeight () {
return (this.clientHeight - 460)
return (this.clientHeight - 420)
},
rowHeight () {
@ -480,8 +481,6 @@ export default {
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/buttonstyle.scss";
.div_main {
width: 100%;
}

243
src/views/modules/communityService/ninePlaces/places/placesForm.vue

@ -1,110 +1,111 @@
<template>
<div>
<div>
<div>
<el-form ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form">
<el-form-item label="场所类型"
label-width="150px"
prop="ninePlaceVal">
<el-select class="item_width_1"
v-model="formData.ninePlaceVal"
placeholder="请选择"
clearable>
<el-option v-for="item in placeTypeList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="场所区域"
prop="gridId"
label-width="150px"
style="display: block">
<el-select class="item_width_1"
v-model="formData.gridId"
placeholder="全部"
clearable>
<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="场所名称"
label-width="150px"
prop="placeOrgName">
<el-input v-model="formData.placeOrgName"
class="item_width_1"
clearable
placeholder="请输入九小场所名称">
</el-input>
</el-form-item>
<el-form-item label="场所地址"
label-width="150px"
prop="address">
<el-input v-model="formData.address"
class="item_width_1"
clearable
placeholder="请输入场所地址">
</el-input>
</el-form-item>
<el-form-item label="规模"
label-width="150px"
prop="scale">
<el-select class="item_width_1"
v-model="formData.scale"
placeholder="请选择"
clearable>
<el-option v-for="item in scaleList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="负责人"
label-width="150px"
prop="personInCharge">
<el-input v-model="formData.personInCharge"
class="item_width_1"
clearable
placeholder="请输入负责人姓名">
</el-input>
</el-form-item>
<el-form-item label="联系电话"
label-width="150px"
prop="mobile">
<el-input v-model="formData.mobile"
class="item_width_1"
type='number'
clearable
placeholder="请输入电话">
</el-input>
</el-form-item>
</el-form>
</div>
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form">
<el-form-item label="场所类型"
label-width="150px"
prop="ninePlaceVal">
<el-select class="item_width_1"
v-model="formData.ninePlaceVal"
placeholder="请选择"
clearable>
<el-option v-for="item in placeTypeList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="场所区域"
prop="gridId"
label-width="150px"
style="display: block">
<el-select class="item_width_1"
v-model="formData.gridId"
placeholder="全部"
clearable>
<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="场所名称"
label-width="150px"
prop="placeOrgName">
<el-input v-model="formData.placeOrgName"
class="item_width_1"
clearable
placeholder="请输入九小场所名称">
</el-input>
</el-form-item>
<el-form-item label="场所地址"
label-width="150px"
prop="address">
<el-input v-model="formData.address"
class="item_width_1"
clearable
placeholder="请输入场所地址">
</el-input>
</el-form-item>
<el-form-item label="规模"
label-width="150px"
prop="scale">
<el-select class="item_width_1"
v-model="formData.scale"
placeholder="请选择"
clearable>
<el-option v-for="item in scaleList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="负责人"
label-width="150px"
prop="personInCharge">
<el-input v-model="formData.personInCharge"
class="item_width_1"
clearable
placeholder="请输入负责人姓名">
</el-input>
</el-form-item>
<el-form-item label="联系电话"
label-width="150px"
prop="mobile">
<el-input v-model="formData.mobile"
class="item_width_1"
type='number'
clearable
placeholder="请输入电话">
</el-input>
</el-form-item>
</el-form>
</div>
<div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<el-button v-if="formType != 'detail'"
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button size="small"
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
@ -316,48 +317,14 @@ export default {
}
</script>
<style scoped>
.item_width_1 {
width: 500px;
}
.item_width_2 {
width: 400px;
}
.item_width_3 {
margin-left: 10px;
width: 200px;
}
.item_width_4 {
width: 200px;
}
.div_map {
position: relative;
}
.div_searchmap {
z-index: 5000;
position: absolute;
top: 5px;
left: 5px;
}
.div_btn {
display: flex;
justify-content: flex-end;
}
.el-tabs {
margin: 0 20px;
}
.el-upload__tip {
color: rgb(155, 155, 155);
margin: 0;
}
.form {
margin-top: 30px;
}
</style>
<style lang=scss>
.el-dialog__body {
padding: 0 10px 20px !important;
}
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
</style>

37
src/views/modules/communityService/ninePlaces/team/team.vue

@ -28,8 +28,7 @@
</el-input>
</el-form-item>
</div>
<div>
<el-form-item label="负责区域"
prop="gridId">
<el-select class="item_width_1"
@ -64,17 +63,17 @@
<el-button style="margin-left:30px"
size="small"
type="primary"
class="diy-button--search"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
size="small"
type="yellow"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
</div>
</el-form>
</div>
<div class="div_table">
<el-button type="green"
<el-button class="diy-button--add"
size="small"
@click="handleAdd">新增</el-button>
@ -94,13 +93,13 @@
header-align="center"
align="center"
label="分队名称"
min-width="180">
min-width="100">
</el-table-column>
<el-table-column prop="personInCharge"
header-align="center"
align="center"
label="负责人"
width="180">
width="90">
</el-table-column>
<el-table-column prop="mobile"
header-align="center"
@ -112,25 +111,26 @@
header-align="center"
align="center"
label="负责区域"
min-width="280">
min-width="150">
</el-table-column>
<el-table-column prop="ninePlaceNames"
header-align="center"
align="center"
show-overflow-tooltip
label="负责场所类型"
min-width="180">
min-width="230">
</el-table-column>
<el-table-column prop="plan"
header-align="center"
align="center"
label="监察计划"
min-width="180">
label="巡查计划"
min-width="120">
</el-table-column>
<el-table-column prop="time"
header-align="center"
align="center"
label="创建时间"
min-width="120">
width="120">
</el-table-column>
<el-table-column label="操作"
@ -142,16 +142,16 @@
<template slot-scope="scope">
<el-button type="text"
style="color:#1C6AFD;text-decoration: underline;"
class="div-table-button--detail"
size="small"
@click="handleDetail(scope.row)">查看</el-button>
<el-button type="text"
style="color:#00A7A9;text-decoration: underline;"
class="div-table-button--edit"
size="small"
@click="handleEdit(scope.row)">修改</el-button>
<el-button type="text"
style="color:#D51010;text-decoration: underline;"
class="div-table-button--delete"
size="small"
@click="handleDelete(scope.row)">删除</el-button>
</template>
@ -176,6 +176,7 @@
:title="formTitle"
width="850px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<team-form ref="ref_form"
:gridList="gridList"
@ -440,7 +441,7 @@ export default {
computed: {
tableHeight () {
return (this.clientHeight - 460)
return (this.clientHeight - 370)
},
rowHeight () {
@ -457,8 +458,6 @@ export default {
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/buttonstyle.scss";
.div_main {
width: 100%;
}
@ -471,7 +470,7 @@ export default {
}
.item_width_1 {
width: 260px;
width: 230px;
}
.div_table {

297
src/views/modules/communityService/ninePlaces/team/teamForm.vue

@ -1,147 +1,150 @@
<template>
<div>
<div>
<div>
<el-form ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form">
<el-form-item label="分队名称"
label-width="150px"
prop="teamName">
<el-input v-model="formData.teamName"
class="item_width_1"
clearable
placeholder="请输入分队名称">
</el-input>
</el-form-item>
<el-form-item label="负责区域"
prop="gridIdArray"
label-width="150px"
style="display: block">
<el-select class="item_width_1"
v-model="formData.gridIdArray"
placeholder="全部"
multiple
clearable>
<el-option v-for="item in gridList"
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form">
<el-form-item label="分队名称"
label-width="150px"
prop="teamName">
<el-input v-model="formData.teamName"
class="item_width_1"
clearable
placeholder="请输入分队名称">
</el-input>
</el-form-item>
<el-form-item label="负责区域"
prop="gridIdArray"
label-width="150px"
style="display: block">
<el-select class="item_width_1"
v-model="formData.gridIdArray"
placeholder="全部"
multiple
clearable>
<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="ninePlaceArray"
label-width="150px"
style="display: block">
<el-checkbox-group class="item_width_1"
style="display:flex;flex-wrap:wrap"
v-model="formData.ninePlaceArray">
<el-checkbox v-for="item in placeTypeList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="负责场所类型"
prop="ninePlaceArray"
label-width="150px"
style="display: block">
<el-checkbox-group class="item_width_1"
style="display:flex;flex-wrap:wrap"
v-model="formData.ninePlaceArray">
<el-checkbox v-for="item in placeTypeList"
:key="item.value"
:label="item.value">{{item.label}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="巡查计划"
prop="plan"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="500"
show-word-limit
:rows="3"
placeholder="请输入备注,不超过500字"
v-model="formData.plan"></el-input>
</el-form-item>
<el-form-item label="创建时间"
style="display: block"
prop="time"
label-width="150px">
<el-date-picker v-model="formData.time"
value-format="yyyy-MM-dd HH:mm:ss"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="负责人"
label-width="150px"
prop="personInCharge">
<el-input v-model="formData.personInCharge"
class="item_width_1"
:label="item.value">{{item.label}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="巡查计划"
prop="plan"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="500"
show-word-limit
:rows="3"
placeholder="请输入备注,不超过500字"
v-model="formData.plan"></el-input>
</el-form-item>
<el-form-item label="创建时间"
style="display: block"
prop="time"
label-width="150px">
<el-date-picker v-model="formData.time"
value-format="yyyy-MM-dd HH:mm:ss"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="负责人"
label-width="150px"
prop="personInCharge">
<el-input v-model="formData.personInCharge"
class="item_width_1"
clearable
placeholder="请输入负责人姓名">
</el-input>
</el-form-item>
<el-form-item label="联系电话"
label-width="150px"
prop="mobile">
<el-input v-model="formData.mobile"
class="item_width_1"
type='number'
clearable
placeholder="请输入电话">
</el-input>
</el-form-item>
<el-form-item label="成员"
label-width="150px"
prop="member">
<el-button v-if="formType != 'detail'"
type="primary"
size="mini"
icon="el-icon-plus"
@click="handleAddPerson"></el-button>
<div v-for="(item,index) in memberList"
:key="index"
class="div_person_list"
:class="[{'margin10':formType !== 'detail'}]">
<span class="div_person_list_title">姓名</span>
<el-input v-if="item.isSet"
v-model="item.name"
class="item_width_3"
clearable
placeholder="请输入负责人姓名">
placeholder="请输入姓名">
</el-input>
<span class="item_width_span_3"
v-else>{{item.name}}</span>
</el-form-item>
<el-form-item label="联系电话"
label-width="150px"
prop="mobile">
<el-input v-model="formData.mobile"
class="item_width_1"
type='number'
<span class="div_person_list_title2">联系电话</span>
<el-input v-if="item.isSet"
v-model="item.mobile"
class="item_width_4"
clearable
placeholder="请输入电话">
</el-input>
<span class="item_width_span_4"
v-else>{{item.mobile}}</span>
</el-form-item>
<el-form-item label="成员"
label-width="150px"
prop="member">
<el-button v-if="formType != 'detail'"
type="primary"
<el-button v-if="formType !== 'detail'"
style="margin-left:30px"
type="red"
size="mini"
icon="el-icon-plus"
@click="handleAddPerson"></el-button>
<div v-for="(item,index) in memberList"
:key="index"
class="div_person_list">
<span style="font-weight: bold">姓名</span>
<el-input v-if="item.isSet"
v-model="item.name"
class="item_width_3"
clearable
placeholder="请输入姓名">
</el-input>
<span class="item_width_span_3"
v-else>{{item.name}}</span>
<span style="font-weight: bold;margin-left:20px">联系电话</span>
<el-input v-if="item.isSet"
v-model="item.mobile"
class="item_width_4"
clearable
placeholder="请输入电话">
</el-input>
<span class="item_width_span_4"
v-else>{{item.mobile}}</span>
<el-button style="margin-left:30px"
type="red"
size="mini"
@click="handleDelPerson(index)">删除</el-button>
</div>
</el-form-item>
</el-form>
</div>
@click="handleDelPerson(index)">删除</el-button>
</div>
</el-form-item>
</el-form>
</div>
<div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<el-button v-if="formType != 'detail'"
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button size="small"
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
@ -422,6 +425,11 @@ export default {
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
</style>
<style lang="scss" scoped>
@import "@/assets/scss/buttonstyle.scss";
.item_width_1 {
@ -440,30 +448,33 @@ export default {
}
.item_width_span_3 {
margin-left: 10px;
width: 120px;
width: 160px;
}
.item_width_span_4 {
margin-left: 10px;
width: 150px;
}
.div_btn {
display: flex;
justify-content: flex-end;
.margin10 {
margin-top: 10px;
}
.form {
margin-top: 30px;
}
.div_person_list {
margin-top: 10px;
width: 500px;
display: flex;
.div_person_list_title {
width: 40px;
font-weight: bold;
}
.div_person_list_title2 {
width: 90px;
font-weight: bold;
margin-left: 20px;
}
}
</style>
<style lang=scss>
.el-dialog__body {
padding: 0 10px 20px !important;
}
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
</style>

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

@ -1,6 +1,6 @@
<template>
<div>
<div>
<div class="dialog-h-content scroll-h">
<el-form
ref="ref_form"
:inline="true"
@ -192,11 +192,12 @@
</el-form-item>
</el-form>
</div>
<div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<div class="div_btn resi-btns">
<el-button size="small" @click="handleCancle"> </el-button>
<el-button
v-if="formType != 'detail'"
type="primary"
size="small"
:disabled="btnDisable"
@click="handleComfirm"
> </el-button
@ -487,8 +488,8 @@ export default {
}
.div_btn {
display: flex;
justify-content: flex-end;
// display: flex;
// justify-content: flex-end;
}
.el-tabs {
margin: 0 20px;

248
src/views/modules/communityService/sqzzz/index.vue

@ -1,54 +1,38 @@
<template>
<div>
<div class="resi-container">
<el-card class="resi-card">
<el-row class="resi-row-box" :class="openSearch && 'resi-row-more'">
<el-row class="resi-row" :gutter="20">
<el-col :span="8">
<div class="resi-cell">
<div class="resi-cell-label">组织名称</div>
<div class="resi-cell-value" :class="'resi-cell-value-radio'">
<el-input
v-model="fmData.organizationName"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="12">
<div class="resi-cell">
<div class="resi-cell-label">创建时间</div>
<div class="resi-cell-value" :class="'resi-cell-value-radio'">
<el-date-picker
v-model="fmData.createTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</div>
</div>
</el-col>
<el-col :span="4">
<el-button style="float:right;" type="primary" size="small" @click="handleSearch"
>查询</el-button
>
</el-col>
</el-row>
</el-row>
<div class="resi-container">
<el-card ref="searchCard" class="search-card">
<el-form ref="searchForm" :inline="true" :model="fmData" class="demo-form-inline">
<el-form-item label="组织名称" prop="organizationName">
<el-input
v-model="fmData.organizationName"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入"
>
</el-input>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="fmData.createTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button class="diy-button--search" size="small" @click="handleSearch">查询</el-button>
<el-button class="diy-button--reset" size="small" @click="resetForm('searchForm')">重置</el-button>
</el-form-item>
</el-form>
</el-card>
</div>
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-button type="success" size="small" @click="handleAdd"
<el-button class="diy-button--add" size="small" @click="handleAdd"
>新增</el-button
>
<el-upload
@ -64,12 +48,12 @@
:before-upload="beforeExcelUpload"
:http-request="uploadHttpRequest"
>
<el-button type="warning" size="small" :loading="importLoading">{{
<el-button size="small" class="diy-button--delete" :loading="importLoading">{{
importBtnTitle
}}</el-button>
</el-upload>
<el-button @click="handleChu" type="danger" size="small"
<el-button @click="handleChu" class="diy-button--reset" size="small"
>excel导出</el-button
>
</div>
@ -78,32 +62,37 @@
border
style="width: 100%"
class="resi-table"
:max-height="maxTableHeight"
:height="maxTableHeight"
>
<el-table-column label="序号" type="index" align="center" width="50" />
<el-table-column prop="organizationName" label="组织名称">
<el-table-column prop="organizationName" label="组织名称" align="center">
<template slot-scope="scope">
<a class="name-a" @click="handleWatch(scope.row)">
{{ scope.row.organizationName }}
</a>
</template>
</el-table-column>
<el-table-column prop="organizationPersonCount" label="组织人数">
<el-table-column prop="organizationPersonCount" align="center" label="组织人数">
</el-table-column>
<el-table-column prop="serviceItem" label="服务事项"> </el-table-column>
<el-table-column prop="score" width="80" label="积分">
<el-table-column prop="serviceItem" label="服务事项" align="center" :show-overflow-tooltip="true"> </el-table-column>
<el-table-column prop="score" width="100" align="center" label="积分">
</el-table-column>
<el-table-column prop="principalName" label="负责人"> </el-table-column>
<el-table-column prop="principalPhone" label="联系电话">
<el-table-column prop="principalName" align="center" label="负责人"> </el-table-column>
<el-table-column prop="principalPhone" align="center" label="联系电话">
</el-table-column>
<el-table-column prop="organizationCreatedTime" label="创建时间">
<el-table-column prop="organizationCreatedTime" align="center" label="创建时间">
</el-table-column>
<el-table-column fixed="right" label="操作" align="center" width="120">
<el-table-column fixed="right" label="操作" align="center" width="160">
<template slot-scope="scope">
<el-button
<!-- <el-button
@click="handleWatch(scope.$index)"
type="text"
size="small"
>查看</el-button
>
> -->
<el-button
type="text"
style="color: #1c6afd"
class="div-table-button--detail"
size="small"
@click="handleScore(scope.row)"
>积分记录</el-button
@ -113,7 +102,7 @@
@click="handleEdit(scope.$index)"
type="text"
size="small"
style="margin-right: 10px; color: #00a7a9"
class="div-table-button--edit"
>编辑</el-button
>
@ -126,7 +115,8 @@
slot="reference"
type="text"
size="small"
style="color: #d51010"
class="div-table-button--delete"
style="margin-left: 10px;"
>删除</el-button
>
</el-popconfirm>
@ -140,7 +130,7 @@
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="parseInt(pageSize)"
layout="sizes, prev, pager, next"
layout="sizes, prev, pager, next, total"
:total="total"
>
</el-pagination>
@ -155,6 +145,7 @@
:title="formTitle"
width="850px"
top="5vh"
class="dialog-h"
@closed="handleClose"
>
<edit-form
@ -170,7 +161,7 @@
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="scoreDiaTitle"
width="1050px"
width="70%"
top="5vh"
@closed="diaClose"
>
@ -197,7 +188,7 @@ export default {
openSearch: false,
formShow: false,
formTitle: "",
formTitle: "组织信息",
pageNo: 1,
pageSize: window.localStorage.getItem("pageSize") || 20,
@ -222,7 +213,7 @@ export default {
},
computed: {
maxTableHeight() {
return this.clientHeight - 410;
return this.clientHeight - 360;
},
...mapGetters(["clientHeight"]),
},
@ -340,7 +331,10 @@ export default {
this.pageNo = 1;
this.getTableData();
},
resetForm(formName) {
this.$refs[formName].resetFields()
this.handleSearch()
},
async handleAdd() {
this.formShow = true;
await nextTick();
@ -455,30 +449,20 @@ export default {
</script>
<style lang="scss" scoped>
.tabs-other-info {
.el-tabs__item {
// width: 50px;
height: 20px;
box-sizing: border-box;
margin-right: 7px;
padding: 0 10px !important;
font-size: 8px;
font-weight: 500;
color: #666666;
line-height: 20px;
background: #ebecf1;
border-radius: 2px;
}
.el-tabs__nav-wrap::after,
.el-tabs__active-bar {
display: none;
@import "@/assets/scss/buttonstyle.scss";
.resi-container .resi-card-table {
::v-deep .el-table th {
color: #fff;
background-color: rgba(33, 149, 254, 1);
// border-right: 1px solid rgba(33, 149, 254, 1);
}
.el-tabs__nav-next,
.el-tabs__nav-prev {
line-height: 20px;
}
.resi-table {
::v-deep .el-button--text {
text-decoration: underline;
}
}
.resi-card-table {
margin-top: 20px;
}
@ -489,23 +473,6 @@ export default {
margin: 0 10px;
}
}
.resi-other {
width: 100%;
display: flex;
.resi-other-title {
width: 100px;
box-sizing: border-box;
margin-bottom: 10px;
// padding: 6px 12px 0 0;
font-size: 16px;
font-weight: 500;
color: #333;
text-align: center;
}
.tabs-other-info {
// padding-left: 60px;
}
}
.resi-btns {
margin-top: 20px;
@ -516,72 +483,5 @@ export default {
position: relative;
overflow: visible;
}
.resi-down {
position: absolute;
left: 50%;
bottom: -10px;
display: flex;
justify-content: center;
align-items: center;
width: 46px;
height: 12px;
box-sizing: border-box;
margin-left: -23rpx;
cursor: pointer;
background: #ffffff;
border-radius: 0 0 10px 10px;
img {
display: block;
}
}
.resi-row-box {
// height: 104px;
overflow: hidden;
transition: height 0.5s;
}
.resi-row-more {
height: max-content;
transition: height 0.5s;
}
.resi-row {
margin-bottom: 20px;
}
.resi-search {
.el-col {
text-align: right;
}
}
.resi-cell {
display: flex;
align-items: center;
.resi-cell-label {
width: 70px;
box-sizing: border-box;
margin-right: 15px;
text-align: right;
// line-height: 32;
}
.resi-cell-value-radio {
display: flex;
align-items: center;
min-height: 32px;
}
.resi-cell-input {
width: 180px;
}
.resi-cell-select {
width: 180px;
box-sizing: border-box;
margin-right: 10px;
&-middle {
width: 130px;
}
&-small {
width: 88px;
}
}
.resi-cell-select:last-child {
margin-right: 0;
}
}
</style>

137
src/views/modules/importRecord/index.vue

@ -1,5 +1,5 @@
<template>
<div>
<div class="resi-container">
<el-card class="resi-card-table">
<div class="resi-row-btn">
<h2 type="success" size="small">导入记录</h2>
@ -8,8 +8,8 @@
:data="tableData"
border
style="width: 100%"
:height="maxTableHeight"
class="resi-table"
:max-height="maxTableHeight"
>
<el-table-column label="序号" type="index" align="center" width="50" />
<el-table-column prop="originFileName" label="文件名">
@ -45,7 +45,7 @@
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="parseInt(pageSize)"
layout="sizes, prev, pager, next"
layout="sizes, prev, pager, next, total"
:total="total"
>
</el-pagination>
@ -55,7 +55,7 @@
</template>
<script>
import { requestPost } from "@/js/dai/request";
import { requestPost } from "@/js/dai/request2";
import nextTick from "dai-js/tools/nextTick";
import { mapGetters } from "vuex";
import axios from "axios";
@ -85,7 +85,7 @@ export default {
},
computed: {
maxTableHeight() {
return this.clientHeight - 300;
return this.clientHeight - 280;
},
...mapGetters(["clientHeight"]),
},
@ -163,133 +163,20 @@ export default {
</script>
<style lang="scss" scoped>
.tabs-other-info {
.el-tabs__item {
// width: 50px;
height: 20px;
box-sizing: border-box;
margin-right: 7px;
padding: 0 10px !important;
font-size: 8px;
font-weight: 500;
color: #666666;
line-height: 20px;
background: #ebecf1;
border-radius: 2px;
}
.el-tabs__nav-wrap::after,
.el-tabs__active-bar {
display: none;
}
.el-tabs__nav-next,
.el-tabs__nav-prev {
line-height: 20px;
.resi-container .resi-card-table {
::v-deep .el-table th {
color: #fff;
background-color: rgba(33, 149, 254, 1);
// border-right: 1px solid rgba(33, 149, 254, 1);
}
}
.resi-card-table {
margin-top: 20px;
}
.resi-row-btn {
margin-bottom: 13px;
.upload-btn {
display: inline-block;
margin: 0 10px;
}
}
.resi-other {
width: 100%;
display: flex;
.resi-other-title {
width: 100px;
box-sizing: border-box;
margin-bottom: 10px;
// padding: 6px 12px 0 0;
font-size: 16px;
font-weight: 500;
color: #333;
text-align: center;
}
.tabs-other-info {
// padding-left: 60px;
}
}
.resi-btns {
margin-top: 20px;
text-align: center;
}
.resi-container .resi-card {
position: relative;
overflow: visible;
}
.resi-down {
position: absolute;
left: 50%;
bottom: -10px;
display: flex;
justify-content: center;
align-items: center;
width: 46px;
height: 12px;
box-sizing: border-box;
margin-left: -23rpx;
cursor: pointer;
background: #ffffff;
border-radius: 0 0 10px 10px;
img {
display: block;
}
}
.resi-row-box {
height: 104px;
overflow: hidden;
transition: height 0.5s;
}
.resi-row-more {
height: max-content;
transition: height 0.5s;
}
.resi-row {
margin-bottom: 20px;
}
.resi-search {
.el-col {
text-align: right;
}
}
.resi-cell {
display: flex;
align-items: center;
.resi-cell-label {
width: 70px;
box-sizing: border-box;
margin-right: 15px;
text-align: right;
// line-height: 32;
}
.resi-cell-value-radio {
display: flex;
align-items: center;
min-height: 32px;
}
.resi-cell-input {
width: 180px;
}
.resi-cell-select {
width: 180px;
box-sizing: border-box;
margin-right: 10px;
&-middle {
width: 130px;
}
&-small {
width: 88px;
}
}
.resi-cell-select:last-child {
margin-right: 0;
}
}
</style>

200
src/views/modules/shequ/cpts/bar-chart.vue

@ -0,0 +1,200 @@
<template>
<div class="m-chart">
<canvas id="myChart" :width="width" :height="height" />
</div>
</template>
<script>
import nextTick from "dai-js/tools/nextTick";
import F2 from "@antv/f2/lib/index-all";
// iosbug
const fontFamily = "PingFang SC";
const fontSize = 14;
let chart;
let srcData = [];
const iniChart = function (config, srcData, total, that) {
chart = new F2.Chart({
id: "myChart",
...config,
});
let data = [
{
const: "const",
name: "--",
count: 51.39,
},
{
const: "const",
name: "--",
count: 356.68,
},
{
const: "const",
name: "--",
count: 20.0,
},
{
const: "const",
name: "--",
count: 116.53,
},
];
console.log("-----------------------------------", srcData);
data = srcData;
chart.source(data);
// chart.axis(false);
chart.legend(false);
// chart.legend({
// position: "bottom",
// align: "center",
// });
chart.tooltip(false);
chart
.interval()
.position("name*count")
.color("name", [
"#3e8ef7",
"#3e8ef7",
"#3e8ef7",
"#3e8ef7",
"#3e8ef7",
"#3e8ef7",
"#3e8ef7",
"#3e8ef7",
"#3e8ef7",
"#3e8ef7",
"#3e8ef7",
"#3e8ef7",
"#3e8ef7",
"#3e8ef7",
"#3e8ef7",
"#3e8ef7",
"#3e8ef7",
]);
chart.render();
//
const offset = -5;
const canvas = chart.get("canvas");
const group = canvas.addGroup();
const shapes = {};
data.forEach(function (obj) {
const point = chart.getPosition(obj);
const text = group.addShape("text", {
attrs: {
x: point.x,
y: point.y + offset,
text: obj.count + '人',
textAlign: "center",
textBaseline: "bottom",
fill: "#808080",
},
});
shapes[obj.name] = text; // shape, 便
});
//
chart.interaction("interval-select", {
selectAxisStyle: {
fill: "#000",
fontWeight: "bold",
},
mode: "range", // range
// defaultSelected: {
// year: '1962 ',
// sales: 38
// },
onStart(ev) {
console.log(ev);
const data = ev.data,
selected = ev.selected;
if (data && selected) {
that.handleClickBar(data.name);
} else {
that.handleClickBar();
}
},
onEnd(ev) {
console.log("-------------------", ev);
},
});
// chart return
return chart;
};
export default {
name: "chart",
props: {
list: {
type: Array,
default: () => {
return [];
},
},
total: {
type: Number,
default: 0,
},
config: {
type: Object,
default: () => {
return {};
},
},
width: {
type: Number,
default: 400,
},
height: {
type: Number,
default: 260,
},
},
data() {
return {
iniLoading: false,
};
},
watch: {
list(data) {
// chart.changeData(data);
srcData = data;
},
},
async created() {
await nextTick(200);
iniChart(this.config, this.list, this.total, this);
await nextTick(200);
this.iniLoading = true;
},
methods: {
setList(data) {
chart.changeData(data);
srcData = data;
},
handleClickBar(name) {
let code = "";
if (name) {
let item = this.list.find((item) => item.name == name);
console.log(item);
code = item && item.code;
}
console.log(code);
this.$emit("clickBar", { code });
},
},
};
</script>
<style lang="scss" scoped></style>

125
src/views/modules/shequ/cpts/scroll-notice.vue

@ -0,0 +1,125 @@
<template>
<div class="m-scoll-notice">
<div class="wrapper">
<div class="bar" ref="barparent">
<div class="bartext" ref="barchild" :style="bartextStyle">
<!-- <li
v-for="(item, index) in list"
:key="item.configId + item.buildingId + index"
@click="toNoticeInfo(item)"
>
{{ item.noticeContent }}
</li> -->
<slot></slot>
</div>
</div>
</div>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
export default {
props: {
list: {
type: Array,
default: [],
},
},
data() {
return {
parentClientWidth: 100000,
beyond: false,
};
},
components: {},
computed: {
bartextStyle() {
let len = this.list.length;
let beyond = this.beyond;
return {
paddingLeft: beyond ? this.parentClientWidth + "px" : "",
animation: beyond
? `move_left_right ${len * 5}s linear 0s infinite`
: "",
};
},
},
mounted() {
this.move();
},
methods: {
move() {
const parentClientWidth = this.$refs.barparent.clientWidth;
this.parentClientWidth = parentClientWidth;
//
const parent = this.$refs.barparent;
const child = this.$refs.barchild;
console.log("对比", child.clientWidth, parent.clientWidth);
this.beyond = child.clientWidth > parent.clientWidth;
},
handleCancle() {
this.$emit("dialogCancle");
this.resetData();
},
resetData() {
this.dataForm = {
neighborHoodId: "", // ID
buildingId: "", //ID
buildingUnitId: "", //ID
doorName: "", //
houseType: "1", //
purpose: "1", //
rentFlag: 1, //10
ownerPhone: "", //
ownerName: "", //
ownerIdCard: "", //
};
},
},
};
</script>
<style lang="scss">
.m-scoll-notice {
.wrapper {
// padding: 0 15px;
display: flex;
align-items: center;
// background-color: "#FFF6EC";
}
.bar {
width: 100%;
// height: 32px;
// line-height: 32px;
overflow: hidden;
box-sizing: border-box;
}
.bartext {
white-space: nowrap;
display: inline-block;
}
.bartext li {
white-space: nowrap;
display: inline-block;
color: red;
font-size: 14px;
}
.state-text-overflow {
animation: move_left_right 120s linear 0s infinite;
}
@keyframes move_left_right {
from {
transform: translateX(0%);
}
to {
transform: translateX(-80%);
}
}
}
</style>

897
src/views/modules/shequ/index.vue

File diff suppressed because it is too large

12
src/views/modules/systemManagement/serviceMatter/service.vue

@ -3,9 +3,7 @@
<div class="div_table">
<div class="div_btn">
<el-button style=""
type="green"
size="small"
<el-button class="diy-button--add" size="small"
@click="handleAdd">新增</el-button>
</div>
@ -47,17 +45,17 @@
<template slot-scope="scope">
<el-button v-if="scope.row.usableFlag"
type="text"
style="color:#D51010;text-decoration: underline;"
class="div-table-button--delete"
size="small"
@click="handleDisable(scope.row,'disable')">禁用</el-button>
<el-button v-if="!scope.row.usableFlag"
type="text"
style="color:#D51010;text-decoration: underline;"
class="div-table-button--detail"
size="small"
@click="handleDisable(scope.row,'able')">启用</el-button>
<el-button type="text"
style="color:#00A7A9;text-decoration: underline;"
class="div-table-button--edit"
size="small"
@click="handleEdit(scope.row)">修改</el-button>
@ -72,7 +70,7 @@
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
width="950px"
width="50%"
top="5vh"
@closed="diaClose">
<service-form ref="ref_form"

12
src/views/modules/systemManagement/serviceMatter/serviceForm.vue

@ -35,13 +35,21 @@
</div>
</div>
<div class="div_btn">
<!-- <div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<el-button v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
</div>
</div> -->
<div class="resi-btns">
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button v-if="formType != 'detail'" type="primary"
size="small"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
</div>
</div>
</template>

1074
src/views/modules/visual/basicinfo/basicInfoMain copy.vue

File diff suppressed because it is too large

95
src/views/modules/visual/basicinfo/basicInfoMain.vue

@ -14,32 +14,6 @@
</div>
</div>
<!-- 组织列表 -->
<div v-show="orgLevel!=='people' && orgLevel!=='search' && orgLevel!=='neighborHood'"
class="div_agency_list">
<el-scrollbar style="height:98%"
wrap-style="overflow-x:hidden">
<div v-if="subAgencyArray.length>0"
class="agency_list">
<div v-for="(item,index) in subAgencyArray"
:key="index"
@click="clickAgencyItem(item,index)"
:class="['agency_item',{'agency_item_on':index%2 ==0}]">
<div class="agency_item_name">{{item.name}}</div>
</div>
</div>
<div v-else>
<img src="@/assets/img/modules/visual/noData.png"
alt=""
srcset=""
class="no-data-img" />
</div>
</el-scrollbar>
</div>
<people-search v-show="orgLevel==='search'"
@toSubAgency="toSubAgency"
ref="ref_search"></people-search>
@ -59,8 +33,44 @@
class="div_map"
id="map"
ref="map">
<!-- <div id="map"
class="map"></div> -->
<div class="m-sidebar">
<div class="wrap"
:class="[{'wrap-hidden':!showAgencyList}]">
<div @click="hideAgencyList"
class="arrow_tip">
<img src="@/assets/img/modules/visual/popup.png"
alt />
</div>
<div class="div_agency_list">
<div class="agency_main">
<el-scrollbar style="height:98%"
wrap-style="overflow-x:hidden">
<div v-if="subAgencyArray.length>0"
class="agency_list">
<div v-for="(item,index) in subAgencyArray"
:key="index"
@click="clickAgencyItem(item,index)"
:class="['agency_item',{'agency_item_on':index%2 ==0}]">
<div class="agency_item_name">{{item.name}}</div>
</div>
</div>
<div v-else>
<img src="@/assets/img/modules/visual/noData.png"
alt=""
srcset=""
class="no-data-img" />
</div>
</el-scrollbar>
</div>
</div>
</div>
</div>
</div>
<div class="div_data">
@ -244,6 +254,8 @@ const vueGis = {
name: 'HomeMap',
data () {
return {
showAgencyList: true,
agencyFadeIn: true,
centerPoint: [],//
zoom: 14,//14
minZoom: 1,//
@ -301,7 +313,21 @@ const vueGis = {
},
methods: {
hideAgencyList () {
this.showAgencyList = !this.showAgencyList
// if (this.showAgencyList) {
// this.agencyFadeIn = false
// setTimeout(() => {
// this.showAgencyList = false
// }, 1000)
// } else {
// this.agencyFadeIn = true
// this.showAgencyList = true
// }
},
handleSearch () {
this.toSubAgency('search')
},
@ -971,17 +997,4 @@ export default vueGis;
</style>
<style lang="scss" scoped>
.info_loading {
margin-top: 50px;
}
.div_info {
/deep/ .el-scrollbar__wrap {
overflow-x: hidden !important;
}
}
.div_agency_list {
/deep/ .el-scrollbar__wrap {
overflow-x: hidden !important;
}
}
</style>

475
src/views/modules/visual/basicinfo/people.vue

@ -7,9 +7,11 @@
<img src="@/assets/img/shuju/title-tip.png" />
<span>人员情况</span>
</div>
<div class="more" @click="showedMoreInfo = true">查看更多</div>
<div class="more"
@click="showedMoreInfo = true">查看更多</div>
<div class="ren">
<img class="pic-ren" src="@/assets/img/shuju/people/ren.png" />
<img class="pic-ren"
src="@/assets/img/shuju/people/ren.png" />
<div class="ren-name">
<span>{{ info.name }}</span>
<img src="@/assets/img/shuju/people/arrow.png" />
@ -106,13 +108,11 @@
</cpt-card>
</div>
<people-more
v-show="showedMoreInfo"
v-if="userId"
:userId="userId"
:gridName="info.gridName"
@close="showedMoreInfo = false"
/>
<people-more v-show="showedMoreInfo"
v-if="userId"
:userId="userId"
:gridName="info.gridName"
@close="showedMoreInfo = false" />
<div class="m-relation">
<cpt-card>
@ -122,168 +122,99 @@
</div>
<div class="info">
<div class="huzhu">
<img class="huzhu-bg" src="@/assets/img/shuju/people/huzhu.png" />
<img
class="huzhu-ico"
src="@/assets/img/shuju/people/huzhu-home.png"
/>
<img class="huzhu-bg"
src="@/assets/img/shuju/people/huzhu.png" />
<img class="huzhu-ico"
src="@/assets/img/shuju/people/huzhu-home.png" />
<div class="huzhu-name">{{ houseInfo.ownerName }}</div>
<p>户主</p>
</div>
<div
class="rel z-zuo-2"
@click="toUserInfo(houseInfo.userList[0].userId)"
v-if="houseInfo.userList[0]"
>
<img
class="rel-bg"
src="@/assets/img/shuju/people/huzhu-kuang-zuo.png"
/>
<img
class="rel-line"
src="@/assets/img/shuju/people/huzhu-line/zuo2.png"
/>
<div
class="rel-text"
:class="houseInfo.userList[0].isSelf == '1' ? 'z-on' : ''"
>
<span class="rel-call">{{
<div class="rel z-zuo-2"
@click="toUserInfo(houseInfo.userList[0].userId)"
v-if="houseInfo.userList[0]">
<img class="rel-bg"
src="@/assets/img/shuju/people/huzhu-kuang-zuo.png" />
<img class="rel-line"
src="@/assets/img/shuju/people/huzhu-line/zuo2.png" />
<div class="rel-text"
:class="houseInfo.userList[0].isSelf == '1' ? 'z-on' : ''">
<div class="rel-call">岳父母或公婆</div>
<div class="rel-name">吉克隽逸</div>
<!-- <span class="rel-call">{{
houseInfo.userList[0].relation
}}</span>
<span class="rel-name"
>{{ houseInfo.userList[0].userName }}</span
>
<span class="rel-name">{{ houseInfo.userList[0].userName }}</span> -->
</div>
</div>
<div
class="rel z-you-2"
@click="toUserInfo(houseInfo.userList[1].userId)"
v-if="houseInfo.userList[1]"
>
<img
class="rel-bg"
src="@/assets/img/shuju/people/huzhu-kuang-you.png"
/>
<img
class="rel-line"
src="@/assets/img/shuju/people/huzhu-line/you2.png"
/>
<div
class="rel-text"
:class="houseInfo.userList[1].isSelf == '1' ? 'z-on' : ''"
>
<span class="rel-call">{{
houseInfo.userList[1].relation
}}</span>
<span class="rel-name"
>{{ houseInfo.userList[1].userName }}</span
>
<div class="rel z-you-2"
@click="toUserInfo(houseInfo.userList[1].userId)"
v-if="houseInfo.userList[1]">
<img class="rel-bg"
src="@/assets/img/shuju/people/huzhu-kuang-you.png" />
<img class="rel-line"
src="@/assets/img/shuju/people/huzhu-line/you2.png" />
<div class="rel-text"
:class="houseInfo.userList[1].isSelf == '1' ? 'z-on' : ''">
<div class="rel-call">{{ houseInfo.userList[1].relation }}</div>
<div class="rel-name">{{ houseInfo.userList[1].userName }}</div>
</div>
</div>
<div
class="rel z-zuo-1"
@click="toUserInfo(houseInfo.userList[2].userId)"
v-if="houseInfo.userList[2]"
>
<img
class="rel-bg"
src="@/assets/img/shuju/people/huzhu-kuang-zuo.png"
/>
<img
class="rel-line"
src="@/assets/img/shuju/people/huzhu-line/zuo1.png"
/>
<div
class="rel-text"
:class="houseInfo.userList[2].isSelf == '1' ? 'z-on' : ''"
>
<span class="rel-call">{{
houseInfo.userList[2].relation
}}</span>
<span class="rel-name"
>{{ houseInfo.userList[2].userName }}</span
>
<div class="rel z-zuo-1"
@click="toUserInfo(houseInfo.userList[2].userId)"
v-if="houseInfo.userList[2]">
<img class="rel-bg"
src="@/assets/img/shuju/people/huzhu-kuang-zuo.png" />
<img class="rel-line"
src="@/assets/img/shuju/people/huzhu-line/zuo1.png" />
<div class="rel-text"
:class="houseInfo.userList[2].isSelf == '1' ? 'z-on' : ''">
<div class="rel-call">{{ houseInfo.userList[2].relation }}</div>
<div class="rel-name">{{ houseInfo.userList[2].userName }}</div>
</div>
</div>
<div
class="rel z-you-1"
@click="toUserInfo(houseInfo.userList[3].userId)"
v-if="houseInfo.userList[3]"
>
<img
class="rel-bg"
src="@/assets/img/shuju/people/huzhu-kuang-you.png"
/>
<img
class="rel-line"
src="@/assets/img/shuju/people/huzhu-line/you1.png"
/>
<div
class="rel-text"
:class="houseInfo.userList[3].isSelf == '1' ? 'z-on' : ''"
>
<span class="rel-call">{{
houseInfo.userList[3].relation
}}</span>
<span class="rel-name"
>{{ houseInfo.userList[3].userName }}</span
>
<div class="rel z-you-1"
@click="toUserInfo(houseInfo.userList[3].userId)"
v-if="houseInfo.userList[3]">
<img class="rel-bg"
src="@/assets/img/shuju/people/huzhu-kuang-you.png" />
<img class="rel-line"
src="@/assets/img/shuju/people/huzhu-line/you1.png" />
<div class="rel-text"
:class="houseInfo.userList[3].isSelf == '1' ? 'z-on' : ''">
<div class="rel-call">{{ houseInfo.userList[3].relation }}</div>
<span class="rel-name">{{ houseInfo.userList[3].userName }}</span>
</div>
</div>
<div
class="rel z-zuo-3"
@click="toUserInfo(houseInfo.userList[4].userId)"
v-if="houseInfo.userList[4]"
>
<img
class="rel-bg"
src="@/assets/img/shuju/people/huzhu-kuang-zuo.png"
/>
<img
class="rel-line"
src="@/assets/img/shuju/people/huzhu-line/zuo3.png"
/>
<div
class="rel-text"
:class="houseInfo.userList[4].isSelf == '1' ? 'z-on' : ''"
>
<span class="rel-call">{{
houseInfo.userList[4].relation
}}</span>
<span class="rel-name"
>{{ houseInfo.userList[4].userName }}</span
>
<div class="rel z-zuo-3"
@click="toUserInfo(houseInfo.userList[4].userId)"
v-if="houseInfo.userList[4]">
<img class="rel-bg"
src="@/assets/img/shuju/people/huzhu-kuang-zuo.png" />
<img class="rel-line"
src="@/assets/img/shuju/people/huzhu-line/zuo3.png" />
<div class="rel-text"
:class="houseInfo.userList[4].isSelf == '1' ? 'z-on' : ''">
<div class="rel-call">{{ houseInfo.userList[4].relation }}</div>
<div class="rel-name">{{ houseInfo.userList[4].userName }}</div>
</div>
</div>
<div
class="rel z-you-3"
@click="toUserInfo(houseInfo.userList[5].userId)"
v-if="houseInfo.userList[5]"
>
<img
class="rel-bg"
src="@/assets/img/shuju/people/huzhu-kuang-you.png"
/>
<img
class="rel-line"
src="@/assets/img/shuju/people/huzhu-line/you3.png"
/>
<div
class="rel-text"
:class="houseInfo.userList[5].isSelf == '1' ? 'z-on' : ''"
>
<span class="rel-call">{{
houseInfo.userList[5].relation
}}</span>
<span class="rel-name"
>{{ houseInfo.userList[5].userName }}</span
>
<div class="rel z-you-3"
@click="toUserInfo(houseInfo.userList[5].userId)"
v-if="houseInfo.userList[5]">
<img class="rel-bg"
src="@/assets/img/shuju/people/huzhu-kuang-you.png" />
<img class="rel-line"
src="@/assets/img/shuju/people/huzhu-line/you3.png" />
<div class="rel-text"
:class="houseInfo.userList[5].isSelf == '1' ? 'z-on' : ''">
<div class="rel-call">{{ houseInfo.userList[5].relation }}</div>
<div class="rel-name">{{ houseInfo.userList[5].userName }}</div>
</div>
</div>
</div>
@ -299,23 +230,20 @@
</div>
<div class="tb">
<cpt-tb
:col-list="demand.colList"
:loading="demand.loading"
:header="demand.header"
:list="demand.list"
@operate="handleOperateDemandList"
></cpt-tb>
<div class="m-pagination" v-if="demand.total > demand.pageSize">
<el-pagination
:current-page="demand.pageNo"
:page-size="demand.pageSize"
:total="demand.total"
background
layout="prev, pager, next"
@current-change="handlePageNoChangeDemand"
>
<cpt-tb :col-list="demand.colList"
:loading="demand.loading"
:header="demand.header"
:list="demand.list"
@operate="handleOperateDemandList"></cpt-tb>
<div class="m-pagination"
v-if="demand.total > demand.pageSize">
<el-pagination :current-page="demand.pageNo"
:page-size="demand.pageSize"
:total="demand.total"
background
layout="prev, pager, next"
@current-change="handlePageNoChangeDemand">
</el-pagination>
</div>
</div>
@ -327,83 +255,68 @@
<cpt-card>
<div class="title">
<img src="@/assets/img/shuju/title-tip.png" />
<a
:class="{ 'z-on': showedIncidentOrTopic == 'incident' }"
@click="showedIncidentOrTopic = 'incident'"
>上报事件</a
>
<a
:class="{ 'z-on': showedIncidentOrTopic == 'topic' }"
@click="showedIncidentOrTopic = 'topic'"
>发布话题</a
>
<a :class="{ 'z-on': showedIncidentOrTopic == 'incident' }"
@click="showedIncidentOrTopic = 'incident'">上报事件</a>
<a :class="{ 'z-on': showedIncidentOrTopic == 'topic' }"
@click="showedIncidentOrTopic = 'topic'">发布话题</a>
</div>
<div class="list-wrap" v-show="showedIncidentOrTopic == 'incident'">
<div class="list-wrap"
v-show="showedIncidentOrTopic == 'incident'">
<div class="list">
<div
class="item"
:key="'incident' + index"
v-for="(item, index) in incident.list"
@click="handleClickIncident(index)"
>
<div class="item"
:key="'incident' + index"
v-for="(item, index) in incident.list"
@click="handleClickIncident(index)">
<div class="item-title">{{ item.eventContent }}</div>
<div class="item-date">{{ item.reportTime }}</div>
</div>
</div>
<div
class="m-pagination"
v-if="incident.total > incident.pageSize"
>
<el-pagination
:current-page="incident.pageNo"
:page-size="incident.pageSize"
:total="incident.total"
background
layout="prev, pager, next"
@current-change="handlePageNoChangeIncident"
>
<div class="m-pagination"
v-if="incident.total > incident.pageSize">
<el-pagination :current-page="incident.pageNo"
:page-size="incident.pageSize"
:total="incident.total"
background
layout="prev, pager, next"
@current-change="handlePageNoChangeIncident">
</el-pagination>
</div>
<div v-if="incident.list.length == 0" class="m-hint">
<img
src="@/assets/img/modules/visual/noData.png"
class="no-data-img"
/>
<div v-if="incident.list.length == 0"
class="m-hint">
<img src="@/assets/img/modules/visual/noData.png"
class="no-data-img" />
</div>
</div>
<div class="list-wrap" v-show="showedIncidentOrTopic == 'topic'">
<div class="list-wrap"
v-show="showedIncidentOrTopic == 'topic'">
<div class="list">
<div
class="item"
:key="'topic' + index"
v-for="(item, index) in topic.list"
@click="handleClickTopic(index)"
>
<div class="item"
:key="'topic' + index"
v-for="(item, index) in topic.list"
@click="handleClickTopic(index)">
<div class="item-title">{{ item.topicContent }}</div>
<div class="item-date">{{ item.releaseTime }}</div>
</div>
</div>
<div class="m-pagination" v-if="topic.total > topic.pageSize">
<el-pagination
:current-page="topic.pageNo"
:page-size="topic.pageSize"
:total="topic.total"
background
layout="prev, pager, next"
@current-change="handlePageNoChangeTopic"
>
<div class="m-pagination"
v-if="topic.total > topic.pageSize">
<el-pagination :current-page="topic.pageNo"
:page-size="topic.pageSize"
:total="topic.total"
background
layout="prev, pager, next"
@current-change="handlePageNoChangeTopic">
</el-pagination>
</div>
<div v-if="topic.list.length == 0" class="m-hint">
<img
src="@/assets/img/modules/visual/noData.png"
class="no-data-img"
/>
<div v-if="topic.list.length == 0"
class="m-hint">
<img src="@/assets/img/modules/visual/noData.png"
class="no-data-img" />
</div>
</div>
</cpt-card>
@ -418,12 +331,10 @@
<div class="list-wrap">
<div class="list">
<div
class="item"
:key="'point' + index"
v-for="(item, index) in point.list"
@click="handleClickPoint(index)"
>
<div class="item"
:key="'point' + index"
v-for="(item, index) in point.list"
@click="handleClickPoint(index)">
<div class="item-row">
<div class="item-l">
<div class="item-point">{{ item.point }}</div>
@ -436,23 +347,21 @@
</div>
</div>
<div class="m-pagination" v-if="point.total > point.pageSize">
<el-pagination
:current-page="point.pageNo"
:page-size="point.pageSize"
:total="point.total"
background
layout="prev, pager, next"
@current-change="handlePageNoChangePoint"
>
<div class="m-pagination"
v-if="point.total > point.pageSize">
<el-pagination :current-page="point.pageNo"
:page-size="point.pageSize"
:total="point.total"
background
layout="prev, pager, next"
@current-change="handlePageNoChangePoint">
</el-pagination>
</div>
<div v-if="point.list.length == 0" class="m-hint">
<img
src="@/assets/img/modules/visual/noData.png"
class="no-data-img"
/>
<div v-if="point.list.length == 0"
class="m-hint">
<img src="@/assets/img/modules/visual/noData.png"
class="no-data-img" />
</div>
</div>
</cpt-card>
@ -460,29 +369,23 @@
</div>
</div>
<demand-info
v-if="demand.list.length > 0 && showedDemandInfo"
:userId="userId"
queryOrigin="personal-data"
:demandId="demand.srcList[demand.currentIndex].demandRecId"
@close="showedDemandInfo = false"
/>
<incident-info
v-if="incident.list.length > 0 && incident.showedInfo"
:resiEventId="incident.list[incident.currentIndex].resiEventId"
:epmetUserIdList="info.epmetUserIdList"
:icResiUserId="userId"
@close="incident.showedInfo = false"
/>
<topic-info
v-if="topic.list.length > 0 && topic.showedInfo"
:topicId="topic.list[topic.currentIndex].topicId"
:epmetUserIdList="info.epmetUserIdList"
:icResiUserId="userId"
@close="topic.showedInfo = false"
/>
<demand-info v-if="demand.list.length > 0 && showedDemandInfo"
:userId="userId"
queryOrigin="personal-data"
:demandId="demand.srcList[demand.currentIndex].demandRecId"
@close="showedDemandInfo = false" />
<incident-info v-if="incident.list.length > 0 && incident.showedInfo"
:resiEventId="incident.list[incident.currentIndex].resiEventId"
:epmetUserIdList="info.epmetUserIdList"
:icResiUserId="userId"
@close="incident.showedInfo = false" />
<topic-info v-if="topic.list.length > 0 && topic.showedInfo"
:topicId="topic.list[topic.currentIndex].topicId"
:epmetUserIdList="info.epmetUserIdList"
:icResiUserId="userId"
@close="topic.showedInfo = false" />
</div>
</template>
@ -498,7 +401,7 @@ import cptTb from "@/views/modules/visual/cpts/tb";
export default {
name: "HomeMap",
data() {
data () {
return {
showedMoreInfo: false,
showedDemandInfo: false,
@ -619,24 +522,24 @@ export default {
},
watch: {
uid(id) {
uid (id) {
this.userId = id;
},
userId() {
userId () {
this.getApiData();
window.scrollTo(0, 0);
},
},
async mounted() {
async mounted () {
this.userId = this.uid;
this.getApiData();
},
methods: {
handleSearch() {},
handleSearch () { },
async getApiData() {
async getApiData () {
await this.getInfo();
this.getHouseInfo();
this.getDemandData();
@ -645,12 +548,12 @@ export default {
this.getPointData();
},
toUserInfo(uid) {
toUserInfo (uid) {
this.$router.push({ path: `/main-shuju/visual-basicinfo-people/${uid}` });
},
//
async getInfo() {
async getInfo () {
const url = "/epmetuser/icresiuser/persondata";
let params = {
userId: this.userId,
@ -666,7 +569,7 @@ export default {
},
//
async getHouseInfo() {
async getHouseInfo () {
const url = "/epmetuser/icresiuser/ownerrelation";
let params = {
userId: this.userId,
@ -681,12 +584,12 @@ export default {
}
},
handlePageNoChangeDemand(val) {
handlePageNoChangeDemand (val) {
this.demand.pageNo = val;
this.getDemandData();
},
handleOperateDemandList(index, type) {
handleOperateDemandList (index, type) {
if (type == "查看") {
this.showedDemandInfo = true;
this.demand.currentIndex = index;
@ -694,7 +597,7 @@ export default {
},
//
async getDemandData() {
async getDemandData () {
const url = "/heart/userdemand/mydemand";
let params = {
epmetUserIdList: this.info.epmetUserIdList,
@ -724,18 +627,18 @@ export default {
}
},
handlePageNoChangeIncident(val) {
handlePageNoChangeIncident (val) {
this.incident.pageNo = val;
this.getIncidentData();
},
handleClickIncident(index) {
handleClickIncident (index) {
this.incident.showedInfo = true;
this.incident.currentIndex = index;
},
//
async getIncidentData() {
async getIncidentData () {
const url = "/gov/project/resievent/pageuserreported";
let params = {
epmetUserIdList: this.info.epmetUserIdList,
@ -755,18 +658,18 @@ export default {
}
},
handlePageNoChangeTopic(val) {
handlePageNoChangeTopic (val) {
this.topic.pageNo = val;
this.getTopicData();
},
handleClickTopic(index) {
handleClickTopic (index) {
this.topic.showedInfo = true;
this.topic.currentIndex = index;
},
//
async getTopicData() {
async getTopicData () {
const url = "/data/aggregator/resigroup/pageusertopic";
let params = {
epmetUserIdList: this.info.epmetUserIdList,
@ -786,18 +689,18 @@ export default {
}
},
handlePageNoChangePoint(val) {
handlePageNoChangePoint (val) {
this.point.pageNo = val;
this.getPointData();
},
handleClickPoint(index) {
handleClickPoint (index) {
this.point.showedInfo = true;
this.point.currentIndex = index;
},
//
async getPointData() {
async getPointData () {
const url = "/point/resi/point/pageuserpoint";
let params = {
epmetUserIdList: this.info.epmetUserIdList,

33
src/views/modules/visual/basicinfo/personCategory/index.vue

@ -46,25 +46,50 @@
</div>
</div>
<div class="top-item-num">
<div class="num-item">
<div class="item_left">较上月</div>
<div class="item_right">
<div class="item_right_row">
<div class="item_right_title">新人员增加</div>
<div>
<span v-if=" item.immigration!==0">{{ "+" }}</span>
<span>{{ item.immigration }}</span>
</div>
</div>
<div class="item_right_row row2">
<div class="item_right_title">原人员减少</div>
<div>
<span v-if=" item.emigration!==0">{{ "-" }}</span>
<span>{{ item.emigration }}</span>
</div>
</div>
</div>
<!-- <div class="num-item">
<div>较上月</div>
<div>
<div>
<span>新人员增加</span>
<span v-if=" item.immigration!==0">{{ "+" }}</span>
<span>{{ item.immigration }}</span>
</div>
</div>
</div>
<div class="num-item">
</div> -->
<!-- <div class="num-item">
<div>{{" "}}</div>
<div>
<div>
<span>原人员减少</span>
<span v-if=" item.emigration!==0">{{ "-" }}</span>
<span>{{ item.emigration }}</span>
</div>
</div>
</div>
</div> -->
</div>
</div>
</div>

68
src/views/modules/warning/components/screen-loading/index.vue

@ -0,0 +1,68 @@
<template>
<div class="screen-loading">
<svg width="50px"
height="50px">
<circle cx="25"
cy="25"
r="20"
fill="transparent"
stroke-width="3"
stroke-dasharray="31.415, 31.415"
stroke="#29cdff"
stroke-linecap="round">
<animateTransform attributeName="transform"
type="rotate"
values="0, 25 25;360, 25 25"
dur="1.5s"
repeatCount="indefinite" />
<animate attributeName="stroke"
values="#02bcfe;#3be6cb;#02bcfe"
dur="3s"
repeatCount="indefinite" />
</circle>
<circle cx="25"
cy="25"
r="10"
fill="transparent"
stroke-width="3"
stroke-dasharray="15.7, 15.7"
stroke="#29cdff"
stroke-linecap="round">
<animateTransform attributeName="transform"
type="rotate"
values="360, 25 25;0, 25 25"
dur="1.5s"
repeatCount="indefinite" />
<animate attributeName="stroke"
values="#3be6cb;#02bcfe;#3be6cb"
dur="3s"
repeatCount="indefinite" />
</circle>
</svg>
<div class="loading-tip">
<slot></slot>
</div>
</div>
</template>
<script>
export default {
name: 'DvLoading'
}
</script>
<style lang="scss" scoped>
.screen-loading {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
.loading-tip {
font-size: 14px;
color: #fff;
}
}
</style>

392
src/views/modules/warning/components/screen-table/index.vue

@ -0,0 +1,392 @@
<template>
<div>
<div class="warning-table">
<div class="table">
<div class="table-header">
<div
class="table-header-th"
v-for="(item, index) in headerList"
:key="item.title"
:style="headerStyle[index]"
>
{{ item.title }}
</div>
</div>
<div class="table-body">
<div
class="table-body-tr"
v-for="(value, index) in tableData"
:key="index"
>
<div
class="td"
v-for="(item, indexs) in value"
:key="indexs"
:style="tableContentStyle[indexs]"
>
<div v-if="Array.isArray(item)">
<span
v-show="rIndex < 3"
:key="resi.userId"
v-for="(resi, rIndex) in item"
>
{{ rIndex != 0 ? "、" : "" }}
<a @click="handlePeopleItem(resi.userId, value[1])">{{
resi.residentName
}}</a>
</span>
</div>
<span v-else>{{ item }}</span>
<span
v-if="indexs + 1 == value.length && item.length > 3"
class="more"
@click.stop="onClickMorePop(index)"
ref="morePop"
>
更多>
<div class="more-pop" v-if="visiblePopList[index]">
<span
:key="index + rIndex + resi.userId"
v-for="(resi, rIndex) in item"
>
{{ rIndex != 0 ? "、" : "" }}
<a @click="handlePeopleItem(resi.userId, value[1])">{{
resi.residentName
}}</a>
</span>
</div>
</span>
</div>
</div>
<screen-loading v-if="visibleLoading">加载中</screen-loading>
<div class="no-data" v-if="tableData.length == 0 && !visibleLoading">
<img
src="@/assets/img/modules/visual/noData.png"
class="no-data-img"
/>
</div>
</div>
</div>
</div>
<people-more
v-if="showedPeopleMoreInfo && currentPepeleId"
:userId="currentPepeleId"
:gridName="currentPepeleGridName"
@close="showedPeopleMoreInfo = false"
/>
</div>
</template>
<script>
import ScreenLoading from "../screen-loading/index";
import Vue from "vue";
import peopleMore from "@/views/modules/shequ/cpts/people-more";
export default {
name: "warning-table",
components: {
ScreenLoading,
peopleMore,
},
props: {
headerList: {
type: Array,
required: false,
default: () => {
return [
{ title: "序号" },
{ title: "所属网格" },
{ title: "所属小区" },
{ title: "楼号" },
{ title: "姓名" },
];
},
},
tableData: {
type: Array,
required: false,
default: () => {
return [
// [
// 1,
// "",
// "",
// "2",
// "",
// ],
// [
// 2,
// "",
// "",
// "2",
// "",
// ],
];
},
},
//
headerStyle: {
type: Array,
default: () => {
return [
// {
// width:'200px',
// border:'1px solid red'
// },
// {
// width:'200px'
// }
];
},
},
//
tableContentStyle: {
type: Array,
default: () => {
return [
// {
// width:'200px',
// border:'1px solid red'
// },
// {
// width:'200px'
// }
];
},
},
visibleLoading: {
type: Boolean,
default: true,
},
// //
// ava: {
// type: Number,
// default: 8
// },
// // --10%
// headerHeightAva: {
// type: String,
// default: '10%'
// },
// //
// tableContentAva: {
// type: Number,
// default: 5
// },
},
data() {
return {
//
showedPeopleMoreInfo: false,
currentPepeleId: "",
currentPepeleGridName: "",
visiblePopList: [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
],
};
},
watch: {
tableData(arr) {
if (Array.isArray(arr)) {
this.visiblePopList = new Array(arr.length).fill(false);
}
},
},
mounted() {
window.addEventListener("click", (e) => {
this.visiblePopList = new Array(this.visiblePopList.length).fill(false);
});
},
created() {},
methods: {
toUserInfo(uid) {
this.$router.push({ path: `/main-shuju/visual-basicinfo-people/${uid}` });
},
handlePeopleItem(uid, gridName) {
this.currentPepeleId = uid;
this.currentPepeleGridName = gridName;
this.showedPeopleMoreInfo = true;
},
onClickMorePop(index) {
this.visiblePopList.forEach((item, indexs) => {
if (index == indexs) {
Vue.set(this.visiblePopList, index, true);
} else {
Vue.set(this.visiblePopList, indexs, false);
}
});
},
},
};
</script>
<style lang="scss" scoped>
.warning-table {
box-sizing: border-box;
width: 100%;
height: 100%;
.table {
width: 100%;
height: 100%;
border: 1px solid #dfdfdd;
&-header {
width: 100%;
height: 50px;
display: flex;
justify-content: space-around;
align-items: center;
background: #2194fe;
font-size: 16px;
font-weight: 400;
color: #ffffff;
&-th {
text-align: center;
width: 20%;
&:nth-child(1) {
width: 5%;
}
&:nth-child(2) {
width: 25%;
}
&:nth-child(3) {
width: 25%;
}
&:nth-child(5) {
width: 25%;
}
}
}
&-body {
box-sizing: border-box;
width: 100%;
height: calc(100% - 50px);
font-size: 16px;
font-weight: 400;
color: #333;
&-tr {
width: 100%;
height: 50px;
display: flex;
justify-content: space-around;
align-items: center;
border-bottom: 1px dashed #dfdfdd;
.td {
text-align: center;
width: 20%;
border-left: 1px dashed #dfdfdd;
height: 50px;
display: flex;
align-items: center;
justify-content: space-around;
&:nth-child(1) {
width: 5%;
border-left: 0;
}
&:nth-child(2) {
width: 25%;
}
&:nth-child(3) {
width: 25%;
}
&:nth-child(5) {
width: 25%;
}
a {
cursor: pointer;
}
.more {
font-size: 16px;
font-weight: 400;
color: #e4dc00;
position: relative;
cursor: pointer;
&-pop {
box-sizing: border-box;
display: block;
box-sizing: border-box;
width: 215px;
height: auto;
line-height: 20px;
border: 1px solid red;
position: absolute;
right: -100%;
top: 150%;
background: #fff;
box-shadow: 0 0 10px 0 #2194fe;
border: 1px solid #42a4fe;
border-radius: 5px;
font-size: 9px;
font-weight: 400;
color: #333;
padding: 16px 8px 10px 9px;
z-index: 1;
cursor: default;
// &::after{
// position: absolute;
// left: 30%;
// top: -30%;
// display: flex;
// content:'';
// width: 0;
// height: 0;
// border-width: 13px;
// border-style: solid;
// border-color: transparent transparent rgba(26, 100, 204,0.5) transparent;
// // border-color: transparent transparent red transparent;
// transform: translate(-50%,0);
// }
}
}
}
&:last-child {
border-bottom: none;
}
}
&-tr:nth-child(2n) {
}
&-tr:hover {
background: rgba(16, 75, 164, 0.1);
}
//
.no-data {
width: 100%;
height: calc(100% - 50px);
display: flex;
align-items: center;
justify-content: center;
&-img {
width: 249px;
height: 172px;
}
}
}
}
}
</style>

200
src/views/modules/warning/index.vue

@ -0,0 +1,200 @@
<template>
<div class="warning-box">
<div class="warning-box-top">
<div class="top-item" v-for="(item, index) in warningList" :key="index">
<div class="top-item-img">
<img :src="item.managementIcon" />
<div class="top-item-left">
<span>{{ item.label }}</span>
<span>{{ item.count }}</span>
</div>
</div>
<div class="top-item-num">
<div
class="num-item"
:class="{
'num-item-active': activeIndex == index && activeLevel == '1',
}"
@click="onClickList(index, '1')"
>
<div>{{ item.level1 }}-{{ item.level2 }}</div>
<div>
<div>{{ item.levelCount1 }}</div>
<img
src="../../../assets/img/modules/visual/right-icon.png"
class="right-icon"
/>
</div>
</div>
<div
class="num-item"
:class="{
'num-item-active': activeIndex == index && activeLevel == '2',
}"
@click="onClickList(index, '2')"
>
<div>{{ item.level2 }}人以上</div>
<div>
<div>{{ item.levelCount2 }}</div>
<img
src="../../../assets/img/modules/visual/right-icon.png"
class="right-icon"
/>
</div>
</div>
</div>
</div>
</div>
<div class="warning-box-bottom">
<screen-table
:headerList="headerList"
:tableData="tableData"
:visibleLoading="visibleLoading"
></screen-table>
<div class="pagination">
<el-pagination
:current-page="pageNo"
:page-size="pageSize"
background
layout="prev, pager, next"
@size-change="pageSizeChangeHandleNew"
@current-change="pageCurrentChangeHandleNew"
:total="total"
>
</el-pagination>
</div>
</div>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import screenTable from "./components/screen-table/index";
import cptCard from "@/views/modules/visual/cpts/card";
import nextTick from "dai-js/tools/nextTick";
export default {
name: "warning-box",
components: {
cptCard,
screenTable,
},
props: {
buildingId: {
type: String,
default: "",
},
configId: {
type: String,
default: "",
},
},
data() {
return {
warningList: [],
headerList: [
{ title: "序号" },
{ title: "所属网格" },
{ title: "所属小区" },
{ title: "楼号" },
{ title: "姓名" },
],
tableData: [
// [1,'','','2',''],
],
visibleLoading: true,
pageNo: 1,
pageSize: 10,
total: 0,
activeIndex: 0,
activeLevel: "1",
};
},
async mounted() {
await nextTick(100);
this.getBuildingwarnlist();
},
methods: {
onClickList(index, level) {
this.activeIndex = index;
this.activeLevel = level;
this.pageNo = 1;
this.getUserwarnlist();
},
//
async getUserwarnlist() {
const { activeIndex, activeLevel, warningList } = this;
const reqItem = warningList[activeIndex];
let tableData = [];
const url = "/epmetuser/statsresiwarn/userwarnlist";
let params = {
configId: reqItem.configId,
buildingIdList: reqItem["buildingIdList" + activeLevel],
pageNo: this.pageNo,
pageSize: this.pageSize,
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
data.list.forEach((item, index) => {
tableData.push([
index + 1,
item.gridName,
item.neighborhoodName,
item.buildingName,
item.userList || "暂无",
]);
});
this.tableData = tableData;
this.total = data.total;
} else {
}
},
//
async getBuildingwarnlist() {
const url = "/epmetuser/statsresiwarn/buildingwarnlist";
let params = {
agencyId: this.$store.state.user.agencyId,
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.warningList = data;
this.visibleLoading = false;
const { buildingId, configId } = this;
if (configId && buildingId) {
let activeIndex = 0;
let activeLevel = 1;
data.forEach((item, index) => {
if (item.configId == configId) {
activeIndex = index;
if (item.buildingIdList1.indexOf(buildingId) !== -1) {
activeLevel = 1;
}
if (item.buildingIdList2.indexOf(buildingId) !== -1) {
activeLevel = 2;
}
if (item.buildingIdList3.indexOf(buildingId) !== -1) {
activeLevel = 3;
}
}
});
this.activeIndex = activeIndex;
this.activeLevel = activeLevel;
}
this.getUserwarnlist();
} else {
}
},
pageSizeChangeHandleNew(val) {
this.pageNo = 1;
this.pageSize = val;
},
pageCurrentChangeHandleNew(val) {
this.pageNo = val;
this.getUserwarnlist();
},
},
};
</script>
<style lang="scss" src="@/assets/scss/modules/warning.scss" scoped></style>

112
src/views/modules/workPc/guidance/categoryList.vue

@ -1,14 +1,14 @@
<template>
<div class="role-container">
<el-card class="flex1">
<div class="role-container resi-container">
<el-card class="flex1 resi-card-table">
<div v-if="isManager">
<div v-if="isManager" class="resi-row-btn">
上下拖动可改变角色顺序
<el-button style="margin-left:10px"
type="primary"
size="small"
@click="handleSaveSort">保存顺序</el-button>
<el-button type="primary"
<el-button type="success"
size="small"
@click="handleAdd">新增</el-button>
</div>
@ -17,8 +17,10 @@
:data="tableData"
row-key="id"
border
:height="tableHeight"
class="resi-table"
style="width: 100%;margin-top:20px">
<el-table-column type="index"
<el-table-column label="序号" type="index"
header-align="left"
align="left"
width="50"></el-table-column>
@ -46,20 +48,24 @@
<template slot-scope="scope">
<el-button v-if="scope.row.status==='enable'"
type="primary"
size="mini"
type="text"
size="small"
class="div-table-button--detail"
@click="confirmChangeState(scope.row,'disable')">禁用</el-button>
<el-button v-if="scope.row.status==='disable'"
type="primary"
size="mini"
type="text"
size="small"
class="div-table-button--detail"
@click="confirmChangeState(scope.row,'enable')">启用</el-button>
<el-button type="primary"
size="mini"
<el-button type="text"
size="small"
class="div-table-button--edit"
@click="handleEdit(scope.row)">修改</el-button>
<el-button type="primary"
size="mini"
<el-button type="text"
size="small"
class="div-table-button--delete"
@click="confirmDel(scope.row)">删除</el-button>
</template>
</el-table-column>
@ -72,25 +78,43 @@
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="diaTitle"
width="30%"
width="50%"
top="5vh"
class="dialog-h"
@closed="diaClose">
<div class="div_duty"
<div class="div_duty dialog-h-content scroll-h"
v-if="diaShow">
<span> 分类名称 </span>
<el-form label-width="100px">
<el-form-item label="分类名称">
<el-input v-model="categoryName" type="textarea"
maxlength="10"
:rows="2" style="width: 300px"></el-input>
</el-form-item>
</el-form>
<!-- <span> 分类名称 </span>
<el-input style="margin-top:20px"
type="textarea"
maxlength="10"
:rows="2"
v-model="categoryName"></el-input>
<div class="div_btn">
v-model="categoryName"></el-input> -->
<!-- <div class="div_btn">
<el-button type="primary"
size="small"
@click="saveCategory()">保存</el-button>
<el-button size="small"
@click="diaShow=false">取消</el-button>
</div>
</div> -->
</div>
<div class="resi-btns">
<el-button size="small"
@click="diaShow=false">取消</el-button>
<el-button
type="primary"
size="small"
@click="saveCategory">提交</el-button>
</div>
</el-dialog>
</div>
@ -139,7 +163,11 @@ export default {
},
computed: {
tableHeight() {
return document.documentElement.clientHeight - 220;
}
},
methods: {
//
@ -347,7 +375,26 @@ export default {
}
</script>
<style scoped>
<style lang="scss" scoped>
.resi-container .resi-card-table {
::v-deep .el-table th {
color: #fff;
background-color: rgba(33, 149, 254, 1);
// border-right: 1px solid rgba(33, 149, 254, 1);
}
}
.resi-table {
::v-deep .el-button--text {
text-decoration: underline;
}
::v-deep .btn-color-del {
margin-left: 10px;
color: rgba(213, 16, 16, 1);
}
::v-deep .btn-color-edit {
color: rgba(0, 167, 169, 1);
}
}
.role-container,
.role-flex {
display: flex;
@ -368,8 +415,9 @@ export default {
padding: 0 20px 20px;
}
.div_duty {
height: 300px;
position: relative;
margin-top: 30px;
/* height: 300px;
position: relative; */
}
.div_btn {
@ -377,4 +425,22 @@ export default {
bottom: 30px;
right: 15px;
}
.resi-row-btn {
display: flex;
align-items: center;
margin-bottom: 13px;
.el-button {
margin-left: 10px;
border: 0;
}
.el-button--success {
background: rgba(34, 193, 195, 1);
}
.el-button--warning {
background: rgba(254, 179, 73, 1);
}
.el-button--danger {
background: rgba(254, 98, 82, 1);
}
}
</style>

93
src/views/modules/workPc/guidance/guidanceList.vue

@ -1,12 +1,10 @@
<template>
<div class="registerList">
<el-card shadow="never"
class="aui-card--fill">
<div v-show="!formShow"
class="mod-demo__demo}">
<div class="registerList resi-container">
<div v-show="!formShow">
<el-card ref="searchCard"
class="search-card">
<el-form :inline="true"
:model="tableParams"
@keyup.enter.native="loadData()">
:model="tableParams">
<div>
<el-form-item label="所属组织"
:label-width="labelWidth">
@ -17,9 +15,7 @@
:props="optionProps"
clearable></el-cascader>
</el-form-item>
</div>
<div>
<el-form-item label="问题分类"
:label-width="labelWidth">
<el-select v-model="tableParams.categoryCode"
@ -42,38 +38,57 @@
</el-form-item>
<el-form-item style="margin-left:10px">
<el-button @click="loadData()"
<el-button size="small"
@click="loadData()"
class="diy-button--search"
type="primary">查询</el-button>
<el-button style="margin-left:10px"
class="diy-button--reset"
size="small"
@click="resetSearch">重置</el-button>
</el-form-item>
<el-form-item v-if="isStaff"
style="margin-left:10px">
<el-button @click="add()"
type="primary">新增</el-button>
</el-form-item>
<!-- <el-form-item v-if="isStaff"
style="margin-left:10px">
<el-button @click="add()"
type="primary">新增</el-button>
</el-form-item> -->
</div>
</el-form>
</el-card>
<el-card shadow="never">
<div v-if="isStaff"
class="resi-row-btn">
<el-button class="diy-button--add"
size="small"
@click="add">新增</el-button>
</div>
<c-table column-type="index"
class="resi-card-table"
ref="table"
:url="tableUrl"
:params="tableParams"
:operationWidth="80"
keyword="guidanceList"
:operations="operations"
columnAlign="center"
:tableHeight="tableHeight"
@detail="detail"
@edit="edit"
@confirmDel="confirmDel">
</c-table>
</div>
<div v-show="formShow">
<detail-form ref="ref_edit_form"
@cancleBack="cancleBack"
@refresh="loadData"></detail-form>
</div>
<!-- <div v-show="formShow">
<detail-form ref="ref_edit_form"
@cancleBack="cancleBack"
@refresh="loadData"></detail-form>
</div> -->
</el-card>
</div>
<el-card v-show="formShow">
<detail-form ref="ref_edit_form"
@cancleBack="cancleBack"
@refresh="loadData"></detail-form>
</el-card>
</div>
</template>
@ -183,12 +198,23 @@ export default {
},
computed: {
tableHeight () {
return this.clientHeight - 60 - 80 - 80 - 100
return this.clientHeight - 360
},
...mapGetters(['clientHeight', 'env'])
},
methods: {
//
resetSearch () {
this.tableParams.agencyId = ''
this.tableParams.categoryCode = ''
this.tableParams.guideTitle = ''
this.agencyIdArray = []
this.pageSize = 10
this.pageNo = 0
// this.loadTable()
},
async initData () {
this.startLoading()
await this.getAgencylist()//
@ -323,7 +349,7 @@ export default {
}
}
</script>
<style lang="css" scoped>
<style lang="scss" scoped>
.myNote {
display: -webkit-box;
text-overflow: ellipsis;
@ -331,6 +357,23 @@ export default {
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
.resi-container .resi-card-table {
::v-deep .el-table th {
color: #fff;
background-color: rgba(33, 149, 254, 1);
// border-right: 1px solid rgba(33, 149, 254, 1);
}
}
.resi-row-btn {
margin-bottom: 13px;
::v-deep .el-button {
// margin-left: 10px;
border: 0;
}
.el-button--success {
background: rgba(34, 193, 195, 1);
}
}
/* .register .el-table .el-table__header-wrapper {
position: absolute;
top: 0;

256
src/views/modules/workSys/demandCate.vue

@ -1,121 +1,130 @@
<template>
<div v-if="pageLoading" class="resi-container">
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-form :inline="true" :model="form" class="demo-form-inline">
<div v-if="pageLoading"
class="resi-container">
<el-card ref="searchCard"
class="search-card">
<div>
<el-form :inline="true"
:model="form"
class="demo-form-inline">
<el-form-item label="需求分类">
<el-select v-model="form.firstCategoryCode" filterable placeholder="请选择" clearable>
<el-option
v-for="item in demandOptions"
:key="item.value"
:label="item.label"
:value="item.value">
<el-select size="small"
v-model="form.firstCategoryCode"
filterable
placeholder="请选择"
clearable>
<el-option v-for="item in demandOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSearch">查询</el-button>
<el-button class="diy-button--search"
size="small"
@click="handleSearch">查询</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-button type="success" @click="handleAdd('1', 'add')">新增分类</el-button>
<el-button class="diy-button--add"
size="small"
@click="handleAdd('1', 'add')">新增分类</el-button>
</div>
<el-table
:data="tableData"
row-key="categoryId"
v-loading="tableLoading"
border
max-height="800"
style="width: 100%"
class="resi-table"
>
<el-table-column label="序号" type="index" align="center" width="50">
<el-table :data="tableData"
row-key="categoryId"
v-loading="tableLoading"
border
:height="tableHeight"
style="width: 100%"
class="resi-table">
<el-table-column label="序号"
type="index"
align="center"
width="50">
<template slot-scope="scope">{{ scope.row.index }}</template>
</el-table-column>
<el-table-column
v-for="item in tableHeader"
:key="item.columnName"
:prop="item.columnName"
:label="item.label"
:align="item.align"
>
<el-table-column v-for="item in tableHeader"
:key="item.columnName"
:prop="item.columnName"
:label="item.label"
:align="item.align">
<template slot-scope="scope">
<span>{{ handleFilterSpan(scope.row, item) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="200">
<el-table-column label="操作"
align="center"
width="200">
<template slot-scope="scope">
<el-button
v-if="scope.row.hasBtn"
@click="handleLook(scope.row)"
type="text"
size="small"
class="btn-color-look"
>{{(scope.row.usableFlag&&'禁用') || '启用'}}</el-button
>
<el-button
v-if="scope.row.level == 1"
@click="handleAdd('2', 'add', scope.row)"
type="text"
size="small"
class="btn-color-del"
>添加二级分类</el-button
>
<el-button
@click="handleEdit(scope.row, 'edit')"
type="text"
size="small"
class="btn-color-edit"
>编辑</el-button
>
<el-button v-if="scope.row.hasBtn"
@click="handleLook(scope.row)"
type="text"
size="small"
class="div-table-button--detail">{{(scope.row.usableFlag&&'禁用') || '启用'}}</el-button>
<el-button v-if="scope.row.level == 1"
@click="handleAdd('2', 'add', scope.row)"
type="text"
size="small"
class="div-table-button--delete">添加二级分类</el-button>
<el-button @click="handleEdit(scope.row, 'edit')"
type="text"
size="small"
class="div-table-button--edit">编辑</el-button>
</template>
</el-table-column>
</el-table>
<div>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
layout="sizes, prev, pager, next"
:total="total"
>
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
layout="sizes, prev, pager, next, total"
:total="total">
</el-pagination>
</div>
</el-card>
<el-dialog
title="居民需求分类"
:visible.sync="dialogVisible"
width="40%"
append-to-body
:close-on-click-modal="false"
:before-close="handlerCancle"
>
<el-form label-width="100px" :model="form" :rules="rules" ref="ruleForm">
<el-form-item label="分类名称" prop="categoryName">
<el-input v-model="form.categoryName" size="small" style="width: 180px;"></el-input>
<el-dialog title="居民需求分类"
:visible.sync="dialogVisible"
width="40%"
append-to-body
:close-on-click-modal="false"
:before-close="handlerCancle">
<el-form label-width="100px"
:model="form"
:rules="rules"
ref="ruleForm">
<el-form-item label="分类名称"
prop="categoryName">
<el-input v-model="form.categoryName"
size="small"
style="width: 180px;"></el-input>
</el-form-item>
<!-- <el-form-item label="状态">
<el-switch v-model="form.usableFlag"></el-switch>
</el-form-item> -->
<el-form-item v-if="addLevel == '2'" label="奖励积分">
<el-input-number v-model="form.awardPoint" :min="0" size="small" label="描述文字"></el-input-number>
<el-form-item v-if="addLevel == '2'"
label="奖励积分">
<el-input-number v-model="form.awardPoint"
:min="0"
size="small"
label="描述文字"></el-input-number>
</el-form-item>
</el-form>
<div class="resi-btns">
<el-button size="small" @click="handlerCancle">取消</el-button>
<el-button
type="primary"
size="small"
:loading="btnLoading"
@click="handleSUbmit"
>提交</el-button
>
<el-button size="small"
@click="handlerCancle">取消</el-button>
<el-button type="primary"
size="small"
:loading="btnLoading"
@click="handleSUbmit">提交</el-button>
</div>
</el-dialog>
@ -124,7 +133,7 @@
<script>
export default {
data() {
data () {
return {
tableLoading: false,
btnLoading: false,
@ -135,6 +144,7 @@ export default {
pageSize: 20,
total: null,
tableData: [],
tableHeight: 500,
addLevel: '1',
addType: 'add',
value: '',
@ -142,7 +152,7 @@ export default {
{
label: '是',
value: 1
},{
}, {
label: '否',
value: 2
}
@ -178,26 +188,30 @@ export default {
}
}
},
async created() {
async created () {
this.customerId = localStorage.getItem('customerId')
this.getTableData()
this.getOptions()
this.pageLoading = true
},
mounted() {
mounted () {
this.$nextTick(() => {
this.tableHeight = document.documentElement.clientHeight - this.$refs.searchCard.$el.offsetHeight - 280 + 'px'
console.log('tableHeight', this.tableHeight)
})
},
methods: {
handleSizeChange(val) {
handleSizeChange (val) {
console.log(`每页 ${val}`)
this.pageSize = val
this.getTableData()
},
handleCurrentChange(val) {
handleCurrentChange (val) {
console.log(`当前页: ${val}`)
this.currentPage = val
this.getTableData()
},
handleFilterSpan(row, item) {
handleFilterSpan (row, item) {
let _val = ''
if (item.options && item.options.length > 0) {
item.options.forEach((n) => {
@ -206,21 +220,21 @@ export default {
}
return _val || row[item.columnName]
},
handleSearch(val) {
handleSearch (val) {
console.log('searchhh--', val)
this.currentPage = 1
this.getTableData()
},
handleAdd(type, addType, row) {
handleAdd (type, addType, row) {
this.addLevel = type
this.addType = addType
if (type == '2') this.form = { ...row, categoryName: '' }
this.dialogVisible = true
},
handlerCancle() {
handlerCancle () {
this.dialogVisible = false
},
async handleLook(row) {
async handleLook (row) {
const params = {
categoryId: row.categoryId,
usableFlag: !row.usableFlag
@ -238,14 +252,14 @@ export default {
return this.$message.error('网络错误')
})
},
async handleEdit(row, addType) {
async handleEdit (row, addType) {
this.form = { ...row }
this.addLevel = row.level
this.addType = addType
this.dialogVisible = true
},
async addLevelFirst() {
async addLevelFirst () {
const _form = {
customerId: localStorage.getItem('customerId'),
categoryName: this.form.categoryName
@ -258,12 +272,12 @@ export default {
} else {
this.dialogVisible = false
this.getTableData()
}
}
})
.catch(() => {
return this.$message.error('网络错误')
})
this.btnLoading = false
this.btnLoading = false
},
async addLevelChild () {
const _form = {
@ -280,14 +294,14 @@ export default {
} else {
this.dialogVisible = false
this.getTableData()
}
}
})
.catch(() => {
return this.$message.error('网络错误')
})
this.btnLoading = false
this.btnLoading = false
},
async editCate() {
async editCate () {
const _form = {
customerId: localStorage.getItem('customerId'),
categoryName: this.form.categoryName,
@ -303,14 +317,14 @@ export default {
} else {
this.dialogVisible = false
this.getTableData()
}
}
})
.catch(() => {
return this.$message.error('网络错误')
})
this.btnLoading = false
this.btnLoading = false
},
handleSUbmit() {
handleSUbmit () {
this.$refs.ruleForm.validate(async (valid) => {
if (valid) {
this.btnLoading = true
@ -318,15 +332,15 @@ export default {
if (this.addLevel == '1') this.addLevelFirst()
else this.addLevelChild()
} else this.editCate()
} else {
console.log('error submit!!');
return false;
}
});
},
handleDel(row) {
handleDel (row) {
let params = {
formCode: 'resi_base_info',
icResiUserId: row.icResiUserId
@ -349,8 +363,8 @@ export default {
return this.$message.error('网络错误')
})
},
sortData() {
const _data = this.tableData.map((item, index)=> {
sortData () {
const _data = this.tableData.map((item, index) => {
return {
id: item.id,
sort: index
@ -370,7 +384,7 @@ export default {
return this.$message.error('网络错误')
})
},
async getOptions() {
async getOptions () {
const params = {
parentCategoryCode: 0
}
@ -387,7 +401,7 @@ export default {
return this.$message.error('网络错误')
})
},
async getTableData() {
async getTableData () {
this.tableLoading = true
let params = {
// formCode: 'resi_base_info',
@ -423,7 +437,7 @@ export default {
})
this.tableLoading = false
}
}
}
</script>
@ -431,13 +445,12 @@ export default {
<style lang="scss" scoped>
.resi-container .resi-card-table {
::v-deep .el-table {
th {
th {
color: #fff;
background-color: rgba(33, 149, 254, 1);
}
.cell {
span:nth-of-type(3) {
display: inline-block;
width: 90%;
@ -476,14 +489,13 @@ 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 {
width: 70px;
@ -501,8 +513,6 @@ export default {
text-align: center;
}
}
.resi-btns {
margin-top: 20px;

23
src/views/modules/workSys/elegantCate.vue

@ -3,23 +3,25 @@
<el-card class="resi-card-table">
<div class="mod-sys__menu">
<div class="resi-row-btn">
<el-button class=""
type="success"
<el-button class="diy-button--add"
size="small"
@click="addShow()">新增</el-button>
</div>
<el-table v-loading="dataListLoading"
:data="dataList"
:default-expand-all="false"
row-key="categoryId"
:cell-style="cellStyle"
:height="tableHeight"
border
style="width: 100%;" class="resi-table">
<el-table-column prop="categoryName"
label="分类名称"
align="center"
header-align="center"
min-width="150"></el-table-column>
<el-table-column prop="stateShow"
label="状态"
align="center"
header-align="center"
min-width="150"></el-table-column>
@ -31,21 +33,21 @@
<el-table-column label="操作"
fixed="right"
header-align="center"
align="left"
align="center"
width="350">
<template slot-scope="scope">
<el-button type="text"
size="small"
class="btn-color-look"
class="div-table-button--detail"
@click="disableCategory(scope.row)">{{ scope.row.btnShow}}</el-button>
<el-button type="text"
size="small"
class="btn-color-edit"
class="div-table-button--edit"
@click="editShow(scope.row)">修改</el-button>
<el-button type="text"
size="small"
class="btn-color-del"
class="div-table-button--delete"
@click="deleteCategory(scope.row)">删除</el-button>
</template>
</el-table-column>
@ -77,6 +79,7 @@ export default {
tableParams: {
customerId: ''
},
tableHeight: 500,
search: '',
dataList: [],
@ -108,6 +111,12 @@ export default {
console.log('user----', user)
this.initData(user.customerId, user.customerName)
},
mounted() {
this.$nextTick(() => {
this.tableHeight = document.documentElement.clientHeight - 220 + 'px'
console.log('tableHeight', this.tableHeight)
})
},
methods: {
cellStyle ({ row, column, rowIndex, columnIndex }) {
//

13
src/views/modules/workSys/elegantEdit.vue

@ -34,11 +34,18 @@
</div>
</el-form>
<template slot="footer">
<!-- <template slot="footer">
<el-button @click="visible = false;resetData()">{{ $t('cancel') }}</el-button>
<el-button type="primary"
@click="saveForm()">{{ $t('confirm') }}</el-button>
</template>
</template> -->
<div class="resi-btns">
<el-button size="small"
@click="visible = false;resetData()">取消</el-button>
<el-button type="primary"
size="small"
@click="saveForm">提交</el-button>
</div>
</el-dialog>
</template>
@ -134,7 +141,7 @@ export default {
this.visible = false
this.$emit('editDiaOK')
} else {
this.$message.error(msg)
// this.$message.error(msg)
}
},
handleClose () {

29
src/views/modules/workSys/resiCate.vue

@ -1,7 +1,7 @@
<template>
<div v-if="pageLoading" class="resi-container">
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-card ref="searchCard" class="search-card">
<div >
<el-form :inline="true" :model="form" class="demo-form-inline">
<el-form-item label="是否预警">
<el-select
@ -36,15 +36,19 @@
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSearch">查询</el-button>
<el-button class="diy-button--search" size="small" @click="handleSearch">查询</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
<el-card class="resi-card-table">
<el-table
:data="tableData"
row-key="id"
v-loading="tableLoading"
border
:height="tableHeight"
style="width: 100%"
class="resi-table"
>
@ -73,14 +77,14 @@
@click="handleLook(scope.row)"
type="text"
size="small"
class="btn-color-look"
class="div-table-button--detail"
>{{(scope.row.status === 'show'&&'隐藏') || '显示'}}</el-button
>
<el-button
@click="handleEdit(scope.row)"
type="text"
size="small"
class="btn-color-edit"
class="div-table-button--edit"
>编辑</el-button
>
</template>
@ -93,7 +97,7 @@
:current-page.sync="currentPage"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
layout="sizes, prev, pager, next"
layout="sizes, prev, pager, next, total"
:total="total"
>
</el-pagination>
@ -103,12 +107,14 @@
<el-dialog
title="居民类别配置"
:visible.sync="dialogVisible"
width="40%"
width="50%"
top="5vh"
append-to-body
class="dialog-h"
:close-on-click-modal="false"
:before-close="handlerCancle"
>
<el-form label-width="100px" :model="form" :rules="rules" ref="ruleForm">
<el-form label-width="150px" :model="form" :rules="rules" ref="ruleForm" class="dialog-h-content scroll-h">
<el-form-item label="类别名称">
<el-input v-model="form.label" size="small" style="width: 180px;" disabled></el-input>
</el-form-item>
@ -196,6 +202,7 @@ export default {
total: null,
conditions: [],
tableData: [],
tableHeight: 500,
isWarn: null,
level: null,
options: [
@ -282,6 +289,10 @@ export default {
},
mounted() {
this.rowDrop()
this.$nextTick(() => {
this.tableHeight = document.documentElement.clientHeight - this.$refs.searchCard.$el.offsetHeight - 230 + 'px'
console.log('tableHeight', this.tableHeight)
})
},
methods: {
rowDrop() {
@ -501,7 +512,7 @@ export default {
return this.$message.error(res.msg)
} else {
this.tableData = res.data
this.total = res.data.total
this.total = res.data.length
}
})
.catch(() => {

Loading…
Cancel
Save