f7c3f14662
收到报价弹窗中选择供应商时,不再显示服务费提示,改为重点提示。 Co-authored-by: Cursor <cursoragent@cursor.com>
814 lines
29 KiB
Vue
814 lines
29 KiB
Vue
<template> <!-- 询价单详情 -->
|
||
<view class="wrap">
|
||
<!-- 吸顶 -->
|
||
<u-sticky offset-top="0" customNavHeight="0">
|
||
<!-- 顶部 -->
|
||
<uititle title="询价详情"></uititle>
|
||
</u-sticky>
|
||
<!-- 内容 -->
|
||
<view class="layout layout-detail">
|
||
<view class="company flex m-top-20">
|
||
<!-- <view class="logo">-->
|
||
<!-- <image v-if="sheet.user && sheet.user.businessCard" class="full" :src="sheet.user.businessCard.logo"-->
|
||
<!-- mode=""></image>-->
|
||
<!-- <image v-else class="full" src="/static/no-logo.jpg" mode=""></image>-->
|
||
<!-- </view>-->
|
||
<view class="info flex-1 p-left-20 w-100p">
|
||
<view class="name-text w-100p">{{
|
||
sheet.user.accountType === 1 ? sheet.user.person.personName.replace(/^(.).*$/, "$1**") : sheet.user.company.companyName.replace(/^(.)(.).*(.)(.)(.)(.)$/, "$1$2***$3$4$5$6")
|
||
}}
|
||
</view>
|
||
<!-- <view class="name flex justify-start align-center">-->
|
||
<!-- 认证图标 -->
|
||
<!-- <view class="name-icon m-left-20">-->
|
||
<!-- <image class="full" src="/static/img/idente.png" mode=""></image>-->
|
||
<!-- </view>-->
|
||
<!-- </view>-->
|
||
<!-- <view class="zhu">-->
|
||
<!-- 主营业务:-->
|
||
<!-- 主营业务:{{-->
|
||
<!-- (sheet.user.company.mainSpotCategory && sheet.user.company.mainSpotCategory.length > 0) ? sheet.user.company.mainSpotCategory.join() : ''-->
|
||
<!-- }}-->
|
||
|
||
<!-- </view>-->
|
||
<view class="zhu">
|
||
{{ sheet._add_time_str }} 发布
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<!-- 批量上传-判断使用 -->
|
||
<template>
|
||
<view class="detail m-top-20">
|
||
<view class="detail-title">{{ sheet.title }}</view>
|
||
</view>
|
||
</template>
|
||
<view class="flex justify-start items-end text-25 mt-20"
|
||
v-if="sheet.answerEndTime && dayjs(sheet.answerEndTime).diff(dayjs(), 'second') > 0">
|
||
<text>距离报价结束还有:</text>
|
||
<view class="border-main countdown text-main">{{
|
||
dayjs(sheet.answerEndTime).diff(dayjs(), 'day')
|
||
}}
|
||
</view>
|
||
<text>天</text>
|
||
<view class="border-main countdown text-main">
|
||
{{ (dayjs(sheet.answerEndTime).diff(dayjs(), 'hour')) % 24 }}
|
||
</view>
|
||
<text>时</text>
|
||
</view>
|
||
<!-- 手动上传-判断使用 -->
|
||
<template>
|
||
<view class="card-title m-top-30">主要商品</view>
|
||
<view class="goods-box m-top-20 clear" v-if="sheet.fillType === 1">
|
||
{{
|
||
batchProductNames
|
||
}}
|
||
</view>
|
||
<view class="goods-box m-top-20 flex justify-start items-start flex-col" v-else>
|
||
<view v-for="(item, index) in sheet.productList" :key="index">
|
||
<text class="font-bold clear">{{ item.goodsName }}:</text>
|
||
<view class="goods-item half flex flex-wrap fl" v-for="(model, modelIndex) in item.model">
|
||
<view class="lb">{{ model.label }}:</view>
|
||
<view class="vl flex-1">{{ model.value }}</view>
|
||
</view>
|
||
<!-- <view class="goods-item half flex flex-wrap fl">-->
|
||
<!-- <view class="lb">单件长度:</view>-->
|
||
<!-- <view class="vl flex-1">{{-->
|
||
<!-- item.singleLength ? item.singleLength : ''-->
|
||
<!-- }}{{ item.singleLengthUnit ? item.singleLengthUnit : '' }}-->
|
||
<!-- </view>-->
|
||
<!-- </view>-->
|
||
<view class="goods-item half flex flex-wrap fl">
|
||
<view class="lb">交货服务:</view>
|
||
<view class="vl flex-1">{{
|
||
item.deliverService ? item.deliverService : ''
|
||
}}
|
||
</view>
|
||
</view>
|
||
<view class="goods-item half flex flex-wrap fl">
|
||
<view class="lb">采购数量:</view>
|
||
<view class="vl flex-1">{{
|
||
item.procureNumber ? item.procureNumber : ''
|
||
}}{{ item.procureUnit ? item.procureUnit : '' }}
|
||
</view>
|
||
</view>
|
||
<view class="goods-item half flex flex-wrap fl">
|
||
<view class="lb">计价形式:</view>
|
||
<view class="vl flex-1">{{
|
||
item.pricingForm ? item.pricingForm : ''
|
||
}}
|
||
</view>
|
||
</view>
|
||
<view class="goods-item half flex flex-wrap fl">
|
||
<view class="lb">交货时限:</view>
|
||
<view class="vl flex-1">{{ sheet.deliveryTime ? sheet.deliveryTime : '' }}</view>
|
||
</view>
|
||
<view class="goods-item half flex flex-wrap fl">
|
||
<view class="lb">交货地点:</view>
|
||
<view class="vl flex-1">{{ sheet.fullAddress }}</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</template>
|
||
<view class="card-title m-top-30">上传的附件</view>
|
||
<view class="m-top-20" v-if="sheet.files">
|
||
<file-type :item="item" v-for="(item, index) in sheet.files" :key="index"/>
|
||
</view>
|
||
<view class="m-top-20" v-if="sheet.multiFiles">
|
||
<file-type :item="item" v-for="(item, index) in sheet.multiFiles" :key="index"/>
|
||
</view>
|
||
|
||
<view class="card-title m-top-30" v-if="sheet.remark">采购商其他要求</view>
|
||
<view class="detail-text">
|
||
{{ sheet.remark }}
|
||
</view>
|
||
|
||
<view class="card-title m-top-30">合同条款</view>
|
||
<view class="detail-text">是否含税:{{ sheet.invoice ? '含税' : '不含税' }}</view>
|
||
<template v-if="sheet.invoice">
|
||
<view class="detail-text">开票时间:{{ WRITE_INVOICE_TIME[sheet.writeInvoiceTime] }}</view>
|
||
<!-- <view class="detail-text">发票种类:{{ INVOICE_TYPE[sheet.invoiceType] }}</view>-->
|
||
<!-- <view class="detail-text" v-if="sheet.invoiceOther">其他要求:{{ sheet.invoiceOther }}</view>-->
|
||
<view class="detail-text" v-if="sheet.invoiceOther">税票要求:{{ sheet.invoiceOther }}</view>
|
||
<template v-else>
|
||
<view class="detail-text">纳税人身份:{{ sheet.taxType ? sheet.taxType : '无' }}</view>
|
||
<view class="detail-text">发票种类:{{ sheet.invoiceType ? sheet.invoiceType : '无' }}</view>
|
||
<view class="detail-text">税率:{{ sheet.taxRate ? sheet.taxRate : '无' }}</view>
|
||
</template>
|
||
</template>
|
||
|
||
<view class="card-title m-top-30">运输要求</view>
|
||
<view class="detail-text" v-if="sheet.transportDocuments && sheet.transportDocuments.length > 0">
|
||
随货资料:{{ sheet.transportDocuments.join() }}
|
||
</view>
|
||
<view class="detail-text" v-if="sheet.otherTransportDocuments">其他资料:{{
|
||
sheet.otherTransportDocuments
|
||
}}
|
||
</view>
|
||
<view class="detail-text">运输限制:{{ sheet.transportLimit ? '有' : '无' }}</view>
|
||
<view class="detail-text" v-if="sheet.transportLimit && sheet.otherTransportRequest">
|
||
运输限制说明:{{ sheet.otherTransportRequest }}
|
||
</view>
|
||
|
||
<view class="card-title m-top-30">交易模式</view>
|
||
<view class="detail-text">交易模式:{{ sheet.tradeMethod === 0 ? '自主交易' : '金久信公证' }}</view>
|
||
|
||
<view class="card-title m-top-30">交易说明</view>
|
||
<view class="detail-text">付款方式:{{ PROCESS_PAY_METHOD[sheet.payMethod] }}{{
|
||
sheet.payMethod === 0 ? `${sheet.advancePayRate}%货到付全款` : ''
|
||
}}{{
|
||
sheet.payMethod === 3 ? `${sheet.reputationPayDay}天` :
|
||
(sheet.payMethod === 4 ? `:${sheet.otherPayMethod}` : '')
|
||
}}
|
||
</view>
|
||
<view class="detail-text">报价形式:{{ sheet.offerType === 0 ? '整单报价' : '可分项报价' }}</view>
|
||
<view class="detail-text" v-if="sheet.answerStartTime && sheet.answerEndTime">报价期限:{{
|
||
dayjs(sheet.answerStartTime).format('YYYY-MM-DD')
|
||
}}~{{ dayjs(sheet.answerEndTime).format('YYYY-MM-DD') }}
|
||
</view>
|
||
<view class="card-title m-top-30">采购商信息</view>
|
||
<view class="detail-text">项目名称:{{ sheet.projectName ? sheet.projectName : '' }}</view>
|
||
<view class="detail-text">项目地址:{{ sheet.fullAddress }}</view>
|
||
<template v-if="(sheet.isMine || sheet.hasQuote || userInfo.userLevel > 0) && dayjs(sheet.answerEndTime).isBefore(dayjs())">
|
||
<view class="detail-text" v-if="sheet.companyName">采购商信息:{{
|
||
sheet.companyName ? sheet.companyName : ''
|
||
}}
|
||
</view>
|
||
<view class="detail-text" v-if="sheet.companyMobile">采购商联系方式:{{
|
||
sheet.companyMobile ? sheet.companyMobile : ''
|
||
}}
|
||
</view>
|
||
<view class="detail-text">授权业务咨询人:{{
|
||
sheet.businessName ? sheet.businessName : ''
|
||
}}
|
||
</view>
|
||
<view class="detail-text">业务咨询联系方式:{{
|
||
sheet.businessMobile ? sheet.businessMobile : ''
|
||
}}
|
||
</view>
|
||
</template>
|
||
<template v-else>
|
||
<view class="detail-text" v-if="sheet.companyName">采购商信息:{{
|
||
sheet.companyName ? sheet.companyName.replace(/^(.)(.).*(.)(.)(.)(.)$/, "$1$2***$3$4$5$6") : ''
|
||
}}
|
||
</view>
|
||
<view class="detail-text" v-if="sheet.companyMobile">采购商联系方式:{{
|
||
sheet.companyMobile ? sheet.companyMobile.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2") : ''
|
||
}}
|
||
</view>
|
||
<view class="detail-text">授权业务咨询人:{{
|
||
sheet.businessName ? sheet.businessName.replace(/^(.).*(.)$/, "$1***$2") : ''
|
||
}}
|
||
</view>
|
||
<view class="detail-text">业务咨询联系方式:{{
|
||
sheet.businessMobile ? sheet.businessMobile.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2") : ''
|
||
}}
|
||
</view>
|
||
</template>
|
||
<view class="card-title m-top-30">平台交易保证金要求</view>
|
||
<view class="detail-text">{{ sheet.earnestMoney ? sheet.earnestMoney : '无' }}</view>
|
||
|
||
<view class="card-title m-top-30">签约模式</view>
|
||
<view class="detail-text">
|
||
<view>{{
|
||
sheet.signMethod === 0 ? '线上签约-标准合同' : (sheet.signMethod !== 1 ? '线上签约-双方协商合同' : '线下签约')
|
||
}}
|
||
</view>
|
||
</view>
|
||
<view class="item-wrap" v-if="sheet.signMethod === 0">
|
||
<view class="card-title m-top-30">合同条款</view>
|
||
<view class="mt-15">违约责任:</view>
|
||
<view class="mt-15">
|
||
1.乙方所交产品品种、型号、规格、质量不符合规定的,如果甲方同意利用,应当按质论价;如果甲方不能利用的,应根据产品的具体情况,由乙方负责包换或包修,并承担修理、调换或退货而支付的实际费用;2.乙方不予供货违约责任为甲方的实际损失+违约金,如乙方材料符合订货标准,甲方不能退货和不收货,甲方无条件应按实际本合同订货数量支付100%货款,并支付乙方因此产生的实际费用。带有甲乙双方单位相关收货人和发货人签字的本合同的发货清单事项和内容均视为本合同的补充合同,与本合同有相同的法律效力,双方应共同遵照执行。
|
||
</view>
|
||
<view class="mt-15">解决纠纷的方法:</view>
|
||
<view class="mt-15">
|
||
1、凡因本合同引起的或与本合同有关的任何争议,均可友好协商或仲裁解决,协商或仲裁不成的,双方协商同意在合同签订地人民法院管辖地起诉,违约一方或对合同争议承担主要责任的一方,应承担对方因仲裁和起诉而产生的全部律师代理费、鉴定(检验)费、诉讼保全费、诉讼保险费、公告费、差旅费、执行费、误工費和获取证据产生费用等其他相关费用。2、双方本合同相关权利放弃均应有双方书面作出并加盖公章或授权委托人签字后生效。
|
||
</view>
|
||
<view class="mt-15">不可抗力:</view>
|
||
<view class="mt-15">
|
||
甲乙双方的任何一方由于不可抗力或突发公共事件的原因不能履行合同时,应及时向对方通报不能履行或不能完全履行的理由,以减轻可能给对方造成的损失,在取得有关机构证明以后,允许延期履行、部分履行或者不履行合同,并根据情况可部分或全部免予承担违约责任。
|
||
</view>
|
||
<view class="mt-15">其他:</view>
|
||
<view class="mt-15">
|
||
本合同的全部内容由双方平等共同协商一致,共同起草制定,非一方事先拟定,不属于格式条款。本合同自双方签字盖章后生效(包括电子签字、盖章),按本合同内容地址、联系方式寄送的一切文书、函件送达与否,均为视为送达有法律效力,通知途径和本合同内联系方式或地址送达文件双方均予以验证。
|
||
</view>
|
||
<view class="mt-15">采购方补充条款: {{ sheet.supplementary }}</view>
|
||
<!-- <view class="mt-15">供应方补充条款:</view>-->
|
||
</view>
|
||
|
||
<template v-else-if="sheet.signMethod === 2">
|
||
<view class="item-wrap">
|
||
<view class="form-title-wrap">
|
||
<view class="goods-sheet-title">
|
||
<view class="form-title">
|
||
合同附件
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view v-for="(item, index) in sheet.contractAttachment" :key="index" class="mr-25 my-25">
|
||
<file-type :item="item" @click.native="openDownload(item)"/>
|
||
</view>
|
||
</template>
|
||
<!-- <view class="card-title m-top-30">已收到的加工申请</view>-->
|
||
<!-- <view class="table-box m-top-30">-->
|
||
<!-- <view class="thead">-->
|
||
<!-- <view class="tr">-->
|
||
<!-- <view class="th">申请人</view>-->
|
||
<!-- <view class="th">申请时间</view>-->
|
||
<!-- </view>-->
|
||
<!-- </view>-->
|
||
<!-- <view class="tbody">-->
|
||
<!-- <view class="tr" v-for="(item, index) in sheet.quoteList" :key="index">-->
|
||
<!-- <view class="td">{{ item.subjectName }}</view>-->
|
||
<!-- <view class="td">{{ item._add_time_str }}</view>-->
|
||
<!-- </view>-->
|
||
<!-- </view>-->
|
||
<!-- </view>-->
|
||
</view>
|
||
<!-- 底部 -->
|
||
<view class="fiexd-bottom flex justify-between align-center bg-white">
|
||
<u-icon name="integral" color="#A92924" size="26"></u-icon>
|
||
<view class="text red flex-1 m-left-20">{{ sheet.quoteNum }}家已经报价</view>
|
||
<view class="apply-btn" v-if="userInfo._id !== sheet.userId && sheet.status === 0" @click="toQuote">{{
|
||
sheet.disabled ? '已超时无法报价' : '我要报价'
|
||
}}
|
||
</view>
|
||
<view class="apply-btn" v-else-if="userInfo._id === sheet.userId" @click="showEnquiryModal">收到的报价
|
||
</view>
|
||
</view>
|
||
<!-- 弹出窗-报价次数 -->
|
||
<u-popup :show="isPrice" mode="center" @close="isPrice = false">
|
||
<view class="popup-box" style="padding: 50rpx 30rpx;width: 600rpx;">
|
||
<view class="residue text-center">
|
||
今日剩余报价
|
||
<text class="red">3</text>
|
||
次
|
||
</view>
|
||
<u-button class="custom-style" text="继续报价" @click="isPopup = true,isPrice = false"></u-button>
|
||
<view class="increase text-center">
|
||
*升级会员可以增加每日报价次数,
|
||
<text class="red">去升级</text>
|
||
</view>
|
||
</view>
|
||
</u-popup>
|
||
<!-- 模态框-报价类型-->
|
||
<!-- 弹出窗-报价列表 -->
|
||
<u-popup :show="isPopup" mode="center" @close="isPopup = false">
|
||
<view class="popup-box">
|
||
<view class="popup-title flex justify-between align-center">
|
||
<view class="title">收到的报价列表</view>
|
||
<view class="close" @click="isPopup = false">关闭</view>
|
||
</view>
|
||
<view class="table-box m-top-30">
|
||
<view class="thead">
|
||
<view class="tr">
|
||
<view class="th w-25p">供应商</view>
|
||
<view class="th w-25p">联系方式</view>
|
||
<view class="th w-25p">报价</view>
|
||
<view class="th w-25p">操作</view>
|
||
</view>
|
||
</view>
|
||
<view class="tbody">
|
||
<view class="tr" v-for="(item, index) in sheet.quoteList" :key="index">
|
||
<view class="td w-25p">{{ item.subjectName }}</view>
|
||
<view class="td w-25p">
|
||
<text>{{ item.subjectMobile }}</text>
|
||
</view>
|
||
<view class="td w-25p">{{ item.totalPrice }}元</view>
|
||
<view class="td w-25p">
|
||
<u-button
|
||
size="mini"
|
||
type="error"
|
||
plain="true"
|
||
text="选择"
|
||
style="width: 40rpx;"
|
||
@click="confirm(item)"
|
||
></u-button>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</u-popup>
|
||
<u-modal
|
||
:show="isEnquiryTip"
|
||
title="重点提示"
|
||
confirmText="同意悉知"
|
||
cancelText="取消"
|
||
confirmColor="#A92924"
|
||
showCancelButton
|
||
@confirm="confirmEnquiryModal"
|
||
@cancel="isEnquiryTip = false; pendingConfirmItem = null"
|
||
>
|
||
<view class="enquiry-tip-content">
|
||
<view v-for="(item, index) in enquiryTipList" :key="index" class="enquiry-tip-item">
|
||
{{ item }}
|
||
</view>
|
||
</view>
|
||
</u-modal>
|
||
<enquiry-modal ref="enquiryModal"/>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import uiheader from '@/components/index/header'
|
||
import uititle from '@/components/common/title'
|
||
import {INVOICE_TYPE, PROCESS_PAY_METHOD, WRITE_INVOICE_TIME} from "@/util";
|
||
import dayjs from "dayjs";
|
||
import FileType from "@/components/file-type/file-type.vue";
|
||
import EnquiryModal from "@/pages/user/components/enquiryModal.vue";
|
||
|
||
export default {
|
||
components: {
|
||
EnquiryModal,
|
||
FileType,
|
||
uiheader,
|
||
uititle,
|
||
},
|
||
data() {
|
||
return {
|
||
fileList3: [
|
||
{url: 'https://cdn.uviewui.com/uview/swiper/1.jpg',},
|
||
{url: 'https://cdn.uviewui.com/uview/swiper/1.jpg',},
|
||
{url: 'https://cdn.uviewui.com/uview/swiper/1.jpg',},
|
||
],
|
||
isPopup: false,
|
||
isPrice: false,
|
||
isModal: false,
|
||
isEnquiryTip: false,
|
||
pendingConfirmItem: null,
|
||
enquiryTipList: [
|
||
'1、请您谨慎点击"选择",选择供应商后,系统将自动关闭您此条询价信息,无法返回,只能再次发布询价信息;',
|
||
'2、点击"选择"前,您可通过供应商联系方式,仔细商讨:商品明细、数量、单价、执行标准、交货方式、交货期、验收方式、合同条款等细节关键题确认,各种交易细节无误后要求供应商进行最终报价;',
|
||
'3、您承诺对此次交易的内容用途已经完全了解并知悉经过严格仔细审核后实施,此次交易为合法经营,如违反相关法律规定,您将承担全部责任,与平台无关。您确认以上描述无误后请点击"选择"。'
|
||
],
|
||
parseText: '<p>露从今夜白,月是故乡明</p>',
|
||
WRITE_INVOICE_TIME,
|
||
INVOICE_TYPE,
|
||
PROCESS_PAY_METHOD,
|
||
hasQuote: false,
|
||
productList: [],
|
||
sheet: {
|
||
user: {},
|
||
productList: [],
|
||
transportDocuments: [],
|
||
otherCate: null
|
||
},
|
||
userInfo: null
|
||
};
|
||
},
|
||
computed: {
|
||
batchProductNames() {
|
||
if (this.sheet.otherCate) return this.sheet.otherCate
|
||
return this.sheet.productList.map(item => item.goodsName + `${item.materialQuality ? `(${item.materialQuality})` : ''}`).join(',')
|
||
}
|
||
},
|
||
methods: {
|
||
dayjs,
|
||
applyLink() {
|
||
uni.$u.route('/pages/price/apply', {
|
||
id: 0,
|
||
});
|
||
},
|
||
showEnquiryModal() {
|
||
this.pendingConfirmItem = null
|
||
this.isEnquiryTip = true
|
||
},
|
||
confirmEnquiryModal() {
|
||
this.isEnquiryTip = false
|
||
if (this.pendingConfirmItem) {
|
||
const item = this.pendingConfirmItem
|
||
this.pendingConfirmItem = null
|
||
this.doConfirm(item)
|
||
return
|
||
}
|
||
this.$refs.enquiryModal.open(this.sheet)
|
||
},
|
||
handConfirmModal() {
|
||
this.isPopup = false
|
||
this.isModal = false
|
||
uni.$u.route('/pages/price/apply1', {
|
||
id: 0,
|
||
});
|
||
},
|
||
handCancelModal() {
|
||
this.isPopup = false
|
||
this.isModal = false
|
||
uni.$u.route('/pages/price/apply2', {
|
||
id: 0,
|
||
});
|
||
},
|
||
async toQuote() {
|
||
if (this.sheet.disabled) return
|
||
const {userInfo, accountNum} = await vk.callFunction({
|
||
url: 'user/kh/getMyUserInfo'
|
||
})
|
||
if (!userInfo.fadadaConfirm || [-1, 2].includes(userInfo.authStatus)) {
|
||
uni.showModal({
|
||
title: '提示',
|
||
content: '您尚未认证, 是否前往认证?',
|
||
success: res => {
|
||
if (res.confirm) {
|
||
uni.setStorageSync('user_tab', 0)
|
||
uni.switchTab({url: '/pages/user/user'})
|
||
}
|
||
}
|
||
})
|
||
} else if (vk.pubfn.isNull(userInfo.businessCard)) {
|
||
uni.showModal({
|
||
title: '提示',
|
||
content: '请完善名片信息',
|
||
success: res => {
|
||
if (res.confirm) {
|
||
uni.setStorageSync('user_tab', 1)
|
||
uni.switchTab({url: '/pages/user/user'})
|
||
}
|
||
}
|
||
})
|
||
} else if (accountNum === 0) {
|
||
uni.showModal({
|
||
title: '提示',
|
||
content: '请先到个人中心添加收款账户',
|
||
success: res => {
|
||
if (res.confirm) {
|
||
uni.setStorageSync('user_tab', 7)
|
||
uni.switchTab({url: '/pages/user/user'})
|
||
}
|
||
}
|
||
})
|
||
} else {
|
||
if (userInfo.businessCard.status !== 1) {
|
||
uni.showModal({
|
||
title: '提示',
|
||
content: '您的名片信息未审核,请耐心等待',
|
||
})
|
||
return
|
||
}
|
||
if (this.sheet.tradeMethod === 1) {
|
||
const rate = this.sheet.notaryServiceRate || 0.1
|
||
uni.showModal({
|
||
title: '重要提示',
|
||
content: `提示着您成功签约交易,平台将收取总交易金额 x${rate}%服务费,如您存在利用系统漏洞恶意逃避支付服务费的情况,平台有将您的失信行为进行公布,情况严重的平台予以劝退。\n并有权依法追回平台服务费。您承诺此次交易为合法经营,如违反相关法律法规您将承担全部任与平台无关。您已经完全理解解并知悉,您不同意请点击'取消',取消报价,您同意以上夠定请点击'同意并知悉'。`,
|
||
confirmText: '同意并知悉',
|
||
cancelText: '取消',
|
||
success: ({confirm}) => {
|
||
if (confirm) {
|
||
vk.navigateTo({url: '/pages/price/apply1?enquiryId=' + this.enquiryId});
|
||
}
|
||
}
|
||
})
|
||
return
|
||
}
|
||
vk.navigateTo({url: '/pages/price/apply1?enquiryId=' + this.enquiryId});
|
||
}
|
||
},
|
||
/**
|
||
* 获取询价单详情
|
||
*/
|
||
getEnquiryDetail() {
|
||
vk.callFunction({
|
||
url: 'client/enquiry/sheet/pub/getDetail',
|
||
title: '请求中...',
|
||
data: {
|
||
_id: this.enquiryId
|
||
},
|
||
success: (res) => {
|
||
this.sheet = res.data
|
||
this.sheet.disabled = (!this.sheet.answerEndTime || dayjs(this.sheet.answerEndTime).isBefore(dayjs()))
|
||
this.sheet.fullAddress = ''
|
||
if (this.sheet.deliveryTime) this.sheet.deliveryTime = dayjs(this.sheet.deliveryTime).format('YYYY-MM-DD HH:mm:ss')
|
||
this.sheet.fullAddress = (this.sheet.addressRegion && this.sheet.addressRegion.province) ? `${this.sheet.addressRegion.province.name}${this.sheet.addressRegion.city.name}${this.sheet.addressRegion.area.name}` : ''
|
||
if (this.sheet.addressRegion.addressDetail) this.list.rows[index].fullAddress += this.sheet.addressRegion.addressDetail
|
||
}
|
||
});
|
||
},
|
||
confirm(item) {
|
||
this.isPopup = false
|
||
if (this.sheet.tradeMethod === 1 && (!this.sheet.user || this.sheet.user.isNotaryBusiness !== 1)) {
|
||
uni.showModal({
|
||
title: '温馨提示',
|
||
content: '请您先至个人中心-卖家中心-金久信公正银联资料,完成银联资料收集,并联系金久信客服开通功能。才能进行金久信公正交易',
|
||
showCancel: false,
|
||
confirmText: '确定'
|
||
})
|
||
return
|
||
}
|
||
this.pendingConfirmItem = item
|
||
this.isEnquiryTip = true
|
||
},
|
||
doConfirm(item) {
|
||
vk.callFunction({
|
||
url: 'client/enquiry/quote/kh/confirmQuote',
|
||
title: '请求中...',
|
||
data: {
|
||
quoteId: item._id,
|
||
},
|
||
success: (data) => {
|
||
this.showDialog = false
|
||
if (this.sheet.signMethod === 0) vk.navigateTo('/pages/public/contract')
|
||
else {
|
||
if (this.sheet.signMethod === 1) vk.navigateTo('/pages/user/buyer')
|
||
else vk.navigateTo('/pages/public/contract')
|
||
}
|
||
this.$message({
|
||
type: 'success',
|
||
message: '报价确认成功'
|
||
})
|
||
}
|
||
});
|
||
},
|
||
},
|
||
onLoad({id}) {
|
||
this.enquiryId = id
|
||
this.userInfo = vk.getStorageSync('uni_id_user_info')
|
||
this.getEnquiryDetail()
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
page {
|
||
padding-bottom: 150rpx;
|
||
background: #ffffff;
|
||
}
|
||
|
||
.card-title {
|
||
position: relative;
|
||
padding-left: 20rpx;
|
||
font-size: 28rpx;
|
||
font-weight: 600;
|
||
line-height: 48rpx;
|
||
color: #A92924;
|
||
|
||
&:before {
|
||
position: absolute;
|
||
left: 0;
|
||
top: 50%;
|
||
z-index: 9;
|
||
margin-top: -14rpx;
|
||
content: '';
|
||
width: 6rpx;
|
||
height: 28rpx;
|
||
background: #A92924;
|
||
}
|
||
|
||
.more {
|
||
font-size: 24rpx;
|
||
font-weight: normal;
|
||
color: #999999;
|
||
}
|
||
}
|
||
|
||
.layout-detail {
|
||
padding: 20rpx 30rpx;
|
||
}
|
||
|
||
.company {
|
||
padding-bottom: 40rpx;
|
||
border-bottom: 1px solid #f2f2f2;
|
||
|
||
.logo {
|
||
width: 120rpx;
|
||
height: 120rpx;
|
||
}
|
||
|
||
.name-text {
|
||
//max-width: 380rpx;
|
||
font-size: 30rpx;
|
||
font-weight: 600;
|
||
line-height: 40rpx;
|
||
color: #333333;
|
||
}
|
||
|
||
.name-icon {
|
||
width: 80rpx;
|
||
height: 32rpx;
|
||
}
|
||
|
||
.zhu {
|
||
margin-top: 10rpx;
|
||
font-size: 24rpx;
|
||
line-height: 32rpx;
|
||
color: #999999;
|
||
}
|
||
}
|
||
|
||
.detail-title {
|
||
font-size: 26rpx;
|
||
font-weight: 600;
|
||
line-height: 40rpx;
|
||
color: #101010;
|
||
}
|
||
|
||
.detail-text {
|
||
padding: 15rpx 0;
|
||
font-size: 26rpx;
|
||
line-height: 40rpx;
|
||
color: #333333;
|
||
}
|
||
|
||
.fiexd-bottom {
|
||
position: fixed;
|
||
left: 0;
|
||
bottom: 0;
|
||
z-index: 99;
|
||
width: 100%;
|
||
height: 130rpx;
|
||
padding: 0 30rpx;
|
||
box-sizing: border-box;
|
||
border-top: 1px solid #f2f2f2;
|
||
|
||
.text {
|
||
font-size: 26rpx;
|
||
line-height: 40rpx;
|
||
}
|
||
|
||
.apply-btn {
|
||
width: 220rpx;
|
||
height: 70rpx;
|
||
font-size: 26rpx;
|
||
line-height: 70rpx;
|
||
text-align: center;
|
||
color: #ffffff;
|
||
background: #A92924;
|
||
}
|
||
}
|
||
|
||
.table-box {
|
||
font-size: 24rpx;
|
||
line-height: 28rpx;
|
||
text-align: center;
|
||
}
|
||
|
||
.tr {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
}
|
||
|
||
.th {
|
||
color: #666 !important;
|
||
background: #FFF8F2;
|
||
}
|
||
|
||
.th, .td {
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
width: 50%;
|
||
height: 76rpx;
|
||
color: #999;
|
||
overflow: hidden;
|
||
box-sizing: border-box;
|
||
border-left: 1px solid #f2f2f2;
|
||
border-right: 1px solid #f2f2f2;
|
||
border-bottom: 1px solid #f2f2f2;
|
||
}
|
||
|
||
.td {
|
||
border-right: 1px solid #f2f2f2;
|
||
border-bottom: 1px solid #f2f2f2;
|
||
background: #ffffff;
|
||
}
|
||
|
||
.td-3 {
|
||
width: 33.33%;
|
||
}
|
||
|
||
.popup-box {
|
||
padding: 20rpx 20rpx;
|
||
width: 700rpx;
|
||
|
||
.residue {
|
||
font-size: 28rpx;
|
||
line-height: 40rpx;
|
||
color: #333333;
|
||
}
|
||
|
||
.increase {
|
||
font-size: 24rpx;
|
||
line-height: 40rpx;
|
||
color: #727272;
|
||
}
|
||
|
||
.custom-style {
|
||
margin: 40rpx auto;
|
||
width: 200rpx;
|
||
color: #ffffff;
|
||
background: #A92924;
|
||
}
|
||
}
|
||
|
||
.popup-title {
|
||
padding: 18rpx 0;
|
||
border-bottom: 1px solid #A92924;
|
||
|
||
.title {
|
||
font-size: 24rpx;
|
||
line-height: 40rpx;
|
||
color: #A92924;
|
||
}
|
||
|
||
.close {
|
||
width: 80rpx;
|
||
height: 40rpx;
|
||
font-size: 22rpx;
|
||
line-height: 40rpx;
|
||
text-align: center;
|
||
color: #ffffff;
|
||
background: #A92924;
|
||
}
|
||
}
|
||
|
||
.goods-item {
|
||
padding: 18rpx 0;
|
||
font-size: 24rpx;
|
||
line-height: 32rpx;
|
||
color: #626262;
|
||
}
|
||
|
||
|
||
.item-wrap {
|
||
margin: 24px 0;
|
||
font-size: 25rpx;
|
||
|
||
.form-title-wrap {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
|
||
.goods-info-title {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: flex-start;
|
||
}
|
||
|
||
.form-title {
|
||
padding-left: 10px;
|
||
color: #A92924;
|
||
font-size: 18px;
|
||
line-height: 18px;
|
||
border-left: 4px solid #A92924;
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
.countdown {
|
||
padding: 2px 5px;
|
||
margin: 0 5px;
|
||
}
|
||
|
||
.enquiry-tip-content {
|
||
text-align: left;
|
||
}
|
||
|
||
.enquiry-tip-item {
|
||
padding-bottom: 12rpx;
|
||
font-size: 26rpx;
|
||
line-height: 40rpx;
|
||
color: #333333;
|
||
}
|
||
</style>
|