vue-cookie 设置过期时间之关闭浏览器清除 cookie 2557

vue-cookie 设置过期时间及关闭浏览器清除 cookie

后台基本开发规范 2632

后台基本开发规范

vue 使用 uuid 报错:uuid has no default export 3161

vue 在使用 uuid 的时候报这个错误如何解决:uuid has no default export

vue 包含别名的图片地址如何动态加载 2909

vue 包含别名的图片地址如何动态加载。如:imgurl = "@img/1.png"

vue 获取非200状态码返回的 response 数据 1681

如何获取非200状态码返回的 response 数据

jenkins 搭建 vue 自动发布平台 1705

如何用 jenkins 搭建一个 vue 项目的自动发布平台

腾讯云 cdn 的使用及添加 cname 报错:解析记录已存在 3000

首次开通腾讯云送了120G的 cdn 流量,虽然本博客没多少人看,但是本着不浪费的精神,还是去配置了下 cdn

华为云对象存储 obs 文件流上传 4110

laravel 支持华为云对象存储 obs 文件流上传

华为云对象存储 obs 基于表单上传文件 4982

记录华为云对象存储 obs 基于表单上传文件

php 华为云对象存储安装( obs 安装) 5446

在 laravel 下安装 obs 依赖包,安装华为云对象存储依赖包

小提示

如有侵权请邮件通知

ftfoolish - 求知若饥,虚心若愚
vue-cookie 设置过期时间之关闭浏览器清除 cookie 2618

vue-cookie 设置过期时间及关闭浏览器清除 cookie

后台基本开发规范 2688

后台基本开发规范

vue 使用 uuid 报错:uuid has no default export 3225

vue 在使用 uuid 的时候报这个错误如何解决:uuid has no default export

vue 包含别名的图片地址如何动态加载 2970

vue 包含别名的图片地址如何动态加载。如:imgurl = "@img/1.png"

vue 获取非200状态码返回的 response 数据 1713

如何获取非200状态码返回的 response 数据

jenkins 搭建 vue 自动发布平台 1723

如何用 jenkins 搭建一个 vue 项目的自动发布平台

腾讯云 cdn 的使用及添加 cname 报错:解析记录已存在 3022

首次开通腾讯云送了120G的 cdn 流量,虽然本博客没多少人看,但是本着不浪费的精神,还是去配置了下 cdn

华为云对象存储 obs 文件流上传 4130

laravel 支持华为云对象存储 obs 文件流上传

华为云对象存储 obs 基于表单上传文件 5009

记录华为云对象存储 obs 基于表单上传文件

php 华为云对象存储安装( obs 安装) 5466

在 laravel 下安装 obs 依赖包,安装华为云对象存储依赖包

小提示

如有侵权请邮件通知

后台基本开发规范 - ftfoolish

后台基本开发规范

后台开发规范


查询条件

  1. 统一使用如下组件封装查询条件,一般的查询完全够用,如若不够,可自行扩展搜索
    // 普通搜索
    ./components/SearchForm/ordinary.vue
    // 高级搜索
    ./components/SearchForm/senior.vue

    组件使用方式如下

    
    // 1.引入组件
    import OrdinarySearchForm from '@/components/SearchForm/ordinary.vue';
    import SeniorSearchForm from '@/components/SearchForm/senior.vue';
    // 2.封装参数
    private searchOrdinaryOption = [
     {
       label: this.$t('adminApp.productRules.name'),
       prop: 'name',
       element: 'input',
       option: {
         maxlength: 19
       }
     },
     {
       label: this.$t('adminApp.productRules.status'),
       prop: 'status',
       element: 'select',
       selectOption: this.statusList  // 下拉数据,如果是异步数据需重新赋值
     },
    ];

private searchSeniorOption = [ { label: this.$t('adminApp.productRules.name'), prop: 'name', element: 'input', option: { maxlength: 50 }, isSort: false, type: 'string' }, { label: this.$t('adminApp.productRules.status'), prop: 'status', element: 'select', option: {}, selectOption: this.statusList }, ]; // 3.使用组件

```

列表字段的摆放

  1. 如果列表字段较多,每个字段必须加上宽度大小并使用横向滚动条,不能都挤在一起;图例
  2. 如果列表字段少于10个(可根据名称长度自行判断),可不加宽度,自适应宽度;图例
  3. 如果字段长度固定,可居中对齐,反之靠左对齐;
  4. 如果列表字段较多,操作一栏需固定右侧,不允许拖动滚动条才能看到操作;
  5. 操作一栏最多放2个按钮,其余操作放在更多操作里面;
  6. 列表数据较多时,可设置列表高度,严格上不允许出现浏览器滚动条;图例
    <vxe-table
     height="550"
    >

表单规则

  1. 简单表单使用弹窗,弹窗宽度设置为 768,内容可一行摆放 2 个字段,也可以一行摆放 1 个字段,可根据实际需求自行决定;
  2. 表单 UI 组件统一使用 ELEMENT UI 组件库;
  3. 表单验证统一使用 ELEMENT 的表单验证,不允许弹窗提示验证结果;
    // 验证规则
    private rules = {
     name: [
       {
         required: true,
         message: this.$t("global.valid.input", {
           param: this.$t("adminApp.price.price")
         }),
         trigger: ["blur", "change"]
       }
     ]
    }
    // 表单验证
    (this.$refs.validateForm as Form).validate(async valid => {
     if (valid) {
         // 验证通过
     } else {
         // 验证不通过
     }
    })
  4. 输入框如果只允许输入数字或金额,可使用自定义指令 v-enter-number、v-enter-money 进行输入拦截;
    // 只允许输入数字
    <el-input
     type="text"
     v-enter-number
     placeholder="请输入数字"
     v-model="number"
    >
    </el-input>
    // 只允许输入金额
    <el-input
     type="text"
     v-enter-money
     placeholder="请输入金额"
     v-model="money"
    >
    </el-input>
  5. 新增、编辑、查看使用同一个文件,其中查看时,表单中的组件可加入disabled属性禁止编辑保存;
  6. 复杂的表单需增加路由打开新页面进行增加、编辑、查看;图例

权限控制规则

  1. 后台权限控制是通过自定义指令 v-permission 来控制元素的显隐的,主要控制元素的 display 属性;
    <vxe-button
     v-permission="['permission_code']"
    </vxe-button>
  2. 后台角色的控制可通过自定义指令 v-siteCode 来控制元素的显隐;
    此角色在内采分为:平台方(qqtManager)、供应商(qqtSupplierManager)、采购方(qqtPurchaseManager)
    此角色在 B2B2B 分为:平台方(qqtManager)、B2B供应商(qqtSupplierManager)、B2B2B平台方(B2B2BPlatformManager)、B2B2B供应商(B2B2BSupplierManager)
    此角色在聚源池只有:平台方(qqtManager)
    // 内采和聚源池好像只支持了字符串
    <div v-siteCode="'qqtManager'"></div>
    // B2B 可支持数组和字符串
    <div v-siteCode="['qqtManager', 'qqtSupplierManager']"></div>

弹窗规则

  1. 成功、警告、错误提示以及二次确认使用 @/utils/index 中的以下方法
    // 引入
    import * as Util from "@/utils/index";
    // 成功
    Util.notifySuccess('成功');
    // 警告
    Util.notifyWarning('警告');
    // 错误
    Util.notifyError('错误');
    // 二次确认,有4个参数,其中 options 和 cancelCallBack 为非必传项
    Util.confirm.call(this, '确认删除吗?', async () => {
     del(id).then(res => {
         // 请求成功
     });
     }, 
     {
         confirmButtonText: '确认',
         cancelButtonText: '取消',
         customClass: 'confirm-dialog modal-md',
     }, 
     () => {
         console.log('取消按钮');
     });
  2. 删除、审核、拒绝、作废、确认、上架、下架等相关操作必须使用二次确认弹窗,其他未提及的操作可自行判断是否使用二次确认弹窗

小提示

如有侵权请邮件通知