删除多余文件
This commit is contained in:
		| @@ -57,7 +57,7 @@ | ||||
| import { mapState } from 'vuex' | ||||
|  | ||||
| export default { | ||||
|  appName: '社区管理', | ||||
|   appName: '社区管理', | ||||
|   data() { | ||||
|     return { | ||||
|       areaId: '', | ||||
|   | ||||
| @@ -1,210 +0,0 @@ | ||||
| <template> | ||||
|   <div class="AddSet"> | ||||
|     <div class="contents"> | ||||
|       <u-form :model="forms" ref="uForm" label-width="auto" :border-bottom="false"> | ||||
|         <u-form-item label="事项分组" prop="title" required :border-bottom="false" right-icon="arrow-right"> | ||||
|           <u-input v-model="forms.title" placeholder="请输入事项分组" /> | ||||
|         </u-form-item> | ||||
|         <u-form-item label="类别" prop="status" required :border-bottom="false"> </u-form-item> | ||||
|         <div class="remove-item"> | ||||
|           <img src="./components/img/remove-icon.png" alt="" /> | ||||
|           <div class="input"> | ||||
|             <u-input v-model="forms.status" placeholder="请输入" /> | ||||
|           </div> | ||||
|         </div> | ||||
|         <div class="remove-item"> | ||||
|           <img src="./components/img/add-icon.png" alt="" /> | ||||
|           <div class="input color-2270F1">添加分类</div> | ||||
|         </div> | ||||
|       </u-form> | ||||
|     </div> | ||||
|  | ||||
|     <!-- <div class="btn" @click="submit">保存</div> --> | ||||
|     <div class="footer"> | ||||
|       <div class="remove">删除</div> | ||||
|       <div class="confirm" @click="submit">保存</div> | ||||
|     </div> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   name: 'AddSet', | ||||
|   components: {}, | ||||
|   props: {}, | ||||
|   data() { | ||||
|     return { | ||||
|       forms: { | ||||
|         status: '', | ||||
|         content: '', | ||||
|         fileIds: [], | ||||
|       }, | ||||
|       flag: false, | ||||
|       show: false, | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     submit() { | ||||
|       if (this.flag) return | ||||
|  | ||||
|       this.$refs.uForm.validate((valid) => { | ||||
|         if (valid) { | ||||
|           if (!this.forms.title) { | ||||
|             return this.$u.toast('请输入事项分组') | ||||
|           } | ||||
|  | ||||
|           const imgs = [] | ||||
|           if (this.forms.fileIds) { | ||||
|             this.forms.fileIds.map((e) => { | ||||
|               imgs.push({ url: e.url, id: e.id }) | ||||
|             }) | ||||
|           } | ||||
|  | ||||
|           this.flag = true | ||||
|           this.$http | ||||
|             .post(`/app/appclapeventgroup/addOrUpdate`, { | ||||
|               title: this.forms.title, | ||||
|               content: this.forms.content, | ||||
|               // images: JSON.stringify(imgs) || [], | ||||
|               images: imgs || [], | ||||
|  | ||||
|               people: this.forms.people, | ||||
|               phone: this.forms.phone, | ||||
|               id: this.id, | ||||
|             }) | ||||
|             .then((res) => { | ||||
|               if (res.code == 0) { | ||||
|                 this.$u.toast('发布成功') | ||||
|                 this.flag = false | ||||
|                 uni.navigateTo({ url: `./AppHandSnapshot` }) | ||||
|               } | ||||
|             }) | ||||
|         } else { | ||||
|           this.$u.toast('失败') | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|   }, | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
| .AddSet { | ||||
|   height: 100%; | ||||
|   .contents { | ||||
|     ::v-deep .u-form { | ||||
|       .u-form-item { | ||||
|         padding: 0 45px !important; | ||||
|         .u-form-item__body { | ||||
|           .u-form-item--right__content__slot { | ||||
|             padding-bottom: 0; | ||||
|             .u-input { | ||||
|               text-align: right !important; | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .u-form-item:first-child { | ||||
|         .u-form-item__body { | ||||
|           border-bottom: 1px solid #ddd; | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .line { | ||||
|         height: 24px; | ||||
|         background: #f3f6f9; | ||||
|       } | ||||
|  | ||||
|       .contents { | ||||
|         padding-bottom: 20px !important; | ||||
|         .u-form-item__body { | ||||
|           .u-form-item--right__content__slot { | ||||
|             .u-input { | ||||
|               text-align: left !important; | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .avatars { | ||||
|         padding-bottom: 20px !important; | ||||
|         .u-form-item__body { | ||||
|           .default { | ||||
|             width: 160px; | ||||
|             height: 160px; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   .remove-item { | ||||
|     padding: 42px 0 42px 32px; | ||||
|     box-sizing: border-box; | ||||
|     background-color: #fff; | ||||
|     img { | ||||
|       width: 36px; | ||||
|       height: 36px; | ||||
|       margin-right: 12px; | ||||
|       vertical-align: middle; | ||||
|     } | ||||
|     .input { | ||||
|       display: inline-block; | ||||
|       width: calc(100% - 48px); | ||||
|       height: 36px; | ||||
|       line-height: 36px; | ||||
|     } | ||||
|     .color-2270F1 { | ||||
|       color: #2270f1; | ||||
|       font-size: 30px; | ||||
|       font-family: PingFangSC-Regular, PingFang SC; | ||||
|       line-height: 42px; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   .btn { | ||||
|     position: fixed; | ||||
|     bottom: 0; | ||||
|     width: 100%; | ||||
|     box-sizing: border-box; | ||||
|     background: #3975c6; | ||||
|     padding: 34px 0; | ||||
|     text-align: center; | ||||
|     font-size: 32px; | ||||
|     font-weight: 500; | ||||
|     color: #ffffff; | ||||
|   } | ||||
|  | ||||
|   .footer { | ||||
|     position: fixed; | ||||
|     bottom: 0; | ||||
|     width: 100%; | ||||
|     box-sizing: border-box; | ||||
|     background: #fff; | ||||
|     padding: 32px; | ||||
|     display: flex; | ||||
|     justify-content: space-between; | ||||
|     div { | ||||
|       height: 92px; | ||||
|       line-height: 92px; | ||||
|       box-sizing: border-box; | ||||
|       text-align: center; | ||||
|       border-radius: 8px; | ||||
|       font-size: 34px; | ||||
|       font-family: PingFangSC-Medium, PingFang SC; | ||||
|       font-weight: 500; | ||||
|     } | ||||
|     .remove { | ||||
|       flex: 1; | ||||
|       border: 1px solid #f46; | ||||
|       color: #f46; | ||||
|       margin-right: 32px; | ||||
|     } | ||||
|     .confirm { | ||||
|       flex: 2; | ||||
|       background: #3975c6; | ||||
|       color: #fff; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
| @@ -1,154 +1,287 @@ | ||||
| <template> | ||||
|   <div class="AppWishfulThinking"> | ||||
|     <component v-if="refresh && isGridMember" :is="component" @change="onChange" :params="params"/> | ||||
|     <!-- <div class="tabs" v-if="isTab && isGridMember"> | ||||
|       <div class="item" @click="tabClick(index, item.component)" v-for="(item, index) in tabs" :key="index"> | ||||
|         <img :src="tabIndex == index ? item.activeImg : item.img" alt=""/> | ||||
|         <p :class="tabIndex == index ? 'color-3267F0' : ''">{{ item.text }}</p> | ||||
|   <div class="list"> | ||||
|     <AiTopFixed> | ||||
|       <u-tabs :list="tabList" :is-scroll="false" :current="currentTabs" height="96" bg-color="#3975C6" inactive-color="#fff" active-color="#fff" | ||||
|               @change="change"></u-tabs> | ||||
|       <div class="select-top"> | ||||
|         <div class="tab-item"> | ||||
|           <!-- <AiPagePicker type="gird" v-model="searchGrid" @change="confirm" valueObj nodeKey="id" formType="2"> | ||||
|             <AiMore v-model="searchGrid.girdName" icon="arrow-down" placeholder="所属网格"/> | ||||
|           </AiPagePicker> --> | ||||
|           <AiAreaPicker v-model="areaId" :areaId="user.areaId" @select="areaSelect" :name.sync="areaName" selectRoot> | ||||
|             <span class="label" v-if="areaName">{{ areaName }}</span> | ||||
|             <span v-else>所在地区</span> | ||||
|             <u-icon name="arrow-down" color="#666" size="24" style="margin-left: 4px" /> | ||||
|           </AiAreaPicker> | ||||
|         </div> | ||||
|         <div class="tab-item" @click="showType = true"> | ||||
|           <AiMore v-model="eventStatusText" icon="arrow-down" placeholder="办件状态"/> | ||||
|         </div> | ||||
|         <u-select v-model="showType" :list="listType" value-name="dictValue" label-name="dictName" @confirm="confirm"></u-select> | ||||
|       </div> | ||||
|     </div> --> | ||||
|     <!-- <div v-if="!isGridMember" class="empty"> | ||||
|       <img src="./components/img/no-admin.png" alt=""> | ||||
|       <p>没有网格员权限<br/>无法查看随手拍信息哦~</p> | ||||
|     </div> --> | ||||
|     </AiTopFixed> | ||||
|     <template> | ||||
|       <AiCard v-for="(item, i) in datas" :key="i" @click.native="goDetail(item, 1)"> | ||||
|         <template #custom> | ||||
|           <div class="card-top"> | ||||
|             <div class="titles">{{ item.content }}</div> | ||||
|  | ||||
|             <div class="types"> | ||||
|               <span>事件类型</span> | ||||
|               <span class="types-right">{{ item.groupName }}</span> | ||||
|             </div> | ||||
|  | ||||
|             <div class="gards"> | ||||
|               <span>所属网格</span> | ||||
|               <span class="gards-right">{{ item.girdName }}</span> | ||||
|             </div> | ||||
|           </div> | ||||
|  | ||||
|           <div class="status" :class="item.eventStatus == 0 ? 'status0' : item.eventStatus == 1 ? 'status1' : item.eventStatus == 2 ? 'status2' : 'status3'" | ||||
|                v-if="item.eventStatus"> | ||||
|             <span class="icon"></span> | ||||
|             <span> | ||||
|               {{ $dict.getLabel('clapEventStatus', item.eventStatus) }} | ||||
|             </span> | ||||
|           </div> | ||||
|         </template> | ||||
|       </AiCard> | ||||
|       <AiEmpty v-if="!datas.length"></AiEmpty> | ||||
|     </template> | ||||
|     <div class="pad-b120" v-if="datas.length"></div> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import List from './List.vue' | ||||
| import Statistics from './Statistics.vue' | ||||
| import Set from './Set.vue' | ||||
| import {mapState} from 'vuex' | ||||
|  | ||||
| export default { | ||||
|   name: 'AppWishfulThinking', | ||||
|   appName: '微心愿', | ||||
|   data() { | ||||
|     return { | ||||
|       component: 'List', | ||||
|       params: {}, | ||||
|       refresh: true, | ||||
|       tabIndex: 0, | ||||
|       tabs: [ | ||||
|       datas: [], | ||||
|       tabList: [ | ||||
|         { | ||||
|           img: require('./components/img/handle-icon.png'), | ||||
|           activeImg: require('./components/img/handle-icon-active.png'), | ||||
|           text: '办理', | ||||
|           component: 'List', | ||||
|           name: '全部待办', | ||||
|         }, | ||||
|         { | ||||
|           name: '办件历史', | ||||
|         }, | ||||
|         // { | ||||
|         //   img: require('./components/img/statistics-icon.png'), | ||||
|         //   activeImg: require('./components/img/statistics-icon-active.png'), | ||||
|         //   text: '统计', | ||||
|         //   component: 'Statistics', | ||||
|         // }, | ||||
|         // { | ||||
|         //   img: require('./components/img/set-icon.png'), | ||||
|         //   activeImg: require('./components/img/set-icon-active.png'), | ||||
|         //   text: '配置', | ||||
|         //   component: 'Set' | ||||
|         // } | ||||
|       ], | ||||
|       isTab: true, | ||||
|       currentTabs: 0, | ||||
|       current: 1, | ||||
|       pages: 0, | ||||
|       searchGrid: {}, | ||||
|       showType: false, | ||||
|       eventStatus: '', | ||||
|       eventStatusText: '', | ||||
|       areaId: '', | ||||
|       areaName: '' | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     ...mapState(['user']), | ||||
|     isGridMember() { | ||||
|       return this.user.girdCheckType > 0 | ||||
|     listType() { | ||||
|       return this.$dict.getDict(this.currentTabs == 0 ? 'clapEventStatusAll' : 'clapEventStatusHistory') | ||||
|     } | ||||
|   }, | ||||
|   components: { | ||||
|     List, | ||||
|     Statistics, | ||||
|     Set, | ||||
|   }, | ||||
|   onLoad() { | ||||
|     uni.$on('nextList', () => { | ||||
|       this.current++ | ||||
|       this.getList() | ||||
|     }) | ||||
|     uni.$on('getListInit', () => { | ||||
|       this.current = 1 | ||||
|       this.getList() | ||||
|     }) | ||||
|  | ||||
|   methods: { | ||||
|     onChange(e) { | ||||
|       this.params = e.params | ||||
|       this.component = e.type | ||||
|     }, | ||||
|     tabClick(index, component) { | ||||
|       this.tabIndex = index | ||||
|       this.component = component | ||||
|       this.refresh = false | ||||
|       this.$nextTick(() => { | ||||
|         this.refresh = true | ||||
|       }) | ||||
|     } | ||||
|   }, | ||||
|   onShow() { | ||||
|     document.title = '随手拍' | ||||
|     uni.$on('hideTab', () => { | ||||
|       this.isTab = false | ||||
|     }) | ||||
|     uni.$on('showTab', () => { | ||||
|       this.isTab = true | ||||
|     }) | ||||
|  | ||||
|     document.title = '微心愿' | ||||
|   }, | ||||
|   onReachBottom() { | ||||
|     if (!this.tabIndex) { | ||||
|       uni.$emit('nextList') | ||||
|     } | ||||
|   created() { | ||||
|     this.$dict.load('clapEventStatus', 'clapEventStatusAll', 'clapEventStatusHistory').then(() => { | ||||
|       this.getList() | ||||
|     }) | ||||
|   }, | ||||
|   methods: { | ||||
|     areaSelect(e) { | ||||
|       this.areaId = e | ||||
|       // this.getList() | ||||
|     }, | ||||
|     getList() { | ||||
|       let {current, eventStatus, searchGrid: {id: girdId}} = this | ||||
|       this.$http.post(`/app/appclapeventinfo/listByGirdMember`, null, { | ||||
|         params: { | ||||
|           size: 10, | ||||
|           current, searchType: this.currentTabs == 1 ? '1' : '0', | ||||
|           eventStatus, girdId | ||||
|         }, | ||||
|       }) | ||||
|       .then((res) => { | ||||
|         if (res.code == 0) { | ||||
|           this.datas = this.current > 1 ? [...this.datas, ...res.data.records] : res.data.records | ||||
|           this.pages = res.data.pages | ||||
|           this.$forceUpdate() | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|     confirm(e) { | ||||
|       if (this.showType) { | ||||
|         this.eventStatus = e[0].value | ||||
|         this.eventStatusText = e[0].label | ||||
|       } | ||||
|       this.current = 1 | ||||
|       this.getList() | ||||
|     }, | ||||
|  | ||||
|     goDetail(item) { | ||||
|       uni.navigateTo({url: `./Detail?id=${item.id}`}) | ||||
|     }, | ||||
|  | ||||
|     change(index) { | ||||
|       this.current = 1 | ||||
|       this.datas = [] | ||||
|       this.eventStatus = '' | ||||
|       this.currentTabs = index | ||||
|       this.getList() | ||||
|     }, | ||||
|  | ||||
|     linkTo(url) { | ||||
|       uni.navigateTo({url}) | ||||
|     }, | ||||
|   }, | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
| .AppWishfulThinking { | ||||
| <style scoped lang="scss"> | ||||
| .list { | ||||
|   height: 100%; | ||||
| } | ||||
|   padding: 0; | ||||
|   width: 100vw; | ||||
|  | ||||
| .tabs { | ||||
|   width: 100%; | ||||
|   height: 98px; | ||||
|   background: #fff; | ||||
|   border-top: 1px solid #ddd; | ||||
|   position: fixed; | ||||
|   bottom: 0; | ||||
|   left: 0; | ||||
|   display: flex; | ||||
|   .select-top { | ||||
|     background: #fff; | ||||
|     display: flex; | ||||
|     padding: 24px 0; | ||||
|  | ||||
|   .item { | ||||
|     flex: 1; | ||||
|     text-align: center; | ||||
|     .tab-item { | ||||
|       flex: 1; | ||||
|       text-align: center; | ||||
|       line-height: 48px; | ||||
|       font-size: 26px; | ||||
|       font-family: PingFangSC-Regular, PingFang SC; | ||||
|       color: #666; | ||||
|  | ||||
|     img { | ||||
|       width: 56px; | ||||
|       height: 56px; | ||||
|       margin-top: 8px; | ||||
|       img { | ||||
|         width: 32px; | ||||
|         height: 32px; | ||||
|         margin-left: 8px; | ||||
|         vertical-align: middle; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     p { | ||||
|       font-size: 22px; | ||||
|       font-family: PingFangSC-Medium, PingFang SC; | ||||
|       font-weight: 500; | ||||
|       color: #c4cad4; | ||||
|       line-height: 8px; | ||||
|     } | ||||
|  | ||||
|     .color-3267F0 { | ||||
|       color: #3267f0; | ||||
|     .tab-item:nth-of-type(1) { | ||||
|       border-right: 1px solid #eee; | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| .empty { | ||||
|   text-align: center; | ||||
|  | ||||
|   img { | ||||
|     width: 282px; | ||||
|     height: 306px; | ||||
|     margin: 136px auto 0; | ||||
|   ::v-deep .AiTopFixed .content { | ||||
|     padding: 0; | ||||
|   } | ||||
|  | ||||
|   p { | ||||
|     font-size: 28px; | ||||
|     font-family: PingFangSC-Regular, PingFang SC; | ||||
|     color: #999; | ||||
|     line-height: 40px; | ||||
|   ::v-deep .AiCard { | ||||
|     background: #f3f6f9; | ||||
|     padding: 24px 40px 0 32px; | ||||
|  | ||||
|     .start { | ||||
|       background: #fff; | ||||
|       border-radius: 16px; | ||||
|  | ||||
|       .card-top { | ||||
|         padding: 32px; | ||||
|  | ||||
|         .titles { | ||||
|           margin-bottom: 34px; | ||||
|           font-size: 32px; | ||||
|           font-weight: 500; | ||||
|           color: #333333; | ||||
|           line-height: 1.4; | ||||
|           word-break: break-all; | ||||
|           overflow: hidden; | ||||
|           text-overflow: ellipsis; | ||||
|           display: -webkit-box; | ||||
|           -webkit-line-clamp: 2; | ||||
|           -webkit-box-orient: vertical; | ||||
|         } | ||||
|  | ||||
|         .types, | ||||
|         .gards { | ||||
|           margin-top: 8px; | ||||
|           font-size: 26px; | ||||
|  | ||||
|           .types-right, | ||||
|           .gards-right { | ||||
|             margin-left: 32px; | ||||
|             color: #333333; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .status { | ||||
|         padding: 32px; | ||||
|         border-top: 1px solid #dddddd; | ||||
|  | ||||
|         .icon { | ||||
|           display: inline-block; | ||||
|           width: 8px; | ||||
|           height: 8px; | ||||
|           vertical-align: middle; | ||||
|           margin-right: 8px; | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .status0 { | ||||
|         color: #ff883c; | ||||
|  | ||||
|         .icon { | ||||
|           background: #ff883c; | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .status1 { | ||||
|         color: #1aaaff; | ||||
|  | ||||
|         .icon { | ||||
|           background: #1aaaff; | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .status2 { | ||||
|         color: #42d784; | ||||
|  | ||||
|         .icon { | ||||
|           background: #42d784; | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .status3 { | ||||
|         color: #ff4466; | ||||
|  | ||||
|         .icon { | ||||
|           background: #ff4466; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   // ::v-deep .AiCard:last-child { | ||||
|   //   padding-bottom: 24px; | ||||
|   // } | ||||
|   .pad-b120 { | ||||
|     background-color: #f3f6f9; | ||||
|     padding-bottom: 120px; | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -1,287 +0,0 @@ | ||||
| <template> | ||||
|   <div class="list"> | ||||
|     <AiTopFixed> | ||||
|       <u-tabs :list="tabList" :is-scroll="false" :current="currentTabs" height="96" bg-color="#3975C6" inactive-color="#fff" active-color="#fff" | ||||
|               @change="change"></u-tabs> | ||||
|       <div class="select-top"> | ||||
|         <div class="tab-item"> | ||||
|           <!-- <AiPagePicker type="gird" v-model="searchGrid" @change="confirm" valueObj nodeKey="id" formType="2"> | ||||
|             <AiMore v-model="searchGrid.girdName" icon="arrow-down" placeholder="所属网格"/> | ||||
|           </AiPagePicker> --> | ||||
|           <AiAreaPicker v-model="areaId" :areaId="user.areaId" @select="areaSelect" :name.sync="areaName" selectRoot> | ||||
|             <span class="label" v-if="areaName">{{ areaName }}</span> | ||||
|             <span v-else>所在地区</span> | ||||
|             <u-icon name="arrow-down" color="#666" size="24" style="margin-left: 4px" /> | ||||
|           </AiAreaPicker> | ||||
|         </div> | ||||
|         <div class="tab-item" @click="showType = true"> | ||||
|           <AiMore v-model="eventStatusText" icon="arrow-down" placeholder="办件状态"/> | ||||
|         </div> | ||||
|         <u-select v-model="showType" :list="listType" value-name="dictValue" label-name="dictName" @confirm="confirm"></u-select> | ||||
|       </div> | ||||
|     </AiTopFixed> | ||||
|     <template> | ||||
|       <AiCard v-for="(item, i) in datas" :key="i" @click.native="goDetail(item, 1)"> | ||||
|         <template #custom> | ||||
|           <div class="card-top"> | ||||
|             <div class="titles">{{ item.content }}</div> | ||||
|  | ||||
|             <div class="types"> | ||||
|               <span>事件类型</span> | ||||
|               <span class="types-right">{{ item.groupName }}</span> | ||||
|             </div> | ||||
|  | ||||
|             <div class="gards"> | ||||
|               <span>所属网格</span> | ||||
|               <span class="gards-right">{{ item.girdName }}</span> | ||||
|             </div> | ||||
|           </div> | ||||
|  | ||||
|           <div class="status" :class="item.eventStatus == 0 ? 'status0' : item.eventStatus == 1 ? 'status1' : item.eventStatus == 2 ? 'status2' : 'status3'" | ||||
|                v-if="item.eventStatus"> | ||||
|             <span class="icon"></span> | ||||
|             <span> | ||||
|               {{ $dict.getLabel('clapEventStatus', item.eventStatus) }} | ||||
|             </span> | ||||
|           </div> | ||||
|         </template> | ||||
|       </AiCard> | ||||
|       <AiEmpty v-if="!datas.length"></AiEmpty> | ||||
|     </template> | ||||
|     <div class="pad-b120" v-if="datas.length"></div> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import {mapState} from 'vuex' | ||||
|  | ||||
| export default { | ||||
|   props: {}, | ||||
|   data() { | ||||
|     return { | ||||
|       datas: [], | ||||
|       tabList: [ | ||||
|         { | ||||
|           name: '全部待办', | ||||
|         }, | ||||
|         { | ||||
|           name: '办件历史', | ||||
|         }, | ||||
|       ], | ||||
|       currentTabs: 0, | ||||
|       current: 1, | ||||
|       pages: 0, | ||||
|       searchGrid: {}, | ||||
|       showType: false, | ||||
|       eventStatus: '', | ||||
|       eventStatusText: '', | ||||
|       areaId: '', | ||||
|       areaName: '' | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     ...mapState(['user']), | ||||
|     listType() { | ||||
|       return this.$dict.getDict(this.currentTabs == 0 ? 'clapEventStatusAll' : 'clapEventStatusHistory') | ||||
|     } | ||||
|   }, | ||||
|   onLoad() { | ||||
|     uni.$on('nextList', () => { | ||||
|       this.current++ | ||||
|       this.getList() | ||||
|     }) | ||||
|     uni.$on('getListInit', () => { | ||||
|       this.current = 1 | ||||
|       this.getList() | ||||
|     }) | ||||
|  | ||||
|   }, | ||||
|   onShow() { | ||||
|     document.title = '微心愿' | ||||
|   }, | ||||
|   created() { | ||||
|     this.$dict.load('clapEventStatus', 'clapEventStatusAll', 'clapEventStatusHistory').then(() => { | ||||
|       this.getList() | ||||
|     }) | ||||
|   }, | ||||
|   methods: { | ||||
|     areaSelect(e) { | ||||
|       this.areaId = e | ||||
|       // this.getList() | ||||
|     }, | ||||
|     getList() { | ||||
|       let {current, eventStatus, searchGrid: {id: girdId}} = this | ||||
|       this.$http.post(`/app/appclapeventinfo/listByGirdMember`, null, { | ||||
|         params: { | ||||
|           size: 10, | ||||
|           current, searchType: this.currentTabs == 1 ? '1' : '0', | ||||
|           eventStatus, girdId | ||||
|         }, | ||||
|       }) | ||||
|       .then((res) => { | ||||
|         if (res.code == 0) { | ||||
|           this.datas = this.current > 1 ? [...this.datas, ...res.data.records] : res.data.records | ||||
|           this.pages = res.data.pages | ||||
|           this.$forceUpdate() | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|     confirm(e) { | ||||
|       if (this.showType) { | ||||
|         this.eventStatus = e[0].value | ||||
|         this.eventStatusText = e[0].label | ||||
|       } | ||||
|       this.current = 1 | ||||
|       this.getList() | ||||
|     }, | ||||
|  | ||||
|     goDetail(item) { | ||||
|       uni.navigateTo({url: `./Detail?id=${item.id}`}) | ||||
|     }, | ||||
|  | ||||
|     change(index) { | ||||
|       this.current = 1 | ||||
|       this.datas = [] | ||||
|       this.eventStatus = '' | ||||
|       this.currentTabs = index | ||||
|       this.getList() | ||||
|     }, | ||||
|  | ||||
|     linkTo(url) { | ||||
|       uni.navigateTo({url}) | ||||
|     }, | ||||
|   }, | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
| .list { | ||||
|   height: 100%; | ||||
|   padding: 0; | ||||
|   width: 100vw; | ||||
|  | ||||
|   .select-top { | ||||
|     background: #fff; | ||||
|     display: flex; | ||||
|     padding: 24px 0; | ||||
|  | ||||
|     .tab-item { | ||||
|       flex: 1; | ||||
|       text-align: center; | ||||
|       line-height: 48px; | ||||
|       font-size: 26px; | ||||
|       font-family: PingFangSC-Regular, PingFang SC; | ||||
|       color: #666; | ||||
|  | ||||
|       img { | ||||
|         width: 32px; | ||||
|         height: 32px; | ||||
|         margin-left: 8px; | ||||
|         vertical-align: middle; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     .tab-item:nth-of-type(1) { | ||||
|       border-right: 1px solid #eee; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   ::v-deep .AiTopFixed .content { | ||||
|     padding: 0; | ||||
|   } | ||||
|  | ||||
|   ::v-deep .AiCard { | ||||
|     background: #f3f6f9; | ||||
|     padding: 24px 40px 0 32px; | ||||
|  | ||||
|     .start { | ||||
|       background: #fff; | ||||
|       border-radius: 16px; | ||||
|  | ||||
|       .card-top { | ||||
|         padding: 32px; | ||||
|  | ||||
|         .titles { | ||||
|           margin-bottom: 34px; | ||||
|           font-size: 32px; | ||||
|           font-weight: 500; | ||||
|           color: #333333; | ||||
|           line-height: 1.4; | ||||
|           word-break: break-all; | ||||
|           overflow: hidden; | ||||
|           text-overflow: ellipsis; | ||||
|           display: -webkit-box; | ||||
|           -webkit-line-clamp: 2; | ||||
|           -webkit-box-orient: vertical; | ||||
|         } | ||||
|  | ||||
|         .types, | ||||
|         .gards { | ||||
|           margin-top: 8px; | ||||
|           font-size: 26px; | ||||
|  | ||||
|           .types-right, | ||||
|           .gards-right { | ||||
|             margin-left: 32px; | ||||
|             color: #333333; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .status { | ||||
|         padding: 32px; | ||||
|         border-top: 1px solid #dddddd; | ||||
|  | ||||
|         .icon { | ||||
|           display: inline-block; | ||||
|           width: 8px; | ||||
|           height: 8px; | ||||
|           vertical-align: middle; | ||||
|           margin-right: 8px; | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .status0 { | ||||
|         color: #ff883c; | ||||
|  | ||||
|         .icon { | ||||
|           background: #ff883c; | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .status1 { | ||||
|         color: #1aaaff; | ||||
|  | ||||
|         .icon { | ||||
|           background: #1aaaff; | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .status2 { | ||||
|         color: #42d784; | ||||
|  | ||||
|         .icon { | ||||
|           background: #42d784; | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .status3 { | ||||
|         color: #ff4466; | ||||
|  | ||||
|         .icon { | ||||
|           background: #ff4466; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   // ::v-deep .AiCard:last-child { | ||||
|   //   padding-bottom: 24px; | ||||
|   // } | ||||
|   .pad-b120 { | ||||
|     background-color: #f3f6f9; | ||||
|     padding-bottom: 120px; | ||||
|   } | ||||
| } | ||||
| </style> | ||||
| @@ -1,211 +0,0 @@ | ||||
| <template> | ||||
|   <div class="PercentageDetail"> | ||||
|     <div class="header"> | ||||
|       <div class="left"> | ||||
|         <h2>小区管理</h2> | ||||
|         <p>共21条,已办结18条</p> | ||||
|       </div> | ||||
|       <div class="right"> | ||||
|         <h4>86%</h4> | ||||
|         <p>办结率</p> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="info-content"> | ||||
|       <div class="title">分类统计</div> | ||||
|       <div class="percentage"> | ||||
|         <div class="item"> | ||||
|           <div class="mini-title">小区管理</div> | ||||
|           <div class="info"> | ||||
|             <div class="line-bg"><div class="active-bg"></div></div>共11条 | 已办结9 | ||||
|           </div> | ||||
|         </div> | ||||
|         <div class="item"> | ||||
|           <div class="mini-title">小区管理</div> | ||||
|           <div class="info"> | ||||
|             <div class="line-bg" style="width:44%;"><div class="active-bg"></div></div>共11条 | 已办结9 | ||||
|           </div> | ||||
|         </div> | ||||
|         <div class="item"> | ||||
|           <div class="mini-title">小区管理</div> | ||||
|           <div class="info"> | ||||
|             <div class="line-bg" style="width:30%;"><div class="active-bg"></div></div>共11条 | 已办结9 | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   props: {}, | ||||
|   data() { | ||||
|     return { | ||||
|       contents: [ | ||||
|         { | ||||
|           label: '待受理', | ||||
|           num: 5 | ||||
|         }, | ||||
|         { | ||||
|           label: '办理中', | ||||
|           num: 5 | ||||
|         }, | ||||
|         { | ||||
|           label: '今日上报', | ||||
|           num: 5 | ||||
|         }, | ||||
|         { | ||||
|           label: '今日办结', | ||||
|           num: 5 | ||||
|         } | ||||
|       ] | ||||
|     } | ||||
|   }, | ||||
|   onLoad() { | ||||
|  | ||||
|   }, | ||||
|   onShow() {}, | ||||
|   methods: { | ||||
|     getList() { | ||||
|       this.$http | ||||
|         .post('/app/appvisitvondolence/list', null, { | ||||
|           params: { | ||||
|             size: this.size, | ||||
|             current: this.current, | ||||
|             createUserId: this.currentTabs == 1 ? this.user.id : '', | ||||
|           }, | ||||
|         }) | ||||
|         .then((res) => { | ||||
|           if (res.code == 0) { | ||||
|             this.datas = this.current > 1 ? [...this.datas, ...res.data.records] : res.data.records | ||||
|             this.pages = res.data.pages | ||||
|           } | ||||
|         }) | ||||
|     }, | ||||
|  | ||||
|     goDetail(item) { | ||||
|       uni.navigateTo({ url: `./Detail?id=${item.id}` }) | ||||
|     }, | ||||
|  | ||||
|     change(index) { | ||||
|       this.currentTabs = index | ||||
|       this.getList() | ||||
|     }, | ||||
|   }, | ||||
|   onReachBottom() { | ||||
|     this.current = this.current + 1 | ||||
|     this.getList() | ||||
|   }, | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
| .PercentageDetail { | ||||
|   background-color: #F3F7F8; | ||||
|   padding: 32px 30px 0; | ||||
|   .header{ | ||||
|     width: 100%; | ||||
|     background: #FFF; | ||||
|     border-radius: 16px; | ||||
|     margin-bottom: 30px; | ||||
|     display: flex; | ||||
|     padding: 32px 32px 38px 24px; | ||||
|     box-sizing: border-box; | ||||
|     .left{ | ||||
|       width: calc(100% - 112px); | ||||
|       h2{ | ||||
|         font-size: 42px; | ||||
|         font-family: PingFangSC-Regular, PingFang SC; | ||||
|         font-weight: 400; | ||||
|         color: #333; | ||||
|         line-height: 48px; | ||||
|         margin-bottom: 16px; | ||||
|       } | ||||
|       p{ | ||||
|         font-size: 30px; | ||||
|         font-family: PingFangSC-Regular, PingFang SC; | ||||
|         color: #999; | ||||
|         line-height: 42px; | ||||
|       } | ||||
|     } | ||||
|     .right{ | ||||
|       width: 112px; | ||||
|       background: #E6FFF1; | ||||
|       border-radius: 8px; | ||||
|       text-align: center; | ||||
|       color: #42D784; | ||||
|       h4{ | ||||
|         font-size: 36px; | ||||
|         font-family: DINAlternate-Bold, DINAlternate; | ||||
|         font-weight: bold; | ||||
|         line-height: 42px; | ||||
|         padding: 8px 0 4px 0; | ||||
|       } | ||||
|       p{ | ||||
|         font-size: 24px; | ||||
|         font-family: PingFangSC-Regular, PingFang SC; | ||||
|         line-height: 34px; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   .info-content{ | ||||
|     width: 100%; | ||||
|     background: #FFF; | ||||
|     border-radius: 16px; | ||||
|     margin-bottom: 24px; | ||||
|     .title{ | ||||
|       font-size: 32px; | ||||
|       font-family: PingFangSC-Regular, PingFang SC; | ||||
|       font-weight: 400; | ||||
|       color: #333; | ||||
|       line-height: 48px; | ||||
|       padding: 24px 16px 24px 24px; | ||||
|       img{ | ||||
|         float: right; | ||||
|         width: 40px; | ||||
|         height: 40px; | ||||
|       } | ||||
|     } | ||||
|     .percentage{ | ||||
|       padding: 16px 0 0 26px; | ||||
|       .item{ | ||||
|         width: 100%; | ||||
|         padding-bottom: 32px; | ||||
|         .mini-title{ | ||||
|           font-size: 30px; | ||||
|           font-family: PingFangSC-Regular, PingFang SC; | ||||
|           color: #333; | ||||
|           line-height: 48px; | ||||
|           margin-bottom: 14px; | ||||
|         } | ||||
|         .info{ | ||||
|           width: 100%; | ||||
|           font-size: 28px; | ||||
|           font-family: PingFangSC-Regular, PingFang SC; | ||||
|           color: #999; | ||||
|           line-height: 48px; | ||||
|           .line-bg{ | ||||
|             display: inline-block; | ||||
|             width: 56%; | ||||
|             height: 14px; | ||||
|             background: #D7D8D9; | ||||
|             border-radius: 8px; | ||||
|             margin-right: 12px; | ||||
|             .active-bg{ | ||||
|               width: 80%; | ||||
|               height: 100%; | ||||
|               background: #257FF1; | ||||
|               border-radius: 8px; | ||||
|             } | ||||
|           } | ||||
|           img{ | ||||
|             width: 32px; | ||||
|             height: 32px; | ||||
|             vertical-align: middle; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
| @@ -1,76 +0,0 @@ | ||||
| <template> | ||||
|   <div class="set"> | ||||
|     <div class="info-content" @click="toSetList"> | ||||
|       <img src="./components/img/setting-icon.png" alt="" class="set-icon"> | ||||
|       <div class="info"> | ||||
|         <h2>配置事件类别</h2> | ||||
|         <p>提交上报时选择事件类别,有助于管理上报和统计分析</p> | ||||
|       </div> | ||||
|       <img src="./components/img/right-icon.png" alt="" class="right-icon"> | ||||
|     </div> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   props: {}, | ||||
|   data() { | ||||
|     return { | ||||
|  | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     toSetList() { | ||||
|       uni.navigateTo({url: './SetList'}) | ||||
|     } | ||||
|   }, | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
| uni-page-body { | ||||
|   height: 100%; | ||||
| } | ||||
| .set { | ||||
|   height: 100%; | ||||
|   padding: 32px 30px 0; | ||||
|   box-sizing: border-box; | ||||
|   background-color: #F3F7F8; | ||||
|   .info-content{ | ||||
|     width: 100%; | ||||
|     background-color: #fff; | ||||
|     padding: 40px 8px 34px 40px; | ||||
|     box-sizing: border-box; | ||||
|     display: flex; | ||||
|     .set-icon{ | ||||
|       width: 40px; | ||||
|       height: 40px; | ||||
|       margin-right: 44px; | ||||
|     } | ||||
|     .info{ | ||||
|       display: inline-block; | ||||
|       width: calc(100% - 216px); | ||||
|       h2{ | ||||
|         font-size: 36px; | ||||
|         font-family: PingFangSC-Regular, PingFang SC; | ||||
|         color: #333; | ||||
|         line-height: 48px; | ||||
|         margin-bottom: 6px; | ||||
|       } | ||||
|       p{ | ||||
|         width: 100%; | ||||
|         font-size: 28px; | ||||
|         font-family: PingFangSC-Regular, PingFang SC; | ||||
|         color: #999; | ||||
|         line-height: 40px; | ||||
|         word-break: break-all; | ||||
|       } | ||||
|     } | ||||
|     .right-icon{ | ||||
|       width: 56px; | ||||
|       height: 56px; | ||||
|       margin-left: 76px; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
| @@ -1,122 +0,0 @@ | ||||
| <template> | ||||
|   <div class="SetList"> | ||||
|     <div class="header"> | ||||
|       <div class="title">事件类别</div> | ||||
|       <p>成员上报时需要选择事件类别,上报会按照分类进行统计。</p> | ||||
|     </div> | ||||
|     <div class="set-list"> | ||||
|       <div class="item"> | ||||
|         <div class="title">小区管理</div> | ||||
|         <div class="tips-list"> | ||||
|           <span class="tips">公共部位设置地桩锁</span> | ||||
|           <span class="tips">公共部位桩锁</span> | ||||
|           <span class="tips">地桩锁</span> | ||||
|           <span class="tips">公共部位设置地桩锁</span> | ||||
|           <span class="tips">公共部位桩锁</span> | ||||
|           <span class="tips">地桩锁</span> | ||||
|           <span class="tips">公共部位设置地桩锁</span> | ||||
|           <span class="tips">公共部位桩锁</span> | ||||
|           <span class="tips">地桩锁</span> | ||||
|         </div> | ||||
|         <img src="./components/img/right-icon.png" alt=""> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="btn" @click="toAddSet">新建分类</div> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   name: 'SetList', | ||||
|   components: {}, | ||||
|   props: { | ||||
|     dict: Object, | ||||
|     instance: Function, | ||||
|     params: Object, | ||||
|   }, | ||||
|   data() { | ||||
|     return {} | ||||
|   }, | ||||
|   methods: { | ||||
|     toAddSet() { | ||||
|       uni.navigateTo({url: './AddSet'}) | ||||
|     } | ||||
|   }, | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
| .SetList { | ||||
|   height: 100%; | ||||
|   background-color: #fff; | ||||
|   .header{ | ||||
|     padding: 40px 30px 74px; | ||||
|     .title{ | ||||
|       font-size: 42px; | ||||
|       font-family: PingFangSC-Regular, PingFang SC; | ||||
|       color: #333; | ||||
|       line-height: 48px; | ||||
|       margin-bottom: 16px; | ||||
|     } | ||||
|     p{ | ||||
|       width: 100%; | ||||
|       font-size: 30px; | ||||
|       font-family: PingFangSC-Regular, PingFang SC; | ||||
|       color: #999; | ||||
|       line-height: 42px; | ||||
|       word-break: break-all; | ||||
|     } | ||||
|   } | ||||
|   .set-list{ | ||||
|     padding: 0 28px 120px; | ||||
|     .item{ | ||||
|       width: 100%; | ||||
|       padding-bottom: 20px; | ||||
|       border-bottom: 1px solid #E9EAEB; | ||||
|       position: relative; | ||||
|       .title{ | ||||
|         font-size: 34px; | ||||
|         font-family: PingFangSC-Regular, PingFang SC; | ||||
|         color: #333; | ||||
|         line-height: 48px; | ||||
|         margin-bottom: 22px; | ||||
|       } | ||||
|       .tips-list{ | ||||
|         width: calc(100% - 68px); | ||||
|       } | ||||
|       .tips{ | ||||
|         display: inline-block; | ||||
|         line-height: 64px; | ||||
|         background: #F7F8F9; | ||||
|         border-radius: 8px; | ||||
|         padding: 0 20px; | ||||
|         font-size: 30px; | ||||
|         font-family: PingFangSC-Regular, PingFang SC; | ||||
|         color: #999; | ||||
|         margin: 0 16px 24px 0; | ||||
|       } | ||||
|       img{ | ||||
|         width: 40px; | ||||
|         height: 40px; | ||||
|         position: absolute; | ||||
|         top: 50%; | ||||
|         right: 20px; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   .btn{ | ||||
|     width: 100%; | ||||
|     line-height: 112px; | ||||
|     background: #3975C6; | ||||
|     box-shadow: inset 0px 1px 0px 0px #EEEEEE; | ||||
|     position: fixed; | ||||
|     bottom: 0; | ||||
|     left: 0; | ||||
|     text-align: center; | ||||
|     font-size: 32px; | ||||
|     font-family: PingFangSC-Medium, PingFang SC; | ||||
|     font-weight: 500; | ||||
|     color: #FFF; | ||||
|   } | ||||
| } | ||||
| </style> | ||||
| @@ -1,346 +0,0 @@ | ||||
| <template> | ||||
|   <div class="statistics" v-if="pageShow"> | ||||
|     <div class="info-content"> | ||||
|       <div class="title">今日概况</div> | ||||
|       <div class="el-row"> | ||||
|         <div class="item" v-for="(item, index) in todayList" :key="index"> | ||||
|           <h2>{{item.value}}</h2> | ||||
|           <p>{{item.label}}</p> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="info-content"> | ||||
|       <div class="title">业务透视</div> | ||||
|       <div class="business"> | ||||
|         <div class="left"> | ||||
|           <div class="item"> | ||||
|             <p>受理率</p> | ||||
|             <h2>{{info.businessCountMap['受理率'] || '0'}}%</h2> | ||||
|           </div> | ||||
|           <div class="item"> | ||||
|             <p>办结率</p> | ||||
|             <h2>{{info.businessCountMap['办结率'] || '0'}}%</h2> | ||||
|           </div> | ||||
|         </div> | ||||
|         <div class="right"> | ||||
|           <div class="img"> | ||||
|             <img src="./components/img/line-img.png" alt=""> | ||||
|             <img src="./components/img/line-img.png" alt=""> | ||||
|           </div> | ||||
|           <div class="num"> | ||||
|             <div class="item bg1"> | ||||
|               <h2>累计反馈</h2> | ||||
|               <p>{{info.businessCountMap['累计反馈'] || '0'}}</p> | ||||
|             </div> | ||||
|             <div class="item bg2"> | ||||
|               <h2>累计受理</h2> | ||||
|               <p>{{info.businessCountMap['累计受理'] || '0'}}</p> | ||||
|             </div> | ||||
|             <div class="item bg3"> | ||||
|               <h2>累计办理</h2> | ||||
|               <p>{{info.businessCountMap['累计办结'] || '0'}}</p> | ||||
|             </div> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="info-content"> | ||||
|       <div class="title" @click="toPercentageDetail">分类统计 | ||||
|         <!-- <img src="./components/img/right-icon.png" alt=""> --> | ||||
|       </div> | ||||
|       <div class="percentage"> | ||||
|         <div class="item" v-for="(item, index) in info.groupList" :key="index"> | ||||
|           <div class="mini-title">{{item.groupName}}</div> | ||||
|           <div class="info"> | ||||
|             <div class="line-bg" :style="`width:${item.width}%`" ><div class="active-bg" :style="`width:${item.percentage*100}%`"></div></div>共{{item.totalNum}}条 | 已办结{{item.finishNum}} | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|     <!-- <div class="info-content" @click="toUserList"> | ||||
|       <div class="title">成员明细 | ||||
|         <img src="./components/img/right-icon.png" alt=""> | ||||
|       </div> | ||||
|     </div> --> | ||||
|     <div class="pad-b120"></div> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   props: {}, | ||||
|   data() { | ||||
|     return { | ||||
|       todayList: [], | ||||
|       info: {}, | ||||
|       pageShow: false, | ||||
|       showSelect: false, | ||||
|       myGirdList: [], | ||||
|       girdName: '全部网格' | ||||
|     } | ||||
|   }, | ||||
|   mounted() { | ||||
|     this.girdList() | ||||
|     this.getStatistics() | ||||
|   }, | ||||
|   methods: { | ||||
|     getStatistics() { | ||||
|       this.$http.post('/app/appclapeventinfo/countByGirdMember').then((res) => { | ||||
|         if (res.code == 0) { | ||||
|           if(res.data.businessCountMap['受理率']) { | ||||
|             res.data.businessCountMap['受理率'] = Number(res.data.businessCountMap['受理率'] * 100).toFixed(1) | ||||
|           } | ||||
|           if(res.data.businessCountMap['办结率']) { | ||||
|             res.data.businessCountMap['办结率'] = Number(res.data.businessCountMap['办结率'] * 100).toFixed(1) | ||||
|           } | ||||
|           this.info = res.data | ||||
|  | ||||
|           Object.keys(res.data.todayCountMap).forEach((key) => { | ||||
|             var info = { | ||||
|               label: key, | ||||
|               value: res.data.todayCountMap[key] | ||||
|             } | ||||
|             this.todayList.push(info) | ||||
|           }) | ||||
|           if(this.info.groupList.length) { | ||||
|             this.info.groupList.map((item, index) => { | ||||
|               if(item.finishNum) { | ||||
|                 item.percentage = (item.finishNum/item.totalNum).toFixed(2) | ||||
|               }else { | ||||
|                 item.percentage = 0 | ||||
|               } | ||||
|               item.width = 56-(index*10) | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
|         this.pageShow = true | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|     goDetail(item) { | ||||
|       uni.navigateTo({ url: `./Detail?id=${item.id}` }) | ||||
|     }, | ||||
|  | ||||
|     change(index) { | ||||
|       this.currentTabs = index | ||||
|       this.getList() | ||||
|     }, | ||||
|  | ||||
|     toPercentageDetail() { | ||||
|       uni.navigateTo({url: './PercentageDetail'}) | ||||
|     }, | ||||
|     toUserList() { | ||||
|       uni.navigateTo({url: './UserList'}) | ||||
|     }, | ||||
|  | ||||
|     girdList() { | ||||
|       this.$http.post(`/app/appgirdmemberinfo/queryMyGirdList`, null, { | ||||
|         params: { | ||||
|           size: 9999, | ||||
|         }, | ||||
|       }) | ||||
|       .then((res) => { | ||||
|         if (res.code == 0) { | ||||
|           this.myGirdList = res.data | ||||
|           var all = { | ||||
|             id: '', | ||||
|             girdName: '全部' | ||||
|           } | ||||
|           this.myGirdList.unshift(all) | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     confirm(e) { | ||||
|  | ||||
|     } | ||||
|   }, | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
| .statistics { | ||||
|   background-color: #F3F7F8; | ||||
|   padding: 30px 30px 0; | ||||
|   .gird-select{ | ||||
|     width: 100%; | ||||
|     background: #FFF; | ||||
|     border-radius: 16px; | ||||
|     margin: 0 0 24px; | ||||
|     text-align: center; | ||||
|     padding: 24px 0; | ||||
|     img{ | ||||
|       width: 32px; | ||||
|       height: 32px; | ||||
|       vertical-align: middle; | ||||
|     } | ||||
|     span{ | ||||
|       display: inline-block; | ||||
|       font-size: 34px; | ||||
|       font-family: PingFangSC-Medium, PingFang SC; | ||||
|       font-weight: 500; | ||||
|       color: #333; | ||||
|       line-height: 48px; | ||||
|       margin: 0 10px; | ||||
|     } | ||||
|   } | ||||
|   .info-content{ | ||||
|     width: 100%; | ||||
|     background: #FFF; | ||||
|     border-radius: 16px; | ||||
|     margin-bottom: 24px; | ||||
|     .title{ | ||||
|       font-size: 32px; | ||||
|       font-family: PingFangSC-Regular, PingFang SC; | ||||
|       font-weight: 400; | ||||
|       color: #333; | ||||
|       line-height: 48px; | ||||
|       padding: 24px 16px 24px 24px; | ||||
|       img{ | ||||
|         float: right; | ||||
|         width: 40px; | ||||
|         height: 40px; | ||||
|       } | ||||
|     } | ||||
|     .el-row{ | ||||
|       display: flex; | ||||
|       padding: 32px 0 60px 0; | ||||
|       .item{ | ||||
|         flex: 1; | ||||
|         text-align: center; | ||||
|         h2{ | ||||
|           font-size: 64px; | ||||
|           font-family: DINAlternate-Bold, DINAlternate; | ||||
|           font-weight: bold; | ||||
|           color: #3B424A; | ||||
|           line-height: 64px; | ||||
|           margin-bottom: 8px; | ||||
|         } | ||||
|         p{ | ||||
|           font-size: 28px; | ||||
|           font-family: PingFangSC-Regular, PingFang SC; | ||||
|           color: #999; | ||||
|           line-height: 40px; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|     .business{ | ||||
|       display: flex; | ||||
|       padding: 40px 0 30px 0; | ||||
|       .left{ | ||||
|         width: 220px; | ||||
|         padding: 20px 0 78px 50px; | ||||
|         .item{ | ||||
|           margin-bottom: 58px; | ||||
|         } | ||||
|         h2{ | ||||
|           font-size: 58px; | ||||
|           font-family: DINAlternate-Bold, DINAlternate; | ||||
|           font-weight: bold; | ||||
|           color: #3B424A; | ||||
|           line-height: 64px; | ||||
|           letter-spacing: -4px; | ||||
|         } | ||||
|         p{ | ||||
|           font-size: 28px; | ||||
|           font-family: PingFangSC-Regular, PingFang SC; | ||||
|           color: #666; | ||||
|           line-height: 48px; | ||||
|         } | ||||
|       } | ||||
|       .right{ | ||||
|         width: calc(100% - 220px); | ||||
|         display: flex; | ||||
|         .img{ | ||||
|           width: 140px; | ||||
|           margin-top: 42px; | ||||
|           img{ | ||||
|             width: 140px; | ||||
|             height: 144px; | ||||
|             margin-bottom: 20px; | ||||
|           } | ||||
|         } | ||||
|         .num{ | ||||
|           width: calc(100% - 140px); | ||||
|           text-align: center; | ||||
|           .item{ | ||||
|             height: 130px; | ||||
|             border-radius: 6px; | ||||
|             background-size: 100% 100%; | ||||
|             margin-bottom: 4px; | ||||
|             color: #2F7EE5; | ||||
|             h2{ | ||||
|               font-size: 26px; | ||||
|               font-family: PingFangSC-Medium, PingFang SC; | ||||
|               font-weight: 500; | ||||
|               line-height: 48px; | ||||
|               padding-top: 20px; | ||||
|             } | ||||
|             p{ | ||||
|               font-size: 40px; | ||||
|               font-family: DINAlternate-Bold, DINAlternate; | ||||
|               font-weight: bold; | ||||
|             } | ||||
|           } | ||||
|           .bg1{ | ||||
|             width: 272px; | ||||
|             background-image: url('./components/img/bg-1.png'); | ||||
|           } | ||||
|           .bg2{ | ||||
|             width: 234px; | ||||
|             background-image: url('./components/img/bg-2.png'); | ||||
|             margin-left: 16px; | ||||
|           } | ||||
|           .bg3{ | ||||
|             width: 208px; | ||||
|             background-image: url('./components/img/bg-3.png'); | ||||
|             margin-left: 32px; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|     .percentage{ | ||||
|       padding: 16px 0 0 26px; | ||||
|       .item{ | ||||
|         width: 100%; | ||||
|         padding-bottom: 32px; | ||||
|         .mini-title{ | ||||
|           font-size: 30px; | ||||
|           font-family: PingFangSC-Regular, PingFang SC; | ||||
|           color: #333; | ||||
|           line-height: 48px; | ||||
|           margin-bottom: 14px; | ||||
|         } | ||||
|         .info{ | ||||
|           width: 100%; | ||||
|           font-size: 28px; | ||||
|           font-family: PingFangSC-Regular, PingFang SC; | ||||
|           color: #999; | ||||
|           line-height: 48px; | ||||
|           .line-bg{ | ||||
|             display: inline-block; | ||||
|             height: 14px; | ||||
|             background: #D7D8D9; | ||||
|             border-radius: 8px; | ||||
|             margin-right: 12px; | ||||
|             .active-bg{ | ||||
|               height: 100%; | ||||
|               background: #257FF1; | ||||
|               border-radius: 8px; | ||||
|               min-width: 1%; | ||||
|             } | ||||
|           } | ||||
|           img{ | ||||
|             width: 32px; | ||||
|             height: 32px; | ||||
|             vertical-align: middle; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   .pad-b120{ | ||||
|     background-color: #F3F7F8; | ||||
|     padding-bottom: 120px; | ||||
|   } | ||||
| } | ||||
| </style> | ||||
| @@ -1,60 +0,0 @@ | ||||
| <template> | ||||
|   <div class="UserList"> | ||||
|     <div class="item"> | ||||
|       <img src="./components/img/user-img.png" alt=""> | ||||
|       <div class="info"> | ||||
|         <h2>李毅</h2> | ||||
|         <p>共受理23条 | 已办结17条</p> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   name: 'UserList', | ||||
|   data() { | ||||
|     return { | ||||
|  | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|  | ||||
|   }, | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
| .UserList { | ||||
|   height: 100%; | ||||
|   .item{ | ||||
|     padding: 24px 0 0 32px; | ||||
|     background-color: #fff; | ||||
|     img{ | ||||
|       width: 80px; | ||||
|       height: 80px; | ||||
|       margin-right: 32px; | ||||
|     } | ||||
|     .info{ | ||||
|       display: inline-block; | ||||
|       width: calc(100% - 112px); | ||||
|       padding-bottom: 24px; | ||||
|       border-bottom: 1px solid #E4E5E6; | ||||
|       h2{ | ||||
|         font-size: 32px; | ||||
|         font-family: PingFangSC-Medium, PingFang SC; | ||||
|         font-weight: 500; | ||||
|         color: #333; | ||||
|         line-height: 44px; | ||||
|         margin-bottom: 6px; | ||||
|       } | ||||
|       p{ | ||||
|         font-size: 28px; | ||||
|         font-family: PingFangSC-Regular, PingFang SC; | ||||
|         color: #666; | ||||
|         line-height: 40px; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
		Reference in New Issue
	
	Block a user