This commit is contained in:
aihe 2024-08-31 14:13:02 +08:00
parent 207ca1c03e
commit 600ecbb5b3
7 changed files with 201 additions and 142 deletions

View File

@ -42,8 +42,8 @@ export const parseAddress = (data = {})=> {
return coreRequest(url.parseAddress, data, {}, "GET") return coreRequest(url.parseAddress, data, {}, "GET")
} }
export const getAppHomeStatData = (data = {})=> { export const getCustOrderStatData = (data = {})=> {
return coreRequest(url.getAppHomeStatData, data, {}, "GET") return coreRequest(url.getCustOrderStatData, data, {}, "GET")
} }
// 获取下单隐私协议 // 获取下单隐私协议
@ -75,3 +75,19 @@ export const getIdVerification = (data = {})=> {
export const idVerification = (data = {})=> { export const idVerification = (data = {})=> {
return coreRequest(url.idVerification, data, {}) return coreRequest(url.idVerification, data, {})
} }
// 投诉列表
export const getComplaintsList = (data = {})=> {
return coreRequest(url.getComplaintsList, data, {}, 'get')
}
// 新增投诉
export const addComplaints = (data = {})=> {
return coreRequest(url.addComplaints, data, {})
}
// 投诉详情
export const getComplainInfo = (data = {})=> {
return coreRequest(url.getComplainInfo, data, {}, 'get')
}

View File

@ -11,7 +11,7 @@ export default {
getEmisCountry: `/oms2c/emisCountry/listSimple`, // 获取国家列表 -- DONE getEmisCountry: `/oms2c/emisCountry/listSimple`, // 获取国家列表 -- DONE
getEmisRegion: `/oms2c/emisRegion/listSimple`,// 获取省市区列表 -- DONE getEmisRegion: `/oms2c/emisRegion/listSimple`,// 获取省市区列表 -- DONE
getDicDataJson: `/common/getDicDataJson`, // 获取枚举字段 -- DONE getDicDataJson: `/common/getDicDataJson`, // 获取枚举字段 -- DONE
getAppHomeStatData: `/oms2c/commonTools/getAppHomeStatData`,// 首页统计数据 getCustOrderStatData: `/oms2c/emisWaybill/getCustOrderStatData`,// 我的收寄件信息统计 -- DONE
getCustomerUserAddressList: `/oms2c/emisCustomerAddress/listSimple`, // 获取客户地址列表 -- DONE getCustomerUserAddressList: `/oms2c/emisCustomerAddress/listSimple`, // 获取客户地址列表 -- DONE
setDefaultAddressById: `/oms2c/emisCustomerAddress/setDefaultAddressById`, // 设置默认地址 -- DONE setDefaultAddressById: `/oms2c/emisCustomerAddress/setDefaultAddressById`, // 设置默认地址 -- DONE
deleteAddressById: `/oms2c/emisCustomerAddress/deleteAddressById`, // 删除地址 -- DONE deleteAddressById: `/oms2c/emisCustomerAddress/deleteAddressById`, // 删除地址 -- DONE
@ -46,12 +46,15 @@ export default {
deleteBindSalemen: `/oms2c/emisWaybill/deleteBindSalemen`, // 删除绑定快递员 -- DONE deleteBindSalemen: `/oms2c/emisWaybill/deleteBindSalemen`, // 删除绑定快递员 -- DONE
setDefaultBindSalesmen: `/oms2c/emisWaybill/setDefaultBindSalesmen`, // 设置默认快递员 -- DONE setDefaultBindSalesmen: `/oms2c/emisWaybill/setDefaultBindSalesmen`, // 设置默认快递员 -- DONE
queryWaybillTraceInfo: `/oms2c/emisTmsScanRecord/queryWaybillTraceInfo`, // 物流轨迹 -- DONE queryWaybillTraceInfo: `/oms2c/emisTmsScanRecord/queryWaybillTraceInfo`, // 物流轨迹 -- DONE
queryArticleList: `/oms2c/emisArticle/listSimple`, // 信息速递列表 -- DONE queryArticleList: `/oms2c/emisArticle/listSimple`, // 信息速递列表 -- DONE
queryArticleDetail: `/oms2c/emisArticle/getDetail`, // 获取文档详情 -- DONE queryArticleDetail: `/oms2c/emisArticle/getDetail`, // 获取文档详情 -- DONE
articleGiveLike: `/oms2c/emisArticle/giveLike`, // 文章点赞 -- DONE articleGiveLike: `/oms2c/emisArticle/giveLike`, // 文章点赞 -- DONE
getIdVerification: `/oms2c/emisCustomerUser/getIdVerification`, // 获取实名认证信息 -- DONE getIdVerification: `/oms2c/emisCustomerUser/getIdVerification`, // 获取实名认证信息 -- DONE
idVerification: `/oms2c/emisCustomerUser/idVerification`, // 提交实名认证 -- DONE idVerification: `/oms2c/emisCustomerUser/idVerification`, // 提交实名认证 -- DONE
getComplaintsList: `/oms2c/emisWaybillComplaints/listSimple`, // 投诉列表 -- DONE
addComplaints: `/oms2c/emisWaybillComplaints/addComplaints`, // 新增投诉 -- DONE
getComplainInfo: `/oms2c/emisWaybillComplaints/getInfoById`, // 投诉详情 -- DONE
} }

View File

@ -1,81 +1,101 @@
<template> <template>
<tpx-layout> <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 v-for="(item) in resData.list" class="com-jianju" style="padding-top: 30rpx;">
<view class="com-radius" style="background-color: #fff;padding: 26rpx 30rpx;">
<u-row justify="between">
<u-text size="30" color="#0E0708" :bold="true" text="T7080123982301"></u-text>
</u-row>
<u-line color="#D9D9D9" margin="26rpx 0"></u-line>
<template v-slot:body> <u-row align="top">
<view class="com-jianju" style="padding-top: 30rpx;"> <view class="mr-10">
<view class="com-radius" style="background-color: #fff;padding: 26rpx 30rpx;"> <u-text size="28" color="#333" :bold="true" text="投诉原因:"></u-text>
<u-row justify="between"> </view>
<u-text size="30" color="#0E0708" :bold="true" text="T7080123982301"></u-text> <u-text size="26" color="#999" text="×××"></u-text>
</u-row> </u-row>
<u-line color="#D9D9D9" margin="26rpx 0"></u-line>
<u-row align="top"> <u-row align="top" custom-style="margin-top:30rpx;">
<view class="mr-10"> <view class="mr-10">
<u-text size="28" color="#333" :bold="true" text="投诉原因:"></u-text> <u-text size="28" color="#333" :bold="true" text="投诉描述:"></u-text>
</view> </view>
<u-text size="26" color="#999" text="×××"></u-text> <u-text size="26" color="#999" text="×××"></u-text>
</u-row> </u-row>
<u-row align="top" custom-style="margin-top:30rpx;">
<view class="mr-10">
<u-text size="28" color="#333" :bold="true" text="投诉时间:"></u-text>
</view>
<u-text size="26" color="#999" text="2023-11-20 13:28:56"></u-text>
</u-row>
<u-row align="top" custom-style="margin-top:30rpx;"> <view @click="goto(`complaint/edit`)" style="padding-top:20rpx;margin-top: 20rpx;border-top: 2rpx solid #D9D9D9">
<view class="mr-10"> <u-row justify="between">
<u-text size="28" color="#333" :bold="true" text="投诉描述:"></u-text> <u-text align="left" size="28" text="查看详情"></u-text>
</view> <view>
<u-text size="26" color="#999" text="×××"></u-text> <u-icon name="arrow-right" size="" color=""></u-icon>
</u-row> </view>
<u-row align="top" custom-style="margin-top:30rpx;"> </u-row>
<view class="mr-10"> </view>
<u-text size="28" color="#333" :bold="true" text="投诉时间:"></u-text>
</view>
<u-text size="26" color="#999" text="2023-11-20 13:28:56"></u-text>
</u-row>
<view @click="handleEditItem()" style="padding-top:20rpx;margin-top: 20rpx;border-top: 2rpx solid #D9D9D9">
<u-row justify="between">
<u-text align="left" size="28" text="查看详情"></u-text>
<view>
<u-icon name="arrow-right" size="" color=""></u-icon>
</view> </view>
</u-row> </view>
</view> </tpx-scroll-view>
</view> </view>
</view> </template>
</template>
<template v-slot:footer> <template v-slot:footer>
<view class="blcok-white-noradius"> <view class="blcok-white-noradius">
<u-button @click="handleEditItem()" type="primary" size="large" shape="circle" <u-button @click="goto(`complaint/edit`)" type="primary" size="large" shape="circle"
custom-style="height:80rpx;font-size: 30rpx;" custom-style="height:80rpx;font-size: 30rpx;"
>新增</u-button> >新增</u-button>
</view> </view>
</template> </template>
</tpx-layout>
</tpx-page>
</tpx-layout>
</template> </template>
<script> <script>
import getCdnUrl from "@/common/getCdnUrl" import * as apiService from "@/common/api"
import { goto, goBack, setClipboardData, confirmModal, showLoading } from "@/common/untool"
export default { export default {
props: { props: {
// hasLeftWin: { // hasLeftWin: {
// type: Boolean // type: Boolean
// } // }
},
computed: {
}, },
data() { data() {
return { return {
searchParam: {
},
resData: { list: [] },
queryOption: {},
} }
}, },
onShareAppMessage() { onShow(){
return { this.triggerListReload()
// title: '', this.initData()
// path: 'TODO' },
} onLoad(queryOption) {
this.queryOption = queryOption
this.initData();
},
onUnload() {
}, },
methods: { methods: {
getCdnUrl, getListFun: apiService.getComplaintsList,
handleEditItem(item={}) { initData(){
goto(`complaint/edit?id=${item.id}`)
},
triggerListReload(){
this?.$refs?.listRef?.getDataList?.(true) // 重置到第一页数据
}, },
} }
} }

View File

@ -1,50 +1,55 @@
<template> <template>
<tpx-layout> <tpx-page>
<template v-slot:body> <tpx-layout>
<view class="com-jianju pos-rlt pb-30" style="padding-top: 2rpx;"> <template v-slot:body>
<view class="com-jianju pos-rlt pb-30" style="padding-top: 2rpx;">
<view class="blcok-white radius-20"> <view class="blcok-white radius-20">
<view class=""> <view class="">
<view class="mt-10">
<tpx-input v-model:value="submitParam.billCode" placeholder="运单号"></tpx-input>
</view>
<view class="mt-30">
<tpx-select
v-model:value="submitParam.cpSiteCode" v-model:text="submitParam.siteName" v-model:resObject="wayRes"
:getListFun="getSendSiteList" :transKeyVal="{valKey: 'siteName',titleKey: 'siteName'}"
:searchParam="siteSearchParam" placeholder="请选择投诉网点"
></tpx-select>
</view>
<view class="mt-30">
<tpx-select placeholder="投诉原因" v-model:value="submitParam.cpReason" :list="dicData.emis_complaints_type" mode="drop"
></tpx-select>
</view>
<view class="mt-30">
<tpx-textarea v-model:value="submitParam.remark" placeholder="投诉描述"></tpx-textarea>
</view>
<view class="mt-10">
<tpx-input v-model:value="submitParam.danhao" placeholder="运单号"></tpx-input>
</view> </view>
<view class="mt-30">
<tpx-select placeholder="投诉网点" v-model:value="country" :list="[]"
></tpx-select>
</view>
<view class="mt-30">
<tpx-select placeholder="投诉原因" v-model:value="country" :list="[]"
></tpx-select>
</view>
<view class="mt-30">
<tpx-textarea v-model:value="submitParam.desc" placeholder="投诉描述"></tpx-textarea>
</view>
</view> </view>
</view> </view>
</template>
</view> <template v-slot:footer>
</template> <view class="blcok-white-noradius">
<u-button @click="handleSubmit()" type="primary" size="large" shape="circle"
<template v-slot:footer> custom-style="height:80rpx;font-size: 30rpx;"
<view class="blcok-white-noradius"> >确定</u-button>
<u-button @click="handleSubmit()" type="primary" size="large" shape="circle" </view>
custom-style="height:80rpx;font-size: 30rpx;" </template>
>确定</u-button> </tpx-layout>
</view> </tpx-page>
</template>
</tpx-layout>
</template> </template>
<script> <script>
import getCdnUrl from "@/common/getCdnUrl" import * as apiService from "@/common/api"
import { import { checkParams } from "@/common/validate"
goto, goBack //
} from "@/common/untool"
export default { export default {
props: { props: {
// hasLeftWin: { // hasLeftWin: {
@ -52,46 +57,58 @@
// } // }
}, },
computed: { computed: {
dicData() {
return this.$store.getters.dicData
},
siteSearchParam() {
return {}
}
}, },
data() { data() {
return { return {
queryOption: {
cmpId: ''
},
// 基础表单数据
submitParam: { submitParam: {
type: 1, idType: this.$store.getters.dicData?.emis_complaints_type?.[0]?.value,
otherDes: '' },
} submitValidConfig: {
billCode: { required: true, requiredMsg: '运单号不能为空' },
cpSiteCode: { required: true, requiredMsg: '投诉网点不能为空' },
cpReason: { required: true, requiredMsg: '投诉原因不能为空' },
},
} }
}, },
onShareAppMessage() { onLoad(queryOption) {
return { this.queryOption = queryOption
// title: '',
// path: 'TODO'
}
},
onLoad() {
this.initData(); this.initData();
}, },
onUnload() { onUnload() {
}, },
methods: { methods: {
getCdnUrl, getSendSiteList: apiService.getSendSiteList,
initData() { initData() {
// uni.showLoading({ this.queryOption.cmpId && this.getDetailData()
// title: '加载中'
// });
}, },
handleAnsText(){ async getDetailData(){
let res = apiService.getComplainInfo({id: ''})
res.data && (this.submitParam = res.data)
},
handleFormChange() {
}, },
handleFormChange(){ async handleSubmit() {
let params = { ...this.submitParam }
}, await checkParams(params, this.submitValidConfig)
handleSubmit() { let res = await apiService.addComplaints(params)
goBack() this.showToast('提交成功')
this.goBack()
}, },
} }
} }
</script> </script>

View File

@ -28,7 +28,7 @@
<view class="com-jianju" style="margin-top: 50rpx;"> <view class="com-jianju" style="margin-top: 50rpx;">
<u-row justify="between"> <u-row justify="between">
<u-col v-for="(mbItem, mIndex) in mainBtnlist" span="5.8" <u-col v-for="(mbItem, mIndex) in staticDataList" span="5.8"
customStyle="background: linear-gradient(0deg, #1D1818 0%, #0E0708 100%);border-radius: 20rpx;padding: 30rpx;" customStyle="background: linear-gradient(0deg, #1D1818 0%, #0E0708 100%);border-radius: 20rpx;padding: 30rpx;"
> >
<u-row justify="center"> <u-row justify="center">
@ -71,7 +71,15 @@
computed: { computed: {
userInfo() { userInfo() {
return this.$store.getters.userInfo return this.$store.getters.userInfo
} },
staticDataList(){
let { recieveNum, sendNum } = this.staticInfo
let list = [
{ title: `${sendNum || 0}单`, subTitle: "寄件", icon: getCdnUrl(`mine/jijian.png`), url: '' },
{ title: `${recieveNum || 0}单`, subTitle: "收件", icon: getCdnUrl(`mine/shjian.png`), url: '' }
]
return list
},
}, },
props: { props: {
// hasLeftWin: { // hasLeftWin: {
@ -81,13 +89,7 @@
data() { data() {
return { return {
staticInfo: { staticInfo: {
commStat: {},
orderStat: {},
}, },
mainBtnlist: [
{ title: '0单', subTitle: "寄件", icon: getCdnUrl(`mine/jijian.png`), url: '' },
{ title: '0单', subTitle: "收件", icon: getCdnUrl(`mine/shjian.png`), url: '' }
],
toolBtnlist: [ toolBtnlist: [
{ title: '运单列表', subTitle: "", icon: getCdnUrl(`mine/ydlib.png`), url: 'tabBar/search/search' }, { 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/jcdan.png`), url: 'warehousing/list' },
@ -118,15 +120,15 @@
} }
}, },
async initData(){ async initData(){
this.getAppHomeStatData() this.getOrderStatData()
this.getPrivateRuleData() this.getPrivateRuleData()
}, },
async getPrivateRuleData(){ async getPrivateRuleData(){
let res = await apiService.getAgreementTxt() let res = await apiService.getAgreementTxt()
this.privacyModal.content = res?.data || '' this.privacyModal.content = res?.data || ''
}, },
async getAppHomeStatData(){ async getOrderStatData(){
let res = await apiService.getAppHomeStatData() let res = await apiService.getCustOrderStatData()
this.staticInfo = res.data this.staticInfo = res.data
}, },
async handleUnlogin() { async handleUnlogin() {

View File

@ -43,8 +43,8 @@
<template v-slot:footer> <template v-slot:footer>
<view class="blcok-white-noradius"> <view class="blcok-white-noradius">
<u-button @click="handleSubmit()" type="primary" size="large" shape="circle" <u-button @click="handleSubmit()" :disabled="submitParam.idVerifyStatus == 1" type="primary" size="large" shape="circle"
custom-style="height:80rpx;font-size: 30rpx;">提交实名</u-button> custom-style="height:80rpx;font-size: 30rpx;">{{submitParam.idVerifyStatus == 1 ?'已实名':'提交实名'}}</u-button>
</view> </view>
</template> </template>
</tpx-layout> </tpx-layout>
@ -71,7 +71,8 @@
return { return {
// 基础表单数据 // 基础表单数据
submitParam: { submitParam: {
idType: this.$store.getters.dicData?.emis_id_type?.[0]?.value idType: this.$store.getters.dicData?.emis_id_type?.[0]?.value,
// "idVerifyStatus": "1-已实名 0-未实名"
}, },
submitValidConfig: { submitValidConfig: {
realName: { required: true, requiredMsg: '姓名不能为空' }, realName: { required: true, requiredMsg: '姓名不能为空' },

View File

@ -37,7 +37,7 @@ export default {
let key = Object.keys(item).filter(i=> i != 'desc')[0] let key = Object.keys(item).filter(i=> i != 'desc')[0]
if(key) { if(key) {
let list = [] let list = []
if(['emis_signs_remark', 'emis_express_code', 'emis_order_remark_list'].indexOf(key) > -1) { if(['emis_signs_remark', 'emis_express_code', 'emis_order_remark_list', 'emis_complaints_type'].indexOf(key) > -1) {
// 特殊枚举值, label、value一致 // 特殊枚举值, label、value一致
list = transListKeyTitle({ valKey:'label', titleKey: 'label', list: item[key] }) list = transListKeyTitle({ valKey:'label', titleKey: 'label', list: item[key] })
} else { } else {