| @@ -33,3 +33,48 @@ export function AttestationDetail(id) { | |||
| method: 'get' | |||
| }) | |||
| } | |||
| //鉴证公告 | |||
| export function needProject(id,query) { | |||
| return request({ | |||
| url: '/transaction/website/needProject/'+id, | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| //招标公告 | |||
| export function tenderList(query) { | |||
| return request({ | |||
| url: '/transaction/website/tender/publicity', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| //中标公告 | |||
| export function winList(query) { | |||
| return request({ | |||
| url: '/transaction/website/win/publicity', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| //招标公告详情 | |||
| export function tenderDetail(id,query) { | |||
| return request({ | |||
| url: '/transaction/website/tender/'+id, | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| //中标公告详情 | |||
| export function tenderWinDetail(id,query) { | |||
| return request({ | |||
| url: '/transaction/website/tenderWin/'+id, | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| @@ -16,6 +16,10 @@ const whiteList = [ | |||
| '/news/index', | |||
| '/news/newDetail', | |||
| '/notice/index', | |||
| '/notice/inviteTendersDetail', | |||
| '/notice/winTheBiddingDetail', | |||
| '/project/projectNeedsDetail', | |||
| '/supply/index', | |||
| '/interaction/index', | |||
| '/register/index', | |||
| @@ -166,6 +170,9 @@ const whiteList = [ | |||
| '/agriculturalTrusteeship/societyProjectList',//社会化产品列表 | |||
| '/agriculturalTrusteeship/societyProjectDetail',//社会化产品详情 | |||
| '/agriculturalTrusteeship/shopList',//保险列表首页 | |||
| '/agriculturalTrusteeship/shopNeedsList',//保险列表首页 | |||
| '/agriculturalTrusteeship/shopOrganizationDetail',//保险列表首页 | |||
| '/agriculturalTrusteeship/shopDepositDetail',//保险列表首页 | |||
| '/agriculturalTrusteeship/shopDetail',//保险列表详情 | |||
| '/agriculturalTrusteeship/shopEdit',//保险列表详情 | |||
| '/agriculturalTrusteeship/shopAdd',//保险列表首页 | |||
| @@ -111,6 +111,33 @@ export const constantRoutes = [ | |||
| }, | |||
| component: (resolve) => require(['@/views/project/projectDetail'], resolve) | |||
| }, | |||
| { | |||
| path: '/project/projectNeedsDetail', | |||
| name: 'projectNeedsDetail', | |||
| meta: { | |||
| title: '需求项目', | |||
| hidden: true | |||
| }, | |||
| component: (resolve) => require(['@/views/project/projectNeedsDetail'], resolve) | |||
| }, | |||
| { | |||
| path: '/notice/inviteTendersDetail', | |||
| name: 'inviteTendersDetail', | |||
| meta: { | |||
| title: '招标公告', | |||
| hidden: true | |||
| }, | |||
| component: (resolve) => require(['@/views/notice/inviteTendersDetail'], resolve) | |||
| }, | |||
| { | |||
| path: '/notice/winTheBiddingDetail', | |||
| name: 'winTheBiddingDetail', | |||
| meta: { | |||
| title: '中标公告', | |||
| hidden: true | |||
| }, | |||
| component: (resolve) => require(['@/views/notice/winTheBiddingDetail'], resolve) | |||
| }, | |||
| { | |||
| path: '/news/index', | |||
| name: 'news', | |||
| @@ -5110,6 +5137,33 @@ export const constantRoutes = [ | |||
| }, | |||
| component: (resolve) => require(['@/views/agriculturalTrusteeship/shop/shopList'], resolve) | |||
| }, | |||
| { | |||
| path: '/agriculturalTrusteeship/shopNeedsList', | |||
| name: 'agriculturalTrusteeshipShopNeedsList', | |||
| meta: { | |||
| title: '贷款需求', | |||
| hidden: true, | |||
| }, | |||
| component: (resolve) => require(['@/views/agriculturalTrusteeship/shop/shopNeedsList'], resolve) | |||
| }, | |||
| { | |||
| path: '/agriculturalTrusteeship/shopOrganizationDetail', | |||
| name: 'agriculturalTrusteeshipShopOrganizationDetail', | |||
| meta: { | |||
| title: '服务组织', | |||
| hidden: true, | |||
| }, | |||
| component: (resolve) => require(['@/views/agriculturalTrusteeship/shop/shopOrganizationDetail'], resolve) | |||
| }, | |||
| { | |||
| path: '/agriculturalTrusteeship/shopDepositDetail', | |||
| name: 'agriculturalTrusteeshipShopDepositDetail', | |||
| meta: { | |||
| title: '托管主体', | |||
| hidden: true, | |||
| }, | |||
| component: (resolve) => require(['@/views/agriculturalTrusteeship/shop/shopDepositDetail'], resolve) | |||
| }, | |||
| { | |||
| path: '/agriculturalTrusteeship/serviceEdit', | |||
| name: 'agriculturalTrusteeshipServiceEdit', | |||
| @@ -0,0 +1,394 @@ | |||
| <template> | |||
| <div class="home_wrapper"> | |||
| <!-- 头部开始 --> | |||
| <div class="header"> | |||
| <div class="header_left" @click="onClickLeft"> | |||
| <img src="../../../../static/images/agriculturalTrusteeship/return.png"> | |||
| <p>需求详情</p> | |||
| </div> | |||
| </div> | |||
| <!-- 头部结束 --> | |||
| <!-- 内容开始 --> | |||
| <div class="main"> | |||
| <div class="main_content_right_list"> | |||
| <div class="main_tit"> | |||
| <i></i> | |||
| <p>家家加加加加加加加就爱简爱家合作社</p> | |||
| </div> | |||
| <p class="main_content">村口需要水牛石头诚招水牛贷款联系电话165822本人人品优良绝不拖欠还款。</p> | |||
| <div class="main_money"> | |||
| <p><span>需求金额</span><span>¥</span>512,000.00</p> | |||
| </div> | |||
| <van-divider /> | |||
| <van-field | |||
| readonly | |||
| label="负责人" | |||
| input-align="right" | |||
| :border="false" | |||
| placeholder="负责人" | |||
| /> | |||
| <van-field | |||
| readonly | |||
| label="联系方式" | |||
| input-align="right" | |||
| :border="false" | |||
| placeholder="联系方式" | |||
| /> | |||
| <van-field | |||
| readonly | |||
| label="地址" | |||
| input-align="right" | |||
| :border="false" | |||
| placeholder="地址" | |||
| /> | |||
| </div> | |||
| <div class="main_content_right_list2"> | |||
| <div> | |||
| <p>托管农户数(户)</p> | |||
| <p>366</p> | |||
| </div> | |||
| <div> | |||
| <p>托管面积(亩)</p> | |||
| <p>366</p> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <!-- 内容结束 --> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import Cookies from "js-cookie"; | |||
| import {productList, productOut, productIn, serviceGet, treeselect} from "@/api/agriculturalTrusteeship"; | |||
| export default { | |||
| name: "shopOrganizationDetail", | |||
| data() { | |||
| return { | |||
| }; | |||
| }, | |||
| created() { | |||
| }, | |||
| methods: { | |||
| }, | |||
| } | |||
| </script> | |||
| <style scoped lang="scss"> | |||
| .home_wrapper{ | |||
| background: #f9f9f9; | |||
| height: 100vh; | |||
| overflow: hidden; | |||
| } | |||
| /*头部*/ | |||
| .header{ | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: space-between; | |||
| background-image: linear-gradient(to right , #6E93F3 , #7E89E9 , #54C6E4); | |||
| padding: 2vh 4% 2vh; | |||
| .header_left{ | |||
| display: flex; | |||
| align-items: center; | |||
| p{ | |||
| font-size: .4rem; | |||
| color: #ffffff; | |||
| line-height: 1; | |||
| margin-left: 10PX; | |||
| } | |||
| } | |||
| .header_right{ | |||
| font-size: .35rem; | |||
| background: #334281; | |||
| padding: 2PX 10PX; | |||
| border-radius: 50PX; | |||
| /deep/ .van-checkbox__icon--checked .van-icon{ | |||
| color: #334281; | |||
| } | |||
| /deep/ .van-checkbox__label{ | |||
| color: #ffffff; | |||
| } | |||
| /deep/ .van-checkbox__icon .van-icon{ | |||
| width: .9em; | |||
| height: .9em; | |||
| line-height: .9em; | |||
| } | |||
| /deep/ .van-icon-success::before{ | |||
| width: .9em; | |||
| height: .9em; | |||
| } | |||
| /deep/ .van-checkbox__icon{ | |||
| height: auto; | |||
| } | |||
| } | |||
| } | |||
| .main_btn{ | |||
| display: flex; | |||
| background: #ffffff; | |||
| border-top-left-radius: 25PX; | |||
| border-top-right-radius: 25PX; | |||
| overflow: hidden; | |||
| padding: 4vw 4% 0; | |||
| justify-content: space-between; | |||
| .btn_box_01{ | |||
| width: 48%; | |||
| display: flex; | |||
| justify-content: center; | |||
| align-items: center; | |||
| border: 1Px dashed #4E7FFF; | |||
| color: #4E7FFF; | |||
| font-size: .35rem; | |||
| line-height: 15vw; | |||
| border-radius: 10Px; | |||
| p:first-child{ | |||
| font-weight: bold; | |||
| margin-right: 5PX; | |||
| } | |||
| } | |||
| .btn_box_02{ | |||
| width: 48%; | |||
| display: flex; | |||
| justify-content: center; | |||
| align-items: center; | |||
| background: rgba(78,127,255,0.17); | |||
| color: #1E49BB; | |||
| font-size: .35rem; | |||
| line-height: 15vw; | |||
| border-radius: 10Px; | |||
| p{ | |||
| margin-left: 5PX; | |||
| } | |||
| } | |||
| } | |||
| .serviceName{ | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: space-between; | |||
| span{ | |||
| background: #E8E8E8; | |||
| padding: 0 8PX; | |||
| border-radius: 5PX; | |||
| color: #7A7A7A; | |||
| margin-right: 5PX; | |||
| } | |||
| .active{ | |||
| background-image: linear-gradient(to right , #6E93F3 , #7E89E9 , #54C6E4); | |||
| color: #ffffff; | |||
| } | |||
| } | |||
| .nav{ | |||
| background-image: linear-gradient(to right , #6E93F3 , #7E89E9 , #54C6E4); | |||
| padding-bottom: 15PX; | |||
| .tt{ | |||
| font-size: .45rem; | |||
| color: #334281; | |||
| } | |||
| .content{ | |||
| background: #ffffff; | |||
| width: 92%; | |||
| margin: 0 auto; | |||
| box-shadow: 0px 0px 10PX rgba(0,0,0,0.1); | |||
| border-radius: 25PX; | |||
| padding: 1.5vh 4%; | |||
| } | |||
| /deep/ .van-cell{ | |||
| padding: 0; | |||
| margin-bottom: 10PX; | |||
| &:last-child{ | |||
| margin: 0; | |||
| } | |||
| } | |||
| } | |||
| /* 内容 */ | |||
| .main{ | |||
| background-image: linear-gradient(to right , #6E93F3 , #7E89E9 , #54C6E4); | |||
| background-size: 100% 20PX; | |||
| background-repeat: no-repeat; | |||
| /deep/ .van-tabs__nav{ | |||
| border-top-left-radius: 25PX; | |||
| border-top-right-radius: 25PX; | |||
| overflow: hidden; | |||
| background: #f9f9f9; | |||
| } | |||
| /deep/ .van-tabs__line{ | |||
| background: #334281!important; | |||
| } | |||
| /deep/ .van-tab--active{ | |||
| color: #334281; | |||
| } | |||
| /deep/ .van-tabs__content{ | |||
| background: #f9f9f9; | |||
| padding-top: 2vh; | |||
| } | |||
| .search{ | |||
| display: flex; | |||
| justify-content: space-between; | |||
| align-items: center; | |||
| width: 92%; | |||
| margin: 0PX auto; | |||
| border: 1px solid #6E93F3; | |||
| padding: 1PX 1PX 1PX 12PX ; | |||
| border-radius: 50PX; | |||
| input{ | |||
| flex: 1; | |||
| background: transparent; | |||
| margin-left: 10PX; | |||
| } | |||
| } | |||
| .content{ | |||
| width: 92%; | |||
| margin: 0 auto; | |||
| margin-top: 2vh; | |||
| .content_tt{ | |||
| font-size: .35rem; | |||
| } | |||
| .content_con{ | |||
| display: flex; | |||
| justify-content: space-between; | |||
| margin-top: 1.5vh; | |||
| .content_con_left{ | |||
| display: flex; | |||
| flex-direction:column; | |||
| justify-content: space-between; | |||
| p{ | |||
| font-size: .35rem; | |||
| padding-left: 18PX; | |||
| &:nth-child(1){ | |||
| background: url("../../../../static/images/agriculturalTrusteeship/insurance/insurance_list_project.png") no-repeat left center; | |||
| } | |||
| &:nth-child(2){ | |||
| background: url("../../../../static/images/agriculturalTrusteeship/insurance/insurance_list_name.png") no-repeat left center; | |||
| } | |||
| &:nth-child(3){ | |||
| background: url("../../../../static/images/agriculturalTrusteeship/insurance/insurance_list_iphone.png") no-repeat left center; | |||
| } | |||
| } | |||
| } | |||
| .content_con_right{ | |||
| display: flex; | |||
| justify-content: end; | |||
| align-items: center; | |||
| img{ | |||
| border-radius: 10PX; | |||
| width: 40%; | |||
| margin-left: 5%; | |||
| box-shadow: 0px 5PX 10PX rgba(0,0,0,0.2); | |||
| &:last-child{ | |||
| width: auto; | |||
| box-shadow: none; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| .main_content_right_list{ | |||
| margin: 0 auto; | |||
| margin-bottom: 2vh; | |||
| width: 92%; | |||
| background: #ffffff; | |||
| padding: 15PX 3%; | |||
| border-radius: 10Px; | |||
| box-shadow: 0px 5PX 10PX rgba(0,0,0,0.1); | |||
| text-align: center; | |||
| /deep/ .van-cell{ | |||
| padding: 0; | |||
| margin-bottom: 10PX; | |||
| &:last-child{ | |||
| margin: 0; | |||
| } | |||
| } | |||
| .main_content{ | |||
| font-size: .35rem; | |||
| line-height: .7rem; | |||
| margin-top: 10PX; | |||
| text-align: left; | |||
| } | |||
| .main_tit{ | |||
| color: #4E7FFF; | |||
| font-size: .38rem; | |||
| display: flex; | |||
| align-items: center; | |||
| i{ | |||
| display: block; | |||
| width: 16PX; | |||
| height: 16PX; | |||
| margin-right: 5PX; | |||
| flex-shrink: 0; | |||
| background: url("../../../../static/images/agriculturalTrusteeship/insurance/shop_needs_icon01.png"); | |||
| } | |||
| p{ | |||
| display: -webkit-box; | |||
| -webkit-box-orient: vertical; | |||
| -webkit-line-clamp: 1; | |||
| word-break: break-all; | |||
| overflow: hidden; | |||
| } | |||
| span{ | |||
| font-size: .3rem; | |||
| color: #8B8B8B; | |||
| flex-shrink: 0; | |||
| } | |||
| } | |||
| .main_money{ | |||
| background: rgba(255,94,0,0.15); | |||
| display: inline-block; | |||
| padding: 5PX 15PX; | |||
| border-radius: 8PX; | |||
| margin: 10PX auto; | |||
| p{ | |||
| &:nth-child(1){ | |||
| color: #FF5E00; | |||
| font-size: .4rem; | |||
| span{ | |||
| font-size: .3rem; | |||
| } | |||
| } | |||
| &:nth-child(2){ | |||
| color: #8B8B8B; | |||
| font-size: .35rem; | |||
| } | |||
| } | |||
| span:nth-child(1){ | |||
| margin-right: 5PX; | |||
| } | |||
| } | |||
| } | |||
| .main_content_right_list2{ | |||
| margin: 0 auto; | |||
| margin-bottom: 2vh; | |||
| width: 92%; | |||
| display: flex; | |||
| justify-content: space-between; | |||
| div{ | |||
| box-shadow: 0px 5PX 10PX rgba(0,0,0,0.1); | |||
| width: 48%; | |||
| background: #ffffff; | |||
| text-align: center; | |||
| padding: 10PX 0; | |||
| border-radius: 10Px; | |||
| p{ | |||
| &:nth-child(1){ | |||
| font-size: .38rem; | |||
| color: #8B8B8B; | |||
| } | |||
| &:nth-child(2){ | |||
| font-size: .4rem; | |||
| color: #4E7FFF; | |||
| margin-top: 10PX; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @@ -75,11 +75,31 @@ | |||
| <!-- 内容开始 --> | |||
| <div class="main"> | |||
| <van-tabs v-model="active" sticky animated> | |||
| <van-tab title="服务中"> | |||
| <img src="../../../../static/images/agriculturalTrusteeship/insurance/shop_icon_add.png" style="margin: 0 auto;display: block;width: 94%;" @click="$router.push({name:'agriculturalTrusteeshipShopAdd'})"> | |||
| <div class="main_btn" v-if="serviceForm.financialType == '1'"> | |||
| <div class="btn_box_01" @click="$router.push({name:'agriculturalTrusteeshipShopAdd'})"> | |||
| <p>+</p> | |||
| <p>发布新产品</p> | |||
| </div> | |||
| <div class="btn_box_02" @click="$router.push({name:'agriculturalTrusteeshipShopNeedsList'})"> | |||
| <img src="../../../../static/images/agriculturalTrusteeship/insurance/shop_icon_see2.png" alt=""> | |||
| <p>查看贷款需求</p> | |||
| </div> | |||
| <!-- <img src="../../../../static/images/agriculturalTrusteeship/insurance/shop_icon_add2.png" style="margin: 0 auto;display: block;" @click="$router.push({name:'agriculturalTrusteeshipShopAdd'})">--> | |||
| <!-- <img src="../../../../static/images/agriculturalTrusteeship/insurance/shop_icon_see.png" style="margin: 0 auto;display: block;" @click="$router.push({name:'agriculturalTrusteeshipShopAdd'})">--> | |||
| </div> | |||
| <div class="main_btn" v-else> | |||
| <div class="btn_box_01" style="width: 100%;" @click="$router.push({name:'agriculturalTrusteeshipShopAdd'})"> | |||
| <p>+</p> | |||
| <p>发布新产品</p> | |||
| </div> | |||
| </div> | |||
| <van-tabs v-model="active" sticky animated> | |||
| <van-tab title="服务中"> | |||
| <van-list | |||
| v-model="loading" | |||
| :finished="finished" | |||
| @@ -139,6 +159,7 @@ | |||
| <script> | |||
| import Cookies from "js-cookie"; | |||
| import {productList, productOut, productIn, serviceGet, treeselect} from "@/api/agriculturalTrusteeship"; | |||
| import {Dialog} from "vant"; | |||
| export default { | |||
| name: "agriculturalTrusteeshipShopList", | |||
| data() { | |||
| @@ -178,7 +199,19 @@ | |||
| methods: { | |||
| getDetail(){ | |||
| serviceGet(Cookies.get('ACCESS-SESSION-ID')).then(response => { | |||
| this.serviceForm = response.data; | |||
| if (response.code == 200){ | |||
| this.serviceForm = response.data; | |||
| }else{ | |||
| Dialog.confirm({ | |||
| title: '系统提示', | |||
| message: '登录状态已过期,请重新登录', | |||
| confirmButtonText: '重新登录', | |||
| cancelButtonText: '取消' | |||
| }).then(() => { | |||
| window.location.href = '/agriculturalTrusteeship/login'; | |||
| }); | |||
| } | |||
| }); | |||
| }, | |||
| getList(){ | |||
| @@ -260,6 +293,45 @@ | |||
| } | |||
| } | |||
| .main_btn{ | |||
| display: flex; | |||
| background: #ffffff; | |||
| border-top-left-radius: 25PX; | |||
| border-top-right-radius: 25PX; | |||
| overflow: hidden; | |||
| padding: 4vw 4% 0; | |||
| justify-content: space-between; | |||
| .btn_box_01{ | |||
| width: 48%; | |||
| display: flex; | |||
| justify-content: center; | |||
| align-items: center; | |||
| border: 1Px dashed #4E7FFF; | |||
| color: #4E7FFF; | |||
| font-size: .35rem; | |||
| line-height: 15vw; | |||
| border-radius: 10Px; | |||
| p:first-child{ | |||
| font-weight: bold; | |||
| margin-right: 5PX; | |||
| } | |||
| } | |||
| .btn_box_02{ | |||
| width: 48%; | |||
| display: flex; | |||
| justify-content: center; | |||
| align-items: center; | |||
| background: rgba(78,127,255,0.17); | |||
| color: #1E49BB; | |||
| font-size: .35rem; | |||
| line-height: 15vw; | |||
| border-radius: 10Px; | |||
| p{ | |||
| margin-left: 5PX; | |||
| } | |||
| } | |||
| } | |||
| .serviceName{ | |||
| display: flex; | |||
| align-items: center; | |||
| @@ -305,9 +377,9 @@ | |||
| .main{ | |||
| background-image: linear-gradient(to right , #6E93F3 , #7E89E9 , #54C6E4); | |||
| /deep/ .van-tabs__nav{ | |||
| border-top-left-radius: 25PX; | |||
| border-top-right-radius: 25PX; | |||
| overflow: hidden; | |||
| /*border-top-left-radius: 25PX;*/ | |||
| /*border-top-right-radius: 25PX;*/ | |||
| /*overflow: hidden;*/ | |||
| } | |||
| /deep/ .van-tabs__line{ | |||
| background: #334281!important; | |||
| @@ -0,0 +1,416 @@ | |||
| <template> | |||
| <div class="home_wrapper"> | |||
| <!-- 头部开始 --> | |||
| <div class="header"> | |||
| <div class="header_left" @click="onClickLeft"> | |||
| <img src="../../../../static/images/agriculturalTrusteeship/return.png"> | |||
| <p>贷款需求</p> | |||
| </div> | |||
| <p class="header_right"> | |||
| <van-checkbox v-model="checked" checked-color="#ffffff">只显示有资金需求</van-checkbox> | |||
| </p> | |||
| </div> | |||
| <!-- 头部结束 --> | |||
| <!-- 内容开始 --> | |||
| <div class="main"> | |||
| <van-tabs v-model="active" sticky animated> | |||
| <van-tab title="服务组织(312)"> | |||
| <van-list | |||
| v-model="loading" | |||
| :finished="finished" | |||
| finished-text="没有更多了" | |||
| > | |||
| <!-- @load="getList" @load="onLoad"--> | |||
| <div class="main_content_right_list" v-for="(item,index) in 5" :key="index" @click="$router.push({name:'agriculturalTrusteeshipShopOrganizationDetail'})"> | |||
| <div class="main_tit"> | |||
| <i></i> | |||
| <p>家家加加加加加加加就爱简爱家合作社</p> | |||
| </div> | |||
| <div class="main_money"> | |||
| <p><span>¥</span>512,000.00</p> | |||
| <p>查看详情 ></p> | |||
| </div> | |||
| </div> | |||
| </van-list> | |||
| </van-tab> | |||
| <van-tab title="托管主体(201)"> | |||
| <van-list | |||
| v-model="loading" | |||
| :finished="finished" | |||
| finished-text="没有更多了" | |||
| > | |||
| <!-- @load="getList" @load="onLoad"--> | |||
| <div class="main_content_right_list" v-for="(item,index) in 5" :key="index" @click="$router.push({name:'agriculturalTrusteeshipShopDepositDetail'})"> | |||
| <div class="main_tit"> | |||
| <i></i> | |||
| <p>家家加加加加加加加就爱简爱家合作社</p> | |||
| </div> | |||
| <div class="main_money"> | |||
| <p><span>¥</span>512,000.00</p> | |||
| <p>查看详情 ></p> | |||
| </div> | |||
| </div> | |||
| </van-list> | |||
| </van-tab> | |||
| </van-tabs> | |||
| </div> | |||
| <!-- 内容结束 --> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import Cookies from "js-cookie"; | |||
| import {productList, productOut, productIn, serviceGet, treeselect} from "@/api/agriculturalTrusteeship"; | |||
| export default { | |||
| name: "agriculturalTrusteeshipShopList", | |||
| data() { | |||
| return { | |||
| activeKey: 0, | |||
| active: 0, | |||
| loading: false, | |||
| finished: false, | |||
| checked: false, | |||
| productList:[], | |||
| productListYes:[], | |||
| productListNo:[], | |||
| query:{ | |||
| financialServiceId:Cookies.get('ACCESS-SESSION-ID'), | |||
| pageNum:1, | |||
| pageSize:'10', | |||
| }, | |||
| serviceForm:{}, | |||
| deptOptions:[], | |||
| deptName:'张村', | |||
| showDeptId:false, | |||
| villageValue : '', | |||
| hcAreaInfoFieldName: { | |||
| text: "label", | |||
| value: "value", | |||
| children: "children", | |||
| }, | |||
| }; | |||
| }, | |||
| created() { | |||
| this.getDetail(); | |||
| treeselect().then(res=>{ | |||
| if (res.code == 200) { | |||
| this.deptOptions = res.data; | |||
| } | |||
| }) | |||
| }, | |||
| methods: { | |||
| getDetail(){ | |||
| serviceGet(Cookies.get('ACCESS-SESSION-ID')).then(response => { | |||
| this.serviceForm = response.data; | |||
| }); | |||
| }, | |||
| getList(){ | |||
| productList(this.query).then(response => { | |||
| response.rows.map(res=>{ | |||
| if (res.mainImg){ | |||
| let supplyMasterMap = res.mainImg.split( "," ) | |||
| res.mainImg = '/api'+supplyMasterMap[0] | |||
| } | |||
| if(res.sysYesNo == 'Y'){ | |||
| this.productListYes.push(res); | |||
| } | |||
| if(res.sysYesNo == 'N'){ | |||
| this.productListNo.push(res); | |||
| } | |||
| this.productList.push(res); | |||
| }) | |||
| if(this.productList.length >= response.total){ | |||
| this.finished = true; | |||
| return; | |||
| }else{ | |||
| this.loading = false; | |||
| this.query.pageNum += 1 ; | |||
| } | |||
| }); | |||
| }, | |||
| productIn(id){ | |||
| productIn(id).then(response => { | |||
| this.$notify({ type: 'success', message: '上架成功' }); | |||
| location.reload() | |||
| }); | |||
| }, | |||
| productOut(id){ | |||
| productOut(id).then(response => { | |||
| this.$notify({ type: 'success', message: '下架成功' }); | |||
| location.reload() | |||
| }); | |||
| }, | |||
| //选择案件属地 | |||
| onConfirmDept({ selectedOptions }){ | |||
| this.query.deptId = selectedOptions[selectedOptions.length-1].value; | |||
| this.deptName = selectedOptions[selectedOptions.length-1].label; | |||
| this.showDeptId = false | |||
| this.productListYes = []; | |||
| this.productListNo = []; | |||
| this.getList(); | |||
| }, | |||
| }, | |||
| } | |||
| </script> | |||
| <style scoped lang="scss"> | |||
| .home_wrapper{ | |||
| background: #f9f9f9; | |||
| height: 100vh; | |||
| overflow: hidden; | |||
| } | |||
| /*头部*/ | |||
| .header{ | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: space-between; | |||
| background-image: linear-gradient(to right , #6E93F3 , #7E89E9 , #54C6E4); | |||
| padding: 2vh 4% 2vh; | |||
| .header_left{ | |||
| display: flex; | |||
| align-items: center; | |||
| p{ | |||
| font-size: .4rem; | |||
| color: #ffffff; | |||
| line-height: 1; | |||
| margin-left: 10PX; | |||
| } | |||
| } | |||
| .header_right{ | |||
| font-size: .35rem; | |||
| background: #334281; | |||
| padding: 2PX 10PX; | |||
| border-radius: 50PX; | |||
| /deep/ .van-checkbox__icon--checked .van-icon{ | |||
| color: #334281; | |||
| } | |||
| /deep/ .van-checkbox__label{ | |||
| color: #ffffff; | |||
| } | |||
| /deep/ .van-checkbox__icon .van-icon{ | |||
| width: .9em; | |||
| height: .9em; | |||
| line-height: .9em; | |||
| } | |||
| /deep/ .van-icon-success::before{ | |||
| width: .9em; | |||
| height: .9em; | |||
| } | |||
| /deep/ .van-checkbox__icon{ | |||
| height: auto; | |||
| } | |||
| } | |||
| } | |||
| .main_btn{ | |||
| display: flex; | |||
| background: #ffffff; | |||
| border-top-left-radius: 25PX; | |||
| border-top-right-radius: 25PX; | |||
| overflow: hidden; | |||
| padding: 4vw 4% 0; | |||
| justify-content: space-between; | |||
| .btn_box_01{ | |||
| width: 48%; | |||
| display: flex; | |||
| justify-content: center; | |||
| align-items: center; | |||
| border: 1Px dashed #4E7FFF; | |||
| color: #4E7FFF; | |||
| font-size: .35rem; | |||
| line-height: 15vw; | |||
| border-radius: 10Px; | |||
| p:first-child{ | |||
| font-weight: bold; | |||
| margin-right: 5PX; | |||
| } | |||
| } | |||
| .btn_box_02{ | |||
| width: 48%; | |||
| display: flex; | |||
| justify-content: center; | |||
| align-items: center; | |||
| background: rgba(78,127,255,0.17); | |||
| color: #1E49BB; | |||
| font-size: .35rem; | |||
| line-height: 15vw; | |||
| border-radius: 10Px; | |||
| p{ | |||
| margin-left: 5PX; | |||
| } | |||
| } | |||
| } | |||
| .serviceName{ | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: space-between; | |||
| span{ | |||
| background: #E8E8E8; | |||
| padding: 0 8PX; | |||
| border-radius: 5PX; | |||
| color: #7A7A7A; | |||
| margin-right: 5PX; | |||
| } | |||
| .active{ | |||
| background-image: linear-gradient(to right , #6E93F3 , #7E89E9 , #54C6E4); | |||
| color: #ffffff; | |||
| } | |||
| } | |||
| .nav{ | |||
| background-image: linear-gradient(to right , #6E93F3 , #7E89E9 , #54C6E4); | |||
| padding-bottom: 15PX; | |||
| .tt{ | |||
| font-size: .45rem; | |||
| color: #334281; | |||
| } | |||
| .content{ | |||
| background: #ffffff; | |||
| width: 92%; | |||
| margin: 0 auto; | |||
| box-shadow: 0px 0px 10PX rgba(0,0,0,0.1); | |||
| border-radius: 25PX; | |||
| padding: 1.5vh 4%; | |||
| } | |||
| /deep/ .van-cell{ | |||
| padding: 0; | |||
| margin-bottom: 10PX; | |||
| &:last-child{ | |||
| margin: 0; | |||
| } | |||
| } | |||
| } | |||
| /* 内容 */ | |||
| .main{ | |||
| background-image: linear-gradient(to right , #6E93F3 , #7E89E9 , #54C6E4); | |||
| /deep/ .van-tabs__nav{ | |||
| border-top-left-radius: 25PX; | |||
| border-top-right-radius: 25PX; | |||
| overflow: hidden; | |||
| background: #f9f9f9; | |||
| } | |||
| /deep/ .van-tabs__line{ | |||
| background: #334281!important; | |||
| } | |||
| /deep/ .van-tab--active{ | |||
| color: #334281; | |||
| } | |||
| /deep/ .van-tabs__content{ | |||
| background: #f9f9f9; | |||
| padding-top: 2vh; | |||
| } | |||
| .search{ | |||
| display: flex; | |||
| justify-content: space-between; | |||
| align-items: center; | |||
| width: 92%; | |||
| margin: 0PX auto; | |||
| border: 1px solid #6E93F3; | |||
| padding: 1PX 1PX 1PX 12PX ; | |||
| border-radius: 50PX; | |||
| input{ | |||
| flex: 1; | |||
| background: transparent; | |||
| margin-left: 10PX; | |||
| } | |||
| } | |||
| .content{ | |||
| width: 92%; | |||
| margin: 0 auto; | |||
| margin-top: 2vh; | |||
| .content_tt{ | |||
| font-size: .35rem; | |||
| } | |||
| .content_con{ | |||
| display: flex; | |||
| justify-content: space-between; | |||
| margin-top: 1.5vh; | |||
| .content_con_left{ | |||
| display: flex; | |||
| flex-direction:column; | |||
| justify-content: space-between; | |||
| p{ | |||
| font-size: .35rem; | |||
| padding-left: 18PX; | |||
| &:nth-child(1){ | |||
| background: url("../../../../static/images/agriculturalTrusteeship/insurance/insurance_list_project.png") no-repeat left center; | |||
| } | |||
| &:nth-child(2){ | |||
| background: url("../../../../static/images/agriculturalTrusteeship/insurance/insurance_list_name.png") no-repeat left center; | |||
| } | |||
| &:nth-child(3){ | |||
| background: url("../../../../static/images/agriculturalTrusteeship/insurance/insurance_list_iphone.png") no-repeat left center; | |||
| } | |||
| } | |||
| } | |||
| .content_con_right{ | |||
| display: flex; | |||
| justify-content: end; | |||
| align-items: center; | |||
| img{ | |||
| border-radius: 10PX; | |||
| width: 40%; | |||
| margin-left: 5%; | |||
| box-shadow: 0px 5PX 10PX rgba(0,0,0,0.2); | |||
| &:last-child{ | |||
| width: auto; | |||
| box-shadow: none; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| .main_content_right_list{ | |||
| margin: 0 auto; | |||
| margin-bottom: 2vh; | |||
| width: 92%; | |||
| background: #ffffff; | |||
| padding: 15PX 3%; | |||
| border-radius: 10Px; | |||
| box-shadow: 0px 5PX 10PX rgba(0,0,0,0.1); | |||
| .main_tit{ | |||
| font-size: .38rem; | |||
| display: flex; | |||
| align-items: center; | |||
| i{ | |||
| display: block; | |||
| width: 16PX; | |||
| height: 16PX; | |||
| margin-right: 5PX; | |||
| flex-shrink: 0; | |||
| background: url("../../../../static/images/agriculturalTrusteeship/insurance/shop_needs_icon.png"); | |||
| } | |||
| p{ | |||
| display: -webkit-box; | |||
| -webkit-box-orient: vertical; | |||
| -webkit-line-clamp: 1; | |||
| word-break: break-all; | |||
| overflow: hidden; | |||
| } | |||
| } | |||
| .main_money{ | |||
| display: flex; | |||
| justify-content: space-between; | |||
| margin-top: 5PX; | |||
| p{ | |||
| &:nth-child(1){ | |||
| color: #FF5E00; | |||
| font-size: .4rem; | |||
| span{ | |||
| font-size: .3rem; | |||
| } | |||
| } | |||
| &:nth-child(2){ | |||
| color: #8B8B8B; | |||
| font-size: .35rem; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @@ -0,0 +1,442 @@ | |||
| <template> | |||
| <div class="home_wrapper"> | |||
| <!-- 头部开始 --> | |||
| <div class="header"> | |||
| <div class="header_left" @click="onClickLeft"> | |||
| <img src="../../../../static/images/agriculturalTrusteeship/return.png"> | |||
| <p>需求详情</p> | |||
| </div> | |||
| </div> | |||
| <!-- 头部结束 --> | |||
| <!-- 内容开始 --> | |||
| <div class="main"> | |||
| <div class="main_content_right_list"> | |||
| <div class="main_tit"> | |||
| <i></i> | |||
| <p>家家加加加加加加加就爱简爱家合作社</p> | |||
| </div> | |||
| <p class="main_content">村口需要水牛石头诚招水牛贷款联系电话165822本人人品优良绝不拖欠还款。</p> | |||
| <div class="main_money"> | |||
| <p><span>需求金额</span><span>¥</span>512,000.00</p> | |||
| </div> | |||
| <van-divider /> | |||
| <van-field | |||
| readonly | |||
| label="负责人" | |||
| input-align="right" | |||
| :border="false" | |||
| placeholder="负责人" | |||
| /> | |||
| <van-field | |||
| readonly | |||
| label="联系方式" | |||
| input-align="right" | |||
| :border="false" | |||
| placeholder="联系方式" | |||
| /> | |||
| <van-field | |||
| readonly | |||
| label="地址" | |||
| input-align="right" | |||
| :border="false" | |||
| placeholder="地址" | |||
| /> | |||
| </div> | |||
| <div class="main_content_right_list2" v-for="(item,index) in 5" :key="index" @click="$router.push({name:'agriculturalTrusteeshipShopNeedsList'})"> | |||
| <div class="main_tit"> | |||
| <p>家家加加加加加加加就爱简爱家合作社</p> | |||
| <span>(1/10)</span> | |||
| </div> | |||
| <div class="main_content"> | |||
| <p>玉米</p> | |||
| <p>32022亩</p> | |||
| </div> | |||
| <div class="main_money"> | |||
| <p><i></i>丰田村</p> | |||
| <p><i></i>2023.03.15-2024.09.15</p> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <!-- 内容结束 --> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import Cookies from "js-cookie"; | |||
| import {productList, productOut, productIn, serviceGet, treeselect} from "@/api/agriculturalTrusteeship"; | |||
| export default { | |||
| name: "shopOrganizationDetail", | |||
| data() { | |||
| return { | |||
| }; | |||
| }, | |||
| created() { | |||
| }, | |||
| methods: { | |||
| }, | |||
| } | |||
| </script> | |||
| <style scoped lang="scss"> | |||
| .home_wrapper{ | |||
| background: #f9f9f9; | |||
| height: 100vh; | |||
| overflow: hidden; | |||
| } | |||
| /*头部*/ | |||
| .header{ | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: space-between; | |||
| background-image: linear-gradient(to right , #6E93F3 , #7E89E9 , #54C6E4); | |||
| padding: 2vh 4% 2vh; | |||
| .header_left{ | |||
| display: flex; | |||
| align-items: center; | |||
| p{ | |||
| font-size: .4rem; | |||
| color: #ffffff; | |||
| line-height: 1; | |||
| margin-left: 10PX; | |||
| } | |||
| } | |||
| .header_right{ | |||
| font-size: .35rem; | |||
| background: #334281; | |||
| padding: 2PX 10PX; | |||
| border-radius: 50PX; | |||
| /deep/ .van-checkbox__icon--checked .van-icon{ | |||
| color: #334281; | |||
| } | |||
| /deep/ .van-checkbox__label{ | |||
| color: #ffffff; | |||
| } | |||
| /deep/ .van-checkbox__icon .van-icon{ | |||
| width: .9em; | |||
| height: .9em; | |||
| line-height: .9em; | |||
| } | |||
| /deep/ .van-icon-success::before{ | |||
| width: .9em; | |||
| height: .9em; | |||
| } | |||
| /deep/ .van-checkbox__icon{ | |||
| height: auto; | |||
| } | |||
| } | |||
| } | |||
| .main_btn{ | |||
| display: flex; | |||
| background: #ffffff; | |||
| border-top-left-radius: 25PX; | |||
| border-top-right-radius: 25PX; | |||
| overflow: hidden; | |||
| padding: 4vw 4% 0; | |||
| justify-content: space-between; | |||
| .btn_box_01{ | |||
| width: 48%; | |||
| display: flex; | |||
| justify-content: center; | |||
| align-items: center; | |||
| border: 1Px dashed #4E7FFF; | |||
| color: #4E7FFF; | |||
| font-size: .35rem; | |||
| line-height: 15vw; | |||
| border-radius: 10Px; | |||
| p:first-child{ | |||
| font-weight: bold; | |||
| margin-right: 5PX; | |||
| } | |||
| } | |||
| .btn_box_02{ | |||
| width: 48%; | |||
| display: flex; | |||
| justify-content: center; | |||
| align-items: center; | |||
| background: rgba(78,127,255,0.17); | |||
| color: #1E49BB; | |||
| font-size: .35rem; | |||
| line-height: 15vw; | |||
| border-radius: 10Px; | |||
| p{ | |||
| margin-left: 5PX; | |||
| } | |||
| } | |||
| } | |||
| .serviceName{ | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: space-between; | |||
| span{ | |||
| background: #E8E8E8; | |||
| padding: 0 8PX; | |||
| border-radius: 5PX; | |||
| color: #7A7A7A; | |||
| margin-right: 5PX; | |||
| } | |||
| .active{ | |||
| background-image: linear-gradient(to right , #6E93F3 , #7E89E9 , #54C6E4); | |||
| color: #ffffff; | |||
| } | |||
| } | |||
| .nav{ | |||
| background-image: linear-gradient(to right , #6E93F3 , #7E89E9 , #54C6E4); | |||
| padding-bottom: 15PX; | |||
| .tt{ | |||
| font-size: .45rem; | |||
| color: #334281; | |||
| } | |||
| .content{ | |||
| background: #ffffff; | |||
| width: 92%; | |||
| margin: 0 auto; | |||
| box-shadow: 0px 0px 10PX rgba(0,0,0,0.1); | |||
| border-radius: 25PX; | |||
| padding: 1.5vh 4%; | |||
| } | |||
| /deep/ .van-cell{ | |||
| padding: 0; | |||
| margin-bottom: 10PX; | |||
| &:last-child{ | |||
| margin: 0; | |||
| } | |||
| } | |||
| } | |||
| /* 内容 */ | |||
| .main{ | |||
| background-image: linear-gradient(to right , #6E93F3 , #7E89E9 , #54C6E4); | |||
| background-size: 100% 20PX; | |||
| background-repeat: no-repeat; | |||
| /deep/ .van-tabs__nav{ | |||
| border-top-left-radius: 25PX; | |||
| border-top-right-radius: 25PX; | |||
| overflow: hidden; | |||
| background: #f9f9f9; | |||
| } | |||
| /deep/ .van-tabs__line{ | |||
| background: #334281!important; | |||
| } | |||
| /deep/ .van-tab--active{ | |||
| color: #334281; | |||
| } | |||
| /deep/ .van-tabs__content{ | |||
| background: #f9f9f9; | |||
| padding-top: 2vh; | |||
| } | |||
| .search{ | |||
| display: flex; | |||
| justify-content: space-between; | |||
| align-items: center; | |||
| width: 92%; | |||
| margin: 0PX auto; | |||
| border: 1px solid #6E93F3; | |||
| padding: 1PX 1PX 1PX 12PX ; | |||
| border-radius: 50PX; | |||
| input{ | |||
| flex: 1; | |||
| background: transparent; | |||
| margin-left: 10PX; | |||
| } | |||
| } | |||
| .content{ | |||
| width: 92%; | |||
| margin: 0 auto; | |||
| margin-top: 2vh; | |||
| .content_tt{ | |||
| font-size: .35rem; | |||
| } | |||
| .content_con{ | |||
| display: flex; | |||
| justify-content: space-between; | |||
| margin-top: 1.5vh; | |||
| .content_con_left{ | |||
| display: flex; | |||
| flex-direction:column; | |||
| justify-content: space-between; | |||
| p{ | |||
| font-size: .35rem; | |||
| padding-left: 18PX; | |||
| &:nth-child(1){ | |||
| background: url("../../../../static/images/agriculturalTrusteeship/insurance/insurance_list_project.png") no-repeat left center; | |||
| } | |||
| &:nth-child(2){ | |||
| background: url("../../../../static/images/agriculturalTrusteeship/insurance/insurance_list_name.png") no-repeat left center; | |||
| } | |||
| &:nth-child(3){ | |||
| background: url("../../../../static/images/agriculturalTrusteeship/insurance/insurance_list_iphone.png") no-repeat left center; | |||
| } | |||
| } | |||
| } | |||
| .content_con_right{ | |||
| display: flex; | |||
| justify-content: end; | |||
| align-items: center; | |||
| img{ | |||
| border-radius: 10PX; | |||
| width: 40%; | |||
| margin-left: 5%; | |||
| box-shadow: 0px 5PX 10PX rgba(0,0,0,0.2); | |||
| &:last-child{ | |||
| width: auto; | |||
| box-shadow: none; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| .main_content_right_list{ | |||
| margin: 0 auto; | |||
| margin-bottom: 2vh; | |||
| width: 92%; | |||
| background: #ffffff; | |||
| padding: 15PX 3%; | |||
| border-radius: 10Px; | |||
| box-shadow: 0px 5PX 10PX rgba(0,0,0,0.1); | |||
| text-align: center; | |||
| /deep/ .van-cell{ | |||
| padding: 0; | |||
| margin-bottom: 10PX; | |||
| &:last-child{ | |||
| margin: 0; | |||
| } | |||
| } | |||
| .main_content{ | |||
| font-size: .35rem; | |||
| line-height: .7rem; | |||
| margin-top: 10PX; | |||
| text-align: left; | |||
| } | |||
| .main_tit{ | |||
| color: #4E7FFF; | |||
| font-size: .38rem; | |||
| display: flex; | |||
| align-items: center; | |||
| i{ | |||
| display: block; | |||
| width: 16PX; | |||
| height: 16PX; | |||
| margin-right: 5PX; | |||
| flex-shrink: 0; | |||
| background: url("../../../../static/images/agriculturalTrusteeship/insurance/shop_needs_icon01.png"); | |||
| } | |||
| p{ | |||
| display: -webkit-box; | |||
| -webkit-box-orient: vertical; | |||
| -webkit-line-clamp: 1; | |||
| word-break: break-all; | |||
| overflow: hidden; | |||
| } | |||
| span{ | |||
| font-size: .3rem; | |||
| color: #8B8B8B; | |||
| flex-shrink: 0; | |||
| } | |||
| } | |||
| .main_money{ | |||
| background: rgba(255,94,0,0.15); | |||
| display: inline-block; | |||
| padding: 5PX 15PX; | |||
| border-radius: 8PX; | |||
| margin: 10PX auto; | |||
| p{ | |||
| &:nth-child(1){ | |||
| color: #FF5E00; | |||
| font-size: .4rem; | |||
| span{ | |||
| font-size: .3rem; | |||
| } | |||
| } | |||
| &:nth-child(2){ | |||
| color: #8B8B8B; | |||
| font-size: .35rem; | |||
| } | |||
| } | |||
| span:nth-child(1){ | |||
| margin-right: 5PX; | |||
| } | |||
| } | |||
| } | |||
| .main_content_right_list2{ | |||
| margin: 0 auto; | |||
| margin-bottom: 2vh; | |||
| width: 92%; | |||
| background: #ffffff; | |||
| padding: 15PX 3%; | |||
| border-radius: 10Px; | |||
| box-shadow: 0px 5PX 10PX rgba(0,0,0,0.1); | |||
| .main_tit{ | |||
| font-size: .38rem; | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: space-between; | |||
| p{ | |||
| display: -webkit-box; | |||
| -webkit-box-orient: vertical; | |||
| -webkit-line-clamp: 1; | |||
| word-break: break-all; | |||
| overflow: hidden; | |||
| } | |||
| span{ | |||
| font-size: .3rem; | |||
| color: #8B8B8B; | |||
| flex-shrink: 0; | |||
| } | |||
| } | |||
| .main_money{ | |||
| display: flex; | |||
| justify-content: space-between; | |||
| margin-top: 10PX; | |||
| p{ | |||
| font-size: .35rem; | |||
| color: #8B8B8B; | |||
| display: flex; | |||
| align-items: center; | |||
| &:nth-child(1){ | |||
| i{ | |||
| display: inline-block; | |||
| width: 11PX; | |||
| height: 13Px; | |||
| margin-right: 2PX; | |||
| background: url("../../../../static/images/agriculturalTrusteeship/insurance/shop_needs_icon02.png"); | |||
| } | |||
| } | |||
| &:nth-child(2){ | |||
| i{ | |||
| display: inline-block; | |||
| width: 13PX; | |||
| height: 13Px; | |||
| margin-right: 2PX; | |||
| background: url("../../../../static/images/agriculturalTrusteeship/insurance/shop_needs_icon03.png"); | |||
| } | |||
| } | |||
| } | |||
| } | |||
| .main_content{ | |||
| font-size: .35rem; | |||
| line-height: .6rem; | |||
| margin-top: 10PX; | |||
| display: flex; | |||
| justify-content: space-between; | |||
| p{ | |||
| color: #4E7FFF; | |||
| &:nth-child(1){ | |||
| background: rgba(78,127,255,0.13); | |||
| padding: 0 15PX; | |||
| border-radius: 5PX; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @@ -24,7 +24,7 @@ | |||
| </van-cell> | |||
| </van-list> | |||
| </van-tab> | |||
| <van-tab title="选项"> | |||
| <van-tab> | |||
| <template #title><van-icon name="records" size="18" style="top: 4px"/>鉴证公告</template> | |||
| <van-list | |||
| v-model="attestationLoading" | |||
| @@ -40,12 +40,44 @@ | |||
| </van-cell> | |||
| </van-list> | |||
| </van-tab> | |||
| <van-tab> | |||
| <template #title><van-icon name="description" size="18" style="top: 4px"/>招标公告</template> | |||
| <van-list | |||
| v-model="inviteTendersLoading" | |||
| :finished="inviteTendersFinished" | |||
| finished-text="没有更多了" | |||
| style="margin-top: 10px;" | |||
| @load="getinviteTendersList" | |||
| > | |||
| <van-cell v-for="(item,index) in inviteTendersList" :key="index" icon="play" :title="item.projectName" :to="{name:'inviteTendersDetail', query: {id:item.id}}"> | |||
| <template #label> | |||
| 招标方:{{item.tenderName}} <p style="float: right;">{{item.logintime}}</p> | |||
| </template> | |||
| </van-cell> | |||
| </van-list> | |||
| </van-tab> | |||
| <van-tab> | |||
| <template #title><van-icon name="completed" size="18" style="top: 4px"/>中标公告</template> | |||
| <van-list | |||
| v-model="winTheBiddingLoading" | |||
| :finished="winTheBiddingFinished" | |||
| finished-text="没有更多了" | |||
| style="margin-top: 10px;" | |||
| @load="getwinTheBiddingList" | |||
| > | |||
| <van-cell v-for="(item,index) in winTheBiddingList" :key="index" icon="play" :title="item.projectName" :to="{name:'winTheBiddingDetail', query: {id:item.id}}"> | |||
| <template #label> | |||
| 招标方:{{item.tenderName}} <p style="float: right;">{{item.dealTime}}</p> | |||
| </template> | |||
| </van-cell> | |||
| </van-list> | |||
| </van-tab> | |||
| </van-tabs> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { noticeList , Attestation } from "@/api/notice/index"; | |||
| import { noticeList , Attestation , tenderList , winList } from "@/api/notice/index"; | |||
| export default { | |||
| name: "notice", | |||
| data() { | |||
| @@ -58,8 +90,20 @@ export default { | |||
| attestationLoading: false, | |||
| //是否滚动到底部 | |||
| attestationFinished: false, | |||
| //是否显示加载 | |||
| inviteTendersLoading: false, | |||
| //是否滚动到底部 | |||
| inviteTendersFinished: false, | |||
| //是否显示加载 | |||
| winTheBiddingLoading: false, | |||
| //是否滚动到底部 | |||
| winTheBiddingFinished: false, | |||
| //成交公告集合 | |||
| noticeList:[], | |||
| //招标公告集合 | |||
| inviteTendersList:[], | |||
| //中标公告集合 | |||
| winTheBiddingList:[], | |||
| //鉴证公告集合 | |||
| attestationList:[], | |||
| //成交公告查询参数 | |||
| @@ -68,6 +112,18 @@ export default { | |||
| pageNum:1, | |||
| pageSize:10 | |||
| }, | |||
| //招标公告查询参数 | |||
| inviteTendersQueryParams: { | |||
| deptId:100, | |||
| pageNum:1, | |||
| pageSize:10 | |||
| }, | |||
| //招标公告查询参数 | |||
| winTheBiddingQueryParams: { | |||
| deptId:100, | |||
| pageNum:1, | |||
| pageSize:10 | |||
| }, | |||
| //鉴证公告查询参数 | |||
| attestationQueryParams: { | |||
| deptId:100, | |||
| @@ -107,6 +163,32 @@ export default { | |||
| this.attestationLoading = false; | |||
| }); | |||
| }, | |||
| //招标公告集合 | |||
| getinviteTendersList(){ | |||
| this.inviteTendersLoading = true; | |||
| tenderList(this.inviteTendersQueryParams).then(response => { | |||
| this.inviteTendersList = response.rows; | |||
| if(this.inviteTendersList.length >= response.total){ | |||
| this.inviteTendersFinished = true; | |||
| return; | |||
| } | |||
| this.inviteTendersQueryParams.pageNum += 1 ; | |||
| this.inviteTendersLoading = false; | |||
| }); | |||
| }, | |||
| //招标公告集合 | |||
| getwinTheBiddingList(){ | |||
| this.winTheBiddingLoading = true; | |||
| winList(this.winTheBiddingQueryParams).then(response => { | |||
| this.winTheBiddingList = response.rows; | |||
| if(this.winTheBiddingList.length >= response.total){ | |||
| this.winTheBiddingFinished = true; | |||
| return; | |||
| } | |||
| this.winTheBiddingQueryParams.pageNum += 1 ; | |||
| this.winTheBiddingLoading = false; | |||
| }); | |||
| }, | |||
| }, | |||
| }; | |||
| </script> | |||
| @@ -0,0 +1,111 @@ | |||
| <template> | |||
| <div class="app-container"> | |||
| <van-nav-bar | |||
| title="招标公告" | |||
| left-arrow | |||
| fixed | |||
| placeholder | |||
| @click-left="onClickLeft" | |||
| /> | |||
| <p class="title">{{attestationDetail.projectName}}</p> | |||
| <van-row> | |||
| <van-col>招标方名称:{{attestationDetail.tenderName}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>资金来源:{{attestationDetail.moneySource}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>招标代理公司:{{attestationDetail.agentName}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>联系人:{{attestationDetail.linkman}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>联系电话:{{attestationDetail.linkphone}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>联系地址:{{attestationDetail.linkaddress}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>招标方意见:{{attestationDetail.tenderOpinion}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>代理公司意见:{{attestationDetail.agentOpinion}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>建设地点:{{attestationDetail.address}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>建设工期:{{attestationDetail.timeLimit}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>项目规模:{{attestationDetail.scale}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>招标内容:{{attestationDetail.tenderContent}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>投标人要求:{{attestationDetail.condition}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>保证金:{{attestationDetail.deposit}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>招标文件价格(元):{{attestationDetail.price}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>招标发布日期:{{attestationDetail.logintime}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>招标书领取开始日期:{{attestationDetail.startTime}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>招标书领取结束日期:{{attestationDetail.stopTime}}</van-col> | |||
| </van-row> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { tenderDetail } from "@/api/notice/index"; | |||
| export default { | |||
| name: "noticeDetail", | |||
| data() { | |||
| return { | |||
| attestationDetail:'' | |||
| }; | |||
| }, | |||
| created() { | |||
| this.getDetail(); | |||
| }, | |||
| methods: { | |||
| //成交公告集合 | |||
| getDetail(){ | |||
| tenderDetail(this.$route.query.id,{translate_dict:1}).then(response => { | |||
| this.attestationDetail = response.data; | |||
| // //公司性质字典 | |||
| // this.getDicts("company_nature").then(res => { | |||
| // this.attestationDetail.companyNature = this.selectDictLabel(res.data,response.data.companyNature); | |||
| // }); | |||
| }); | |||
| }, | |||
| }, | |||
| }; | |||
| </script> | |||
| <style scoped lang="scss"> | |||
| .app-container { | |||
| padding: 0.5rem 5%; | |||
| } | |||
| .title{ | |||
| font-size: 0.5rem; | |||
| margin-bottom: 0.5rem; | |||
| } | |||
| .van-row{ | |||
| margin-bottom: 0.4rem; | |||
| } | |||
| .van-col{ | |||
| font-size: 0.4rem; | |||
| color: #666666; | |||
| } | |||
| </style> | |||
| @@ -0,0 +1,78 @@ | |||
| <template> | |||
| <div class="app-container"> | |||
| <van-nav-bar | |||
| title="中标公告" | |||
| left-arrow | |||
| fixed | |||
| placeholder | |||
| @click-left="onClickLeft" | |||
| /> | |||
| <p class="title">{{attestationDetail.projectName}}</p> | |||
| <van-row> | |||
| <van-col>招标方名称:{{attestationDetail.tenderName}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>中标人:{{attestationDetail.assignee}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>建设单位:{{attestationDetail.bulidPart}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>项目负责人:{{attestationDetail.partLinkman}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>中标价格:{{attestationDetail.transactionPrice}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>中标日期:{{attestationDetail.dealTime}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>公示开始日期:{{attestationDetail.startTime}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>公示结束日期:{{attestationDetail.stopTime}}</van-col> | |||
| </van-row> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { tenderWinDetail } from "@/api/notice/index"; | |||
| export default { | |||
| name: "noticeDetail", | |||
| data() { | |||
| return { | |||
| attestationDetail:'' | |||
| }; | |||
| }, | |||
| created() { | |||
| this.getDetail(); | |||
| }, | |||
| methods: { | |||
| //成交公告集合 | |||
| getDetail(){ | |||
| console.log(this.$route.query.id) | |||
| tenderWinDetail(this.$route.query.id,{translate_dict:1}).then(response => { | |||
| this.attestationDetail = response.data; | |||
| }); | |||
| }, | |||
| }, | |||
| }; | |||
| </script> | |||
| <style scoped lang="scss"> | |||
| .app-container { | |||
| padding: 0.5rem 5%; | |||
| } | |||
| .title{ | |||
| font-size: 0.5rem; | |||
| margin-bottom: 0.5rem; | |||
| } | |||
| .van-row{ | |||
| margin-bottom: 0.4rem; | |||
| } | |||
| .van-col{ | |||
| font-size: 0.4rem; | |||
| color: #666666; | |||
| } | |||
| </style> | |||
| @@ -50,10 +50,10 @@ | |||
| </van-dropdown-item> | |||
| </van-dropdown-menu> | |||
| <van-list v-model="loading1" :finished="finished1" @load="getNeedProjectList" finished-text="没有更多了"> | |||
| <router-link :to="{path:'project/projectDetail',query:{id:item.id}}" v-for="(item,index) in infoList1" :key="index"> | |||
| <router-link :to="{path:'project/projectNeedsDetail',query:{id:item.id}}" v-for="(item,index) in infoList1" :key="index"> | |||
| <van-card :thumb="item.fileUrl?'/api'+item.fileUrl:'../../static/images/zwtpxw.jpg'" > | |||
| <template #tags> | |||
| <p class="title">{{item.projectName}}</p> | |||
| <p class="title">{{ item.projectName }}</p> | |||
| <p class="type">{{ item.needname }}</p> | |||
| <p class="timeEnd">需求开始时间 {{ item.needStartTime }}</p> | |||
| <p class="timeEnd">需求结束时间 {{ item.needStopTime }}</p> | |||
| @@ -67,11 +67,14 @@ | |||
| <van-row> | |||
| <van-col span="24"><span>竞价方式:</span>{{ detail.biddingType }}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col span="24"><span>竞价方向:</span>{{ detail.biddingDirect }}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col span="24"><span>阶梯价(加价幅度):</span>{{ detail.ladderPrice }}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col span="24"><span>延时周期:</span>2分钟报名<van-icon name="question" size="15" style="top: 3px;left: 5px;" color="#CDCDCD"/></van-col> | |||
| <van-col span="24"><span>延时周期:</span>2分钟<van-icon name="question" size="15" style="top: 3px;left: 5px;" color="#CDCDCD"/></van-col> | |||
| </van-row> | |||
| </div> | |||
| </van-tab> | |||
| @@ -336,6 +339,9 @@ export default { | |||
| this.getDicts("bidding_type").then(res => { | |||
| this.detail.biddingType = this.selectDictLabel(res.data,response.data.biddingType); | |||
| }); | |||
| this.getDicts("bidding_direct").then(res => { | |||
| this.detail.biddingDirect = this.selectDictLabel(res.data,response.data.biddingDirect); | |||
| }); | |||
| for(let i of this.detail.subjectList){ | |||
| this.getDicts("area_unit").then(res => { | |||
| i.areaUnit = this.selectDictLabel(res.data,i.areaUnit); | |||
| @@ -346,6 +352,12 @@ export default { | |||
| let signupStartTime = Date.parse(this.detail.signupStartTime)+0 | |||
| let signupStopTime = Date.parse(this.detail.signupStopTime)+0 | |||
| let nowDate = Date.parse(new Date()); | |||
| console.log('biddingStartTime'+biddingStartTime) | |||
| console.log('biddingStopTime'+biddingStopTime) | |||
| console.log('signupStartTime'+signupStartTime) | |||
| console.log('signupStopTime'+signupStopTime) | |||
| if(signupStartTime>nowDate){ | |||
| this.process= "报名未开始" | |||
| this.tip=this.detail.signupStartTime+"开始报名" | |||
| @@ -474,6 +486,11 @@ export default { | |||
| }) | |||
| }, | |||
| add(){ | |||
| if (this.detail.biddingDirect == '反向竞价'){ | |||
| if(this.detail.price<this.price){ | |||
| return; | |||
| } | |||
| } | |||
| this.detail.ladderPrice?this.price=this.price+this.detail.ladderPrice:this.price+=1 | |||
| }, | |||
| sub(){ | |||
| @@ -0,0 +1,115 @@ | |||
| <template> | |||
| <div class="app-container"> | |||
| <van-nav-bar | |||
| title="需求项目" | |||
| left-arrow | |||
| fixed | |||
| placeholder | |||
| @click-left="onClickLeft" | |||
| /> | |||
| <p class="title">{{noticeDetail.projectName}}</p> | |||
| <van-row> | |||
| <van-col>需求项目类别:{{noticeDetail.projectNumber}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>需求价格描述:{{noticeDetail.price}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>需求方名称:{{noticeDetail.needname}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>需求方地址:{{noticeDetail.address}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>单位性质:{{noticeDetail.company}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>单位法人:{{noticeDetail.legalPerson}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>联系人:{{noticeDetail.realname}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>联系电话:{{noticeDetail.phone}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>身份证号:{{noticeDetail.idCardNum}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>邮箱:{{noticeDetail.email}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>需求开始时间:{{noticeDetail.needStartTime}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>需求结束时间:{{noticeDetail.needStopTime}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>用途与经营描述:{{noticeDetail.description}}</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col>附件图片:</van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col><img :src="'/api'+item.fileUrl" v-for="(item , index) in noticeDetail.attachments" alt="" width="100%"></van-col> | |||
| </van-row> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { needProject } from "@/api/notice/index"; | |||
| export default { | |||
| name: "noticeDetail", | |||
| data() { | |||
| return { | |||
| noticeDetail:'' | |||
| }; | |||
| }, | |||
| created() { | |||
| this.getDetail(); | |||
| }, | |||
| methods: { | |||
| //成交公告集合 | |||
| getDetail(){ | |||
| needProject(this.$route.query.id,{translate_dict:1}).then(response => { | |||
| this.noticeDetail = response.data; | |||
| //转出方式字典 | |||
| // this.getDicts("rollout_type").then(res => { | |||
| // this.noticeDetail.rollout = this.selectDictLabel(res.data,response.data.rollout); | |||
| // }); | |||
| // //交易方式字典 | |||
| // this.getDicts("deal_type").then(res => { | |||
| // this.noticeDetail.dealType = this.selectDictLabel(res.data,response.data.dealType); | |||
| // }); | |||
| // //面积单位字典 | |||
| // this.getDicts("area_unit").then(res => { | |||
| // this.noticeDetail.allCountUnit = this.selectDictLabel(res.data,response.data.allCountUnit); | |||
| // }); | |||
| // //成交价格字典 | |||
| // this.getDicts("price_unit").then(res => { | |||
| // this.noticeDetail.unit = this.selectDictLabel(res.data,response.data.unit); | |||
| // }); | |||
| }); | |||
| }, | |||
| }, | |||
| }; | |||
| </script> | |||
| <style scoped lang="scss"> | |||
| .app-container { | |||
| padding: 0.5rem 5%; | |||
| } | |||
| .title{ | |||
| font-size: 0.5rem; | |||
| margin-bottom: 0.5rem; | |||
| } | |||
| .van-row{ | |||
| margin-bottom: 0.4rem; | |||
| } | |||
| .van-col{ | |||
| font-size: 0.4rem; | |||
| color: #666666; | |||
| } | |||
| </style> | |||
| @@ -36,17 +36,22 @@ | |||
| <template #right> | |||
| <div class="operation"> | |||
| <!-- delete 删除 edit编辑 view查看 list榜单 --> | |||
| <div class="opera_btn" style="margin-right: 10px;" v-if="!item.firstSigning" @click="openPopup(item.id)"> | |||
| <div class="opera_btn" style="margin-right: 10px;" v-if="item.signingMode == '线上' && item.firstIsSign =='否' " @click="openPopup(item.id)"> | |||
| <img src="../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="35"> | |||
| <p>签名</p> | |||
| </div> | |||
| <div class="opera_btn" style="margin-right: 10px;"> | |||
| <div class="opera_btn" style="margin-right: 10px;" v-if="item.signingMode == '线上' && item.attachement != null "> | |||
| <img src="../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35"> | |||
| <p>预览</p> | |||
| </div> | |||
| <div class="opera_btn"> | |||
| <div class="opera_btn" v-if="item.signingMode == '线上' && item.isArchive == '是' "> | |||
| <img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | |||
| <p>电子合同</p> | |||
| </div> | |||
| <div class="opera_btn" v-if="item.signingMode == '线下' "> | |||
| <img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | |||
| <p>下载</p> | |||
| <p>线下合同</p> | |||
| </div> | |||
| </div> | |||
| </template> | |||
| @@ -20,11 +20,11 @@ | |||
| <div class="item" @click="goDetail(item.id)"> | |||
| <div class="info"> | |||
| <div class="title"> | |||
| <i class="icon_box" v-if="item.firstSigning==null"></i> | |||
| <i class="icon_box1" v-if="item.firstSigning!=null"></i> | |||
| <p class="news_title" :style="{'color': item.firstSigning!=null?'#2bc30c':'#eb1616'}">{{item.contractCode}}</p> | |||
| <p class="tips_mark" :style="{'color': item.firstSigning!=null?'#79bc29':'#f8a83d','background': item.firstSigning!=null?'#e8ffcd':'#ffedcd'}">{{item.signingMode}}</p> | |||
| <p class="tips_mark2" :style="{'background': item.firstSigning!=null?'#2bc30c':'#eb1616'}">{{item.signingStatus}}</p> | |||
| <i class="icon_box" v-if="item.secondSigning==null"></i> | |||
| <i class="icon_box1" v-if="item.secondSigning!=null"></i> | |||
| <p class="news_title" :style="{'color': item.secondSigning!=null?'#2bc30c':'#eb1616'}">{{item.contractCode}}</p> | |||
| <p class="tips_mark" :style="{'color': item.secondSigning!=null?'#79bc29':'#f8a83d','background': item.secondSigning!=null?'#e8ffcd':'#ffedcd'}">{{item.signingMode}}</p> | |||
| <p class="tips_mark2" :style="{'background': item.secondSigning!=null?'#2bc30c':'#eb1616'}">{{item.signingStatus}}</p> | |||
| </div> | |||
| <div class="time"> | |||
| <p>{{item.contractName}}</p> | |||
| @@ -35,17 +35,21 @@ | |||
| <template #right> | |||
| <div class="operation"> | |||
| <!-- delete 删除 edit编辑 view查看 list榜单 --> | |||
| <div class="opera_btn" style="margin-right: 10px;" v-if="!item.firstSigning" @click="openPopup(item.id)"> | |||
| <div class="opera_btn" style="margin-right: 10px;" v-if="item.signingMode == '线上' && item.secondIsSign =='否' " @click="openPopup(item.id)"> | |||
| <img src="../../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="35"> | |||
| <p>签名</p> | |||
| </div> | |||
| <div class="opera_btn" style="margin-right: 10px;"> | |||
| <div class="opera_btn" style="margin-right: 10px;" v-if="item.signingMode == '线上' && item.attachement != null "> | |||
| <img src="../../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35"> | |||
| <p>预览</p> | |||
| </div> | |||
| <div class="opera_btn"> | |||
| <div class="opera_btn" v-if="item.signingMode == '线上' && item.isArchive == '是' "> | |||
| <img src="../../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | |||
| <p>下载</p> | |||
| <p>电子合同</p> | |||
| </div> | |||
| <div class="opera_btn" v-if="item.signingMode == '线下' "> | |||
| <img src="../../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | |||
| <p>线下合同</p> | |||
| </div> | |||
| </div> | |||
| </template> | |||