Browse Source

上传

master
前端-胡立永 11 months ago
parent
commit
47367fb097
16 changed files with 484 additions and 385 deletions
  1. +32
    -8
      api/api.js
  2. +38
    -0
      components/base/addressSpot.vue
  3. +5
    -20
      components/list/dynamic/daynamicInfo.vue
  4. +2
    -0
      main.js
  5. +18
    -0
      pages_order/car/carList.vue
  6. +46
    -37
      pages_order/components/list/gourmet/gourmetItem.vue
  7. +100
    -0
      pages_order/components/list/renting/rentingItem.vue
  8. +2
    -1
      pages_order/components/list/workList/workItem.vue
  9. +21
    -14
      pages_order/components/screen/screenRen.vue
  10. +8
    -64
      pages_order/gourmet/gourmetDetail.vue
  11. +18
    -1
      pages_order/gourmet/gourmetList.vue
  12. +18
    -155
      pages_order/renting/rentingList.vue
  13. +18
    -1
      pages_order/scenicSpot/scenicSpotList.vue
  14. +125
    -66
      pages_order/work/addWork.vue
  15. +32
    -17
      pages_order/work/workList.vue
  16. +1
    -1
      uni_modules/uv-picker/components/uv-picker/props.js

+ 32
- 8
api/api.js View File

@ -190,6 +190,38 @@ const config = {
auth : true,
showLoading : true,
},
//发布评论
addComment: {
url: '/token/addComment',
method: 'POST',
limit : 1000,
auth : true,
showLoading : true,
},
//发布租房信息
publishRent: {
url: '/token/publishRent',
method: 'POST',
limit : 1000,
auth : true,
showLoading : true,
},
//发布招聘信息
publishJob: {
url: '/token/publishJob',
method: 'POST',
limit : 1000,
auth : true,
showLoading : true,
},
//发布车找人信息
publishCar: {
url: '/token/publishCar',
method: 'POST',
limit : 1000,
auth : true,
showLoading : true,
},
//查询自己发布的动态
getMyPostPage: {
url: '/token/getMyPostPage',
@ -225,14 +257,6 @@ const config = {
method: 'GET',
auth : true,
},
//发布评论
addComment: {
url: '/token/addComment',
method: 'POST',
limit : 1000,
auth : true,
showLoading : true,
},
//获取粉丝列表接口
getFansList: {
url: '/token/getFansList',


+ 38
- 0
components/base/addressSpot.vue View File

@ -0,0 +1,38 @@
<template>
<view class="address"
@click.stop="openLocation(latitude, longitude)"
v-if="address">
<uv-icon size="30rpx" name="map"></uv-icon>
<view class="text-ellipsis">
{{ address }}
</view>
</view>
</template>
<script>
export default {
props : ['latitude', 'longitude', 'address'],
data() {
return {
}
},
methods: {
}
}
</script>
<style scoped lang="scss">
.address {
font-size: 24rpx;
margin: 20rpx 0;
display: flex;
align-items: center;
background-color: #eee;
padding: 10rpx 20rpx;
width: fit-content;
border-radius: 40rpx;
max-width: calc(100% - 40rpx);
}
</style>

+ 5
- 20
components/list/dynamic/daynamicInfo.vue View File

@ -3,14 +3,11 @@
<view class="dynamics" v-html="$utils.stringFormatHtml(item.title)">
</view>
<view class="address"
@click.stop="openLocation(item.latitude, item.longitude)"
v-if="item.address">
<uv-icon size="30rpx" name="map"></uv-icon>
<view class="text-ellipsis">
{{ item.address }}
</view>
</view>
<addressSpot
:address="item.address"
:latitude="item.latitude"
:longitude="item.longitude"
/>
<view class="Artworkimages">
<view class="wrokimg" @click.stop="previewImage(images, i)" :key="i" v-for="(img, i) in images">
@ -52,18 +49,6 @@
letter-spacing: 3rpx;
}
.address {
font-size: 24rpx;
margin: 20rpx 0;
display: flex;
align-items: center;
background-color: #eee;
padding: 10rpx 20rpx;
width: fit-content;
border-radius: 40rpx;
max-width: calc(100% - 40rpx);
}
.Artworkimages {
display: flex;
flex-wrap: wrap;


+ 2
- 0
main.js View File

@ -22,11 +22,13 @@ import configPopup from '@/components/config/configPopup.vue'
import navbar from '@/components/base/navbar.vue'
import tabbar from '@/components/base/tabbar.vue'
import callPhone from '@/components/user/callPhone.vue'
import addressSpot from '@/components/base/addressSpot.vue'
Vue.component('configPopup',configPopup)
Vue.component('navbar', navbar)
Vue.component('tabbar', tabbar)
Vue.component('callPhone', callPhone)
Vue.component('addressSpot', addressSpot)
const app = new Vue({


+ 18
- 0
pages_order/car/carList.vue View File

@ -13,6 +13,12 @@
v-model="queryParams.title"></uv-search>
</view>
<view class="">
<screenRen
:isArea="false"
@clickItem="clickItem"/>
</view>
<view class="list">
<cartItem
:key="index"
@ -27,11 +33,13 @@
<script>
import mixinsList from '@/mixins/list.js'
import screenRen from '../components/screen/screenRen.vue'
import cartItem from '../components/list/cart/cartItem.vue'
export default {
mixins: [mixinsList],
components : {
cartItem,
screenRen,
},
data() {
return {
@ -39,6 +47,16 @@
}
},
methods: {
clickItem(result){
this.queryParams = {
pageNo: 1,
pageSize: 10,
}
result.forEach(n => {
this.queryParams[n.name] = n.value
})
this.getData()
},
}
}
</script>


+ 46
- 37
pages_order/components/list/gourmet/gourmetItem.vue View File

@ -1,40 +1,47 @@
<template>
<view class="item" @click="$emit('click')">
<image class="image"
@click.stop="previewImage([item.logoImage])"
:src="item.logoImage" mode="aspectFill"></image>
<view class="text">
<view class="title">
<view class="">
{{ item.title }}
<view class="item">
<view class="box" @click="$emit('click')">
<image class="image"
@click.stop="previewImage([item.logoImage])"
:src="item.logoImage" mode="aspectFill"></image>
<view class="text">
<view class="title">
<view class="">
{{ item.title }}
</view>
<!-- <view class="len">
30m
</view> -->
</view>
<view class="len">
30m
<view class="workTime">
营业时间{{ item.workTime }}
</view>
</view>
<view class="workTime">
营业时间{{ item.workTime }}
</view>
<view class="address">
地址{{ item.address }}
</view>
<scroll-view
scroll-x="true"
style="width: 500rpx;">
<view class="list">
<view class="item-detail"
:key="index"
v-for="(t, index) in item.image">
<image :src="t"
@click.stop="previewImage(item.image, index)"
mode="aspectFill"></image>
<!-- <view class="text-ellipsis">
{{ item.details[index] }}
</view> -->
<!-- <view class="address">
地址{{ item.address }}
</view> -->
<scroll-view
scroll-x="true"
style="width: 500rpx;">
<view class="list">
<view class="item-detail"
:key="index"
v-for="(t, index) in item.image">
<image :src="t"
@click.stop="previewImage(item.image, index)"
mode="aspectFill"></image>
<!-- <view class="text-ellipsis">
{{ item.details[index] }}
</view> -->
</view>
</view>
</view>
</scroll-view>
</scroll-view>
</view>
</view>
<addressSpot
:address="item.address"
:latitude="item.latitude"
:longitude="item.longitude"
/>
</view>
</template>
@ -52,17 +59,19 @@
</script>
<style scoped lang="scss">
.item {
.item{
font-size: 24rpx;
margin: 20rpx 0;
padding: 20rpx;
box-sizing: border-box;
width: 100%;
background-color: #fff;
overflow: hidden;
border-radius: 10rpx;
color: #777;
}
.box {
display: flex;
font-size: 24rpx;
margin: 20rpx 0;
padding: 20rpx;
box-sizing: border-box;
.image {
width: 140rpx;


+ 100
- 0
pages_order/components/list/renting/rentingItem.vue View File

@ -0,0 +1,100 @@
<template>
<view class="item"
@click="$emit('click', item)">
<image :src="images[0]" mode="aspectFill"></image>
<view class="info">
<view class="title">
{{ item.title }}
</view>
<view class="text">
{{ item.home }} {{ item.crm }}m2 | {{ item.face }}
</view>
<view class="tags">
<view class="tag"
v-if="item.isGood">
{{ item.isGood }}
</view>
<view class="tag"
v-if="item.isMinPrice">
{{ item.isMinPrice }}
</view>
</view>
<view class="price">
<text>{{ item.money }}</text>/
</view>
</view>
</view>
</template>
<script>
export default {
props : {
item : {},
},
computed : {
images(){
if(!this.item.image){
return []
}
return this.item.image.split(',')
}
},
data() {
return {
}
},
methods: {
}
}
</script>
<style scoped lang="scss">
.item{
display: flex;
padding: 20rpx;
font-size: 24rpx;
image{
width: 180rpx;
height: 180rpx;
border-radius: 20rpx;
margin-right: 20rpx;
}
.info{
gap: 10rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
.title{
font-size: 28rpx;
}
.text{
color: #777;
}
.tags{
display: flex;
gap: 10rpx;
.tag{
background-color: #eee;
padding: 10rpx;
border-radius: 10rpx;
font-size: 22rpx;
color: #777;
// &:nth-child(1){
background-color: rgba($uni-color, 0.1);
color: $uni-color;
// }
}
}
.price{
color: #f40;
text{
font-size: 30rpx;
}
}
}
}
</style>

+ 2
- 1
pages_order/components/list/workList/workItem.vue View File

@ -1,5 +1,6 @@
<template>
<view class="work-item">
<view class="work-item"
@click="$emit('click', item)">
<view class="top">
<view class="title">
{{ item.title }}


+ 21
- 14
pages_order/components/screen/screenRen.vue View File

@ -9,24 +9,22 @@
:custom-style="{padding: '0 30rpx'}"
@click="selectMenu">
<uv-drop-down-item name="area" type="2"
<uv-drop-down-item
v-if="isArea"
name="area" type="2"
:label="dropItem('area').label"
:value="dropItem('area').value">
</uv-drop-down-item>
<uv-drop-down-item
name="price" type="2"
:label="dropItem('price').label"
:value="dropItem('price').value">
v-if="isMaxPrice"
name="maxPrice" type="2"
:label="dropItem('maxPrice').label"
:value="dropItem('maxPrice').value">
</uv-drop-down-item>
<!-- <uv-drop-down-item
name="vip_type"
type="1"
label='智能推荐'
:value="0">
</uv-drop-down-item> -->
</uv-drop-down>
<uv-drop-down-popup
@ -72,6 +70,12 @@
mapState,
} from 'vuex'
export default {
props : {
isArea : {
default : true
},
isMaxPrice : {},
},
data() {
return {
// value
@ -80,7 +84,7 @@
result: [],
activeName: 'area',
area: {
label: '区',
label: '区',
value: 0,
activeIndex: 0,
color: '#333',
@ -92,8 +96,8 @@
},
]
},
price: {
label: '价',
maxPrice: {
label: '最高价',
value: 'all',
activeIndex: 0,
color: '#333',
@ -180,7 +184,7 @@
mounted() {
//
// this.jobTypeList.forEach(n => {
// this.price.child.push({
// this.maxPrice.child.push({
// label: n.name,
// value: n.id,
// })
@ -275,6 +279,9 @@
<style scoped lang="scss">
.page{
/deep/ .uv-drop-down{
justify-content: space-around;
}
.popup{
width: 80vw;
padding: 40rpx;


+ 8
- 64
pages_order/gourmet/gourmetDetail.vue View File

@ -14,22 +14,6 @@
<view class="username text-ellipsis">
{{ detail.title }}
</view>
<view class="inde" v-if="detail.sex">
<!-- 性别 -->
{{ detail.sex }}
</view>
<view class="inde" v-if="detail.yearDate">
<!-- 年份 -->
{{ detail.yearDate }}
</view>
<view class="inde" v-if="detail.address">
<!-- 地址 -->
{{ detail.address }}
</view>
<view class="authentication" v-if="detail.isContent">
<!-- 个人认证 -->
{{ detail.isContent }}
</view>
</view>
<view class="Times">
@ -42,15 +26,19 @@
<!-- <view class="dynamics" v-html="$utils.stringFormatHtml(detail.title)">
</view> -->
<view class="dynamics">
地址{{ detail.address }}
</view>
<view class="Artworkimages">
<view class="wrokimg" @click.stop="previewImage(detail.detailsImage, i)" :key="i"
v-for="(img, i) in detail.detailsImage">
<image :src="img" mode="aspectFill"></image>
</view>
</view>
<addressSpot
:address="detail.address"
:latitude="detail.latitude"
:longitude="detail.longitude"
/>
<view class="bottom">
<view class="browse">
{{ detail.isBrowse }}浏览
@ -58,12 +46,7 @@
<view class="browse">
{{ detail.isComment }}条评论
</view>
<view class="Leavingamessage"
@click="openLocation(detail.latitude, detail.longitude)"
v-if="detail.latitude && detail.longitude">
<uv-icon size="40rpx" name="map"></uv-icon>
导航
</view>
</view>
</view>
@ -186,45 +169,6 @@
.YaoduUniversalWall {
padding: 0rpx 10rpx;
.username {
max-width: 200rpx;
}
.heide {
display: flex;
align-items: center;
}
.inde {
display: flex;
justify-content: center;
align-items: center;
padding: 0rpx 10rpx;
margin: 0rpx 5rpx;
font-size: 20rpx;
height: 30rpx;
color: white;
// background-color: rgb(124, 136, 242);
background-color: var(--sexcolor);
border-radius: 7rpx;
flex-shrink: 0;
}
.authentication {
display: flex;
justify-content: center;
align-items: center;
padding: 0rpx 10rpx;
margin: 0rpx 5rpx;
font-size: 20rpx;
height: 34rpx;
padding: 0rpx 10rpx;
color: white;
background-color: #ffd036;
border-radius: 7rpx;
flex-shrink: 0;
}
.Times {
display: flex;
padding: 5rpx 0rpx;


+ 18
- 1
pages_order/gourmet/gourmetList.vue View File

@ -13,6 +13,11 @@
v-model="title"></uv-search>
</view>
<view class="">
<screenRen
@clickItem="clickItem"/>
</view>
<view class="list">
<gourmetItem
:key="index"
@ -27,11 +32,13 @@
<script>
import mixinsList from '@/mixins/list.js'
import screenRen from '../components/screen/screenRen.vue'
import gourmetItem from '../components/list/gourmet/gourmetItem.vue'
export default {
mixins: [mixinsList],
components : {
gourmetItem,
screenRen,
},
data() {
return {
@ -42,15 +49,25 @@
getDataThen(list){
list.forEach(n => {
n.image = n.image ? n.image.split(',') : []
// n.details = n.details ? n.details.split(',') : []
})
},
clickItem(result){
this.queryParams = {
pageNo: 1,
pageSize: 10,
}
result.forEach(n => {
this.queryParams[n.name] = n.value
})
this.getData()
},
}
}
</script>
<style scoped lang="scss">
.page{
padding-bottom: env(safe-area-inset-bottom);
.list{
padding: 0 20rpx;
}


+ 18
- 155
pages_order/renting/rentingList.vue View File

@ -5,73 +5,40 @@
<view class="flex"
style="padding: 20rpx;">
<uv-search
bgColor="#fff"
@search="getData"
@custom="getData"
:showAction="false"
searchIconSize="30rpx"
placeholder="请输入搜索关键字..."
placeholder="请输入搜索关键字..."
v-model="queryParams.title"></uv-search>
</view>
<view class="">
<screenRen
isMaxPrice
@clickItem="clickItem"/>
</view>
<!-- <view class="flex-wrap rx">
<view class="sb-w3">
<image src="/static/image/home/1.png" />
<view>居住</view>
</view>
<view class="sb-w3">
<image src="/static/2.png" />
<view>办公</view>
</view>
<view class="sb-w3">
<image src="/static/3.png" />
<view>做生意</view>
</view>
</view> -->
<view class="container">
<view class="re-empty font-c" style="display: none;">暂无数据</view>
<view class="card-item flex-sb"
v-for="(item, index) in list"
<view class="list">
<rentingItem
:key="index"
@click="clickDetail(item)">
<view>
<image class="imx"
@click.stop="previewImage([item.image &&
item.image.split(',')[0]])"
:src="item.image &&
item.image.split(',')[0]" />
</view>
<view style="width: calc(100% - 330rpx);">
<view class="t1">{{ item.title }}</view>
<view class="t2">{{ item.home }} {{ item.crm }}m2 | {{ item.face }}</view>
<view class="flex">
<view class="t3" v-if="item.isGood">{{ item.isGood }}</view>
<view class="t3" v-if="item.isMinPrice">{{ item.isMinPrice }}</view>
<!-- <view class="t3">低价</view> -->
</view>
<view class="t4">{{ item.money }}/</view>
</view>
</view>
v-for="(item, index) in list"
:item="item"
@click="$utils.navigateTo('/pages_order/renting/rentingDetail?id=' + item.id)"
/>
</view>
</view>
</template>
<script>
import mixinsList from '@/mixins/list.js'
import screenRen from '../components/screen/screenRen.vue'
import rentingItem from '../components/list/renting/rentingItem.vue'
export default {
mixins: [mixinsList],
components : {
screenRen,
rentingItem,
},
data() {
return {
@ -100,115 +67,11 @@
</script>
<style scoped lang="scss">
.container {
padding: 0 30rpx;
}
.area {
width: 154rpx;
line-height: 78rpx;
margin: 0 20rpx;
}
.s-div {
margin: 0 10rpx;
}
.seacher {
width: 486rpx;
height: 78rpx;
background: #F3F3F3;
border-radius: 44rpx 44rpx 44rpx 44rpx;
font-weight: 400;
font-size: 28rpx;
text-align: left;
font-style: normal;
text-transform: none;
padding: 0 0 0 80rpx;
}
.seacher-placeholder {
color: #BFBFBF;
}
.icon {
position: absolute;
left: 30rpx;
top: 18rpx;
}
.rx {
height: 214rpx;
width: 100%;
padding: 40rpx 0 0;
}
.sb-w3 image {
width: 100rpx;
height: 100rpx;
}
.sb-w3 view {
line-height: 52rpx;
font-weight: 400;
font-size: 28rpx;
color: #3D3D3D;
}
.card-item {
width: 690rpx;
height: 250rpx;
background: #FFFFFF;
box-shadow: 0rpx 3rpx 6rpx 1rpx rgba(0, 0, 0, 0.16);
border-radius: 8rpx 8rpx 8rpx 8rpx;
margin-bottom: 36rpx;
overflow: hidden;
}
.imx {
width: 300rpx;
height: 96%;
margin: 2% 0;
}
.t1 {
font-weight: 400;
font-size: 32rpx;
color: #3D3D3D;
line-height: 80rpx;
text-align: left;
}
.t2 {
font-weight: 400;
font-size: 20rpx;
color: #656565;
line-height: 20rpx;
text-align: left;
}
.t3 {
font-weight: 400;
font-size: 20rpx;
line-height: 32rpx;
color: #00B90C;
text-align: center;
height: 32rpx;
width: 60rpx;
margin: 15rpx 10rpx 0 0;
background: rgba(121, 255, 179, 0.21);
border-radius: 4rpx 4rpx 4rpx 4rpx;
}
.t4 {
font-weight: 400;
font-size: 32rpx;
color: #FF0000;
line-height: 100rpx;
text-align: left;
.page{
min-height: 100vh;
background-color: #fff;
.list{
padding: 10rpx;
}
}
</style>

+ 18
- 1
pages_order/scenicSpot/scenicSpotList.vue View File

@ -7,12 +7,17 @@
<uv-search
bgColor="#fff"
@search="getData"
@custom="getData"
:showAction="false"
searchIconSize="30rpx"
placeholder="请输入搜索关键字..."
v-model="queryParams.title"></uv-search>
</view>
<view class="">
<screenRen
@clickItem="clickItem"/>
</view>
<view class="list">
<scenicSpotItem
:key="index"
@ -27,11 +32,13 @@
<script>
import mixinsList from '@/mixins/list.js'
import screenRen from '../components/screen/screenRen.vue'
import scenicSpotItem from '../components/list/scenicSpot/scenicSpotItem.vue'
export default {
mixins: [mixinsList],
components : {
scenicSpotItem,
screenRen,
},
data() {
return {
@ -39,6 +46,16 @@
}
},
methods: {
clickItem(result){
this.queryParams = {
pageNo: 1,
pageSize: 10,
}
result.forEach(n => {
this.queryParams[n.name] = n.value
})
this.getData()
},
}
}
</script>


+ 125
- 66
pages_order/work/addWork.vue View File

@ -9,83 +9,44 @@
<text style="color: #BD3624;">*</text>
</view>
<view class="form-sheet-cell">
<input type="text" class="title-input"/>
<input type="text"
v-model="form.title"
class="title-input"/>
</view>
<uv-cell
title="工作地点"
rightIconStyle="fontSize: 30rpx;"
value="请选择招工地点"
:value="form.address || '请选择招工地点'"
@click="selectAddr"
isLink
></uv-cell>
<uv-cell
title="所属工种"
title="学历要求"
rightIconStyle="fontSize: 30rpx;"
value="请选择所属工种"
:value="form.school || '请选择学历要求'"
@click="openPicker('school')"
isLink
></uv-cell>
<!-- <view class="form-sheet-cell">
<view class="label">
工作地点
</view>
<view>
请选择招工地点
</view>
<view class="right-icon">
<uv-icon
name="arrow-right"
></uv-icon>
</view>
</view>
<view class="form-sheet-cell">
<view class="label">
学历要求
</view>
<view>
请选择学历要求
</view>
<view class="right-icon">
<uv-icon
name="arrow-right"
></uv-icon>
</view>
</view>
<view class="form-sheet-cell">
<view class="label">
工龄要求
</view>
<view>
请选择工龄要求
</view>
<view class="right-icon">
<uv-icon
name="arrow-right"
></uv-icon>
</view>
</view>
<view class="form-sheet-cell">
<view class="label">
所属工种
</view>
<view>
请选择工种
</view>
<view class="right-icon">
<uv-icon
name="arrow-right"
></uv-icon>
</view>
</view> -->
<uv-cell
title="工龄要求"
rightIconStyle="fontSize: 30rpx;"
:value="form.workYear || '请选择工龄要求'"
@click="openPicker('workYear')"
isLink
></uv-cell>
<view class="form-sheet-cell">
<view class="label">
薪资范围
</view>
<view class="price">
<input placeholder="最小" v-model="form.min" />
<input placeholder="最小薪资" v-model="form.minPrice" />
~
<input placeholder="最大" v-model="form.max" />
<input placeholder="最大薪资" v-model="form.maxPrice" />
</view>
</view>
<view class="form-sheet-cell">
@ -96,7 +57,7 @@
<view class="price">
<uv-radio
:customStyle="{margin: '8px'}"
v-for="(item, index) in radiolist"
v-for="(item, index) in priceList"
:key="index"
iconSize="30rpx"
size="40rpx"
@ -115,7 +76,7 @@
<view class="price">
<uv-radio
:customStyle="{margin: '8px'}"
v-for="(item, index) in radiolist"
v-for="(item, index) in jopList"
:key="index"
iconSize="30rpx"
size="40rpx"
@ -132,31 +93,43 @@
</view>
<input placeholder="请输入联系电话" v-model="form.phone" />
</view>
<view class="">
<view class=""
style="margin-top: 20rpx;">
<uv-textarea
v-model="form.content"
v-model="form.jobDetails"
count
:maxlength="300"
autoHeight
placeholder="请输入详细介绍"></uv-textarea>
placeholder="请输入岗位详细介绍"></uv-textarea>
</view>
<view class="uni-color-btn">
<view class="uni-color-btn"
@click="submit">
发布
</view>
</view>
<uv-picker ref="picker"
:columns="columns"
@confirm="pickerConfirm"></uv-picker>
</view>
</template>
<script>
import Position from '@/utils/position.js'
export default {
data() {
return {
form : {
school : '',
workYear : '',
minPrice : '',
maxPrice : '',
address : '123',
},
radiovalue : '',
radiolist : [
priceList : [
{
name : '日结',
},
@ -164,9 +137,95 @@
name : '月结',
},
],
jopList : [
{
name : '正式工',
},
{
name : '临时工',
},
],
picker : {
workYear : [
'不限',
],
school : [
'不限',
'初中',
'高中',
'专科',
'本科',
'研究生',
'博士',
],
},
pickerKey : 'workYear',
}
},
onLoad() {
for (var i = 0; i < 30; i++) {
this.picker.workYear.push((i + 1) + '年')
}
},
computed : {
columns(){
return [this.picker[this.pickerKey]]
},
},
methods: {
openPicker(key){
this.pickerKey = key
this.$refs.picker.open()
},
pickerConfirm(e){
this.form[this.pickerKey] = e.value[0]
},
//
selectAddr() {
Position.selectAddress(res => {
//
this.form.latitude = res.latitude
this.form.longitude = res.longitude
if (res.name) {
return this.form.address = res.name
}
this.form.address = ''
})
},
//
submit(){
// if(this.fileList.length == 0){
// return uni.showToast({
// title: '',
// icon : 'none'
// })
// }
if (this.$utils.verificationAll(this.form, {
title: '请输入招工标题',
address : '请选择工作地点',
school : '请选择学历要求',
workYear : '请选择学历要求',
minPrice : '请输入最小薪资',
maxPrice : '请输入最大薪资',
phone: '请输入联系电话',
jobDetails: '请输入岗位详细介绍',
})) {
return
}
this.$api('publishJob', this.form, res => {
if(res.code == 200){
uni.showToast({
title: '发布成功!',
icon: 'none'
})
setTimeout(uni.navigateBack, 1000, -1)
}
})
},
}
}


+ 32
- 17
pages_order/work/workList.vue View File

@ -7,40 +7,55 @@
<uv-search
bgColor="#fff"
@search="getData"
@custom="getData"
:showAction="false"
searchIconSize="30rpx"
placeholder="请输入搜索关键字..."
v-model="title"></uv-search>
v-model="queryParams.title"></uv-search>
</view>
<workList ref="workList"/>
<view class="">
<screenRen
@clickItem="clickItem"/>
</view>
<!-- <workList ref="workList"/> -->
<view class="list">
<workItem
@click="$utils.navigateTo('/pages_order/work/workDetail?id=' + item.id)"
:key="index"
v-for="(item, index) in list"
:item="item"/>
</view>
</view>
</template>
<script>
import workList from '../components/list/workList/index.vue'
import mixinsList from '@/mixins/list.js'
import workItem from '../components/list/workList/workItem.vue'
import screenRen from '../components/screen/screenRen.vue'
export default {
mixins: [mixinsList],
components : {
workList,
screenRen,
workItem,
},
data() {
return {
title : '',
mixinsListApi : 'getJobPage',
}
},
onShow() {
this.getData()
},
onPullDownRefresh() {
this.getData()
},
onReachBottom() {
this.$refs.workList.loadMoreData()
},
methods: {
getData(){
this.$refs.workList.getData(this.title)
clickItem(result){
this.queryParams = {
pageNo: 1,
pageSize: 10,
}
result.forEach(n => {
this.queryParams[n.name] = n.value
})
this.getData()
},
}
}


+ 1
- 1
uni_modules/uv-picker/components/uv-picker/props.js View File

@ -28,7 +28,7 @@ export default {
// 各列中,单个选项的高度
itemHeight: {
type: [String, Number],
default: 44
default: 50
},
// 取消按钮的文字
cancelText: {


Loading…
Cancel
Save