This commit is contained in:
aihe 2024-08-31 13:19:52 +08:00
parent d9a9295355
commit 207ca1c03e
7 changed files with 207 additions and 212 deletions

View File

@ -51,3 +51,27 @@ export const getAgreementTxt = (data = {})=> {
return coreRequest(url.getAgreementTxt, data, {}, "GET")
}
// 信息速递列表
export const queryArticleList = (data = {})=> {
return coreRequest(url.queryArticleList, data, {}, "GET")
}
// 获取文档详情
export const queryArticleDetail = (data = {})=> {
return coreRequest(url.queryArticleDetail, data, {}, "GET")
}
// 文章点赞
export const articleGiveLike = (data = {})=> {
return coreRequest(url.articleGiveLike, data, {})
}
// 获取实名认证信息
export const getIdVerification = (data = {})=> {
return coreRequest(url.getIdVerification, data, {}, "GET")
}
// 提交实名认证
export const idVerification = (data = {})=> {
return coreRequest(url.idVerification, data, {})
}

View File

@ -46,5 +46,12 @@ export default {
deleteBindSalemen: `/oms2c/emisWaybill/deleteBindSalemen`, // 删除绑定快递员 -- DONE
setDefaultBindSalesmen: `/oms2c/emisWaybill/setDefaultBindSalesmen`, // 设置默认快递员 -- DONE
queryWaybillTraceInfo: `/oms2c/emisTmsScanRecord/queryWaybillTraceInfo`, // 物流轨迹 -- DONE
queryArticleList: `/oms2c/emisArticle/listSimple`, // 信息速递列表 -- DONE
queryArticleDetail: `/oms2c/emisArticle/getDetail`, // 获取文档详情 -- DONE
articleGiveLike: `/oms2c/emisArticle/giveLike`, // 文章点赞 -- DONE
getIdVerification: `/oms2c/emisCustomerUser/getIdVerification`, // 获取实名认证信息 -- DONE
idVerification: `/oms2c/emisCustomerUser/idVerification`, // 提交实名认证 -- DONE
}

View File

@ -3,11 +3,11 @@
<view style="position: relative;height: calc(70vh); width: 600rpx;">
<tpx-layout>
<template v-slot:body>
<u-parse :content="content"></u-parse>
<rich-text :nodes="content"></rich-text>
</template>
<template v-slot:footer>
<view class="blcok-white-noradius" style="margin-top: 0;margin-bottom: 0;">
<view v-if="showAgreeBtn" class="blcok-white-noradius" style="margin-top: 0;margin-bottom: 0;">
<u-button @click="handleSureBtn()" type="primary" size="large" shape="circle"
custom-style="height:80rpx;font-size: 30rpx;"
>
@ -36,6 +36,11 @@
return false
}
},
showAgreeBtn: {
default () {
return true
}
},
content: {
default () {
return ``

View File

@ -1,39 +1,41 @@
<template>
<view class="dbody">
<u-text :text="title" size="36" :bold="true"></u-text>
<!-- <u-text :text="desc" size="32" color="#666" margin="30rpx 0"></u-text> -->
<view class="mt-30">
<u-row>
<u-avatar size="80"></u-avatar>
<view class="pl-10">
<u-text :text="'海关新闻网'" size="28" ></u-text>
<u-text margin="6rpx 0 0 0" :text="'发布于2012-10-11 10:22'" size="26" color="#999"></u-text>
</view>
</u-row>
</view>
<view class="mt-30">
<u-parse :content="content"></u-parse>
</view>
<view class="mt-30">
<u-row custom-style="height:100rpx;" justify="end">
<tpx-page>
<view class="dbody">
<u-text :text="info.title" size="36" :bold="true"></u-text>
<!-- <u-text :text="desc" size="32" color="#666" margin="30rpx 0"></u-text> -->
<view class="mt-30">
<u-row>
<u-icon name="thumb-up" size="38" color="#999" ></u-icon>
<u-text margin="0 0 0 10rpx" size="26" :text="66" color="#999"></u-text>
<u-avatar :src="info.fileUrl" size="80"></u-avatar>
<view class="pl-10">
<u-text :text="info.author || '-'" size="28"></u-text>
<u-text margin="6rpx 0 0 0" :text="`发布于${info.createTime}`" size="26" color="#999"></u-text>
</view>
</u-row>
</u-row>
</view>
<view class="mt-30">
<rich-text :nodes="info.content || '-'"></rich-text>
</view>
<view @click="handleLike()" class="mt-30">
<u-row custom-style="height:100rpx;" justify="end">
<u-row>
<u-icon name="thumb-up" size="38"
:color="`${info.isGiveLike==1?'#B12D29':'#999'}`"
/>
<u-text margin="0 0 0 10rpx" size="26" :text="info.clickCount || 0" color="#999"></u-text>
</u-row>
</u-row>
</view>
</view>
</view>
</tpx-page>
</template>
<script>
import getCdnUrl from "@/common/getCdnUrl"
import { goto, goBack, setClipboardData, confirmModal, showLoading } from "@/common/untool"
import * as apiService from "@/common/api"
export default {
props: {
// hasLeftWin: {
@ -42,37 +44,29 @@
},
data() {
return {
title: '各国邮政新规',
desc: 'asd',
content: `
《快件服务协议》是探路物流与寄件人《以下简称"您”或“用户”)之间达成的快件寄递服务合同,附则、远单、隐私政策及京东物流发布的各类规则、服务细则、说明、通知等为《快件服务协议》有效组成部分(以下统称为“本协议”),本协议在您下电子运单前通过勾选的形式在线签署。在线签署并下单后,即表示您已接受协议的全部内容,在您与探路物流间发生法律效力。
<p>露从今夜白,月是故乡明</p>
<p>请您在务必仔细阅读</p>
请您在务必仔细阅读、充分理解后再决定勾选并下单尤其是以粗体、红色字体或下划线等方式标识的条款因这些条款可能会明确您应履行的义务或对您的权利有所限制。若您不同意本协议全部或任何内容,您应停止使用寄快递服务。如您对协议内容有任何疑问,您可随时通过京东物流官方网站或拔打京东物流客服热线。
`
}
},
onShareAppMessage() {
return {
// title: '',
// path: 'TODO'
queryOption: {
artId: ''
},
info:{}
}
},
onLoad(queryOption) {
this.queryOption = queryOption
this.initData();
},
onUnload() {
},
methods: {
getCdnUrl,
initData(){
// showLoading()
setTimeout(() => {
uni.stopPullDownRefresh();
}, 300);
this.getArtDetailData()
},
setListData() {
async getArtDetailData(){
let res = await apiService.queryArticleDetail({ id: this.queryOption.artId, _loading: true })
this.info = res.data || {}
},
async handleLike(item){
let res = await apiService.articleGiveLike({ articleId: this.info.id, _loading: true })
this.getArtDetailData()
},
}
}
@ -80,15 +74,15 @@
<style lang="scss">
@import '@/common/uni-nvue.scss';
page {
background-color: #F6F6F6;
height: 100% !important;
padding-top: 20rpx;
}
</style>
<style scoped lang="scss">
.dbody{
.dbody {
background-color: #fff;
margin: 0 20rpx 20rpx 20rpx;
padding: 30rpx;

View File

@ -1,58 +1,53 @@
<template>
<tpx-layout>
<template v-slot:body>
<scroll-view :scroll-y="true" @scrolltolower="onScrollBottom()" class="pos-abt-all"
>
<view class="pgb-cont">
<!-- 列表数据 -->
<!-- -->
<view>
<view v-for="(item) in dataList" class="blcok-white radius-20 mb-20" style="margin-top: 0;"
@click="handleTODetail(item)"
>
<u-text :text="'各国邮政新规'" size="30" :bold="true" lines="1"></u-text>
<u-row class="mt-20">
<view class="pr-10">
<u-text :text="'根据萨尔瓦多邮政通知,为了使萨尔瓦多邮政能在邮件抵达时,致电或'" size="28" color="#999" lines="2"></u-text>
</view>
<u-image height="100" width="150"></u-image>
</u-row>
<view class="mt-20">
<u-row justify="between">
<u-row>
<u-icon name="thumb-up" size="38" color="#999"></u-icon>
<u-text margin="0 0 0 10rpx" size="26" :text="66" color="#999"></u-text>
</u-row>
<view>
<u-text :text="'2012-10-11 10:22'" size="26" color="#999"></u-text>
<tpx-page>
<tpx-layout>
<template v-slot:body>
<view class="pos-abt-all">
<tpx-scroll-view v-model:resObject="resData" :searchParam="searchParam" :getListFun="getListFun"
ref="listRef"
>
<view class="pgb-cont">
<view>
<view v-for="(item) in resData.list" class="blcok-white radius-20 mb-20" style="margin-top: 0;"
>
<view @click="goto(`service/articledetail?artId=${item.id}`)">
<u-text :text="item.title" size="30" :bold="true" lines="1"></u-text>
<u-row class="mt-20" justify="between">
<view class="pr-10">
<u-text :text="item.description || '-'" size="28" color="#999" lines="2"></u-text>
</view>
<u-image :src="item.fileUrl" height="100" width="150"></u-image>
</u-row>
</view>
</u-row>
<view class="mt-20">
<u-row justify="between">
<u-row @click="handleLike(item)">
<u-icon name="thumb-up" size="38"
:color="`${item.isGiveLike==1?'#B12D29':'#999'}`"
/>
<u-text margin="0 0 0 10rpx" size="26" :text="item.clickCount || 0" color="#999"></u-text>
</u-row>
<view>
<u-text :text="item.createTime" size="26" color="#999"></u-text>
</view>
</u-row>
</view>
</view>
</view>
</view>
</view>
<!-- 加载更多 -->
<u-loadmore icon-size="28" font-size="28" margin-top="30" v-if="showLoadMore || loadedAll"
:status="loadedAll ? 'nomore' : 'loading'" />
<!-- 空数据页 -->
<view v-if="dataList.length == 0" style="padding-top: 100rpx;">
<u-empty text="无数据" :icon="getCdnUrl('kong.png')" textSize="28" width="86" height="97">
</u-empty>
</view>
</tpx-scroll-view>
</view>
</scroll-view>
</template>
</tpx-layout>
</template>
</tpx-layout>
</tpx-page>
</template>
<script>
import getCdnUrl from "@/common/getCdnUrl"
import { goto, goBack, setClipboardData, confirmModal, showLoading } from "@/common/untool"
import * as apiService from "@/common/api"
export default {
props: {
@ -66,62 +61,28 @@
data() {
return {
searchParam: {
keyword: '',
},
resData: { list: [] },
queryOption: {},
dataList: [
{},{},{},{},{},{},{},{}
],
showLoadMore: false,
loadedAll: false
}
},
onShareAppMessage() {
return {
// title: '',
// path: 'TODO'
}
},
onLoad(queryOption) {
this.queryOption = queryOption
this.searchParam.tabType = queryOption.tab || tabList[0].val
this.initData();
},
onUnload() {
},
methods: {
getCdnUrl,
getListFun: apiService.queryArticleList,
initData(){
// showLoading()
setTimeout(() => {
uni.stopPullDownRefresh();
}, 300);
},
setListData() {
},
onScrollBottom() {
console.log("onScrollBottom");
if (this.loadedAll) {
return;
}
this.showLoadMore = true;
setTimeout(() => {
this.setListData();
}, 300);
async handleLike(item){
let res = await apiService.articleGiveLike({ articleId: item.id, _loading: true })
this.triggerListReload()
},
handleSearchMoreBtn(){
if(!this.showLoadMore) {
// 回显更多条件
Object.keys(this.tmpSearchParam).map(t=> {
this.tmpSearchParam[t] = this.searchParam[t] || ''
})
}
this.showSearchMore = !this.showSearchMore
},
handleTODetail(item={}) {
goto(`service/articledetail?id=${item.id}`)
triggerListReload(){
this?.$refs?.listRef?.getDataList?.(true) // 重置到第一页数据
},
}
}

View File

@ -57,6 +57,7 @@
</view>
</view>
<buns-privacy-dialog v-model:show="privacyModal.show" :content="privacyModal.content" title="快件运单契约条款"> </buns-privacy-dialog>
</tpx-page>
</template>
<script>
@ -90,13 +91,16 @@
toolBtnlist: [
{ title: '运单列表', subTitle: "", icon: getCdnUrl(`mine/ydlib.png`), url: 'tabBar/search/search' },
{ title: '进仓单', subTitle: "", icon: getCdnUrl(`mine/jcdan.png`), url: 'warehousing/list' },
{ title: '协议', subTitle: "", icon: getCdnUrl(`mine/xieyi.png`), url: '' },
{ title: '协议', subTitle: "", icon: getCdnUrl(`mine/xieyi.png`), url: '', enType: 'rule' },
{ title: '账单查询', subTitle: "", icon: getCdnUrl(`mine/zhdancha.png`), url: 'bill/list' },
{ title: '地址簿', subTitle: "", icon: getCdnUrl(`mine/dizhi.png`), url: 'address/list' },
{ title: '快件查询', subTitle: "", icon: getCdnUrl(`mine/kjcha.png`), url: 'post/query' },
{ title: '投诉建议', subTitle: "", icon: getCdnUrl(`mine/tousu.png`), url: 'complaint/complaint' },
{ title: '实名填写', subTitle: "", icon: getCdnUrl(`mine/shiming.png`), url: 'user/certification' }
]
],
privacyModal: {
show: false,
},
}
},
onShareAppMessage() {
@ -109,9 +113,17 @@
methods: {
handlePageRedirect(item) {
item.url && this.goto(item.url)
if(item.enType == 'rule') {
this.handleDialogClick(this.privacyModal)
}
},
async initData(){
this.getAppHomeStatData()
this.getPrivateRuleData()
},
async getPrivateRuleData(){
let res = await apiService.getAgreementTxt()
this.privacyModal.content = res?.data || ''
},
async getAppHomeStatData(){
let res = await apiService.getAppHomeStatData()
@ -121,6 +133,9 @@
await this.$store.dispatch(USERKEY.LOGOUT)
goLogin()
},
handleDialogClick(curModal){
curModal.show = true
}
}
}
</script>

View File

@ -5,43 +5,39 @@
<view class="com-jianju pos-rlt pb-30" style="padding-top: 2rpx;">
<view class="blcok-white radius-20" style="padding-top: 40rpx;">
<uni-forms ref="baseForm" :modelValue="baseFormData" label-width="0">
<uni-forms-item :required="false">
<tpx-input v-model:value="baseFormData.name" placeholder="真实姓名"></tpx-input>
</uni-forms-item>
<uni-forms-item :required="false">
<tpx-select placeholder="证件类型" v-model:value="baseFormData.type" :list="typeList"
mode="drop"
></tpx-select>
</uni-forms-item>
<uni-forms-item :required="false">
<tpx-input v-model:value="baseFormData.number" placeholder="证件号"></tpx-input>
</uni-forms-item>
<view class="mb-10">
<u-row justify="between">
<u-col span="5">
<tpx-upload v-model:value="baseFormData.pic1" :isSlot="true">
<view class="up-item">
<u-image :src="getCdnUrl(`mine/shen-zh.svg`)" height="150" width="200"></u-image>
<u-text :text="'身份证人像面'" size="28" align="center"></u-text>
</view>
</tpx-upload>
</u-col>
<u-col span="5">
<tpx-upload v-model:value="baseFormData.pic2" :isSlot="true">
<view class="up-item">
<u-image :src="getCdnUrl(`mine/shen-fan.svg`)" height="150" width="200"></u-image>
<u-text :text="'身份证国徽面'" size="28" align="center"></u-text>
</view>
</tpx-upload>
</u-col>
</u-row>
</view>
</uni-forms>
<view>
<tpx-input v-model:value="submitParam.realName" placeholder="真实姓名"></tpx-input>
</view>
<view class="mt-20">
<tpx-select placeholder="证件类型" v-model:value="submitParam.idType" :list="dicData.emis_id_type"
mode="drop"
></tpx-select>
</view>
<view class="mt-20">
<tpx-input v-model:value="submitParam.idNo" placeholder="证件号"></tpx-input>
</view>
<view class="mb-10 mt-20">
<u-row justify="between">
<u-col span="5">
<tpx-upload v-model:value="submitParam.idPic1" :isSlot="true">
<view class="up-item">
<u-image :src="getCdnUrl(`mine/shen-zh.svg`)" height="150" width="200"></u-image>
<u-text :text="'身份证人像面'" size="28" align="center"></u-text>
</view>
</tpx-upload>
</u-col>
<u-col span="5">
<tpx-upload v-model:value="submitParam.idPic2" :isSlot="true">
<view class="up-item">
<u-image :src="getCdnUrl(`mine/shen-fan.svg`)" height="150" width="200"></u-image>
<u-text :text="'身份证国徽面'" size="28" align="center"></u-text>
</view>
</tpx-upload>
</u-col>
</u-row>
</view>
</view>
</view>
</template>
@ -56,6 +52,9 @@
</template>
<script>
import * as apiService from "@/common/api"
import { checkParams } from "@/common/validate"
export default {
props: {
// hasLeftWin: {
@ -63,29 +62,24 @@
// }
},
computed: {
dicData() {
return this.$store.getters.dicData
},
},
data() {
return {
fileList1: [],
typeList: [
{ title: '身份证', val: 1 },
{ title: '护照', val: 2 },
{ title: '港台证', val: 3 }
],
// 基础表单数据
baseFormData: {
name: '',
submitParam: {
idType: this.$store.getters.dicData?.emis_id_type?.[0]?.value
},
// 校验规则
rules: {
name: {
rules: [{
required: true,
errorMessage: '姓名不能为空'
}]
}
}
submitValidConfig: {
realName: { required: true, requiredMsg: '姓名不能为空' },
idType: { required: true, requiredMsg: '证件类型不能为空' },
idNo: { required: true, requiredMsg: '证件号不能为空' },
idPic1: { required: true, requiredMsg: '身份证人像面不能为空' },
idPic2: { required: true, requiredMsg: '身份证国徽面不能为空' },
},
}
},
onShareAppMessage() {
@ -102,26 +96,21 @@
},
methods: {
initData() {
// uni.showLoading({
// title: '加载中'
// });
this.getCertDetail()
},
handleAnsText() {
async getCertDetail(){
let res = apiService.getIdVerification()
res.data && (this.submitParam = res.data)
},
handleFormChange() {
},
handleSubmit() {
this.$refs['baseForm'].validate().then(res => {
console.log('success', res);
uni.showToast({
title: `校验通过`
})
this.goBack()
}).catch(err => {
console.log('err', err);
})
async handleSubmit() {
let params = { ...this.submitParam }
await checkParams(params, this.submitValidConfig)
let res = await apiService.idVerification(params)
this.showToast('提交成功')
this.getCertDetail()
},
}
}