Browse Source

上传修改

master
前端-胡立永 4 months ago
parent
commit
47ad1c4f46
19 changed files with 494 additions and 633 deletions
  1. +1
    -0
      App.vue
  2. +53
    -0
      common.scss
  3. +8
    -5
      components/base/navbar.vue
  4. +0
    -81
      components/bottom/bottomBtn.vue
  5. +0
    -0
      components/list/workList/index.vue
  6. +0
    -11
      components/list/workList/workItem.vue
  7. +53
    -0
      components/list/workList/workListSwipe.vue
  8. +9
    -3
      pages.json
  9. +6
    -4
      pages/index/center.vue
  10. +1
    -1
      pages/index/index.vue
  11. +0
    -93
      pages_order/components/commodity/commoditySelect.vue
  12. +47
    -0
      pages_order/components/statistics/statisticsNumber.vue
  13. +70
    -36
      pages_order/components/user/userHead.vue
  14. +51
    -0
      pages_order/mine/collect.vue
  15. +23
    -0
      pages_order/mine/contactRecord.vue
  16. +62
    -0
      pages_order/mine/releaseWork.vue
  17. +0
    -366
      pages_order/order/refundsOrExchange.vue
  18. +100
    -3
      pages_order/work/workDetail.vue
  19. +10
    -30
      utils/utils.js

+ 1
- 0
App.vue View File

@ -11,6 +11,7 @@
</script> </script>
<style> <style>
@import url("common.scss");
/*每个页面公共css */ /*每个页面公共css */
body{ body{
background-color: #f3f3f3; background-color: #f3f3f3;


+ 53
- 0
common.scss View File

@ -0,0 +1,53 @@
// 文字益处处理
.text-ellipsis{
overflow:hidden; //超出的文本隐藏
text-overflow:ellipsis; //溢出用省略号显示
white-space:nowrap; //溢出不换行
}
.text-ellipsis-2{
overflow: hidden;
text-overflow: ellipsis;
display:-webkit-box; //作为弹性伸缩盒子模型显示
-webkit-box-orient:vertical; //设置伸缩盒子的子元素排列方式--从上到下垂直排列
-webkit-line-clamp:2; //显示的行
}
.text-ellipsis-3{
overflow: hidden;
text-overflow: ellipsis;
display:-webkit-box; //作为弹性伸缩盒子模型显示
-webkit-box-orient:vertical; //设置伸缩盒子的子元素排列方式--从上到下垂直排列
-webkit-line-clamp:3; //显示的行
}
.share{
padding: 0;
margin: 0;
background-color: #fff;
display: flex !important;
flex-direction: column !important;
justify-content: center !important;
align-items: center !important;
font-size: 26rpx;
}
.share::after{
border: none;
padding: 0;
margin: 0;
width: 0;
height: 0;
}
.tag-list{
display: flex;
flex-wrap: wrap;
}
.tag-list > view{
margin: 10rpx;
padding: 10rpx;
background-color: #EFF2F1;
font-size: 24rpx;
border-radius: 10rpx;
}

+ 8
- 5
components/base/navbar.vue View File

@ -2,27 +2,27 @@
<!-- <view class="navbar" <!-- <view class="navbar"
:style="{backgroundColor : bgColor}"> --> :style="{backgroundColor : bgColor}"> -->
<view class="title" <view class="title"
:style="{backgroundColor : bgColor}">
:style="{backgroundColor : bgColor,color}">
<view class="left"> <view class="left">
<uv-icon name="arrow-left" <uv-icon name="arrow-left"
v-if="leftClick" v-if="leftClick"
@click="$emit('leftClick')" @click="$emit('leftClick')"
color="#333" size="46rpx"></uv-icon>
:color="color" size="46rpx"></uv-icon>
</view> </view>
<view>{{ title }}</view> <view>{{ title }}</view>
<view class="icon"> <view class="icon">
<uv-icon name="search" <uv-icon name="search"
v-if="isSearch" v-if="isSearch"
color="#333" size="58rpx"></uv-icon>
:color="color" size="58rpx"></uv-icon>
<uv-icon name="plus-circle" color="#333"
<uv-icon name="plus-circle" :color="color"
v-if="isPlus" v-if="isPlus"
@click="plusCircleShow = true" @click="plusCircleShow = true"
size="46rpx" style="margin-left: 30rpx;"></uv-icon> size="46rpx" style="margin-left: 30rpx;"></uv-icon>
<view v-if="moreClick" style="margin-left: 30rpx;"> <view v-if="moreClick" style="margin-left: 30rpx;">
<uv-icon name="more-dot-fill" color="#333"
<uv-icon name="more-dot-fill" :color="color"
v-if="!moreText" v-if="!moreText"
@click="moreClick()" @click="moreClick()"
size="46rpx"></uv-icon> size="46rpx"></uv-icon>
@ -64,6 +64,9 @@
}, },
bgColor : { bgColor : {
default : '#F9FEFE' default : '#F9FEFE'
},
color : {
default : '#333'
} }
}, },
created() { created() {


+ 0
- 81
components/bottom/bottomBtn.vue View File

@ -1,81 +0,0 @@
<template>
<view @click="$emit('confirm')" :style="{
position: 'fixed',
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
width: '100vw',
bottom: bottom
}">
<button :style="{
color: color,
backgroundColor: backgroundColor,
fontSize: fontSize,
width: width,
height: height,
borderRadius: borderRadius
}">
{{ text }}
</button>
</view>
</template>
<script>
export default {
props: {
color: {
default: '#000000' //
},
backgroundColor: {
default: '#FFFFFF' //
},
fontSize: {
default: '36rpx' //
},
text: {
default: '按钮' //
},
width: {
default: '150rpx' //
},
height: {
default: '60rpx' //
},
borderRadius: {
default: '40rpx' //
},
bottom: {
default: '40rpx' //
},
},
data() {
return {
}
},
methods: {
}
}
</script>
<style scoped lang="less">
// .container {
// position: fixed;
// display: flex;
// justify-content: center;
// /* */
// align-items: center;
// /* */
// width: 100%;
// /* 使 */
// }
button {
display: flex;
justify-content: center;
align-items: center;
}
</style>

components/list/workList.vue → components/list/workList/index.vue View File


components/list/workItem.vue → components/list/workList/workItem.vue View File

@ -58,17 +58,6 @@
color: $uni-color; color: $uni-color;
} }
} }
.tag-list{
display: flex;
flex-wrap: wrap;
&>view{
margin: 10rpx;
padding: 10rpx;
background-color: #EFF2F1;
font-size: 24rpx;
border-radius: 10rpx;
}
}
.bottom{ .bottom{
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;

+ 53
- 0
components/list/workList/workListSwipe.vue View File

@ -0,0 +1,53 @@
<template>
<uv-swipe-action>
<view
v-for="(item, index) in list"
:key="index"
>
<view style="margin-top: 20rpx;"></view>
<uv-swipe-action-item
@click="e => clickSwipeAction(e, item)"
:options="options">
<workItem/>
</uv-swipe-action-item>
</view>
</uv-swipe-action>
</template>
<script>
import workItem from './workItem.vue'
export default {
components : {
workItem
},
props : {
options : {
default : [
{
text: '删除',
style: {
backgroundColor: '#FA5A0A'
}
},
],
},
list : {
default : []
},
},
data() {
return {
}
},
methods: {
clickSwipeAction(e, item){
this.$emit('clickSwipeAction', {e, item})
},
}
}
</script>
<style scoped lang="scss">
</style>

+ 9
- 3
pages.json View File

@ -47,9 +47,6 @@
{ {
"path": "product/productDetail" "path": "product/productDetail"
}, },
{
"path": "order/refundsOrExchange"
},
{ {
"path": "auth/wxLogin" "path": "auth/wxLogin"
}, },
@ -64,6 +61,15 @@
}, },
{ {
"path": "work/workDetail" "path": "work/workDetail"
},
{
"path": "mine/collect"
},
{
"path": "mine/contactRecord"
},
{
"path": "mine/releaseWork"
} }
] ]
}], }],


+ 6
- 4
pages/index/center.vue View File

@ -68,7 +68,8 @@
</view> </view>
</view> </view>
<view class="item">
<view class="item"
@click="$utils.navigateTo('/pages_order/mine/collect')">
<view class=""> <view class="">
30000 30000
</view> </view>
@ -77,7 +78,8 @@
</view> </view>
</view> </view>
<view class="item">
<view class="item"
@click="$utils.navigateTo('/pages_order/mine/contactRecord')">
<view class=""> <view class="">
30000 30000
</view> </view>
@ -92,14 +94,14 @@
我的工作 我的工作
</view> </view>
<uv-grid :col="4" :border="false"> <uv-grid :col="4" :border="false">
<uv-grid-item @click="$utils.navigateTo('/pages_order/mine/address')">
<uv-grid-item @click="$utils.navigateTo('/pages_order/mine/releaseWork')">
<image class="image" src="/static/image/center/5.png" mode=""></image> <image class="image" src="/static/image/center/5.png" mode=""></image>
<text class="grid-text">我的找活</text> <text class="grid-text">我的找活</text>
</uv-grid-item> </uv-grid-item>
<uv-grid-item @click="$utils.redirectTo('/index/order')"> <uv-grid-item @click="$utils.redirectTo('/index/order')">
<image class="image" src="/static/image/center/5.png" mode=""></image> <image class="image" src="/static/image/center/5.png" mode=""></image>
<text class="grid-text">谁看过我的简历</text>
<text class="grid-text">谁看过我</text>
</uv-grid-item> </uv-grid-item>
</uv-grid> </uv-grid>
</view> </view>


+ 1
- 1
pages/index/index.vue View File

@ -49,7 +49,7 @@
<script> <script>
import PrivacyAgreementPoup from '@/components/config/PrivacyAgreementPoup.vue' import PrivacyAgreementPoup from '@/components/config/PrivacyAgreementPoup.vue'
import workList from '@/components/list/workList.vue'
import workList from '@/components/list/workList/index.vue'
import tabber from '@/components/base/tabbar.vue' import tabber from '@/components/base/tabbar.vue'
export default { export default {
components : { components : {


+ 0
- 93
pages_order/components/commodity/commoditySelect.vue View File

@ -1,93 +0,0 @@
<template>
<view style="">
<view v-for="item in commodityList" :key="item.title" class="address-item">
<view class="itme1" @click="selectSp(item)">
<view class="left">
<img src="../../../static/image/center/1.png" alt="" style="width: 100%;height: 100%;">
</view>
<view class="center">
<view>{{ item.title }}</view>
<view>{{ item.smallTitle }}</view>
</view>
<view class="right">×{{item.total}}</view>
</view>
<uv-line></uv-line>
</view>
</view>
</template>
<script>
export default {
props: {
commodityList: {
default: [],
type: Array,
}
},
data() {
return {
selectAddress: 0,
}
},
methods: {
//
openCommodity() {
this.$emit('openSpPopup')
},
//
selectSp(e) {
console.log(this.commodityList,"this.csss")
console.log(e, '选择了商品')
this.$emit('selectSp', e)
}
}
}
</script>
<style scoped lang="scss">
.itme1 {
display: flex;
height: 150rpx;
width: 100vw;
background-color: #ffffff;
.left {
padding: 40rpx;
width: 20%;
border-radius: 10rpx;
background-color: #ffffff;
}
.center {
display: flex;
flex-direction: column;
justify-content: center;
gap: 20rpx;
width: 70%;
padding: 0rpx 0 0 20rpx;
background-color: #ffffff;
// view
> view:first-of-type {
font-size: 36rpx;
color: #333;
}
// view
> view:nth-of-type(2) {
font-size: 28rpx;
color: #666666;
}
}
.right {
display: flex;
justify-content: center;
align-items: center;
width: 10%;
color: #666666;
background-color: #ffffff;
}
}
</style>

+ 47
- 0
pages_order/components/statistics/statisticsNumber.vue View File

@ -0,0 +1,47 @@
<template>
<view class="const">
<view class="title">
{{ title }}
</view>
<view class="num">
{{ num }}
</view>
</view>
</template>
<script>
export default {
props : {
title : {
default : '您当前的找活'
},
num : {
default : 0
}
},
data() {
return {
}
},
methods: {
}
}
</script>
<style scoped lang="scss">
.const{
padding: 30rpx;
background: $uni-color;
color: #fff;
font-weight: 900;
.title{
font-size: 34rpx;
}
.num{
padding: 20rpx 0;
font-size: 38rpx;
}
}
</style>

+ 70
- 36
pages_order/components/user/userHead.vue View File

@ -5,10 +5,16 @@
</view> </view>
<view class="info"> <view class="info">
<view class="name"> <view class="name">
倾心.
{{ name }}
</view> </view>
<view class="tips"> <view class="tips">
手机号1300000000
{{ tips }}
</view>
</view>
<view class="right">
<view class="phone">
<image src="/static/image/home/phone.png" mode=""></image>
{{ phone }}
</view> </view>
</view> </view>
</view> </view>
@ -16,52 +22,80 @@
<script> <script>
export default { export default {
props : {
name : {
default : '倾心.'
},
tips : {
default : '手机号:1300000000'
},
phone : {
default : '联系老板'
},
},
data() { data() {
return { return {
} }
}, },
methods: { methods: {
} }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.head {
display: flex;
align-items: center;
position: relative;
image{
width: 100%;
height: 100%;
}
.headImage {
width: 70rpx;
height: 70rpx;
background-size: 100% 100%;
overflow: hidden;
border-radius: 50%;
margin-right: 40rpx;
}
.info {
font-size: 28rpx;
.name {
font-size: 32rpx;
.head {
display: flex;
align-items: center;
position: relative;
image {
width: 100%;
height: 100%;
}
.headImage {
width: 70rpx;
height: 70rpx;
background-size: 100% 100%;
overflow: hidden;
border-radius: 50%;
margin-right: 40rpx;
}
.info {
font-size: 28rpx;
.name {
font-size: 32rpx;
display: flex;
padding-bottom: 10rpx;
view {
display: flex; display: flex;
padding-bottom: 10rpx;
view{
display: flex;
font-size: 20rpx;
align-items: center;
padding-left: 20rpx;
}
font-size: 20rpx;
align-items: center;
padding-left: 20rpx;
} }
.tips {
font-size: 26rpx;
}
.tips {
font-size: 26rpx;
}
}
.right{
margin-left: auto;
.phone{
background-color: rgba($uni-color, 0.2);
color: $uni-color;
padding: 8rpx 16rpx;
border-radius: 10rpx;
image{
width: 24rpx;
height: 24rpx;
} }
} }
} }
</style>
}
</style>

+ 51
- 0
pages_order/mine/collect.vue View File

@ -0,0 +1,51 @@
<template>
<view class="page">
<navbar title="我的收藏"
bgColor="#3796F8"
leftClick
color="#fff"
@leftClick="$utils.navigateBack"/>
<workListSwipe
:options="options"
@clickSwipeAction="clickSwipeAction"
:list="10"/>
</view>
</template>
<script>
import workListSwipe from '@/components/list/workList/workListSwipe.vue'
import mixinList from '@/mixins/list.js'
export default {
mixins : [mixinList],
components : {
workListSwipe
},
data() {
return {
options: [
{
text: '删除',
style: {
backgroundColor: '#FA5A0A'
}
},
],
}
},
methods: {
clickSwipeAction({e, item}){
console.log(e, item);
},
}
}
</script>
<style scoped lang="scss">
.page{
/deep/ .uv-swipe-action{
width: 100%;
}
}
</style>

+ 23
- 0
pages_order/mine/contactRecord.vue View File

@ -0,0 +1,23 @@
<template>
<!-- 联系记录 -->
<view class="page">
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style scoped lang="scss">
</style>

+ 62
- 0
pages_order/mine/releaseWork.vue View File

@ -0,0 +1,62 @@
<template>
<!-- 我发布的招工 -->
<view class="page">
<navbar title="我的找活"
bgColor="#3796F8"
leftClick
color="#fff"
@leftClick="$utils.navigateBack"/>
<statisticsNumber/>
<workListSwipe
:options="options"
@clickSwipeAction="clickSwipeAction"
:list="10"/>
</view>
</template>
<script>
import workListSwipe from '@/components/list/workList/workListSwipe.vue'
import statisticsNumber from '../components/statistics/statisticsNumber.vue'
import mixinList from '@/mixins/list.js'
export default {
mixins : [mixinList],
components : {
workListSwipe,
statisticsNumber
},
data() {
return {
options: [
{
text: '修改',
style: {
backgroundColor: '#ffa12c'
}
},
{
text: '删除',
style: {
backgroundColor: '#FA5A0A'
}
},
],
}
},
methods: {
clickSwipeAction({e, item}){
console.log(e, item);
},
}
}
</script>
<style scoped lang="scss">
.page{
/deep/ .uv-swipe-action{
width: 100%;
}
}
</style>

+ 0
- 366
pages_order/order/refundsOrExchange.vue View File

@ -1,366 +0,0 @@
<template>
<view class="refundsOrExchange">
<navbar :title="title[titleIndex]" leftClick @leftClick="$utils.navigateBack"/>
<view class="frame">
<!-- 商品简介 -->
<view class="itme1" @click="openSpPopup">
<view class="left">
<img src="../../static/image/center/1.png" alt="" style="width: 100%;height: 100%;">
</view>
<view class="center">
<view>{{ commodity.title }}</view>
<view>{{ commodity.smallTitle }}</view>
</view>
<view class="right">×{{ commodity.total }}</view>
</view>
<!--<commoditySelect ></commoditySelect>-->
<!-- 申请类型&申请原因 -->
<view class="item2">
<view class="type">
<span>申请类型</span>
<span>退货退款</span>
</view>
<uv-line></uv-line>
<view class="reason">
<view>申请原因</view>
<view>
<uv-input placeholder="请输入申请原因" border="none" clearable></uv-input>
</view>
</view>
</view>
<!-- 退货数量&申请金额-->
<view class="item3">
<view class="type">
<span>{{ titleIndex == 0 ? '退货数量' : '换货数量' }}</span>
<span>
<uv-number-box :min="1" :max="100"></uv-number-box>
</span>
</view>
<uv-line v-if='titleIndex == 0 ? true :false'></uv-line>
<view class="reason" v-if='titleIndex == 0 ? true :false'>
<view>申请原因</view>
<view>
<uv-input disabled placeholder="$" border="none" clearable></uv-input>
</view>
</view>
</view>
<!-- 申请说明 -->
<view class="item4">
<view>申请说明(选填)</view>
<view>
<uv-input placeholder="请您详细填写申请说明" border="none" clearable></uv-input>
</view>
<view>
<uv-upload :fileList="fileList" :maxCount="5" multiple width="150rpx" height="150rpx"
@delete="deleteImage" @afterRead="afterRead" :previewFullImage="true"></uv-upload>
</view>
</view>
<!-- 联系电话 -->
<view class="item5">
<view class="phone">
<view>联系电话</view>
<view>
<uv-input placeholder="请输入联系电话" border="none" clearable></uv-input>
</view>
</view>
</view>
</view>
<!-- 底部按钮 -->
<bottomBtn @confirm='confirm()' :color='bottomBtnStyle.color' :backgroundColor='bottomBtnStyle.backgroundColor'
:fontSize='bottomBtnStyle.fontSize' :text='bottomBtnStyle.text' :width="bottomBtnStyle.width"
:height="bottomBtnStyle.height" :borderRadius='bottomBtnStyle.borderRadius'
:bottom='bottomBtnStyle.bottom'
>
</bottomBtn>
<!--商品选择-->
<uv-popup ref="spPopup" :round="30">
<commoditySelect
:commodityList="commodityList"
@selectSp="selectCommodity"
/>
</uv-popup>
</view>
</template>
<script>
import bottomBtn from "../../components/bottom/bottomBtn.vue"
import commoditySelect from "../components/commodity/commoditySelect.vue"
export default {
onLoad(option) {
this.titleIndex = option.index
},
components: {
bottomBtn, commoditySelect
},
data() {
return {
titleIndex: 0,
title: ['申请换货', '申请退货'],
fileList: [],
bottomBtnStyle: {
color: '#FFF',
backgroundColor: '#fd5100',
fontSize: '34rpx',
text: '提交申请',
width: '400rpx',
height: '80rpx',
borderRadius: '100rpx',
bottom: '40rpx'
},
commodityList: [
{
title: '商品名称',
smallTitle: '产品规格:120*4*75【桌子尺寸】',
total:1,
},
{
title: '商品名称1',
smallTitle: '产品规格:120*4*75【桌子尺寸】',
total:1,
},
{
title: '商品名称2',
smallTitle: '产品规格:120*4*75【桌子尺寸】',
total:1,
}
],
commodity: {
title: '商品名称',
smallTitle: '产品规格:120*4*75【桌子尺寸】',
total:1,
},
}
},
mounted() {
},
methods: {
openSpPopup() {
this.$refs.spPopup.open('bottom');
},
// 退
selectCommodity(e) {
console.log(e, "selectCommodity--e")
this.commodity = e
this.$refs.spPopup.close()
},
confirm() {
console.log("===");
},
deleteImage(e) {
this.fileList.splice(e.index, 1)
},
afterRead(e) {
let self = this
e.file.forEach(file => {
self.$Oss.ossUpload(file.url).then(url => {
self.fileList.push({
url
})
})
})
},
}
}
</script>
<style lang="scss" scoped>
* {
box-sizing: border-box;
}
.refundsOrExchange {
.frame {
display: flex;
flex-direction: column;
gap: 30rpx;
width: 100%;
padding-top: 40rpx;
background-color: #f5f5f5;
.itme1 {
display: flex;
height: 200rpx;
background-color: #ffffff;
.left {
padding: 40rpx;
width: 20%;
border-radius: 10rpx;
background-color: #ffffff;
}
.center {
display: flex;
flex-direction: column;
justify-content: center;
gap: 20rpx;
width: 60%;
padding: 0rpx 0 0 20rpx;
background-color: #ffffff;
// view
> view:first-of-type {
font-size: 36rpx;
color: #333;
}
// view
> view:nth-of-type(2) {
font-size: 28rpx;
color: #666666;
}
}
.right {
display: flex;
justify-content: center;
align-items: center;
width: 10%;
color: #666666;
background-color: #ffffff;
}
}
.item2 {
width: 100vw;
.type {
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
padding: 0 0 0 20rpx;
> span:nth-of-type(1) {
width: 30%;
}
> span:nth-of-type(2) {
width: 70%;
}
}
.reason {
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
// margin: 10rpx 0 0 0;
padding: 10rpx 0 0 20rpx;
> view:nth-of-type(1) {
width: 30%;
}
> view:nth-of-type(2) {
width: 70%;
padding: 0 20rpx 0 0;
}
}
}
.item3 {
width: 100vw;
.type {
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
padding: 0 0 0 20rpx;
> span:nth-of-type(1) {
width: 70%;
}
> span:nth-of-type(2) {
width: 30%;
}
}
.reason {
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
// margin: 10rpx 0 0 0;
padding: 10rpx 0 0 20rpx;
> view:nth-of-type(1) {
width: 30%;
}
> view:nth-of-type(2) {
width: 70%;
padding: 0 20rpx 0 0;
}
}
}
.item4 {
display: flex;
flex-direction: column;
padding: 10rpx 0 0 20rpx;
background-color: #FFF;
> view:nth-of-type(1) {
background-color: #FFF;
}
> view:nth-of-type(2) {
margin: 10rpx 0 10rpx 0;
background-color: #FFF;
}
}
.item5 {
display: flex;
flex-direction: column;
padding: 0 0 0 20rpx;
background-color: #FFF;
.phone {
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
// margin: 10rpx 0 0 0;
padding: 10rpx 0 0 20rpx;
> view:nth-of-type(1) {
width: 30%;
}
> view:nth-of-type(2) {
width: 70%;
padding: 0 20rpx 0 0;
}
}
}
}
}
</style>

+ 100
- 3
pages_order/work/workDetail.vue View File

@ -26,16 +26,78 @@
</view> </view>
</view> </view>
<view class="">
<view class="line">
该职位位于昨日新发布
</view>
<view class="userHead">
<userHead/> <userHead/>
</view> </view>
<view class="address">
<view class="title2">
工作地址
</view>
<view class="line">
深圳罗湖区深圳市百货广场大厦罗湖区百货广场大厦东深圳罗湖区深圳市百货广场大厦罗湖区百货广场大厦东
<uv-icon
size="30rpx"
color="666"
name="arrow-right"
></uv-icon>
</view>
<view class="tag-list">
<view>
距您14.6千米
</view>
</view>
</view>
<view class="info">
<view class="title2">
<text>职位详情</text>
<view>
<uv-icon
size="30rpx"
color="666"
name="arrow-right"
></uv-icon>
收藏
</view>
</view>
<view class="tag-list">
<view>
不接受居家办公
</view>
<view>
不接受居家办公
</view>
<view>
不接受居家办公
</view>
</view>
<view
class="text"
v-html="text">
</view>
</view>
</view> </view>
</view> </view>
</template> </template>
<script> <script>
let text = `岗位要求
1全日制大专以上学历艺术设计类相关专业;
2两年以上平面品牌视觉设计等相关工作经验能独立完成项目的设计工作 3C数码/个护健 类产品服务经验优先有乙方工作经验佳;
3具备一定的设计提案能力能完整的呈现设计思路与创意能清晰的表达设计逻辑与思考;
4热爱设计平面基本功扎实拥有优良的审美与创意想法对版式色彩把控能力强;对工作富有责任心具备团队沟通与协作能力;
5精通 PSAICDR 等平面设计软件能独立完成日常平面设计工作内容熟练使用 PPT/Keynote能完成提案内容的材料美化工作
`
import userHead from '../components/user/userHead.vue' import userHead from '../components/user/userHead.vue'
export default { export default {
components : { components : {
@ -43,9 +105,12 @@
}, },
data() { data() {
return { return {
text : '',
} }
}, },
onShow() {
this.text = this.$utils.stringFormatHtml(text)
},
methods: { methods: {
} }
@ -63,6 +128,18 @@
font-weight: 900; font-weight: 900;
padding-bottom: 20rpx; padding-bottom: 20rpx;
} }
.title2{
font-size: 28rpx;
font-weight: 900;
display: flex;
justify-content: space-between;
align-items: center;
view{
display: flex;
align-items: center;
justify-content: center;
}
}
.price{ .price{
font-size: 30rpx; font-size: 30rpx;
font-weight: 900; font-weight: 900;
@ -70,7 +147,7 @@
} }
.line{ .line{
display: flex; display: flex;
font-size: 22rpx;
font-size: 24rpx;
color: #666666; color: #666666;
margin-top: 30rpx; margin-top: 30rpx;
image{ image{
@ -84,6 +161,26 @@
align-items: center; align-items: center;
} }
} }
.userHead{
padding: 50rpx 0;
border-bottom: 1px solid #00000011;
}
.address{
padding: 30rpx 0;
.line{
margin-top: 20rpx;
}
}
.info{
.text{
font-size: 24rpx;
color: #666666;
line-height: 44rpx;
}
}
} }
} }
</style> </style>

+ 10
- 30
utils/utils.js View File

@ -57,35 +57,6 @@ function verificationAll(data, msg){
return true return true
} }
} }
// let Msgs = {
// default : msg || '表单数据未填写'
// }
// if(typeof msg == 'object'){
// Msgs = {
// default : '表单数据未填写',
// ...msg,
// }
// }
// if (!data){
// uni.showToast({
// title: Msgs.default,
// icon: "none"
// })
// return true
// }
// for (let key in data) {
// if (!data[key] || data[key] === "") {
// uni.showToast({
// title: (Msgs[key] || Msgs.default),
// icon: "none"
// })
// return true
// }
// }
return false return false
} }
@ -115,6 +86,14 @@ export function getHrefParams(name) {
} }
// 将字符串中的文本格式化html
export function stringFormatHtml(str){
return str && str.replace(/\n/gi, '<br>')
.replace(/ /gi, ' ')
}
//深度对比合并两个对象,相同属性b会覆盖a //深度对比合并两个对象,相同属性b会覆盖a
export function deepMergeObject(a, b){ export function deepMergeObject(a, b){
let data = JSON.parse(JSON.stringify(a)) let data = JSON.parse(JSON.stringify(a))
@ -185,5 +164,6 @@ export default {
navigateTo, navigateTo,
navigateBack, navigateBack,
redirectTo, redirectTo,
copyText
copyText,
stringFormatHtml
} }

Loading…
Cancel
Save