|                                                                                                                                                                                  |  | <template>  <view class="page__view highlight">
    <!-- 导航栏 -->		<navbar :title="title" leftClick @leftClick="$utils.navigateBack" bgColor="transparent" color="#191919" />
    <!-- 搜索栏 -->    <view :class="['flex', 'search', isFocusSearch ? 'is-focus' : '']" >      <uv-search         v-model="keyword"         placeholder="请输入要查询的内容"         color="#181818"        bgColor="transparent"         :showAction="isFocusSearch"        @custom="search"         @search="search"        @focus="isFocusSearch = true"        @blur="isFocusSearch = false"      >        <template #prefix>          <image class="search-icon" src="/static/image/icon-search-dark.png" mode="widthFix"></image>        </template>      </uv-search>    </view>
    <view class="list">      <template v-if="total">        <view class="flex list-item" v-for="item in list" :key="item.id" @click="jumpToDetail(item.id)">          <view class="cover">            <image class="img" :src="item.image" mode="aspectFill"></image>          </view>          <view class="info">            <view class="title">{{ item.title }}</view>            <view class="desc">{{ item.createTime }}</view>          </view>        </view>      </template>      <template v-else>        <uv-empty mode="list"></uv-empty>      </template>    </view>  </view></template>
<script>	import mixinsList from '@/mixins/list.js'
	import recordsView from '@/components/growing/recordsView.vue'
  export default {		mixins: [mixinsList],		components: {      recordsView,    },    data() {      return {        title: '搜索',				keyword: '',				isFocusSearch: false,				queryParams: {					pageNo: 1,					pageSize: 10,					title: '',				},        mixinsListApi: '',      }    },    onLoad({ title, api }) {      this.title = title      this.mixinsListApi = api            this.getData()    },    methods: {      search() {        this.queryParams.pageNo = 1        this.queryParams.pageSize = 10				this.queryParams.title = this.keyword        this.getData()      },      jumpToDetail(id) {        let api        let idKey        let contentKey = 'details'
        switch(this.mixinsListApi) {          case 'queryNewsList':            api = 'queryNewsById',            idKey = 'newsId'            break          case 'queryPolicyList':            api = 'queryPolicyById',            idKey = 'policyId'            break          case 'queryJournalList':            api = 'queryJournalById',            idKey = 'journalId'            contentKey = 'content'            break          default:            break        }                uni.navigateTo({           url: `/pages_order/article/index?api=${api}&id=${id}&idKey=${idKey}&contentKey=${contentKey}`        })      },    },  }</script>
<style scoped lang="scss">
  .page__view {    background: linear-gradient(#DAF3FF, #FBFEFF 250rpx, #FBFEFF);  }
	.search {		$h: 64rpx;		$radius: 32rpx;		$borderWidth: 4rpx;
    margin: 24rpx 32rpx 0 32rpx;    width: calc(100% - 32rpx * 2);		height: $h;		position: relative;		border-radius: $radius;
		&-icon {			margin: 0 13rpx 0 26rpx;			width: 30rpx;			height: auto;		}
		/deep/ .uv-search__content {			padding: 12rpx 0;      background: #FFFFFF !important;      border-color: #CFEFFF !important;			border: 4rpx solid transparent;		}
    &.is-focus {      /deep/ .uv-search__action {        padding: 19rpx 24rpx;        font-size: 26rpx;        font-weight: 500;        line-height: 1;        color: #FFFFFF;        background: #00A9FF;        border-radius: 32rpx;      }    }  }
  .list {    margin-top: 24rpx;    padding: 12rpx 40rpx;
    &-item {      align-items: flex-start;      column-gap: 16rpx;      padding: 24rpx;      background: #F9F9F9;      border: 2rpx solid #FFFFFF;      border-radius: 24rpx;
      & + & {        margin-top: 40rpx;      }
      .cover {        width: 152rpx;        height: 152rpx;        border-radius: 8rpx;        overflow: hidden;        border: 2rpx solid #E6E6E6;
        .img {          width: 100%;          height: 100%;        }      }
      .info {        flex: 1;
        .title {          font-size: 28rpx;          font-weight: 500;          color: #000000;        }
        .desc {          margin-top: 8rpx;          font-size: 24rpx;          color: #8B8B8B;        }      }    }  }
</style>
 |