Browse Source

小程序首页

master
jiangyuying 5 years ago
parent
commit
c35ea3e93e
  1. 4
      epmet-oper-web/.env.development
  2. 1
      epmet-oper-web/.env.production.sit
  3. 1
      epmet-oper-web/.env.production.uat
  4. 3
      epmet-oper-web/public/index.html
  5. BIN
      epmet-oper-web/src/assets/img/modules/wx-mini/index-set/heart-back.png
  6. BIN
      epmet-oper-web/src/assets/img/modules/wx-mini/index-set/heart-logo.png
  7. BIN
      epmet-oper-web/src/assets/img/modules/wx-mini/index-set/page/heart-banner.png
  8. BIN
      epmet-oper-web/src/assets/img/modules/wx-mini/index-set/page/score_rank_1.png
  9. BIN
      epmet-oper-web/src/assets/img/modules/wx-mini/index-set/page/score_rank_2.png
  10. BIN
      epmet-oper-web/src/assets/img/modules/wx-mini/index-set/page/score_rank_3.png
  11. 454
      epmet-oper-web/src/assets/scss/modules/wx-mini/index-set.scss
  12. 290
      epmet-oper-web/src/components/wx-index/cpt-item.vue
  13. 16
      epmet-oper-web/src/views/modules/code/CommitForm.vue
  14. 40
      epmet-oper-web/src/views/modules/code/CommitList.vue
  15. 22
      epmet-oper-web/src/views/modules/customer-manage/RegisterList.vue
  16. 271
      epmet-oper-web/src/views/modules/wx-mini/index-set.vue

4
epmet-oper-web/.env.development

@ -1,5 +1,5 @@
NODE_ENV=development
VUE_APP_API_SERVER = http://192.168.1.130:8080/api
# VUE_APP_API_SERVER = http://10.10.10.98:8080/api
# VUE_APP_API_SERVER = http://192.168.1.130:8080/api
VUE_APP_API_SERVER = http://10.10.10.98:8080/api
# VUE_APP_API_SERVER = https://epmet-dev.elinkservice.cn/api
VUE_APP_NODE_ENV=dev

1
epmet-oper-web/.env.production.sit

@ -1,2 +1,3 @@
NODE_ENV=production
VUE_APP_API_SERVER = http://192.168.1.130:8080/api
VUE_APP_NODE_ENV=prod:sit

1
epmet-oper-web/.env.production.uat

@ -1,2 +1,3 @@
NODE_ENV=production
VUE_APP_API_SERVER = https://epmet-dev.elinkservice.cn/api
VUE_APP_NODE_ENV=prod:uat

3
epmet-oper-web/public/index.html

@ -36,8 +36,9 @@
<!-- <script>window.SITE_CONFIG['apiURL'] = 'http://10.10.10.98:8080/api';</script> -->
<script>window.SITE_CONFIG['apiURL'] = 'http://192.168.1.130:8080/api';</script>
<!-- <script>window.SITE_CONFIG['apiURL'] = 'http://localhost:8080/api';</script> -->
<!-- <script>window.SITE_CONFIG['apiURL'] = 'https://epmet-dev.elinkservice.cn/api';</script> -->
<% } %>
<!-- 集成测试环境 dev -->
<!-- 集成测试环境 dev -->https://epmet-dev.elinkservice.cn/
<% if (process.env.VUE_APP_NODE_ENV === 'prod:sit') { %>
<script>window.SITE_CONFIG['apiURL'] = 'http://epmet-dev.elinkservice.cn:48080/api';</script>
<% } %>

BIN
epmet-oper-web/src/assets/img/modules/wx-mini/index-set/heart-back.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 919 B

BIN
epmet-oper-web/src/assets/img/modules/wx-mini/index-set/heart-logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
epmet-oper-web/src/assets/img/modules/wx-mini/index-set/page/heart-banner.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

BIN
epmet-oper-web/src/assets/img/modules/wx-mini/index-set/page/score_rank_1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
epmet-oper-web/src/assets/img/modules/wx-mini/index-set/page/score_rank_2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
epmet-oper-web/src/assets/img/modules/wx-mini/index-set/page/score_rank_3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

454
epmet-oper-web/src/assets/scss/modules/wx-mini/index-set.scss

@ -354,6 +354,79 @@
}
}
}
}
.mw-cpt-banner {
position: relative;
margin-top: 10px;
.d-cpt-wrap {
padding: 10px 10px 15px 10px;
background-color: rgba(233, 233, 233, 0.26);
.d-cpt-subwrap {
position: relative;
height: 160px;
border-radius: 10px;
overflow: hidden;
> img {
width: 100%;
height: 160px;
}
.d-title {
margin-top:1px;
position: absolute;
border-radius: 5px;
top: 0;
right: 0;
width:230px;
padding: 0 10px;
background: rgb(255, 255, 255);
overflow: hidden;
.left-log {
vertical-align: middle;
z-index: 10;
width: 15px;
margin-bottom:3px;
}
.s-title {
line-height: 21px;
margin-left:4px;
margin-bottom:3px;
font-size: 12px;
font-family: PingFang SC;
font-weight: 500;
color: rgb(0, 0, 0);
vertical-align: middle;
}
.d-group-no {
position: absolute;
right: 10px;
top: 3px;
width: 50px;
height: 28px;
vertical-align: middle;
text-align: center;
img {
position: absolute;
z-index: 10;
left: 0;
top: 0;
width: 50px;
}
span {
position: relative;
z-index: 20;
vertical-align: middle;
font-size: 7px;
color: rgba(255, 255, 255, 1);
}
}
}
}
}
}
.mw-cpt-new_msg {
@ -516,6 +589,264 @@
}
}
.item3 {
position: relative;
padding: 10px 0;
border-bottom: 1px solid #eee;
&:last-child {
border-bottom: none;
}
.d-news-title {
@include toe;
font-size: 17px;
font-family: PingFang SC;
font-weight: 500;
color: rgba(51, 51, 51, 1);
line-height: 24px;
}
.d-news-content {
@include toe;
padding: 3px 0;
font-size: 14px;
font-family: PingFang SC;
font-weight: 500;
color: rgba(51, 51, 51, 1);
line-height: 20px;
}
.d-news-info {
margin-top: 5px;
padding: 0 1px;
font-size: 13px;
line-height: 13px;
font-family: PingFang SC;
font-weight: 500;
color: rgba(153, 153, 153, 1);
overflow: hidden;
> img {
display: inline-block;
margin-right: 5px;
width: 13px;
vertical-align: bottom;
}
> span {
@include toe;
display: inline-block;
max-width: 70%;
vertical-align: bottom;
}
}
}
}
}
}
// 爱心互助最新活动
.mw-cpt-heart_news {
position: relative;
margin-top: 10px;
.d-cpt-wrap {
width: 355px;
margin: 0 auto;
border-radius: 5px;
overflow: hidden;
background: rgba(255, 255, 255, 1);
.d-cpt-title {
position: relative;
margin: 10px 10px 0 10px;
padding: 7px 10px 13px;
font-size: 17px;
line-height: 15px;
font-family: PingFang SC;
font-weight: bold;
color: rgba(51, 51, 51, 1);
border-bottom: 1px solid #e7eeee;
&::before {
content: "";
position: absolute;
top: 7px;
left: 0;
width: 3px;
height: 15px;
background: rgba(230, 0, 0, 1);
border-radius: 3px;
}
.more{
position: absolute;
top:13px;
right:10px;
font-size: 13px;
font-weight: normal;
color: rgb(151, 150, 150);
}
}
.list {
padding: 0 10px;
.item {
position: relative;
padding: 5px 0;
height: 140px;
padding-left: 110px;
border-bottom: 1px solid #eee;
&:last-child {
border-bottom: none;
}
> img {
position: absolute;
width: 110px;
height: 120px;
left: 0;
top: 11px;
border-radius: 5px;
}
.d-news-title {
margin-left:7px;
height: 40px;
font-size: 16px;
font-family: PingFang SC;
font-weight: 500;
color: rgba(51, 51, 51, 1);
line-height: 20px;
overflow: hidden;
}
.d-news-time {
margin: 0 0 5px 7px;
font-size: 12px;
font-family: PingFang SC;
font-weight: normal;
color: rgb(141, 141, 141);
line-height: 17px;
overflow: hidden;
display: flex;
.d-news-time-title{
height: 20px ;
display:flex ;
align-items:center;
>img{
margin-right:2px;
width: 12px;
vertical-align: bottom;
}
>span{
vertical-align: bottom;
}
}
.d-news-time-item{
font-size: 13px;
width: 60%;
color: rgb(141, 141, 141);
> span {
vertical-align: bottom;
}
}
}
.d-news-adress {
margin: 0 0 7px 7px;
height: 20px;
font-size: 12px;
font-family: PingFang SC;
font-weight: normal;
color: rgb(141, 141, 141);
line-height: 20px;
overflow: hidden;
display:flex ;
align-items:center;
> img {
display: inline-block;
margin-right: 2px;
width: 12px;
vertical-align: bottom;
}
> span {
display: inline-block;
height: 100%;
max-width: 80%;
vertical-align: bottom;
}
}
.d-news-state {
margin: 0 0 7px 7px;
height: 20px;
font-size: 13px;
font-family: PingFang SC;
font-weight: normal;
color: rgb(141, 141, 141);
line-height: 20px;
overflow: hidden;
.d-news-state-limit{
font-family: PingFang SC;
padding:3px 10px;
font-weight: 500;
background-color: rgb(170, 169, 169);
color: rgb(58, 58, 58);
border-radius: 90px;
}
.d-news-state-act{
margin-left:10px;
font-family: PingFang SC;
padding:3px 10px;
font-weight: 500;
background-color: rgb(255, 195, 195);
color: rgb(255, 38, 38);
border-radius: 90px;
}
}
}
.item2 {
position: relative;
padding: 10px 0;
border-bottom: 1px solid #eee;
&:last-child {
border-bottom: none;
}
.d-news-title {
@include toe;
font-size: 17px;
font-family: PingFang SC;
font-weight: 500;
color: rgba(51, 51, 51, 1);
line-height: 24px;
}
.d-news-content {
@include toe;
padding: 3px 0;
font-size: 14px;
font-family: PingFang SC;
font-weight: 500;
color: rgba(51, 51, 51, 1);
line-height: 20px;
}
.d-news-info {
margin-top: 5px;
padding: 0 1px;
font-size: 13px;
line-height: 26px;
font-family: PingFang SC;
font-weight: 500;
color: rgba(153, 153, 153, 1);
overflow: hidden;
> img {
display: inline-block;
margin-right: 5px;
width: 26px;
vertical-align: bottom;
}
> span {
@include toe;
display: inline-block;
max-width: 70%;
vertical-align: bottom;
}
}
}
.item3 {
position: relative;
padding: 10px 0;
@ -604,6 +935,127 @@
font-weight: 500;
color: rgba(51, 51, 51, 1);
}
}
}
}
}
// 积分银行积分排行
.mw-cpt-score_rank {
position: relative;
margin-top: 10px;
.d-cpt-wrap {
width: 100%;
// overflow-x: scroll;
overflow: hidden;
.d-cpt-title {
position: relative;
margin: 10px 10px 0 10px;
padding: 7px 10px 13px;
font-size: 17px;
line-height: 15px;
font-family: PingFang SC;
font-weight: bold;
color: rgba(51, 51, 51, 1);
border-bottom: 1px solid #e7eeee;
&::before {
content: "";
position: absolute;
top: 7px;
left: 0;
width: 3px;
height: 15px;
background: rgba(230, 0, 0, 1);
border-radius: 3px;
}
}
.rank_title{
margin:10px 20px;
display: flex;
.rank_title_total{
margin-right:20px;
width:33%;
font-size: 15px;
text-align: center;
font-family: PingFang SC;
padding:3px 10px;
font-weight: 500;
background-color: rgb(255, 21, 21);
color: rgb(255, 255, 255);
border-radius: 90px;
}
.rank_title_week{
width:33%;
margin-right:20px;
font-size: 15px;
text-align: center;
font-family: PingFang SC;
padding:3px 10px;
font-weight: 500;
background-color: rgb(255, 255, 255);
color: rgb(0, 0, 0);
border-radius: 90px;
border-color: rgb(139, 139, 139);
border-width: 1px;
border-style: solid;
}
.rank_title_month{
width:33%;
font-size: 15px;
text-align: center;
font-family: PingFang SC;
padding:3px 10px;
font-weight: 500;
background-color: rgb(255, 255, 255);
color: rgb(0, 0, 0);
border-radius: 90px;
border-color: rgb(139, 139, 139);
border-width: 1px;
border-style: solid;
}
}
.list {
width: 100%;
margin:10px 15px;
.item {
margin:8px 0;
padding:8px 0;
background-color: #ffffff;
width: 100%;
display:flex;
.logo {
width:10%;
height: 21px;
line-height: 21px;
text-align: center;
>img{
width: 25px;
}
>span{
font-size: 14px;
text-align: center;
}
}
.name {
width:70%;
z-index: 10;
vertical-align: bottom;
}
.score {
width:20%;
z-index: 20;
font-size: 14px;
font-family: PingFang SC;
font-weight: bold;
font-style: italic;
}
}
}
}
@ -778,6 +1230,6 @@
.d-operate {
padding: 20px 0;
text-align: right;
}
}
}
}

290
epmet-oper-web/src/components/wx-index/cpt-item.vue

@ -1,27 +1,37 @@
<template>
<div class="mw-cpt a-fade-in"
:ref="item.tempOnlyId"
:title="item.componentName"
:class="{'z-focused': isFocused}"
@click="focusCpt">
:ref="item.tempOnlyId"
:title="item.componentName"
:class="{'z-focused': isFocused}"
@click="focusCpt">
<!-- 最顶部标题组件 -->
<div class="mw-cpt-top_title"
v-if="item.componentFrontId==='resi-titleList-home-gridNameTitle'">
v-if="item.componentFrontId==='resi-titleList-home-gridNameTitle'">
<div class="d-cpt-wrap">
<img class="d-cpt-ico" v-if="item.demoData.ico" :src="item.demoData.ico">
<img class="d-cpt-ico" v-else src="@/assets/img/modules/wx-mini/index-set/page/dang.png">
<img class="d-cpt-ico"
v-if="item.demoData.ico"
:src="item.demoData.ico">
<img class="d-cpt-ico"
v-else
src="@/assets/img/modules/wx-mini/index-set/page/dang.png">
<span>{{ item.demoData.title }}</span>
<img class="d-cpt-avatar" v-if="item.demoData.avatar" :src="item.demoData.avatar">
<img class="d-cpt-avatar" v-else src="@/assets/img/modules/wx-mini/index-set/page/avatar-mini.png">
<img class="d-cpt-avatar"
v-if="item.demoData.avatar"
:src="item.demoData.avatar">
<img class="d-cpt-avatar"
v-else
src="@/assets/img/modules/wx-mini/index-set/page/avatar-mini.png">
</div>
</div>
<!-- 轮播图组件 -->
<div class="mw-cpt-swiper"
v-else-if="item.componentFrontId==='resi-topList-voice-hotNewsSwiper'">
v-else-if="item.componentFrontId==='resi-topList-voice-hotNewsSwiper'">
<div class="d-cpt-wrap">
<div class="d-cpt-subwrap">
<img v-if="item.demoData.pic" :src="item.demoData.pic">
<img v-else src="@/assets/img/modules/wx-mini/index-set/page/swiper-bg.png">
<img v-if="item.demoData.pic"
:src="item.demoData.pic">
<img v-else
src="@/assets/img/modules/wx-mini/index-set/page/swiper-bg.png">
<div>
<span>{{ item.demoData.title }}</span>
<i></i>
@ -34,22 +44,28 @@
</div>
<!-- 新消息组件 -->
<div class="mw-cpt-new_msg"
v-else-if="item.componentFrontId==='resi-floatingList-mine-newMessageButton'">
v-else-if="item.componentFrontId==='resi-floatingList-mine-newMessageButton'">
<div class="d-cpt-wrap">
<img v-if="item.demoData.ico" :src="item.demoData.ico">
<img v-else src="@/assets/img/modules/wx-mini/index-set/page/msg.png">
<img v-if="item.demoData.ico"
:src="item.demoData.ico">
<img v-else
src="@/assets/img/modules/wx-mini/index-set/page/msg.png">
<span>{{ item.demoData.text }}</span>
</div>
</div>
<!-- 党建声音组件 -->
<div class="mw-cpt-cnt_news"
v-else-if="item.componentFrontId==='resi-functionList-voice-newsList'">
v-else-if="item.componentFrontId==='resi-functionList-voice-newsList'">
<div class="d-cpt-wrap">
<div class="d-cpt-title">党建声音</div>
<div class="list">
<div class="item" :key="subindex" v-for="(subitem, subindex) in item.demoData.list">
<img v-if="subitem.pic" :src="subitem.pic">
<img v-else src="@/assets/img/modules/wx-mini/index-set/page/news-pic.png">
<div class="item"
:key="subindex"
v-for="(subitem, subindex) in item.demoData.list">
<img v-if="subitem.pic"
:src="subitem.pic">
<img v-else
src="@/assets/img/modules/wx-mini/index-set/page/news-pic.png">
<div class="d-news-title">{{ subitem.title }}</div>
<div class="d-news-info">
<img src="@/assets/img/modules/wx-mini/index-set/pavilion.png">
@ -61,17 +77,22 @@
</div>
</div>
<!-- 热点议题组件 -->
<div class="mw-cpt-cnt_news"
v-else-if="item.componentFrontId==='resi-functionList-hall-hotSubjectList'">
v-else-if="item.componentFrontId==='resi-functionList-hall-hotSubjectList'">
<div class="d-cpt-wrap">
<div class="d-cpt-title">热点议题</div>
<div class="list">
<div class="item2" :key="subindex" v-for="(subitem, subindex) in item.demoData.list">
<div class="item2"
:key="subindex"
v-for="(subitem, subindex) in item.demoData.list">
<div class="d-news-title">{{ subitem.title }}</div>
<div class="d-news-content">{{ subitem.content || '最热议题内容' }}</div>
<div class="d-news-info">
<img v-if="subitem.avatar" :src="subitem.avatar">
<img v-else src="@/assets/img/modules/wx-mini/index-set/page/avatar-mini.png">
<img v-if="subitem.avatar"
:src="subitem.avatar">
<img v-else
src="@/assets/img/modules/wx-mini/index-set/page/avatar-mini.png">
<span>来源{{ subitem.author }}</span>
<span class="f-fr">{{ subitem.date }}</span>
</div>
@ -79,18 +100,22 @@
</div>
</div>
</div>
<!-- 最新议题组件 -->
<div class="mw-cpt-cnt_news"
v-else-if="item.componentFrontId==='resi-functionList-hall-latestIssueList'">
v-else-if="item.componentFrontId==='resi-functionList-hall-latestIssueList'">
<div class="d-cpt-wrap">
<div class="d-cpt-title">最新议题</div>
<div class="list">
<div class="item2" :key="subindex" v-for="(subitem, subindex) in item.demoData.list">
<div class="item2"
:key="subindex"
v-for="(subitem, subindex) in item.demoData.list">
<div class="d-news-title">{{ subitem.title }}</div>
<div class="d-news-content">{{ subitem.content || '最新议题内容' }}</div>
<div class="d-news-info">
<img v-if="subitem.avatar" :src="subitem.avatar">
<img v-else src="@/assets/img/modules/wx-mini/index-set/page/avatar-mini.png">
<img v-if="subitem.avatar"
:src="subitem.avatar">
<img v-else
src="@/assets/img/modules/wx-mini/index-set/page/avatar-mini.png">
<span>来源{{ subitem.author }}</span>
<span class="f-fr">{{ subitem.date }}</span>
</div>
@ -98,13 +123,15 @@
</div>
</div>
</div>
<!-- 结案项目组件 -->
<div class="mw-cpt-cnt_news"
v-else-if="item.componentFrontId==='resi-functionList-hall-closedProjectList'">
v-else-if="item.componentFrontId==='resi-functionList-hall-closedProjectList'">
<div class="d-cpt-wrap">
<div class="d-cpt-title">结案项目</div>
<div class="list">
<div class="item3" :key="subindex" v-for="(subitem, subindex) in item.demoData.list">
<div class="item3"
:key="subindex"
v-for="(subitem, subindex) in item.demoData.list">
<div class="d-news-title">{{ subitem.title }}</div>
<div class="d-news-content">{{ subitem.content }}</div>
<div class="d-news-info">
@ -119,15 +146,22 @@
<!-- 中间菜单栏组件 -->
<div class="mw-cpt-cnt_menus"
v-else-if="item.componentFrontId==='resi-functionList-extend-moreFunctionIcons'">
v-else-if="item.componentFrontId==='resi-functionList-extend-moreFunctionIcons'">
<div class="d-cpt-wrap">
<div class="list">
<div class="item" :key="subindex" v-for="(subitem, subindex) in item.demoData.list">
<img v-if="subitem.ico" :src="subitem.ico">
<img v-else-if="subindex==0" src="@/assets/img/modules/wx-mini/index-set/page/menu-1.png">
<img v-else-if="subindex==1" src="@/assets/img/modules/wx-mini/index-set/page/menu-2.png">
<img v-else-if="subindex==2" src="@/assets/img/modules/wx-mini/index-set/page/menu-3.png">
<img v-else src="@/assets/img/modules/wx-mini/index-set/page/menu-4.png">
<div class="item"
:key="subindex"
v-for="(subitem, subindex) in item.demoData.list">
<img v-if="subitem.ico"
:src="subitem.ico">
<img v-else-if="subindex==0"
src="@/assets/img/modules/wx-mini/index-set/page/menu-1.png">
<img v-else-if="subindex==1"
src="@/assets/img/modules/wx-mini/index-set/page/menu-2.png">
<img v-else-if="subindex==2"
src="@/assets/img/modules/wx-mini/index-set/page/menu-3.png">
<img v-else
src="@/assets/img/modules/wx-mini/index-set/page/menu-4.png">
<p>{{ subitem.text }}</p>
</div>
</div>
@ -136,19 +170,26 @@
<!-- 群组件 -->
<div class="mw-cpt-cnt_groups"
v-else-if="item.componentFrontId==='resi-functionList-group-recommendGroupSlider'">
v-else-if="item.componentFrontId==='resi-functionList-group-recommendGroupSlider'">
<div class="d-cpt-wrap">
<div class="list">
<div class="item" :key="subindex" v-for="(subitem, subindex) in item.demoData.list">
<div class="item"
:key="subindex"
v-for="(subitem, subindex) in item.demoData.list">
<div class="d-group-no">
<img v-if="subitem.ico" :src="subitem.ico">
<img v-else-if="subindex === 0" src="@/assets/img/modules/wx-mini/index-set/page/qi.png">
<img v-else src="@/assets/img/modules/wx-mini/index-set/page/qi2.png">
<img v-if="subitem.ico"
:src="subitem.ico">
<img v-else-if="subindex === 0"
src="@/assets/img/modules/wx-mini/index-set/page/qi.png">
<img v-else
src="@/assets/img/modules/wx-mini/index-set/page/qi2.png">
<span>{{ subitem.no }}</span>
</div>
<div class="d-group-avatar">
<img v-if="subitem.avatar" :src="subitem.avatar">
<img v-else src="@/assets/img/modules/wx-mini/index-set/page/avatar.jpg">
<img v-if="subitem.avatar"
:src="subitem.avatar">
<img v-else
src="@/assets/img/modules/wx-mini/index-set/page/avatar.jpg">
</div>
<div class="d-group-name">{{ subitem.title }}</div>
<div class="d-group-info">
@ -164,8 +205,148 @@
</div>
</div>
<!-- 爱心互助banner组件 -->
<div class="mw-cpt-banner"
v-else-if="item.componentFrontId==='resi-functionList-heart-banner'">
<div class="d-cpt-wrap">
<div class="d-cpt-subwrap">
<img v-if="item.demoData.pic"
:src="item.demoData.pic">
<img v-else
src="@/assets/img/modules/wx-mini/index-set/page/heart-banner.png">
<div class="d-title">
<img class="left-log"
src="@/assets/img/modules/wx-mini/index-set/heart-logo.png">
<span class="s-title">{{ item.demoData.title }}</span>
<div class="d-group-no">
<img src="@/assets/img/modules/wx-mini/index-set/heart-back.png">
<span>{{'点击进入'}}</span>
</div>
</div>
</div>
</div>
</div>
<!-- 爱心互助最新活动组件 -->
<div class="mw-cpt-heart_news"
v-else-if="item.componentFrontId==='resi-functionList-heart-new'">
<div class="d-cpt-wrap">
<div class="d-cpt-title">最新活动
<div class="more">查看更多</div>
</div>
<div class="list">
<div class="item"
:key="subindex"
v-for="(subitem, subindex) in item.demoData.list">
<img v-if="subitem.pic"
:src="subitem.pic">
<img v-else
src="@/assets/img/modules/wx-mini/index-set/page/news-pic.png">
<div class="d-news-title">{{ subitem.title }}</div>
<div class="d-news-time">
<div class="d-news-time-title">
<img src="@/assets/img/modules/wx-mini/index-set/pavilion.png">
<span>活动时间</span>
</div>
<div class="d-news-time-item">
<span>{{ subitem.time1 }}</span>
<span>{{ subitem.time2 }}</span>
</div>
</div>
<div class="d-news-adress">
<img src="@/assets/img/modules/wx-mini/index-set/pavilion.png">
<span>活动地点{{ subitem.adress }}</span>
</div>
<div class="d-news-state">
<span class="d-news-state-limit">活动名额 12</span>
<span class="d-news-state-act">已报名 9</span>
</div>
</div>
</div>
</div>
</div>
<!-- 爱心互助历史回顾组件 -->
<div class="mw-cpt-heart_news"
v-else-if="item.componentFrontId==='resi-functionList-heart-history'">
<div class="d-cpt-wrap">
<div class="d-cpt-title">历史回顾
<div class="more">查看更多</div>
</div>
<div class="list">
<div class="item"
:key="subindex"
v-for="(subitem, subindex) in item.demoData.list">
<img v-if="subitem.pic"
:src="subitem.pic">
<img v-else
src="@/assets/img/modules/wx-mini/index-set/page/news-pic.png">
<div class="d-news-title">{{ subitem.title }}</div>
<div class="d-news-time">
<div class="d-news-time-title">
<img src="@/assets/img/modules/wx-mini/index-set/pavilion.png">
<span>活动时间</span>
</div>
<div class="d-news-time-item">
<span>{{ subitem.time1 }}</span>
<span>{{ subitem.time2 }}</span>
</div>
</div>
<div class="d-news-adress">
<img src="@/assets/img/modules/wx-mini/index-set/pavilion.png">
<span>活动地点{{ subitem.adress }}</span>
</div>
</div>
</div>
</div>
</div>
<!-- 积分银行积分排行组件 -->
<div class="mw-cpt-score_rank"
v-else-if="item.componentFrontId==='resi-functionList-score-rank'">
<div class="d-cpt-wrap">
<div class="d-cpt-title">积分排行榜</div>
<div class="rank_title">
<span class="rank_title_total">总排名</span>
<span class="rank_title_week">本周排名</span>
<span class="rank_title_month">本月排名</span>
</div>
<div class="list">
<div class="item"
:key="subindex"
v-for="(subitem, subindex) in item.demoData.list">
<div class="logo">
<img v-if="subitem.ico"
:src="subitem.ico">
<img v-else-if="subindex === 0"
src="@/assets/img/modules/wx-mini/index-set/page/score_rank_1.png">
<img v-else-if="subindex === 1"
src="@/assets/img/modules/wx-mini/index-set/page/score_rank_2.png">
<img v-else-if="subindex === 2"
src="@/assets/img/modules/wx-mini/index-set/page/score_rank_3.png">
<span v-else>{{ subitem.subindex }}</span>
</div>
<div class="name">{{ subitem.name }}</div>
<div class="score">{{ subitem.score }}</div>
</div>
</div>
</div>
</div>
<!-- 占位组件 -->
<div class="mw-cpt-placeholder" v-else>
<div class="mw-cpt-placeholder"
v-else>
<div class="d-cpt-wrap">
{{ item.componentName }}
</div>
@ -173,18 +354,23 @@
<!-- 操作区 -->
<div class="d-cpt-operate a-scale-in"
:class="{'z-small': item.region!=='functionList'}"
v-show="isFocused"
@click.stop>
<div class="d-cpt-btn" v-show="item.region==='functionList'" @click="changeCptDisplayOrder('up')">
:class="{'z-small': item.region!=='functionList'}"
v-show="isFocused"
@click.stop>
<div class="d-cpt-btn"
v-show="item.region==='functionList'"
@click="changeCptDisplayOrder('up')">
<img src="@/assets/img/modules/wx-mini/index-set/up.png">
<p>上移</p>
</div>
<div class="d-cpt-btn" @click="delCpt">
<div class="d-cpt-btn"
@click="delCpt">
<img src="@/assets/img/modules/wx-mini/index-set/del.png">
<p>删除</p>
</div>
<div class="d-cpt-btn" v-show="item.region==='functionList'" @click="changeCptDisplayOrder('down')">
<div class="d-cpt-btn"
v-show="item.region==='functionList'"
@click="changeCptDisplayOrder('down')">
<img src="@/assets/img/modules/wx-mini/index-set/down.png">
<p>下移</p>
</div>

16
epmet-oper-web/src/views/modules/code/CommitForm.vue

@ -60,9 +60,9 @@ import CTable from '@c/CTableNoPage'
import CDialog from '@c/CDialog'
import CForm from '@c/CForm'
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui'//Loading
import { Loading } from 'element-ui' // Loading
let loading//
let loading //
export default {
data () {
return {
@ -216,17 +216,17 @@ export default {
this.resetData()
this.diaVisible = false
},
//
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
//
endLoading () {
//clearTimeout(timer);
// clearTimeout(timer);
if (loading) {
loading.close()
}

40
epmet-oper-web/src/views/modules/code/CommitList.vue

@ -115,10 +115,13 @@ import SubmitForm from './SubmitForm'
import CommitForm from './CommitForm'
import OperHistory from './OperHistory'
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
let loading//
export default {
data () {
return {
loading: false,
//
tableParams: {
@ -366,15 +369,19 @@ export default {
const param = {
codeId: row.id
}
window.app.ajax.exportFilePost(url, param,
this.startLoading()
window.app.ajax.post(url, param,
(data, rspMsg) => {
// // eslint-disable-next-line
// debugger
this.endLoading()
if (data) {
// eslint-disable-next-line
// debugger
this.src = window.URL.createObjectURL(data.qrcode)
// console.log(data.qrcode)
this.src = data.qrcode
}
},
(rspMsg, data) => {
this.endLoading()
this.$message.error(rspMsg)
}, { headers: { 'Content-Type': 'image/jpeg' } })
},
@ -421,13 +428,14 @@ export default {
const customerUrl = '/third/pacustomer/registerbyauth'
// const customerUrl = 'https://nei.netease.com/api/apimock-v2/e3b1d0eb88e905f6c7ee559b2d6bb7ad/third/pacustomer/registerbyauth'
const param = {
initState: 1,
resiAuth: 1,
// initState: 1,
// resiAuth: 1,
workAuth: 1
}
this.startLoading()
await window.app.ajax.post(customerUrl, param,
(data, rspMsg) => {
this.endLoading()
if (data) {
let customerList = []
@ -444,8 +452,24 @@ export default {
}
},
(rspMsg, data) => {
this.endLoading()
this.$message.error(rspMsg)
})
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close()
}
}
}
}

22
epmet-oper-web/src/views/modules/customer-manage/RegisterList.vue

@ -38,10 +38,12 @@
<script>
import CTable from '@c/CTable'
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
let loading //
export default {
data () {
return {
loading: false,
dataForm: {
name: '' //
},
@ -168,16 +170,19 @@ export default {
},
//
init (row) {
this.startLoading()
const param = {
customerId: row.customerId
}
window.app.ajax.post(this.initUrl, param,
(data, rspMsg) => {
this.endLoading()
this.$message.success('初始化成功')
this.loadData()
// eslint-disable-next-line
},
(rspMsg, data) => {
this.endLoading()
this.$message.error(rspMsg)
})
},
@ -191,6 +196,21 @@ export default {
name: row.agencyName
}
})
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close()
}
}
}
}

271
epmet-oper-web/src/views/modules/wx-mini/index-set.vue

@ -1,58 +1,92 @@
<template>
<div>
<el-card v-show="step==1" shadow="never" class="aui-card--fill">
<el-table
v-loading="dataListLoading"
:data="dataList"
border
@selection-change="dataListSelectionChangeHandle"
@sort-change="dataListSortChangeHandle"
style="width: 100%;">
<el-table-column prop="customerName" label="客户名称" header-align="left" align="left"></el-table-column>
<el-table-column label="小程序首页配置" fixed="right" header-align="center" align="center" width="150">
<el-card v-show="step==1"
shadow="never"
class="aui-card--fill">
<el-table v-loading="dataListLoading"
:data="dataList"
border
@selection-change="dataListSelectionChangeHandle"
@sort-change="dataListSortChangeHandle"
style="width: 100%;">
<el-table-column prop="customerName"
label="客户名称"
header-align="left"
align="left"></el-table-column>
<el-table-column label="小程序首页配置"
fixed="right"
header-align="center"
align="center"
width="150">
<template slot-scope="scope">
<el-button type="text" size="small"
@click="startSetWxIndex(scope.row.customerId, scope.row.customerName, 0)">居民端</el-button>
<el-button type="text" size="small"
@click="startSetWxIndex(scope.row.customerId, scope.row.customerName, 1)">政府端</el-button>
<el-button type="text"
size="small"
@click="startSetWxIndex(scope.row.customerId, scope.row.customerName, 0)">居民端</el-button>
<el-button type="text"
size="small"
@click="startSetWxIndex(scope.row.customerId, scope.row.customerName, 1)">政府端</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
<div class="m-wx_index" v-show="step==2">
<div class="m-wx_index"
v-show="step==2">
<el-button type="default"
@click="toStep(1)">取消返回</el-button>
@click="toStep(1)">取消返回</el-button>
<el-button type="info"
@click="isInPreview = true">预览</el-button>
@click="isInPreview = true">预览</el-button>
<el-button type="success"
@click="save">保存</el-button>
@click="save">保存</el-button>
<el-button type="danger"
@click="publish">发布</el-button>
@click="publish">发布</el-button>
<span style="margin-left:20px; color:#aaa; font-size:13px">({{ wxIndex.customerName }} - {{ wxIndex.clientType===1 ? '政府端' : '居民端' }})</span>
<el-row class="wrap" :gutter="20">
<el-row class="wrap"
:gutter="20">
<el-col :span="5">
<h4>选择组件</h4>
<div class="mw-cpt_type">
<div class="d-function" v-show="item.componentList.length > 0" :key="item.functionId" v-for="item in cptTypeList">
<div class="d-info" @click="shiftCptTypeItemUnfold(item)">
<img v-if="item.functionName=='议事厅'" class="d-ico" src="@/assets/img/modules/wx-mini/index-set/function-cpt1.png">
<img v-else-if="item.functionName=='社群'" class="d-ico" src="@/assets/img/modules/wx-mini/index-set/function-cpt2.png">
<img v-else-if="item.functionName=='党建声音'" class="d-ico" src="@/assets/img/modules/wx-mini/index-set/function-cpt3.png">
<img v-else-if="item.functionName=='消息通知'" class="d-ico" src="@/assets/img/modules/wx-mini/index-set/function-cpt4.png">
<img v-else class="d-ico" src="@/assets/img/modules/wx-mini/index-set/common-cpt.png">
<div class="d-function"
v-show="item.componentList.length > 0"
:key="item.functionId"
v-for="item in cptTypeList">
<div class="d-info"
@click="shiftCptTypeItemUnfold(item)">
<img v-if="item.functionName=='议事厅'"
class="d-ico"
src="@/assets/img/modules/wx-mini/index-set/function-cpt1.png">
<img v-else-if="item.functionName=='社群'"
class="d-ico"
src="@/assets/img/modules/wx-mini/index-set/function-cpt2.png">
<img v-else-if="item.functionName=='党建声音'"
class="d-ico"
src="@/assets/img/modules/wx-mini/index-set/function-cpt3.png">
<img v-else-if="item.functionName=='消息通知'"
class="d-ico"
src="@/assets/img/modules/wx-mini/index-set/function-cpt4.png">
<img v-else
class="d-ico"
src="@/assets/img/modules/wx-mini/index-set/common-cpt.png">
<span class="d-name">{{ item.functionName }}</span>
<img class="d-arrow" :class="{'z-unfold': item.isUnfold}" src="@/assets/img/modules/wx-mini/index-set/arrow-down.png">
<img class="d-arrow"
:class="{'z-unfold': item.isUnfold}"
src="@/assets/img/modules/wx-mini/index-set/arrow-down.png">
</div>
<div class="d-list" v-show="item.isUnfold">
<div class="d-item" :key="cptItem.componentId" v-for="cptItem in item.componentList">
<div class="d-list"
v-show="item.isUnfold">
<div class="d-item"
:key="cptItem.componentId"
v-for="cptItem in item.componentList">
<span class="d-item-region">({{ getCptRegionName(checkCptRegion(cptItem)) }})</span>
<span class="d-item-name">{{ cptItem.componentName }}</span>
<span class="d-item-btn z-disabled" v-if="!checkCptReuse(cptItem) && checkExistCpt(cptItem)">已添加</span>
<span class="d-item-btn" v-else @click="beforeAddCpt(cptItem)">
<span class="d-item-btn z-disabled"
v-if="!checkCptReuse(cptItem) && checkExistCpt(cptItem)">已添加</span>
<span class="d-item-btn"
v-else
@click="beforeAddCpt(cptItem)">
<img src="@/assets/img/modules/wx-mini/index-set/add.png">
<span>添加</span>
</span>
@ -62,94 +96,129 @@
</div>
</el-col>
<el-col :span="13">
<div class="mw-show" :class="{'z-preview': isInPreview}">
<div v-show="isInPreview" class="mw-show-close">
<div class="mw-show"
:class="{'z-preview': isInPreview}">
<div v-show="isInPreview"
class="mw-show-close">
<el-button type="default"
@click="isInPreview = false" icon="el-icon-close" circle></el-button>
@click="isInPreview = false"
icon="el-icon-close"
circle></el-button>
</div>
<div class="mw-phone">
<img class="mw-phone-topbar" v-show="isInPreview" src="@/assets/img/modules/wx-mini/index-set/page/wx-top.png">
<img class="mw-phone-topbar"
v-show="isInPreview"
src="@/assets/img/modules/wx-mini/index-set/page/wx-top.png">
<div class="mw-phone-top" v-show="!isInPreview || topCptList.length>0" :class="{'z-none': !isInPreview}">
<div class="mw-phone-hint" v-show="!isInPreview" :class="{'z-out-left': topCptList.length>0}">{{ getCptRegionName('top') }}</div>
<div class="mw-phone-top"
v-show="!isInPreview || topCptList.length>0"
:class="{'z-none': !isInPreview}">
<div class="mw-phone-hint"
v-show="!isInPreview"
:class="{'z-out-left': topCptList.length>0}">{{ getCptRegionName('top') }}</div>
<cpt-item :item="item"
:key="item.tempOnlyId"
:is-focused="focusedCpt.tempOnlyId===item.tempOnlyId"
@del="delCpt"
@sort="changeCptDisplayOrder"
@focus="focusCpt"
v-for="item in topCptList"></cpt-item>
:key="item.tempOnlyId"
:is-focused="focusedCpt.tempOnlyId===item.tempOnlyId"
@del="delCpt"
@sort="changeCptDisplayOrder"
@focus="focusCpt"
v-for="item in topCptList"></cpt-item>
</div>
<div class="mw-phone-ban" v-show="!isInPreview || banCptList.length>0" :class="{'z-none': !isInPreview}">
<div class="mw-phone-hint" v-show="!isInPreview" :class="{'z-out-left': banCptList.length>0}">{{ getCptRegionName('ban') }}</div>
<div class="mw-phone-ban"
v-show="!isInPreview || banCptList.length>0"
:class="{'z-none': !isInPreview}">
<div class="mw-phone-hint"
v-show="!isInPreview"
:class="{'z-out-left': banCptList.length>0}">{{ getCptRegionName('ban') }}</div>
<cpt-item :item="item"
:key="item.tempOnlyId"
:is-focused="focusedCpt.tempOnlyId===item.tempOnlyId"
@del="delCpt"
@sort="changeCptDisplayOrder"
@focus="focusCpt"
v-for="item in banCptList"></cpt-item>
:key="item.tempOnlyId"
:is-focused="focusedCpt.tempOnlyId===item.tempOnlyId"
@del="delCpt"
@sort="changeCptDisplayOrder"
@focus="focusCpt"
v-for="item in banCptList"></cpt-item>
</div>
<div class="mw-phone-fixed" v-show="!isInPreview || fixedCptList.length>0" :class="{'z-none': !isInPreview}">
<div class="mw-phone-hint" v-show="!isInPreview" :class="{'z-out-down': fixedCptList.length>0}">{{ getCptRegionName('fixed') }}</div>
<div class="mw-phone-fixed"
v-show="!isInPreview || fixedCptList.length>0"
:class="{'z-none': !isInPreview}">
<div class="mw-phone-hint"
v-show="!isInPreview"
:class="{'z-out-down': fixedCptList.length>0}">{{ getCptRegionName('fixed') }}</div>
<cpt-item :item="item"
:key="item.tempOnlyId"
:is-focused="focusedCpt.tempOnlyId===item.tempOnlyId"
@del="delCpt"
@sort="changeCptDisplayOrder"
@focus="focusCpt"
v-for="item in fixedCptList"></cpt-item>
:key="item.tempOnlyId"
:is-focused="focusedCpt.tempOnlyId===item.tempOnlyId"
@del="delCpt"
@sort="changeCptDisplayOrder"
@focus="focusCpt"
v-for="item in fixedCptList"></cpt-item>
</div>
<div class="mw-phone-cnt" v-show="!isInPreview || cntCptList.length>0" :class="{'z-none': !isInPreview}">
<div class="mw-phone-hint" v-show="!isInPreview" :class="{'z-out-left': cntCptList.length>0}">{{ getCptRegionName('cnt') }}</div>
<div class="mw-phone-cnt"
v-show="!isInPreview || cntCptList.length>0"
:class="{'z-none': !isInPreview}">
<div class="mw-phone-hint"
v-show="!isInPreview"
:class="{'z-out-left': cntCptList.length>0}">{{ getCptRegionName('cnt') }}</div>
<cpt-item :item="item"
:key="item.tempOnlyId"
:is-focused="focusedCpt.tempOnlyId===item.tempOnlyId"
@del="delCpt"
@sort="changeCptDisplayOrder"
@focus="focusCpt"
v-for="item in cntCptList"></cpt-item>
:key="item.tempOnlyId"
:is-focused="focusedCpt.tempOnlyId===item.tempOnlyId"
@del="delCpt"
@sort="changeCptDisplayOrder"
@focus="focusCpt"
v-for="item in cntCptList"></cpt-item>
</div>
</div>
</div>
</el-col>
<el-col :span="6">
<transition v-show="focusedCpt.tempOnlyId" name="el-zoom-in-top">
<div class="mw-set el-zoom-in-top" v-if="focusedCpt.tempOnlyId">
<div class="d-set-head" @click="focusedCpt.demoIsUnfold = !focusedCpt.demoIsUnfold">
<span class="d-title">演示数据</span>
<img class="d-arrow"
:class="{'z-unfold': focusedCpt.demoIsUnfold}"
src="@/assets/img/modules/wx-mini/index-set/arrow-down.png">
</div>
<el-form v-show="focusedCpt.demoIsUnfold" ref="form">
<el-form-item>
<el-input type="textarea" v-model="focusedCpt.demoData"></el-input>
</el-form-item>
</el-form>
<transition v-show="focusedCpt.tempOnlyId"
name="el-zoom-in-top">
<div class="mw-set el-zoom-in-top"
v-if="focusedCpt.tempOnlyId">
<div class="d-set-head"
@click="focusedCpt.demoIsUnfold = !focusedCpt.demoIsUnfold">
<span class="d-title">演示数据</span>
<img class="d-arrow"
:class="{'z-unfold': focusedCpt.demoIsUnfold}"
src="@/assets/img/modules/wx-mini/index-set/arrow-down.png">
</div>
<el-form v-show="focusedCpt.demoIsUnfold"
ref="form">
<el-form-item>
<el-input type="textarea"
v-model="focusedCpt.demoData"></el-input>
</el-form-item>
</el-form>
<div class="d-set-head" @click="focusedCpt.confIsUnfold = !focusedCpt.confIsUnfold">
<span class="d-title">高级选项</span>
<img class="d-arrow"
:class="{'z-unfold': focusedCpt.confIsUnfold}"
src="@/assets/img/modules/wx-mini/index-set/arrow-down.png">
<div class="d-set-head"
@click="focusedCpt.confIsUnfold = !focusedCpt.confIsUnfold">
<span class="d-title">高级选项</span>
<img class="d-arrow"
:class="{'z-unfold': focusedCpt.confIsUnfold}"
src="@/assets/img/modules/wx-mini/index-set/arrow-down.png">
</div>
<el-form v-show="focusedCpt.confIsUnfold"
ref="form">
<el-form-item>
<el-input type="textarea"
v-model="focusedCpt.configuration"></el-input>
</el-form-item>
<div class="d-config-hint"
v-show="focusedCpt.configurationDescription">
<img src="@/assets/img/modules/wx-mini/index-set/info.png">
<span>{{ focusedCpt.configurationDescription }}</span>
</div>
<el-form v-show="focusedCpt.confIsUnfold" ref="form">
<el-form-item>
<el-input type="textarea" v-model="focusedCpt.configuration"></el-input>
</el-form-item>
<div class="d-config-hint" v-show="focusedCpt.configurationDescription">
<img src="@/assets/img/modules/wx-mini/index-set/info.png">
<span>{{ focusedCpt.configurationDescription }}</span>
</div>
</el-form>
</el-form>
<div class="d-operate">
<el-button type="default" size="small" round
@click="resetFocusedCptData">重置</el-button>
<el-button type="success" size="small" round
@click="saveFocusedCptData">保存</el-button>
</div>
<div class="d-operate">
<el-button type="default"
size="small"
round
@click="resetFocusedCptData">重置</el-button>
<el-button type="success"
size="small"
round
@click="saveFocusedCptData">保存</el-button>
</div>
</div>
</transition>
</el-col>

Loading…
Cancel
Save