fix: 支付去掉货到付款,样式穿透改为 ::v-deep

支付单改为上传凭证和附件,尾款或全款时提示交易已完结。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-19 14:20:43 +08:00
parent 55bcf96889
commit c8e651b7a6
12 changed files with 84 additions and 124 deletions
+1 -1
View File
@@ -61,7 +61,7 @@ export default {
</style>
<style>
/deep/ .el-carousel__indicators {
::v-deep .el-carousel__indicators {
height: 30px !important;
}
</style>
+2 -2
View File
@@ -511,13 +511,13 @@ export default {
}
/deep/ .i-icon {
::v-deep .i-icon {
display: flex;
align-items: center;
justify-content: center;
}
/deep/ .el-input__suffix {
::v-deep .el-input__suffix {
display: flex;
align-items: center;
justify-content: center;
+14 -14
View File
@@ -835,24 +835,24 @@ export default {
}
</script>
<style>/* #ifndef H5 || MP-ALIPAY || APP-PLUS */
/deep/ ._address,
/deep/ ._article,
/deep/ ._aside,
/deep/ ._body,
/deep/ ._caption,
/deep/ ._center,
/deep/ ._cite,
/deep/ ._footer,
/deep/ ._header,
/deep/ ._html,
/deep/ ._nav,
/deep/ ._pre,
/deep/ ._section {
::v-deep ._address,
::v-deep ._article,
::v-deep ._aside,
::v-deep ._body,
::v-deep ._caption,
::v-deep ._center,
::v-deep ._cite,
::v-deep ._footer,
::v-deep ._header,
::v-deep ._html,
::v-deep ._nav,
::v-deep ._pre,
::v-deep ._section {
display: block;
}
/* #endif */
/deep/ ._video {
::v-deep ._video {
width: 300px;
height: 225px;
display: inline-block;
+1 -1
View File
@@ -519,7 +519,7 @@ export default {
</style>
<style>
/deep/ .input-with-select .el-input-group__append {
::v-deep .input-with-select .el-input-group__append {
background-color: #fff !important;
width: 130px !important;
}
+1 -1
View File
@@ -456,7 +456,7 @@ export default {
width: 100px;
}
.required /deep/ .el-form-item__label:before {
.required ::v-deep .el-form-item__label:before {
content: '*';
color: #f56c6c;
margin-right: 4px;
+1 -1
View File
@@ -583,7 +583,7 @@ page {
background: #ffffff;
}
/deep/ .u-tag--mini {
::v-deep .u-tag--mini {
padding: 0 1px !important;
}
+45 -89
View File
@@ -20,8 +20,8 @@
:key="item"
:label="item"
:value="item"
:disabled="(!['预付款', '货到付款', '全款'].includes(item) && orderInfo.payStatus === 0)
|| (['预付款', '货到付款', '全款'].includes(item) && orderInfo.payStatus > 0)"
:disabled="(!['预付款', '全款'].includes(item) && orderInfo.payStatus === 0)
|| (['预付款', '全款'].includes(item) && orderInfo.payStatus > 0)"
>
</el-option>
</el-select>
@@ -32,48 +32,26 @@
<el-form-item label="备注">
<el-input v-model="payInfo.remark"/>
</el-form-item>
<template v-if="[0, 1].includes(orderInfo.orderStatus)">
<el-row :gutter="10">
<el-col :span="6">
<el-form-item label="是否发货">
<el-radio-group v-model="payInfo.isExpress"
:disabled="['货到付款', '全款'].includes(payInfo.type)">
<el-radio :label="true">是</el-radio>
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<!-- <el-col :span="12">-->
<!-- <el-form-item label="物流公司" required>-->
<!-- <el-input v-model="payInfo.expressName" placeholder="请输入物流公司"/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="物流单号" required>-->
<!-- <el-input v-model="payInfo.expressNo" placeholder="请输入物流单号"/>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
</el-row>
<el-form-item label="凭证" v-if="!payInfo.isExpress">
<u-upload
multiple
:fileList="payInfo.photos"
@afterRead="afterRead($event, 'photos')"
@delete="deletePic($event, 'photos')"
width="120rpx"
height="120rpx"
></u-upload>
<!-- <vk-data-upload v-model="payInfo.photos"></vk-data-upload>-->
</el-form-item>
<el-form-item label="凭证" v-else required>
<u-upload
multiple
:fileList="payInfo.expressPhoto"
@afterRead="afterRead($event, 'expressPhoto')"
@delete="deletePic($event, 'expressPhoto')"
height="120rpx"
></u-upload>
<!-- <vk-data-upload v-model="payInfo.expressPhoto"></vk-data-upload>-->
</el-form-item>
</template>
<el-form-item label="凭证">
<u-upload
multiple
:fileList="payInfo.photos"
@afterRead="afterRead($event, 'photos')"
@delete="deletePic($event, 'photos')"
width="120rpx"
height="120rpx"
></u-upload>
</el-form-item>
<el-form-item label="附件">
<u-upload
multiple
:fileList="payInfo.ext"
@afterRead="afterRead($event, 'ext')"
@delete="deletePic($event, 'ext')"
width="120rpx"
height="120rpx"
></u-upload>
</el-form-item>
</el-form>
<el-row>
<el-col :span="24" class="text-center">
@@ -130,6 +108,7 @@ export default {
isExpress: false,
expressName: null,
expressNo: null,
ext: [],
},
orderInfo: {
payStatus: 0
@@ -157,54 +136,31 @@ export default {
type: 'error',
message: '请输入支付金额'
})
if (this.payInfo.isExpress && this.payInfo.expressPhoto.length === 0) return this.$message({
type: 'error',
message: '请上传凭证'
})
// if (this.payInfo.isExpress && !this.payInfo.expressName) return this.$message({
// type: 'error',
// message: '请输入物流公司'
// })
// if (this.payInfo.isExpress && !this.payInfo.expressNo) return this.$message({
// type: 'error',
// message: '请输入物流单号'
// })
if (this.payInfo.photos && this.payInfo.photos.length > 0) this.payInfo.photos = this.payInfo.photos.map(i => i.url)
if (this.payInfo.expressPhoto && this.payInfo.expressPhoto.length > 0) this.payInfo.expressPhoto = this.payInfo.expressPhoto.map(i => i.url)
if (this.payInfo.isExpress) {
uni.showModal({
title: '提示',
content: '发货状态一旦确定无法修改,请谨慎操作',
success: async res => {
if (res.confirm) {
await vk.callFunction({
url: 'client/order/kh/makePay',
title: '请求中...',
data: {payInfo: this.payInfo}
})
this.$message({
type: 'success',
message: '支付单创建成功'
})
this.close()
}
}
})
} else {
await vk.callFunction({
url: 'client/order/kh/makePay',
title: '请求中...',
data: {payInfo: this.payInfo}
})
this.$message({
type: 'success',
message: '支付单创建成功'
})
this.close()
}
if (this.payInfo.ext && this.payInfo.ext.length > 0) this.payInfo.ext = this.payInfo.ext.map(i => i.url)
await vk.callFunction({
url: 'client/order/kh/makePay',
title: '请求中...',
data: {payInfo: this.payInfo}
})
this.$message({
type: 'success',
message: '支付单创建成功'
})
this.close()
},
changeType() {
this.payInfo.isExpress = ['货到付款', '全款'].includes(this.payInfo.type)
if (['尾款', '全款'].includes(this.payInfo.type)) {
this.$confirm(
'选择尾款或全款支付申请,均代表本次交易已完结,对应本次交易最终货款的结算完成。提交申请后,系统无法再次发起付款申请;若发生误申请情形,仅可通过交易双方协商线下渠道协商办理支付,请您谨慎选择。',
'重要提示',
{
confirmButtonText: '确认为最终结算',
showCancelButton: false,
type: 'warning'
}
)
}
},
afterRead({file}, field) {
file.forEach(item => {
+14 -10
View File
@@ -20,19 +20,23 @@
</template>
<text v-else class="text-main">买家已拒绝: {{ item.refuseReason }}</text>
</view>
<view class="mb-10">
<view>物流凭证:</view>
<el-image v-for="(photo, photoIndex) in item.expressPhoto" :key="photoIndex" :src="photo"
style="width: 120rpx; height: 120rpx" fit="cover"
:preview-src-list="item.expressPhoto"/>
</view>
<view class="mb-10">备注: {{ item.remark ? item.remark : '无' }}</view>
<view class="mb-10">买家备注: {{ item.buyerRemark ? item.buyerRemark : '无' }}</view>
<view class="mb-10">图片:
<view class="mb-10">凭证:
<template v-if="item.photos && item.photos.length > 0">
<el-image v-for="(photo, photoIndex) in item.photos" :key="photoIndex" :src="photo"
style="width: 80px; height: 80px" fit="cover"
:preview-src-list="item.photos"/>
<el-image v-for="(photo, photoIndex) in item.photos" :key="photoIndex"
:src="typeof photo === 'string' ? photo : photo.url"
style="width: 80px; height: 80px; margin-right: 8px;" fit="cover"
:preview-src-list="item.photos.map(p => typeof p === 'string' ? p : p.url)"/>
</template>
<text v-else>无</text>
</view>
<view class="mb-10">附件:
<template v-if="item.ext && item.ext.length > 0">
<el-image v-for="(file, fileIndex) in item.ext" :key="fileIndex"
:src="typeof file === 'string' ? file : file.url"
style="width: 80px; height: 80px; margin-right: 8px;" fit="cover"
:preview-src-list="item.ext.map(p => typeof p === 'string' ? p : p.url)"/>
</template>
<text v-else>无</text>
</view>
+2 -2
View File
@@ -321,7 +321,7 @@ export default {
keyword: '',
orderPayList: [],
payInfo: {},
payTypeList: ['预付款', '进度款', '尾款', '货到付款', '全款'],
payTypeList: ['预付款', '进度款', '尾款', '全款'],
topExpiredAt: '',
typeStr: '全部类型',
showTypeFilter: false,
@@ -643,7 +643,7 @@ export default {
</script>
<style lang="scss">
/deep/ .u-button--mini {
::v-deep .u-button--mini {
padding: 0 1px !important;
}
@@ -421,7 +421,7 @@ export default {
padding-bottom: 60upx;
}
/deep/ .ql-editor.ql-blank:before {
::v-deep .ql-editor.ql-blank:before {
font-size: 28upx;
font-style: inherit;
}
@@ -89,7 +89,7 @@ import props from "./props.js";
* @property {Boolean} password 是否密码类型 ( 默认 false )
* @property {String | Number} maxlength 最大输入长度,设置为 -1 的时候不限制最大长度 ( 默认 -1 )
* @property {String} placeholder 输入框为空时的占位符
* @property {String} placeholderClass 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/ ( 默认 'input-placeholder' )
* @property {String} placeholderClass 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写::v-deep ( 默认 'input-placeholder' )
* @property {String | Object} placeholderStyle 指定placeholder的样式,字符串/对象形式,如"color: red;"
* @property {Boolean} showWordLimit 是否显示输入字数统计,只在 type ="text"或type ="textarea"时有效 ( 默认 false )
* @property {String} confirmType 设置右下角按钮的文字,兼容性详见uni-app文档 ( 默认 'done' )
@@ -49,7 +49,7 @@ import props from "./props.js";
*
* @property {String | Number} value 输入框的内容
* @property {String | Number} placeholder 输入框为空时占位符
* @property {String} placeholderClass 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/ ( 默认 'input-placeholder' )
* @property {String} placeholderClass 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写::v-deep ( 默认 'input-placeholder' )
* @property {String | Object} placeholderStyle 指定placeholder的样式,字符串/对象形式,如"color: red;"
* @property {String | Number} height 输入框高度(默认 70 )
* @property {String} confirmType 设置键盘右下角按钮的文字,仅微信小程序,App-vue和H5有效(默认 'done' )