Ver a proveniência

Merge remote-tracking branch 'origin/master'

rongxin_prod
Xyq123* há 2 anos
ascendente
cometimento
6513b6cac8
22 ficheiros alterados com 1867 adições e 25 eliminações
  1. +45
    -0
      src/api/notice/index.js
  2. +7
    -0
      src/permission.js
  3. +54
    -0
      src/router/index.js
  4. +394
    -0
      src/views/agriculturalTrusteeship/shop/shopDepositDetail.vue
  5. +79
    -7
      src/views/agriculturalTrusteeship/shop/shopList.vue
  6. +416
    -0
      src/views/agriculturalTrusteeship/shop/shopNeedsList.vue
  7. +442
    -0
      src/views/agriculturalTrusteeship/shop/shopOrganizationDetail.vue
  8. +84
    -2
      src/views/notice/index.vue
  9. +111
    -0
      src/views/notice/inviteTendersDetail.vue
  10. +78
    -0
      src/views/notice/winTheBiddingDetail.vue
  11. +2
    -2
      src/views/project/index.vue
  12. +18
    -1
      src/views/project/projectDetail.vue
  13. +115
    -0
      src/views/project/projectNeedsDetail.vue
  14. +9
    -4
      src/views/sunVillage_info/list_signature.vue
  15. +13
    -9
      src/views/user/signature/signatureList.vue
  16. BIN
      static/images/agriculturalTrusteeship/insurance/shop_icon_add2.png
  17. BIN
      static/images/agriculturalTrusteeship/insurance/shop_icon_see.png
  18. BIN
      static/images/agriculturalTrusteeship/insurance/shop_icon_see2.png
  19. BIN
      static/images/agriculturalTrusteeship/insurance/shop_needs_icon.png
  20. BIN
      static/images/agriculturalTrusteeship/insurance/shop_needs_icon01.png
  21. BIN
      static/images/agriculturalTrusteeship/insurance/shop_needs_icon02.png
  22. BIN
      static/images/agriculturalTrusteeship/insurance/shop_needs_icon03.png

+ 45
- 0
src/api/notice/index.js Ver ficheiro

@@ -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
})
}

+ 7
- 0
src/permission.js Ver ficheiro

@@ -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',//保险列表首页


+ 54
- 0
src/router/index.js Ver ficheiro

@@ -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',


+ 394
- 0
src/views/agriculturalTrusteeship/shop/shopDepositDetail.vue Ver ficheiro

@@ -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>

+ 79
- 7
src/views/agriculturalTrusteeship/shop/shopList.vue Ver ficheiro

@@ -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;


+ 416
- 0
src/views/agriculturalTrusteeship/shop/shopNeedsList.vue Ver ficheiro

@@ -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>

+ 442
- 0
src/views/agriculturalTrusteeship/shop/shopOrganizationDetail.vue Ver ficheiro

@@ -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>

+ 84
- 2
src/views/notice/index.vue Ver ficheiro

@@ -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>


+ 111
- 0
src/views/notice/inviteTendersDetail.vue Ver ficheiro

@@ -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>

+ 78
- 0
src/views/notice/winTheBiddingDetail.vue Ver ficheiro

@@ -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>

+ 2
- 2
src/views/project/index.vue Ver ficheiro

@@ -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>


+ 18
- 1
src/views/project/projectDetail.vue Ver ficheiro

@@ -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(){


+ 115
- 0
src/views/project/projectNeedsDetail.vue Ver ficheiro

@@ -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>

+ 9
- 4
src/views/sunVillage_info/list_signature.vue Ver ficheiro

@@ -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>


+ 13
- 9
src/views/user/signature/signatureList.vue Ver ficheiro

@@ -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>


BIN
static/images/agriculturalTrusteeship/insurance/shop_icon_add2.png Ver ficheiro

Antes Depois
Largura: 178  |  Altura: 64  |  Tamanho: 1.9 KiB

BIN
static/images/agriculturalTrusteeship/insurance/shop_icon_see.png Ver ficheiro

Antes Depois
Largura: 178  |  Altura: 64  |  Tamanho: 2.7 KiB

BIN
static/images/agriculturalTrusteeship/insurance/shop_icon_see2.png Ver ficheiro

Antes Depois
Largura: 18  |  Altura: 17  |  Tamanho: 407 B

BIN
static/images/agriculturalTrusteeship/insurance/shop_needs_icon.png Ver ficheiro

Antes Depois
Largura: 16  |  Altura: 16  |  Tamanho: 452 B

BIN
static/images/agriculturalTrusteeship/insurance/shop_needs_icon01.png Ver ficheiro

Antes Depois
Largura: 16  |  Altura: 16  |  Tamanho: 446 B

BIN
static/images/agriculturalTrusteeship/insurance/shop_needs_icon02.png Ver ficheiro

Antes Depois
Largura: 11  |  Altura: 13  |  Tamanho: 343 B

BIN
static/images/agriculturalTrusteeship/insurance/shop_needs_icon03.png Ver ficheiro

Antes Depois
Largura: 13  |  Altura: 13  |  Tamanho: 377 B

Carregando…
Cancelar
Guardar