Merge remote-tracking branch 'origin/main'

main
Connor 2024-06-12 22:20:43 +08:00
commit c355fffc92
25 changed files with 1099 additions and 151 deletions

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询签到明细列表
export function listSign(query) {
return request({
url: '/SignDetail/Sign/list',
method: 'get',
params: query
})
}
// 查询签到明细详细
export function getSign(id) {
return request({
url: '/SignDetail/Sign/' + id,
method: 'get'
})
}
// 新增签到明细
export function addSign(data) {
return request({
url: '/SignDetail/Sign',
method: 'post',
data: data
})
}
// 修改签到明细
export function updateSign(data) {
return request({
url: '/SignDetail/Sign',
method: 'put',
data: data
})
}
// 删除签到明细
export function delSign(id) {
return request({
url: '/SignDetail/Sign/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询签到详情列表
export function listSignTa(query) {
return request({
url: '/SignTa/SignTa/list',
method: 'get',
params: query
})
}
// 查询签到详情详细
export function getSignTa(id) {
return request({
url: '/SignTa/SignTa/' + id,
method: 'get'
})
}
// 新增签到详情
export function addSignTa(data) {
return request({
url: '/SignTa/SignTa',
method: 'post',
data: data
})
}
// 修改签到详情
export function updateSignTa(data) {
return request({
url: '/SignTa/SignTa',
method: 'put',
data: data
})
}
// 删除签到详情
export function delSignTa(id) {
return request({
url: '/SignTa/SignTa/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询签到任务列表
export function listTask(query) {
return request({
url: '/checktask/task/list',
method: 'get',
params: query
})
}
// 查询签到任务详细
export function getTask(id) {
return request({
url: '/checktask/task/' + id,
method: 'get'
})
}
// 新增签到任务
export function addTask(data) {
return request({
url: '/checktask/task',
method: 'post',
data: data
})
}
// 修改签到任务
export function updateTask(data) {
return request({
url: '/checktask/task',
method: 'put',
data: data
})
}
// 删除签到任务
export function delTask(id) {
return request({
url: '/checktask/task/' + id,
method: 'delete'
})
}

View File

@ -4,8 +4,13 @@ export default {
uploadQiNiuDomain: 'https://upload-z2.qiniup.com',
// baseUrl: 'https://vue.ruoyi.vip/prod-api',
// baseUrl: 'http://47.93.242.168:8080',
<<<<<<< HEAD
// baseUrl: 'http://47.93.242.168:8080',
baseUrl: 'http://localhost:8080',
=======
// baseUrl: 'http://47.93.242.168:8080',
baseUrl: 'http://localhost:8080',
>>>>>>> 628ee1926942d01758e141fb0b5393a175968240
// 应用信息
appInfo: {
// 应用名称

View File

@ -14,7 +14,10 @@
"autoclose" : true,
"delay" : 0
},
"modules" : {},
"modules" : {
"Barcode" : {},
"Camera" : {}
},
"distribute" : {
"android" : {
"permissions" : [
@ -45,7 +48,24 @@
"UniversalLinks" : ""
}
},
"ad" : {}
"ad" : {},
"geolocation" : {
"system" : {
"__platform__" : [ "ios", "android" ]
},
"amap" : {
"name" : "",
"__platform__" : [ "ios", "android" ],
"appkey_ios" : "",
"appkey_android" : ""
}
},
"push" : {
"unipush" : {
"version" : "2",
"offline" : false
}
}
}
}
},

View File

@ -281,6 +281,21 @@
"style": {
"navigationBarTitleText": "兼职"
}
},
{
"path" : "pages/Friend/addressbook",
"style" :
{
"navigationBarTitleText" : "通讯录",
"navigationStyle": "custom"
}
},
{
"path" : "pages/Friend/messagechat",
"style" :
{
"navigationBarTitleText" : ""
}
}
,
{
@ -299,6 +314,12 @@
"navigationBarTextStyle": "white"
}
}
,{
"path": "pages/activity/map",
"style": {
"navigationBarTitleText": "地图"
}
}
],
"tabBar": {
"color": "#000000",

View File

@ -2,10 +2,91 @@
<template>
<navbar_neadVue title="互动消息"></navbar_neadVue>
<view>
<u-tabs :list="list1" @change="tabChange"></u-tabs>
<view style="margin-left: 32rpx; margin-right: 32rpx;">
<u-tabs :lineWidth="25" :lineHeight="2" itemStyle="padding:11px;" lineColor="#3477fc" :list="list1"
@change="tabChange"></u-tabs>
</view>
<view style="width: 750rpx;
height: 2rpx;
background: #f4f5f6;"></view>
<view class="viewcontent">
<view class="viewleft">
<image src="../../static/images/icon/tu4-1.jpg" style="width: 82rpx; height: 82rpx; border-radius: 82rpx;">
</image>
</view>
<view class="viewright">
<view class="rightbutton">
<text>回关</text>
</view>
<view class="viewtoptext">
<text class="viewtoptextfirst">爱吃饭的小张</text>
<text class="viewtoptextlast" style="margin-left: 20rpx;">2024.06.01</text>
</view>
<view class="viewbottomtext">
<text>看你和我那么投缘所以点个关注喽</text>
</view>
</view>
</view>
<view class="viewcontent">
<view class="viewleft">
<image src="../../static/images/icon/tu4-1.jpg" style="width: 82rpx; height: 82rpx; border-radius: 82rpx;">
</image>
<image src="../../static/images/sign/type1.png" class="botimage"></image>
</view>
<view class="viewright" style="padding-top: 23rpx; margin-left: -16rpx;">
<view class="viewtoptext">
<text class="viewtoptextfirst" style="margin-top: 0rpx;">爱吃饭的小张</text>
<view>
<text class="viewtoptexttitle">赞了你的话题</text>
<text class="viewtoptextlast" style="margin-left: 20rpx;">2024.06.01</text>
</view>
</view>
<view class="viewtypebottomtext">
<text>话题下班之后一般喜欢吃什么自己做饭还是吃1111111</text>
</view>
</view>
</view>
<view class="viewcontent">
<view class="viewleft">
<image src="../../static/images/icon/tu4-1.jpg" style="width: 82rpx; height: 82rpx; border-radius: 82rpx;">
</image>
<image src="../../static/images/sign/type2.png" class="botimage"></image>
</view>
<view class="viewright" style="padding-top: 23rpx; margin-left: -16rpx;">
<view class="viewtoptext">
<text class="viewtoptextfirst" style="margin-top: 0rpx;">爱吃饭的小张</text>
<view>
<text class="viewtoptexttitle" style="float: left;width: 370rpx;overflow: hidden;
word-wrap: break-word;
line-height: 21rpx;
padding-top: 7rpx;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;">回复了你的评论你说的对要不是之</text>
<text class="viewtoptextlast" style="margin-left: 20rpx;">2024.06.01</text>
</view>
</view>
<view class="viewtypebottomtext">
<text>话题下班之后一般喜欢吃什么自己做饭还是吃1111111</text>
</view>
</view>
</view>
</template>
<script setup>
@ -32,8 +113,139 @@
function tabChange(index) {
console.log('当前选中的选项卡索引:', index);
}
const arr = reactive([{
id: 1,
image: "",
name: "",
time: "",
type: "",
content: ""
},
{
id: 2,
image: "",
name: "",
time: "",
type: "",
content: ""
},
])
</script>
<style>
@import '@/pages/common/navbar/navbar.css';
.viewcontent {
width: 750rpx;
height: 130rpx;
background: #d1d1d1;
display: flex;
}
.viewleft {
padding-top: 24rpx;
padding-left: 32rpx;
}
.viewright {
padding-top: 33rpx;
padding-left: 32rpx;
width: 100%;
}
.rightbutton {
width: 72rpx;
height: 40rpx;
border-radius: 20rpx 20rpx 20rpx 20rpx;
background: #3477fc;
float: right;
margin-right: 32rpx;
vertical-align: middle;
text-align: center;
margin-top: 20rpx;
}
.rightbutton>text {
display: block;
font-weight: 500;
font-size: 20rpx;
text-align: left;
color: #FFFFFF;
text-align: center;
line-height: 40rpx;
}
.viewtoptextfirst {
font-weight: 600;
/* width: 173rpx; */
height: 29rpx;
font-size: 28rpx;
text-align: left;
color: #000000;
}
.viewtoptextlast {
font-weight: Regular;
/* width: 89rpx; */
height: 15rpx;
font-size: 18rpx;
text-align: left;
color: #999999;
}
.viewtoptexttitle {
font-weight: Regular;
/* width: 120rpx; */
height: 21rpx;
font-size: 20rpx;
text-align: left;
color: #000000;
}
.viewbottomtext {
font-weight: Regular;
/* width: 327rpx; */
height: 21rpx;
font-size: 20rpx;
text-align: left;
color: #4E4E4E;
/* overflow: hidden;
word-wrap: break-word;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1; */
}
.viewtypebottomtext {
font-weight: Regular;
/* width: 468rpx; */
height: 21rpx;
font-size: 20rpx;
text-align: left;
color: #999999;
line-height: 21rpx;
overflow: hidden;
word-wrap: break-word;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
}
/* / */
.botimage {
width: 32rpx;
height: 32rpx;
position: relative;
bottom: 40rpx;
right: -50rpx;
}
</style>

View File

@ -4,26 +4,56 @@
<image src="../../static/images/sign/return.png"></image>
</view>
<view class="back">
<image src="../../static/images/sign/背景.png" style="
position: fixed;
<image src="../../static/images/sign/myBack.png" style="
position:fixed;
top: 0;
left: 0;
width: 750rpx;
height: 500rpx; z-index: -1;"></image>
<view style="width: 154rpx;
height: 154rpx;
background: #83c4ff"></view>
<text> 爱吃饭的小张</text>
<text></text>
<text>LV 2</text>
<text>ID:</text>
<text>19993849611</text>
margin-top: 50rpx;
height: 154rpx;">
<image src="../../static/images/icon/tu4-1.jpg"
style="width: 154rpx; height: 154rpx;border-radius: 154rpx;"></image>
</view>
<text style="
font-weight: 600;
width: 272rpx;
height: 45rpx;
font-size: 44rpx;
text-align: left;
color: #FFFFFF;
"> 爱吃饭的小张</text>
<view>
<text class="textrig"></text>
<text class="textrig">LV 2</text>
<text class="textrig">ID:</text>
<text class="textrig">19993849611</text>
</view>
</view>
<view style="position: absolute; top: 424rpx; bottom: 0; left: 0; right: 0; border-radius: 32rpx 32rpx 32rpx 32rpx;
background: #ffffff; ">
<view>
<text>9999 获赞</text>
<view class="viewtop">
<text style="
font-weight:600;
width: 85rpx;
height: 30rpx;
font-size: 36rpx;
text-align: left;
color: #000000;
">9999 <text style="
font-weight: 400;
width: 57rpx;
height: 28rpx;
font-size: 28rpx;
text-align: left;
color: #999999;
vertical-align: middle;
">获赞</text></text>
</view>
<view>
@ -34,7 +64,7 @@ background: #ffffff; ">
height: 80rpx;
border-radius: 40rpx 40rpx 40rpx 40rpx;
background: #f7f8fa;">
<image style="width: 34rpx; height: 30rpx;" src="../../static/images/sign/发消息.png"></image>
<image style="width: 34rpx; height: 30rpx;" src="../../static/images/sign/go.png"></image>
<text>发消息</text>
</view>
@ -84,4 +114,13 @@ background: linear-gradient(-90deg, #c9f6f5, #f7f8e3);"></view>
width: 750rpx;
height: 500rpx;
}
.textrig {
font-weight: Regular;
width: 24rpx;
height: 24rpx;
font-size: 24rpx;
text-align: left;
color: #FFFFFF;
}
</style>

View File

@ -0,0 +1,82 @@
<!-- 通讯录 -->
<template>
<view style="position: fixed; top: 0;bottom: 0; left: 0; right: 0; background-color: #ffffff; z-index: -1;"></view>
<up-index-list :index-list="indexList">
<template v-for="(item, index) in itemArr">
<!-- #ifdef APP-NVUE -->
<up-index-anchor :text="indexList[index]"></up-index-anchor>
<!-- #endif -->
<up-index-item>
<!-- #ifndef APP-NVUE -->
<up-index-anchor :text="indexList[index]" bg-color="#ffffff" height="78rpx" style="border-bottom: none;margin-left: 32rpx;padding: 0rpx;" size="30rpx"></up-index-anchor>
<!-- #endif -->
<view class="list-cell" v-for="(cell, index) in item">
<view class="box">
<image src="../../static/images/icon/tu4-1.jpg" />
<view style="margin: auto 0; margin-left: 24rpx;">
<view><text class="boxtexttop">{{cell}}</text></view>
<view><text class="boxtextbottom">[签名]这个人很懒什么都没留下</text></view>
</view>
</view>
</view>
</up-index-item>
</template>
</up-index-list>
</template>
<script setup>
import {
ref
} from 'vue';
//
const indexList = ref(["A", "B", "C", "D"]);
const itemArr = ref([
['列表A1', '列表A2', '列表A3'],
['列表B1', '列表B2', '列表B3'],
['列表C1', '列表C2', '列表C3'],
['列表D1', '列表D2', '列表D3']
]);
</script>
<style scoped>
.list-cell {
padding: 0rpx;
}
.box {
width: 750rpx;
height: 108rpx;
background: #ffffff;
display: flex;
}
.box>image {
width: 60rpx;
height: 60rpx;
border-radius: 60rpx;
display: block;
margin: auto 0;
margin-left: 32rpx;
}
.boxtexttop {
font-weight: 600;
/* width: 81rpx; */
height: 30rpx;
font-size: 30rpx;
text-align: left;
color: #000000;
}
.boxtextbottom {
font-weight: Regular;
/* width: 291rpx; */
height: 21rpx;
font-size: 20rpx;
text-align: left;
color: #939393;
}
</style>

View File

@ -0,0 +1,19 @@
<!-- 消息聊天 -->
<template>
<view>
</view>
<view>
</view>
</template>
<script setup>
</script>
<style>
</style>

View File

@ -1,14 +1,217 @@
<!-- 消息通知 -->
<template>
<view>
<view class="box">
<view class="boxview" @click="handerTo('./Interactivemessage')">
<view class="boxmessge"></view>
<image class="boximage" src="../../static/images/sign/message2.png"></image>
<text class="boxtext">互动消息</text>
</view>
<view class="boxview" @click="handerTo('./systemnotification?id=1')">
<view class="boxmessge"></view>
<image class="boximage" src="../../static/images/sign/message.png"></image>
<text class="boxtext">系统通知</text>
</view>
<view class="boxview" @click="handerTo('./systemnotification?id=2')">
<view class="boxmessge"></view>
<image class="boximage" src="../../static/images/sign/message1.png"></image>
<text class="boxtext">审核通知</text>
</view>
</view>
<!-- 内容 -->
<!-- <view class="contentbox, swipe-action__content__text" style="display: flex;">
<view>
<view class="contentboxtop"></view>
<image class="contentboximage" src="../../static/images/icon/tu4-1.jpg"></image>
</view>
<view style="margin-top: 24rpx;">
<text>恋爱60秒</text>
<text>12:00</text>
<text>你有空把上次布置得任务交一下</text>
</view>
</view> -->
<view>
<up-swipe-action style="margin-left: 32rpx; margin-right: 32rpx;margin-top: 48rpx;">
<up-swipe-action-item :options="options1">
<view class="contentbox, swipe-action__content__text" style="display: flex;" @click="gotoAddr()">
<view>
<view class="contentboxtop"></view>
<image class="contentboximage" src="../../static/images/icon/tu4-1.jpg"></image>
</view>
<view style="margin-left: 26rpx;width: 612rpx;">
<text class="contentboxtexttop">恋爱60秒</text>
<text class="contentboxtextmiddle">12:00</text>
<text class="contentboxtextbottom">你有空把上次布置得任务交一下</text>
</view>
</view>
</up-swipe-action-item>
</up-swipe-action>
</view>
</template>
<script setup>
import {
reactive
} from 'vue';
// 使 reactive
const options1 = reactive([{
text: '删除',
style: {
backgroundColor: '#3c9cff'
}
},
{
text: '删除',
style: {
backgroundColor: '#f56c6c'
}
}
]);
//
function handerTo(url){
uni.navigateTo({
url: url
});
}
//
function gotoAddr(){
console.log("跳转123")
}
</script>
<style>
<style scoped>
.swipe-action__content__text {
padding: 0rpx !important;
margin: 0rpx !important;
height: 82rpx !important;
}
.box {
height: 208rpx;
border-radius: 24rpx 24rpx 0rpx 0rpx;
background-color: aqua;
display: flex;
margin-left: 32rpx;
margin-right: 32rpx;
}
.boxmessge {
width: 24rpx;
height: 24rpx;
background: #fa3939;
border-radius: 24rpx;
position: relative;
left: 96rpx;
top: 24rpx;
}
.boximage {
width: 120rpx;
height: 120rpx;
}
.boxview {
margin: 0 auto;
}
.boxtext {
font-weight: 600;
/* width: 112rpx; */
height: 28rpx;
font-size: 28rpx;
text-align: left;
color: #000000;
display: block;
}
.contentbox {
/* width: 750rpx; */
height: 82rpx;
/* margin-top: -24rpx; */
display: flex;
}
.contentboximage {
width: 82rpx;
height: 82rpx;
border-radius: 82rpx;
}
.contentboxtop {
width: 24rpx;
height: 24rpx;
background: #fa3939;
border-radius: 24rpx;
position: fixed;
left: 56rpx;
/* top: 24rpx; */
z-index: 3;
}
.u-page {
padding: 0;
}
.u-demo-block__title {
padding: 10px 0 2px 15px;
}
.swipe-action {
&__content {
padding: 25rpx 0;
&__text {
font-size: 15px;
color: $u-main-color;
padding-left: 30rpx;
}
}
}
.contentboxtexttop {
font-weight: 600;
/* width: 125rpx; */
height: 30rpx;
font-size: 30rpx;
text-align: left;
color: #000000;
vertical-align: middle;
}
.contentboxtextmiddle {
font-weight: Regular;
/* width: 50rpx; */
height: 17rpx;
font-size: 20rpx;
text-align: right;
color: #999999;
vertical-align: middle;
float: right;
display: block;
/* margin-left: 381rpx; */
margin-right: 24rpx;
}
.contentboxtextbottom {
font-weight: Regular;
/* width: 364rpx; */
height: 26rpx;
font-size: 26rpx;
text-align: left;
color: #999999;
vertical-align: middle;
display: block;
line-height: 26rpx;
margin-top: 12rpx;
}
</style>

View File

@ -9,8 +9,8 @@
<view style="display: flex;margin-left: 32rpx;margin-top: 24rpx;">
<view class="imageview">
<image v-if="item.leng === ''" src="../../static/images/sign/系统通知.png" />
<image v-if="item.leng === ''" src="../../static/images/sign/审核通知.png" />
<image v-if="item.leng === ''" src="../../static/images/sign/message.png" />
<image v-if="item.leng === ''" src="../../static/images/sign/message1.png" />
</view>
<view class="contentview">
<text class="viewtitle">{{item.title}}</text>
@ -23,7 +23,10 @@
<text v-if="item.type === 2" class="viewtexttypelose">
{{item.typecontent}}
</text>
<view style="margin-top: 24rpx;"></view>
</view>
</view>
</view>
@ -158,7 +161,7 @@
font-size: 24rpx;
text-align: left;
color: #3477FC;
margin-top: 11rpx;
/* margin-top: 11rpx; */
display: block;
margin-left: 24rpx;
}
@ -170,7 +173,7 @@
font-size: 24rpx;
text-align: left;
color: #FA3939;
margin-top: 12rpx;
/* margin-top: 12rpx; */
display: block;
margin-left: 24rpx;
}

View File

@ -21,8 +21,8 @@
<view v-for="(item,index) in arr" :key="index">
<view class="boxc" @click="HaveIsClick(item.id)">
<text class="box-text">{{item.title}}</text>
<image v-if="item.id == IsClick" class="box-image" src="../../static/images/sign/选中.png"></image>
<image v-else class="box-image" src="../../static/images/sign/未选中.png"></image>
<image v-if="item.id == IsClick" class="box-image" src="../../static/images/sign/isH.png"></image>
<image v-else class="box-image" src="../../static/images/sign/IsHave.png"></image>
</view>
</view>
<view class="but" @click="goNext()">
@ -53,7 +53,7 @@
</view>
<view class="next-image">
<image src="../../static/images/sign/添加图片.png"></image>
<image src="../../static/images/sign/add.png"></image>
<view>
<text class="next-bot-text">(0/3)</text>
</view>

37
pages/activity/map.vue Normal file
View File

@ -0,0 +1,37 @@
<template class="content">
<view>12</view>
</template>
<script setup>
import ActiInfoList from '../common/activityList/index.vue'
import { onShow, onLoad ,onPullDownRefresh} from '@dcloudio/uni-app'
import { getDicts } from "@/api/system/dict/data"
import { ref, reactive, getCurrentInstance, toRefs } from 'vue'
import { useStore } from 'vuex';
const timeFormat = uni.$u.timeFormat;
const { proxy } = getCurrentInstance();
const newData = ref(new Date().getTime());
const iconConfig = proxy.iconConfig;
const tu21 = iconConfig.tu21;
onLoad((options) => {
})
onShow(() => {
console.log('Page onShow')
})
</script>
<style lang="scss">
page{
background-color: #FBFBFB;
}
</style>

View File

@ -14,7 +14,8 @@
<view class="titleInfo">
<up-form-item label="" prop="acTitle" borderBottom>
<up-input placeholder="输入活动标题~5~20个字" v-model="form.acTitle" border="none" maxlength="20"
fontSize="34rpx" color="#333333" clearable placeholderStyle="color: #c0c0c0;font-size: 34rpx;"></up-input>
fontSize="34rpx" color="#333333" clearable
placeholderStyle="color: #c0c0c0;font-size: 34rpx;"></up-input>
</up-form-item>
<view class="xian"></view>
</view>
@ -23,10 +24,8 @@
<textarea class="text_style" v-model="form.acContent"
placeholder="输入活动内容\n活动图片最多可发布两张\n输入准确定位可以更好提供活动信息奥\n安全指南请勿发布带有个人信息住址\n" cols="50"
rows="10" maxlength="500"
placeholderStyle="color: #c0c0c0;font-size: 30rpx; white-space: pre-wrap;"
color="#333333"
fontSize="30rpx"
@linechange="inputtextInfo"></textarea>
placeholderStyle="color: #c0c0c0;font-size: 30rpx; white-space: pre-wrap;" color="#333333"
fontSize="30rpx" @linechange="inputtextInfo"></textarea>
<view class="char-count">{{ form.acContent.length }}/500</view>
</up-form-item>
</view>
@ -77,7 +76,7 @@
border="none">
<span v-if="showtext2"></span>
</up-input>
<up-icon slot="right" name="arrow-right"></up-icon>
<up-icon slot="right" name="arrow-right" @click="gotomap"></up-icon>
</view>
</up-form-item>
</up-cell-group>
@ -142,8 +141,10 @@ const data = reactive({
{ required: true, message: '请选择活动结束时间', trigger: 'change' },
{
validator: (rule, value, callback) => {
console.log(form.value.startTime, " ", value, " ", value <= form.value.startTime)
if (value <= form.value.startTime) {
if( value == null | form.value.startTime == null ){
callback();
}
else if (value <= form.value.startTime) {
callback(proxy.$modal.msgError('时间选择错误'));
} else {
callback();
@ -155,7 +156,6 @@ const data = reactive({
}
});
const { form, rules } = toRefs(data);
const fileList1 = ref([])
const fileTypeInfo1 = ref('image')
const bgColor = ref('');
bgColor.value = 'rgba(170, 0, 0, 0)'
@ -172,7 +172,7 @@ const timeFormat = uni.$u.timeFormat;
//
const uFormRef = ref(null);
onLoad((options) => {
console.log("页面参数:", options.id);
})
const leftClick = () => {
@ -198,22 +198,20 @@ const inputtextInfo = (e) => {
console.log("测试输入1", e);
}
const gotomap = () => {
proxy.$tab.navigateTo('/pages/activity/map')
}
const submitForm = (type) => {
if (uFormRef.value) {
uFormRef.value.validate().then(valid => {
if (valid) {
console.log('表单验证通过:', form.value);
proxy.$modal.loading('正在提交数据,请稍候...');
//
if (type === 'publish') {
console.log("调用发布接口", form.value);
//
addInfo(form.value).then(response => {
proxy.$modal.closeLoading();
proxy.$modal.msgSuccess("发布成功");
proxy.$tab.navigateTo('/pages/common/talkState/publish')
rotation(response.data.id);
});
} else {
// 稿
@ -232,13 +230,38 @@ const submitForm = (type) => {
console.log('表单引用未定义');
}
}
//
const rotation = (id) => {
setTimeout(() => {
getInfo(id).then(response => {
if (response.data.auditStatus === 3 | response.data.auditStatus === 4) {
proxy.$modal.closeLoading();
proxy.$modal.msgError("审核失败");
proxy.$tab.navigateTo('/pages/common/talkState/auditFailure')
}else if(response.data.auditStatus === 2){
proxy.$modal.closeLoading();
proxy.$modal.msgSuccess("审核中~");
proxy.$tab.navigateTo('/pages/common/talkState/audit')
}else if(response.data.auditStatus === 0){
proxy.$modal.closeLoading();
proxy.$modal.msgSuccess("发布成功");
proxy.$tab.navigateTo('/pages/common/talkState/publis')
}
else {
rotation(id);
}
});
}, 1000);
}
const startTime = (e) => {
showStartTime.value = !showStartTime.value
}
const confirm1 = (e) => {
console.log(e);
showtext1.value = false;
StartTime.value = e.value
form.value.startTime = timeFormat(e.value, 'yyyy-mm-dd hh:MM:ss');
@ -246,7 +269,6 @@ const confirm1 = (e) => {
}
const confirm2 = (e) => {
console.log(e);
showtext2.value = false;
EndTime.value = e.value
form.value.endTime = timeFormat(e.value, 'yyyy-mm-dd hh:MM:ss');
@ -259,9 +281,10 @@ const cancel = (e) => {
}
</script>
<style lang="scss">
page{
page {
background-color: #FFFFFF;
}
.navbarcenter {
font-weight: 400;
font-size: 36rpx;
@ -309,7 +332,7 @@ page{
}
.char-count {
z-index:1;
z-index: 1;
text-align: right;
font-size: 24rpx;
color: #999999;
@ -343,7 +366,8 @@ page{
margin-top: 80rpx;
justify-content: space-between;
padding-bottom: 32rpx;
.cardxx-btn{
.cardxx-btn {
width: 330rpx;
height: 80rpx;
border-radius: 40rpx 40rpx 40rpx 40rpx;
@ -355,6 +379,7 @@ page{
align-items: center;
color: #FBFBFB;
}
.cgText {
background-color: #F8F8E3;
color: #999999;
@ -368,7 +393,8 @@ page{
text-align: left;
color: #C9F6F5 !important;
}
.btnInfo1{
.btnInfo1 {
width: 330rpx !important;
height: 80rpx !important;
}

View File

@ -3,6 +3,14 @@
font-weight: 600;
}
:deep(.uniui-left[data-v-d31e1c47]:before) {
font-weight: 600 !important;
}
:deep(.data-v-2fef5172 .uni-icons) {
font-weight: 600 !important;
}
:deep(.uni-nav-bar-text[data-v-26544265]) {
font-size: 36rpx !important;
font-weight: 600 !important;

View File

@ -1,10 +1,10 @@
<template>
<view class="uninavbars" @click="ReturnPage()">
<!-- <view class="uninavbars" @click="ReturnPage()">
<image src="../../../static/images/sign/return.png" @click="left_return"></image>
</view>
</view> -->
<view class="uninavbar">
<uni-nav-bar statusBar="false" :fixed="true" :border="false" :background-color=background_color
:title="title" />
<uni-nav-bar statusBar="false" left-icon="left" @clickLeft="ReturnPage" :fixed="true" :border="false"
:background-color=background_color :title="title" />
</view>
</template>
@ -43,6 +43,7 @@
top: 110rpx;
left: 32rpx;
}
/* #ifdef APP-PLUS */
.uninavbars {
position: fixed;

View File

@ -227,6 +227,7 @@ onPullDownRefresh((options) => {
console.log("下拉刷新,", queryParams.value);
getList();
})
//
const tabsClick = (index) => {
removePage()
if (index.state == 9) {

View File

@ -7,7 +7,7 @@
</template>
</up-navbar>
</view>
<view style="height: 100vh; overflow: auto;">
<view style=" overflow: auto;">
<view class="avtivityInfo">
<view>
<view class="cards">
@ -24,16 +24,33 @@
</view>
</view>
</view>
<view class="qrcode" v-if="actiInfoList.state == '2'">
<view class="qrcode" v-if="actiInfoList.state == '2' & actiInfoList.auditStatus == 0 ">
<image :src="basetoimg(actiInfoList.acQrcode)" style="width: 200rpx; height: 200rpx;"
@click="showqr = true"></image>
@click="showqr = true">
</image>
<view class="text">签到二维码</view>
</view>
<view style="width: 100%; height: 400rpx;"></view>
</view>
<view v-if=" actiInfoList.auditStatus == 0">
<!-- 当前是审核中就展示 -->
<view v-if="actiInfoList.auditStatus == 1 | actiInfoList.auditStatus == 2" class="infox4">
<view class="line"></view>
<view class="text1 text" >发布审核时间<span>{{ actiInfoList.startTime }}</span></view>
<view class="text2 text">审核状态<span style="color: #43CE8F">审核中</span></view>
</view>
<!-- 当前是未通过 -->
<view v-else-if="actiInfoList.auditStatus == 3 | actiInfoList.auditStatus == 4 " class="infox4">
<view class="line"></view>
<view class="text1 text" >发布审核时间<span>{{ actiInfoList.startTime }}</span></view>
<view class="text1 text">审核状态<span style="color: #F87863">未通过</span></view>
<view class="text2 text">未通过原因<span style="color: #F87863">{{actiInfoList.auditAdvice}}</span></view>
</view>
<!-- 进行中或者报名中就展示 -->
<view v-else-if="actiInfoList.auditStatus == 0">
<view class="infox1" v-if="actiInfoList.state == '1'">
<view>
<view v-if="dataopen">
@ -62,6 +79,7 @@
</view>
</view>
<view style="width: 100%; height: 400rpx;"></view>
<view class="infox3"></view>
@ -69,7 +87,8 @@
<up-overlay :show="showqr" @click="showqr = false">
<view class="warp">
<image class="rect" @tap.stop :src="basetoimg(actiInfoList.acQrcode)"
style="width: 600rpx; height: 600rpx"></image>
style="width: 600rpx; height: 600rpx">
</image>
</view>
</up-overlay>
</view>
@ -77,7 +96,7 @@
<script setup>
import { getTakePartsInfoByacId, gotoQrcode, gotoSing1, gotoSing2 } from "@/api/activityInfo/activityTakeInfo";
import { listInfo, getInfo, getInfoall,delInfo, addInfo, updateInfo } from "@/api/activityInfo/info";
import { listInfo, getInfo, getInfoall, delInfo, addInfo, updateInfo } from "@/api/activityInfo/info";
import { getDicts } from "@/api/system/dict/data";
import { onShow, onLoad } from '@dcloudio/uni-app';
import { ref, reactive, getCurrentInstance, toRefs, computed } from 'vue';
@ -112,9 +131,7 @@ const participation = (data) => {
const refObjects = limitedData.map(item => (QNDomain + item.avatar));
return refObjects;
}
function getAvatar() {
return QNDomain + actiInfoList.value.avatarInfo;
}
function basetoimg(e) {
return "data:image/png;base64," + e
@ -128,7 +145,7 @@ onLoad((options) => {
getInfoall(_id).then(e => {
participationInfo.value = e.data
dataopen.value = true;
console.log("参与人信息:",e);
console.log("参与人信息:", e);
})
getDicts('activity_state').then(e => {
activityState.value = e.data;
@ -162,32 +179,7 @@ const toimage = (url) => {
function cancel() {
open.value = !open.value;
}
const getDictLabelByValue = (state) => {
const dict = activityState.value.find((dict) => dict.dictValue === state);
return dict ? dict : '未知状态';
};
const goSing = (e) => {
if (e === 0) {
//
gotoSing2(activityAttendInfo.value.id).then(e => {
proxy.$modal.msgSuccess("取消报名成功!");
actiInfoList.value.elroll -= 1
})
}
if (e === 1) {
//
gotoSing1(activityAttendInfo.value.id).then(e => {
proxy.$modal.msgSuccess("报名成功!");
actiInfoList.value.elroll += 1
})
}
//
checkStatus(actiInfoList.value.id);
}
const goQrcode = () => {
uni.scanCode({
onlyFromCamera: true,
@ -203,16 +195,7 @@ const goQrcode = () => {
}
function confirm() {
open.value = !open.value;
activityAttendInfo.value.qrcodeInfo = JSON.stringify(qrcodeInfo.value)
gotoQrcode(activityAttendInfo.value).then(e => {
proxy.$modal.msgSuccess("签到成功!");
//
checkStatus(actiInfoList.value.id);
})
}
const toqrcode = (e) => {
qrcodeInfo.value = JSON.parse(e.result);
if (actiInfoList.value.id !== qrcodeInfo.value.id) {
@ -244,6 +227,7 @@ page {
width: 686rpx;
margin: 44rpx auto;
margin-bottom: 0;
.cards {
.title {
font-weight: 600 !important;
@ -353,7 +337,8 @@ page {
}
.infox3{
.infox3 {
width: 100%;
height: 68rpx;
background-color: #F6F6F6;
@ -386,10 +371,35 @@ page {
}
}
.warp {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
.infox4{
width: 686rpx;
height: 400rpx;
margin: 60rpx auto;
.line{
width: 100%;
height: 4rpx;
background-color: #F4F5F6;
border-radius: 2rpx 2rpx 2rpx 2rpx;
margin-bottom: 60rpx;
}
.text{
font-size: 30rpx;
color: #000000 !important;
}
.text1 {
margin-bottom: 24rpx;
}
.text2 {
}
}
</style>

View File

@ -38,8 +38,9 @@
<!-- 签到日期 -->
<view>
<view class="data">
<view class="data-view" v-for="(item,index) in datetime" :key="index">
<image v-if="item.isDate == true" class="data-image" src="../../static/images/sign/jin.png">
<view class="data-view" v-for="(item,index) in weekDates" :key="index">
<image v-if="item.isDate == true" class="data-image"
src="../../static/images/sign/one_l.png">
</image>
<image v-else class="data-image" src="../../static/images/sign/one.png"></image>
<text class="data-text">{{item.data}}</text>
@ -65,14 +66,18 @@
</view>
<view>
<text class="c-text">{{item.title}}</text>
<image style="width: 21rpx;height: 21rpx;margin-left: 36rpx;" src="../../static/images/sign/one.png">
<image style="width: 21rpx;height: 21rpx;margin-left: 36rpx;vertical-align: middle;"
src="../../static/images/sign/one.png">
</image>
<text class="count-text">{{item.count}}</text>
<text class="count-text">+{{item.rewards}}</text>
</view>
<view class="task-left">
<text class="left-text">{{item.content.title}} <text class="left-0text">
{{item.content.count}}
</text>{{item.content.cuent}}</text>
<text class="left-text">{{item.content}}</text>
<text v-show="item.conditons != null" class="left-text"
style="margin-left: 20rpx;">{{leftParenthesis}}</text>
<text v-show="item.conditons != null" class="left-0text">{{acquiesce}}</text>
<text v-show="item.conditons != null"
class="left-text">{{slash}}{{item.conditons}}{{rightParenthesis}}</text>
</view>
</view>
@ -102,6 +107,62 @@
<script setup>
import navbar_neadVue from "@/pages/common/navbar/navbar_nead.vue";
import ex from "@/pages/common/exchange/index.vue";
import {
listTask,
getTask,
delTask,
addTask,
updateTask
} from "@/api/signln/checktask/task";
import {
listSignTa,
getSignTa,
delSignTa,
addSignTa,
updateSignTa
} from "@/api/signln/SignTa/SignTa";
// 7
var date = new Date();
console.log("日" + date.getDate() + "年" + date.getFullYear() + "月" + (date.getMonth() + 1))
const datetimes = reactive([{
data: date.getDate(),
}])
const sdate = new Date();
const dayof = date.getDay();
const weekDates = reactive([]);
sdate.setDate(date.getDate() - dayof + (dayof === 0 ? -6 : 1));
console.log(dayof)
for (let i = 0; i < 7; i++) {
const date = new Date(sdate);
date.setDate(sdate.getDate() + i);
const list = {
data: date.getDate(),
isDate: false
}
weekDates.push(list);
}
//
const past = 12;
//
const cot = ref(2);
async function Ipp(ite) {
const indexs = weekDates.indexOf(weekDates.find(item => item.data == past));
for (let j = 0; j < ite; j++) {
weekDates.find(item => item.data == past + j).isDate = true;
}
}
Ipp(cot.value);
// console.log(indexs)
// console.log(weekDates)
const datetime = reactive([{
data: "12",
@ -148,7 +209,14 @@
}
function goTaskRight(id) {
arr.find(item => item.id == id).type = "成功";
// arr.find(item => item.id == id).type = "";
cot.value++;
Ipp(cot.value);
console.log(weekDates)
console.log(cot.value)
uni.showToast({
title: '成功',
// success icon
@ -163,7 +231,7 @@
reactive
} from "vue";
const count = ref("750");
const arr = reactive([{
let arr = ref([{
id: 1,
type: "立即签到",
title: "每日签到",
@ -219,6 +287,42 @@
},
}
])
// conditons: (0 /1)
// content: ""
// createBy: null
// createTime: null
// id: 1
// remark: null
// rewards: "1"
// title: ""
// type: ""
// updateBy: null
// updateTime: null
const leftParenthesis = ref("(")
const rightParenthesis = ref(")")
const slash = ref("/");
const acquiesce = ref("0");
/** 查询签到任务列表 */
function getList() {
listTask().then(response => {
arr.value = response.rows;
console.log(arr)
});
}
getList();
/** 查询签到详情列表 */
function getListsign() {
listSignTa().then(response => {
console.log("用户的信息"+response)
// console.log("SecurityUtils.getUserId();"+SecurityUtils.getUserId();)
});
}
getListsign();
</script>
@ -266,6 +370,7 @@
.top-left-text>text:last-child {
color: #000000;
font-weight: Regular;
font-weight: 600;
font-face: Microsoft YaHei;
font-size: 28rpx;
text-align: left;
@ -392,6 +497,7 @@
font-size: 24rpx;
text-align: left;
color: #000000;
vertical-align: middle;
}
.count-text {
@ -408,7 +514,7 @@
.task-right>text {
font-weight: Regular;
width: 95rpx;
/* width: 95rpx; */
height: 25rpx;
font-size: 24rpx;
text-align: left;
@ -425,7 +531,7 @@
}
.left-text {
display: block;
display: inline;
color: #999999;
font-weight: Regular;
font-face: Microsoft YaHei;
@ -489,6 +595,7 @@
margin-left: 24rpx;
padding-left: 2rpx;
margin-top: 48rpx;
border-radius: 0 32rpx 32rpx 32rpx;
}
.data-view {

View File

@ -1,8 +1,6 @@
<!-- 签到明细 -->
<template>
<navbar_neadVue title="签到明细"></navbar_neadVue>
<view style="position: fixed; z-index: -1; background-color: #ffffff; top: 0; bottom: 0;left: 0;right: 0;"></view>
<view style="background-color: #ffffff;">
@ -21,6 +19,13 @@
</template>
<script setup>
import {
listSign,
getSign,
delSign,
addSign,
updateSign
} from "@/api/signln/SignDetail/Sign";
import {
reactive,
ref
@ -71,6 +76,23 @@
type: "-"
},
]);
const data = reactive({
queryParams: {
pageNum: 1,
pageSize: 10
}
});
/** 查询签到明细列表 */
function getList() {
listSign(data.queryParams.value).then(response => {
console.log(response)
});
}
getList();
</script>
<style scoped>

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB