【uniapp小程序】打印列表UI模板

简介: 【uniapp小程序】打印列表UI模板

这是一个云打印项目,首页查询接口渲染设备,设备是否在线是通过redis进行判断的,当设备在线时可以通过在线的驱动软件打印用户提交的文档,自动处理无需人工干预

今天主要是分享一下,文件列表界面,由于UI太丑于是我换了下,如图所示:

框架为uView2.0,代码如下:

<template>
  <view>
    <view class="container">
        <!-- 页面内容 -->
    <!-- 遮罩层 -->
    <u-popup
      :safeAreaInsetBottom="true"
      :safeAreaInsetTop="true"
      :mode="popupData.mode"
      :show="show"
      :round="popupData.round"
      :overlay="popupData.overlay"
      :borderRadius="popupData.borderRadius"
      :closeable="popupData.closeable"
      :closeOnClickOverlay="popupData.closeOnClickOverlay"
      @close="close"
    >
      <view class="u-popup-slot">
        <u-grid :border="true">
          <u-grid-item
            @click="click('1')"
            customStyle="padding-top: 10px; padding-bottom: 10px">
            <image src="/static/file_word.png" mode="" style="width: 100rpx;height: 100rpx;"></image>
            <text class="grid-text">word打印</text>
          </u-grid-item>
          <u-grid-item
            @click="click('1')"
            customStyle="padding-top: 10px; padding-bottom: 10px">
            <image src="/static/PDF.png" mode="" style="width: 100rpx;height: 100rpx;"></image>
            <text class="grid-text">pdf打印</text>
          </u-grid-item>
          <u-grid-item
            @click="click('1')"
            customStyle="padding-top: 10px; padding-bottom: 10px">
            <image src="/static/EXCEL.png" mode="" style="width: 100rpx;height: 100rpx;"></image>
            <text class="grid-text">excel打印</text>
          </u-grid-item>
          <u-grid-item
            @click="click('1')"
            customStyle="padding-top: 10px; padding-bottom: 10px">
            <image src="/static/tupian.png" mode="" style="width: 100rpx;height: 100rpx;"></image>
            <text class="grid-text">照片打印</text>
          </u-grid-item>
          <u-grid-item
            @click="click('1')"
            customStyle="padding-top: 10px; padding-bottom: 10px">
            <image src="/static/other.png" mode="" style="width: 100rpx;height: 100rpx;"></image>
            <text class="grid-text">本地文件</text>
          </u-grid-item>
          <u-grid-item
            @click="click('1')"
            customStyle="padding-top: 10px; padding-bottom: 10px">
            <image src="/static/wendangwenjian.png" mode="" style="width: 100rpx;height: 100rpx;"></image>
            <text class="grid-text">腾讯文档</text>
          </u-grid-item>
        </u-grid>
      </view>
    </u-popup>
    <!-- 遮罩层 -->
  <!-- 悬浮图标 -->
  <view class="float-icon" :style="{right: right + 'px', bottom: bottom + 'px'}" @touchstart="touchStart" @touchmove="touchMove" @touchend="touchEnd">
    <image src="/static/biaoge-tijiao.png" style="width: 50rpx;height: 50rpx;"></image>
  </view>
    <!-- 悬浮图标 -->
  <view class="card">
      <!-- 卡片内容 -->
      <view class="top_" >
        <view class="zuo_">
          <image src="/static/file_word.png" mode="" style="width: 150rpx;height: 165rpx;"></image>
        </view>
      <view class="you_">
        <view>
          大学生训练项目创业书.docx
        </view>
        <view style="display: flex;flex-direction: row;">
          <!--  -->
        <u-tag text="黑白" style="width: 100rpx;margin-left: 10rpx;height: 50rpx;">
        </u-tag>
        <u-tag
            text="标签"
            type="warning"
          style="width: 100rpx;margin-left: 10rpx;height: 50rpx;">
        >
        </u-tag>
        </view>
        <view>
          <view class="dayin_set">
            <view class="dayin_set_zuo">
              <image src="/static/shezhitianchong.png" mode="" style="width: 45rpx;height: 45rpx;"></image>
              <text>打印设置</text>
            </view>
            <view class="dayin_set_you">
              <image src="/static/yulan.png" mode="" style="width: 45rpx;height: 45rpx;"></image>
              <text>预览</text>
            </view>
          </view>
        </view>
      </view>
      </view>
      <view class="u-demo-block__content">
        <u-line-progress
            height="8"
            :showText="false"
            :percentage="percentage6"
            activeColor="#3c9cff"
            inactiveColor="#f3f4f6"
        >
        </u-line-progress>
      </view>
      <view class="xia_">
      <text>总15页</text>
      <text style="margin-left: 370rpx;">打印份数:2份</text>
      <text style="margin-left: 20rpx;color: red;">取消打印</text>
      </view>
  </view>
  </view>
    <!-- 页面内容 -->
    <view class="bottom-bar">
        <text>费用:¥0.4</text>
        <!-- 底部视图 -->
        <view style="display: flex;flex-direction: row;">
        <u-button
              text="确认支付"
              size="normal"
              type="primary"
            style="width: 100rpx;"
          ></u-button>
        <u-button
            text="模拟支付完成"
            size="normal"
            type="success"
          style="width: 100rpx;"
        ></u-button>
        </view>
      </view>
  </view>
  </view>
</template>
<script>
export default {
  data() {
    return {
    percentage6: 50,
    // 悬浮按钮
      startX: 0,
      startY: 0,
      moveX: 0,
      moveY: 0,
      right: 20,
      bottom: 100,
    // 悬浮按钮
    // 遮罩层
    show: false,
    popupData: {
      overlay: true,
      mode: 'center',
      round: 10,
    borderRadius: '',
    closeable: true,
      closeOnClickOverlay: true
    },
     // 遮罩层
    }
  },
  methods: {
    click(name) {
      uni.showToast({
        title:name
      })
      this.$refs.uToast.success(`点击了第${name}个`)
    },
    close() {
      this.show = false
      // console.log('close');
    },
    touchStart(e) {
      this.startX = e.touches[0].clientX
      this.startY = e.touches[0].clientY
    },
    touchMove(e) {
      this.moveX = e.touches[0].clientX - this.startX
      this.moveY = e.touches[0].clientY - this.startY
      this.right -= this.moveX
      this.bottom -= this.moveY
      this.startX = e.touches[0].clientX
      this.startY = e.touches[0].clientY
    },
    touchEnd(e) {
      // do something
    // this.$token.toast("1",2000);
  uni.$u.sleep().then(() => {
    this.show = !this.show
  })
  this.percentage6 = uni.$u.range(0, 100, this.percentage6 + 10)
    },
  },
}
</script>
<style>
  /* 悬浮按钮 */
.float-icon {
  position: fixed;
  width: 50px;
  height: 50px;
  border-radius: 25px;
  background-color: #83deff;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 999;
}
/* 悬浮按钮 */
/* 卡片部分 */
.card {
  width: 650rpx;
  height: 250rpx;
  background-color: #fff;
  border-radius: 5px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  padding: 16px;
  margin: auto;
   margin-top: 20rpx;
}
.top_{
  width: 650rpx;
  height: 180rpx;
  display: flex;
  flex-direction: row;
  /* background-color: red; */
}
.xia_{
  margin-top: 20rpx;
  width: 650rpx;
  height: 40rpx;
  display: flex;
  flex-direction: row;
  /* background-color: yellow; */
  font-size: 0.65em;
}
.zuo_{
  width: 180rpx;
  height: 175rpx;
  display: flex;
  flex-direction: column;
  /* background-color: yellowgreen; */
}
.you_{
  width: 468rpx;
  height: 175rpx;
  display: flex;
  flex-direction: column;
  /* background-color: bisque; */
}
.dayin_set{
  height: 70rpx;
  /* background-color: red; */
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  width: 469rpx;
}
.dayin_set_zuo{
  width: 200rpx;
  height: 50rpx;
  color: white;
  border-radius: 15rpx;
  justify-content: center;
  background-color: #52B1E2;
  display: flex;
  flex-direction: row;
  align-items: center;
}
.dayin_set_you{
width: 150rpx;
height: 50rpx;
justify-content: center;
color: white;
border-radius: 15rpx;
background-color: #52B1E2;
display: flex;
flex-direction: row;
align-items: center;
margin-left: 110rpx;
}
/* 卡片部分 */
/* 遮罩层 */
.u-popup-slot {
    width: 700rpx;
    height: 500rpx;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  /* 九宫格 */
  .swiper {
    height: 220px;
  }
  .grid-text {
    font-size: 14px;
    color: #909399;
    padding: 10rpx 0 20rpx 0rpx;
    /* #ifndef APP-PLUS */
    box-sizing: border-box;
    /* #endif */
  }
  /* 板块 */
   .container {
      display: flex;
      flex-direction: column;
      height: 100%;
    }
    .bottom-bar {
      position: fixed;
      bottom: 0;
      left: 0;
      width: 100%;
      height: 65px;
      background-color: #F3F3F6;
      /* 其他样式 */
    }
</style>
相关文章
|
1月前
|
人工智能 小程序 搜索推荐
uni app下开发AI运动小程序解决方案
本文介绍了在小程序中实现AI运动识别的解决方案。该方案依托于UNI平台,通过高效便捷的插件形式,实现包括相机抽帧控制、人体识别、姿态识别等在内的多项功能,无需依赖后台服务器,大幅提高识别效率和用户体验。方案内置多种运动模式,支持自定义扩展,适用于AI健身、云上赛事、AI体测等多场景,适合新开发和存量改造项目。
|
1月前
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
36 0
在线课堂+工具组件小程序uniapp移动端源码
|
3月前
|
小程序 JavaScript 前端开发
小程序常见的UI框架
小程序常见的UI框架
323 60
|
2月前
|
开发框架 人工智能 小程序
小程序常见的 UI 框架
【10月更文挑战第17天】小程序 UI 框架为开发者提供了便捷的工具和资源,帮助他们快速构建高质量的小程序界面。在选择框架时,需要综合考虑各种因素,以找到最适合项目的解决方案。随着技术的不断进步,UI 框架也将不断发展和创新,为小程序开发带来更多的便利和可能性。
89 2
|
2月前
|
小程序 开发者 UED
支付宝小程序UI/UX设计原则与最佳实践
支付宝小程序UI/UX设计原则与最佳实践
92 6
|
2月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
355 3
|
3月前
|
JavaScript
Ant Design Vue UI框架的基础使用,及通用后台管理模板的小demo【简单】
这篇文章介绍了如何使用Ant Design Vue UI框架创建一个简单的后台管理模板,包括创建Vue项目、安装和使用ant-design-vue、以及编写后台管理通用页面的代码和样式。
Ant Design Vue UI框架的基础使用,及通用后台管理模板的小demo【简单】
|
3月前
|
JavaScript 前端开发 开发工具
使用vue3+element-ui plus 快速构建后台管理模板
本文介绍了如何使用Vue 3和Element UI Plus快速构建后台管理模板的步骤,包括安装Vue 3脚手架、Element UI Plus以及如何全局配置Element UI Plus。然后详细讲解了如何使用Element UI Plus构建布局,包括Header组件、Aside组件和HomeView视图的创建和样式调整,以及App.vue和main.css的修改,最后提供了项目的文件结构图和效果展示。
使用vue3+element-ui plus 快速构建后台管理模板
|
2月前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
58 0
微信小程序更新提醒uniapp
|
2月前
|
移动开发 小程序 数据可视化
一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
55 2