486 lines
14 KiB
Vue
Raw Normal View History

2025-04-03 17:20:49 +08:00
<template>
<div class="purchaser-detail-warp">
<common current-name="purchaser">
<template #main>
<div class="purchaser-detail-top">
<div class="top-title">
<div class="father-title">采购商服务</div>
<div class="current-title">采购详情</div>
</div>
<div class="purchaser-info">
<el-row :gutter="16">
<el-col :span="16">
<div class="purchaser-info-l">
<div class="img">
<el-image :src="getAssetsFile('images/ecommerce/' + 'test01.png')" fit="cover" />
</div>
<div class="content">
<div class="title-warp">
<div class="txt txt-ellipsis clamp2">耿马县勐简乡飘云生态农业耿马县勐简乡飘云生态农业</div>
<div class="icon-warp">
<div class="iconfont icon-level"></div>
<div class="iconfont icon-auth"></div>
</div>
</div>
<div class="is-auth">
<span>已实名认证</span>
</div>
<div class="settled-time">
<span>入驻时间37</span>
</div>
</div>
</div>
</el-col>
<el-col :span="8">
<div class="purchaser-info-r">
<div class="addr">
{{ '南省临沧市耿马傣族佤族自治县耿马县勐简乡' }}
<div class="iconfont icon-location"></div>
</div>
</div>
</el-col>
</el-row>
<el-row :gutter="56" class="purchase-info-total">
<el-col :span="12">
<div class="info-total-item">
<div class="label">采购品种</div>
<div class="val">西红柿</div>
</div>
</el-col>
<el-col :span="12">
<div class="info-total-item">
<div class="label">采购数量</div>
<div class="val">5000kg</div>
</div>
</el-col>
<el-col :span="12">
<div class="info-total-item">
<div class="label">期望货源地</div>
<div class="val">耿马县·贺派乡</div>
</div>
</el-col>
<el-col :span="12">
<div class="info-total-item">
<div class="label">浏览次数</div>
<div class="val">188</div>
</div>
</el-col>
<el-col :span="12">
<div class="info-total-item">
<div class="label">期望货源地</div>
<div class="val">耿马县·贺派乡</div>
</div>
</el-col>
<el-col :span="12">
<div class="info-total-item">
<div class="label">更新时间</div>
<div class="val">2025.01.01 12:15:18</div>
</div>
</el-col>
</el-row>
<el-row class="contant-wrap">
<el-col :span="24">
<div class="contant-btn">
<div class="iconfont icon-bg-chat"></div>
<span>在线联系</span>
</div>
</el-col>
</el-row>
</div>
</div>
<div class="hot-list-warp">
<div class="block-title">热门采购</div>
<el-row>
<el-col :span="24">
<el-table :data="tableData" style="width: 100%" height="320">
<el-table-column prop="title" label="采购品种" />
<el-table-column prop="region" label="收货地" />
<el-table-column prop="buyer" label="采购方" />
<el-table-column prop="buyNum" label="采购量(kg)" />
<el-table-column prop="buyer" label="采购时间" />
<el-table-column fixed="right" label="操作">
<template #default>
<el-button link type="primary" size="small" @click.stop="handleClick"> 去报价 </el-button>
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
</div>
</template>
</common>
<purchaserPopup ref="popupQuote" :list="treeList"></purchaserPopup>
</div>
</template>
<script setup name="ecommerce">
import common from './components/common.vue';
import purchaserPopup from './components/purchaserPopup.vue';
import { ref, reactive, onMounted, watch, computed } from 'vue';
import { isEmpty, getAssetsFile } from '@/utils';
let popupQuote = ref(null);
let treeList = reactive([
{
id: '01',
title: '农产品',
children: [
{
pId: '01',
id: '0101',
title: '植物性农产品',
children: [
{ pId: '0101', id: '010101', title: '谷物' },
{ pId: '0101', id: '010102', title: '蔬菜' },
{ pId: '0101', id: '010103', title: '水果' },
{ pId: '0101', id: '010104', title: '坚果与油料作物' },
{ pId: '0101', id: '010105', title: '糖料作物' },
{ pId: '0101', id: '010106', title: '纤维作物' },
{ pId: '0101', id: '010107', title: '茶叶' },
{ pId: '0101', id: '010108', title: '咖啡' },
{ pId: '0101', id: '010109', title: '香料' },
],
},
{
pId: '01',
id: '0102',
title: '动物性农产品',
children: [
{ pId: '0102', id: '010201', title: '肉类' },
{ pId: '0102', id: '010202', title: '奶制品' },
{ pId: '0102', id: '010203', title: '蛋类' },
{ pId: '0102', id: '010204', title: '蜂蜜' },
{ pId: '0102', id: '010205', title: '水产品' },
],
},
{
pId: '01',
id: '0103',
title: '特殊农产品',
children: [
{ pId: '0103', id: '010301', title: '花卉与苗木' },
{ pId: '0103', id: '010302', title: '药材' },
{ pId: '0103', id: '010303', title: '菌类' },
],
},
{
pId: '01',
id: '0104',
title: '其他',
children: [{ pId: '0104', id: '010401', title: '饲料' }],
},
],
},
{
id: '02',
title: '种子种苗',
children: [
{
pId: '02',
id: '0101',
title: '花卉种子种苗',
children: [
{ pId: '0101', id: '010101', title: '草本花卉' },
{ pId: '0101', id: '010102', title: '木本花卉' },
{ pId: '0101', id: '010103', title: '野生花卉' },
],
},
{
pId: '02',
id: '0102',
title: '蔬菜种子种苗',
children: [
{ pId: '0102', id: '010201', title: '叶菜类' },
{ pId: '0102', id: '010202', title: '根茎类' },
{ pId: '0102', id: '010203', title: '果实类' },
{ pId: '0102', id: '010204', title: '豆类' },
{ pId: '0102', id: '010205', title: '瓜类' },
],
},
{
pId: '02',
id: '0103',
title: '果树种苗',
children: [
{ pId: '0103', id: '010301', title: '柑橘类' },
{ pId: '0103', id: '010302', title: '仁果类' },
{ pId: '0103', id: '010303', title: '核果类' },
{ pId: '0103', id: '010304', title: '浆果类' },
],
},
{
pId: '02',
id: '0104',
title: '药材种子与种苗',
children: [
{ pId: '0104', id: '010401', title: '寒地龙药' },
{ pId: '0104', id: '010402', title: '常见中药材' },
],
},
{
pId: '02',
id: '0105',
title: '其他作物',
children: [
{ pId: '0105', id: '010501', title: '牧草' },
{ pId: '0105', id: '010502', title: '经济作物' },
{ pId: '0105', id: '010503', title: '观赏树木' },
],
},
],
},
]);
let tableData = reactive([
{ title: '西红柿', region: '耿马镇', buyer: '盛源农业', buyNum: 5000, time: '2025-04-02 12:25:36' },
{ title: '白菜', region: '孟定镇', buyer: '星悦农业', buyNum: 6000, time: '2025-04-01 12:25:36' },
{ title: '西蓝花', region: '孟勇镇', buyer: '盛源农业', buyNum: 7000, time: '2025-04-02 13:25:36' },
{ title: '鸡蛋', region: '勐简乡', buyer: '上好佳农业', buyNum: 8000, time: '2025-04-02 12:25:36' },
// { title: '牛肉', region: '四排山乡', buyer: '尚嘉农业', buyNum: 5000, time: '2025-03-31 12:25:36' },
// { title: '氮肥', region: '大兴乡', buyer: '信誉农资', buyNum: 6000, time: '2025-04-02 12:25:36' },
// { title: '白菜种子', region: '贺派乡', buyer: '佳佳农业', buyNum: 5000, time: '2025-04-02 12:25:36' },
// { title: '西红柿种子', region: '勐撒镇', buyer: '佳佳农业', buyNum: 8000, time: '2025-04-02 12:25:36' },
]);
const handleClick = () => {
popupQuote.value && popupQuote.value.doShow();
};
onMounted(() => {
console.info('onMounted');
});
</script>
<style lang="scss" scoped>
.purchaser-detail-warp {
width: 100%;
.block-title {
font-size: 20px;
font-weight: 700;
text-align: left;
padding: 8px 0;
}
.purchaser-detail-top {
width: 100%;
margin-bottom: 16px;
background: $color-fff;
border-radius: 16px;
overflow: hidden;
padding: 10px;
.top-title {
width: 100%;
text-align: left;
.father-title,
.current-title {
display: inline-block;
vertical-align: middle;
font-weight: 700;
}
.father-title {
font-size: 18px;
}
.current-title {
font-size: 16px;
color: $color-main;
position: relative;
padding: 0 8px;
margin-left: 8px;
}
.current-title::before {
content: '.';
position: absolute;
left: 0;
top: 30%;
transform: translateY(-50%);
}
}
.purchaser-info {
margin: 16px 0;
.purchaser-info-l {
display: inline-flex;
justify-content: flex-start;
width: 100%;
text-align: left;
.img,
.content {
display: inline-block;
vertical-align: top;
}
.img {
width: 160px;
height: 160px;
border-radius: 8px;
overflow: hidden;
img {
width: 100%;
height: 100%;
}
}
.content {
width: calc(100% - 160px);
padding-left: 16px;
.title-warp {
width: 100%;
.txt,
.icon-warp {
vertical-align: top;
}
.txt {
width: calc(100% - 80px);
font-size: 24px;
font-weight: 500;
}
.icon-warp {
display: inline-block;
width: 80px;
.iconfont {
display: inline-block;
margin-top: 6px;
&.icon-level {
font-size: 26px;
color: $color-main;
}
&.icon-auth {
font-size: 28px;
color: $color-warning;
}
}
}
}
.is-auth {
width: 100%;
margin: 16px 0;
span {
background: $color-main-table-header;
border: 1px solid $color-main-border;
border-radius: 8px;
padding: 0 16px;
color: $color-main;
line-height: 32px;
height: 32px;
display: inline-block;
font-size: 16px;
font-weight: 400;
}
}
.settled-time {
width: 100%;
span {
font-size: 20px;
color: $color-999;
font-weight: 500;
}
}
}
}
.purchaser-info-r {
.addr {
text-align: left;
width: 100%;
font-size: 18px;
font-weight: 500;
color: $color-666;
.iconfont {
display: inline-block;
font-size: 26px;
2025-04-03 17:23:37 +08:00
vertical-align: middle;
2025-04-03 17:20:49 +08:00
}
}
}
.purchase-info-total {
.info-total-item {
display: inline-flex;
width: 100%;
justify-content: space-between;
margin: 8px 0;
.label,
.val {
display: -webkit-inline-box;
vertical-align: top;
}
.label {
color: $color-999;
font-size: 18px;
max-width: 180px;
}
.val {
font-size: 20px;
max-width: calc(100% - 180px);
color: $color-666;
text-align: right;
}
}
}
.contant-wrap {
width: 100%;
text-align: center;
margin-top: 16px;
.contant-btn {
background: $color-main;
padding: 0 16px;
line-height: 48px;
height: 48px;
border-radius: 16px;
color: $color-fff;
display: inline-block;
.iconfont,
span {
display: inline-block;
vertical-align: middle;
}
.iconfont {
font-size: 26px;
}
span {
padding-left: 8px;
font-size: 20px;
}
}
}
}
}
.hot-list-warp {
background: $color-fff;
padding: 16px;
border-radius: 16px;
margin: 16px 0;
::v-deep() {
thead {
border-radius: 16px;
overflow: hidden;
}
thead th {
background: $color-main-table-header;
color: $color-999 !important;
border: none !important;
padding: 16px 0;
}
thead th:first-child {
border-top-left-radius: 16px;
border-bottom-left-radius: 16px;
}
thead th:last-child {
border-top-right-radius: 16px;
border-bottom-right-radius: 16px;
}
table {
margin-top: 16px !important;
}
tbody td {
border: none !important;
}
.el-table__inner-wrapper::before {
display: none !important;
}
}
}
}
</style>