前端工作总结239-uni-弹出框显示数据

简介: 前端工作总结239-uni-弹出框显示数据
<template>
  <view class="wrap">
    <u-form :model="form" :rules="rules" ref="uForm" :errorType="errorType">
      <u-form-item label="标题" label-width="140" style="margin-left:30rpx" prop="title">
        <u-input v-model="form.title" placeholder="请输入要输入的文章标题" />
      </u-form-item>
      <u-form-item label="类别" label-width="140" style="margin-left:30rpx">
        <u-input type="select" v-model="form.cate" placeholder="请选择" @click="show = true"></u-input>
        <u-select v-model="show" mode="single-column" :list="list" @confirm="confirm"></u-select>
      </u-form-item>
        <!-- 渲染页面数据 -->
        <navigator url="../LevineHua-editor/LevineHua-editor" class="single">
      <u-form-item label="请输入内容" prop="content" label-width="150">
        <input  placeholder="请输入内容" v-model="form.content" type="texarea" />
      </u-form-item>
      </navigator>
      <u-form-item label-position="top" label-width="140" label="封面图" prop="coverImage">
        <u-image width="320rpx" height="188rpx" @click="choose" :src="messimg"></u-image>
      </u-form-item>
      <u-form-item label="开始时间" prop="startDate" label-width="200">
        <u-input type="select" v-model="form.startDate" placeholder="请选择" @click="start_time_show = true"></u-input>
        <u-picker mode="time" v-model="start_time_show" @confirm="confirm1" :params="params"></u-picker>
      </u-form-item>
      <u-form-item label="结束时间" prop="endDate" label-width="200">
        <u-input type="select" v-model="form.endDate" placeholder="请选择" @click="end_time_show = true"></u-input>
        <u-picker mode="time" v-model="end_time_show" @confirm="confirm2" :params="params"></u-picker>
      </u-form-item>
    </u-form>
    <u-button class="sub-btn" @click="submit">提交</u-button>
  </view>
</template>
<script>
  /* 引入富文本编辑器 */
  import jinEdit from '@/components/jin-edit/jin-edit.vue';
  export default {
    /* 注册组件 */
    components: {
      jinEdit
    },
    data() {
      return {
        params: {
          year: true,
          month: true,
          day: true,
          hour: true,
          minute: true,
          second: true
        },
        messimg: '',
        /* 获取token值 */
        header1: {
          Authorization: this.vuex_token
        },
        /* 存储上传地址 */
        action1: '',
        show: false,
        //控制选择框显示
        end_time_show: false,
        //控制选择框显示
        start_time_show: false,
        form: {
        },
        /* list的数据 */
        list: [{
            value: '市场动态',
            label: '市场动态'
          },
          {
            value: '市场党建',
            label: '市场党建'
          },
          {
            value: '通知公告',
            label: '通知公告'
          },
          {
            value: '生活窍门',
            label: '生活窍门'
          },
          {
            value: '健康饮食',
            label: '健康饮食'
          },
          {
            value: '家政服务',
            label: '家政服务'
          },
          {
            value: '街道服务',
            label: '街道服务'
          },
        ],
        //提示
        errorType: ['message'],
        //验证
        rules: {
          title: [{
              required: true,
              message: '请输入姓名',
              trigger: 'blur',
            },
            {
              min: 3,
              max: 5,
              message: '姓名长度在3到5个字符',
              trigger: ['change', 'blur'],
            },
          ],
          content: [{
              required: true,
              message: '请输入通知内容',
              trigger: ['change', 'blur'],
            },
          ],
        },
      }
    },
    created() {
      /* "loginId": 0,
        "marketId": 0, */
      this.form.loginId = this.vuex_user.id
      this.form.marketId = this.vuex_user.market_id
      console.log(this.vuex_token)
      var url = this.$u.http.config.baseUrl + '/uploadFile/file'
      console.log(url)
      this.action1 = url
    },
    methods: {
      changeList(val){
        console.log(1)
        console.log(val)
      },
      open() {
        this.show = true;
      },
      // 注意返回值为一个数组,单列时取数组的第一个元素即可(只有一个元素)
      confirm(e) {
        console.log(e);
        this.form.cate = e[0].value
      },
      confirm1(e) {
        let date = e.year + '-' + e.month + '-' + e.day + " " + e.hour + ':' + e.minute + ':' + e.second
        this.form.startDate = date
      },
      confirm2(e) {
        console.log(e);
        let date = e.year + '-' + e.month + '-' + e.day + " " + e.hour + ':' + e.minute + ':' + e.second
        this.form.endDate = date
      },
      submit() {
        this.$u.api.getPartyAdd(this.form).then(res => {
          console.log(res)
        })
      },
      /* 上传图片 */
      choose() {
        uni.chooseImage({
          success: (chooseImageRes) => {
            var tempFilePaths = chooseImageRes.tempFilePaths;
            uni.uploadFile({
              url: this.$u.http.config.baseUrl + '/uploadFile/file',
              filePath: tempFilePaths[0],
              header: {
                Authorization: this.vuex_token
              },
              name: 'file',
              success: (uploadFileRes) => {
                let data_res = JSON.parse(uploadFileRes.data)
                if (data_res.code == 200) {
                  this.messimg = data_res.data;
                  this.form.coverImage = data_res.data;
                  console.log(this.messimg)
                }
              }
            });
          }
        });
      }
    }
  }
</script>
<style scoped lang="scss">
  .sub-btn {
    width: 684rpx;
    height: 96rpx;
    background: linear-gradient(91deg, #43B9FD 0%, #1FB5FE 100%);
    opacity: 1;
    border-radius: 66rpx;
    border: 0rpx;
    font-size: 36rpx;
    font-family: PingFangSC;
    font-weight: 400;
    line-height: 40rpx;
    color: #FFFFFF;
    position: fixed;
    bottom: 18rpx;
  }
  .title-sm {
    background: #F7F7F7;
    width: 100%;
    padding: 23rpx 0rpx;
  }
  .wrap {
    padding: 30rpx;
  }
  .agreement {
    display: flex;
    align-items: center;
    margin: 40rpx 0;
    .agreement-text {
      padding-left: 8rpx;
      color: $u-tips-color;
    }
  }
</style>

image.png

相关文章
|
5月前
|
前端开发
【前端统计图】hcharts实现堆叠柱形图(与后台数据交互)
【前端统计图】hcharts实现堆叠柱形图(与后台数据交互)
29 0
|
4月前
|
前端开发 JavaScript API
前端 excelex 包可将数据保存为 xls、xlsx、csv、txt 文件(支持单元格样式、合并单元格等)
前端 excelex 包可将数据保存为 xls、xlsx、csv、txt 文件(支持单元格样式、合并单元格等)
59 1
|
6月前
|
监控 前端开发 Cloud Native
解决WebSocket通信:前端拿不到最后一条数据的问题
解决WebSocket通信:前端拿不到最后一条数据的问题
128 0
|
3月前
|
前端开发 JavaScript 关系型数据库
若依框架------后台路由数据是如何转换为前端路由信息的
若依框架------后台路由数据是如何转换为前端路由信息的
102 0
|
1天前
|
存储 缓存 前端开发
前端如何利用indexDB进行数据优化
使用IndexedDB作为浏览器内置的客户端数据库,用于存储大量数据和实现离线支持。它能缓存常用数据,减少服务器请求,提高用户体验。IndexedDB支持数据索引、复杂查询及版本管理,允许离线操作并同步到服务器。但需熟悉其异步API,可借助Dexie.js、localForage等库简化使用。
|
2月前
|
前端开发 Java API
WebSocket vs SSE: 实时数据推送到前端的选择与实现(详细)
WebSocket vs SSE: 实时数据推送到前端的选择与实现(详细)
206 0
|
2月前
|
JavaScript 前端开发 开发者
深入理解前端框架Vue.js的数据响应式原理
本文将深入探讨Vue.js前端框架中的数据响应式原理,包括双向绑定、依赖追踪和虚拟DOM等核心概念。通过详细解析Vue.js内部实现机制,读者能够更好地理解其工作原理,并在实际开发中更灵活地运用。
|
3月前
|
前端开发 JavaScript
工作这么久了,还不懂如何使用纯前端实现分页吗?-假如后端一股脑返回给你所有数据,让你自个实现分页该怎么办
工作这么久了,还不懂如何使用纯前端实现分页吗?-假如后端一股脑返回给你所有数据,让你自个实现分页该怎么办
69 0
|
4月前
|
JSON 前端开发 Java
JAVA后端向前端传递Long类型数据,导致数据不一致
JAVA后端向前端传递Long类型数据,导致数据不一致
89 0
|
4月前
|
前端开发 JavaScript
前端 dlhelper 下载辅助库(支持链接后台下载、代理下载、Blob 数据下载,针对代理下载灵活使用)
前端 dlhelper 下载辅助库(支持链接后台下载、代理下载、Blob 数据下载,针对代理下载灵活使用)
33 1