|
- <template>
- <div class="app-container">
- <van-search v-model="value" placeholder="请输入搜索关键词" @search="onSearch"/>
-
- <van-tabs v-model="active" color="#007b76" title-active-color="#007b76" @change="tabChange">
- <van-tab title="供应项目">
- <van-dropdown-menu>
- <van-dropdown-item v-model="value1" :options="projectTypeOption" @change="getList"/>
- <van-dropdown-item :value="value2" :title="value2" ref="item">
- <van-tree-select
- :active-id.sync="activeId"
- :items="deptListOption"
- :main-active-index.sync="activeIndex"
- :max="1"
- @click-item="clickItem"
- @click-nav="clickNav"
- />
- </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?'/api'+item.fileUrl:'../../static/images/zwtpxw.jpg'" >
- <template #tags>
- <p class="title">【{{item.rollout}}】{{item.projectName}}</p>
- <p class="type">{{ item.projectShowStatus }}</p>
- <p class="timeEnd">报名结束 {{ item.signupStopTime }}</p>
- <p class="timeEnd">竞价结束 {{ item.biddingStopTime }}</p>
- <van-row>
- <van-col span="12" class="money"><span>{{ item.price }}</span>{{ item.unit }}</van-col>
- <van-col span="8" offset="4" class="time">{{ item.projectReleaseTime }}</van-col>
- </van-row>
- </template>
- </van-card>
- </router-link>
- </van-list>
- </van-tab>
- <van-tab title="需求项目">
- <van-dropdown-menu>
- <van-dropdown-item v-model="value1" :options="projectTypeOption" @change="getNeedProjectList"/>
- <van-dropdown-item :value="value2" :title="value2" ref="item">
- <van-tree-select
- :active-id.sync="activeId"
- :items="deptListOption"
- :main-active-index.sync="activeIndex"
- :max="1"
- @click-item="clickItem"
- @click-nav="clickNav"
- />
- </van-dropdown-item>
- </van-dropdown-menu>
- <van-list v-model="loading1" :finished="finished1" @load="getNeedProjectList" finished-text="没有更多了">
- <router-link :to="{path:'project/projectNeedsDetail',query:{id:item.id}}" v-for="(item,index) in infoList1" :key="index">
- <van-card :thumb="item.fileUrl?'/api'+item.fileUrl:'../../static/images/zwtpxw.jpg'" >
- <template #tags>
- <p class="title">{{ item.projectName }}</p>
- <p class="type">{{ item.needname }}</p>
- <p class="timeEnd">需求开始时间 {{ item.needStartTime }}</p>
- <p class="timeEnd">需求结束时间 {{ item.needStopTime }}</p>
- <van-row>
- <van-col span="12" class="money"><span>{{ item.price }}</span></van-col>
- <van-col span="8" offset="4" class="time">{{ item.phone }}</van-col>
- </van-row>
- </template>
- </van-card>
- </router-link>
- </van-list>
- </van-tab>
- </van-tabs>
- </div>
- </template>
-
- <script>
- import { getOutProjectList , getDeptList , needProjectList } from "@/api/project/index" ;
-
- export default {
- name: "project",
- data() {
- return {
- active:0,
- value1: '',
- value2: '标的物位置',
- activeId: this.global.deptId,
- activeIndex: 0,
- value3: '',
- value:"",
- //是否显示加载
- loading: false,
- //是否滚动到底部
- finished: true,
- //是否显示加载
- loading1: false,
- //是否滚动到底部
- finished1: true,
- option1: [
- ],
- option2: [
- ],
- option3: [
- { text: '竞价状态', value: '' },
- { text: '正在报名', value: '正在报名' },
- { text: '等待竞价', value: '等待竞价' },
- { text: '正在竞价', value: '正在竞价' },
- { text: '等待成交', value: '等待成交' },
- { text: '已经成交', value: '已经成交' },
- ],
- //标的物类型
- projectTypeOption:[{text:'标的物类型',value:''}],
- //标的物所在地
- deptListOption: [
- ],
- input: '',
- infoList:[],
- infoList1:[],
- };
- },
- created() {
- this.getDicts("project_type").then(response => {
- console.log(response)
- response.data.map(item => {
- this.projectTypeOption.push({ value:item.dictValue, text: item.dictLabel});
- });
- });
- getDeptList().then(response => {
- response.data.map(item => {
- getDeptList(item.deptId).then(res => {
- let list = []
- res.data.map(i =>{
- list.push({text:i.deptName,children:[],id:i.deptId})
- })
- if(list.length==0){
- list.push({text:item.deptName,id:item.deptId})
- }else{
- this.deptListOption.push({ text: item.deptName,children: list});
- }
- });
- });
- });
- this.getList();
- },
- mounted(){},
- methods: {
- tabChange(e){
- console.log(e)
- if (e == 0){
- this.getList();
- }else{
- this.getNeedProjectList()
- }
- },
- onSearch(val) {
- this.loading = true;
- if(this.infoList.length>0){
- let newList = []
- for(let j = 0 ;j<this.infoList.length;j++){
- if(this.infoList[j].projectName.indexOf(val)>-1){
- newList.push(this.infoList[j]);
- }
- }
- this.infoList = newList
- }
- if(val==""){
- this.getList()
- }
- this.loading = false;
- },
- getList(){
- console.log(this.value1)
- let queryDatas = {
- 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 = []
- for(let j = 0 ;j<this.infoList.length;j++){
- if(this.infoList[j].projectName.indexOf(this.value)>-1){
- newList.push(this.infoList[j]);
- }
- }
- this.infoList = newList
- console.log(this.infoList)
- }
- });
- },
- getNeedProjectList(){
- let queryDatas = {
- deptId: this.activeId,
- projectNumber:this.value1,
- }
- console.log(queryDatas)
- needProjectList(queryDatas).then(response =>{
- console.log(response)
- this.infoList1 = response.rows
- });
- },
- clickNav(index){
-
- },
- clickItem(data){
- if(data.text==this.value2){
- this.activeId=1
- this.value2='标的物位置'
- }else{
- this.value2=data.text
- }
- this.getList()
- this.$refs.item.toggle();
- },
- },
- };
- </script>
-
- <style scoped lang="scss">
- .app-container {
- }
- .title{
- font-size: 0.4rem;
- }
- .type{
- font-size: 0.35rem;
- color: #E7851C;
- margin-top: 5px;
- }
- .timeEnd{
- color: #666666;
- margin-top: 5px;
- font-size: 0.1rem;
- }
- .money{
- color: #C21F3A;
- line-height: 0.5rem;
- margin-top: 5px;
- }
- .money span{
- font-size: 0.5rem;
- }
- .time{
- color: #666666;
- line-height: 0.6rem;
- margin-top: 5px;
- }
- </style>
|