This commit is contained in:
jiangnan 2023-08-03 14:24:03 +08:00
parent ef22c199f6
commit 5b0fb7dcd8
4 changed files with 575 additions and 108 deletions

169
package-lock.json generated
View File

@ -3121,6 +3121,44 @@
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"dev": true
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"optional": true
},
"css-loader": {
"version": "3.6.0",
"resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-3.6.0.tgz",
@ -3194,6 +3232,13 @@
"slash": "^2.0.0"
}
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"optional": true
},
"hash-sum": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz",
@ -3308,6 +3353,42 @@
"requires": {
"minipass": "^3.1.1"
}
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.8.3",
"resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
"integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
},
"dependencies": {
"loader-utils": {
"version": "2.0.4",
"resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
"integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"dev": true,
"optional": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
}
}
}
}
}
},
@ -16640,94 +16721,6 @@
"vue-style-loader": "^4.1.0"
}
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.8.3",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
"integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"optional": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"optional": true
},
"hash-sum": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz",
"integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==",
"dev": true,
"optional": true
},
"loader-utils": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
"integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"dev": true,
"optional": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
}
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"vue-style-loader": {
"version": "4.1.3",
"resolved": "https://registry.npmmirror.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz",

View File

@ -627,18 +627,18 @@
"navigationBarTitleText": "线上看展",
"enablePullDownRefresh": false
}
},
// 线-
{
"path": "xskz/details",
"style": {
"navigationBarTitleText": "线上看展-详情",
"enablePullDownRefresh": false,
"usingComponents": {
"player-component": "plugin://player/video"
}
}
}
// 线-
// {
// "path": "xskz/details",
// "style": {
// "navigationBarTitleText": "线上看展-详情",
// "enablePullDownRefresh": false,
// "usingComponents": {
// "player-component": "plugin://player/video"
// }
// }
// }
]
}
],

446
src/pagesD/wyxx/detail.vue Normal file
View File

@ -0,0 +1,446 @@
<template>
<view class="">
<view class="">
<u-loading-page :loading="load"></u-loading-page>
</view>
<view class="page" v-if="load == false">
<view class="return" @click="back">
<image src="../../static/orderLeftArrow.png" mode="scaleToFill"></image>
</view>
<view class="pageImg">
<u-swiper v-if="list.length > 0" :list="list" :autoplay="true" @change="e => currentNum = e.current"
indicatorStyle="right: 20px" height='440rpx'>
<view slot="indicator" class="indicator-num">
<text class="indicator-num__text">{{ currentNum + 1 }}/{{ list.length }}</text>
</view>
</u-swiper>
</view>
<view class="main">
<view class="mainTitle">{{ data.title }}</view>
<view class="textList">
<view class="type">
<img class='textImg' src="../../static/detailIcon/icon10.png" alt="">
<view class="text1">需求清单</view>
</view>
<view class="text2">{{ data.demand }}</view>
</view>
<view class="textList">
<view class="type">
<img class='textImg' src="../../static/detailIcon/icon10.png" alt="">
<view class="text1">具体内容</view>
</view>
<view class="text2">
{{ data.content }}
</view>
</view>
<view class="file_box" v-for="(item, index) in list2" :key="index" @click="downLoad(item.url)">
<view class="file_box_left">
<image :src="item.img" class="file_box_left_img"></image>
</view>
<view class="file_box_right">
<view class="file_box_name">
{{ item.name }}
</view>
</view>
</view>
</view>
<view class="line"></view>
<view class="activityDetails">
<view class="item_ul">
<view class="title">
<image class="icon" src="../../static/detailIcon/icon0.png" mode="scaleToFill"></image>
<text>需求详情</text>
</view>
<view class="item_li">
<view class="standard">
<image class="icon" src="../../static/detailIcon/icon5.png" mode="scaleToFill"></image>
<text>类型:</text>
</view>
<view class="content">{{ data.typeName }}</view>
</view>
<!-- <view class="item_li">
<view class="standard">
<image class="icon" src="../../static/detailIcon/icon8.png" mode="scaleToFill"></image>
<text>可接单用户类型:</text>
</view>
<view class="content"> {{data.rclx}} </view>
</view> -->
<view class="item_li">
<view class="standard">
<image class="icon" src="../../static/detailIcon/icon6.png" mode="scaleToFill"></image>
<text> 可接单人数:</text>
</view>
<view class="content"><text style=" color: #99241B;"> {{ data.jdrs }}</text>/{{ data.quantity }} </view>
</view>
<view class="item_li">
<view class="standard">
<image class="icon" src="../../static/detailIcon/icon7.png" mode="scaleToFill"></image>
<text>截止时间:</text>
</view>
<view class="content"> {{ data.deadline }}</view>
</view>
<view class="item_li">
<view class="standard">
<image class="icon" src="../../static/detailIcon/icon4.png" mode="scaleToFill"></image>
<text>活动时间:</text>
</view>
<view class="content"> {{ data.activityTime }} </view>
</view>
</view>
</view>
<view v-if="isCheck == 0">
<view class="" v-if="data.hallState == 1">
<view class="orderBtn" v-if="data.isBaoming">
<view class="btnQ" @click="baoQ">取消接单</view>
</view>
<view class="orderBtn" v-else>
<view class="btn" @click="bao">申请接单</view>
</view>
</view>
<view class="" v-else>
<view class="orderBtn">
<view class="btnQ">已无法接单</view>
</view>
</view>
</view>
<view v-else-if="isCheck == 1">
<view class="bao_title">
已接单用户
</view>
<view class="per_line" v-for="(v, i) in userList" :key="i">
<view class="oer_image">
<image :src="v.userTx[0]"></image>
</view>
<view>
{{ v.userName }}
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data () {
return {
load: true,
id: '',
data: {},
list: [],
list2: [],
userList: [],
currentNum: 0,
isCheck: 0,
}
},
onLoad (op) {
this.id = op.id
if (op.isCheck) {
this.isCheck = op.isCheck
}
},
onShow () {
this.getData()
},
methods: {
getData () {
let _this = this
this.http.request('/hall/details', {
id: this.id,
}, "GET").then(res => {
if (res.code == 200) {
//
if (res.data.enclosure) {
let fileArr = res.data.enclosure.split(',')
fileArr.forEach(function (item) {
let gs = item.substr(item.lastIndexOf(".") + 1)
if (gs == 'jpg' || gs == 'jpeg' || gs == 'png' || gs == 'bmp' || gs ==
'gif' || gs == 'tif' || gs == 'tiff') {
_this.list.push(item)
} else if (gs == 'pdf') {
_this.list2.push({
name: res.data.name + '.' + gs,
img: '../../static/fileImg/pdfS.png',
url: item,
})
}
})
}
this.data = res.data
this.data.rclx = this.data.yhsf.join(',')
this.userList = res.data.users
this.userList.forEach(function (el) {
let img = JSON.stringify(el.userTx)
el.userTx = img
})
this.load = false
}
}).catch(e => {
uni.showToast({
title: e.data.message,
icon: "none",
});
})
},
back () {
uni.navigateBack()
},
//
downLoad (val) {
this.contractUrl = val
uni.navigateTo({
url: "/pagesB/ArtWorks/webView?url=" + this.contractUrl
})
},
bao () {
this.http.request('/hallUser/singUp?hallId=' + this.id, {}, "POST").then(res => {
if (res.code == 200) {
this.getData()
this.load = true
this.list = []
this.list2 = []
}
}).catch(e => {
uni.showToast({
title: e.data.message,
icon: "none",
});
})
},
baoQ () {
this.http.request('/hallUser/qxSingUp?hallId=' + this.id, {}, "POST").then(res => {
if (res.code == 200) {
this.getData()
this.load = true
this.list = []
this.list2 = []
}
}).catch(e => {
uni.showToast({
title: e.data.message,
icon: "none",
});
})
}
}
}
</script>
<style lang="scss" scoped>
image {
height: 100%;
width: 100%;
}
.page {
.return {
position: fixed;
left: 24rpx;
top: 110rpx;
z-index: 10;
image {
width: 48rpx;
height: 48rpx;
}
}
.pageImg {
height: 440rpx;
.img {
width: 100%;
height: 100%;
}
}
.main {
padding: 32rpx;
.mainTitle {
font-size: 36rpx;
font-weight: 600;
color: #251B1D;
margin-bottom: 28rpx;
}
.textList {
margin-bottom: 24rpx;
.type {
display: flex;
height: 48rpx;
line-height: 48rpx;
.textImg {
width: 32rpx;
height: 32rpx;
margin-top: 10rpx;
margin-right: 16rpx;
}
.text1 {
font-size: 32rpx;
font-weight: 600;
color: #32333C;
}
}
.text2 {
font-size: 28rpx;
color: #32333C;
line-height: 48rpx;
}
}
.file_box {
width: 92%;
height: 64px;
margin: 10px 4%;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #251B1D;
background: #F4F5F7;
border-radius: 6px;
overflow: hidden;
.file_box_left {
width: 40px;
height: 40px;
margin-top: 12px;
margin-left: 12px;
float: left;
.file_box_left_img {
width: 40px;
height: 40px;
}
}
.file_box_right {
margin-left: 20px;
float: left;
.file_box_name {
height: 64px;
line-height: 64px;
font-size: 16px;
font-weight: 600;
color: #251B1D;
}
}
}
}
.line {
height: 16rpx;
background: #F4F5F7;
}
.activityDetails {
.item_ul {
.title {
font-size: 32rpx;
font-weight: bold;
padding: 24rpx;
display: flex;
background: #F4F5F7;
.icon {
width: 40rpx;
height: 40rpx;
margin-right: 10rpx;
// display: none;
}
}
.item_li {
padding: 16rpx 32rpx 32rpx;
margin: 16rpx 0;
border-bottom: 2rpx solid #F1F1F1;
display: flex;
// justify-content: space-between;
align-items: center;
font-weight: 600;
.standard {
display: flex;
align-items: center;
margin-right: 10rpx;
.icon {
width: 32rpx;
height: 32rpx;
// display: none;
}
text {
color: #251B1D;
// color: $gray;
margin-left: 8rpx;
}
}
.content {}
}
}
}
.orderBtn {
width: 100%;
background-color: #FFF;
padding-bottom: 20rpx;
.btn {
width: calc(100% - 64rpx);
height: 96rpx;
line-height: 96rpx;
text-align: center;
background: #99241B;
border-radius: 8rpx;
font-size: 32rpx;
font-weight: 600;
color: #FFFFFF;
margin: 0 auto;
}
.btnQ {
width: calc(100% - 64rpx);
height: 96rpx;
line-height: 96rpx;
text-align: center;
background: #F9F2F2;
border-radius: 8rpx;
font-size: 32rpx;
font-weight: 600;
color: #99241B;
margin: 0 auto;
}
}
.bao_title {
width: 686rpx;
margin: 20rpx 32rpx;
font-size: 28rpx;
font-weight: 500;
color: #32333C;
}
.per_line {
width: 686rpx;
margin: 10rpx 32rpx;
display: flex;
align-items: center;
.oer_image {
width: 88rpx;
height: 88rpx;
border-radius: 50%;
margin-left: 30rpx;
}
}
}
</style>

View File

@ -67,7 +67,7 @@
<image src="../../static/orderHall/addOrder.png"></image>
</view>
<view class="main" v-if="mainList.length > 0">
<view class="mainList" v-for="(item, i) in mainList" :key="i">
<view class="mainList" v-for="(item, i) in mainList" :key="i" @click="toDetail(item.id)">
<!-- <view class="mainListImg" @click="toDetail(item.id)">
<img class='img' :src="item.enclosure" alt="">
</view> -->
@ -95,6 +95,7 @@
</u-empty>
</view>
</view>
<u-loading-page class="loading" loading-text="加载中" :loading="loadings"></u-loading-page>
</view>
</template>
@ -106,7 +107,8 @@ export default {
mainList: [],
villageId: '',
team: [],
program: []
program: [],
loadings: true
};
},
onShow () {
@ -117,21 +119,23 @@ export default {
this.tabC = val;
},
RuralDevelopmentPlanlist () {
this.loadings = true
let data = {
villageId: this.villageId
}
this.http.request(`/artCountryside/list`, data, 'GET').then(res => {
if (res.code === 200) {
console.log(res.data.records);
this.mainList = res.data.records
this.loadings = false
} else {
this.loadings = false
uni.showToast({
title: res.data.message,
title: res.message,
icon: "error",
});
}
}).catch(err => {
this.loadings = false
})
},
toAddOrder () {
@ -159,6 +163,20 @@ export default {
}
}).catch(err => {
})
},
toDetail (value) {
this.http.request(`/artCountryside/details?id=${value}`, {}, 'GET').then(res => {
if (res.code == 200) {
console.log(res);
} else {
uni.showToast({
title: res.message,
icon: "error",
});
}
}).catch(err => {
})
}
},
@ -212,10 +230,10 @@ export default {
}
.forms {
width: 90%;
width: 98%;
// height: 40rpx;
// background-color: skyblue;
margin: 40rpx auto 0rpx;
margin: 20rpx auto;
.teamBox {
height: 140rpx;
@ -291,12 +309,13 @@ image {
padding: 32rpx;
// background-color: #F4F5F7;
// background-color: rgb(241, 243, 244);
border: 1px solid rgb(241, 243, 244);
border-radius: 16rpx;
.mainList {
// border-radius: 16rpx;
border-radius: 16rpx;
// background-color: rgb(241, 243, 244);
margin-bottom: 20rpx;
border: 1px solid rgb(241, 243, 244);
overflow: hidden;
.mainListImg {
@ -319,6 +338,7 @@ image {
padding: 32rpx;
// background-color: #FFF;
.text1 {
font-size: 32rpx;
font-weight: 600;
@ -362,4 +382,12 @@ image {
border-radius: 50%;
z-index: 999;
}
.loading {
width: 100%;
height: 100%;
position: absolute;
left: 0px;
top: 0px;
}
</style>