Przeglądaj źródła

Merge branch 'master' of http://116.255.135.38:3000/zhangzl/nsgk_mobile

 Conflicts:
	config/index.js
wulanhaote
张泽亮 3 lat temu
rodzic
commit
80f8b83653
49 zmienionych plików z 1603 dodań i 336 usunięć
  1. +28
    -2
      package-lock.json
  2. +2
    -0
      package.json
  3. +2
    -0
      src/api/login/index.js
  4. +2
    -1
      src/api/project/index.js
  5. +8
    -0
      src/api/register/index.js
  6. +42
    -0
      src/api/user/index.js
  7. BIN
      src/assets/images/homestead/farmlandEditSwitch_bg.png
  8. BIN
      src/assets/images/homestead/farmlandEditSwitch_close.png
  9. BIN
      src/assets/images/homestead/nd.png
  10. BIN
      src/assets/images/homestead/nf.png
  11. BIN
      src/assets/images/homestead/operation/positioning.png
  12. BIN
      src/assets/images/homestead/operation/positioning_active.png
  13. BIN
      src/assets/images/homestead/operation/scale.png
  14. BIN
      src/assets/images/homestead/operation/scale_active.png
  15. BIN
      src/assets/images/homestead/operation/spacing.png
  16. BIN
      src/assets/images/homestead/operation/spacing_active.png
  17. BIN
      src/assets/images/homestead/operation/tensile.png
  18. BIN
      src/assets/images/homestead/operation/tensile_active.png
  19. BIN
      src/assets/images/homestead/positioning_icon.png
  20. BIN
      src/assets/images/homestead/searchBar_close.png
  21. BIN
      src/assets/images/homestead/searchBar_close_gray.png
  22. BIN
      src/assets/images/homestead/searchBar_save.png
  23. BIN
      src/assets/images/homestead/selectionNext_icon.png
  24. BIN
      src/assets/images/homestead/selection_icon.png
  25. +3
    -0
      src/main.js
  26. +24
    -3
      src/permission.js
  27. +12
    -6
      src/router/index.js
  28. +8
    -0
      src/utils/global.js
  29. +7
    -2
      src/utils/utils.js
  30. +7
    -0
      src/views/biddingHall/index.vue
  31. +722
    -118
      src/views/homestead/index.vue
  32. +20
    -5
      src/views/index.vue
  33. +4
    -1
      src/views/interaction/index.vue
  34. +47
    -16
      src/views/login.vue
  35. +2
    -1
      src/views/news/index.vue
  36. +15
    -8
      src/views/project/index.vue
  37. +11
    -11
      src/views/project/projectDetail.vue
  38. +87
    -19
      src/views/register/companyRegister.vue
  39. +41
    -14
      src/views/register/index.vue
  40. +8
    -1
      src/views/register/registerType.vue
  41. +62
    -16
      src/views/register/userRegister.vue
  42. +19
    -3
      src/views/user/accountSetting/index.vue
  43. +188
    -19
      src/views/user/accountSetting/userInformation/companyInformation.vue
  44. +15
    -7
      src/views/user/accountSetting/userInformation/userInformation.vue
  45. +69
    -28
      src/views/user/bidding/index.vue
  46. +18
    -8
      src/views/user/index.vue
  47. +35
    -11
      src/views/user/supply/index.vue
  48. +95
    -36
      src/views/user/supply/supplyAdd.vue
  49. BIN
      static/images/zwtpxw.jpg

+ 28
- 2
package-lock.json Wyświetl plik

@@ -3472,6 +3472,11 @@
}
}
},
"dom-walk": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
"integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
},
"domain-browser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
@@ -4612,6 +4617,15 @@
"is-glob": "^4.0.1"
}
},
"global": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
"integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
"requires": {
"min-document": "^2.19.0",
"process": "^0.11.10"
}
},
"globals": {
"version": "9.18.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
@@ -5662,6 +5676,11 @@
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
},
"jquery": {
"version": "3.6.0",
"resolved": "https://registry.npm.taobao.org/jquery/download/jquery-3.6.0.tgz?cache=0&sync_timestamp=1614705639458&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjquery%2Fdownload%2Fjquery-3.6.0.tgz",
"integrity": "sha1-xyoJ8Vwb3OFC9J2/EXC9+K2sJHA="
},
"js-base64": {
"version": "2.6.4",
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
@@ -6301,6 +6320,14 @@
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
"dev": true
},
"min-document": {
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
"integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
"requires": {
"dom-walk": "^0.1.0"
}
},
"minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
@@ -9759,8 +9786,7 @@
"process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
"integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
"dev": true
"integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
},
"process-nextick-args": {
"version": "2.0.1",


+ 2
- 0
package.json Wyświetl plik

@@ -11,6 +11,8 @@
},
"dependencies": {
"axios": "^0.21.1",
"jquery": "^3.6.0",
"global": "^4.4.0",
"js-cookie": "^2.2.1",
"lib-flexible": "^0.3.2",
"node-sass": "^5.0.0",


+ 2
- 0
src/api/login/index.js Wyświetl plik

@@ -52,6 +52,7 @@ export function getCodeImg() {
method: 'get'
})
}

// 发送短信验证码
export function getSmsCode(mobile) {

@@ -65,3 +66,4 @@ export function getSmsCode(mobile) {
data:data
})
}


+ 2
- 1
src/api/project/index.js Wyświetl plik

@@ -11,8 +11,9 @@ export function getDeptList(id) {
//挂牌项目列表
export function getOutProjectList(data){
return request({
url:'/transaction/website/outproject/list?deptId=&projectNumber=&',
url:'/transaction/website/outproject/list',
method:'get',
params:data
})
}
//挂牌项目详情


+ 8
- 0
src/api/register/index.js Wyświetl plik

@@ -29,4 +29,12 @@ export function registerOn(memberName, idcard, mobile, smsCode,uuid) {
data: data
})
}
//注册
export function userRegister(data) {
return request({
url: '/transaction/website/addMember',
method: 'post',
data: data
})
}


+ 42
- 0
src/api/user/index.js Wyświetl plik

@@ -102,3 +102,45 @@ export function userDemand(query){
data: query
})
}

//发布供求
export function updateDemand(query){
return request({
url: '/transaction/demand',
method: 'put',
data: query
})
}

//供求查询
export function selectDemand(id){
return request({
url: '/transaction/demand/'+id,
method: 'get',
})
}

//删除供求
export function deleteSupply(id){
return request({
url: '/transaction/demand/'+id,
method: 'delete'
})
}

// 展示图片
export function showImg(id){
return request({
url: '/transaction/website/supplyDemand/showImg/id/'+id,
method: 'get',
})
}

//我的竞价
export function biddinglist(query){
return request({
url: '/transaction/outproject/biddinglist/member',
method: 'get',
params: query
})
}

BIN
src/assets/images/homestead/farmlandEditSwitch_bg.png Wyświetl plik

Przed Po
Szerokość: 375  |  Wysokość: 812  |  Rozmiar: 6.8 KiB

BIN
src/assets/images/homestead/farmlandEditSwitch_close.png Wyświetl plik

Przed Po
Szerokość: 14  |  Wysokość: 14  |  Rozmiar: 339 B

BIN
src/assets/images/homestead/nd.png Wyświetl plik

Przed Po
Szerokość: 73  |  Wysokość: 73  |  Rozmiar: 4.1 KiB

BIN
src/assets/images/homestead/nf.png Wyświetl plik

Przed Po
Szerokość: 73  |  Wysokość: 73  |  Rozmiar: 4.3 KiB

BIN
src/assets/images/homestead/operation/positioning.png Wyświetl plik

Przed Po
Szerokość: 19  |  Wysokość: 24  |  Rozmiar: 1007 B

BIN
src/assets/images/homestead/operation/positioning_active.png Wyświetl plik

Przed Po
Szerokość: 19  |  Wysokość: 24  |  Rozmiar: 1.4 KiB

BIN
src/assets/images/homestead/operation/scale.png Wyświetl plik

Przed Po
Szerokość: 24  |  Wysokość: 24  |  Rozmiar: 487 B

BIN
src/assets/images/homestead/operation/scale_active.png Wyświetl plik

Przed Po
Szerokość: 24  |  Wysokość: 24  |  Rozmiar: 1.1 KiB

BIN
src/assets/images/homestead/operation/spacing.png Wyświetl plik

Przed Po
Szerokość: 23  |  Wysokość: 23  |  Rozmiar: 511 B

BIN
src/assets/images/homestead/operation/spacing_active.png Wyświetl plik

Przed Po
Szerokość: 23  |  Wysokość: 23  |  Rozmiar: 1.2 KiB

BIN
src/assets/images/homestead/operation/tensile.png Wyświetl plik

Przed Po
Szerokość: 19  |  Wysokość: 25  |  Rozmiar: 691 B

BIN
src/assets/images/homestead/operation/tensile_active.png Wyświetl plik

Przed Po
Szerokość: 19  |  Wysokość: 25  |  Rozmiar: 1.3 KiB

BIN
src/assets/images/homestead/positioning_icon.png Wyświetl plik

Przed Po
Szerokość: 22  |  Wysokość: 23  |  Rozmiar: 506 B

BIN
src/assets/images/homestead/searchBar_close.png Wyświetl plik

Przed Po
Szerokość: 36  |  Wysokość: 36  |  Rozmiar: 2.5 KiB

BIN
src/assets/images/homestead/searchBar_close_gray.png Wyświetl plik

Przed Po
Szerokość: 36  |  Wysokość: 36  |  Rozmiar: 2.4 KiB

BIN
src/assets/images/homestead/searchBar_save.png Wyświetl plik

Przed Po
Szerokość: 36  |  Wysokość: 36  |  Rozmiar: 2.2 KiB

BIN
src/assets/images/homestead/selectionNext_icon.png Wyświetl plik

Przed Po
Szerokość: 19  |  Wysokość: 19  |  Rozmiar: 1.2 KiB

BIN
src/assets/images/homestead/selection_icon.png Wyświetl plik

Przed Po
Szerokość: 19  |  Wysokość: 19  |  Rozmiar: 412 B

+ 3
- 0
src/main.js Wyświetl plik

@@ -11,6 +11,8 @@ import './config/flexible'
import store from './store/'
import './permission' // permission control

import global from '@/utils/global';

import { getDicts } from "@/utils/data";
import { selectDictLabel , onClickLeft , getNowFormatDate } from "@/utils/utils";

@@ -19,6 +21,7 @@ Vue.prototype.getDicts = getDicts
Vue.prototype.selectDictLabel = selectDictLabel
Vue.prototype.onClickLeft = onClickLeft
Vue.prototype.getNowFormatDate = getNowFormatDate
Vue.prototype.global = global

// Vant 引用
import Vant from 'vant';


+ 24
- 3
src/permission.js Wyświetl plik

@@ -6,8 +6,29 @@ import { getToken } from '@/utils/auth'

NProgress.configure({ showSpinner: false })

const whiteList = ['/index', '/login', '/auth-redirect', '/bind', '/register', '/news/index', '/notice/index', '/supply/index'
, '/interaction/index', '/register/index', '/register/registerType', '/register/userRegister', '/register/companyRegister', '/homestead/login', '/homestead/index']
const whiteList = [
'/index',
'/login',
'/auth-redirect',
'/bind',
'/register',
'/news/index',
'/news/newDetail',
'/notice/index',
'/supply/index',
'/interaction/index',
'/register/index',
'/register/registerType',
'/register/userRegister',
'/register/companyRegister',
'/biddingHall',
'/project',
'/policy',
'/policyDetail',
'/attestationDetail',
'/noticeDetail',

]

router.beforeEach((to, from, next) => {
NProgress.start()
@@ -46,7 +67,7 @@ router.beforeEach((to, from, next) => {
next()
} else {
next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
//next('/index');
//next('/index');
NProgress.done()
}
}


+ 12
- 6
src/router/index.js Wyświetl plik

@@ -81,7 +81,8 @@ export const constantRoutes = [
path: '/biddingHall',
name: 'biddingHall',
meta: {
title: '竞价大厅'
title: '竞价大厅',
hidden: true,
},
component: (resolve) => require(['@/views/biddingHall'], resolve)
},
@@ -106,7 +107,8 @@ export const constantRoutes = [
path: '/news/index',
name: 'news',
meta: {
title: '新闻资讯'
title: '新闻资讯',
hidden: true,
},
component: (resolve) => require(['@/views/news/index'], resolve)
},
@@ -114,7 +116,8 @@ export const constantRoutes = [
path: '/news/newDetail',
name: 'newDetail',
meta: {
title: '新闻详情'
title: '新闻详情',
hidden: true,
},
component: (resolve) => require(['@/views/news/newDetail'], resolve)
},
@@ -122,7 +125,8 @@ export const constantRoutes = [
path: '/notice/index',
name: 'notice',
meta: {
title: '项目公告'
title: '项目公告',
hidden: true,
},
component: (resolve) => require(['@/views/notice/index'], resolve)
},
@@ -130,7 +134,8 @@ export const constantRoutes = [
path: '/supply/index',
name: 'supply',
meta: {
title: '个人供求'
title: '个人供求',
hidden: true,
},
component: (resolve) => require(['@/views/supply/index'], resolve)
},
@@ -138,7 +143,8 @@ export const constantRoutes = [
path: '/interaction/index',
name: 'interaction',
meta: {
title: '互动交流'
title: '互动交流',
hidden: true,
},
component: (resolve) => require(['@/views/interaction/index'], resolve)
},


+ 8
- 0
src/utils/global.js Wyświetl plik

@@ -0,0 +1,8 @@
const deptId = 100 ;
const severApi = 'http://192.168.31.107:8080';

export default
{
deptId,//区县ID
severApi,//全局API
}

+ 7
- 2
src/utils/utils.js Wyświetl plik

@@ -15,8 +15,13 @@ export function onClickLeft(){
history.back(-1);
}

export function getNowFormatDate() {
var date = new Date();
export function getNowFormatDate(time) {
var date;
if (!time){
date = new Date();
}else{
date = time;
}
var seperator1 = "-";
var seperator2 = ":";
var month = date.getMonth() + 1;


+ 7
- 0
src/views/biddingHall/index.vue Wyświetl plik

@@ -1,5 +1,12 @@
<template>
<div>
<van-nav-bar
title="竞价大厅"
left-arrow
fixed
placeholder
@click-left="onClickLeft"
/>
<van-search
v-model="value"
shape="round"


+ 722
- 118
src/views/homestead/index.vue Wyświetl plik

@@ -1,6 +1,46 @@
<template>
<div class="app-container" @touchmove.prevent>
<div class="app-container">
<div class="map_area"></div>
<!--列表 定位-->
<div class="rightIcon_wrap">
<div class="positioning_wrap">
<div class="icon"></div>
</div>
<div class="selectionIcon_wrap" @click="selectionPush">
<div class="icon"></div>
<div class="text">列表</div>
</div>
</div>
<!--列表拉取详情-->
<div class="homesteadList_wrap">
<div class="title_m">
<div class="more_icon" @click="homesteadListShrink"></div>
<div class="name">宅基地列表</div>
</div>
<div class="main_m">
<!--1-->
<div class="flex_block">
<div class="name_text">孙全礼</div>
<div class="square_text">80㎡</div>
<div class="operation_mian">
<div class="describe yph">已盘活</div>
</div>
</div>
<!--1-->
<div class="flex_block">
<div class="name_text">杜永俭</div>
<div class="square_text">130㎡</div>
<div class="operation_mian">
<div class="describe dlzdph">待流转待盘活</div>
</div>
</div>
</div>
<div class="footerBtn_wrap">
<div class="options active">农房</div>
<div class="options">农地</div>
</div>
</div>

<!--选择地址-->
<div class="address_wrap">
<div class="address_item">
@@ -29,16 +69,45 @@
</div>
<div class="address_item">
<div class="portrait"></div>
<div class="name">南郊村南郊村</div>
<div class="name">南郊村</div>
</div>
<div class="address_item more">
<div class="portrait"></div>
<div class="name"></div>
<div class="name" @click="addressPush"></div>
</div>
</div>

<!--搜索栏目-->
<div class="searchBar_wrap">
<div class="actionBar_wrap" v-if="searchBarOperVisbile">
<div class="m_list">
<div class="tensile active"><div class="icon"></div></div>
</div>
<div class="m_list">
<div class="positioning">
<div class="icon"></div>
</div>
</div>
<div class="m_list">
<div class="spacing">
<div class="icon"></div>
</div>
</div>
<div class="m_list">
<div class="scale">
<div class="icon"></div>
</div>
</div>

<div class="m_list">
<div class="closes gray" @click="searchBarOperFun('false')">
<div class="icon"></div>
</div>
</div>
<div class="m_list">
<div class="correct"></div>
</div>
</div>
<div class="searchBar_area">
<div class="bar_icon"></div>
<div class="bar_ipt">
@@ -46,7 +115,7 @@
</div>
<div class="bar_text">搜索</div>
</div>
<div class="searchBar_more"></div>
<div class="searchBar_more" @click="searchBarOperFun('true')"></div>
</div>

<!--点击房地-显示的搜索--->
@@ -181,122 +250,237 @@
<div class="landHomesteadEdit_wrap">
<div class="content_mian">
<div class="info_title">录入宗地信息</div>
<!--1-->
<div class="flex_block">
<div class="number_s50 mr50">
<div class="title_m">农房编号</div>
<div class="input_m">
<van-field
v-model="message"
placeholder="请输入农房编号"
class="landHomesteadEdit_input"
/>
<div class="flex_main">
<!--1-->
<div class="flex_block">
<div class="number_s50 mr50">
<div class="title_m">农房编号</div>
<div class="input_m">
<van-field
v-model="message"
placeholder="农房编号"
class="landHomesteadEdit_input"
/>
</div>
</div>
<div class="number_s50">
<div class="title_m">房屋所有人名称</div>
<div class="input_m">
<van-field
v-model="message"
placeholder="房屋所有人名称"
class="landHomesteadEdit_input"
/>
</div>
</div>
</div>
<div class="number_s50">
<div class="title_m">房屋所有人名称</div>
<div class="input_m">
<van-field
v-model="message"
placeholder="请输入房屋所有人名称"
class="landHomesteadEdit_input"
/>
<!--1-->
<div class="flex_block">
<div class="number_s60 mr50">
<div class="title_m">地址</div>
<div class="input_m">
<van-field
v-model="message"
placeholder="地址"
class="landHomesteadEdit_input"
/>
</div>
</div>
<div class="number_s40">
<div class="title_m">农房权属</div>
<div class="input_m select">
<i class="dropDown_icon"></i>
<van-field
v-model="message"
readonly
clickable
name="picker"
placeholder="农房权属"
class="landHomesteadEdit_input"
@click="showPicker = true"
/>
<van-popup v-model="showPicker" position="bottom">
<van-picker
show-toolbar
:columns="columns"
@confirm="onConfirm"
@cancel="showPicker = false"
/>
</van-popup>
</div>
</div>
</div>
</div>
<!--1-->
<div class="flex_block">
<div class="number_s60 mr50">
<div class="title_m">地址</div>
<div class="input_m">
<van-field
v-model="message"
placeholder="请输入地址"
class="landHomesteadEdit_input"
/>
<!--1-->
<div class="flex_block">
<div class="number_s35 mr50">
<div class="title_m">是否有审批手续</div>
<div class="input_m select">
<i class="dropDown_icon"></i>
<van-field
v-model="message"
readonly
clickable
name="picker"
placeholder="审批手续"
class="landHomesteadEdit_input"
@click="showPicker = true"
/>
<van-popup v-model="showPicker" position="bottom">
<van-picker
show-toolbar
:columns="columns"
@confirm="onConfirm"
@cancel="showPicker = false"
/>
</van-popup>
</div>
</div>
<div class="number_s35 mr50">
<div class="title_m">建筑面积</div>
<div class="input_m about">
<span class="about_symbol">≈</span>
<van-field
v-model="message"
placeholder="建筑面积"
class="landHomesteadEdit_input"
/>
</div>
</div>
<div class="number_s30">
<div class="title_m">现状情况</div>
<div class="input_m select">
<i class="dropDown_icon"></i>
<van-field
v-model="message"
readonly
clickable
name="picker"
placeholder="现状情况"
class="landHomesteadEdit_input"
@click="showPicker = true"
/>
<van-popup v-model="showPicker" position="bottom">
<van-picker
show-toolbar
:columns="columns"
@confirm="onConfirm"
@cancel="showPicker = false"
/>
</van-popup>
</div>
</div>
</div>
<div class="number_s40">
<div class="title_m">农房权属</div>
<div class="input_m select">
<i class="dropDown_icon"></i>
<van-field
v-model="message"
readonly
clickable
name="picker"
placeholder="选择农房权属"
class="landHomesteadEdit_input"
@click="showPicker = true"
/>
<van-popup v-model="showPicker" position="bottom">
<van-picker
show-toolbar
:columns="columns"
@confirm="onConfirm"
@cancel="showPicker = false"
<!--1-->
<div class="flex_block">
<div class="number_s50 mr50">
<div class="title_m">房屋所有权证号</div>
<div class="input_m">
<van-field
v-model="message"
placeholder="房屋所有权证号"
class="landHomesteadEdit_input"
/>
</div>
</div>
<div class="number_s50">
<div class="title_m">土地证号</div>
<div class="input_m">
<van-field
v-model="message"
placeholder="土地证号"
class="landHomesteadEdit_input"
/>
</van-popup>
</div>
</div>
</div>
</div>
<!--1-->
<div class="flex_block">
<div class="number_s35 mr50">
<div class="title_m">是否有审批手续</div>
<div class="input_m select">
<i class="dropDown_icon"></i>
<van-field
v-model="message"
readonly
clickable
name="picker"
placeholder="审批手续"
class="landHomesteadEdit_input"
@click="showPicker = true"
/>
<van-popup v-model="showPicker" position="bottom">
<van-picker
show-toolbar
:columns="columns"
@confirm="onConfirm"
@cancel="showPicker = false"
<!--1-->
<div class="flex_block">
<div class="number_s35 mr50">
<div class="title_m">土地性质</div>
<div class="input_m">
<van-field
v-model="message"
placeholder="土地性质"
class="landHomesteadEdit_input"
/>
</van-popup>
</div>
</div>
<div class="number_s35 mr50">
<div class="title_m">土地面积</div>
<div class="input_m about">
<span class="about_symbol">≈</span>
<van-field
v-model="message"
placeholder="土地面积"
class="landHomesteadEdit_input"
/>
</div>
</div>
<div class="number_s30">
<div class="title_m">是否有流转意向</div>
<div class="input_m select">
<i class="dropDown_icon"></i>
<van-field
v-model="message"
readonly
clickable
name="picker"
placeholder="是否有流转意向"
class="landHomesteadEdit_input"
@click="showPicker = true"
/>
<van-popup v-model="showPicker" position="bottom">
<van-picker
show-toolbar
:columns="columns"
@confirm="onConfirm"
@cancel="showPicker = false"
/>
</van-popup>
</div>
</div>
</div>
<div class="number_s35 mr50">
<div class="title_m">建筑面积</div>
<div class="input_m about">
<span class="about_symbol">≈</span>
<van-field
v-model="message"
placeholder="建筑面积"
class="landHomesteadEdit_input"
/>
<!--1-->
<div class="flex_block">
<div class="number_s50 mr50">
<div class="title_m">租赁人</div>
<div class="input_m">
<van-field
v-model="message"
placeholder="租赁人"
class="landHomesteadEdit_input"
/>
</div>
</div>
<div class="number_s50">
<div class="title_m">租赁年限</div>
<div class="input_m">
<van-field
v-model="message"
placeholder="租赁年限"
class="landHomesteadEdit_input"
/>
</div>
</div>
</div>
<div class="number_s30">
<div class="title_m">现状情况</div>
<div class="input_m select">
<i class="dropDown_icon"></i>
<van-field
v-model="message"
readonly
clickable
name="picker"
placeholder="现状情况"
class="landHomesteadEdit_input"
@click="showPicker = true"
/>
<van-popup v-model="showPicker" position="bottom">
<van-picker
show-toolbar
:columns="columns"
@confirm="onConfirm"
@cancel="showPicker = false"
<!--1-->
<div class="flex_block">
<div class="number_s100">
<div class="title_m">租赁人</div>
<div class="input_m">
<van-field
v-model="message"
placeholder="租赁人"
class="landHomesteadEdit_input"
/>
</van-popup>
</div>
</div>
</div>
<!--2-->
<div class="uploadPicturesFlex_block">
<div class="title_m">上传图片</div>
<div class="main_m">
<van-uploader v-model="fileList" multiple :max-count="2" />
</div>
</div>
</div>
@@ -306,21 +490,85 @@
<div class="save">保存</div>
</div>
</div>
<!--农地农房选择-->
<div class="farmlandEditSwitch_wrap">
<div class="mains">
<div class="close_btn"></div>
<div class="farmhouse">
<div class="icons"></div>
<p class="names">农房</p>
</div>
<div class="farmland">
<div class="icons"></div>
<p class="names">农地</p>
</div>
</div>
</div>
</div>
</template>

<script>
import $ from "jquery";
export default {
name: "homesteadLogin",
data() {
return {
//搜索栏目-操作栏显隐
searchBarOperVisbile: false,
//以下删
message: "",
showPicker: false,
columns: ["杭州", "宁波", "温州", "嘉兴", "湖州"],
fileList: [],
};
},
mounted() {},
methods: {
searchBarOperFun(statue) {
if (statue == "true") {
this.searchBarOperVisbile = true;
} else {
this.searchBarOperVisbile = false;
}
},

/*右侧列表 --展开收缩*/
selectionPush() {
$(".homesteadList_wrap").animate(
{
right: "0",
},
300
);
},
homesteadListShrink() {
$(".homesteadList_wrap").animate(
{
right: "-300px",
},
300
);
},
/*点击顶部村庄--伸缩样式*/
addressPush() {
let addressWrapBlock = $(".address_wrap .address_item.more .name");
let lefValue = 0;
if (addressWrapBlock.hasClass("shrink")) {
addressWrapBlock.removeClass("shrink");
lefValue = "-40px";
} else {
addressWrapBlock.addClass("shrink");
lefValue = "8px";
}

$(".address_wrap").animate(
{
left: lefValue,
},
300
);
},
/*以下删*/
onConfirm(time) {
this.message = time;
this.showPicker = false;
@@ -333,6 +581,138 @@ export default {
width: 100vw;
height: 100vh;
position: relative;
.rightIcon_wrap {
position: absolute;
right: 16px;
bottom: 160px;
.selectionIcon_wrap {
width: 74px;
background: #fff;
border-radius: 10px;
padding: 14px 0;

.icon {
width: 38px;
height: 38px;
background: url("../../assets/images/homestead/selection_icon.png")
no-repeat;
background-size: 100% 100%;
margin: 0 auto 4px;
}
.text {
font-size: 24px;
text-align: center;
}
}
.positioning_wrap {
width: 74px;
background: #fff;
margin-bottom: 16px;
border-radius: 10px;
height: 74px;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中*/
.icon {
width: 38px;
height: 38px;
background: url("../../assets/images/homestead/positioning_icon.png")
no-repeat;
background-size: 100% 100%;
margin: 0 auto;
}
}
}
.homesteadList_wrap {
// display: none;
display: flex;
position: absolute;
right: -536px;
top: 20px;
bottom: 160px;
width: 536px;
background: #fff;
z-index: 999;
border-top-left-radius: 15px;
border-bottom-left-radius: 15px;

flex-direction: column;

.title_m {
color: #333;
line-height: 36px;
padding: 20px 40px 32px;
.name {
font-size: 40px;
line-height: 42px;
height: 42px;
}
.more_icon {
width: 38px;
height: 38px;
background: url("../../assets/images/homestead/selectionNext_icon.png")
no-repeat;
float: right;
margin-top: 2px;
}
}

.main_m {
overflow-y: auto;
padding: 0 40px;
// height: 300px;
flex: 1;
.flex_block {
height: 70px;
display: flex;
// justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
.name_text {
font-size: 34px;
flex: 1;
}
.square_text {
font-size: 34px;
flex: 0.8;
}
.operation_mian {
flex: 0 0 150px;
.describe {
font-size: 20px;
padding: 6px 12px;
float: right;
color: #fff;
&.yph {
background: #3cbf5b;
border-radius: 30px;
}
}
}
}
}
.footerBtn_wrap {
flex: 0 0 90px;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */

.options {
flex: 1;
font-size: 38px;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
height: 90px;
&:first-child {
border-bottom-left-radius: 15px;
}
&.active {
background: #3cbf5b;
color: #fff;
}
}
}
}
.map_area {
width: 100vw;
height: 100vh;
@@ -345,7 +725,8 @@ export default {
position: fixed;
z-index: 9;
top: 24px;
left: 16px;
// left: 16px;
left: -80px;
display: flex;
.address_item {
display: flex;
@@ -379,6 +760,9 @@ export default {
width: 40px;
height: 40px;
padding: 0;
&.shrink {
transform: rotate(180deg);
}
}
}
.address_suspension {
@@ -403,8 +787,8 @@ export default {
}
}
.searchBar_wrap {
display: none;
// display: flex;
// display: none;
display: flex;
position: fixed;
bottom: 0;
left: 0;
@@ -413,6 +797,117 @@ export default {
background: #fff;
border-top-left-radius: 15px;
border-top-right-radius: 15px;
.actionBar_wrap {
display: flex;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;

background: #fff;
border-top-left-radius: 15px;
border-top-right-radius: 15px;
.m_list {
flex: 1;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */

.tensile,
.positioning,
.spacing,
.scale {
width: 76px;
height: 72px;
background: #ffffff;
border-radius: 8px;
box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.16);
.icon {
width: 76px;
height: 72px;
}
&.active {
background: #333;
&.tensile {
.icon {
background: url("../../assets/images/homestead/operation/tensile_active.png")
center center no-repeat;
background-size: 38px 50px;
}
}
&.positioning {
.icon {
background: url("../../assets/images/homestead/operation/positioning_active.png")
center center no-repeat;
background-size: 38px 48px;
}
}
&.spacing {
.icon {
background: url("../../assets/images/homestead/operation/spacing_active.png")
center center no-repeat;
background-size: 46px 46px;
}
}
&.scale {
.icon {
background: url("../../assets/images/homestead/operation/scale_active.png")
center center no-repeat;
background-size: 48px 48px;
}
}
}
}
.tensile {
.icon {
background: url("../../assets/images/homestead/operation/tensile.png")
center center no-repeat;
background-size: 38px 50px;
}
}
.positioning {
.icon {
background: url("../../assets/images/homestead/operation/positioning.png")
center center no-repeat;
background-size: 38px 48px;
}
}
.spacing {
.icon {
background: url("../../assets/images/homestead/operation/spacing.png")
center center no-repeat;
background-size: 46px 46px;
}
}
.scale {
.icon {
background: url("../../assets/images/homestead/operation/scale.png")
center center no-repeat;
background-size: 48px 48px;
}
}
.closes {
background: url("../../assets/images/homestead/searchBar_close.png")
no-repeat;
background-size: 100% 100%;
width: 72px;
height: 72px;
&.gray {
background: url("../../assets/images/homestead/searchBar_close_gray.png")
no-repeat;
background-size: 100% 100%;
}
}
.correct {
background: url("../../assets/images/homestead/searchBar_save.png")
no-repeat;
background-size: 100% 100%;
width: 72px;
height: 72px;
}
}
}
.searchBar_area {
flex: 1;
height: 80px;
@@ -690,7 +1185,8 @@ export default {
}
}
.landHomesteadEdit_wrap {
display: flex;
display: none;
// display: flex;
position: absolute;
left: 0;
bottom: 0;
@@ -700,7 +1196,7 @@ export default {
.content_mian {
flex: 1;
margin: 0 16px;
padding: 28px 40px 28px 40px;
padding: 28px 25px 28px 40px;
background: #fff;
border-top-left-radius: 15px;
border-top-right-radius: 15px;
@@ -714,6 +1210,11 @@ export default {
align-items: center; /* 子元素相对父元素垂直居中 */
color: #333;
}
.flex_main {
height: 890px;
padding-right: 15px;
overflow-y: auto;
}
.flex_block {
height: 100px;
margin-bottom: 20px;
@@ -723,6 +1224,12 @@ export default {
float: left;
flex-direction: column;
}
.number_s100 {
width: 100%;
float: left;
display: flex;
flex-direction: column;
}
.number_s60 {
// flex: 0.6;
width: 60%;
@@ -805,6 +1312,20 @@ export default {
padding-right: 50px;
}
}
.uploadPicturesFlex_block {
.title_m {
font-size: 28px;
flex: 0 0 50px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
word-break: break-all;
align-items: center; /* 子元素相对父元素垂直居中 */
margin-bottom: 20px;
}
.main_m {
}
}
}
.footer_main {
flex: 0 0 120px;
@@ -830,6 +1351,89 @@ export default {
}
}
}
.farmlandEditSwitch_wrap {
display: none;
width: 100vw;
height: 100vh;
background: url("../../assets/images/homestead/farmlandEditSwitch_bg.png")
no-repeat;
background-size: 100% 100%;
position: absolute;
left: 0;
top: 0;
z-index: 1001;
.mains {
width: 544px;
height: 480px;
background: #fff;
position: absolute;
left: 50%;
top: 50%;
margin: -272px 0 0 -240px;
z-index: 1002;
border-radius: 30px;
padding: 0 30px;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
.close_btn {
position: absolute;
width: 28px;
height: 28px;
background: url("../../assets/images/homestead/farmlandEditSwitch_close.png")
no-repeat;
background-size: 100% 100%;
right: 40px;
top: 40px;
}
.farmhouse {
flex: 1;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
}
.farmland {
flex: 1;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
}
.farmhouse,
.farmland {
flex-direction: column;
.icons {
width: 146px;
height: 146px;
margin-bottom: 14px;
}
.names {
font-size: 40px;
color: #3cbf5b;
}
}
.farmhouse {
.icons {
background: url("../../assets/images/homestead/nf.png") no-repeat;
background-size: 100% 100%;
}
}
.farmland {
.icons {
background: url("../../assets/images/homestead/nd.png") no-repeat;
background-size: 100% 100%;
}
}

// <div class="farmhouse">
// <div class="icons"></div>
// <p class="names">农房</p>
// </div>
// <div class="farmland">
// <div class="icons"></div>
// <p class="names">农地</p>
// </div>
}
}
}

::-webkit-scrollbar {
@@ -837,23 +1441,23 @@ export default {
}

::-webkit-scrollbar:vertical {
width: 8px;
border-radius: 8px;
width: 10px;
border-radius: 10px;
}

::-webkit-scrollbar:horizontal {
height: 8px;
border-radius: 8px;
height: 10px;
border-radius: 10px;
}

::-webkit-scrollbar-thumb {
background-color: #9f9f9f;
border-radius: 8px;
border: 1px solid #ffffff;
background-color: #eee;
border-radius: 10px;
border: 3px solid #ffffff;
}

::-webkit-scrollbar-track {
border-radius: 8px;
border-radius: 10px;
background-color: #ffffff;
}
</style>

+ 20
- 5
src/views/index.vue Wyświetl plik

@@ -8,7 +8,7 @@
</van-row>
<van-swipe class="my-swipe" :autoplay="3000" height="180" indicator-color="white">
<van-swipe-item v-for="(item,index) in bannerList" :key="index">
<van-image :src="item.img" height="180" />
<van-image :src="item.img" height="180" @click="goDetail(item.id)" />
<p class="bannerTit">{{item.title}}</p>
</van-swipe-item>
</van-swipe>
@@ -18,7 +18,7 @@
<van-image src="../../static/images/icon/icon_new.png" width="40" height="40" />
<p>新闻资讯</p>
</van-grid-item>
<van-grid-item>
<van-grid-item to="/biddingHall">
<van-image src="../../static/images/icon/icon_bidding.png" width="40" height="40" />
<p>竞价大厅</p>
</van-grid-item>
@@ -49,17 +49,20 @@
@load="getList()"
>
<!-- @load="newList"-->
<van-cell v-for="item in newList" :key="item.id" :title="item.title" :label="item.newsTime">
<van-cell v-for="item in newList" :key="item.id" :label="item.newsTime" :to="{name:'newDetail', query: {id:item.id}}">
<!-- 使用 right-icon 插槽来自定义右侧图标 -->
<template #title>
<p class="newContent">{{item.title}}</p>
</template>
<template #right-icon>
<van-image :src="item.img" class="search-icon" width="30%" />
<van-image :src="item.img" class="search-icon" width="30%" v-if="item.img" />
<van-image src="../../static/images/zwtpxw.jpg" class="search-icon" width="30%" v-else/>
</template>
</van-cell>
</van-list>
</div>
</div>
</template>

<script>
import { newList } from "@/api/index";
export default {
@@ -100,6 +103,7 @@ export default {
this.newList[i].img = imgStrs[0].substr(10,(imgStrs[0].length-12));
}
}
console.log(this.newList)
if(this.newList.length >= response.total){
this.finished = true;
return;
@@ -122,6 +126,10 @@ export default {
}
this.loading = false;
});
},
goDetail(id){
console.log(id)
window.location = 'news/newDetail?id='+id;
}
},
};
@@ -166,6 +174,13 @@ export default {
text-align: left;
color: #333333;
}
.newContent{
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
word-break: break-all;
overflow: hidden;
}
.search-icon {
line-height: inherit;
margin-left: 10px;


+ 4
- 1
src/views/interaction/index.vue Wyświetl plik

@@ -5,6 +5,7 @@
left-arrow
fixed
placeholder
@click-left="onClickLeft"
/>
<van-list
v-model="loading"
@@ -54,7 +55,9 @@ export default {
this.loading = true;
interactionList(this.queryParams).then(response => {
console.log(response)
this.interactionList = response.rows;
for (var i = 0; i < response.rows.length; i++) {
this.interactionList.push(response.rows[i]);
}
if(this.interactionList.length >= response.total){
this.finished = true;
return;


+ 47
- 16
src/views/login.vue Wyświetl plik

@@ -1,10 +1,17 @@
<template>
<div class="app-container">
<div class="focus-logo">
<img src="@/assets/images/login-logo.png" />
<p class="describe">登录页</p>
<div class="app-container" :style="{height:height+'px'}">
<van-nav-bar
title="登录"
left-arrow
fixed
placeholder
@click-left="onClickLeft"
/>
<div class="title">
<p class="title_one">PROPERTY RIGHT</p>
<p class="title_two">TRANSACTION</p>
<p class="title_three">农村产权交易平台</p>
</div>

<div class="login-main">
<ul class="head_nav clear">
<li @click="isSmsLogin = false" :class="{ active: !isSmsLogin }">
@@ -37,7 +44,7 @@
clearable
label="验证码"
placeholder="图形验证码"
>
<template #button>
<img class="code-img" :src="codeUrl" @click="getCode" />
@@ -85,15 +92,15 @@

<div class="reveal-modal-con">
<div class="dd_txt">
<router-link to="/register">注册账户</router-link>
</div>
<div class="other-login">
<p class="desc">—— 更多登录方式 ——</p>
<p class="icon-other-logins">
<router-link class="wx" to="/"></router-link>
<router-link class="rlsb" to="/"></router-link>
</p>
<router-link to="register/index">注册账户</router-link>
</div>
<!-- <div class="other-login">-->
<!-- <p class="desc">—— 更多登录方式 ——</p>-->
<!-- <p class="icon-other-logins">-->
<!-- <router-link class="wx" to="/"></router-link>-->
<!-- <router-link class="rlsb" to="/"></router-link>-->
<!-- </p>-->
<!-- </div>-->
</div>
</div>
</template>
@@ -121,10 +128,12 @@ export default {
codeUrl: "", //验证码
isSmsLogin: false, //是否手机验证码
computeTime: 0,
height:0
};
},
created() {
this.getCode();
this.height = document.body.clientHeight
//调用微信公众号方法
// wx.config({
// debug: true, // 开启调试模式,
@@ -228,7 +237,28 @@ export default {

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="scss">
.title{
padding-top: 20%;
width: 88%;
margin: 0 auto;
}
.title_one{
color: #666666;
font-size: 0.4rem;
}
.title_two{
color: #007e72;
font-size: 0.6rem;
}
.title_three{
color: #FFF;
font-size: 0.8rem;
}
.app-container {
background: url("../../static/images/index/registerBg.png") no-repeat;
background-size: 100% 100%;
width: 100%;
height: 100%;
.focus-logo {
width: 310px;
margin: 0 auto 40px;
@@ -252,6 +282,7 @@ export default {
overflow: hidden;
border: 1px solid #ddd;
padding-bottom:40px;
margin-top: 0.4rem;
}
.head_nav {
li {
@@ -288,7 +319,7 @@ export default {
text-align: center;
font-size: 28px;
a {
color: #666;
color: #FFF;
}
}
.other-login {
@@ -327,4 +358,4 @@ export default {
}
}
}
</style>
</style>

+ 2
- 1
src/views/news/index.vue Wyświetl plik

@@ -17,7 +17,8 @@
<van-cell v-for="item in newList" :key="item.id" :title="item.title" :label="item.newsTime" :to="{name:'newDetail', query: {id:item.id}}">
<!-- 使用 right-icon 插槽来自定义右侧图标 -->
<template #right-icon>
<van-image :src="item.img" class="search-icon" width="30%" style="margin-left: 10px;" />
<van-image :src="item.img" class="search-icon" width="30%" style="margin-left: 10px;" v-if="item.img" />
<van-image src="../../static/images/zwtpxw.jpg" class="search-icon" width="30%" v-else/>
</template>
</van-cell>
</van-list>


+ 15
- 8
src/views/project/index.vue Wyświetl plik

@@ -1,6 +1,7 @@
<template>
<div class="app-container">
<van-search v-model="value" placeholder="请输入搜索关键词" @search="onSearch"/>

<van-dropdown-menu>
<van-dropdown-item v-model="value1" :options="projectTypeOption" @change="getList"/>
<van-dropdown-item :value="value2" :title="value2" ref="item">
@@ -15,9 +16,10 @@
</van-dropdown-item>
<van-dropdown-item v-model="value3" :options="option3" @change="getList"/>
</van-dropdown-menu>

<van-list v-model="loading" :finished="finished" finished-text="没有更多了">
<router-link :to="{path:'project/projectDetail',query:{id:item.id}}" v-for="(item,index) in infoList" :key="index">
<van-card :thumb="item.fileUrl?''+item.fileUrl:'../../static/images/index/projectImg.png'" >
<van-card :thumb="item.fileUrl?global.severApi+item.fileUrl:'../../static/images/zwtpxw.jpg'" >
<template #tags>
<p class="title">【{{item.rollout}}】{{item.projectName}}</p>
<p class="type">{{ item.projectShowStatus }}</p>
@@ -35,7 +37,7 @@
</template>

<script>
import {getOutProjectList,getDeptList} from "../../api/project";
import {getOutProjectList,getDeptList} from "@/api/project/index";

export default {
name: "project",
@@ -43,7 +45,7 @@ export default {
return {
value1: '',
value2: '标的物位置',
activeId: 1,
activeId: this.global.deptId,
activeIndex: 0,
value3: '',
value:"",
@@ -57,9 +59,11 @@ export default {
],
option3: [
{ text: '竞价状态', value: '' },
{ text: '全部', value: '全部' },
{ text: '竞价中', value: '竞价中' },
{ text: '竞价结束', value: '竞价结束' },
{ text: '正在报名', value: '正在报名' },
{ text: '等待竞价', value: '等待竞价' },
{ text: '正在竞价', value: '正在竞价' },
{ text: '等待成交', value: '等待成交' },
{ text: '已经成交', value: '已经成交' },
],
//标的物类型
projectTypeOption:[{text:'标的物类型',value:''}],
@@ -72,6 +76,7 @@ export default {
},
created() {
this.getDicts("project_type").then(response => {
console.log(response)
response.data.map(item => {
this.projectTypeOption.push({ value:item.dictCode, text: item.dictLabel});
});
@@ -113,11 +118,13 @@ export default {
},
getList(){
let queryDatas = {
deptId: this.value1,
projectNumber:this.activeId,
deptId: this.activeId,
projectNumber:this.value1,
projectShowStatus:this.value3
}
console.log(queryDatas)
getOutProjectList(queryDatas).then(response =>{
console.log(response)
this.infoList = response.rows
if(this.infoList.length>0){
let newList = []


+ 11
- 11
src/views/project/projectDetail.vue Wyświetl plik

@@ -11,10 +11,10 @@
<van-tab title="竞拍信息" title-style="font-size:12px;">
<van-swipe class="my-swipe" height="235" indicator-color="white" @change="onChange">
<template v-if="detail.fileUrlList !== undefined &&detail.fileUrlList.length>0">
<van-swipe-item v-for="(item,index) in detail.fileUrlList" :key="index"><van-image :src="item.fileUrl?''+item.fileUrl:'../../static/images/index/banner.png'" height="235" /></van-swipe-item>
<van-swipe-item v-for="(item,index) in detail.fileUrlList" :key="index"><van-image :src="item.fileUrl?global.severApi+item.fileUrl:'../../static/images/zwtp.jpg'" height="235" /></van-swipe-item>
</template>
<template v-else>
<van-swipe-item><van-image src="../../static/images/index/banner.png" height="235" /></van-swipe-item>
<van-swipe-item><van-image src="../../static/images/zwtp.jpg" height="235" /></van-swipe-item>
</template>
<template #indicator>
<div class="custom-indicator">{{ current + 1 }}/{{ detail.fileUrlList !== undefined &&detail.fileUrlList.length>0 ? detail.fileUrlList.length:1 }}</div>
@@ -28,26 +28,26 @@
<van-col span="24" class="title">【{{ detail.rollout }}】{{ detail.projectName }}</van-col>
</van-row>
<van-row>
<van-col span="4">{{ process }}</van-col>
<van-col span="20"><van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒" /></van-col>
<van-col span="5">{{ process }}</van-col>
<van-col span="19"><van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒" /></van-col>
</van-row>
<van-row>
<van-col span="4">挂牌价</van-col>
<van-col span="20" class="price"><span>{{detail.price}}</span> 元/亩/年</van-col>
<van-col span="5">挂牌价</van-col>
<van-col span="19" class="price"><span>{{detail.price}}</span> 元/亩/年</van-col>
</van-row>
<van-row>
<van-col span="4">保证金</van-col>
<van-col span="20" class="money"><span>{{ detail.deposit }}</span> 元</van-col>
<van-col span="5">保证金</van-col>
<van-col span="19" class="money"><span>{{ detail.deposit }}</span> 元</van-col>
</van-row>
</div>
<div class="lead">
<van-row >
<van-col span="3"><van-image src="../../static/images/icon/phone.png" style="vertical-align: text-top;" /></van-col>
<van-col span="2"><van-image src="../../static/images/icon/phone.png" style="vertical-align: text-top;" /></van-col>
<template v-if="biddinglistInformation!=undefined&&biddinglistInformation.length>0">
<van-col span="4">{{biddinglistInformation[0].userName}}</van-col>
<van-col span="5">{{biddinglistInformation[0].userName}}</van-col>
<van-col span="4">{{biddinglistInformation[0].money}}元</van-col>
<van-col span="4">领先</van-col>
<van-col span="8">{{biddinglistInformation[0].createTime}}</van-col>
<van-col span="9">{{biddinglistInformation[0].createTime}}</van-col>
</template>
</van-row>
</div>


+ 87
- 19
src/views/register/companyRegister.vue Wyświetl plik

@@ -1,34 +1,54 @@
<template>
<div class="app-container" :style="{height:height+'px'}">
<van-nav-bar
title="个人注册"
title="单位用户注册"
left-arrow
fixed
placeholder
@click-left="onClickLeft"
/>
<van-form>
<van-field v-model="tel" type="tel" label="手机号" placeholder="请输入手机号" required :rules="[{ required:true }]" />
<van-form @submit="getSubmit">
<van-field
center
clearable
label="短信验证码"
placeholder="请输入短信验证码"
readonly
clickable
name="picker"
:value="value"
label="供求类型"
placeholder="点击选择供求类型"
@click="showPicker = true"
required
:rules="[{ required:true }]"
/>
<van-popup v-model="showPicker" position="bottom">
<van-picker
show-toolbar
:columns="columns"
@confirm="onConfirm"
@cancel="showPicker = false"
/>
</van-popup>
<van-field v-model="form.phone" type="tel" label="手机号" placeholder="请输入手机号" required :rules="[{ required:true }]" />
<van-field
v-model="form.code"
center
clearable
label="验证码"
placeholder="图形验证码"
required :rules="[{ required:true }]"
>
<template #button>
<van-button size="small" type="primary" native-type="button" :rules="[{ required:true }]">发送验证码</van-button>
<img class="code-img" :src="codeUrl" @click="getCode" />
</template>
</van-field>
<van-field type="password" label="密码" placeholder="请输入密码" required :rules="[{ required:true }]"/>
<van-field type="password" label="确认密码" placeholder="请再次输入密码" required :rules="[{ required:true }]"/>
<van-field v-model="form.password" type="password" label="密码" placeholder="请输入密码" required :rules="[{ required:true }]"/>
<van-field v-model="confirmPassWord" type="password" label="确认密码" placeholder="请再次输入密码" required :rules="[{ required:true }]"/>

<van-field label="公司名称" placeholder="请输入公司名称" required :rules="[{ required:true }]"/>
<van-field label="负责人姓名" placeholder="请输入负责人姓名" required :rules="[{ required:true }]"/>
<van-field label="身份证号" placeholder="请输入法人身份证号" required :rules="[{ required:true }]"/>
<van-field label="社会信用代码" placeholder="请输入公司的社会信用代码" required :rules="[{ required:true }]"/>
<van-field label="营业执照号" placeholder="请输入公司的营业执照号" required :rules="[{ required:true }]"/>
<van-field label="联系地址" placeholder="请输入联系地址" />
<van-field v-model="form.companyName" label="公司名称" placeholder="请输入公司名称" required :rules="[{ required:true }]"/>
<van-field v-model="form.realname" label="负责人姓名" placeholder="请输入负责人姓名" required :rules="[{ required:true }]"/>
<van-field v-model="form.idCardNum" label="身份证号" placeholder="请输入法人身份证号" required :rules="[{ required:true }]"/>
<van-field v-model="form.companyCode" label="社会信用代码" placeholder="请输入公司的社会信用代码" required :rules="[{ required:true }]"/>
<van-field v-model="form.companyLicense" label="营业执照号" placeholder="请输入公司的营业执照号" required :rules="[{ required:true }]"/>
<van-field v-model="form.address" label="联系地址" placeholder="请输入联系地址" />
<div class="submit">
<p>我已阅读并同意<span>《农村产权交易信息服务平台会员注册协议》</span></p>
<van-button round block type="info" color="#007E72" native-type="submit">立即注册</van-button>
@@ -38,24 +58,72 @@
</template>

<script>
import { getCodeImg } from "@/api/login";
import { userRegister } from "@/api/register/index";
export default {
name: "notice",
name: "companyRegister",
data() {
return {
height:0,
tel:''
tel:'',
value:'',
confirmPassWord:'',
showPicker: false,
columns:[],
form: {
phone: "", //账号
code: "", //验证码
password: "", //密码
realname: "", //姓名
idCardNum: "", //身份证号
address: "", //地址
uuid:'',//图形验证码ID
memberType:2,
economicType:1,
companyName:'',
companyLicense:'',
companyCode:''
},
codeUrl:''
};
},
created() {
this.getCode();
this.getDicts("economic_type").then(res => {
res.data.map(item => {
this.columns.push(item.dictLabel);
});
});
this.height = document.body.clientHeight
},
methods: {},
methods: {
getCode() {
getCodeImg().then((res) => {
this.form.uuid = res.uuid;
this.codeUrl = "data:image/gif;base64," + res.img;
});
},
onConfirm(value, index) {
this.value = value;
this.showPicker = false;
this.form.supplyDemandType = index + 1 ;
},
getSubmit(){
console.log(this.form)
userRegister(this.form).then((res) => {
console.log(res)
});
}
},
};
</script>

<style scoped lang="scss">
.app-container {
background-color: #FFF;
.code-img {
width: 220px;
}
}
.submit{
position: absolute;


+ 41
- 14
src/views/register/index.vue Wyświetl plik

@@ -1,5 +1,12 @@
<template>
<div class="app-container" :style="{height:height+'px'}">
<van-nav-bar
title="注册"
left-arrow
fixed
placeholder
@click-left="onClickLeft"
/>
<div class="title">
<p class="title_one">PROPERTY RIGHT</p>
<p class="title_two">TRANSACTION</p>
@@ -106,25 +113,48 @@
<p>农村产权交易网</p>
</div>
</div>
<van-form @submit="onSubmit">
<div class="agree_box">
<label class="agree"><input type="checkbox">我已仔细阅读该须知,并同意该须知相关规定。</label>
<van-button round color="#007e72" block to="registerType">注册</van-button>
<van-field name="checkbox">
<template #input>
<van-checkbox v-model="checkbox" checked-color="#007e72" shape="square"/><p style="color: #FFF;margin-left: 5px;">我已仔细阅读该须知,并同意该须知相关规定。</p>
</template>
</van-field>
</div>
<van-button native-type="submit" type="info" round color="#007e72" block style="width: 90%;margin:0 auto;">注册</van-button>
</van-form>
</div>
</template>

<script>
import {Dialog} from "vant";

export default {
name: "notice",
data() {
return {
height:0
height:0,
checkbox:false
};
},
created() {
this.height = document.body.clientHeight
},
methods: {},
methods: {
onSubmit(){
console.log(this.checkbox);
if(this.checkbox == true){
window.location='registerType';
}else{
Dialog.confirm({
title: '系统提示',
message: '请选择同意协议',
confirmButtonText: '确定',
showCancelButton:false
})
}
}
},
};
</script>

@@ -136,7 +166,7 @@ export default {
height: 100%;
}
.title{
padding-top: 30%;
padding-top: 20%;
width: 88%;
margin: 0 auto;
}
@@ -176,15 +206,12 @@ export default {
width: 90%;
margin: 0 auto;
margin-top: 0.4rem;
margin-bottom: 15px;
}
.agree{
color: #FFF;
margin-bottom:0.4rem;
display: block;

.van-cell{
padding: 0;
background-color: transparent;
margin: 0 auto;
}
.agree_box input[type='checkbox']{
margin-right: 5px;
position: relative;
top: 5px;
}
</style>

+ 8
- 1
src/views/register/registerType.vue Wyświetl plik

@@ -1,5 +1,12 @@
<template>
<div class="app-container" :style="{height:height+'px'}">
<van-nav-bar
title="注册"
left-arrow
fixed
placeholder
@click-left="onClickLeft"
/>
<div class="title">
<p class="title_one">PROPERTY RIGHT</p>
<p class="title_two">TRANSACTION</p>
@@ -56,7 +63,7 @@ export default {
overflow: hidden;
}
.title{
padding-top: 30%;
padding-top: 20%;
width: 88%;
margin: 0 auto;
}


+ 62
- 16
src/views/register/userRegister.vue Wyświetl plik

@@ -1,30 +1,44 @@
<template>
<div class="app-container" :style="{height:height+'px'}">
<van-nav-bar
title="个人注册"
title="个人用户注册"
left-arrow
fixed
placeholder
@click-left="onClickLeft"
/>
<van-form>
<van-field v-model="tel" type="tel" label="手机号" placeholder="请输入手机号" required :rules="[{ required:true }]" />
<van-form @submit="getSubmit">
<van-field v-model="form.phone" type="tel" label="手机号" placeholder="请输入手机号" required :rules="[{ required:true }]" />
<!-- <van-field-->
<!-- center-->
<!-- clearable-->
<!-- label="短信验证码"-->
<!-- placeholder="请输入短信验证码"-->
<!-- required-->
<!-- v-model="form.sms"-->
<!-- :rules="[{ required:true }]"-->
<!-- >-->
<!-- <template #button>-->
<!-- <van-button size="small" type="primary" native-type="button" :rules="[{ required:true }]">发送验证码</van-button>-->
<!-- </template>-->
<!-- </van-field>-->
<van-field
v-model="form.code"
center
clearable
label="短信验证码"
placeholder="请输入短信验证码"
required
:rules="[{ required:true }]"
label="验证码"
placeholder="图形验证码"
required :rules="[{ required:true }]"
>
<template #button>
<van-button size="small" type="primary" native-type="button" :rules="[{ required:true }]">发送验证码</van-button>
<img class="code-img" :src="codeUrl" @click="getCode" />
</template>
</van-field>
<van-field type="password" label="密码" placeholder="请输入密码" required :rules="[{ required:true }]"/>
<van-field type="password" label="确认密码" placeholder="请再次输入密码" required :rules="[{ required:true }]"/>
<van-field label="姓名" placeholder="请输入姓名" required :rules="[{ required:true }]"/>
<van-field label="身份证号" placeholder="请输入身份证号" required :rules="[{ required:true }]"/>
<van-field label="联系地址" placeholder="请输入联系地址" />
<van-field v-model="form.password" type="password" label="密码" placeholder="请输入密码" required :rules="[{ required:true }]"/>
<van-field v-model="confirmPassWord" type="password" label="确认密码" placeholder="请再次输入密码" required :rules="[{ required:true }]"/>
<van-field v-model="form.realname" label="姓名" placeholder="请输入姓名" required :rules="[{ required:true }]"/>
<van-field v-model="form.idCardNum" label="身份证号" placeholder="请输入身份证号" required :rules="[{ required:true }]"/>
<van-field v-model="form.address" label="联系地址" placeholder="请输入联系地址" />
<div class="submit">
<p>我已阅读并同意<span>《农村产权交易信息服务平台会员注册协议》</span></p>
<van-button round block type="info" color="#007E72" native-type="submit">立即注册</van-button>
@@ -34,24 +48,56 @@
</template>

<script>
import { getCodeImg } from "@/api/login";
import { userRegister } from "@/api/register/index";
export default {
name: "notice",
name: "userRegister",
data() {
return {
height:0,
tel:''
tel:'',
confirmPassWord:'',
form: {
phone: "", //账号
code: "", //验证码
password: "", //密码
realname: "", //姓名
idCardNum: "", //身份证号
address: "", //地址
uuid:'',//图形验证码ID
memberType:1,
economicType:1
},
codeUrl:''
};
},
created() {
this.getCode()
this.height = document.body.clientHeight
},
methods: {},
methods: {
getCode() {
getCodeImg().then((res) => {
this.form.uuid = res.uuid;
this.codeUrl = "data:image/gif;base64," + res.img;
});
},
getSubmit(){
console.log(this.form)
userRegister(this.form).then((res) => {
console.log(res)
});
}
},
};
</script>

<style scoped lang="scss">
.app-container {
background-color: #FFF;
.code-img {
width: 220px;
}
}
.submit{
position: absolute;


+ 19
- 3
src/views/user/accountSetting/index.vue Wyświetl plik

@@ -7,21 +7,37 @@
placeholder
@click-left="onClickLeft"
/>
<van-cell title="用户资料修改" to="userInformation" is-link icon="points" />
<van-cell title="用户资料修改" @click="goInformation" to="userInformation" is-link icon="points" />
<van-cell title="银行账户信息修改" to="bankInformation" is-link icon="credit-pay" />
</div>
</template>

<script>
import { getInfo } from "@/api/login/index";
import { getMember , showUserImg } from "@/api/user/index";
export default {
name: "notice",
name: "Setting",
data() {
return {
};
},
created() {
getInfo().then(response => {
getMember(response.user.userId).then(response => {
this.memberType = response.data.memberType;
console.log(this.memberType)
});
});
},
methods: {
goInformation(){
if(this.memberType == 1){
window.location = 'userInformation';
}else{
window.location = 'companyInformation';
}
}
},
methods: {},
};
</script>



+ 188
- 19
src/views/user/accountSetting/userInformation/companyInformation.vue Wyświetl plik

@@ -5,57 +5,226 @@
left-arrow
fixed
placeholder
@click-left="onClickLeft"
/>
<van-form>
<van-field value="15314031621" type="tel" label="手机号" placeholder="请输入手机号" required :rules="[{ required:true }]" >
<van-form @submit="submitForm">
<van-field v-model="tel" readonly type="tel" label="手机号" placeholder="请输入手机号" required :rules="[{ required:true }]" >
<template #extra >
<p style="color: #007e72">修改手机号</p>
</template>
</van-field>
<van-field value="15314031621" label="密码" placeholder="请输入密码" required :rules="[{ required:true }]"/>
<van-field value="北京农燊高科" label="公司名称" placeholder="请输入公司名称" required :rules="[{ required:true }]"/>
<van-field value="庞东旭" label="负责人姓名" placeholder="请输入负责人姓名" required :rules="[{ required:true }]"/>
<van-field value="230381199705255156" label="身份证号" placeholder="请输入法人身份证号" required :rules="[{ required:true }]"/>
<van-field value="1122334" label="社会信用代码" placeholder="请输入公司的社会信用代码" required :rules="[{ required:true }]"/>
<van-field value="私企" label="企业性质" placeholder="请输入企业性质" />
<van-field value="软件程序开发" label="经营范围" placeholder="请输入经营范围" />
<van-field value="2010.9-2020.5" label="经营期限" placeholder="请输入经营期限" />
<van-field value="2010年9月10日" label="成立时间" placeholder="请输入成立时间" />
<van-field value="2100万" label="注册资金" placeholder="请输入注册资金" />
<van-field value="124578963" label="营业执照号" placeholder="请输入公司的营业执照号" required :rules="[{ required:true }]"/>
<van-field value="山东威海" label="联系地址" placeholder="请输入联系地址" />
<!-- <van-field value="15314031621" label="密码" placeholder="请输入密码" required :rules="[{ required:true }]"/>-->
<van-field v-model="userForm.companyName" label="公司名称" placeholder="请输入公司名称" required :rules="[{ required:true }]"/>
<van-field v-model="userForm.realname" label="负责人姓名" placeholder="请输入负责人姓名" required :rules="[{ required:true }]"/>
<van-field v-model="userForm.idCardNum" label="身份证号" placeholder="请输入法人身份证号" required :rules="[{ required:true }]"/>
<van-field v-model="userForm.companyCode" label="社会信用代码" placeholder="请输入公司的社会信用代码" required :rules="[{ required:true }]"/>

<van-field
readonly
clickable
label="企业性质"
:value="companyNameValue"
placeholder="选择企业性质"
@click="showPickerPiker = true"
required :rules="[{ required:true }]"
/>
<van-popup v-model="showPickerPiker" round position="bottom">
<van-picker
show-toolbar
:columns="companyNameList"
@cancel="showPickerPiker = false"
@confirm="onConfirmCompany"
/>
</van-popup>
<!-- <van-field v-model="userForm.companyNature" label="企业性质" placeholder="请输入企业性质" required :rules="[{ required:true }]" />-->


<van-field v-model="userForm.companyScope" label="经营范围" placeholder="请输入经营范围" required :rules="[{ required:true }]" />
<van-field v-model="userForm.companyTimeLimit" label="经营期限" placeholder="请输入经营期限" required :rules="[{ required:true }]" />
<van-field
readonly
clickable
label="成立时间"
:value="userForm.companySetupTime"
placeholder="选择成立时间"
@click="showPicker = true"
required :rules="[{ required:true }]"
/>
<van-popup v-model="showPicker" round position="bottom">
<van-datetime-picker
v-model="currentDate"
type="date"
title="选择年月日"
:min-date="minDate"
:max-date="maxDate"
@cancel="showPicker = false"
@confirm="onConfirm"
/>
</van-popup>
<!-- <van-field v-model="userForm.companySetupTime" label="成立时间" placeholder="请输入成立时间" required :rules="[{ required:true }]" />-->
<van-field v-model="userForm.companyCapital" label="注册资金" placeholder="请输入注册资金" required :rules="[{ required:true }]" />
<van-field v-model="userForm.companyLicense" label="营业执照号" placeholder="请输入公司的营业执照号" required :rules="[{ required:true }]"/>
<van-field v-model="userForm.address" label="联系地址" placeholder="请输入联系地址" required :rules="[{ required:true }]" />
<van-field name="uploader" label="上传相关附件">
<template #input>
<van-uploader :after-read="afterRead" v-model="fileList" multiple />
<van-uploader :after-read="afterRead" :before-delete="deleteFile" v-model="fileList" multiple :max-count="5" />
</template>
</van-field>
<p style="color: red; text-align: center;">*身份证照片、本人和身份证的合影</p>
<div class="submit">
<van-button round block type="info" color="#007E72" native-type="submit" style="width: 90%;margin: 0 auto;">立即注册</van-button>
<van-button round block type="info" color="#007E72" native-type="submit" style="width: 90%;margin: 0 auto;">保存</van-button>
</div>
</van-form>
</div>
</template>

<script>
import { getInfo } from "@/api/login/index";
import { getMember , base64Attach , userUpdate , showUserImg , deleteUserImg} from "@/api/user/index";
import {Dialog} from "vant";
export default {
name: "notice",
name: "companyInformation",
data() {
return {
height:0,
tel:'',
fileList:[]
showPicker: false,
showPickerPiker: false,
minDate: new Date(1900, 0, 1),
maxDate: new Date(),
currentDate: new Date(),
value:'',
companyNameValue:'',
fileList:[],
companyNameList:[],
form: {
files:[],
fileType:'',
bizPath:'transaction',
tableName:'t_transaction_member',
tableId:''
},
userForm:{
companyName:'',
idCardNum:'',
realname:'',
companyCode:'',
companyName:'',
companyNature:'',
companyScope:'',
companyTimeLimit:'',
companySetupTime:'',
companyCapital:'',
companyLicense:'',
address:'',
},
userInfo:[],
upLoadList:[]
};
},
created() {
this.height = document.body.clientHeight
this.getInfo()
this.getDicts("company_nature").then(res => {
console.log(res);
for (var i = 0 ; i < res.data.length ; i++ ){
this.companyNameList.push(res.data[i].dictLabel)
}
//this.value = this.selectDictLabel(res.data,response.data.supplyDemandType);
});
},
methods: {
onConfirmCompany(value,index){
console.log(value)
this.companyNameValue = value;
this.showPickerPiker = false;
this.userForm.companyNature = index+1
console.log(this.userForm.companyName)
},
onConfirm(value) {
this.userForm.companySetupTime = this.getNowFormatDate(value).substr(0,10);
console.log(new Date())
this.showPicker = false;
},
getInfo(){
getInfo().then(response => {
getMember(response.user.userId).then(response => {
console.log(response)

this.userForm.companyName = response.data.companyName;
this.userForm.idCardNum = response.data.idCardNum;
this.userForm.realname = response.data.realname;
this.userForm.companyCode = response.data.companyCode;
this.userForm.companyName = response.data.companyName;
this.userForm.companyNature = response.data.companyNature;
this.userForm.companyScope = response.data.companyScope;
this.userForm.companyTimeLimit = response.data.companyTimeLimit;
this.userForm.companySetupTime = response.data.companySetupTime;
this.userForm.companyCapital = response.data.companyCapital;
this.userForm.companyLicense = response.data.companyLicense;
this.userForm.address = response.data.address;

this.tel = response.data.phone

this.getDicts("company_nature").then(res => {
console.log(res);
this.companyNameValue = this.selectDictLabel(res.data,response.data.companyNature);
});

this.userForm.id = response.data.id;
this.form.tableId = response.data.id;
showUserImg(response.data.id).then(responseSecond => {
console.log(responseSecond)
this.form.files = responseSecond.data
for (var i = 0 ; i < responseSecond.data.length ; i++){
this.fileList.push({url:this.global.severApi+responseSecond.data[i].fileUrl,id:responseSecond.data[i].id})
}
});
});
});
},
afterRead(file) {
// 此时可以自行将文件上传至服务器
console.log(this.fileList)
console.log(file);
for ( var i = 0 ; i < this.fileList.length ; i++){
console.log(this.fileList[i].url)
if(this.fileList[i].url == undefined&&this.fileList!='') {
this.fileList[i] = {url:this.fileList[i].content, id: '', isImage: true};
}
}
},
deleteFile(elIndex){
if(elIndex.id != ''){
deleteUserImg(elIndex.id).then(response => {});
}
return (file, name) => {
let fileIndex = name.index
this.fileList[elIndex].splice(fileIndex, 1)
this.upLoadList[elIndex].splice(fileIndex, 1)
}
},
submitForm(){
this.form.files = [];
userUpdate(this.userForm).then(response => {
var imgList = [];
console.log(this.fileList)
for (var i = 0 ; i < this.fileList.length ; i++){
if(this.fileList[i].url.indexOf('http') == -1&&this.fileList!=''){
this.form.files.push(this.fileList[i].url);
}
}
console.log(this.form.files)
base64Attach(this.form).then(responseSecond => {
if(response.code == 200 && responseSecond.code == 200){
Dialog.confirm({
title: '系统提示',
message: '修改成功',
confirmButtonText: '确定',
})
}
});
});
}
},
};
</script>


+ 15
- 7
src/views/user/accountSetting/userInformation/userInformation.vue Wyświetl plik

@@ -8,7 +8,7 @@
@click-left="onClickLeft"
/>
<van-form @submit="submitForm">
<van-field v-model="userForm.phone" type="tel" label="手机号" placeholder="请输入手机号" readonly required :rules="[{ required:true }]" >
<van-field v-model="tel" readonly type="tel" label="手机号" placeholder="请输入手机号" readonly required :rules="[{ required:true }]" >
<template #extra >
<p style="color: #007e72" onclick="window.location='phoneInformation'">修改手机号</p>
</template>
@@ -47,7 +47,6 @@ export default {
tableId:''
},
userForm:{
phone:'',
idCardNum:'',
realname:'',
address:'',
@@ -64,16 +63,17 @@ export default {
getInfo(){
getInfo().then(response => {
getMember(response.user.userId).then(response => {
console.log(response)
this.userForm.idCardNum = response.data.idCardNum;
this.userForm.realname = response.data.realname;
this.userForm.address = response.data.address;
this.userForm.phone = response.data.phone;
this.userForm.id = response.data.id;
this.form.tableId = response.data.id;
this.tel = response.data.phone
showUserImg(response.data.id).then(responseSecond => {
console.log(responseSecond)
for (var i = 0 ; i < responseSecond.data.length ; i++){
this.fileList.push({url:'http://116.255.135.38:8081/nsgk_test'+responseSecond.data[i].fileUrl,id:responseSecond.data[i].id})
this.fileList.push({url:this.global.severApi+responseSecond.data[i].fileUrl,id:responseSecond.data[i].id})
}
});
});
@@ -81,10 +81,17 @@ export default {
},
afterRead(file) {
// 此时可以自行将文件上传至服务器
this.fileList[this.fileList.length-1] = {url:file.content,id:'',isImage: true};
for ( var i = 0 ; i < this.fileList.length ; i++){
console.log(this.fileList[i].url)
if(this.fileList[i].url == undefined&&this.fileList!='') {
this.fileList[i] = {url:this.fileList[i].content, id: '', isImage: true};
}
}
},
deleteFile(elIndex){
deleteUserImg(elIndex.id).then(response => {});
if(elIndex.id != ''){
deleteUserImg(elIndex.id).then(response => {});
}
return (file, name) => {
let fileIndex = name.index
this.fileList[elIndex].splice(fileIndex, 1)
@@ -122,10 +129,11 @@ export default {
background-color: #FFF;
}
.submit{
position: absolute;
position: fixed;
bottom: 5%;
width: 90%;
left: 5%;
background-color: #FFFFFF;
p{
text-align: center;
margin-bottom: 0.2rem;


+ 69
- 28
src/views/user/bidding/index.vue Wyświetl plik

@@ -11,57 +11,98 @@
v-model="loading"
:finished="finished"
finished-text="没有更多了"
@load="onLoad"
@load="getList"
class="biddingList"
>
<van-row>
<van-col span="11" style="font-size: 0.4rem;line-height: 0.65rem">管家堡乡张村张三丰500亩水田出租出</van-col>
<van-col span="13">
<van-row class="row">
<van-col span="9">距竞价结束</van-col>
<van-col span="15" class="col"><van-count-down :time="time" format="DD天HH时mm分ss秒" style="font-size: 0.2rem;color: #C21F3A" /></van-col>
</van-row>
<van-row class="row">
<van-col span="9">当前价格</van-col>
<van-col span="15" class="col"><span>500</span>元/亩/年</van-col>
</van-row>
<van-row class="row" style="margin: 0;">
<van-col span="9">我的出价</van-col>
<van-col span="15" class="col"><span>500</span>元/亩/年</van-col>
</van-row>
</van-col>
</van-row>
<van-divider :style="{borderColor:'#B4B4B4'}"/>
<van-cell v-for="(item , index) in biddinglist" :key="index">

<van-row>
<van-col span="24" style="font-size: 0.4rem;margin-bottom: 0.1rem;">{{item.projectName}}</van-col>
</van-row>

<van-row>
<van-col span="24">
<van-row class="row">
<van-col span="4" style="font-size: 0.2rem;">当前价格</van-col>
<van-col span="8" class="col"><span>{{item.money}}</span>{{item.unit}}</van-col>
<van-col span="4" style="font-size: 0.2rem;">我的出价</van-col>
<van-col span="8" class="col"><span>{{item.memberMoney}}</span>{{item.unit}}</van-col>
</van-row>
<van-row class="row">
<van-col span="5" style="font-size: 0.2rem;">距竞价结束</van-col>
<van-col span="19" class="col">
<van-count-down :time="item.biddingStopTime" format="DD天HH时mm分ss秒" style="font-size: 0.2rem;color: #C21F3A;margin-top: 3px;" />
</van-col>
</van-row>
</van-col>
</van-row>

</van-cell>
</van-list>
</div>
</template>

<script>
import { getMember , biddinglist } from "@/api/user/index";
import { getInfo } from "@/api/login/index";
export default {
name: "notice",
name: "userBidding",
data() {
return {
loading: false,
finished: true,
time: 30 * 60 * 60 * 1000,
finished: false,
biddinglist:[],
queryParams:{
memberId:'',
pageNum:1,
pageSize:10
}
};
},
created() {
this.getInfo();
},
methods: {
getInfo(){
getInfo().then(response => {
getMember(response.user.userId).then(response => {
this.queryParams.memberId = response.data.id;
this.getList();
});
});
},
getList(){
this.loading = true;
biddinglist(this.queryParams).then(response => {
console.log(response)
for (var i = 0; i < response.rows.length; i++) {
var nowTime = Date.parse(new Date());
var timeTest = response.rows[i].biddingStopTime;
var endTimes=timeTest.substring(0,10).split('-');
timeTest = endTimes[1]+'/'+endTimes[2]+'/'+endTimes[0]+' '+timeTest.substring(10,19);
var leftTime = Date.parse(timeTest)-nowTime;
response.rows[i].biddingStopTime = leftTime ;
this.biddinglist.push(response.rows[i]);
}
if(this.biddinglist.length >= response.total){
this.finished = true;
this.loading = false;
return;
}
this.finished = true;
this.loading = false;
});
},
},
methods: {},
};
</script>

<style scoped lang="scss">
.app-container {

background-color: #FFF;
}
.biddingList{
padding: 0.5rem 2% 0;
.van-row{
padding: 0 3%;
}
padding: 0 2%;
}
.row{
color: #666666;


+ 18
- 8
src/views/user/index.vue Wyświetl plik

@@ -12,7 +12,7 @@
/>
</van-col>
<van-col span="17">
<p>13306310001</p>
<p>{{phone}}</p>
<p onclick="window.location='accountSetting'">账户设置</p>
</van-col>
</van-row>
@@ -22,25 +22,38 @@
<van-cell title="我的咨询" is-link icon="service-o" to="userInteraction" />
<van-cell title="我的供求" is-link icon="bag-o" to="userSupply" />
</div>
<van-button plain type="warning" class="loginOut" @click="loginOut">退出登录</van-button>
<van-button class="loginOut" color="linear-gradient(to right, #ff6034, #ee0a24)" @click="loginOut">
退出登录
</van-button>
</div>
</template>

<script>
import { logout } from "@/api/login/index";
import { getMember , supplyList , deleteSupply} from "@/api/user/index";
import { logout ,getInfo } from "@/api/login/index";
export default {
name: "notice",
name: "user",
data() {
return {
phone:''
};
},
created() {
this.getInfo();
},
methods: {
loginOut(){
logout().then(response => {
location.reload(true);
});
},
getInfo(){
getInfo().then(response => {
console.log(response)
getMember(response.user.userId).then(response => {
console.log(response)
this.phone = response.data.phone;
});
});
},
},
@@ -76,8 +89,5 @@ export default {
.loginOut{
width: 94%;
margin-left: 3%;
background-color: transparent;
color:red;
border-color: red;
}
</style>

+ 35
- 11
src/views/user/supply/index.vue Wyświetl plik

@@ -17,7 +17,6 @@
:finished="finished"
finished-text="没有更多了"
style="margin-top: 10px;"
@load="getList"
>
<van-cell icon="play" v-for="(item , index) in supplyList" v-if="item.supplyDemandType == 1" :key="index">
<template #title>
@@ -25,12 +24,12 @@
</template>
<template #label>
联系电话:{{item.phone}} <p style="float: right;">发布时间:{{item.logintime}}</p>
<van-row style="margin-top: 5px;">
<van-row style="margin-top: 5px;" v-if="item.isAuditStatus == 'N'">
<van-col span="16"></van-col>
<van-col span="4" style="color: #007E72;text-align: right;" @click="goAdd('update',item.id)" v-if="item.reply == null">
<van-icon name="edit" size="15" style="top:3px"/>修改
</van-col>
<van-col span="4" style="color: #007E72;text-align: right;" @click="deleteInteraction(item.id)" v-if="item.reply == null">
<van-col span="4" style="color: #007E72;text-align: right;" @click="deleteSupply(item.id)" v-if="item.reply == null">
<van-icon name="delete-o" size="15" style="top:3px"/>删除
</van-col>
</van-row>
@@ -52,6 +51,15 @@
</template>
<template #label>
联系电话:{{item.phone}} <p style="float: right;">发布时间:{{item.logintime}}</p>
<van-row style="margin-top: 5px;" v-if="item.isAuditStatus == 'N'">
<van-col span="16"></van-col>
<van-col span="4" style="color: #007E72;text-align: right;" @click="goAdd('update',item.id)" v-if="item.reply == null">
<van-icon name="edit" size="15" style="top:3px"/>修改
</van-col>
<van-col span="4" style="color: #007E72;text-align: right;" @click="deleteSupply(item.id)" v-if="item.reply == null">
<van-icon name="delete-o" size="15" style="top:3px"/>删除
</van-col>
</van-row>
</template>
</van-cell>
</van-list>
@@ -61,8 +69,9 @@
</template>

<script>
import { getMember , supplyList } from "@/api/user/index";
import { getMember , supplyList , deleteSupply} from "@/api/user/index";
import { getInfo } from "@/api/login/index";
import {Dialog} from "vant";
export default {
name: "userSupply",
data() {
@@ -76,8 +85,6 @@ export default {
//查询参数
queryParams:{
memberId:'',
pageNum:1,
pageSize:10
}
};
},
@@ -100,6 +107,7 @@ export default {
getInfo().then(response => {
getMember(response.user.userId).then(response => {
this.queryParams.memberId = response.data.id;
this.getList();
});
});
},
@@ -110,14 +118,30 @@ export default {
for (var i = 0; i < response.rows.length; i++) {
this.supplyList.push(response.rows[i]);
}
if(this.supplyList.length >= response.total){
this.finished = true;
return;
}
this.queryParams.pageNum += 1 ;
this.finished = true;
this.loading = false;
});
},
deleteSupply(id){
Dialog.confirm({
title: '系统提示',
message: '是否删除?',
confirmButtonText: '确定',
}).then(() => {
deleteSupply(id).then(response => {
Dialog.confirm({
title: '系统提示',
message: '删除成功',
confirmButtonText: '确定',
showCancelButton:false
}).then(() => {
this.supplyList = [];
this.getList();
})
});
})
}

},
};
</script>

+ 95
- 36
src/views/user/supply/supplyAdd.vue Wyświetl plik

@@ -13,9 +13,11 @@
clickable
name="picker"
:value="value"
label="选择器"
placeholder="点击选择城市"
label="供求类型"
placeholder="点击选择供求类型"
@click="showPicker = true"
required
:rules="[{ required:true }]"
/>
<van-popup v-model="showPicker" position="bottom">
<van-picker
@@ -25,11 +27,16 @@
@cancel="showPicker = false"
/>
</van-popup>
<van-field v-model="form.projectName" label="项目名称" placeholder="请输入标题" required :rules="[{ required:true }]"/>
<van-field v-model="form.location" label="项目地址" placeholder="请输入标题" required :rules="[{ required:true }]"/>
<van-field v-model="form.projectName" label="项目名称" placeholder="请输入项目名称" required :rules="[{ required:true }]"/>
<van-field v-model="form.location" label="项目地址" placeholder="请输入项目地址" required :rules="[{ required:true }]"/>
<van-field v-model="form.realname" label="姓名" placeholder="请输入姓名" required :rules="[{ required:true }]"/>
<van-field v-model="form.phone" label="联系电话" placeholder="请输入联系电话" required :rules="[{ required:true }]"/>
<van-field v-model="form.projectContent" label="项目详情" type="textarea" autosize placeholder="请输入咨询内容" required :rules="[{ required:true }]"/>
<van-field v-model="form.projectContent" label="项目详情" type="textarea" autosize placeholder="请输入项目详情" required :rules="[{ required:true }]"/>
<van-field name="uploader" label="上传相关附件" required :rules="[{ required:true }]">
<template #input>
<van-uploader :after-read="afterRead" :before-delete="deleteFile" v-model="fileList" multiple :max-count="5" />
</template>
</van-field>
<div class="submit">
<van-button round block type="info" color="#007E72" native-type="submit">发布</van-button>
</div>
@@ -38,7 +45,7 @@
</template>

<script>
import { getMember , userDemand , updateCommunicate , selectCommunicate } from "@/api/user/index";
import { getMember , userDemand , updateDemand , selectDemand , base64Attach , showImg , deleteUserImg} from "@/api/user/index";
import { getInfo } from "@/api/login/index";
import {Dialog} from "vant";
export default {
@@ -50,6 +57,7 @@ export default {
value: '',
showPicker: false,
columns:['供应','需求'],
fileList:[],
form:{
projectName:'',
location:'',
@@ -58,7 +66,16 @@ export default {
projectContent:'',
logintime:'',
deptId:100,
}
supplyDemandType:''
},
file:{
tableName:'t_transaction_supply_demand',
tableId:'',
files:[],
fileType:'',
bizPath:'transaction'
},
upLoadList:[]
};
},
created() {
@@ -73,10 +90,29 @@ export default {
}
},
methods: {
afterRead(file) {
// 此时可以自行将文件上传至服务器
for ( var i = 0 ; i < this.fileList.length ; i++){
if(this.fileList[i].url == undefined&&this.fileList!='') {
this.fileList[i] = {url:this.fileList[i].content, id: '', isImage: true};
}
}
},
deleteFile(elIndex){
// deleteUserImg(elIndex.id).then(response => {});
if(elIndex.id != ''){
deleteUserImg(elIndex.id).then(response => {});
}
return (file, name) => {
let fileIndex = name.index
this.fileList[elIndex].splice(fileIndex, 1)
this.upLoadList[elIndex].splice(fileIndex, 1)
}
},
onConfirm(value, index) {
this.value = value;
this.showPicker = false;
Toast(`当前值:${value}, 当前索引:${index}`);
this.form.supplyDemandType = index + 1 ;
},
getInfo(){
getInfo().then(response => {
@@ -88,46 +124,68 @@ export default {
});
},
getInteraction(){
selectCommunicate(this.$route.query.id).then(response => {
this.form.content = response.data.content;
this.form.title = response.data.title;
this.form.realname = response.data.realname;
this.form.phone = response.data.phone;
this.form.id = this.$route.query.id;
selectDemand(this.$route.query.id).then(response => {
this.form.projectName = response.data.projectName;
this.form.location = response.data.location;
this.form.projectContent = response.data.projectContent;
this.form.realname = response.data.realname;
this.form.phone = response.data.phone;
this.form.id = this.$route.query.id;
this.form.supplyDemandType = response.data.supplyDemandType;
this.getDicts("supply_demand_type").then(res => {
this.value = this.selectDictLabel(res.data,response.data.supplyDemandType);
});
showImg(response.data.id).then(responseSecond => {
for (var i = 0 ; i < responseSecond.data.length ; i++){
this.fileList.push({url:this.global.severApi+responseSecond.data[i].fileUrl,id:responseSecond.data[i].id})
}
});
});
},
submitInteraction(){
this.form.logintime = this.getNowFormatDate();
if(this.$route.query.type == 'update'){
updateCommunicate(this.form).then(response => {
if (response.code == 200){
Dialog.confirm({
title: '系统提示',
message: '修改成功',
confirmButtonText: '确定',
showCancelButton:false
}).then(() => {
self.location=document.referrer;
})
this.file.tableId = this.$route.query.id ;
updateDemand(this.form).then(response => {
for (var i = 0 ; i < this.fileList.length ; i++){
if(this.fileList[i].url.indexOf('http://') == -1&&this.fileList!=''){
this.file.files.push(this.fileList[i].url);
}
}
base64Attach(this.file).then(response => {
if (response.code == 200){
Dialog.confirm({
title: '系统提示',
message: '修改成功',
confirmButtonText: '确定',
showCancelButton:false
}).then(() => {
self.location=document.referrer;
})
}
});
});
}else{
userDemand(this.form).then(response => {
if (response.code == 200){
Dialog.confirm({
title: '系统提示',
message: '发布成功',
confirmButtonText: '确定',
showCancelButton:false
}).then(() => {
self.location=document.referrer;
})
this.file.tableId = response.data;
for(var i = 0 ; i < this.fileList.length ; i++){
this.file.files.push(this.fileList[i].url);
}
base64Attach(this.file).then(response => {
if (response.code == 200){
Dialog.confirm({
title: '系统提示',
message: '发布成功',
confirmButtonText: '确定',
showCancelButton:false
}).then(() => {
self.location=document.referrer;
})
}
});
});
}

},

},
};
</script>
@@ -137,10 +195,11 @@ export default {
background-color: #FFF;
}
.submit{
position: absolute;
position: fixed;
bottom: 5%;
width: 90%;
left: 5%;
background-color: #FFFFFF;
p{
text-align: center;
margin-bottom: 0.2rem;


BIN
static/images/zwtpxw.jpg Wyświetl plik

Przed Po
Szerokość: 512  |  Wysokość: 512  |  Rozmiar: 32 KiB

Ładowanie…
Anuluj
Zapisz