|
|
@ -3,42 +3,45 @@ |
|
|
|
<view class="schedule" style="padding:25rpx 0"> |
|
|
|
<view class="schedule" style="padding:25rpx 0"> |
|
|
|
<view style="margin:0 25rpx 36rpx 25rpx"> |
|
|
|
<view style="margin:0 25rpx 36rpx 25rpx"> |
|
|
|
<view style="display:flex;font-size:35rpx;font-weight:bold;justify-content: space-between;"> |
|
|
|
<view style="display:flex;font-size:35rpx;font-weight:bold;justify-content: space-between;"> |
|
|
|
<p style='color: #333333;'>{{crowddata.task.project_name}} </p> |
|
|
|
<p style='color: #333333;'>{{ crowddata.task.project_name }} <levelTag |
|
|
|
|
|
|
|
:level="crowddata.task.level"> |
|
|
|
|
|
|
|
</levelTag> |
|
|
|
|
|
|
|
</p> |
|
|
|
<p v-if="crowddata.task.price == 0" style="color:#FD461A;">面议</p> |
|
|
|
<p v-if="crowddata.task.price == 0" style="color:#FD461A;">面议</p> |
|
|
|
<p v-else style="color:#FD461A;">¥{{crowddata.task.price}}</p> |
|
|
|
<p v-else style="color:#FD461A;">¥{{ crowddata.task.price }}</p> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view style="display:flex;margin-top:15px;flex-wrap: wrap;"> |
|
|
|
<view style="display:flex;margin-top:15px;flex-wrap: wrap;"> |
|
|
|
<view class='tabone' style="margin-right:8rpx"> |
|
|
|
<view class='tabone' style="margin-right:8rpx"> |
|
|
|
<span v-if="crowddata.task.task_status==0">竞标中</span> |
|
|
|
<span v-if="crowddata.task.task_status == 0">竞标中</span> |
|
|
|
<span v-if="crowddata.task.task_status==1">竞标成功</span> |
|
|
|
<span v-if="crowddata.task.task_status == 1">竞标成功</span> |
|
|
|
<span v-if="crowddata.task.task_status==2">竞标失败</span> |
|
|
|
<span v-if="crowddata.task.task_status == 2">竞标失败</span> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class='tabone' style="background: #E8EEF5;color:#525B65;margin-right: 8rpx;" |
|
|
|
<view class='tabone' style="background: #E8EEF5;color:#525B65;margin-right: 8rpx;" |
|
|
|
v-for="itema in findLabelValueByPropnew(tasktypelist, crowddata.task.test_type, 'dictValue', 'dictLabel').split(',')"> |
|
|
|
v-for="itema in findLabelValueByPropnew(tasktypelist, crowddata.task.test_type, 'dictValue', 'dictLabel').split(',')"> |
|
|
|
<span> |
|
|
|
<span> |
|
|
|
{{itema}} |
|
|
|
{{ itema }} |
|
|
|
</span> |
|
|
|
</span> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<block v-if="crowddata.task.language"> |
|
|
|
<block v-if="crowddata.task.language"> |
|
|
|
<view class="tabone tabone1" v-for="it in crowddata.task.language.split(/[,、]/)" :key="it"> |
|
|
|
<view class="tabone tabone1" v-for="it in crowddata.task.language.split(/[,、]/)" :key="it"> |
|
|
|
{{it}} |
|
|
|
{{ it }} |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</block> |
|
|
|
</block> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<u-line></u-line> |
|
|
|
<u-line></u-line> |
|
|
|
<view style="color:#808080;font-size: 24rpx;margin:36rpx 25rpx 0 25rpx"> |
|
|
|
<view style="color:#808080;font-size: 24rpx;margin:36rpx 25rpx 0 25rpx"> |
|
|
|
<p style='margin-bottom:10px'>发布日期:{{crowddata.task.create_time.slice(0,10)}}</p> |
|
|
|
<p style='margin-bottom:10px'>发布日期:{{ crowddata.task.create_time.slice(0, 10) }}</p> |
|
|
|
<p style='margin-bottom:10px'>需要人数:{{crowddata.task.need_person}}人</p> |
|
|
|
<p style='margin-bottom:10px'>需要人数:{{ crowddata.task.need_person }}人</p> |
|
|
|
<p style='margin-bottom:10px'>项目周期:{{crowddata.task.period}}天</p> |
|
|
|
<p style='margin-bottom:10px'>项目周期:{{ crowddata.task.period }}天</p> |
|
|
|
<p style='margin-bottom:10px'>驻场需求: |
|
|
|
<p style='margin-bottom:10px'>驻场需求: |
|
|
|
<span v-if="crowddata.task.onsite_type==0"> 无需驻场</span> |
|
|
|
<span v-if="crowddata.task.onsite_type == 0"> 无需驻场</span> |
|
|
|
<span v-if="crowddata.task.onsite_type==1"> 偶尔驻场</span> |
|
|
|
<span v-if="crowddata.task.onsite_type == 1"> 偶尔驻场</span> |
|
|
|
<span v-if="crowddata.task.onsite_type==2"> 定期驻场</span> |
|
|
|
<span v-if="crowddata.task.onsite_type == 2"> 定期驻场</span> |
|
|
|
</p> |
|
|
|
</p> |
|
|
|
<p style='margin-bottom:10px'>技能要求:{{crowddata.task.tech_need}}</p> |
|
|
|
<p style='margin-bottom:10px'>技能要求:{{ crowddata.task.tech_need }}</p> |
|
|
|
<p style='margin-bottom:10px'>地域要求:{{crowddata.task.area}}</p> |
|
|
|
<p style='margin-bottom:10px'>地域要求:{{ crowddata.task.area }}</p> |
|
|
|
<p style='margin-bottom:10px'>有效天数:{{crowddata.task.valid_days}}天</p> |
|
|
|
<p style='margin-bottom:10px'>有效天数:{{ crowddata.task.valid_days }}天</p> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="schedule"> |
|
|
|
<view class="schedule"> |
|
|
@ -49,7 +52,7 @@ |
|
|
|
<view v-if="crowddata.task.project_desc"> |
|
|
|
<view v-if="crowddata.task.project_desc"> |
|
|
|
<!-- <div class="article-body" v-html='industryinform.content'></div> --> |
|
|
|
<!-- <div class="article-body" v-html='industryinform.content'></div> --> |
|
|
|
<rich-text class="article-body" |
|
|
|
<rich-text class="article-body" |
|
|
|
:nodes="crowddata.task&&crowddata.task.project_desc | filtersRichText"></rich-text> |
|
|
|
:nodes="crowddata.task && crowddata.task.project_desc | filtersRichText"></rich-text> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<p v-else style="color:#808080;line-height:23px;font-size: 24rpx;white-space:pre-line;">无</p> |
|
|
|
<p v-else style="color:#808080;line-height:23px;font-size: 24rpx;white-space:pre-line;">无</p> |
|
|
|
</view> |
|
|
|
</view> |
|
|
@ -60,8 +63,8 @@ |
|
|
|
<view style="font-size: 15px;font-weight: bold;">联系方式</view> |
|
|
|
<view style="font-size: 15px;font-weight: bold;">联系方式</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view style="color:#808080;font-size: 24rpx; "> |
|
|
|
<view style="color:#808080;font-size: 24rpx; "> |
|
|
|
<p style='margin-bottom:10px'>联系人:{{crowddata.task.contact_name}}</p> |
|
|
|
<p style='margin-bottom:10px'>联系人:{{ crowddata.task.contact_name }}</p> |
|
|
|
<p style='margin-bottom:10px'>联系人:{{crowddata.task.contact_tel}}</p> |
|
|
|
<p style='margin-bottom:10px'>联系人:{{ crowddata.task.contact_tel }}</p> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
</view> |
|
|
|
</view> |
|
|
@ -79,9 +82,10 @@ |
|
|
|
</div> --> |
|
|
|
</div> --> |
|
|
|
<template v-if="crowddata.task.attachment"> |
|
|
|
<template v-if="crowddata.task.attachment"> |
|
|
|
<div style='display:flex;align-items: center;margin-bottom: 10px;' |
|
|
|
<div style='display:flex;align-items: center;margin-bottom: 10px;' |
|
|
|
v-for="(it,index) in crowddata.task.attachment.split(',')"> |
|
|
|
v-for="(it, index) in crowddata.task.attachment.split(',')"> |
|
|
|
<img style="width:17px;height:20px;margin-right:5px;" src="/static/crowd/upload.png" alt="" /> |
|
|
|
<img style="width:17px;height:20px;margin-right:5px;" src="/static/crowd/upload.png" alt="" /> |
|
|
|
<p @click="openurl(it)" style="color:#1578ED;font-size: 12px;cursor: pointer;">项目附件{{index+1}} |
|
|
|
<p @click="openurl(it)" style="color:#1578ED;font-size: 12px;cursor: pointer;">项目附件{{ index + 1 |
|
|
|
|
|
|
|
}} |
|
|
|
</p> |
|
|
|
</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
@ -96,14 +100,14 @@ |
|
|
|
<view class='vertical'></view> |
|
|
|
<view class='vertical'></view> |
|
|
|
<view style="font-size: 15px;font-weight: bold;">报名列表</view> |
|
|
|
<view style="font-size: 15px;font-weight: bold;">报名列表</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view v-if="crowddata.entrants.length>0" style="display: flex;flex-wrap: wrap;"> |
|
|
|
<view v-if="crowddata.entrants.length > 0" style="display: flex;flex-wrap: wrap;"> |
|
|
|
<view v-for="(item,key) of crowddata.entrants" class="signst" @click="goUserDetail(item)"> |
|
|
|
<view v-for="(item, key) of crowddata.entrants" class="signst" @click="goUserDetail(item)"> |
|
|
|
<view v-if="item.avatar"> |
|
|
|
<view v-if="item.avatar"> |
|
|
|
<img v-if="item.avatar.indexOf('http')==0" :src="item.avatar" alt=""> |
|
|
|
<img v-if="item.avatar.indexOf('http') == 0" :src="item.avatar" alt=""> |
|
|
|
<img v-else :src="base+item.avatar" alt="" /> |
|
|
|
<img v-else :src="base + item.avatar" alt="" /> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<img style="margin-bottom: 4px;" v-else src="../../../static/crowd/defaultAva.jpg" alt="" /> |
|
|
|
<img style="margin-bottom: 4px;" v-else src="../../../static/crowd/defaultAva.jpg" alt="" /> |
|
|
|
<p>{{item.nick_name.slice(0,1)}}**</p> |
|
|
|
<p>{{ item.nick_name.slice(0, 1) }}**</p> |
|
|
|
<view class="success" v-if="item.status != 0 && item.status != 2"> |
|
|
|
<view class="success" v-if="item.status != 0 && item.status != 2"> |
|
|
|
<image src="/static/index/success.png" mode=""></image> |
|
|
|
<image src="/static/index/success.png" mode=""></image> |
|
|
|
竞标成功 |
|
|
|
竞标成功 |
|
|
@ -128,18 +132,18 @@ |
|
|
|
alt="" @click="goCompanyInfo" /> |
|
|
|
alt="" @click="goCompanyInfo" /> |
|
|
|
<view> |
|
|
|
<view> |
|
|
|
<view style="display: flex;margin:5px 0;align-items: center;"> |
|
|
|
<view style="display: flex;margin:5px 0;align-items: center;"> |
|
|
|
<p style="color:#4D4D4D ; font-size:13px ;font-weight: bold;">{{crowddata.task.company_name}} |
|
|
|
<p style="color:#4D4D4D ; font-size:13px ;font-weight: bold;">{{ crowddata.task.company_name }} |
|
|
|
</p> |
|
|
|
</p> |
|
|
|
|
|
|
|
|
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<p class="ratebox" style="color:#808080;font-size:12px;align-items: center;"> |
|
|
|
<p class="ratebox" style="color:#808080;font-size:12px;align-items: center;"> |
|
|
|
<span>发包总数:</span> |
|
|
|
<span>发包总数:</span> |
|
|
|
<span style="color:#1578ED;">{{crowddata.task.publish_task_count}}</span> |
|
|
|
<span style="color:#1578ED;">{{ crowddata.task.publish_task_count }}</span> |
|
|
|
<!-- <span style="color:#1578ED;">{{(crowddata.task.company_app_count + crowddata.task.personal_app_count) == 20 ? "已满":(crowddata.task.company_app_count + crowddata.task.personal_app_count)}}</span> --> |
|
|
|
<!-- <span style="color:#1578ED;">{{(crowddata.task.company_app_count + crowddata.task.personal_app_count) == 20 ? "已满":(crowddata.task.company_app_count + crowddata.task.personal_app_count)}}</span> --> |
|
|
|
<span style="margin:0 6px"> l </span> |
|
|
|
<span style="margin:0 6px"> l </span> |
|
|
|
<block v-if="crowddata.task.commentsStar && crowddata.task.commentsStar != 0"> |
|
|
|
<block v-if="crowddata.task.commentsStar && crowddata.task.commentsStar != 0"> |
|
|
|
<span> 评分:</span> |
|
|
|
<span> 评分:</span> |
|
|
|
<span style="color: #FA9C22;margin-right: 5rpx;">{{crowddata.task.commentsStar}}</span> |
|
|
|
<span style="color: #FA9C22;margin-right: 5rpx;">{{ crowddata.task.commentsStar }}</span> |
|
|
|
<u-rate :current="crowddata.task.commentsStar" :disabled="true" active-color="#fa9c22" |
|
|
|
<u-rate :current="crowddata.task.commentsStar" :disabled="true" active-color="#fa9c22" |
|
|
|
inactive-color="#CDCECE"></u-rate> |
|
|
|
inactive-color="#CDCECE"></u-rate> |
|
|
|
</block> |
|
|
|
</block> |
|
|
@ -150,19 +154,19 @@ |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view style='margin-bottom:10px;font-size: 24rpx;'> |
|
|
|
<view style='margin-bottom:10px;font-size: 24rpx;'> |
|
|
|
<span style="color:#4D4D4D">公司简介:</span> |
|
|
|
<span style="color:#4D4D4D">公司简介:</span> |
|
|
|
<span style="color:#808080;line-height:23px;">{{crowddata.task.company_desc}}</span> |
|
|
|
<span style="color:#808080;line-height:23px;">{{ crowddata.task.company_desc }}</span> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view v-if='type==1' class="schedule" style="margin: 12px 3vw 25px 3vw;"> |
|
|
|
<view v-if='type == 1' class="schedule" style="margin: 12px 3vw 25px 3vw;"> |
|
|
|
<view style='display:flex;align-items: center;margin-bottom: 10px;'> |
|
|
|
<view style='display:flex;align-items: center;margin-bottom: 10px;'> |
|
|
|
<view class='vertical'></view> |
|
|
|
<view class='vertical'></view> |
|
|
|
<view style="font-size: 15px;font-weight: bold;">竞标方案</view> |
|
|
|
<view style="font-size: 15px;font-weight: bold;">竞标方案</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<div v-if="userprogramme && userprogramme.period" |
|
|
|
<div v-if="userprogramme && userprogramme.period" |
|
|
|
style="font-size: 14px;text-align:left;color: #333333;margin:10px 0px;line-height:25px;"> |
|
|
|
style="font-size: 14px;text-align:left;color: #333333;margin:10px 0px;line-height:25px;"> |
|
|
|
<p>竞标日期:{{userprogramme.apply_time?userprogramme.apply_time.slice(0,10):'无'}}</p> |
|
|
|
<p>竞标日期:{{ userprogramme.apply_time ? userprogramme.apply_time.slice(0, 10) : '无' }}</p> |
|
|
|
<p>竞标工期:{{userprogramme.period?userprogramme.period+'天':'无'}}</p> |
|
|
|
<p>竞标工期:{{ userprogramme.period ? userprogramme.period + '天' : '无' }}</p> |
|
|
|
<p>竞标优势:{{userprogramme.competition_edge?userprogramme.competition_edge:'无'}}</p> |
|
|
|
<p>竞标优势:{{ userprogramme.competition_edge ? userprogramme.competition_edge : '无' }}</p> |
|
|
|
<p>竞标附件: |
|
|
|
<p>竞标附件: |
|
|
|
<span @click="openurl(userprogramme.attachment)" v-if="userprogramme.attachment" |
|
|
|
<span @click="openurl(userprogramme.attachment)" v-if="userprogramme.attachment" |
|
|
|
style="color:#1578ED;cursor: pointer;">项目附件</span> |
|
|
|
style="color:#1578ED;cursor: pointer;">项目附件</span> |
|
|
@ -173,7 +177,7 @@ |
|
|
|
<view class="submitt" v-if="crowddata.task.task_status == 0"> |
|
|
|
<view class="submitt" v-if="crowddata.task.task_status == 0"> |
|
|
|
<!-- style="letter-spacing:0.5rem" --> |
|
|
|
<!-- style="letter-spacing:0.5rem" --> |
|
|
|
|
|
|
|
|
|
|
|
<view v-if='type==1' class="button-g" |
|
|
|
<view v-if='type == 1' class="button-g" |
|
|
|
style="width:100%;margin-left:0;border-radius: 10px;background: #909399;"> |
|
|
|
style="width:100%;margin-left:0;border-radius: 10px;background: #909399;"> |
|
|
|
<p>已竞标</p> |
|
|
|
<p>已竞标</p> |
|
|
|
</view> |
|
|
|
</view> |
|
|
@ -254,7 +258,7 @@ |
|
|
|
<u-toast ref="uToast" /> |
|
|
|
<u-toast ref="uToast" /> |
|
|
|
<u-modal title='温馨提示' v-model="tokenshow" content="您还没有登录" confirm-text='现在就去' cancel-text='稍等一下' |
|
|
|
<u-modal title='温馨提示' v-model="tokenshow" content="您还没有登录" confirm-text='现在就去' cancel-text='稍等一下' |
|
|
|
show-cancel-button='true' cancel-color='#1578ED' confirm-color='#1578ED' @confirm="confirmtt" |
|
|
|
show-cancel-button='true' cancel-color='#1578ED' confirm-color='#1578ED' @confirm="confirmtt" |
|
|
|
@cancel='tokenshow=false'></u-modal> |
|
|
|
@cancel='tokenshow = false'></u-modal> |
|
|
|
<u-modal v-model="totalshow" @confirm="taskconfirm" content='恭喜您竞标成功,请等待竞标结果通知。' ref="uModal" confirm-text='确定' |
|
|
|
<u-modal v-model="totalshow" @confirm="taskconfirm" content='恭喜您竞标成功,请等待竞标结果通知。' ref="uModal" confirm-text='确定' |
|
|
|
:show-title='false'></u-modal> |
|
|
|
:show-title='false'></u-modal> |
|
|
|
<u-modal title='提示' v-model="certifshow" @confirm="certifconfirm" content='未实名认证的用户无法报名,请先去个人中心做实名认证' |
|
|
|
<u-modal title='提示' v-model="certifshow" @confirm="certifconfirm" content='未实名认证的用户无法报名,请先去个人中心做实名认证' |
|
|
@ -265,12 +269,15 @@ |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
<script> |
|
|
|
import { |
|
|
|
import { |
|
|
|
findLabelValueByPropnew |
|
|
|
findLabelValueByPropnew |
|
|
|
} from '@/utils/util.js' |
|
|
|
} from '@/utils/util.js' |
|
|
|
import mixin from '@/utils/mixin/index.js' |
|
|
|
import mixin from '@/utils/mixin/index.js' |
|
|
|
export default { |
|
|
|
import levelTag from '@/components/levelTag/index.vue' |
|
|
|
|
|
|
|
import { getLevel } from '@/utils/userlevel'; |
|
|
|
|
|
|
|
export default { |
|
|
|
mixins: [mixin], |
|
|
|
mixins: [mixin], |
|
|
|
|
|
|
|
components: { levelTag }, |
|
|
|
data() { |
|
|
|
data() { |
|
|
|
return { |
|
|
|
return { |
|
|
|
base: this.http.baseUrl, |
|
|
|
base: this.http.baseUrl, |
|
|
@ -286,7 +293,7 @@ |
|
|
|
competitionEdge: '', |
|
|
|
competitionEdge: '', |
|
|
|
attachment: '' |
|
|
|
attachment: '' |
|
|
|
}, |
|
|
|
}, |
|
|
|
typeupload: ['pdf', 'doc', 'docx', ], |
|
|
|
typeupload: ['pdf', 'doc', 'docx',], |
|
|
|
headers: { |
|
|
|
headers: { |
|
|
|
Authorization: 'Bearer ' + uni.getStorageSync('accessToken'), |
|
|
|
Authorization: 'Bearer ' + uni.getStorageSync('accessToken'), |
|
|
|
}, |
|
|
|
}, |
|
|
@ -396,7 +403,7 @@ |
|
|
|
// } |
|
|
|
// } |
|
|
|
let allPages = getCurrentPages(); //获取当前页面栈的实例; |
|
|
|
let allPages = getCurrentPages(); //获取当前页面栈的实例; |
|
|
|
let lastPages = allPages.length - 1; // 获得倒数第二个元素的索引; |
|
|
|
let lastPages = allPages.length - 1; // 获得倒数第二个元素的索引; |
|
|
|
console.log('212',lastPages); |
|
|
|
console.log('212', lastPages); |
|
|
|
let options = allPages[lastPages].options; |
|
|
|
let options = allPages[lastPages].options; |
|
|
|
this.userinform = uni.getStorageSync('wxUserInfo'); |
|
|
|
this.userinform = uni.getStorageSync('wxUserInfo'); |
|
|
|
const url = this.userinform && this.userinform.userId ? `?userId=${this.userinform.userId}` : '' |
|
|
|
const url = this.userinform && this.userinform.userId ? `?userId=${this.userinform.userId}` : '' |
|
|
@ -492,11 +499,38 @@ |
|
|
|
errorUpfile(data, index) { |
|
|
|
errorUpfile(data, index) { |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
application() { |
|
|
|
async application() { |
|
|
|
this.userinform = uni.getStorageSync('wxUserInfo'); |
|
|
|
this.userinform = uni.getStorageSync('wxUserInfo'); |
|
|
|
let accessToken = uni.getStorageSync('accessToken'); |
|
|
|
let accessToken = uni.getStorageSync('accessToken'); |
|
|
|
console.log('open', this.userinform, this.crowddata.task); |
|
|
|
await this.http.quickGet('/getInfo', true).then(res => { |
|
|
|
if (!accessToken) { |
|
|
|
const { growthValue } = res.data.user |
|
|
|
|
|
|
|
const {level,_} = getLevel(growthValue) |
|
|
|
|
|
|
|
if (this.crowddata.task.level && this.crowddata.task.level > level) { |
|
|
|
|
|
|
|
uni.showModal({ |
|
|
|
|
|
|
|
title: `提示`, |
|
|
|
|
|
|
|
content: '当前等级不满足竞标资格,去看看其他任务吧', |
|
|
|
|
|
|
|
showCancel: false, |
|
|
|
|
|
|
|
confirmText: '确定', |
|
|
|
|
|
|
|
// success: function (res) { |
|
|
|
|
|
|
|
// if (res.confirm) { |
|
|
|
|
|
|
|
// uni.setClipboardData({ |
|
|
|
|
|
|
|
// data: url, |
|
|
|
|
|
|
|
// success: function () { |
|
|
|
|
|
|
|
// uni.showToast({ |
|
|
|
|
|
|
|
// title: '复制成功', |
|
|
|
|
|
|
|
// }) |
|
|
|
|
|
|
|
// }, |
|
|
|
|
|
|
|
// fail: function () { |
|
|
|
|
|
|
|
// uni.showToast({ |
|
|
|
|
|
|
|
// title: '复制失败', |
|
|
|
|
|
|
|
// }) |
|
|
|
|
|
|
|
// }, |
|
|
|
|
|
|
|
// }) |
|
|
|
|
|
|
|
// console.log('用户点击确定') |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
// }, |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} else if (!accessToken) { |
|
|
|
this.tokenshow = true |
|
|
|
this.tokenshow = true |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
this.http.quickGet(`/tester/cert/apply/${this.userinform.userId}`, true).then(res => { |
|
|
|
this.http.quickGet(`/tester/cert/apply/${this.userinform.userId}`, true).then(res => { |
|
|
@ -529,6 +563,8 @@ |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
open() { |
|
|
|
open() { |
|
|
|
// console.log('open'); |
|
|
|
// console.log('open'); |
|
|
@ -708,7 +744,7 @@ |
|
|
|
uni.openDocument({ |
|
|
|
uni.openDocument({ |
|
|
|
showMenu: true, |
|
|
|
showMenu: true, |
|
|
|
filePath: res.tempFilePath, |
|
|
|
filePath: res.tempFilePath, |
|
|
|
success: function(res) { |
|
|
|
success: function (res) { |
|
|
|
console.log('打开文档成功'); |
|
|
|
console.log('打开文档成功'); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
@ -729,7 +765,7 @@ |
|
|
|
uni.openDocument({ |
|
|
|
uni.openDocument({ |
|
|
|
showMenu: true, |
|
|
|
showMenu: true, |
|
|
|
filePath: res.tempFilePath, |
|
|
|
filePath: res.tempFilePath, |
|
|
|
success: function(res) { |
|
|
|
success: function (res) { |
|
|
|
console.log('打开文档成功'); |
|
|
|
console.log('打开文档成功'); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
@ -743,28 +779,28 @@ |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
|
|
<style> |
|
|
|
<style> |
|
|
|
.ratebox ::v-deep .u-icon { |
|
|
|
.ratebox ::v-deep .u-icon { |
|
|
|
font-size: 13px !important; |
|
|
|
font-size: 13px !important; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.logobg { |
|
|
|
.logobg { |
|
|
|
width: 100vw; |
|
|
|
width: 100vw; |
|
|
|
object-fit: contain; |
|
|
|
object-fit: contain; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.schedule { |
|
|
|
.schedule { |
|
|
|
width: 94vw; |
|
|
|
width: 94vw; |
|
|
|
margin: 12px 3vw; |
|
|
|
margin: 12px 3vw; |
|
|
|
background: #FFFFFF; |
|
|
|
background: #FFFFFF; |
|
|
|
padding: 25rpx; |
|
|
|
padding: 25rpx; |
|
|
|
border-radius: 10rpx; |
|
|
|
border-radius: 10rpx; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.tabone { |
|
|
|
.tabone { |
|
|
|
padding: 10rpx 15rpx; |
|
|
|
padding: 10rpx 15rpx; |
|
|
|
color: #FFFFFF; |
|
|
|
color: #FFFFFF; |
|
|
|
background: #2286FA; |
|
|
|
background: #2286FA; |
|
|
@ -772,26 +808,26 @@ |
|
|
|
font-size: 20rpx; |
|
|
|
font-size: 20rpx; |
|
|
|
text-align: center; |
|
|
|
text-align: center; |
|
|
|
margin-bottom: 10rpx; |
|
|
|
margin-bottom: 10rpx; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.tabone1 { |
|
|
|
.tabone1 { |
|
|
|
background: #FCF0E6; |
|
|
|
background: #FCF0E6; |
|
|
|
font-weight: 500; |
|
|
|
font-weight: 500; |
|
|
|
font-size: 20rpx; |
|
|
|
font-size: 20rpx; |
|
|
|
color: #544841; |
|
|
|
color: #544841; |
|
|
|
margin-right: 10rpx; |
|
|
|
margin-right: 10rpx; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.vertical { |
|
|
|
.vertical { |
|
|
|
width: 6rpx; |
|
|
|
width: 6rpx; |
|
|
|
height: 26rpx; |
|
|
|
height: 26rpx; |
|
|
|
background: #1578ED; |
|
|
|
background: #1578ED; |
|
|
|
border-radius: 10rpx; |
|
|
|
border-radius: 10rpx; |
|
|
|
margin-right: 5px; |
|
|
|
margin-right: 5px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.submitt { |
|
|
|
.submitt { |
|
|
|
height: 70px; |
|
|
|
height: 70px; |
|
|
|
font-size: 20px; |
|
|
|
font-size: 20px; |
|
|
|
background: #FFFFFF; |
|
|
|
background: #FFFFFF; |
|
|
@ -801,9 +837,9 @@ |
|
|
|
width: 100vw; |
|
|
|
width: 100vw; |
|
|
|
padding: 10px 20px; |
|
|
|
padding: 10px 20px; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.success { |
|
|
|
.success { |
|
|
|
width: 130rpx; |
|
|
|
width: 130rpx; |
|
|
|
height: 40rpx; |
|
|
|
height: 40rpx; |
|
|
|
background: #21B96C; |
|
|
|
background: #21B96C; |
|
|
@ -814,19 +850,19 @@ |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
justify-content: center; |
|
|
|
justify-content: center; |
|
|
|
align-items: center; |
|
|
|
align-items: center; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.success image { |
|
|
|
.success image { |
|
|
|
width: 20rpx; |
|
|
|
width: 20rpx; |
|
|
|
height: 20rpx; |
|
|
|
height: 20rpx; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.success1 { |
|
|
|
.success1 { |
|
|
|
width: 130rpx; |
|
|
|
width: 130rpx; |
|
|
|
height: 40rpx; |
|
|
|
height: 40rpx; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.button-g { |
|
|
|
.button-g { |
|
|
|
width: 280rpx; |
|
|
|
width: 280rpx; |
|
|
|
height: 80rpx; |
|
|
|
height: 80rpx; |
|
|
|
background: linear-gradient(90deg, #5EA6FD, #1A81F9); |
|
|
|
background: linear-gradient(90deg, #5EA6FD, #1A81F9); |
|
|
@ -836,10 +872,10 @@ |
|
|
|
color: #FFFFFF; |
|
|
|
color: #FFFFFF; |
|
|
|
font-size: 33rpx; |
|
|
|
font-size: 33rpx; |
|
|
|
margin-left: 13px; |
|
|
|
margin-left: 13px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* line-height: 15%; */ |
|
|
|
/* line-height: 15%; */ |
|
|
|
.peodi { |
|
|
|
.peodi { |
|
|
|
/* line-height: 15%; */ |
|
|
|
/* line-height: 15%; */ |
|
|
|
margin: 5px auto 15px; |
|
|
|
margin: 5px auto 15px; |
|
|
|
width: 260px; |
|
|
|
width: 260px; |
|
|
@ -847,69 +883,69 @@ |
|
|
|
color: #1A1A1A; |
|
|
|
color: #1A1A1A; |
|
|
|
font-size: 36rpx; |
|
|
|
font-size: 36rpx; |
|
|
|
font-weight: bold; |
|
|
|
font-weight: bold; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.poptext { |
|
|
|
.poptext { |
|
|
|
font-size: 33rpx; |
|
|
|
font-size: 33rpx; |
|
|
|
font-weight: 500; |
|
|
|
font-weight: 500; |
|
|
|
color: #333333; |
|
|
|
color: #333333; |
|
|
|
line-height: 24rpx; |
|
|
|
line-height: 24rpx; |
|
|
|
margin-left: 5px; |
|
|
|
margin-left: 5px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.signst { |
|
|
|
.signst { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
flex-direction: column; |
|
|
|
align-items: center; |
|
|
|
align-items: center; |
|
|
|
margin: 5px; |
|
|
|
margin: 5px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.signst img { |
|
|
|
.signst img { |
|
|
|
width: 40px; |
|
|
|
width: 40px; |
|
|
|
height: 40px; |
|
|
|
height: 40px; |
|
|
|
border-radius: 50%; |
|
|
|
border-radius: 50%; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.signst p { |
|
|
|
.signst p { |
|
|
|
font-size: 11px; |
|
|
|
font-size: 11px; |
|
|
|
margin-top: 5px; |
|
|
|
margin-top: 5px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.article-body { |
|
|
|
.article-body { |
|
|
|
line-height: 26px !important; |
|
|
|
line-height: 26px !important; |
|
|
|
/* width: 100%; */ |
|
|
|
/* width: 100%; */ |
|
|
|
/* color:rgb(17, 16, 16)!important; */ |
|
|
|
/* color:rgb(17, 16, 16)!important; */ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.article-body p { |
|
|
|
.article-body p { |
|
|
|
font-size: 34rpx !important; |
|
|
|
font-size: 34rpx !important; |
|
|
|
color: #666666 !important; |
|
|
|
color: #666666 !important; |
|
|
|
line-height: 35rpx !important; |
|
|
|
line-height: 35rpx !important; |
|
|
|
background-color: transparent !important; |
|
|
|
background-color: transparent !important; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.article-body>>>span { |
|
|
|
.article-body>>>span { |
|
|
|
font-size: 34rpx !important; |
|
|
|
font-size: 34rpx !important; |
|
|
|
color: #666666 !important; |
|
|
|
color: #666666 !important; |
|
|
|
line-height: 35rpx !important; |
|
|
|
line-height: 35rpx !important; |
|
|
|
background-color: transparent !important; |
|
|
|
background-color: transparent !important; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.sinput { |
|
|
|
.sinput { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
align-items: center; |
|
|
|
height: 50px; |
|
|
|
height: 50px; |
|
|
|
padding: 10px 0; |
|
|
|
padding: 10px 0; |
|
|
|
margin: 10px 0 0 0; |
|
|
|
margin: 10px 0 0 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.sinput img { |
|
|
|
.sinput img { |
|
|
|
width: 20px; |
|
|
|
width: 20px; |
|
|
|
height: 20px; |
|
|
|
height: 20px; |
|
|
|
margin-right: 10px; |
|
|
|
margin-right: 10px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.sinput .u-input { |
|
|
|
.sinput .u-input { |
|
|
|
width: 75vw; |
|
|
|
width: 75vw; |
|
|
|
height: 35px; |
|
|
|
height: 35px; |
|
|
|
border: 1px solid #E6E6E6; |
|
|
|
border: 1px solid #E6E6E6; |
|
|
@ -917,32 +953,32 @@ |
|
|
|
border-radius: 10rpx 10rpx 0rpx 0rpx; |
|
|
|
border-radius: 10rpx 10rpx 0rpx 0rpx; |
|
|
|
padding: 0 10px !important; |
|
|
|
padding: 0 10px !important; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.sinputrt { |
|
|
|
.sinputrt { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
/* align-items: center; */ |
|
|
|
/* align-items: center; */ |
|
|
|
height: 50px; |
|
|
|
height: 50px; |
|
|
|
padding: 10px 0; |
|
|
|
padding: 10px 0; |
|
|
|
margin: 0px 0 70px 0; |
|
|
|
margin: 0px 0 70px 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.sinputrt img { |
|
|
|
.sinputrt img { |
|
|
|
width: 20px; |
|
|
|
width: 20px; |
|
|
|
height: 20px; |
|
|
|
height: 20px; |
|
|
|
margin-right: 10px; |
|
|
|
margin-right: 10px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.sinputrt .u-input { |
|
|
|
.sinputrt .u-input { |
|
|
|
width: 75vw; |
|
|
|
width: 75vw; |
|
|
|
height: 100px; |
|
|
|
height: 100px; |
|
|
|
border: 1px solid #E6E6E6; |
|
|
|
border: 1px solid #E6E6E6; |
|
|
|
background: #FFFFFF; |
|
|
|
background: #FFFFFF; |
|
|
|
border-radius: 10rpx 10rpx 0rpx 0rpx; |
|
|
|
border-radius: 10rpx 10rpx 0rpx 0rpx; |
|
|
|
padding-left: 10px !important; |
|
|
|
padding-left: 10px !important; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.slot-btn { |
|
|
|
.slot-btn { |
|
|
|
/* width:75vw; |
|
|
|
/* width:75vw; |
|
|
|
height: 45px; |
|
|
|
height: 45px; |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
@ -959,13 +995,13 @@ |
|
|
|
border: 1px solid #E6E6E6; |
|
|
|
border: 1px solid #E6E6E6; |
|
|
|
line-height: 80px; |
|
|
|
line-height: 80px; |
|
|
|
text-align: center; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.slot-btn__hover { |
|
|
|
.slot-btn__hover { |
|
|
|
background-color: rgb(235, 236, 238); |
|
|
|
background-color: rgb(235, 236, 238); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.u-list-item { |
|
|
|
.u-list-item { |
|
|
|
margin: 0 !important; |
|
|
|
margin: 0 !important; |
|
|
|
background: transparent !important; |
|
|
|
background: transparent !important; |
|
|
|
color: #000000 !important; |
|
|
|
color: #000000 !important; |
|
|
@ -974,10 +1010,10 @@ |
|
|
|
zIndex: 0 !important; |
|
|
|
zIndex: 0 !important; |
|
|
|
border-radius: 0 !important; |
|
|
|
border-radius: 0 !important; |
|
|
|
border: none !important; |
|
|
|
border: none !important; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* .u-list-item :before { |
|
|
|
/* .u-list-item :before { |
|
|
|
content: "已上传"; |
|
|
|
content: "已上传"; |
|
|
|
position: absolute; |
|
|
|
position: absolute; |
|
|
|
left: 7px; |
|
|
|
left: 7px; |
|
|
|