Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
aixianling
2021-12-24 22:46:08 +08:00
15 changed files with 132 additions and 39 deletions

View File

@@ -1,21 +1,21 @@
<template> <template>
<div class="searchMap"> <div class="searchMap">
<div class="grid-input"> <div class="grid-input">
<img src="img/back-icon.png" alt="" class="back-icon" v-if="name && show" @click="show=false"> <img src="./img/back-icon.png" alt="" class="back-icon" v-if="name && show" @click="show=false">
<img src="img/search-icon.png" alt="" class="search-icon" v-else> <img src="./img/search-icon.png" alt="" class="search-icon" v-else>
<input type="text" class="input" placeholder="请输入姓名、房屋信息" v-model="name" maxlength="10" confirm-type="search" <input type="text" class="input" placeholder="请输入姓名、房屋信息" v-model="name" maxlength="10" confirm-type="search"
@confirm="search"/> @confirm="search"/>
<div class="clear-btn"> <div class="clear-btn">
<img src="img/del-icon.png" alt="" class="del-icon" v-if="name" @click="clear"> <img src="./img/del-icon.png" alt="" class="del-icon" v-if="name" @click="clear">
</div> </div>
<span class="search-btn" @click="search">搜索</span> <span class="search-btn" @click="search">搜索</span>
</div> </div>
<div class="search-list" v-if="show"> <div class="search-list" v-if="show">
<div class="title border"> <div class="title border">
<img src="img/search-icon.png" alt="" class="search-icon">{{ name }} <img src="./img/search-icon.png" alt="" class="search-icon">{{ name }}
</div> </div>
<div class="item border" v-for="(item, index) in buildList" :key="index" @click="getBuildingInfo(item)"> <div class="item border" v-for="(item, index) in buildList" :key="index" @click="getBuildingInfo(item)">
<img src="img/user-icon.png" alt="" class="search-icon user-icon"> <img src="./img/user-icon.png" alt="" class="search-icon user-icon">
<div class="item-content"> <div class="item-content">
<h3>{{ item.residentName }}</h3> <h3>{{ item.residentName }}</h3>
<p>{{ item.areaName || '' }}{{ item.createAddress }}</p> <p>{{ item.areaName || '' }}{{ item.createAddress }}</p>
@@ -23,7 +23,7 @@
</div> </div>
</div> </div>
<div class="build-btn" @click="toList()"> <div class="build-btn" @click="toList()">
<img src="img/build-icon.png" alt=""> 楼栋<br/>列表 <img src="./img/build-icon.png" alt=""> 楼栋<br/>列表
</div> </div>
<div class="map-content"> <div class="map-content">
<AiTMap v-if="areaId" :areaId="areaId" :map.sync="map" :lib.sync="lib" :ops="ops" <AiTMap v-if="areaId" :areaId="areaId" :map.sync="map" :lib.sync="lib" :ops="ops"

View File

@@ -1,7 +1,7 @@
<template> <template>
<div class="map"> <div class="map">
<div class="build-btn"> <div class="build-btn">
<img src="components/img/model-icon.png" alt="" @click="toDetail"> 楼栋<br/>模型 <img src="./components/img/model-icon.png" alt="" @click="toDetail"> 楼栋<br/>模型
</div> </div>
<div class="map-content"> <div class="map-content">
<AiTMap v-if="user.areaId" :areaId="user.areaId" :map.sync="map" :lib.sync="lib" :ops="ops" :libraries="['service', 'tools']"></AiTMap> <AiTMap v-if="user.areaId" :areaId="user.areaId" :map.sync="map" :lib.sync="lib" :ops="ops" :libraries="['service', 'tools']"></AiTMap>

View File

@@ -27,17 +27,21 @@
<div class="time-select"> <div class="time-select">
<span>{{item.name}}</span> <span>{{item.name}}</span>
<u-icon name="arrow-down" color="#333" size="16" /> <u-icon name="arrow-down" color="#333" size="16" />
<span class="edit-btn" @click="editClick(editText)">{{editText}}</span>
</div> </div>
<div class="img-list"> <div class="img-list">
<div class="img-item" v-for="(e, indexs) in item.list" :key="indexs"> <div class="img-item" v-for="(e, indexs) in item.list" :key="indexs">
<p>{{e.createUserName}} 上传</p> <p>{{e.createUserName}} 上传</p>
<img :src="e.url" alt="" @click.stop="previewImage(item.list, e.url)"> <img :src="e.url" alt="" @click.stop="previewImage(item.list, e.url)">
<span class="cir-icon" v-if="editText== '取消' && !e.isCheked" @click="checkImg(e, index, indexs)"></span>
<u-icon name="checkmark-circle-fill" color="#26f" size="54" class="del-icon" @click="delSelect(e, index, indexs)" v-if="editText== '取消' && e.isCheked"></u-icon>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="footer-btn" @click="uploadImg">上传图片</div> <div class="footer-btn" @click="uploadImg" v-if="editText == '编辑' ">上传图片</div>
<div class="footer-btn" @click="delConfirm" v-if="editText == '取消'">删除</div>
</div> </div>
</template> </template>
@@ -52,6 +56,8 @@ export default {
fileList: [], fileList: [],
numInfo: {}, numInfo: {},
params: {}, params: {},
editText: '编辑',
delIds: []
} }
}, },
computed: { ...mapState(['user']) }, computed: { ...mapState(['user']) },
@@ -66,6 +72,46 @@ export default {
}, },
methods: { methods: {
delConfirm() {
if(!this.delIds.length) {
return this.$u.toast('请先选中需要删除的照片')
}
var id = this.delIds.join(',')
this.$confirm('确定删除这些相片?').then(() => {
this.$http.post(`/app/appvillagepicturealbum/delete?ids=${id}`).then((res) => {
if (res.code == 0) {
this.$u.toast('删除成功!')
this.list = []
this.getList()
this.getStatistic()
this.editClick('取消')
uni.$emit('updateList')
}
})
})
},
editClick(text) {
this.editText = text == '编辑' ? '取消' : '编辑'
this.delIds = []
if(text == '取消' && this.delIds.length) {
this.list = []
this.getList()
}
},
checkImg(row, index, indexs) {
this.list[index].list[indexs].isCheked = true
this.delIds.push(row.id)
this.$forceUpdate()
},
delSelect(row, index, indexs) {
this.list[index].list[indexs].isCheked = false
this.delIds.map((item, i) => {
if(item == row.id) {
this.delIds.splice(i, 1)
}
})
this.$forceUpdate()
},
previewImage(images, img) { previewImage(images, img) {
uni.previewImage({ uni.previewImage({
urls: images.map(v => v.url), urls: images.map(v => v.url),
@@ -80,12 +126,17 @@ export default {
} }
}).then(res => { }).then(res => {
if (res.code == 0) { if (res.code == 0) {
this.list = Object.keys(res.data).map(v => { this.list = Object.keys(res.data).map(v => {
return { return {
name: v, name: v,
list: res.data[v] list: res.data[v]
} }
}) })
this.list.map((item) => {
item.list.map((e) => {
e.isCheked = false
})
})
} }
}) })
}, },
@@ -228,10 +279,23 @@ export default {
font-family: PingFangSC-Semibold, PingFang SC; font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600; font-weight: 600;
color: #333; color: #333;
position: relative;
span{ span{
display: inline-block; display: inline-block;
margin-right: 16px; margin-right: 16px;
} }
.edit-btn{
display: inline-block;
color: #26f;
font-weight: 400;
width: 200px;
text-align: right;
line-height: 88px;
position: absolute;
font-size: 32px;
right: 18px;
top: 20px;
}
} }
.img-list{ .img-list{
overflow: hidden; overflow: hidden;
@@ -256,6 +320,20 @@ export default {
color: #FFF; color: #FFF;
line-height: 36px; line-height: 36px;
} }
.del-icon{
position: absolute;
right: 0;
top: 0;
}
.cir-icon{
width: 40px;
height: 40px;
border-radius: 50%;
border: 4px solid #ccc;
position: absolute;
right: 0;
top: 0;
}
} }
} }
.footer-btn{ .footer-btn{

View File

@@ -9,13 +9,13 @@
</div> </div>
</div> </div>
<div class="right"> <div class="right">
<img src="img/edit-icon.png" alt="" @click="edit(item.id)"> <img src="./img/edit-icon.png" alt="" @click="edit(item.id)">
<img src="img/del-icon.png" alt="" @click="del(item)"> <img src="./img/del-icon.png" alt="" @click="del(item)">
</div> </div>
</div> </div>
</div> </div>
<div class="empty" v-else> <div class="empty" v-else>
<img src="img/empty.png" alt=""> <img src="./img/empty.png" alt="">
<p>您还未添加便民通讯录<br/>点击<span>新增按钮</span>试试吧</p> <p>您还未添加便民通讯录<br/>点击<span>新增按钮</span>试试吧</p>
</div> </div>
<div class="footer-btn" @click="edit('')">新增</div> <div class="footer-btn" @click="edit('')">新增</div>

View File

@@ -26,7 +26,7 @@
<div class="line"></div> <div class="line"></div>
<u-form-item label="地址" prop="address" :border-bottom="false" right-icon="arrow-right" class="addresss"> <u-form-item label="地址" prop="address" :border-bottom="false" class="addresss">
<u-input v-model="forms.address" placeholder="请输入地址" /> <u-input v-model="forms.address" placeholder="请输入地址" />
</u-form-item> </u-form-item>

View File

@@ -10,7 +10,7 @@
<span class="titlesContent">查看全部活动和本月新增</span> <span class="titlesContent">查看全部活动和本月新增</span>
</div> </div>
<img src="img/1.png" alt="" /> <img src="./img/1.png" alt="" />
</div> </div>
<div class="card" @click="toList(1)"> <div class="card" @click="toList(1)">
@@ -19,7 +19,7 @@
<span class="titlesContent">查看全部参与操办信息和本月新增</span> <span class="titlesContent">查看全部参与操办信息和本月新增</span>
</div> </div>
<img src="img/2.png" alt="" /> <img src="./img/2.png" alt="" />
</div> </div>
<div class="card" @click="toList(2)"> <div class="card" @click="toList(2)">
@@ -28,7 +28,7 @@
<span class="titlesContent">查看全部婚礼和本月新增</span> <span class="titlesContent">查看全部婚礼和本月新增</span>
</div> </div>
<img src="img/3.png" alt="" /> <img src="./img/3.png" alt="" />
</div> </div>
<div class="card" @click="toList(3)"> <div class="card" @click="toList(3)">
@@ -37,7 +37,7 @@
<span class="titlesContent">查看全部丧礼和本月新增</span> <span class="titlesContent">查看全部丧礼和本月新增</span>
</div> </div>
<img src="img/4.png" alt="" /> <img src="./img/4.png" alt="" />
</div> </div>
</div> </div>

View File

@@ -1,7 +1,7 @@
<template> <template>
<section class="AppOnlineAnswer"> <section class="AppOnlineAnswer">
<div class="page" v-if="list.length"> <div class="page" v-if="list.length">
<img src="static/img/answer-bg.png" alt="" class="bg-img"> <img src="./static/img/answer-bg.png" alt="" class="bg-img">
<div class="subject-content" v-if="!showAnwser"> <div class="subject-content" v-if="!showAnwser">
<div class="btn" v-if="showTopBtn" @click="confirm()">{{ topBtnText }}</div> <div class="btn" v-if="showTopBtn" @click="confirm()">{{ topBtnText }}</div>
<div class="bg-fff pad-b48"> <div class="bg-fff pad-b48">
@@ -18,8 +18,8 @@
<div v-if="list[index].type == 1"> <div v-if="list[index].type == 1">
<div class="item" v-for="(item, i) in list[index].items" :key="i" @click="itemClick(i)" <div class="item" v-for="(item, i) in list[index].items" :key="i" @click="itemClick(i)"
:class="{ 'item-click': clickIndex === i, 'item-success': showAnalysis && item.checked == 1, 'item-error': showAnalysis && clickIndex == i && item.checked == 0}"> :class="{ 'item-click': clickIndex === i, 'item-success': showAnalysis && item.checked == 1, 'item-error': showAnalysis && clickIndex == i && item.checked == 0}">
<img src="static/img/success-icon.png" alt="" v-if="showAnalysis && item.checked == 1"> <img src="./static/img/success-icon.png" alt="" v-if="showAnalysis && item.checked == 1">
<img src="static/img/error-icon.png" alt="" <img src="./static/img/error-icon.png" alt=""
v-if="showAnalysis && clickIndex == i && item.checked == 0"> v-if="showAnalysis && clickIndex == i && item.checked == 0">
{{ item.sort }} &nbsp;{{ item.content }} {{ item.sort }} &nbsp;{{ item.content }}
</div> </div>
@@ -28,8 +28,8 @@
<div v-if="list[index].type == 2"> <div v-if="list[index].type == 2">
<div class="item" v-for="(item, i) in list[index].items" :key="i" @click="itemClick(i)" <div class="item" v-for="(item, i) in list[index].items" :key="i" @click="itemClick(i)"
:class="{ 'item-click': item.isCheked, 'item-success': showAnalysis && item.checked == 1, 'item-error': showAnalysis && item.isCheked && item.checked == 0}"> :class="{ 'item-click': item.isCheked, 'item-success': showAnalysis && item.checked == 1, 'item-error': showAnalysis && item.isCheked && item.checked == 0}">
<img src="static/img/success-icon.png" alt="" v-if="showAnalysis && item.checked == 1"> <img src="./static/img/success-icon.png" alt="" v-if="showAnalysis && item.checked == 1">
<img src="static/img/error-icon.png" alt="" <img src="./static/img/error-icon.png" alt=""
v-if="showAnalysis && clickIndex == i && item.checked == 0"> v-if="showAnalysis && clickIndex == i && item.checked == 0">
{{ item.sort }} &nbsp;{{ item.content }} {{ item.sort }} &nbsp;{{ item.content }}
</div> </div>
@@ -54,7 +54,7 @@
</div> </div>
<div class="subject-content" v-else> <div class="subject-content" v-else>
<div class="bg-fff pad-b48"> <div class="bg-fff pad-b48">
<img src="static/img/answer-head.png" alt="" class="head-img"> <img src="./static/img/answer-head.png" alt="" class="head-img">
<div class="head-content"> <div class="head-content">
<p>本次答对题目数</p> <p>本次答对题目数</p>
<div>{{ resultInfo.right }}</div> <div>{{ resultInfo.right }}</div>
@@ -100,6 +100,9 @@ export default {
this.createdTime = Date.parse(new Date()) this.createdTime = Date.parse(new Date())
this.getList() this.getList()
}, },
onShow() {
document.title = '在线答题'
},
methods: { methods: {
itemClick(i) { itemClick(i) {
if (this.showAnalysis) return if (this.showAnalysis) return
@@ -209,7 +212,7 @@ export default {
this.showTopBtn = false this.showTopBtn = false
this.topBtnText = '' this.topBtnText = ''
this.showAnalysis = false this.showAnalysis = false
} },
}, },
}; };
</script> </script>

View File

@@ -27,13 +27,13 @@ export default {
{ {
name: '党员学习', name: '党员学习',
icon: require('./img/dyxx.png'), icon: require('./img/dyxx.png'),
url: '../party/AppPartyHistoryEducation/classroomList', url: '../AppPartyHistoryEducation/classroomList',
isBottom: true isBottom: true
}, },
{ {
name: '在线答题', name: '在线答题',
icon: require('./img/zxdt.png'), icon: require('./img/zxdt.png'),
url: '../party/AppOnlineAnswer/AppOnlineAnswer' url: '../AppOnlineAnswer/AppOnlineAnswer'
} }
], ],
headerBg: require('./img/header-bg.png'), headerBg: require('./img/header-bg.png'),

View File

@@ -84,6 +84,9 @@ export default {
this.getClassList() this.getClassList()
this.getKnowledgeList() this.getKnowledgeList()
}, },
onShow() {
document.title = '党员学习'
},
methods: { methods: {
getTodayList() { getTodayList() {
this.$http.post(`/app/apppartyeducation/list?style=2&size=1&status=1`).then((res) => { this.$http.post(`/app/apppartyeducation/list?style=2&size=1&status=1`).then((res) => {

View File

@@ -28,6 +28,9 @@ export default {
onLoad() { onLoad() {
this.getClassList() this.getClassList()
}, },
onShow() {
document.title = '党员学习'
},
methods: { methods: {
getClassList() { getClassList() {
if (this.current > this.pages) return; if (this.current > this.pages) return;

View File

@@ -51,6 +51,9 @@ export default {
this.getClassDetail() this.getClassDetail()
this.getVideoList() this.getVideoList()
}, },
onShow() {
document.title = '党员学习'
},
methods: { methods: {
change(index) { change(index) {
this.current = index; this.current = index;

View File

@@ -181,6 +181,9 @@ export default {
contactPerson: this.forms.contactPerson, contactPerson: this.forms.contactPerson,
contactPhone: this.forms.contactPhone, contactPhone: this.forms.contactPhone,
createUserName: this.user.name,
createUserId: this.user.id,
avatar: this.user.avatar,
id: this.id, id: this.id,
}) })
.then((res) => { .then((res) => {

View File

@@ -13,10 +13,10 @@
<div class="left-btn" :class="'status' + detail.status">{{ $dict.getLabel('villageActivityStatus', detail.status) }}</div> <div class="left-btn" :class="'status' + detail.status">{{ $dict.getLabel('villageActivityStatus', detail.status) }}</div>
</div> </div>
<div class="right"> <div class="right">
<img :src="user.avatar" alt="" v-if="user.avatar" /> <img :src="detail.avatar" alt="" v-if="detail.avatar" />
<img src="./user-img.png" alt="" v-else/> <img src="./user-img.png" alt="" v-else />
<span>{{ detail.contactPerson }}</span> <span v-if="detail.createUserName">{{ detail.createUserName }}</span>
</div> </div>
</div> </div>
@@ -99,7 +99,7 @@
</div> </div>
</div> </div>
<div class="fixedBtns" v-if="this.current == 0 && detail.status != 0 && this.createUserId == this.user.id" @click="toAdd">编辑活动</div> <div class="fixedBtns" v-if="this.current == 0 && detail.status == 0 && this.createUserId == this.user.id" @click="toAdd">编辑活动</div>
</div> </div>
<AiFixedBtn v-if="this.createUserId == this.user.id && this.timeNow * 1 - this.timeEnd * 1 < 24 * 60 * 60 * 1000"> <AiFixedBtn v-if="this.createUserId == this.user.id && this.timeNow * 1 - this.timeEnd * 1 < 24 * 60 * 60 * 1000">

View File

@@ -7,14 +7,14 @@
<div class="select-content"> <div class="select-content">
<div class="area-content"> <div class="area-content">
<AiAreaPicker :areaId="user.areaId" v-model="areaId" @select="areaSelect"> <AiAreaPicker :areaId="user.areaId" v-model="areaId" @select="areaSelect">
<img src="img/local-icon.png" alt=""> <img src="./img/local-icon.png" alt="">
<span class="label" v-if="areaName">{{ areaName }}</span> <span class="label" v-if="areaName">{{ areaName }}</span>
<span v-else>请选择</span> <span v-else>请选择</span>
<u-icon name="arrow-down" color="#666" size="24" /> <u-icon name="arrow-down" color="#666" size="24" />
</AiAreaPicker> </AiAreaPicker>
</div> </div>
<div class="search-input" v-if="tabIndex"> <div class="search-input" v-if="tabIndex">
<img src="img/search-icon.png" alt=""> <img src="./img/search-icon.png" alt="">
<u-input type="text" placeholder="请输入姓名" placeholder-style="color:#999;font-size:13px;" height="18" v-model="name" @confirm="getUserList" :clearable="false" maxlength="6" /> <u-input type="text" placeholder="请输入姓名" placeholder-style="color:#999;font-size:13px;" height="18" v-model="name" @confirm="getUserList" :clearable="false" maxlength="6" />
</div> </div>
</div> </div>
@@ -45,12 +45,12 @@
<div class="item-content" v-for="(item, index) in userList" :key="index"> <div class="item-content" v-for="(item, index) in userList" :key="index">
<div class="title" @click="showUserType(index)"> <div class="title" @click="showUserType(index)">
<h2>{{item.label}}</h2> <h2>{{item.label}}</h2>
<img src="img/down-icon.png" alt="" :class="item.check ? 'img-active' : ''"> <img src="./img/down-icon.png" alt="" :class="item.check ? 'img-active' : ''">
</div> </div>
<div class="user-list" v-if="item.check"> <div class="user-list" v-if="item.check">
<div class="user-item" v-for="(e, indexs) in item.value" :key="indexs" v-if="item.value && item.value.length"> <div class="user-item" v-for="(e, indexs) in item.value" :key="indexs" v-if="item.value && item.value.length">
<div class="user-img"> <div class="user-img">
<img src="img/user-img.png" alt=""> <img src="./img/user-img.png" alt="">
</div> </div>
<div class="user-info"> <div class="user-info">
<p class="name">{{e.name}}</p> <p class="name">{{e.name}}</p>

View File

@@ -9,7 +9,7 @@
</div> --> </div> -->
<div class="area-content"> <div class="area-content">
<AiAreaPicker :areaId="user.areaId" v-model="areaId" @select="areaSelect"> <AiAreaPicker :areaId="user.areaId" v-model="areaId" @select="areaSelect">
<img src="img/local-icon.png" alt=""> <img src="./img/local-icon.png" alt="">
<span class="label" v-if="areaName">{{ areaName }}</span> <span class="label" v-if="areaName">{{ areaName }}</span>
<span v-else>请选择</span> <span v-else>请选择</span>
<u-icon name="arrow-down" color="#666" size="24" /> <u-icon name="arrow-down" color="#666" size="24" />
@@ -21,7 +21,7 @@
<img src="./img/off-icon.png" alt="" class="mar-l40">离线 {{count.sum - count.online || 0}} --> <img src="./img/off-icon.png" alt="" class="mar-l40">离线 {{count.sum - count.online || 0}} -->
<div class="item"> <div class="item">
<div id="echarts" style="width:100%;height:100%;"></div> <div id="echarts" style="width:100%;height:100%;"></div>
<img src="img/monitor-icon.png" alt="" class="monitor-icon"> <img src="./img/monitor-icon.png" alt="" class="monitor-icon">
</div> </div>
<div class="item"> <div class="item">
<h3>{{count.online || 0}}</h3> <h3>{{count.online || 0}}</h3>
@@ -52,10 +52,10 @@
<div class="list-content"> <div class="list-content">
<div class="item" v-for="(item, index) in list" :key="index" @click="showMonitor(item)"> <div class="item" v-for="(item, index) in list" :key="index" @click="showMonitor(item)">
<img class="img" :src="item.indexUrl" alt="" v-if="item.deviceStatus == 1"> <img class="img" :src="item.indexUrl" alt="" v-if="item.deviceStatus == 1">
<img class="img" src="img/offline.png" alt="" v-else> <img class="img" src="./img/offline.png" alt="" v-else>
<p>{{item.name}}</p> <p>{{item.name}}</p>
<img class="icon" src="img/play-icon.png" alt="" v-if="item.deviceStatus == 1"> <img class="icon" src="./img/play-icon.png" alt="" v-if="item.deviceStatus == 1">
<img class="icon" src="img/not-play-icon.png" alt="" v-else> <img class="icon" src="./img/not-play-icon.png" alt="" v-else>
</div> </div>
<AiEmpty v-if="!list.length"/> <AiEmpty v-if="!list.length"/>
</div> </div>