<template> <view class="content"> <view class="content-middle" :style="{'opacity':!screenShow?'0.4':''}"> <view class="content-middle-one"> <view class="middle-one"> <view class="content-middle-search"> <text class='iconfont icon-sousuo2'></text> <input type='text' :value='keyword' placeholder='搜索关键字' placeholder-class='placeholder' @input="setValue"></input> </view> <view class="search" @click="search"> 搜索 </view> <!-- <view class="content-middle-sai" @click="screen"> <view class="content-middle-saia"> <image src="../../static/images/saixuan1.png" mode="aspectFit"></image> </view> <view class="content-middle-saib"> 筛选 </view> </view> --> </view> </view> <view class="content-middle-three" v-if="list.length>0"> <view class="middle-three"> <view class="middle-threeb" v-for="(items,j) in list" :key='j' @click="detail(items)"> <liu-swipe-action :index="j" @clickItem="clickItem" :btnList='btnList'> <view class="middle-threeb-title"> <view class="title"> {{items.director_name}} </view> <view class="title-status"> {{items.create_time}} </view> </view> <view class="middle-threeba"> <view class="middle-threeb-a"> <view class="threeb-a-b"> <view class="name">任务主题:<text>{{items.title}}</text></view> <view class="name">工作类型:<text>{{items.cate_name}}</text></view> <view class="name">关联项目:<text>{{items.project_name}}</text></view> <view class="name">预估工时:<text>{{items.plan_hours}}</text></view> <view class="name"> 状态:<text>{{items.flow_status==1?"待办的":items.flow_status==2?"进行中":items.flow_status==3?"已完成":items.flow_status==4?"已拒绝":"已关闭"}}</text> </view> <!-- <view class="achor">{{items.name2}}</view> --> <!-- <view class="middle-edit" @click="editpart(items)"> 编辑 </view> <view class="middle-delete" @click="clickItem(items)"> 删除 </view> --> </view> </view> <!-- <view class="middle-threeb-b"> {{items.name}} </view> --> </view> </liu-swipe-action> </view> </view> </view> </view> <view class="content-middle" :style="{'position':'absolute','top':0+'px','zIndex':999}" v-if="!screenShow"> <view class="content-middle-one"> <view class="middle-one"> <view class="content-middle-search"> <text class='iconfont icon-sousuo2'></text> <input type='text' :value='keyword' placeholder='搜索任务状态、优先级、部门等' placeholder-class='placeholder' @input="setValue"></input> </view> <view class="content-middle-sai" @click="screen" style="background-color: #3274F9;"> <view class="content-middle-saia"> <image src="../../static/images/saixuan.png" mode="aspectFit"></image> </view> <view class="content-middle-saib" style="color: #fff;"> 筛选 </view> </view> </view> <view class="content-middle-search-detail"> <view class="search-detail" v-for="(item,k) in klist" :key='k'> <view class="search-detail-one"> <view class="name"> {{item.name}} </view> </view> <view class="search-detail-two"> {{item.name1}} </view> </view> </view> </view> </view> <view class="content-middle-two"> <view class="middle-two-img"> <image src="@/static/images/ja2.png" mode="aspectFit"></image> </view> <view class="" @click="adddepart">新建任务</view> </view> <u-empty v-if="loadConfig.status=='nomore'&& list.length==0" text="没有信息" icon="/static/empty/data.png"></u-empty> <u-loadmore v-else :status="loadConfig.status" :loading-text="loadConfig.loadingText" :loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" /> </view> </template> <script> import { projecttasklist, deleteproject_task } from '@/api/oa.js' import { HTTP_REQUEST_URL } from '@/config/app.js' import { Toast } from '@/libs/uniApi.js' export default { data() { return { show: false, btnList: [{ id: '1', name: '编辑', width: '100rpx', height: '100rpx', bgColor: '#5f92f7', color: '#FFFFFF', fontSize: '28rpx' }, { id: '2', name: '删除', height: '100rpx', width: '100rpx', bgColor: '#ed656d', color: '#FFFFFF', fontSize: '28rpx' }], loadConfig: { page: 1, limit: 5, loadingText: '努力加载中', loadmoreText: '轻轻上拉', nomoreText: '我也是有底线的~~', status: 'loadmore' }, keyword: '', list: [], klist: [], screenShow: true }; }, computed: { httpRequestUrl() { return HTTP_REQUEST_URL; } }, onLoad() { }, onShow() { this.initList() }, onReachBottom() { this.getDocumentList() }, onPullDownRefresh() { uni.stopPullDownRefresh() }, methods: { async initList() { this.loadConfig.page = 1; this.loadConfig.status = "loadmore"; this.list = []; await this.getDocumentList(); }, //获取任务 async getDocumentList() { if (this.loadConfig.status == "nomore") return; this.loadConfig.status = "loading" let res = await projecttasklist({ page: this.loadConfig.page, limit: this.loadConfig.limit, keyword: this.keyword }) this.loadConfig.status = "loadmore" if (res.data.data.length < this.loadConfig.limit) { this.loadConfig.status = "nomore" } else { this.loadConfig.page++; } this.list = [...this.list, ...res.data?.data] }, //添加项目 adddepart() { uni.navigateTo({ url: '/pages/addquest/index?type=' + 0 }) }, //删除弹窗 clickItem(data) { // //console.log(e) if (data.id == 2) { uni.showModal({ content: '确定要删除吗', success: (e) => { if (e.confirm) { this.deleteDepartment(this.list[data.index].id) } } }) } else { this.editpart(this.list[data.index]) } }, //删除 async deleteDepartment(id) { const res = await deleteproject_task({ id: id }) if (res.code == 0) { this.initList() } Toast(res.msg); }, taskDetail(item) { }, //编辑任务 editpart(item) { uni.navigateTo({ url: '/pages/addquest/index??type=' + 1 + "&data=" + item.id }) }, //详情 detail(item) { uni.navigateTo({ url: '/pages/oaTask/detail??type=' + 1 + "&data=" + item.id }) }, //查询 search() { this.initList() }, //输入监听 setValue(e) { this.keyword = e.detail.value if (this.keyword.length == 0) { this.initList() } } } }; </script> <style lang="scss"> page { padding-bottom: 88rpx; } .content-middle { .content-middle-one { .middle-one { display: flex; background-color: #FFFFFF; padding: 28rpx 18rpx; .search { font-size: 28rpx; font-family: PingFang SC-Regular, PingFang SC; font-weight: 400; color: #666666; width: 149rpx; line-height: 63rpx; height: 63rpx; background: #FFFFFF; text-align: center; border-radius: 35rpx 35rpx; border: 2rpx solid #E6E5E5; margin-left: 18rpx; } .content-middle-search { display: flex; width: 527rpx; height: 63rpx; line-height: 63rpx; padding-left: 30rpx; background: #F7F7F7; border-radius: 35rpx 35rpx; font-size: 25rpx; input { width: 527rpx; height: 63rpx; line-height: 63rpx; padding-left: 30rpx; } .placeholder { font-size: 25rpx; font-family: PingFang SC-Regular, PingFang SC; font-weight: 400; color: #999999; padding-left: 30rpx; } } .content-middle-sai { display: flex; width: 149rpx; height: 63rpx; line-height: 63rpx; background: #FFFFFF; border-radius: 35rpx 35rpx; border: 2rpx solid #E6E5E5; margin-left: 18rpx; .content-middle-saia { width: 29rpx; height: 28rpx; margin-left: 25rpx; margin-right: 10rpx; image { width: 100%; height: 100%; } } .content-middle-saib { font-size: 28rpx; font-family: PingFang SC-Regular, PingFang SC; font-weight: 400; } } } .content-middle-search-detail { background-color: #FFFFFF; :nth-last-child(1) { border: none !important; } .search-detail { display: flex; justify-content: space-between; padding-right: 195rpx; padding: 18rpx 53rpx; border-bottom: 2rpx solid #E6E6E6; ; .search-detail-one {} } } } .content-middle-three { margin-top: 26rpx; .middle-three { .middle-threea { font-size: 35rpx; font-family: PingFang SC-Bold, PingFang SC; font-weight: bold; color: #3274F9; margin-bottom: 30rpx; } .middle-threeb { padding: 28rpx 28rpx; margin-bottom: 20px; background-color: #FFFFFF; .middle-threeb-title { height: 98rpx; line-height: 98rpx; border-bottom: 1px solid #CCCCCC; display: flex; justify-content: space-between; margin-bottom: 20rpx; .title { font-size: 32rpx; font-family: PingFang SC-Medium, PingFang SC; font-weight: 500; color: #333333; } .title-status { font-size: 32rpx; font-family: PingFang SC-Medium, PingFang SC; font-weight: 500; } } .middle-threeba { display: flex; justify-content: space-between; .middle-threeb-a { .threeb-a-b { view { margin-bottom: 20rpx; } .middle-edit { width: 645rpx; height: 63rpx; line-height: 63rpx; background: #e6e5d9; text-align: center; font-size: 28rpx; font-family: PingFang SC-Regular, PingFang SC; font-weight: 400; color: #000; margin-bottom: 20rpx; } .middle-delete { width: 645rpx; height: 63rpx; line-height: 63rpx; background: #F02828; text-align: center; font-size: 28rpx; font-family: PingFang SC-Regular, PingFang SC; font-weight: 400; color: #FFFFFF; } .name { font-size: 35rpx; ont-family: PingFang SC-Regular, PingFang SC; text { // font-size: 25rpx; font-size: 35rpx; font-family: PingFang SC-Regular, PingFang SC; font-weight: bold; color: #333333; } } .achor { font-size: 28rpx; font-family: PingFang SC-Regular, PingFang SC; font-weight: 400; color: #999999; } } } .middle-threeb-b { height: 80rpx; image { width: 100%; height: 100%; } } } } } } } .content-middle-two { width: 386rpx; height: 70rpx; line-height: 70rpx; background: #3274F9; border-radius: 60rpx 60rpx; z-index: 99999; font-size: 32rpx; font-family: PingFang SC-Regular, PingFang SC; font-weight: 400; color: #FFFFFF; display: flex; position: absolute; bottom: 90px; left: 50%; position: fixed; margin-left: -198rpx; .middle-two-img { width: 23rpx; height: 23rpx; margin-left: 112rpx; margin-right: 10rpx; image { width: 100%; height: 100%; } } } </style>