增加群相册功能,长按朋友圈文字可以复制
This commit is contained in:
@@ -18,7 +18,7 @@
|
|||||||
//screen.orientation.type = "";
|
//screen.orientation.type = "";
|
||||||
screen.orientation.lock('portrait');
|
screen.orientation.lock('portrait');
|
||||||
// #endif
|
// #endif
|
||||||
// #ifndef MP
|
// #ifdef MP
|
||||||
console.error(
|
console.error(
|
||||||
`暂时不支持运行到小程序端`
|
`暂时不支持运行到小程序端`
|
||||||
);
|
);
|
||||||
@@ -540,7 +540,7 @@
|
|||||||
_this.checkUpdate();
|
_this.checkUpdate();
|
||||||
},
|
},
|
||||||
fail(e){
|
fail(e){
|
||||||
//console.log(e);
|
console.log(e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -132,7 +132,7 @@ export const upload = (files,data,onProgress) =>{
|
|||||||
console.log(typeof files);
|
console.log(typeof files);
|
||||||
return new Promise((resolve,reject)=>{
|
return new Promise((resolve,reject)=>{
|
||||||
var u = uni.uploadFile({
|
var u = uni.uploadFile({
|
||||||
url: config.getRegisterUrl()+"/user/upload", // 仅为示例,非真实的接口地址
|
url: config.getRegisterUrl()+(data?.url || "/user/upload"),
|
||||||
filePath: files,
|
filePath: files,
|
||||||
//files:files.length > 1 ? files : files[0],
|
//files:files.length > 1 ? files : files[0],
|
||||||
name: "file",
|
name: "file",
|
||||||
|
|||||||
@@ -0,0 +1,72 @@
|
|||||||
|
<template>
|
||||||
|
<view @longpress="longpress" >
|
||||||
|
<u-image
|
||||||
|
@click="click"
|
||||||
|
:width="width"
|
||||||
|
:height="height"
|
||||||
|
:mode="mode"
|
||||||
|
@error="errorHandle"
|
||||||
|
:src="cachesrc"></u-image>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import util from "@/util";
|
||||||
|
export default {
|
||||||
|
name: "CacheImage",
|
||||||
|
props: {
|
||||||
|
src: String,
|
||||||
|
type: {
|
||||||
|
type: String,
|
||||||
|
default: "images",
|
||||||
|
},
|
||||||
|
mode:{
|
||||||
|
type: String,
|
||||||
|
default: "aspectFill",
|
||||||
|
},
|
||||||
|
width: {
|
||||||
|
type: Number|String,
|
||||||
|
default: "100",
|
||||||
|
},
|
||||||
|
height: {
|
||||||
|
type: Number|String,
|
||||||
|
default: "",
|
||||||
|
},
|
||||||
|
shape:{
|
||||||
|
type: String,
|
||||||
|
default: "square",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
cachesrc:"",
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.init(this.src);
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
init(nv){
|
||||||
|
const _this = this;
|
||||||
|
if (nv) {
|
||||||
|
util.cacheFile(util.cdn(nv),this.type).then(res=>{
|
||||||
|
_this.cachesrc = res;
|
||||||
|
//console.log(_this.cachesrc);
|
||||||
|
});
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
errorHandle() {
|
||||||
|
this.cachesrc="/static/images/default_image.png";
|
||||||
|
},
|
||||||
|
click() {
|
||||||
|
this.$emit("click");
|
||||||
|
},
|
||||||
|
longpress() {
|
||||||
|
this.$emit("longpress");
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style></style>
|
||||||
@@ -58,6 +58,5 @@ app.REQUEST_TRACE = false;
|
|||||||
// 引入请求封装
|
// 引入请求封装
|
||||||
import request from "./util/request/index";
|
import request from "./util/request/index";
|
||||||
request(app)
|
request(app)
|
||||||
//require("./util/request/index")(app);
|
|
||||||
|
|
||||||
app.$mount();
|
app.$mount();
|
||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
"name" : "瞬聊",
|
"name" : "瞬聊",
|
||||||
"appid" : "__UNI__E41111F",
|
"appid" : "__UNI__E41111F",
|
||||||
"description" : "一款即时聊天软件",
|
"description" : "一款即时聊天软件",
|
||||||
"versionName" : "3.4.2",
|
"versionName" : "3.4.3",
|
||||||
"versionCode" : 342,
|
"versionCode" : 343,
|
||||||
"transformPx" : false,
|
"transformPx" : false,
|
||||||
"app-plus" : {
|
"app-plus" : {
|
||||||
"bounce" : "none",
|
"bounce" : "none",
|
||||||
|
|||||||
+13
-1
@@ -377,6 +377,12 @@
|
|||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": ""
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/conversation/groupAlbum/groupAlbum",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"tabBar": {
|
"tabBar": {
|
||||||
@@ -418,5 +424,11 @@
|
|||||||
"app-plus": {
|
"app-plus": {
|
||||||
"bounce": "none"
|
"bounce": "none"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"easycom": {
|
||||||
|
"autoscan": true,
|
||||||
|
"custom": {
|
||||||
|
"^c-(.*)": "@/components/$1/index.vue"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -89,6 +89,16 @@
|
|||||||
console.log(r);
|
console.log(r);
|
||||||
this.updateCurrentMsg({});
|
this.updateCurrentMsg({});
|
||||||
})
|
})
|
||||||
|
//console.log(this.storeCurrentConversation)
|
||||||
|
if(process.env.NODE_ENV == 'development'){
|
||||||
|
// if(this.storeCurrentConversation.groupID){
|
||||||
|
// setTimeout(()=>{
|
||||||
|
// uni.navigateTo({
|
||||||
|
// url:"/pages/conversation/groupAlbum/groupAlbum?groupID="+this.storeCurrentConversation.groupID
|
||||||
|
// });
|
||||||
|
// },1000)
|
||||||
|
// }
|
||||||
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch:{
|
||||||
storeCurrentMsgID(nv,ov){
|
storeCurrentMsgID(nv,ov){
|
||||||
|
|||||||
@@ -77,15 +77,15 @@
|
|||||||
//console.log(this.storeConversationList);
|
//console.log(this.storeConversationList);
|
||||||
this.freshing = false;
|
this.freshing = false;
|
||||||
if(process.env.NODE_ENV == 'development'){
|
if(process.env.NODE_ENV == 'development'){
|
||||||
// setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
// // uni.switchTab({
|
// uni.switchTab({
|
||||||
// // url:"/pages/user/index/index"
|
// url:"/pages/user/index/index"
|
||||||
// // })
|
// })
|
||||||
// // uni.navigateTo({
|
// uni.navigateTo({
|
||||||
// // url:"/pages/user/vip/vip"
|
// url:"/pages/conversation/groupAlbum/groupAlbum?groupID=1731702760"
|
||||||
// // });
|
// });
|
||||||
// //prepareConversationState(this.storeConversationList[1]);
|
//prepareConversationState(this.storeConversationList[0]);
|
||||||
// },1000)
|
},1000)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -0,0 +1,354 @@
|
|||||||
|
<template>
|
||||||
|
<view class="group_album_page">
|
||||||
|
<uni-nav-bar left-icon="back" @clickLeft="back" @clickRight="manage" title="群相册" statusBar fixed>
|
||||||
|
<view slot="left">
|
||||||
|
<uni-icons type="back"></uni-icons>
|
||||||
|
</view>
|
||||||
|
<view slot="right" v-if="isAdmin">
|
||||||
|
<text v-if="manageStatus">取消</text>
|
||||||
|
<text v-else>管理</text>
|
||||||
|
</view>
|
||||||
|
</uni-nav-bar>
|
||||||
|
<view class="list">
|
||||||
|
<view class="item" v-if="isAdmin">
|
||||||
|
<view class="pickfile" @click="pickMedia">
|
||||||
|
<u-icon
|
||||||
|
color="#D3d3d3"
|
||||||
|
size="40"
|
||||||
|
name="plus"
|
||||||
|
></u-icon>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-for="(item,index) in fileList" :key="'fileList'+index" class="item">
|
||||||
|
<c-CacheImage :src="item.url" width="234rpx" height="234rpx"></c-CacheImage>
|
||||||
|
<view class="overlay"></view>
|
||||||
|
<u-line-progress :percentage="item.progress" showText></u-line-progress>
|
||||||
|
</view>
|
||||||
|
<view v-for="(item,index) in list" :key="index" class="item" @click="itemClick(item,index)" :class="{cancheck:manageStatus,checked:selectedItemIds.includes(item.id)}">
|
||||||
|
<c-CacheImage :src="item.url" width="234rpx" height="234rpx" @click="itemClick(item,index)" ></c-CacheImage>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<u-loadmore :status="load_status" />
|
||||||
|
<view class="footer" v-if="manageStatus">
|
||||||
|
<button @click="selectAll" size="mini">全选</button>
|
||||||
|
<button @click="deleteItem" type="warn" size="mini">删除({{selectedItemIds.length}})</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import util from "@/util/index.js"
|
||||||
|
import {upload} from "@/api/login.js"
|
||||||
|
import {mapGetters} from "vuex";
|
||||||
|
import {GroupMemberRole} from "openim-uniapp-polyfill";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
albumWidth: 0,
|
||||||
|
fileList: [],
|
||||||
|
list: [
|
||||||
|
{
|
||||||
|
id:1,
|
||||||
|
url: "https://cdn.uviewui.com/uview/album/1.jpg",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id:2,
|
||||||
|
url: "https://cdn.uviewui.com/uview/album/2.jpg",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id:3,
|
||||||
|
url: "https://cdn.uviewui.com/uview/album/3.jpg",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id:4,
|
||||||
|
url: "https://cdn.uviewui.com/uview/album/4.jpg",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id:5,
|
||||||
|
url: "https://cdn.uviewui.com/uview/album/5.jpg",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id:6,
|
||||||
|
url: "https://cdn.uviewui.com/uview/album/6.jpg",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id:7,
|
||||||
|
url: "https://cdn.uviewui.com/uview/album/7.jpg",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id:8,
|
||||||
|
url: "https://cdn.uviewui.com/uview/album/8.jpg",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id:9,
|
||||||
|
url: "https://cdn.uviewui.com/uview/album/9.jpg",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
manageStatus: false,
|
||||||
|
selectedItemIds:[],
|
||||||
|
uploadButtonWidth:0,
|
||||||
|
load_status:"loadmore",
|
||||||
|
param: {
|
||||||
|
groupID: "",
|
||||||
|
offset: 0,
|
||||||
|
limit: 10,
|
||||||
|
trace: 1,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters([
|
||||||
|
"storeCurrentConversation",
|
||||||
|
"storeCurrentMemberInGroup",
|
||||||
|
"storeCurrentGroup",
|
||||||
|
]),
|
||||||
|
isAdmin() {
|
||||||
|
return this.storeCurrentMemberInGroup.roleLevel > GroupMemberRole.Normal;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
onLoad(opt) {
|
||||||
|
this.param.groupID = opt.groupID
|
||||||
|
//this.param.groupID = opt.storeCurrentConversation.groupID;
|
||||||
|
this.init();
|
||||||
|
this.uploadButtonWidth = uni.$u.getPx('234rpx');
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
init() {
|
||||||
|
this.getList(true);
|
||||||
|
},
|
||||||
|
getList(isFirstPage = false) {
|
||||||
|
if (isFirstPage === true) {
|
||||||
|
this.list = [];
|
||||||
|
this.param.offset = 0;
|
||||||
|
}
|
||||||
|
this.load_status = 'loading';
|
||||||
|
uni.$u.http.post('/group/album_list', this.param).then(res => {
|
||||||
|
if(res.length>0){
|
||||||
|
this.param.offset = res[0].id;
|
||||||
|
this.list = this.list.concat(res);
|
||||||
|
this.load_status = 'loadmore';
|
||||||
|
if(res.length < this.param.limit){
|
||||||
|
this.load_status = 'nomore';
|
||||||
|
}
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
this.load_status = 'nomore';
|
||||||
|
}).catch(e => {
|
||||||
|
this.load_status = 'loadmore';
|
||||||
|
})
|
||||||
|
},
|
||||||
|
itemClick(item,index) {
|
||||||
|
if(this.manageStatus && this.isAdmin){
|
||||||
|
if(this.selectedItemIds.includes(item.id)){
|
||||||
|
this.selectedItemIds = this.selectedItemIds.filter(id=>item.id!=id)
|
||||||
|
}else{
|
||||||
|
this.selectedItemIds.push(item.id);
|
||||||
|
}
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
const urls = this.list.map(item=>item.url);
|
||||||
|
uni.previewImage({
|
||||||
|
urls:urls,
|
||||||
|
current:index,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
deleteItem(){
|
||||||
|
if(!this.isAdmin || this.selectedItemIds.length == 0){
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
const _this = this;
|
||||||
|
uni.showModal({
|
||||||
|
content:"确定删除吗?一旦删除不能恢复",
|
||||||
|
success(res) {
|
||||||
|
if(res.confirm){
|
||||||
|
_this.doDelete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
selectAll(){
|
||||||
|
if(!this.isAdmin){
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
const arr = [];
|
||||||
|
this.list.forEach(item=>{
|
||||||
|
arr.push(item.id);
|
||||||
|
})
|
||||||
|
this.selectedItemIds = [...arr];
|
||||||
|
},
|
||||||
|
doDelete(){
|
||||||
|
if(!this.isAdmin || this.selectedItemIds.length == 0){
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
uni.$u.http.post('/group/album_delete', {ids:this.selectedItemIds}).then(res => {
|
||||||
|
this.list = this.list.filter(item=>!this.selectedItemIds.includes(item.id));
|
||||||
|
this.selectedItemIds = [];
|
||||||
|
this.manageStatus = false;
|
||||||
|
}).catch(e => {
|
||||||
|
uni.$u.toast(e?.msg || e);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
back() {
|
||||||
|
if (this.manageStatus) {
|
||||||
|
this.manageStatus = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
util.goto(1);
|
||||||
|
},
|
||||||
|
manage() {
|
||||||
|
if(!this.isAdmin){
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
this.manageStatus = !this.manageStatus;
|
||||||
|
},
|
||||||
|
pickMedia(){
|
||||||
|
if(!this.isAdmin){
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
const _this = this;
|
||||||
|
uni.chooseImage({
|
||||||
|
success(res) {
|
||||||
|
//res.tempFilePaths[0]
|
||||||
|
//res.tempFiles[0].path
|
||||||
|
//res.tempFiles[0].size
|
||||||
|
let i = 0;
|
||||||
|
_this.fileList = res.tempFilePaths.map(path=>{
|
||||||
|
i++;
|
||||||
|
return {
|
||||||
|
"id": 'temp_'+i,
|
||||||
|
"group_id": 0,
|
||||||
|
"user_id": 0,
|
||||||
|
"url": path,
|
||||||
|
"title": path,
|
||||||
|
"progress": 0,
|
||||||
|
"status": 0,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
_this.batchUpload();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// uni.chooseMedia({
|
||||||
|
// count: 9,
|
||||||
|
// mediaType: ['image'],
|
||||||
|
// sourceType: ['album', 'camera'],
|
||||||
|
// success(res) {
|
||||||
|
// console.log(res.tempFiles[0].tempFilePath)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
async batchUpload(){
|
||||||
|
if(!this.isAdmin){
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
const _this = this;
|
||||||
|
const lists = [].concat(this.fileList);
|
||||||
|
for (let i = 0; i < lists.length; i++) {
|
||||||
|
const result = await upload(lists[i].url,{
|
||||||
|
savePath: "album" ,
|
||||||
|
url:"/group/album_create",
|
||||||
|
groupID:_this.param.groupID
|
||||||
|
},(res)=>{
|
||||||
|
_this.fileList[i].progress = res.progress;
|
||||||
|
});
|
||||||
|
_this.fileList.splice(i,1);
|
||||||
|
_this.list.unshift(result.data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
onPullDownRefresh() {
|
||||||
|
this.getList(true);
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
this.getList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.group_album_page{
|
||||||
|
.footer{
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
height: 44px;
|
||||||
|
background-color: #fff;
|
||||||
|
z-index: 10;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 20rpx;
|
||||||
|
uni-button{
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.list{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-top: 12rpx;
|
||||||
|
padding-right: 12rpx;
|
||||||
|
.item{
|
||||||
|
position: relative;
|
||||||
|
margin-bottom: 12rpx;
|
||||||
|
margin-left: 12rpx;
|
||||||
|
::v-deep .u-upload__button{
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
&.cancheck::after{
|
||||||
|
content: " ";
|
||||||
|
font-family: uicon-iconfont;
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
font-size: 20px;
|
||||||
|
text-align: center;
|
||||||
|
background-color: rgb(255, 255, 255);
|
||||||
|
border-color: rgb(200, 201, 204);
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 1px;
|
||||||
|
border-radius: 100%;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
&.cancheck.checked::after{
|
||||||
|
content: "";
|
||||||
|
background-color: rgb(41, 121, 255);
|
||||||
|
border-color: rgb(41, 121, 255);
|
||||||
|
color:#FFF;
|
||||||
|
}
|
||||||
|
.overlay{
|
||||||
|
background: rgba(0, 0, 0, 0.6);
|
||||||
|
position: absolute;
|
||||||
|
z-index: 9;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.u-line-progress{
|
||||||
|
position: absolute;
|
||||||
|
z-index: 10;
|
||||||
|
top:50%;
|
||||||
|
margin-top: -6px;
|
||||||
|
width: 80%;
|
||||||
|
left: 10%;
|
||||||
|
}
|
||||||
|
.pickfile{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
width: 234rpx;
|
||||||
|
height: 234rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<my-avatar :src="storeCurrentConversation.faceURL" :isGroup="true" size="46" />
|
<my-avatar :src="storeCurrentConversation.faceURL" :isGroup="true" size="46" />
|
||||||
</template>
|
</template>
|
||||||
</uni-list-item>
|
</uni-list-item>
|
||||||
<uni-list-item title="群聊名称" :rightText="storeCurrentConversation.showName" @click="editGroupName" :clickable="isOwner || isAdmin" :showArrow="isOwner || isAdmin"></uni-list-item>
|
<uni-list-item title="群名称" :rightText="storeCurrentConversation.showName" @click="editGroupName" :clickable="isOwner || isAdmin" :showArrow="isOwner || isAdmin"></uni-list-item>
|
||||||
<uni-list-item title="群公告" to="/pages/conversation/groupSettings/announcement" clickable showArrow></uni-list-item>
|
<uni-list-item title="群公告" to="/pages/conversation/groupSettings/announcement" clickable showArrow></uni-list-item>
|
||||||
<uni-list-item title="群二维码" :to="getGroupQrcdeUrl" clickable showArrow></uni-list-item>
|
<uni-list-item title="群二维码" :to="getGroupQrcdeUrl" clickable showArrow></uni-list-item>
|
||||||
<uni-list-item v-if="isOwner || isAdmin" title="群管理" to="/pages/conversation/groupManage/index" clickable showArrow></uni-list-item>
|
<uni-list-item v-if="isOwner || isAdmin" title="群管理" to="/pages/conversation/groupManage/index" clickable showArrow></uni-list-item>
|
||||||
@@ -21,6 +21,7 @@
|
|||||||
</uni-list>
|
</uni-list>
|
||||||
<u-gap></u-gap>
|
<u-gap></u-gap>
|
||||||
<uni-list>
|
<uni-list>
|
||||||
|
<uni-list-item title="群相册" :to="'/pages/conversation/groupAlbum/groupAlbum?groupID='+storeCurrentConversation.groupID" showArrow></uni-list-item>
|
||||||
<uni-list-item title="查找聊天内容" :to="'/pages/common/search/index?type=conversation&conversationID='+storeCurrentConversation.conversationID" showArrow></uni-list-item>
|
<uni-list-item title="查找聊天内容" :to="'/pages/common/search/index?type=conversation&conversationID='+storeCurrentConversation.conversationID" showArrow></uni-list-item>
|
||||||
</uni-list>
|
</uni-list>
|
||||||
<u-gap></u-gap>
|
<u-gap></u-gap>
|
||||||
@@ -204,6 +205,8 @@
|
|||||||
return this.storeCurrentGroup.status === GroupStatus.Muted;
|
return this.storeCurrentGroup.status === GroupStatus.Muted;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
onLoad() {
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
editGroupName(){
|
editGroupName(){
|
||||||
if(this.isOwner || this.isAdmin){
|
if(this.isOwner || this.isAdmin){
|
||||||
|
|||||||
@@ -6,7 +6,8 @@
|
|||||||
<view class="content">
|
<view class="content">
|
||||||
<view class="content-name" @tap="linkToBusinessCard(item.user_id)">{{ item.user.nickname || item.user.remark }}</view>
|
<view class="content-name" @tap="linkToBusinessCard(item.user_id)">{{ item.user.nickname || item.user.remark }}</view>
|
||||||
<view class="content-desc">
|
<view class="content-desc">
|
||||||
<u--text :lines="5" :text="item.body" />
|
<text class="u-line-5" selectable user-select>{{item.body}}</text>
|
||||||
|
<!-- <u-text :lines="5" :text="item.body" selectable /> -->
|
||||||
</view>
|
</view>
|
||||||
<!-- 图片,视频 -->
|
<!-- 图片,视频 -->
|
||||||
<view class="content-img" v-if="item.files!=null&&item.files.length>0">
|
<view class="content-img" v-if="item.files!=null&&item.files.length>0">
|
||||||
@@ -19,7 +20,7 @@
|
|||||||
<view slot="error"
|
<view slot="error"
|
||||||
class="u-flex u-row-left u-col-center"
|
class="u-flex u-row-left u-col-center"
|
||||||
style="font-size: 24rpx;width: 200rpx;height: 100rpx;margin-top: -50rpx;">
|
style="font-size: 24rpx;width: 200rpx;height: 100rpx;margin-top: -50rpx;">
|
||||||
<u-icon name="photo" size="100" label="加载失败" label-pos="bottom"></u-icon>
|
<u-icon name="photo" size="100" label="加载失败" label-pos="bottom"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
</u-image>
|
</u-image>
|
||||||
</view>
|
</view>
|
||||||
@@ -223,6 +224,9 @@
|
|||||||
padding-top: 4rpx;
|
padding-top: 4rpx;
|
||||||
//line-height: 36rpx;
|
//line-height: 36rpx;
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
|
uni-text{
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&-img {
|
&-img {
|
||||||
@@ -298,8 +302,8 @@
|
|||||||
|
|
||||||
&-content {
|
&-content {
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,18 +42,18 @@
|
|||||||
|
|
||||||
<!-- 朋友圈列表 -->
|
<!-- 朋友圈列表 -->
|
||||||
<view class="content-circle">
|
<view class="content-circle">
|
||||||
<!-- storeCircleData是vuex变量,不在本页面定义 -->
|
<!-- storeCircleData是vuex变量,不在本页面定义 -->
|
||||||
<template v-if="storeCircleData!=null&&storeCircleData.length>0">
|
<template v-if="storeCircleData!=null&&storeCircleData.length>0">
|
||||||
<template v-for="(item, index) in storeCircleData" >
|
<template v-for="(item, index) in storeCircleData" >
|
||||||
<CircleItem :key="index" :index="index" :item="item" @userEvent="onUserEvent"></CircleItem>
|
<CircleItem :key="index" :index="index" :item="item" @userEvent="onUserEvent"></CircleItem>
|
||||||
</template>
|
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
</template>
|
||||||
<view style="margin-top: 30%;">
|
<template v-else>
|
||||||
<u-empty text="暂无动态,发一条试试吧~"></u-empty>
|
<view style="margin-top: 30%;">
|
||||||
</view>
|
<u-empty text="暂无动态,发一条试试吧~"></u-empty>
|
||||||
</template>
|
</view>
|
||||||
</view>
|
</template>
|
||||||
|
</view>
|
||||||
|
|
||||||
<u-overlay :show="showInput" @click="showInput = false">
|
<u-overlay :show="showInput" @click="showInput = false">
|
||||||
<view class="input-box" :style="{
|
<view class="input-box" :style="{
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 5.6 KiB |
@@ -20,6 +20,9 @@ module.exports = (vm) => {
|
|||||||
token:uni.getStorageSync("BusinessToken"),
|
token:uni.getStorageSync("BusinessToken"),
|
||||||
operationID: uuidV4(),
|
operationID: uuidV4(),
|
||||||
};
|
};
|
||||||
|
if(typeof config.data === 'object'){
|
||||||
|
config.data = JSON.stringify(config.data);
|
||||||
|
};
|
||||||
// 可以在此通过vm引用vuex中的变量,具体值在vm.$store.state中
|
// 可以在此通过vm引用vuex中的变量,具体值在vm.$store.state中
|
||||||
return config;
|
return config;
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
module.exports = (vm) => {
|
module.exports = (vm) => {
|
||||||
uni.$u.http.interceptors.response.use((response) => {
|
uni.$u.http.interceptors.response.use((response) => {
|
||||||
if(vm.REQUEST_TRACE){
|
if(vm.REQUEST_TRACE || response.config?.data.trace){
|
||||||
console.log("\n-"
|
console.log("\n-"
|
||||||
+"\n============================================================="
|
+"\n============================================================="
|
||||||
+"\nurl:"+response.config.fullPath
|
+"\nurl:"+response.config.fullPath
|
||||||
|
|||||||
Reference in New Issue
Block a user