若依vue相关

2021-04-15  本文已影响0人  波波大人2018

增加时间条件的判断

// 如果时间字段是Date类型,如果拿传入的时间类型参数与空字符串''进行对比判断则会引发异常. 所以在上面的代码中去掉空字符串判断, 只保留非空判断就正常了
<if test="tm != null">
   and date_format(tm,'%y%m%d') = date_format(#{tm},'%y%m%d')
</if>
// 如果时间字段是String类型,需要增加非空字符串
<if test="tm != null and tm != ''">
   and date_format(tm,'%y%m%d') = date_format(#{tm},'%y%m%d')
</if>

增加时间段的判断 xml文件中

<sql id="queryDay-condition">
    <!-- 开始时间检索 -->
    <if test="params.beginTime != null and params.beginTime != ''">
        AND date_format(addtime,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
    </if>
    <!-- 结束时间检索 -->
    <if test="params.endTime != null and params.endTime != ''">
        AND date_format(addtime,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
    </if>
</sql>

前端通用方法

单选
<el-radio-group v-model="form.used">
    <el-radio
      v-for="dict in usedOptions"
      :key="dict.dictValue"
      :label="parseInt(dict.dictValue)"
    >{{dict.dictLabel}}</el-radio>
</el-radio-group>
字典值下拉数据
<el-select v-model="queryParams.charge" placeholder="请选择状态" clearable size="small">
  <el-option
    v-for="dict in chargeOptions"
    :key="dict.dictValue"
    :label="dict.dictLabel"
    :value="dict.dictValue"
  />
</el-select>
引入全局变量。不用频繁的操作数据库
1.新建一个global.js文件。
const commonStatus = [{ dictValue: '1', dictLabel: '是' }, { dictValue: '0', dictLabel: '否' }]
export default {
  commonStatus
}
2.页面引入
import global_ from '@/utils/global'
3.引用字典值
this.onceOptions = global_.commonStatus
4.字典值翻译
onceFormat(row, column) {
    return this.selectDictLabel(this.onceOptions, row.once)
},
增加计算属性
1.table列中增加 :formatter="coinFormat"属性
<el-table-column label="金币库存" align="center" prop="kucun" :formatter="coinFormat"/>
2.增加计算方法
coinFormat(row, column) {
   // 计算逻辑
   return parseFloat(row.coinTotalInPalyer+row.dbTotalInPalyer).toLocaleString()
},

第三方登陆接口

1.后端增加放行路由 SecurityConfig
 .antMatchers("/api/**").anonymous()
2.前端增加白名单 permission.js
const whiteList = ['/login', '/auth-redirect', '/bind', '/register','/api']

新增路由,标签页显示

    1.  在需要跳转的地方增加  this.$router.push('/user/detail')
    2. router/index.js中增加  路由规则
    {
    path: '/user',
    component: Layout,
    hidden: true,
    children: [
      {
        path: 'detail',
        // 组件的地址
        component: (resolve) => require(['@/views/buyu/cfg/activities/index'], resolve),
        name: 'UserDetail',
        meta: { title: '用户详情' }
      }
    ]
    }

复制按钮

1.引入import ClipboardJS from 'clipboard'
2.按钮增加点击事件@click="execCopy()"
3.增加方法
execCopy() {
  var clipboard = new ClipboardJS('#copy')
  clipboard.on('success', e => {
    this.$notify({
      title: '成功',
      message: 'UUID复制成功',
      type: 'success'
    })
    clipboard.destroy()
  })
  clipboard.on('error', e => {
    this.$message.error('复制失败')
    clipboard.destroy()
  })
}

操作菜单隐藏列

1.data中新增初始化需要进行操作隐藏的列数据
columns: [
     { key: 0, label: `渠道`, visible: true },
     ...
 ],
2.工具栏增加:columns="columns" 参数
<right-toolbar :showSearch.sync="showSearch" :columns="columns" @queryTable="getList">
</right-toolbar>
3.列数据中增加 v-if="columns[0].visible"
<el-table-column label="渠道" align="center" prop="flavor" 
:formatter="flavorFormat" v-if="columns[0].visible"/>

增加服务器排序

1.data中新增参数
// 排序字段
orderByColumn: null,
// 排序方向
isAsc: null,
2.table中增加方法
@sort-change="changeTableSort"
3.列数据中增加参数 sortable="custom"
sortable="custom"
4.method中增加方法
// 排序
changeTableSort(column){
 this.queryParams.orderByColumn = column.prop;
 this.queryParams.isAsc = (column.order === 'ascending' ? 'asc' : 'desc');
 // 执行方法
 this.getList();
}
5.产生的请求url
http://localhost/dev-api/buyu/user/list?pageNum=1&pageSize=15&orderByColumn=coin&isAsc=asc

刷新table页面(执行某一方法后需要刷新下tab页面)

reload(){
  // 需要刷新的tab的路径
  const currentView = '/mail/cfg'
  this.$store.dispatch('tagsView/delCachedView', currentView).then(() => {
    this.$nextTick(() => {
      this.$router.replace({
        path: '/redirect' + currentView
      })
    })
  })
}

增加时间段筛选

1.查询条件中增加
<el-form-item label="时间">
        <el-date-picker
          v-model="dateRange"
          size="small"
          style="width: 240px"
          value-format="yyyy-MM-dd"
          type="daterange"
          range-separator="-"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
        ></el-date-picker>
</el-form-item>
2.data中定义
dateRange: [],
3.method中增加 this.addDateRange(this.queryParams, this.dateRange) 作为查询条件
1.执行list查询方法
list(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
    this.payDayLogList = response.rows;
    this.total = response.total;
    this.loading = false;
   }
);

时间选择禁用今天之后

1.查询条件中增加pickerDisabled
<el-date-picker clearable size="small"
    v-model="logQueryParam.end"
    :picker-options="pickerDisabled"
    type="date"
    value-format="yyyy-MM-dd"
    placeholder="选择时间">
</el-date-picker>

2.data中增加
pickerDisabled: {
  disabledDate: (time) => {
    return time.getTime() > new Date() * 1 + 600 * 1000;
  }
}
上一篇下一篇

猜你喜欢

热点阅读