|
@ -0,0 +1,44 @@
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 查询活动详情列表
|
||||||
|
export function listInfo(query) {
|
||||||
|
return request({
|
||||||
|
url: '/activityInfo/info/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询活动详情详细
|
||||||
|
export function getInfo(id) {
|
||||||
|
return request({
|
||||||
|
url: '/activityInfo/info/' + id,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增活动详情
|
||||||
|
export function addInfo(data) {
|
||||||
|
return request({
|
||||||
|
url: '/activityInfo/info',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改活动详情
|
||||||
|
export function updateInfo(data) {
|
||||||
|
return request({
|
||||||
|
url: '/activityInfo/info',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除活动详情
|
||||||
|
export function delInfo(id) {
|
||||||
|
return request({
|
||||||
|
url: '/activityInfo/info/' + id,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
8
main.js
|
@ -6,10 +6,16 @@ import './permission.js' // permission
|
||||||
import iconConfig from './utils/icon/icon.js'
|
import iconConfig from './utils/icon/icon.js'
|
||||||
// main.js
|
// main.js
|
||||||
import uviewPlus from 'uview-plus'
|
import uviewPlus from 'uview-plus'
|
||||||
|
import { parseTime, resetForm, addDateRange, handleTree, selectDictLabel, selectDictLabels } from '@/utils/ruoyi'
|
||||||
export function createApp() {
|
export function createApp() {
|
||||||
const app = createSSRApp(App)
|
const app = createSSRApp(App)
|
||||||
app.config.globalProperties.iconConfig = iconConfig
|
app.config.globalProperties.iconConfig = iconConfig
|
||||||
|
app.config.globalProperties.parseTime = parseTime
|
||||||
|
app.config.globalProperties.resetForm = resetForm
|
||||||
|
app.config.globalProperties.handleTree = handleTree
|
||||||
|
app.config.globalProperties.addDateRange = addDateRange
|
||||||
|
app.config.globalProperties.selectDictLabel = selectDictLabel
|
||||||
|
app.config.globalProperties.selectDictLabels = selectDictLabels
|
||||||
app.use(uviewPlus)
|
app.use(uviewPlus)
|
||||||
app.use(store)
|
app.use(store)
|
||||||
|
|
||||||
|
|
143
pages.json
|
@ -7,14 +7,27 @@
|
||||||
"^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue"
|
"^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pages": [
|
"pages": [{
|
||||||
// {
|
"path": "pages/signln/harvestaddress",
|
||||||
// "path" : "pages/common/commentArea/commentArea",
|
"style": {
|
||||||
// "style" :
|
"navigationBarTitleText": "收货地址",
|
||||||
// {
|
"navigationStyle": "custom"
|
||||||
// "navigationBarTitleText" : "评论区"
|
}
|
||||||
// }
|
},
|
||||||
// },
|
{
|
||||||
|
"path": "pages/signln/exdetail",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "兑换商城详情",
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/signln/successfulexchange",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "兑换成功",
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/index",
|
"path": "pages/index",
|
||||||
"style": {
|
"style": {
|
||||||
|
@ -24,10 +37,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path" : "pages/signln/signid",
|
"path": "pages/signln/signid",
|
||||||
"style" :
|
"style": {
|
||||||
{
|
"navigationBarTitleText": "签到任务",
|
||||||
"navigationBarTitleText" : "签到任务",
|
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -40,23 +52,12 @@
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path" : "pages/signln/exchangemall",
|
"path": "pages/signln/exchangemall",
|
||||||
"style" :
|
"style": {
|
||||||
{
|
"navigationBarTitleText": "兑换商城",
|
||||||
"navigationBarTitleText" : "兑换商城",
|
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"path" : "pages/signln/exdetail",
|
|
||||||
"style" :
|
|
||||||
{
|
|
||||||
"navigationBarTitleText" : "兑换商城详情",
|
|
||||||
"navigationStyle": "custom"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "pages/common/talkState/publish",
|
"path": "pages/common/talkState/publish",
|
||||||
"style": {
|
"style": {
|
||||||
|
@ -81,10 +82,6 @@
|
||||||
"navigationBarTextStyle": "white"
|
"navigationBarTextStyle": "white"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "pages/loginInfo/login",
|
"path": "pages/loginInfo/login",
|
||||||
"style": {
|
"style": {
|
||||||
|
@ -96,52 +93,56 @@
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "注册"
|
"navigationBarTitleText": "注册"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
, {
|
{
|
||||||
"path": "pages/activity/index",
|
"path": "pages/activity/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "活动",
|
"navigationBarTitleText": "活动",
|
||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom",
|
||||||
"navigationBarTextStyle": "white"
|
"navigationBarTextStyle": "white"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
, {
|
{
|
||||||
"path": "pages/activity/info",
|
"path": "pages/activity/info",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "活动详情",
|
"navigationBarTitleText": "活动详情",
|
||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom",
|
||||||
"navigationBarTextStyle": "white"
|
"navigationBarTextStyle": "white"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
, {
|
{
|
||||||
"path": "pages/activity/publish",
|
"path": "pages/activity/publish",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "发布活动",
|
"navigationBarTitleText": "发布活动",
|
||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom",
|
||||||
"navigationBarTextStyle": "white"
|
"navigationBarTextStyle": "white"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
, {
|
{
|
||||||
"path": "pages/work/index",
|
"path": "pages/work/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "工作台"
|
"navigationBarTitleText": "工作台"
|
||||||
}
|
}
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"path": "pages/mine/index",
|
"path": "pages/mine/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "我的"
|
"navigationBarTitleText": "我的"
|
||||||
}
|
}
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"path": "pages/mine/avatar/index",
|
"path": "pages/mine/avatar/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "修改头像"
|
"navigationBarTitleText": "修改头像"
|
||||||
}
|
}
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"path": "pages/mine/info/index",
|
"path": "pages/mine/info/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "个人信息"
|
"navigationBarTitleText": "个人信息"
|
||||||
}
|
}
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"path": "pages/mine/info/edit",
|
"path": "pages/mine/info/edit",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "编辑资料"
|
"navigationBarTitleText": "编辑资料"
|
||||||
|
@ -158,32 +159,38 @@
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "修改密码"
|
"navigationBarTitleText": "修改密码"
|
||||||
}
|
}
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"path": "pages/mine/setting/index",
|
"path": "pages/mine/setting/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "应用设置"
|
"navigationBarTitleText": "应用设置"
|
||||||
}
|
}
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"path": "pages/mine/help/index",
|
"path": "pages/mine/help/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "常见问题"
|
"navigationBarTitleText": "常见问题"
|
||||||
}
|
}
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"path": "pages/mine/about/index",
|
"path": "pages/mine/about/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "关于我们"
|
"navigationBarTitleText": "关于我们"
|
||||||
}
|
}
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"path": "pages/common/webview/index",
|
"path": "pages/common/webview/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "浏览网页"
|
"navigationBarTitleText": "浏览网页"
|
||||||
}
|
}
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"path": "pages/common/textview/index",
|
"path": "pages/common/textview/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "浏览文本"
|
"navigationBarTitleText": "浏览文本"
|
||||||
}
|
}
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"path": "pages/search/index",
|
"path": "pages/search/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "搜索"
|
"navigationBarTitleText": "搜索"
|
||||||
|
@ -195,6 +202,31 @@
|
||||||
"navigationBarTitleText": "添加好友"
|
"navigationBarTitleText": "添加好友"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "pages/common/navbar/navbar_nead",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "navbar"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/Friend/messagenotification",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/Friend/addfruebd",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/common/exchange/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path" : "pages/post/postInfo/postInfo",
|
"path" : "pages/post/postInfo/postInfo",
|
||||||
"style" :
|
"style" :
|
||||||
|
@ -209,15 +241,6 @@
|
||||||
"navigationBarTitleText" : "发布话题"
|
"navigationBarTitleText" : "发布话题"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// {
|
|
||||||
// "path": "pages/signln/signiddetails",
|
|
||||||
// "style": {
|
|
||||||
// "navigationBarTitleText": "签到明细",
|
|
||||||
// "navigationStyle": "custom"
|
|
||||||
// }
|
|
||||||
|
|
||||||
// }
|
|
||||||
],
|
],
|
||||||
"tabBar": {
|
"tabBar": {
|
||||||
"color": "#000000",
|
"color": "#000000",
|
||||||
|
@ -229,14 +252,12 @@
|
||||||
"iconPath": "static/images/tabbar/home.png",
|
"iconPath": "static/images/tabbar/home.png",
|
||||||
"selectedIconPath": "static/images/tabbar/home_.png",
|
"selectedIconPath": "static/images/tabbar/home_.png",
|
||||||
"text": "首页"
|
"text": "首页"
|
||||||
}
|
}, {
|
||||||
, {
|
|
||||||
"pagePath": "pages/activity/index",
|
"pagePath": "pages/activity/index",
|
||||||
"iconPath": "static/images/tabbar/tu1-4.png",
|
"iconPath": "static/images/tabbar/tu1-4.png",
|
||||||
"selectedIconPath": "static/images/tabbar/tu1-3.png",
|
"selectedIconPath": "static/images/tabbar/tu1-3.png",
|
||||||
"text": "活动"
|
"text": "活动"
|
||||||
}
|
}, {
|
||||||
, {
|
|
||||||
"pagePath": "pages/work/index",
|
"pagePath": "pages/work/index",
|
||||||
"iconPath": "static/images/tabbar/work.png",
|
"iconPath": "static/images/tabbar/work.png",
|
||||||
"selectedIconPath": "static/images/tabbar/work_.png",
|
"selectedIconPath": "static/images/tabbar/work_.png",
|
||||||
|
|
|
@ -48,10 +48,11 @@
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import { listInfo, getInfo, delInfo, addInfo, updateInfo } from "@/api/activityInfo/info";
|
||||||
import ActiInfoList from '../common/activityList/index.vue'
|
import ActiInfoList from '../common/activityList/index.vue'
|
||||||
import { onShow, onLoad } from '@dcloudio/uni-app'
|
import { onShow, onLoad } from '@dcloudio/uni-app'
|
||||||
import { getDicts } from "@/api/system/dict/data"
|
import { getDicts } from "@/api/system/dict/data"
|
||||||
import { ref, reactive, getCurrentInstance } from 'vue'
|
import { ref, reactive, getCurrentInstance,toRefs } from 'vue'
|
||||||
import { useStore } from 'vuex';
|
import { useStore } from 'vuex';
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const iconConfig = proxy.iconConfig;
|
const iconConfig = proxy.iconConfig;
|
||||||
|
@ -60,7 +61,7 @@ const tu22 = iconConfig.tu22;
|
||||||
const tu51 = iconConfig.tu51;
|
const tu51 = iconConfig.tu51;
|
||||||
const tu52 = iconConfig.tu52;
|
const tu52 = iconConfig.tu52;
|
||||||
const tu53 = iconConfig.tu53;
|
const tu53 = iconConfig.tu53;
|
||||||
const activityState = ref([])//字典
|
const total = ref()
|
||||||
const imgInfo = ref("")
|
const imgInfo = ref("")
|
||||||
// 创建响应式数据 ref('#001f3f')
|
// 创建响应式数据 ref('#001f3f')
|
||||||
const bgColor = ref('');
|
const bgColor = ref('');
|
||||||
|
@ -72,48 +73,97 @@ const list4 = reactive([
|
||||||
{ name: '进行中' },
|
{ name: '进行中' },
|
||||||
{ name: '已结束' }
|
{ name: '已结束' }
|
||||||
]);
|
]);
|
||||||
const actiInfoList = ref([
|
const actiInfoList = ref([]);
|
||||||
{
|
const data = reactive({
|
||||||
id: 1,
|
form: {},
|
||||||
title: '怎么评论爱德华·艾尔加这位音乐家及其他的作品,欢迎大家发表自己的看法?',
|
queryParams: {
|
||||||
startTime: '2023-05-01 15:00',
|
pageNum: 1,
|
||||||
endTime: '2023-05-01 16:00',
|
pageSize: 5,
|
||||||
state: '1',
|
launchUserId: null,
|
||||||
addrs: '天津电子信息职业技术学院操场东面'
|
accendCondition: null,
|
||||||
|
acName: null,
|
||||||
|
acTitle: null,
|
||||||
|
acContent: null,
|
||||||
|
startTime: null,
|
||||||
|
endTime: null,
|
||||||
|
state: null,
|
||||||
|
addres: null,
|
||||||
|
longitude: null,
|
||||||
|
latitude: null,
|
||||||
|
file: null,
|
||||||
|
elroll: null,
|
||||||
|
acQrcode: null,
|
||||||
|
tab: null,
|
||||||
|
readCount: null,
|
||||||
|
transmitCount: null,
|
||||||
|
likeCount: null,
|
||||||
|
commentCount: null,
|
||||||
|
favoriteCount: null,
|
||||||
|
postTop: null,
|
||||||
|
type: null,
|
||||||
|
anonymity: null,
|
||||||
|
auditor: null,
|
||||||
|
auditStatus: null,
|
||||||
|
auditTime: null,
|
||||||
|
auditAdvice: null,
|
||||||
|
cut: null,
|
||||||
},
|
},
|
||||||
{
|
rules: {
|
||||||
id: 2,
|
auditStatus: [
|
||||||
title: '怎么评论爱德华·艾尔加这位音乐家及其他的作品,欢迎大家发表自己的看法?',
|
{ required: true, message: "状态0正常1待脱敏 2待审核 3脱敏未通过 4 审核未通过 5草稿不能为空", trigger: "change" }
|
||||||
startTime: '2023-05-01 15:00',
|
],
|
||||||
endTime: '2023-05-01 16:00',
|
|
||||||
state: '2',
|
|
||||||
addrs: '天津电子信息职业技术学院操场东面'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 3,
|
|
||||||
title: '怎么评论爱德华·艾尔加这位音乐家及其他的作品,欢迎大家发表自己的看法?',
|
|
||||||
startTime: '2023-05-01 15:00',
|
|
||||||
endTime: '2023-05-01 16:00',
|
|
||||||
state: '0',
|
|
||||||
addrs: '天津电子信息职业技术学院操场东面'
|
|
||||||
}
|
|
||||||
,
|
|
||||||
{
|
|
||||||
id: 4,
|
|
||||||
title: '怎么评论爱德华·艾尔加这位音乐家及其他的作品,欢迎大家发表自己的看法?',
|
|
||||||
startTime: '2023-05-01 15:00',
|
|
||||||
endTime: '2023-05-01 16:00',
|
|
||||||
state: '0',
|
|
||||||
addrs: '天津电子信息职业技术学院操场东面'
|
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
// 表单重置
|
||||||
|
function reset() {
|
||||||
|
form.value = {
|
||||||
|
id: null,
|
||||||
|
launchUserId: null,
|
||||||
|
accendCondition: null,
|
||||||
|
acName: null,
|
||||||
|
acTitle: null,
|
||||||
|
acContent: null,
|
||||||
|
startTime: null,
|
||||||
|
endTime: null,
|
||||||
|
state: null,
|
||||||
|
addres: null,
|
||||||
|
longitude: null,
|
||||||
|
latitude: null,
|
||||||
|
file: null,
|
||||||
|
elroll: null,
|
||||||
|
acQrcode: null,
|
||||||
|
tab: null,
|
||||||
|
readCount: null,
|
||||||
|
transmitCount: null,
|
||||||
|
likeCount: null,
|
||||||
|
commentCount: null,
|
||||||
|
favoriteCount: null,
|
||||||
|
postTop: null,
|
||||||
|
type: null,
|
||||||
|
anonymity: null,
|
||||||
|
createTime: null,
|
||||||
|
auditor: null,
|
||||||
|
auditStatus: null,
|
||||||
|
auditTime: null,
|
||||||
|
auditAdvice: null,
|
||||||
|
cut: null,
|
||||||
|
delFlag: null
|
||||||
|
};
|
||||||
|
proxy.resetForm("infoRef");
|
||||||
|
}
|
||||||
|
/** 查询活动详情列表 */
|
||||||
|
function getList() {
|
||||||
|
queryParams.value.params = {};
|
||||||
|
|
||||||
]);
|
listInfo(queryParams.value).then(response => {
|
||||||
|
console.log(response);
|
||||||
|
actiInfoList.value = response.rows;
|
||||||
|
total.value = response.total;
|
||||||
|
});
|
||||||
|
}
|
||||||
onLoad((options) => {
|
onLoad((options) => {
|
||||||
getDicts('activity_state').then(e => {
|
getList();
|
||||||
activityState.value = e.data
|
|
||||||
console.log(activityState.value);
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
onShow(() => {
|
onShow(() => {
|
||||||
|
@ -130,10 +180,7 @@ const scrolltolower = () => {
|
||||||
addrs: '天津电子信息职业技术学院操场东面'
|
addrs: '天津电子信息职业技术学院操场东面'
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
const getDictLabelByValue = (state) => {
|
|
||||||
const dict = activityState.value.find((dict) => dict.dictValue === state);
|
|
||||||
return dict ? dict : '未知状态';
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
function toESearch() {
|
function toESearch() {
|
||||||
|
|
|
@ -12,13 +12,15 @@
|
||||||
<view class="avtivityInfo">
|
<view class="avtivityInfo">
|
||||||
<view>
|
<view>
|
||||||
<view class="cards">
|
<view class="cards">
|
||||||
<view class="title"> {{ actiInfoList.title }}</view>
|
<view class="title"> {{ actiInfoList.acTitle }}</view>
|
||||||
<view class="time">活动时间:{{ actiInfoList.startTime }} - {{ actiInfoList.endTime }}</view>
|
<view class="time">活动时间:{{ actiInfoList.startTime }} - {{ actiInfoList.endTime }}</view>
|
||||||
<view class="addrs">活动地点:{{ actiInfoList.addrs }}</view>
|
<view class="addrs">活动地点:{{ actiInfoList.addres }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="cardz">{{ actiInfoList.activityInfo }}</view>
|
<view class="cardz">
|
||||||
<view class="cardx">
|
<up-parse :content="actiInfoList.acContent" :tagStyle="style"></up-parse>
|
||||||
<image :src="QNDomain + actiInfoList.url" class="image"></image>
|
</view>
|
||||||
|
<view class="cardx" v-for="(item,index) in toimage(actiInfoList.file)" :key="index">
|
||||||
|
<image :src="item" class="image"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
@ -40,21 +42,15 @@
|
||||||
<view class="elroll">已报名:{{ actiInfoList.elroll }}人</view>
|
<view class="elroll">已报名:{{ actiInfoList.elroll }}人</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="infox2">
|
<view class="infox2">
|
||||||
<up-modal :show="open" :title="title" width="600rpx"
|
<up-modal :show="open" :title="title" width="600rpx" :content='content' confirmText="签到" cancelText="取消"
|
||||||
:content='content' confirmText="签到"
|
confirmColor="#3477FC" showCancelButton closeOnClickOverlay @confirm="confirm" @cancel="cancel"></up-modal>
|
||||||
cancelText="取消"
|
|
||||||
confirmColor="#3477FC"
|
|
||||||
showCancelButton
|
|
||||||
closeOnClickOverlay
|
|
||||||
@confirm="confirm"
|
|
||||||
@cancel="cancel"
|
|
||||||
></up-modal>
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import { listInfo, getInfo, delInfo, addInfo, updateInfo } from "@/api/activityInfo/info";
|
||||||
import { onShow, onLoad } from '@dcloudio/uni-app'
|
import { onShow, onLoad } from '@dcloudio/uni-app'
|
||||||
import { ref, reactive, getCurrentInstance } from 'vue'
|
import { ref, reactive, getCurrentInstance,toRefs } from 'vue'
|
||||||
import { useStore } from 'vuex';
|
import { useStore } from 'vuex';
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const iconConfig = proxy.iconConfig;
|
const iconConfig = proxy.iconConfig;
|
||||||
|
@ -63,45 +59,69 @@ const tu22 = iconConfig.tu22;
|
||||||
const tu51 = iconConfig.tu51;
|
const tu51 = iconConfig.tu51;
|
||||||
const tu52 = iconConfig.tu52;
|
const tu52 = iconConfig.tu52;
|
||||||
const tu53 = iconConfig.tu53;
|
const tu53 = iconConfig.tu53;
|
||||||
|
const style = ref({
|
||||||
|
p: 'font-weight: 400;font-size: 24rpx;color: #000000 !important;',
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
const open = ref(false)
|
const open = ref(false)
|
||||||
const title = ref('确认签到');
|
const title = ref('确认签到');
|
||||||
const content = ref('请您确认活动签到,祝您玩的愉快!');
|
const content = ref('请您确认活动签到,祝您玩的愉快!');
|
||||||
// 创建响应式数据 ref('#001f3f')
|
// 创建响应式数据 ref('#001f3f')
|
||||||
const bgColor = ref('');
|
const bgColor = ref('');
|
||||||
|
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
const QNDomain = store.state.user.QNDomain
|
const QNDomain = store.state.user.QNDomain
|
||||||
const actiInfoList = ref(
|
const actiInfoList = ref({});
|
||||||
{
|
|
||||||
title: '社团招新|广纳新人(文学社)',
|
|
||||||
startTime: '2024.06.01 12:00',
|
|
||||||
endTime: '2024.06.01 14:00',
|
|
||||||
state: '1',
|
|
||||||
addrs: '天津电子信息职业技术学院操场东面',
|
|
||||||
activityInfo: '社团招新是各大高校、社区或其他组织为了吸引新成员、注入新鲜血液而举办的活动。以下是社团招新的一些关键要点和通常的步骤1.确骤1.确定招新目标和需求:社团需要明确自己想要吸引什么样的新成员,以及这些新成员能为社团带来什么。这有助于社团骤1.确定招新目标和需求:社团需要明确自己想要吸引什么样的新成员,以及这些新成员能为社团带来什么。这有助于社团骤1.确定招新目标和需求:社团需要明确自己想要吸引什么样的新成员,以及这些新成员能为社团带来什么。这有助于社团定招新目标和需求:社团需要明确自己想要吸引什么样的新成员,以及这些新成员能为社团带来什么。这有助于社团更有针对性地制定招新计划和策略。2.制定招新计划:包括招新时间、地点、方式等。例如,可以在新生入学时举办招新活动,卖或者在校园内的显眼位置设立招新摊位。3.宣传和推广:社团需要通过各种渠道进行宣传,如校园广播、海报、社交媒体等以吸引潜在的新成员。宣传内容应突出社团的特色和优势,让更多人了解和关注。4.举办招新活动:在招招新是各大高校、社区或其他组织为了吸引新成员、注入新鲜血液而举办的活动。以下是社团招新的一些关键要点和通常的步骤1.确定招新目标和需求:社团需要明确自己想要吸引什么样的新成员,新期间,社团可以组织各种有趣的活动,如现场表演、游戏互动、展览展示等,以展示社团的风采和实力,同时吸引更多人参与。',
|
|
||||||
url: 'home/test/image/png/45feb5093f71dbdbec7329ca1822da0_20240601133007403.png',
|
|
||||||
launchAvatarsurl: 'home/test/image/jpeg/test1_20240531151817921.jpg',
|
|
||||||
launchName: '爱吃饭的小张',
|
|
||||||
launchAddres: '天津电子信息职业技术学院',
|
|
||||||
elroll: '123'
|
|
||||||
}
|
|
||||||
|
|
||||||
);
|
|
||||||
onLoad((options) => {
|
onLoad((options) => {
|
||||||
console.log("页面参数:", options.id);
|
const _id = options.id
|
||||||
|
getInfo(_id).then(response => {
|
||||||
|
actiInfoList.value = response.data;
|
||||||
|
console.log("actiInfoList:",actiInfoList.value);
|
||||||
|
});
|
||||||
})
|
})
|
||||||
const leftClick = () => {
|
const leftClick = () => {
|
||||||
proxy.$tab.navigateBack(1)
|
proxy.$tab.navigateBack(1)
|
||||||
}
|
}
|
||||||
|
const qrcodeInfo = ref()
|
||||||
const btnClick = () => {
|
const btnClick = () => {
|
||||||
|
uni.scanCode({
|
||||||
|
onlyFromCamera: true,
|
||||||
|
success: (res) => {
|
||||||
|
console.log('扫描二维码成功,结果:',res);
|
||||||
|
|
||||||
|
toqrcode(res);
|
||||||
open.value = !open.value
|
open.value = !open.value
|
||||||
|
},
|
||||||
|
error: (res) => {
|
||||||
|
console.log('扫描二维码出现错误')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
const toimage = (url) => {
|
||||||
|
console.log(QNDomain);
|
||||||
|
if (typeof url === 'string') {
|
||||||
|
let info = url.split(",");
|
||||||
|
// 使用map方法处理每个元素,给每个元素增加domainName前缀
|
||||||
|
let processedInfo = info.map(item => QNDomain + item);
|
||||||
|
console.log("processedInfo", processedInfo);
|
||||||
|
// 使用join方法将数组转换成字符串,这里使用逗号作为分隔符
|
||||||
|
return processedInfo;
|
||||||
|
}
|
||||||
|
return null; // 或者其他默认值
|
||||||
|
}
|
||||||
|
const toqrcode = (e) => {
|
||||||
|
qrcodeInfo.value = JSON.parse(e.result)
|
||||||
|
console.log("信息:",qrcodeInfo.value);
|
||||||
}
|
}
|
||||||
//模态框确认按钮
|
//模态框确认按钮
|
||||||
function confirm () {
|
function confirm() {
|
||||||
open.value = !open.value
|
open.value = !open.value
|
||||||
}
|
}
|
||||||
//模态框取消按钮
|
//模态框取消按钮
|
||||||
function cancel () {
|
function cancel() {
|
||||||
open.value = !open.value
|
open.value = !open.value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -169,6 +189,7 @@ function cancel () {
|
||||||
.dictAuto {
|
.dictAuto {
|
||||||
margin: 4rpx auto;
|
margin: 4rpx auto;
|
||||||
margin-bottom: 400rpx;
|
margin-bottom: 400rpx;
|
||||||
|
|
||||||
.state1 {
|
.state1 {
|
||||||
width: 686rpx;
|
width: 686rpx;
|
||||||
height: 80rpx;
|
height: 80rpx;
|
||||||
|
@ -190,23 +211,35 @@ function cancel () {
|
||||||
height: 88rpx;
|
height: 88rpx;
|
||||||
padding-left: 32rpx;
|
padding-left: 32rpx;
|
||||||
padding-right: 32rpx;
|
padding-right: 32rpx;
|
||||||
position: fixed; /* 固定位置 */
|
position: fixed;
|
||||||
left: 0; /* 左对齐 */
|
/* 固定位置 */
|
||||||
right: 0; /* 右对齐 */
|
left: 0;
|
||||||
bottom: 68rpx; /* 底部对齐 */
|
/* 左对齐 */
|
||||||
border-top: 1px solid #ccc; /* 上边框 */
|
right: 0;
|
||||||
|
/* 右对齐 */
|
||||||
|
bottom: 68rpx;
|
||||||
|
/* 底部对齐 */
|
||||||
|
border-top: 1px solid #ccc;
|
||||||
|
/* 上边框 */
|
||||||
|
|
||||||
background-color: white; /* 背景色设置为白色,防止透明背景导致内容重叠可见 */
|
background-color: white;
|
||||||
|
/* 背景色设置为白色,防止透明背景导致内容重叠可见 */
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
}
|
}
|
||||||
.infox2{
|
|
||||||
position: fixed; /* 固定位置 */
|
.infox2 {
|
||||||
left: 0; /* 左对齐 */
|
position: fixed;
|
||||||
right: 0; /* 右对齐 */
|
/* 固定位置 */
|
||||||
bottom: 0; /* 底部对齐 */
|
left: 0;
|
||||||
|
/* 左对齐 */
|
||||||
|
right: 0;
|
||||||
|
/* 右对齐 */
|
||||||
|
bottom: 0;
|
||||||
|
/* 底部对齐 */
|
||||||
height: 68rpx;
|
height: 68rpx;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background-color: #f6f6f6;
|
background-color: #f6f6f6;
|
||||||
z-index: 10002; /* 确保在最上层 */
|
z-index: 10002;
|
||||||
|
/* 确保在最上层 */
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
|
@ -24,31 +24,46 @@
|
||||||
placeholderStyle="color: #c0c0c0;font-size: 30rpx; background:none;"></up-textarea>
|
placeholderStyle="color: #c0c0c0;font-size: 30rpx; background:none;"></up-textarea>
|
||||||
</view>
|
</view>
|
||||||
<view class="cardzfile">
|
<view class="cardzfile">
|
||||||
<fileUpload v-model="fileList1" :fileTypeInfo="fileTypeInfo1"></fileUpload>
|
<fileUpload v-model="fileList1" :fileTypeInfo="fileTypeInfo1" :limit="2"></fileUpload>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="cardx">
|
<view class="cardx">
|
||||||
<up-cell-group :border="false">
|
<up-cell-group :border="false">
|
||||||
<up-cell :isLink="true" :center="true">
|
<up-cell :isLink="true" :center="true" @click="startTime">
|
||||||
<template #title style="margin-top: 2rpx;width: 100%;height: 30rpx;display: flex;align-items: center;">
|
<template #title style="margin-top: 2rpx;width: 100%;height: 30rpx;display: flex;align-items: center;">
|
||||||
<image :src="tu52" style="width: 30rpx; height: 32rpx;"></image>
|
<image v-if="showtext1" :src="tu52" style="width: 30rpx; height: 32rpx;"></image>
|
||||||
<span>请选择活动开始时间</span>
|
<image v-else :src="tu522" style="width: 30rpx; height: 32rpx;"></image>
|
||||||
|
<span v-if="showtext1" >请选择活动开始时间</span>
|
||||||
|
<span v-else class="text2">{{parseTime(StartTime, '{y}-{m}-{d} {h}:{i}:{s}')}}</span>
|
||||||
|
<up-datetime-picker :show="showStartTime" v-model="newData"
|
||||||
|
:modelValue="newData"
|
||||||
|
@confirm="confirm1"
|
||||||
|
@cancel="cancel"
|
||||||
|
mode="datetime"></up-datetime-picker>
|
||||||
</template>
|
</template>
|
||||||
</up-cell>
|
</up-cell>
|
||||||
<up-cell :isLink="true" :center="true">
|
<up-cell :isLink="true" :center="true" @click="showEndTime =!showEndTime ">
|
||||||
<template #title style="margin-top: 2rpx;width: 100%;height: 30rpx;display: flex;align-items: center;">
|
<template #title style="margin-top: 2rpx;width: 100%;height: 30rpx;display: flex;align-items: center;">
|
||||||
<image :src="tu53" style="width: 30rpx; height: 32rpx;"></image>
|
<image v-if="showtext2" :src="tu53" style="width: 30rpx; height: 32rpx;"></image>
|
||||||
<span>请选择活动结束时间</span>
|
<image v-else :src="tu532" style="width: 30rpx; height: 32rpx;"></image>
|
||||||
|
<span v-if="showtext2">请选择活动结束时间</span>
|
||||||
|
<span v-else class="text2"> {{parseTime(EndTime, '{y}-{m}-{d} {h}:{i}:{s}')}}</span>
|
||||||
|
<up-datetime-picker :show="showEndTime" v-model="newData" @confirm="confirm2"
|
||||||
|
:modelValue="newData"
|
||||||
|
@cancel="cancel"
|
||||||
|
mode="datetime"></up-datetime-picker>
|
||||||
</template>
|
</template>
|
||||||
</up-cell>
|
</up-cell>
|
||||||
<up-cell :border="false" :isLink="true" :center="true">
|
<up-cell :border="false" :isLink="true" :center="true">
|
||||||
<template #title style="margin-top: 2rpx;width: 100%;height: 30rpx;display: flex;align-items: center;">
|
<template #title style="margin-top: 2rpx;width: 100%;height: 30rpx;display: flex;align-items: center;">
|
||||||
<image :src="tu51" style="width: 30rpx; height: 32rpx;"></image>
|
<image v-if="showtext3" :src="tu51" style="width: 30rpx; height: 32rpx;"></image>
|
||||||
|
<image v-else :src="tu512" style="width: 30rpx; height: 32rpx;"></image>
|
||||||
<span>添加活动具体位置</span>
|
<span>添加活动具体位置</span>
|
||||||
</template>
|
</template>
|
||||||
</up-cell>
|
</up-cell>
|
||||||
</up-cell-group>
|
</up-cell-group>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="cardxx">
|
<view class="cardxx">
|
||||||
<up-button color="#C9F6F5" size="large" shape="circle" @click="publish"><span
|
<up-button color="#C9F6F5" size="large" shape="circle" @click="publish"><span
|
||||||
class="fbText">发布</span></up-button>
|
class="fbText">发布</span></up-button>
|
||||||
|
@ -61,20 +76,31 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import fileUpload from '../common/file/fileUpload'
|
import fileUpload from '../common/file/fileUpload'
|
||||||
import { onShow, onLoad } from '@dcloudio/uni-app'
|
import { onShow, onLoad } from '@dcloudio/uni-app'
|
||||||
import { ref, reactive, getCurrentInstance } from 'vue'
|
import { ref, reactive, getCurrentInstance,computed } from 'vue'
|
||||||
import { useStore } from 'vuex';
|
import { useStore } from 'vuex';
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const iconConfig = proxy.iconConfig;
|
const iconConfig = proxy.iconConfig;
|
||||||
const tu51 = iconConfig.tu51;
|
const tu51 = iconConfig.tu51;
|
||||||
|
const tu512 = iconConfig.tu512;
|
||||||
const tu52 = iconConfig.tu52;
|
const tu52 = iconConfig.tu52;
|
||||||
|
const tu522 = iconConfig.tu522;
|
||||||
const tu53 = iconConfig.tu53;
|
const tu53 = iconConfig.tu53;
|
||||||
|
const tu532 = iconConfig.tu532;
|
||||||
const title = ref('')
|
const title = ref('')
|
||||||
const content = ref('');
|
const content = ref('');
|
||||||
|
|
||||||
const fileList1 = ref([])
|
const fileList1 = ref([])
|
||||||
const fileTypeInfo1 = ref('image')
|
const fileTypeInfo1 = ref('image')
|
||||||
const bgColor = ref('');
|
const bgColor = ref('');
|
||||||
bgColor.value = 'rgba(170, 0, 0, 0)'
|
bgColor.value = 'rgba(170, 0, 0, 0)'
|
||||||
|
const showStartTime = ref(false);
|
||||||
|
const showEndTime = ref(false);
|
||||||
|
const StartTime = ref('请选择活动开始时间')
|
||||||
|
const showtext1 = ref(true)
|
||||||
|
const showtext2 = ref(true)
|
||||||
|
const showtext3 = ref(true)
|
||||||
|
const EndTime = ref('请选择活动结束时间')
|
||||||
|
const newData = ref(new Date().getTime())
|
||||||
onLoad((options) => {
|
onLoad((options) => {
|
||||||
console.log("页面参数:", options.id);
|
console.log("页面参数:", options.id);
|
||||||
})
|
})
|
||||||
|
@ -87,8 +113,28 @@ const draft = () => {
|
||||||
const publish = () => {
|
const publish = () => {
|
||||||
console.log("发布");
|
console.log("发布");
|
||||||
}
|
}
|
||||||
|
const startTime = (e) => {
|
||||||
|
showStartTime.value = !showStartTime.value
|
||||||
|
}
|
||||||
|
const confirm1 = (e) => {
|
||||||
|
console.log(e);
|
||||||
|
showtext1.value = false;
|
||||||
|
StartTime.value = e.value
|
||||||
|
showStartTime.value = false
|
||||||
|
|
||||||
|
}
|
||||||
|
const confirm2 = (e) => {
|
||||||
|
console.log(e);
|
||||||
|
showtext2.value = false;
|
||||||
|
EndTime.value = e.value
|
||||||
|
showEndTime.value = false
|
||||||
|
}
|
||||||
|
const cancel = (e) => {
|
||||||
|
showStartTime.value = false
|
||||||
|
showEndTime.value = false
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" >
|
<style lang="scss">
|
||||||
.navbarcenter {
|
.navbarcenter {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
|
||||||
|
@ -170,5 +216,12 @@ const publish = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
.text2{
|
||||||
|
margin-left: 12rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 30rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #C9F6F5 !important;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
|
@ -5,7 +5,7 @@
|
||||||
<up-list-item v-for="(item, index) in modelValue" :key="index">
|
<up-list-item v-for="(item, index) in modelValue" :key="index">
|
||||||
<view class="listInfo" @click="toInfo(item)">
|
<view class="listInfo" @click="toInfo(item)">
|
||||||
<span class="titile">
|
<span class="titile">
|
||||||
{{ item.title }}
|
{{ item.acTitle }}
|
||||||
</span>
|
</span>
|
||||||
<view class="startTime flex alignCenter">
|
<view class="startTime flex alignCenter">
|
||||||
<image :src="tu52" style="width: 25rpx; height: 26rpx; margin-right: 12rpx;"></image>
|
<image :src="tu52" style="width: 25rpx; height: 26rpx; margin-right: 12rpx;"></image>
|
||||||
|
@ -17,16 +17,16 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="addrs flex alignCenter">
|
<view class="addrs flex alignCenter">
|
||||||
<image :src="tu51" style="width: 20rpx; height: 26rpx; margin-right: 12rpx;"></image>
|
<image :src="tu51" style="width: 20rpx; height: 26rpx; margin-right: 12rpx;"></image>
|
||||||
活动地点:{{ item.addrs }}
|
活动地点:{{ item.addres }}
|
||||||
</view>
|
</view>
|
||||||
<view class="statsInfo">
|
<view class="statsInfo">
|
||||||
<!-- 动态数据 -->
|
<!-- 动态数据 -->
|
||||||
<!-- <view :class="getDictLabelByValue(item.state).cssClass" >
|
<view :class="getDictLabelByValue(item.state).cssClass" >
|
||||||
<span class="text">{{ getDictLabelByValue(item.state).dictLabel }}</span></view> -->
|
<span class="text">{{ getDictLabelByValue(item.state).dictLabel }}</span></view>
|
||||||
<!-- 静态数据 -->
|
<!-- 静态数据 -->
|
||||||
<view class="state1">
|
<!-- <view class="state1">
|
||||||
<span class="text">报名中</span>
|
<span class="text">报名中</span>
|
||||||
</view>
|
</view> -->
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
@ -42,7 +42,7 @@ import { ref, reactive, getCurrentInstance } from 'vue'
|
||||||
import { useStore } from 'vuex';
|
import { useStore } from 'vuex';
|
||||||
const emit = defineEmits(['scrolltolower']);
|
const emit = defineEmits(['scrolltolower']);
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
|
const activityState = ref([])//字典
|
||||||
const iconConfig = proxy.iconConfig;
|
const iconConfig = proxy.iconConfig;
|
||||||
const tu21 = iconConfig.tu21;
|
const tu21 = iconConfig.tu21;
|
||||||
const tu22 = iconConfig.tu22;
|
const tu22 = iconConfig.tu22;
|
||||||
|
@ -60,6 +60,21 @@ const scrolltolower = () => {
|
||||||
const toInfo = (item) => {
|
const toInfo = (item) => {
|
||||||
proxy.$tab.navigateTo(`/pages/activity/info?id=${item.id}`);
|
proxy.$tab.navigateTo(`/pages/activity/info?id=${item.id}`);
|
||||||
}
|
}
|
||||||
|
const getDictLabelByValue = (state) => {
|
||||||
|
const dict = activityState.value.find((dict) => dict.dictValue === state);
|
||||||
|
return dict ? dict : '未知状态';
|
||||||
|
};
|
||||||
|
onLoad((options) => {
|
||||||
|
getDicts('activity_state').then(e => {
|
||||||
|
activityState.value = e.data
|
||||||
|
console.log(activityState.value);
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
onShow(() => {
|
||||||
|
console.log('Page onShow')
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.scrollable-list {
|
.scrollable-list {
|
||||||
|
|
|
@ -0,0 +1,204 @@
|
||||||
|
<!-- 兑换商城 -->
|
||||||
|
<template class="content">
|
||||||
|
<view class="cp">
|
||||||
|
<view class="view-content" v-for="(item,index) in arr" :key="index">
|
||||||
|
<view class="content-main">
|
||||||
|
<view class="content-image">
|
||||||
|
<image :src="item.src"></image>
|
||||||
|
</view>
|
||||||
|
<view class="content-text">
|
||||||
|
<view class="text1">
|
||||||
|
{{item.content}}
|
||||||
|
</view>
|
||||||
|
<view class="text-flex">
|
||||||
|
|
||||||
|
<view class="text2">
|
||||||
|
兑换所需
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="text3">
|
||||||
|
<image src="../../static/images/sign/1.png"></image>
|
||||||
|
<text>{{item.count}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
reactive
|
||||||
|
} from "vue";
|
||||||
|
|
||||||
|
const count = ref("750");
|
||||||
|
|
||||||
|
let arr = reactive([{
|
||||||
|
id: 1,
|
||||||
|
src: "https://cbu01.alicdn.com/img/ibank/2019/524/629/11890926425_297889188.jpg",
|
||||||
|
content: "[端午礼盒] 西凤酒52度头曲礼盒 陕西凤香型白酒礼11111111111",
|
||||||
|
count: 700
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
src: "https://cbu01.alicdn.com/img/ibank/2016/442/823/3216328244_1451018438.jpg",
|
||||||
|
content: "男生酷帅穿搭套装休闲夏季青少年潮牌短袖短裤初中1111111111 ",
|
||||||
|
count: 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
src: "https://ts1.cn.mm.bing.net/th/id/R-C.2bcea282254788c581f0a18f47efb5f8?rik=rcZeIVRgTcWUkQ&riu=http%3a%2f%2fhimg2.huanqiu.com%2fattachment2010%2f2019%2f0429%2f10%2f58%2f20190429105829589.jpg&ehk=HCIAZrOId0EVKf%2bFyNg7cgff6Cg8WLUCNHpaDgwi1ng%3d&risl=&pid=ImgRaw&r=0",
|
||||||
|
content: "男生酷帅穿搭套装休闲夏季青少年潮牌短袖短裤初中1111111111 ",
|
||||||
|
count: 500
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
src: "https://ts1.cn.mm.bing.net/th/id/R-C.2bcea282254788c581f0a18f47efb5f8?rik=rcZeIVRgTcWUkQ&riu=http%3a%2f%2fhimg2.huanqiu.com%2fattachment2010%2f2019%2f0429%2f10%2f58%2f20190429105829589.jpg&ehk=HCIAZrOId0EVKf%2bFyNg7cgff6Cg8WLUCNHpaDgwi1ng%3d&risl=&pid=ImgRaw&r=0",
|
||||||
|
content: "男生酷帅穿搭套装休闲夏季青少年潮牌短袖短裤初中1111111111 ",
|
||||||
|
count: 500
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
src: "https://ts1.cn.mm.bing.net/th/id/R-C.2bcea282254788c581f0a18f47efb5f8?rik=rcZeIVRgTcWUkQ&riu=http%3a%2f%2fhimg2.huanqiu.com%2fattachment2010%2f2019%2f0429%2f10%2f58%2f20190429105829589.jpg&ehk=HCIAZrOId0EVKf%2bFyNg7cgff6Cg8WLUCNHpaDgwi1ng%3d&risl=&pid=ImgRaw&r=0",
|
||||||
|
content: "男生酷帅穿搭套装休闲夏季青少年潮牌短袖短裤初中1111111111 ",
|
||||||
|
count: 500
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
src: "https://ts1.cn.mm.bing.net/th/id/R-C.2bcea282254788c581f0a18f47efb5f8?rik=rcZeIVRgTcWUkQ&riu=http%3a%2f%2fhimg2.huanqiu.com%2fattachment2010%2f2019%2f0429%2f10%2f58%2f20190429105829589.jpg&ehk=HCIAZrOId0EVKf%2bFyNg7cgff6Cg8WLUCNHpaDgwi1ng%3d&risl=&pid=ImgRaw&r=0",
|
||||||
|
content: "男生酷帅穿搭套装休闲夏季青少年潮牌短袖短裤初中1111111111 ",
|
||||||
|
count: 500
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
src: "https://ts1.cn.mm.bing.net/th/id/R-C.2bcea282254788c581f0a18f47efb5f8?rik=rcZeIVRgTcWUkQ&riu=http%3a%2f%2fhimg2.huanqiu.com%2fattachment2010%2f2019%2f0429%2f10%2f58%2f20190429105829589.jpg&ehk=HCIAZrOId0EVKf%2bFyNg7cgff6Cg8WLUCNHpaDgwi1ng%3d&risl=&pid=ImgRaw&r=0",
|
||||||
|
content: "男生酷帅穿搭套装休闲夏季青少年潮牌短袖短裤初中1111111111 ",
|
||||||
|
count: 500
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
|
function return_left() {
|
||||||
|
console.log("返回事件")
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.content {
|
||||||
|
background: #faf9fa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.view-top {
|
||||||
|
/* height: 100rpx; */
|
||||||
|
}
|
||||||
|
|
||||||
|
.view-top-rigth-text {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
margin-left: 479rpx;
|
||||||
|
margin-right: 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.view-top-rigth-text>text {
|
||||||
|
font-weight: Regular;
|
||||||
|
width: 239rpx;
|
||||||
|
height: 31rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.cp {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: auto auto;
|
||||||
|
margin-left: 32rpx;
|
||||||
|
margin-right: 32rpx;
|
||||||
|
margin-top: 23rpx;
|
||||||
|
grid-column-gap: 26rpx;
|
||||||
|
grid-row-gap: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.view-content {
|
||||||
|
width: 330rpx;
|
||||||
|
height: 482rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-main {
|
||||||
|
width: 330rpx;
|
||||||
|
height: 482rpx;
|
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||||||
|
background: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-image>image {
|
||||||
|
width: 330rpx;
|
||||||
|
height: 330rpx;
|
||||||
|
border-radius: 24rpx 24rpx 0 0;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-text {
|
||||||
|
margin-left: 24rpx;
|
||||||
|
margin-top: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text1 {
|
||||||
|
font-weight: Regular;
|
||||||
|
width: 266rpx;
|
||||||
|
height: 54rpx;
|
||||||
|
line-height: 27rpx;
|
||||||
|
font-size: 22rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #000000;
|
||||||
|
|
||||||
|
overflow: hidden;
|
||||||
|
word-wrap: break-word;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 2;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-flex {
|
||||||
|
margin-top: 28rpx;
|
||||||
|
width: 330rpx;
|
||||||
|
height: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text2 {
|
||||||
|
font-weight: Regular;
|
||||||
|
width: 100rpx;
|
||||||
|
height: 20rpx;
|
||||||
|
font-size: 20rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #999999;
|
||||||
|
line-height: 20rpx;
|
||||||
|
align-items: center;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text3 {
|
||||||
|
float: right;
|
||||||
|
margin-right: 24rpx;
|
||||||
|
line-height: 19rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text3>image {
|
||||||
|
width: 21rpx;
|
||||||
|
height: 21rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text3>text {
|
||||||
|
font-weight: Regular;
|
||||||
|
width: 41rpx;
|
||||||
|
height: 19rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #f99b46;
|
||||||
|
padding: 1rpx;
|
||||||
|
margin-left: 8rpx;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -42,7 +42,7 @@ const props = defineProps({
|
||||||
fileSize: {
|
fileSize: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 100 * 1024 * 1024,
|
default: 100 * 1024 * 1024,
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const url = ref('');
|
const url = ref('');
|
||||||
|
@ -82,7 +82,7 @@ const form = reactive({
|
||||||
|
|
||||||
// 新增图片
|
// 新增图片
|
||||||
const afterRead = async (event) => {
|
const afterRead = async (event) => {
|
||||||
console.log("event:", event);
|
|
||||||
let name = event.name;
|
let name = event.name;
|
||||||
let lists = [].concat(event.file);
|
let lists = [].concat(event.file);
|
||||||
let fileListLen = fileList1.value.length;
|
let fileListLen = fileList1.value.length;
|
||||||
|
@ -113,7 +113,7 @@ const afterRead = async (event) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const uploadFilePromise = async (fileInfo1, name) => {
|
const uploadFilePromise = async (fileInfo1, name) => {
|
||||||
console.log("fileInfo1:",fileInfo1);
|
|
||||||
// 主要目的的拼名字,大小,类型
|
// 主要目的的拼名字,大小,类型
|
||||||
let fileNameOld = [0, 1];
|
let fileNameOld = [0, 1];
|
||||||
if (fileInfo1.name !== undefined) {
|
if (fileInfo1.name !== undefined) {
|
||||||
|
@ -130,7 +130,7 @@ const uploadFilePromise = async (fileInfo1, name) => {
|
||||||
}
|
}
|
||||||
//主要是为了拼接文件type(video/mp4),因为各端传入的type各有不同
|
//主要是为了拼接文件type(video/mp4),因为各端传入的type各有不同
|
||||||
fileInfo.type = fileInfo1.type + "/" + extension1[extension1.length-1];
|
fileInfo.type = fileInfo1.type + "/" + extension1[extension1.length-1];
|
||||||
console.log("fileInfo.type:",fileInfo);
|
|
||||||
fileInfo.extension = extension1[1];
|
fileInfo.extension = extension1[1];
|
||||||
try {
|
try {
|
||||||
const tokenData = await getQNtoken(fileInfo);
|
const tokenData = await getQNtoken(fileInfo);
|
||||||
|
@ -211,7 +211,7 @@ const deletePic = (e) => {
|
||||||
|
|
||||||
const typeInfo = () => {
|
const typeInfo = () => {
|
||||||
store.dispatch('getPhoneType');
|
store.dispatch('getPhoneType');
|
||||||
console.log(store.state.user.phoneType);
|
|
||||||
};
|
};
|
||||||
// 对象转成指定字符串分隔
|
// 对象转成指定字符串分隔
|
||||||
function listToString(list, separator) {
|
function listToString(list, separator) {
|
||||||
|
|
|
@ -1,6 +1,27 @@
|
||||||
<template>
|
<template>
|
||||||
<view>
|
<view>
|
||||||
|
|
||||||
|
<view>
|
||||||
|
<!-- 顶部导航栏 -->
|
||||||
|
<up-navbar leftText="" title="" :placeholder="true" :safeAreaInsetTop="true" @leftClick="leftClick"
|
||||||
|
:bgColor="bgColor">
|
||||||
|
|
||||||
|
<template #center>
|
||||||
|
<div class="navbarcenter"><span>发布话题</span></div>
|
||||||
|
</template>
|
||||||
|
</up-navbar>
|
||||||
|
</view>
|
||||||
|
<image class="bacimg2" :src="sh2x"></image>
|
||||||
|
<view class="bgc"></view>
|
||||||
|
<view class="cardz">
|
||||||
|
<image :src="sh2x1" class="shenhe2x1"></image>
|
||||||
|
<span class="text">待审核</span>
|
||||||
|
</view>
|
||||||
|
<view style="position: fixed; top: 632rpx; width: 100%; padding-left: 32rpx; padding-right: 32rpx;">
|
||||||
|
<up-button color="#c0f0ec" size="large" shape="circle" @click="publish"><span
|
||||||
|
class="fbText">继续发布</span></up-button>
|
||||||
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
|
@ -12,7 +33,71 @@ const emit = defineEmits(['scrolltolower']);
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
const iconConfig = proxy.iconConfig;
|
const iconConfig = proxy.iconConfig;
|
||||||
const tu21 = iconConfig.tu21;
|
const sh2x1 = iconConfig.sh2x1;
|
||||||
|
const sh2x = iconConfig.sh2x;
|
||||||
|
const bgColor = ref('');
|
||||||
|
bgColor.value = 'rgba(170, 0, 0, 0)'
|
||||||
|
|
||||||
|
const leftClick = () => {
|
||||||
|
proxy.$tab.navigateBack(1)
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.bacimg2 {
|
||||||
|
width: 508rpx;
|
||||||
|
height: 540rpx;
|
||||||
|
position: fixed;
|
||||||
|
top: -100rpx;
|
||||||
|
left: -100rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbarcenter {
|
||||||
|
font-weight: 400;
|
||||||
|
|
||||||
|
font-size: 36rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgc {
|
||||||
|
width: 100%;
|
||||||
|
height: 500rpx;
|
||||||
|
background: linear-gradient(-180deg, #a3e6df, #ffffff);
|
||||||
|
position: fixed;
|
||||||
|
top: 0rpx;
|
||||||
|
left: 0rpx;
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shenhe2x1 {
|
||||||
|
width: 232rpx;
|
||||||
|
height: 228rpx;
|
||||||
|
position: fixed;
|
||||||
|
top: 276rpx;
|
||||||
|
left: 260rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
font-weight: 400;
|
||||||
|
|
||||||
|
font-size: 48rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #00CCBE !important;
|
||||||
|
position: fixed;
|
||||||
|
top: 500rpx;
|
||||||
|
left: 300rpx;
|
||||||
|
}
|
||||||
|
.cardz{
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.fbText{
|
||||||
|
font-weight: 400;
|
||||||
|
|
||||||
|
font-size: 30rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #00CCBE !important;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
|
@ -1,6 +1,28 @@
|
||||||
<template>
|
<template>
|
||||||
<view>
|
<view>
|
||||||
|
|
||||||
|
<view>
|
||||||
|
<!-- 顶部导航栏 -->
|
||||||
|
<up-navbar leftText="" title="" :placeholder="true" :safeAreaInsetTop="true" @leftClick="leftClick"
|
||||||
|
:bgColor="bgColor">
|
||||||
|
|
||||||
|
<template #center>
|
||||||
|
<div class="navbarcenter"><span>发布话题</span></div>
|
||||||
|
</template>
|
||||||
|
</up-navbar>
|
||||||
|
</view>
|
||||||
|
<image class="bacimg2" :src="sb2x"></image>
|
||||||
|
<view class="bgc"></view>
|
||||||
|
<view class="cardz">
|
||||||
|
<image :src="sb2x1" class="shenhe2x1"></image>
|
||||||
|
<span class="text1">审核不通过</span>
|
||||||
|
<span class="text2">您提交的话题带有违禁词</span>
|
||||||
|
</view>
|
||||||
|
<view style="position: fixed; top: 632rpx; width: 100%; padding-left: 32rpx; padding-right: 32rpx;">
|
||||||
|
<up-button color="#FDE2E2" size="large" shape="circle" @click="publish"><span
|
||||||
|
class="fbText">继续发布</span></up-button>
|
||||||
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
|
@ -12,7 +34,85 @@ const emit = defineEmits(['scrolltolower']);
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
const iconConfig = proxy.iconConfig;
|
const iconConfig = proxy.iconConfig;
|
||||||
const tu21 = iconConfig.tu21;
|
|
||||||
|
const sb2x1 = iconConfig.sb2x1;
|
||||||
|
const sb2x = iconConfig.sb2x;
|
||||||
|
const bgColor = ref('');
|
||||||
|
bgColor.value = 'rgba(170, 0, 0, 0)'
|
||||||
|
|
||||||
|
const leftClick = () => {
|
||||||
|
proxy.$tab.navigateBack(1)
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.bacimg2 {
|
||||||
|
width: 508rpx;
|
||||||
|
height: 540rpx;
|
||||||
|
position: fixed;
|
||||||
|
top: -100rpx;
|
||||||
|
left: -100rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbarcenter {
|
||||||
|
font-weight: 400;
|
||||||
|
|
||||||
|
font-size: 36rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgc {
|
||||||
|
width: 100%;
|
||||||
|
height: 500rpx;
|
||||||
|
background: linear-gradient(-180deg, #fdecec, #ffffff);
|
||||||
|
position: fixed;
|
||||||
|
top: 0rpx;
|
||||||
|
left: 0rpx;
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shenhe2x1 {
|
||||||
|
width: 232rpx;
|
||||||
|
height: 228rpx;
|
||||||
|
position: fixed;
|
||||||
|
top: 276rpx;
|
||||||
|
left: 260rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text1 {
|
||||||
|
font-weight: 400;
|
||||||
|
|
||||||
|
font-size: 48rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #FFABAB !important;
|
||||||
|
position: fixed;
|
||||||
|
top: 500rpx;
|
||||||
|
left: 252rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text2 {
|
||||||
|
font-weight: 400;
|
||||||
|
|
||||||
|
font-size: 24rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #FFABAB !important;
|
||||||
|
position: fixed;
|
||||||
|
top: 560rpx;
|
||||||
|
left: 242rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardz {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fbText {
|
||||||
|
font-weight: 400;
|
||||||
|
|
||||||
|
font-size: 30rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #FFABAB !important;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
|
@ -11,10 +11,10 @@
|
||||||
</template>
|
</template>
|
||||||
</up-navbar>
|
</up-navbar>
|
||||||
</view>
|
</view>
|
||||||
<image class="bacimg2" :src="sh2x"></image>
|
<image class="bacimg2" :src="cg2x22"></image>
|
||||||
<view class="bgc"></view>
|
<view class="bgc"></view>
|
||||||
<view class="cardz">
|
<view class="cardz">
|
||||||
<image :src="sh2x1" class="shenhe2x1"></image>
|
<image :src="cg2x21" class="shenhe2x1"></image>
|
||||||
<span class="text">待审核</span>
|
<span class="text">待审核</span>
|
||||||
</view>
|
</view>
|
||||||
<view style="position: fixed; top: 632rpx; width: 100%; padding-left: 32rpx; padding-right: 32rpx;">
|
<view style="position: fixed; top: 632rpx; width: 100%; padding-left: 32rpx; padding-right: 32rpx;">
|
||||||
|
@ -33,8 +33,8 @@ const emit = defineEmits(['scrolltolower']);
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
const iconConfig = proxy.iconConfig;
|
const iconConfig = proxy.iconConfig;
|
||||||
const sh2x1 = iconConfig.sh2x1;
|
const cg2x21 = iconConfig.cg2x21;
|
||||||
const sh2x = iconConfig.sh2x;
|
const cg2x22 = iconConfig.cg2x21;
|
||||||
const bgColor = ref('');
|
const bgColor = ref('');
|
||||||
bgColor.value = 'rgba(170, 0, 0, 0)'
|
bgColor.value = 'rgba(170, 0, 0, 0)'
|
||||||
|
|
||||||
|
|
|
@ -1,104 +1,26 @@
|
||||||
<!-- 兑换商城 -->
|
<!-- 兑换商城 -->
|
||||||
<template class="content">
|
<template class="content">
|
||||||
|
<navbar_nead title="兑换商城"></navbar_nead>
|
||||||
<navbar_neadVue title="兑换商城"></navbar_neadVue>
|
|
||||||
|
|
||||||
<view class="view-top">
|
<view class="view-top">
|
||||||
<view class="view-top-rigth-text">
|
<view class="view-top-rigth-text">
|
||||||
<text>我的校园币:{{count}}</text>
|
<text>我的校园币:{{count}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="cp">
|
<ex></ex>
|
||||||
<view class="view-content" v-for="(item,index) in arr" :key="index">
|
|
||||||
<view class="content-main">
|
|
||||||
<view class="content-image">
|
|
||||||
<image :src="item.src"></image>
|
|
||||||
</view>
|
|
||||||
<view class="content-text">
|
|
||||||
<view class="text1">
|
|
||||||
{{item.content}}
|
|
||||||
</view>
|
|
||||||
<view class="text-flex">
|
|
||||||
|
|
||||||
<view class="text2">
|
|
||||||
兑换所需
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="text3">
|
|
||||||
<image src="../../static/images/sign/1.png"></image>
|
|
||||||
<text>{{item.count}}</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import navbar_nead from "@/pages/common/navbar/navbar_nead.vue";
|
||||||
|
import ex from "@/pages/common/exchange/index.vue";
|
||||||
import {
|
import {
|
||||||
ref,
|
ref,
|
||||||
reactive
|
reactive
|
||||||
} from "vue";
|
} from "vue";
|
||||||
|
|
||||||
import navbar_neadVue from "../common/navbar/navbar_nead.vue";
|
|
||||||
|
|
||||||
const count = ref("750");
|
const count = ref("750");
|
||||||
|
|
||||||
let arr = reactive([{
|
|
||||||
id: 1,
|
|
||||||
src: "https://cbu01.alicdn.com/img/ibank/2019/524/629/11890926425_297889188.jpg",
|
|
||||||
content: "[端午礼盒] 西凤酒52度头曲礼盒 陕西凤香型白酒礼11111111111",
|
|
||||||
count: 700
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 2,
|
|
||||||
src: "https://cbu01.alicdn.com/img/ibank/2016/442/823/3216328244_1451018438.jpg",
|
|
||||||
content: "男生酷帅穿搭套装休闲夏季青少年潮牌短袖短裤初中1111111111 ",
|
|
||||||
count: 200
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 3,
|
|
||||||
src: "https://ts1.cn.mm.bing.net/th/id/R-C.2bcea282254788c581f0a18f47efb5f8?rik=rcZeIVRgTcWUkQ&riu=http%3a%2f%2fhimg2.huanqiu.com%2fattachment2010%2f2019%2f0429%2f10%2f58%2f20190429105829589.jpg&ehk=HCIAZrOId0EVKf%2bFyNg7cgff6Cg8WLUCNHpaDgwi1ng%3d&risl=&pid=ImgRaw&r=0",
|
|
||||||
content: "男生酷帅穿搭套装休闲夏季青少年潮牌短袖短裤初中1111111111 ",
|
|
||||||
count: 500
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 3,
|
|
||||||
src: "https://ts1.cn.mm.bing.net/th/id/R-C.2bcea282254788c581f0a18f47efb5f8?rik=rcZeIVRgTcWUkQ&riu=http%3a%2f%2fhimg2.huanqiu.com%2fattachment2010%2f2019%2f0429%2f10%2f58%2f20190429105829589.jpg&ehk=HCIAZrOId0EVKf%2bFyNg7cgff6Cg8WLUCNHpaDgwi1ng%3d&risl=&pid=ImgRaw&r=0",
|
|
||||||
content: "男生酷帅穿搭套装休闲夏季青少年潮牌短袖短裤初中1111111111 ",
|
|
||||||
count: 500
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 3,
|
|
||||||
src: "https://ts1.cn.mm.bing.net/th/id/R-C.2bcea282254788c581f0a18f47efb5f8?rik=rcZeIVRgTcWUkQ&riu=http%3a%2f%2fhimg2.huanqiu.com%2fattachment2010%2f2019%2f0429%2f10%2f58%2f20190429105829589.jpg&ehk=HCIAZrOId0EVKf%2bFyNg7cgff6Cg8WLUCNHpaDgwi1ng%3d&risl=&pid=ImgRaw&r=0",
|
|
||||||
content: "男生酷帅穿搭套装休闲夏季青少年潮牌短袖短裤初中1111111111 ",
|
|
||||||
count: 500
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 3,
|
|
||||||
src: "https://ts1.cn.mm.bing.net/th/id/R-C.2bcea282254788c581f0a18f47efb5f8?rik=rcZeIVRgTcWUkQ&riu=http%3a%2f%2fhimg2.huanqiu.com%2fattachment2010%2f2019%2f0429%2f10%2f58%2f20190429105829589.jpg&ehk=HCIAZrOId0EVKf%2bFyNg7cgff6Cg8WLUCNHpaDgwi1ng%3d&risl=&pid=ImgRaw&r=0",
|
|
||||||
content: "男生酷帅穿搭套装休闲夏季青少年潮牌短袖短裤初中1111111111 ",
|
|
||||||
count: 500
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 3,
|
|
||||||
src: "https://ts1.cn.mm.bing.net/th/id/R-C.2bcea282254788c581f0a18f47efb5f8?rik=rcZeIVRgTcWUkQ&riu=http%3a%2f%2fhimg2.huanqiu.com%2fattachment2010%2f2019%2f0429%2f10%2f58%2f20190429105829589.jpg&ehk=HCIAZrOId0EVKf%2bFyNg7cgff6Cg8WLUCNHpaDgwi1ng%3d&risl=&pid=ImgRaw&r=0",
|
|
||||||
content: "男生酷帅穿搭套装休闲夏季青少年潮牌短袖短裤初中1111111111 ",
|
|
||||||
count: 500
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
|
|
||||||
function return_left(){
|
|
||||||
console.log("返回事件")
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.content {
|
|
||||||
background: #faf9fa;
|
|
||||||
}
|
|
||||||
|
|
||||||
.view-top {
|
.view-top {
|
||||||
/* height: 100rpx; */
|
/* height: 100rpx; */
|
||||||
}
|
}
|
||||||
|
@ -117,98 +39,4 @@
|
||||||
text-align: left;
|
text-align: left;
|
||||||
color: #000000;
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.cp {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: auto auto;
|
|
||||||
margin-left: 32rpx;
|
|
||||||
margin-right: 32rpx;
|
|
||||||
margin-top: 23rpx;
|
|
||||||
grid-column-gap: 26rpx;
|
|
||||||
grid-row-gap: 24rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.view-content {
|
|
||||||
width: 330rpx;
|
|
||||||
height: 482rpx;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content-main {
|
|
||||||
width: 330rpx;
|
|
||||||
height: 482rpx;
|
|
||||||
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
|
||||||
background: #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content-image>image {
|
|
||||||
width: 330rpx;
|
|
||||||
height: 330rpx;
|
|
||||||
border-radius: 24rpx 24rpx 0 0;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content-text {
|
|
||||||
margin-left: 24rpx;
|
|
||||||
margin-top: 24rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text1 {
|
|
||||||
font-weight: Regular;
|
|
||||||
width: 266rpx;
|
|
||||||
height: 54rpx;
|
|
||||||
line-height: 27rpx;
|
|
||||||
font-size: 22rpx;
|
|
||||||
text-align: left;
|
|
||||||
color: #000000;
|
|
||||||
|
|
||||||
overflow: hidden;
|
|
||||||
word-wrap: break-word;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
display: -webkit-box;
|
|
||||||
-webkit-box-orient: vertical;
|
|
||||||
-webkit-line-clamp: 2;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-flex {
|
|
||||||
margin-top: 28rpx;
|
|
||||||
width: 330rpx;
|
|
||||||
height: 20rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text2 {
|
|
||||||
font-weight: Regular;
|
|
||||||
width: 100rpx;
|
|
||||||
height: 20rpx;
|
|
||||||
font-size: 20rpx;
|
|
||||||
text-align: left;
|
|
||||||
color: #999999;
|
|
||||||
line-height: 20rpx;
|
|
||||||
align-items: center;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text3 {
|
|
||||||
float: right;
|
|
||||||
margin-right: 24rpx;
|
|
||||||
line-height: 19rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text3>image {
|
|
||||||
width: 21rpx;
|
|
||||||
height: 21rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text3>text {
|
|
||||||
font-weight: Regular;
|
|
||||||
width: 41rpx;
|
|
||||||
height: 19rpx;
|
|
||||||
font-size: 24rpx;
|
|
||||||
text-align: left;
|
|
||||||
color: #f99b46;
|
|
||||||
padding: 1rpx;
|
|
||||||
margin-left: 8rpx;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
|
@ -6,6 +6,32 @@
|
||||||
<view>
|
<view>
|
||||||
<image :src="images"></image>
|
<image :src="images"></image>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
<view class="but" @click="butOn()">
|
||||||
|
<text>立即兑换</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<uni-popup ref="popup" border-radius="32rpx 32rpx 0 0" background-color="#ffffff">
|
||||||
|
<view class="uni-popup-view">
|
||||||
|
<view class="uni-top">
|
||||||
|
<text class="uni-top-text">确认兑换</text>
|
||||||
|
<view style="float: right;margin-right: 32rpx;vertical-align:middle;">
|
||||||
|
<image style="width: 32rpx;height: 32rpx;" src="../../static/images/sign/关闭.png"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
<view>
|
||||||
|
<view>
|
||||||
|
<text></text>
|
||||||
|
<image src=""></image>
|
||||||
|
<text></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</uni-popup>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
@ -13,24 +39,89 @@
|
||||||
ref
|
ref
|
||||||
}
|
}
|
||||||
from "vue"
|
from "vue"
|
||||||
|
const popup = ref(null);
|
||||||
|
const images = ref("https://cbu01.alicdn.com/img/ibank/2018/374/990/9121099473_1558693147.jpg");
|
||||||
|
|
||||||
const images = ref("https://cbu01.alicdn.com/img/ibank/2016/442/823/3216328244_1451018438.jpg")
|
function butOn() {
|
||||||
|
popup.value.open('bottom');
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.uninavbar {
|
.uninavbar {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index:9999;
|
z-index: 9999;
|
||||||
top: 110rpx;
|
top: 110rpx;
|
||||||
left: 32rpx;
|
left: 32rpx;
|
||||||
}
|
}
|
||||||
.uninavbar > image{
|
|
||||||
|
.uninavbar>image {
|
||||||
width: 31rpx;
|
width: 31rpx;
|
||||||
height: 44rpx;
|
height: 44rpx;
|
||||||
color: #000000;
|
color: #000000;
|
||||||
}
|
}
|
||||||
view > image {
|
|
||||||
|
view>image {
|
||||||
width: 750rpx;
|
width: 750rpx;
|
||||||
height: 500rpx;
|
height: 500rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.but {
|
||||||
|
width: 686rpx;
|
||||||
|
height: 88rpx;
|
||||||
|
border-radius: 44rpx 44rpx 44rpx 44rpx;
|
||||||
|
background: linear-gradient(-90deg, #c9f6f5, #f7f8e3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.but>text {
|
||||||
|
font-weight: Regular;
|
||||||
|
width: 131rpx;
|
||||||
|
height: 33rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #000000;
|
||||||
|
display: block;
|
||||||
|
margin: auto;
|
||||||
|
line-height: 88rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bot-bot {
|
||||||
|
width: 750rpx;
|
||||||
|
height: 1000rpx;
|
||||||
|
border-radius: 32rpx 32rpx 0 0;
|
||||||
|
/* background: #ffffff; */
|
||||||
|
background-color: #000000;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 40rpx;
|
||||||
|
left: 0rpx;
|
||||||
|
transition: bottom 5s;
|
||||||
|
/* Slide in effect */
|
||||||
|
}
|
||||||
|
|
||||||
|
.buts {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 91rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.uni-popup-view{
|
||||||
|
position: relative;
|
||||||
|
left: 0rpx;
|
||||||
|
height: 70vh;
|
||||||
|
width: 750rpx;
|
||||||
|
margin-top: 31rpx;
|
||||||
|
}
|
||||||
|
.uni-top{
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.uni-top-text {
|
||||||
|
font-weight: Regular;
|
||||||
|
width: 124rpx;
|
||||||
|
height: 31rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #000000;
|
||||||
|
display: block;
|
||||||
|
margin: auto;
|
||||||
|
line-height: 31rpx;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
|
@ -0,0 +1,178 @@
|
||||||
|
<!-- 收货地址 -->
|
||||||
|
<template>
|
||||||
|
<navbar_neadVue title="收货地址" background_color="#ffffff"></navbar_neadVue>
|
||||||
|
|
||||||
|
<!-- 有地址 -->
|
||||||
|
<view v-if="arr.length >= 1" v-for="(item,index) in arr" :key="index">
|
||||||
|
<view class="haveaddress" @click="HaveAddress(item.id)">
|
||||||
|
<text class="textname">
|
||||||
|
{{item.name}}<text class="textphone">{{item.phone}}</text>
|
||||||
|
</text>
|
||||||
|
<image v-if="IsHave === item.id" class="image" src="../../static/images/sign/选中.png"></image>
|
||||||
|
<image v-else class="image" src="../../static/images/sign/未选中.png"></image>
|
||||||
|
|
||||||
|
<text class="textaddress">{{item.address}}</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="butview">
|
||||||
|
<view class="but">
|
||||||
|
<text>确定地址</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 添加收货地址 -->
|
||||||
|
<view class="noadderes" v-else>
|
||||||
|
<image class="icons" src="../../static/images/sign/暂无地址.png"></image>
|
||||||
|
<text class="notext">暂无收货地址请添加</text>
|
||||||
|
|
||||||
|
<view class="butview">
|
||||||
|
<view class="but">
|
||||||
|
<text>添加地址</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
reactive,
|
||||||
|
ref
|
||||||
|
} from "vue";
|
||||||
|
import navbar_neadVue from "@/pages/common/navbar/navbar_nead.vue";
|
||||||
|
|
||||||
|
const arr = reactive([{
|
||||||
|
id: 1,
|
||||||
|
name: "吴先生",
|
||||||
|
phone: "19993439121",
|
||||||
|
address: "天津 天津市 河北区 建昌道街道红星北路诗景颂院12号楼1单元120212号楼1单元120212号楼1单元1202天津 天津市 河北区 建昌道街道红星北路诗景颂院12号楼1单元1202",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
name: "王先生",
|
||||||
|
phone: "19993439121",
|
||||||
|
address: "天津 天津市 河北区 建昌道街道红星北路诗景颂院12号楼1单元120212号楼1单元120212号楼1单元1202天津 天津市 河北区 建昌道街道红星北路诗景颂院12号楼1单元1202",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
name: "李先生",
|
||||||
|
phone: "19993439121",
|
||||||
|
address: "天津 天津市 河北区 建昌道街道红星北路诗景颂院12号楼1单元120212号楼1单元120212号楼1单元1202天津 天津市 河北区 建昌道街道红星北路诗景颂院12号楼1单元1202",
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
|
const IsHave = ref(0)
|
||||||
|
|
||||||
|
console.log(arr.length)
|
||||||
|
|
||||||
|
function HaveAddress(id) {
|
||||||
|
IsHave.value = id;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
@import '@/pages/common/navbar/navbar.css';
|
||||||
|
|
||||||
|
.haveaddress {
|
||||||
|
width: 686rpx;
|
||||||
|
height: 156rpx;
|
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||||||
|
background: #ffffff;
|
||||||
|
margin-left: 32rpx;
|
||||||
|
margin-right: 32rpx;
|
||||||
|
margin-top: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.textname {
|
||||||
|
font-weight: Regular;
|
||||||
|
width: 72rpx;
|
||||||
|
height: 24rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.textphone {
|
||||||
|
margin-left: 27rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image {
|
||||||
|
width: 32rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
float: right;
|
||||||
|
margin-right: 24rpx;
|
||||||
|
margin-top: 62rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.textaddress {
|
||||||
|
color: #cbcbcb;
|
||||||
|
font-weight: Regular;
|
||||||
|
font-face: Microsoft YaHei;
|
||||||
|
font-size: 24rpx;
|
||||||
|
text-align: left;
|
||||||
|
line-height: 36rpx;
|
||||||
|
display: block;
|
||||||
|
margin-right: 137rpx;
|
||||||
|
margin-top: 27rpx;
|
||||||
|
|
||||||
|
overflow: hidden;
|
||||||
|
word-wrap: break-word;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icons {
|
||||||
|
position: absolute;
|
||||||
|
width: 256rpx;
|
||||||
|
height: 232rpx;
|
||||||
|
left: 247rpx;
|
||||||
|
top: 219rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notext {
|
||||||
|
font-weight: Regular;
|
||||||
|
width: 276rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #00CCBE;
|
||||||
|
position: absolute;
|
||||||
|
left: 232rpx;
|
||||||
|
top: 480rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.butview {
|
||||||
|
width: 750rpx;
|
||||||
|
height: 136rpx;
|
||||||
|
background: #ffffff;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 68rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.but {
|
||||||
|
width: 686rpx;
|
||||||
|
height: 88rpx;
|
||||||
|
border-radius: 44rpx 44rpx 44rpx 44rpx;
|
||||||
|
background: #c0f0ec;
|
||||||
|
margin-left: 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.but>text {
|
||||||
|
font-weight: Regular;
|
||||||
|
width: 123rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #00CCBE;
|
||||||
|
display: block;
|
||||||
|
margin: auto;
|
||||||
|
line-height: 88rpx;
|
||||||
|
margin-top: 22rpx;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -50,69 +50,6 @@ text-align: center;
|
||||||
color: #7E7E7E;">12日</text>
|
color: #7E7E7E;">12日</text>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li style="margin-left: 58rpx;">
|
|
||||||
<image style="width: 42rpx; height: 44rpx;" src="../../static/images/sign/1.png">
|
|
||||||
</image>
|
|
||||||
|
|
||||||
<text style="display: block; font-weight: Regular;
|
|
||||||
width: 60rpx;
|
|
||||||
height: 22rpx;
|
|
||||||
font-size: 24rpx;
|
|
||||||
text-align: left;
|
|
||||||
padding-right: 4rpx;
|
|
||||||
color: #7E7E7E;">12日</text>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li style="margin-left: 58rpx;">
|
|
||||||
<image style="width: 42rpx; height: 44rpx;" src="../../static/images/sign/1.png">
|
|
||||||
</image>
|
|
||||||
|
|
||||||
<text style="display: block; font-weight: Regular;
|
|
||||||
width: 60rpx;
|
|
||||||
height: 22rpx;
|
|
||||||
font-size: 24rpx;
|
|
||||||
text-align: left;
|
|
||||||
padding-right: 4rpx;
|
|
||||||
color: #7E7E7E;">12日</text>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li style="margin-left: 58rpx;">
|
|
||||||
<image style="width: 42rpx; height: 44rpx;" src="../../static/images/sign/1.png">
|
|
||||||
</image>
|
|
||||||
|
|
||||||
<text style="display: block; font-weight: Regular;
|
|
||||||
width: 60rpx;
|
|
||||||
height: 22rpx;
|
|
||||||
font-size: 24rpx;
|
|
||||||
text-align: left;
|
|
||||||
padding-right: 4rpx;
|
|
||||||
color: #7E7E7E;">12日</text>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li style="margin-left: 58rpx;">
|
|
||||||
<image style="width: 42rpx; height: 44rpx;" src="../../static/images/sign/1.png">
|
|
||||||
</image>
|
|
||||||
|
|
||||||
<text style="display: block; font-weight: Regular;
|
|
||||||
width: 60rpx;
|
|
||||||
height: 22rpx;
|
|
||||||
font-size: 24rpx;
|
|
||||||
text-align: left;
|
|
||||||
padding-right: 4rpx;
|
|
||||||
color: #7E7E7E;">12日</text>
|
|
||||||
</li>
|
|
||||||
<li style="margin-left: 58rpx;">
|
|
||||||
<image style="width: 42rpx; height: 44rpx;" src="../../static/images/sign/1.png">
|
|
||||||
</image>
|
|
||||||
|
|
||||||
<text style="display: block; font-weight: Regular;
|
|
||||||
width: 60rpx;
|
|
||||||
height: 22rpx;
|
|
||||||
font-size: 24rpx;
|
|
||||||
text-align: left;
|
|
||||||
padding-right: 4rpx;
|
|
||||||
color: #7E7E7E;">12日</text>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
@ -145,26 +82,40 @@ color: #7E7E7E;">12日</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view style="height: 24rpx;"></view>
|
<view style="height: 24rpx;"></view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
<view class="bottom">
|
||||||
|
<view class="bottom-left"></view>
|
||||||
|
<view class="bottom-text">
|
||||||
|
<text class="bottom-text-s">兑换商城</text>
|
||||||
|
<text class="bottom-text-r" @click="GoExchange()">更多 <text>></text></text>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|
||||||
<view>
|
<view>
|
||||||
|
<ex></ex>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import navbar_neadVue from "../common/navbar/navbar_nead.vue";
|
import navbar_neadVue from "@/pages/common/navbar/navbar_nead.vue";
|
||||||
import exchangemall from "./exchangemall.vue"
|
import ex from "@/pages/common/exchange/index.vue";
|
||||||
|
|
||||||
//
|
//
|
||||||
function GoTo() {
|
function GoTo() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: './signiddetails'
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
function GoExchange(){
|
||||||
|
uni.navigateTo({
|
||||||
|
url: './exchangemall'
|
||||||
|
});
|
||||||
|
}
|
||||||
import {
|
import {
|
||||||
ref,
|
ref,
|
||||||
reactive
|
reactive
|
||||||
|
@ -448,4 +399,45 @@ color: #7E7E7E;">12日</text>
|
||||||
font-size: 20rpx;
|
font-size: 20rpx;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bottom {
|
||||||
|
margin-right: 32rpx;
|
||||||
|
margin-left: 32rpx;
|
||||||
|
margin-top: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-left {
|
||||||
|
width: 4rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
border-radius: 2rpx 2rpx 2rpx 2rpx;
|
||||||
|
background: #f99b46;
|
||||||
|
float: left;
|
||||||
|
margin-top: 8rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-text-s {
|
||||||
|
font-weight: Regular;
|
||||||
|
/* width: 123rpx; */
|
||||||
|
height: 31rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #000000;
|
||||||
|
margin-left: 24rpx;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-text-r {
|
||||||
|
float: right;
|
||||||
|
font-weight: Regular;
|
||||||
|
/* width: 47rpx; */
|
||||||
|
height: 24rpx;
|
||||||
|
line-height: 48rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #999999;
|
||||||
|
vertical-align: baseline;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-text-r>text {}
|
||||||
</style>
|
</style>
|
|
@ -1,8 +1,7 @@
|
||||||
<!-- 签到明细 -->
|
<!-- 签到明细 -->
|
||||||
<template>
|
<template>
|
||||||
<view class="uninavbar">
|
<navbar_neadVue title="签到明细"></navbar_neadVue>
|
||||||
<uni-nav-bar statusBar="false" :border="false" left-icon="leftIcon" title="签到明细" />
|
<view style="background-color: #ffffff;">
|
||||||
</view>
|
|
||||||
<view style="height: 24rpx;"></view>
|
<view style="height: 24rpx;"></view>
|
||||||
<view class="content" v-for="(item,index) in arr" :key="index">
|
<view class="content" v-for="(item,index) in arr" :key="index">
|
||||||
<view class="uni-list">
|
<view class="uni-list">
|
||||||
|
@ -13,6 +12,7 @@
|
||||||
<view class="uni-list--border-bottom"></view>
|
<view class="uni-list--border-bottom"></view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@
|
||||||
ref
|
ref
|
||||||
} from "vue"
|
} from "vue"
|
||||||
let leftIcon = ref("../../static/images/sign/return.png")
|
let leftIcon = ref("../../static/images/sign/return.png")
|
||||||
|
import navbar_neadVue from "../common/navbar/navbar_nead.vue";
|
||||||
let arr = reactive([{
|
let arr = reactive([{
|
||||||
id: 1,
|
id: 1,
|
||||||
text: "每日签到",
|
text: "每日签到",
|
||||||
|
@ -82,11 +83,9 @@
|
||||||
line-height: 44rpx;
|
line-height: 44rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
*{
|
|
||||||
background-color: #ffffff;;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
|
background-color: #ffffff;
|
||||||
margin-left: 32rpx;
|
margin-left: 32rpx;
|
||||||
margin-right: 32rpx;
|
margin-right: 32rpx;
|
||||||
margin-top: 24rpx;
|
margin-top: 24rpx;
|
||||||
|
@ -110,7 +109,7 @@
|
||||||
|
|
||||||
.uni-list-bottom-text {
|
.uni-list-bottom-text {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
width: 201rpx;
|
/* width: 201rpx; */
|
||||||
height: 19rpx;
|
height: 19rpx;
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
|
|
|
@ -0,0 +1,109 @@
|
||||||
|
<!-- 兑换成功 -->
|
||||||
|
<template>
|
||||||
|
<view class="content">
|
||||||
|
<view class="uninavbar">
|
||||||
|
<image :src="returns"></image>
|
||||||
|
</view>
|
||||||
|
<view class="backimage">
|
||||||
|
<image :src="images"></image>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<image :src="icons" class="icon"></image>
|
||||||
|
|
||||||
|
<view class="con-text">
|
||||||
|
<text>兑换成功</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="but" @click="RetExChangemall()">
|
||||||
|
<text>返回商城</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
ref
|
||||||
|
} from 'vue';
|
||||||
|
const returns = ref("../../static/images/sign/return.png");
|
||||||
|
const images = ref("../../static/images/sign/兑换成功.png");
|
||||||
|
const icons = ref("../../static/images/sign/成功.png");
|
||||||
|
|
||||||
|
function RetExChangemall(){
|
||||||
|
uni.navigateTo({
|
||||||
|
url: './exchangemall',
|
||||||
|
// url: './exdetail',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.uninavbar {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 9999;
|
||||||
|
top: 110rpx;
|
||||||
|
left: 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.uninavbar>image {
|
||||||
|
width: 31rpx;
|
||||||
|
height: 44rpx;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.backimage>image {
|
||||||
|
width: 7270rpx;
|
||||||
|
height: 599rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
width: 750rpx;
|
||||||
|
height: 100vh;
|
||||||
|
background: linear-gradient(-140deg, #83c4ff, #ffffff);
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
width: 317rpx;
|
||||||
|
height: 198rpx;
|
||||||
|
position: absolute;
|
||||||
|
top: 264rpx;
|
||||||
|
left: 217rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.con-text>text {
|
||||||
|
font-weight: Regular;
|
||||||
|
width: 194rpx;
|
||||||
|
height: 49rpx;
|
||||||
|
font-size: 48rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #348FE2;
|
||||||
|
display: block;
|
||||||
|
margin: auto;
|
||||||
|
position: absolute;
|
||||||
|
top: 470rpx;
|
||||||
|
left: 277rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.but {
|
||||||
|
width: 686rpx;
|
||||||
|
height: 88rpx;
|
||||||
|
border-radius: 44rpx 44rpx 44rpx 44rpx;
|
||||||
|
opacity: 0.24;
|
||||||
|
background: #83c4ff;
|
||||||
|
position: absolute;
|
||||||
|
top: 590rpx;
|
||||||
|
left: 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.but>text {
|
||||||
|
font-weight: Regular;
|
||||||
|
width: 124rpx;
|
||||||
|
height: 31rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: #348FE2;
|
||||||
|
display: block;
|
||||||
|
margin: auto;
|
||||||
|
line-height: 88rpx;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -18,6 +18,8 @@
|
||||||
</view>
|
</view>
|
||||||
<view>
|
<view>
|
||||||
<up-button type="primary" text="待审核" size @click="clickBannerItem(1)"></up-button>
|
<up-button type="primary" text="待审核" size @click="clickBannerItem(1)"></up-button>
|
||||||
|
<up-button type="primary" text="发布成功" size @click="clickBannerItem(2)"></up-button>
|
||||||
|
<up-button type="primary" text="审核失败" size @click="clickBannerItem(3)"></up-button>
|
||||||
</view>
|
</view>
|
||||||
<fileUpload v-model="fileList1" :fileTypeInfo="fileTypeInfo1"></fileUpload>
|
<fileUpload v-model="fileList1" :fileTypeInfo="fileTypeInfo1"></fileUpload>
|
||||||
<fileUpload v-model="fileList1" :fileTypeInfo="fileTypeInfo2"></fileUpload>
|
<fileUpload v-model="fileList1" :fileTypeInfo="fileTypeInfo2"></fileUpload>
|
||||||
|
@ -56,9 +58,17 @@ const fileList1 = ref([])
|
||||||
|
|
||||||
|
|
||||||
function clickBannerItem(item) {
|
function clickBannerItem(item) {
|
||||||
if (item === 1) {
|
if(item === 1){
|
||||||
|
proxy.$tab.navigateTo('/pages/common/talkState/audit')
|
||||||
|
}
|
||||||
|
if(item === 2){
|
||||||
proxy.$tab.navigateTo('/pages/common/talkState/publish')
|
proxy.$tab.navigateTo('/pages/common/talkState/publish')
|
||||||
}
|
}
|
||||||
|
if(item === 3){
|
||||||
|
proxy.$tab.navigateTo('/pages/common/talkState/auditFailure')
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
function changeSwiper(e) {
|
function changeSwiper(e) {
|
||||||
|
|
|
@ -17,26 +17,27 @@ function checkWhite(url) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 页面跳转验证拦截器
|
// 页面跳转验证拦截器
|
||||||
let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];
|
// let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"]
|
||||||
// list.forEach((item) => {
|
// list.forEach(item => {
|
||||||
// uni.addInterceptor(item, {
|
// uni.addInterceptor(item, {
|
||||||
// invoke(to) {
|
// invoke(to) {
|
||||||
|
|
||||||
// if (getToken()) {
|
// if (getToken()) {
|
||||||
// if (to.url === loginPage) {
|
// if (to.url === loginPage) {
|
||||||
// console.log("to:", to);
|
// console.log("to:",to);
|
||||||
// uni.reLaunch({ url: "/" });
|
// uni.reLaunch({ url: "/" })
|
||||||
// }
|
// }
|
||||||
// return true;
|
// return true
|
||||||
// } else {
|
// } else {
|
||||||
// if (checkWhite(to.url)) {
|
// if (checkWhite(to.url)) {
|
||||||
// return true;
|
// return true
|
||||||
// }
|
// }
|
||||||
// uni.reLaunch({ url: loginPage });
|
// uni.reLaunch({ url: loginPage })
|
||||||
// return false;
|
// return false
|
||||||
// }
|
// }
|
||||||
// },
|
// },
|
||||||
// fail(err) {
|
// fail(err) {
|
||||||
// console.log("错误信息:", err);
|
// console.log("错误信息:",err)
|
||||||
// },
|
// }
|
||||||
// });
|
// })
|
||||||
// });
|
// })
|
||||||
|
|
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 700 B |
After Width: | Height: | Size: 578 B |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 7.8 KiB |
|
@ -5,9 +5,17 @@ import store from '@/store'
|
||||||
const QNDomain = store.state.user.QNDomain
|
const QNDomain = store.state.user.QNDomain
|
||||||
const tu21 = ref(QNDomain + "home/icon/image/png/tu2-1_20240531153239639.png")
|
const tu21 = ref(QNDomain + "home/icon/image/png/tu2-1_20240531153239639.png")
|
||||||
const tu22 = ref(QNDomain + "home/icon/image/png/tu2-2_20240531163115818.png")
|
const tu22 = ref(QNDomain + "home/icon/image/png/tu2-2_20240531163115818.png")
|
||||||
|
//定位
|
||||||
const tu51 = ref(QNDomain + "home/icon/image/png/tu5-1_20240601124004353.png")
|
const tu51 = ref(QNDomain + "home/icon/image/png/tu5-1_20240601124004353.png")
|
||||||
|
const tu512 = ref(QNDomain + "home/icon/image/png/tu5-1-2_20240605120128566.png")
|
||||||
|
//开始
|
||||||
const tu52 = ref(QNDomain + "home/icon/image/png/tu5-2_20240601124010403.png")
|
const tu52 = ref(QNDomain + "home/icon/image/png/tu5-2_20240601124010403.png")
|
||||||
|
const tu522 = ref(QNDomain + "home/icon/image/png/tu5-2-2_20240605120128561.png")
|
||||||
|
//结束
|
||||||
const tu53 = ref(QNDomain + "home/icon/image/png/tu5-3_20240601124016641.png")
|
const tu53 = ref(QNDomain + "home/icon/image/png/tu5-3_20240601124016641.png")
|
||||||
|
const tu532 = ref(QNDomain + "home/icon/image/png/tu5-3-2_20240605120128565.png")
|
||||||
|
|
||||||
|
|
||||||
const tu23 = ref(QNDomain + "home/icon/image/png/tu2-3_20240602093303793.png")
|
const tu23 = ref(QNDomain + "home/icon/image/png/tu2-3_20240602093303793.png")
|
||||||
//文件上传
|
//文件上传
|
||||||
const tu2x = ref(QNDomain + "home/icon/image/png/添加图片@2x_20240603101717136.png")
|
const tu2x = ref(QNDomain + "home/icon/image/png/添加图片@2x_20240603101717136.png")
|
||||||
|
@ -15,8 +23,16 @@ const tu2x = ref(QNDomain + "home/icon/image/png/添加图片@2x_202406031017171
|
||||||
//话题发布-等待审核
|
//话题发布-等待审核
|
||||||
const sh2x = ref(QNDomain + "home/icon/image/png/等待审核@2x_20240604202431502.png")
|
const sh2x = ref(QNDomain + "home/icon/image/png/等待审核@2x_20240604202431502.png")
|
||||||
const sh2x1 = ref(QNDomain + "home/icon/image/png/等待审核@2x1_20240604202431492.png")
|
const sh2x1 = ref(QNDomain + "home/icon/image/png/等待审核@2x1_20240604202431492.png")
|
||||||
|
//话题-发布话题 发布成功
|
||||||
|
const cg2x21 = ref(QNDomain + "home/icon/image/png/成功@2x2 (1)_20240605100256727.png");
|
||||||
|
const cg2x22 = ref(QNDomain + "home/icon/image/png/成功@2x2 (2)_20240605100300398.png");
|
||||||
|
//话题-发布话题 审核失败
|
||||||
|
const sb2x = ref(QNDomain + "home/icon/image/png/审核失败@2x_20240605101107230.png");
|
||||||
|
const sb2x1 = ref(QNDomain + "home/icon/image/png/审核失败@2x1_20240605101107230.png");
|
||||||
export default {
|
export default {
|
||||||
tu21,tu22,tu23,tu2x,
|
tu21,tu22,tu23,tu2x,
|
||||||
tu51,tu52,tu53,
|
tu51,tu52,tu53,tu512,tu522,tu532,
|
||||||
sh2x,sh2x1
|
sh2x,sh2x1,
|
||||||
|
cg2x21,cg2x22,
|
||||||
|
sb2x,sb2x1,
|
||||||
}
|
}
|
|
@ -37,7 +37,7 @@ const request = config => {
|
||||||
showConfirm('登录状态已过期,您可以继续留在该页面,或者重新登录?').then(res => {
|
showConfirm('登录状态已过期,您可以继续留在该页面,或者重新登录?').then(res => {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
store.dispatch('LogOut').then(res => {
|
store.dispatch('LogOut').then(res => {
|
||||||
uni.reLaunch({ url: '/pages/login' })
|
uni.reLaunch({ url: '/pages/loginInfo/login' })
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -0,0 +1,246 @@
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通用js方法封装处理
|
||||||
|
* Copyright (c) 2019 ruoyi
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 日期格式化
|
||||||
|
export function parseTime(time, pattern) {
|
||||||
|
if (arguments.length === 0 || !time) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
|
||||||
|
let date
|
||||||
|
if (typeof time === 'object') {
|
||||||
|
date = time
|
||||||
|
} else {
|
||||||
|
if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
|
||||||
|
time = parseInt(time)
|
||||||
|
} else if (typeof time === 'string') {
|
||||||
|
time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), '');
|
||||||
|
}
|
||||||
|
if ((typeof time === 'number') && (time.toString().length === 10)) {
|
||||||
|
time = time * 1000
|
||||||
|
}
|
||||||
|
date = new Date(time)
|
||||||
|
}
|
||||||
|
const formatObj = {
|
||||||
|
y: date.getFullYear(),
|
||||||
|
m: date.getMonth() + 1,
|
||||||
|
d: date.getDate(),
|
||||||
|
h: date.getHours(),
|
||||||
|
i: date.getMinutes(),
|
||||||
|
s: date.getSeconds(),
|
||||||
|
a: date.getDay()
|
||||||
|
}
|
||||||
|
const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
|
||||||
|
let value = formatObj[key]
|
||||||
|
// Note: getDay() returns 0 on Sunday
|
||||||
|
if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
|
||||||
|
if (result.length > 0 && value < 10) {
|
||||||
|
value = '0' + value
|
||||||
|
}
|
||||||
|
return value || 0
|
||||||
|
})
|
||||||
|
return time_str
|
||||||
|
}
|
||||||
|
|
||||||
|
// 表单重置
|
||||||
|
export function resetForm(refName) {
|
||||||
|
if (this.$refs[refName]) {
|
||||||
|
this.$refs[refName].resetFields();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加日期范围
|
||||||
|
export function addDateRange(params, dateRange, propName) {
|
||||||
|
let search = params;
|
||||||
|
search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {};
|
||||||
|
dateRange = Array.isArray(dateRange) ? dateRange : [];
|
||||||
|
if (typeof (propName) === 'undefined') {
|
||||||
|
search.params['beginTime'] = dateRange[0];
|
||||||
|
search.params['endTime'] = dateRange[1];
|
||||||
|
} else {
|
||||||
|
search.params['begin' + propName] = dateRange[0];
|
||||||
|
search.params['end' + propName] = dateRange[1];
|
||||||
|
}
|
||||||
|
return search;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 回显数据字典
|
||||||
|
export function selectDictLabel(datas, value) {
|
||||||
|
if (value === undefined) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
var actions = [];
|
||||||
|
Object.keys(datas).some((key) => {
|
||||||
|
if (datas[key].value == ('' + value)) {
|
||||||
|
actions.push(datas[key].label);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (actions.length === 0) {
|
||||||
|
actions.push(value);
|
||||||
|
}
|
||||||
|
return actions.join('');
|
||||||
|
}
|
||||||
|
|
||||||
|
// 回显数据字典(字符串数组)
|
||||||
|
export function selectDictLabels(datas, value, separator) {
|
||||||
|
if (value === undefined || value.length ===0) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
if (Array.isArray(value)) {
|
||||||
|
value = value.join(",");
|
||||||
|
}
|
||||||
|
var actions = [];
|
||||||
|
var currentSeparator = undefined === separator ? "," : separator;
|
||||||
|
var temp = value.split(currentSeparator);
|
||||||
|
Object.keys(value.split(currentSeparator)).some((val) => {
|
||||||
|
var match = false;
|
||||||
|
Object.keys(datas).some((key) => {
|
||||||
|
if (datas[key].value == ('' + temp[val])) {
|
||||||
|
actions.push(datas[key].label + currentSeparator);
|
||||||
|
match = true;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (!match) {
|
||||||
|
actions.push(temp[val] + currentSeparator);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return actions.join('').substring(0, actions.join('').length - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 字符串格式化(%s )
|
||||||
|
export function sprintf(str) {
|
||||||
|
var args = arguments, flag = true, i = 1;
|
||||||
|
str = str.replace(/%s/g, function () {
|
||||||
|
var arg = args[i++];
|
||||||
|
if (typeof arg === 'undefined') {
|
||||||
|
flag = false;
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
return arg;
|
||||||
|
});
|
||||||
|
return flag ? str : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 转换字符串,undefined,null等转化为""
|
||||||
|
export function parseStrEmpty(str) {
|
||||||
|
if (!str || str == "undefined" || str == "null") {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 数据合并
|
||||||
|
export function mergeRecursive(source, target) {
|
||||||
|
for (var p in target) {
|
||||||
|
try {
|
||||||
|
if (target[p].constructor == Object) {
|
||||||
|
source[p] = mergeRecursive(source[p], target[p]);
|
||||||
|
} else {
|
||||||
|
source[p] = target[p];
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
source[p] = target[p];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return source;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构造树型结构数据
|
||||||
|
* @param {*} data 数据源
|
||||||
|
* @param {*} id id字段 默认 'id'
|
||||||
|
* @param {*} parentId 父节点字段 默认 'parentId'
|
||||||
|
* @param {*} children 孩子节点字段 默认 'children'
|
||||||
|
*/
|
||||||
|
export function handleTree(data, id, parentId, children) {
|
||||||
|
let config = {
|
||||||
|
id: id || 'id',
|
||||||
|
parentId: parentId || 'parentId',
|
||||||
|
childrenList: children || 'children'
|
||||||
|
};
|
||||||
|
|
||||||
|
var childrenListMap = {};
|
||||||
|
var nodeIds = {};
|
||||||
|
var tree = [];
|
||||||
|
|
||||||
|
for (let d of data) {
|
||||||
|
let parentId = d[config.parentId];
|
||||||
|
if (childrenListMap[parentId] == null) {
|
||||||
|
childrenListMap[parentId] = [];
|
||||||
|
}
|
||||||
|
nodeIds[d[config.id]] = d;
|
||||||
|
childrenListMap[parentId].push(d);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let d of data) {
|
||||||
|
let parentId = d[config.parentId];
|
||||||
|
if (nodeIds[parentId] == null) {
|
||||||
|
tree.push(d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let t of tree) {
|
||||||
|
adaptToChildrenList(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
function adaptToChildrenList(o) {
|
||||||
|
if (childrenListMap[o[config.id]] !== null) {
|
||||||
|
o[config.childrenList] = childrenListMap[o[config.id]];
|
||||||
|
}
|
||||||
|
if (o[config.childrenList]) {
|
||||||
|
for (let c of o[config.childrenList]) {
|
||||||
|
adaptToChildrenList(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return tree;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数处理
|
||||||
|
* @param {*} params 参数
|
||||||
|
*/
|
||||||
|
export function tansParams(params) {
|
||||||
|
let result = ''
|
||||||
|
for (const propName of Object.keys(params)) {
|
||||||
|
const value = params[propName];
|
||||||
|
var part = encodeURIComponent(propName) + "=";
|
||||||
|
if (value !== null && value !== "" && typeof (value) !== "undefined") {
|
||||||
|
if (typeof value === 'object') {
|
||||||
|
for (const key of Object.keys(value)) {
|
||||||
|
if (value[key] !== null && value[key] !== "" && typeof (value[key]) !== 'undefined') {
|
||||||
|
let params = propName + '[' + key + ']';
|
||||||
|
var subPart = encodeURIComponent(params) + "=";
|
||||||
|
result += subPart + encodeURIComponent(value[key]) + "&";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
result += part + encodeURIComponent(value) + "&";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 返回项目路径
|
||||||
|
export function getNormalPath(p) {
|
||||||
|
if (p.length === 0 || !p || p == 'undefined') {
|
||||||
|
return p
|
||||||
|
};
|
||||||
|
let res = p.replace('//', '/')
|
||||||
|
if (res[res.length - 1] === '/') {
|
||||||
|
return res.slice(0, res.length - 1)
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 验证是否为blob格式
|
||||||
|
export function blobValidate(data) {
|
||||||
|
return data.type !== 'application/json'
|
||||||
|
}
|
|
@ -38,7 +38,7 @@ export default function upload(config) {
|
||||||
showConfirm("登录状态已过期,您可以继续留在该页面,或者重新登录?").then(res => {
|
showConfirm("登录状态已过期,您可以继续留在该页面,或者重新登录?").then(res => {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
store.dispatch('LogOut').then(res => {
|
store.dispatch('LogOut').then(res => {
|
||||||
uni.reLaunch({ url: '/pages/login/login' })
|
uni.reLaunch({ url: '/pages/loginInfo/login' })
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|