yuanshun
1 year ago
5 changed files with 170 additions and 9 deletions
@ -0,0 +1,117 @@ |
|||||
|
<script setup lang="ts"> |
||||
|
import { inject,reactive } from 'vue'; |
||||
|
import { screenList } from "../../../api/task"; |
||||
|
import { taskStore } from "../../../store/task"; |
||||
|
import { showToast } from 'vant' |
||||
|
const state=reactive({ |
||||
|
mode:'', |
||||
|
cycle:'', |
||||
|
}) |
||||
|
const { closeScreenBool }:any = inject('popup') |
||||
|
const store=taskStore() |
||||
|
const leftBack = ()=>{ |
||||
|
closeScreenBool() |
||||
|
} |
||||
|
const getsSreenList=async ()=>{ |
||||
|
const res:any =await screenList({}) |
||||
|
console.log('getPositionTypeList------',res.data); |
||||
|
if(res){ |
||||
|
store.setScreenList(res.data) |
||||
|
}else{ |
||||
|
showToast(res.msg) |
||||
|
} |
||||
|
} |
||||
|
const clearScreen=()=>{ |
||||
|
state.cycle='' |
||||
|
state.mode='' |
||||
|
} |
||||
|
const modeChange=(name:string)=>{ |
||||
|
state.mode=name |
||||
|
} |
||||
|
const cycleChange=(name:string)=>{ |
||||
|
state.cycle=name |
||||
|
} |
||||
|
if(!store.screenList.serviceMode){ |
||||
|
getsSreenList() |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
<template> |
||||
|
|
||||
|
<van-nav-bar title="筛选" left-arrow @click-left="leftBack"> |
||||
|
<template #left> |
||||
|
<van-icon name="cross" size="18"/> |
||||
|
</template> |
||||
|
</van-nav-bar> |
||||
|
<div class="task-screen"> |
||||
|
<h3>服务方式</h3> |
||||
|
<div class="screen-item"> |
||||
|
<span :class="state.mode==item?'active':''" v-for="(item, index) in store.screenList.serviceMode" :key="index" @click="modeChange(item)"> |
||||
|
{{ item }} |
||||
|
</span> |
||||
|
</div> |
||||
|
<h3>服务周期</h3> |
||||
|
<div class="screen-item"> |
||||
|
<span :class="state.cycle==item?'active':''" v-for="(item, index) in store.screenList.taskCycle" :key="index" @click="cycleChange(item)"> |
||||
|
{{ item }}</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="screen-footer"> |
||||
|
<button class="screen-clear" @click="clearScreen()">清除</button> |
||||
|
<van-button type="primary" block @click="closeScreenBool(state)">确定</van-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
<style scoped> |
||||
|
.task-screen{ |
||||
|
padding: 0 0.6rem; |
||||
|
} |
||||
|
.task-screen h3{ |
||||
|
font-size: 0.96rem; |
||||
|
line-height: 0.96rem; |
||||
|
font-weight: 500; |
||||
|
color: #333333; |
||||
|
margin: 0.8rem 0; |
||||
|
} |
||||
|
.task-screen span{ |
||||
|
width: 5.76rem; |
||||
|
height: 1.6rem; |
||||
|
line-height: 1.6rem; |
||||
|
background: #F5F6F8; |
||||
|
border: 1px solid #F5F6F8; |
||||
|
border-radius: 0.16rem; |
||||
|
font-size: 0.75rem; |
||||
|
font-weight: 400; |
||||
|
color: #666666; |
||||
|
text-align: center; |
||||
|
display: inline-block; |
||||
|
margin: 0 0.59rem 0.51rem 0; |
||||
|
} |
||||
|
.task-screen span:nth-child(3n){ |
||||
|
margin-right: 0; |
||||
|
} |
||||
|
.task-screen span.active{ |
||||
|
color: #FF8A00; |
||||
|
border: 1px solid #FE8F27; |
||||
|
background: #ffffff; |
||||
|
} |
||||
|
.screen-footer{ |
||||
|
position: fixed; |
||||
|
bottom: 0; |
||||
|
background: #FFFFFF; |
||||
|
box-shadow: 0rem 0rem 1rem 0rem rgba(208,208,208,0.39); |
||||
|
padding: 0.83rem 0.64rem; |
||||
|
display: flex; |
||||
|
width: calc(100vw - 1.28rem); |
||||
|
} |
||||
|
.screen-clear{ |
||||
|
width: 5.33rem; |
||||
|
height: 2.35rem; |
||||
|
background: #F5F6F8; |
||||
|
border-radius: 0.27rem; |
||||
|
border: 0; |
||||
|
font-size: 0.8rem; |
||||
|
font-weight: bold; |
||||
|
color: #666565; |
||||
|
margin-right: 0.64rem; |
||||
|
} |
||||
|
</style> |
Loading…
Reference in new issue