前后台管理——富文本、图片上传、列表详情

一、根据用户权限角色设置限定用户访问页面
editrole.vue

onSubmit() {
     this.$message('submit!')
   let authIds = this.list.reduce((pre,item,index)=>{
       if(item.isAuth){
         pre.push(item.id)
       }
       return pre;
     },[])
   let roleIds=authIds.join(',')
   this.form.rule_ids=roleIds
   this.form.id=this.$route.query.id
   editrole(this.form)
     this.$router.push('/user/rolelist')
   }

permission.js

//has token部分
let userinfo = user.userinfo
        let rulelist = user.rulelist
        let ruleids = userinfo.rule_ids.split(',')
        let ruleArr = {}
        rulelist.forEach((item, index) => {
            ruleArr[item.name] = item.id
        });
        if (ruleArr[to.path]) {
            if (ruleids.indexOf(String(ruleArr[to.path])) != -1) {
                next()
            } else {
                Message({
                    message: '您没有权限进入',
                    type: 'error',
                    duration: 2 * 1000
                })
                next('/admin/dashboard')
            }
        } else {
            next()
        }

二、富文本编辑器
使用tinymce作为组件引入使用
三、图片上传

<el-form`在这里插入代码片`-item label="上传图片" >
    <el-upload
    name="uploadflie"
    :on-success="onsuccess"
         class="upload-demo"
         action="/api/assets/upload/upImgs"
         :file-list="fileList"
         list-type="picture"
         drag
         multiple>
         <i class="el-icon-upload"></i>
         <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
         <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div>
     </el-upload>
   </el-form-item>
   <script>
   export default {
   methods:{
    onsuccess(res){
        this.fileList.push({name:res.data.originname,filename:res.data.filename,url:base+'/static/upload/'+res.data.filename})
       this.form.imgs=JSON.stringify(this.fileList)
		 		}
		 }
 }
   </script>

asset/upload.js

const Base = require('../base.js');
let path = require('path')
let fs = require('fs')

module.exports = class extends Base {
 indexAction() {
   return this.display();
 }
 upImgsAction(){
   let uploadfile = this.file('uploadFile');
   let filepath = uploadfile.path;
   let uploadpath = think.ROOT_PATH + '/www/static/upload';
   think.mkdir(uploadpath);

   let basename = path.basename(filepath);
   var readStream=fs.createReadStream(filepath);
   var writeStream=fs.createWriteStream(uploadpath + '/' + basename);
   readStream.pipe(writeStream);
   this.success({filename:basename,originName:uploadfile.name});
 }
};

四、sku列表详情

<el-form-item label="sku设置" >
       <el-table
     :data="skulist"
     stripe
     style="width: 100%">
     <el-table-column
       label="名称"
       width="180">
       <template slot-scope="scope">
               {{ scope.row.name}}
             </template>
     </el-table-column>

     <el-table-column
       label="类别"
       width="180">
       <template slot-scope="scope">
               {{ scope.row.type }}
             </template>
     </el-table-column>
     <el-table-column
       label="价格">
       <template slot-scope="scope">
               {{ scope.row.sku_price }}
             </template>
     </el-table-column>
     <el-table-column
       label="数量">
       <template slot-scope="scope">
               {{ scope.row.sku_stock }}
             </template>
     </el-table-column>
     <el-table-column
       label="编码">
       <template slot-scope="scope">
               {{ scope.row.sku_code }}
       </template>
     </el-table-column>
     <el-table-column
       label="删除">
        <template slot-scope="scope">
       <el-button type="danger"  class="delbut" @click="delsku(scope.row)" icon="el-icon-delete" circle></el-button>
        </template>
     </el-table-column>
   </el-table> 
   <el-form-item label="sku名称" >
       <el-input v-model="sku.name"/>
   </el-form-item>
   <el-form-item label="sku类型" >
       <el-input v-model="sku.type"/>
   </el-form-item>
   <el-form-item label="sku价格" >
       <el-input v-model="sku.sku_price"/>
   </el-form-item>
   <el-form-item label="sku数量" >
       <el-input v-model="sku.sku_stock"/>
   </el-form-item>  
   <el-form-item label="sku编码" >
       <el-input v-model="sku.sku_code"/>
   </el-form-item>
   <el-button type="primary" @click="addsku">添加sku</el-button>
     </el-form-item>
 //addsku方法
 methods:{
 addsku(){
         if(this.skuObj[this.sku.type]){
           this.skuObj[this.sku.type].push(this.sku)
         }else{
           this.$set(this.skuObj,this.sku.type,[])
           this.skuObj[this.sku.type].push({...this.sku})
         }
         this.form.sku=JSON.stringify(this.skuObj)
     }
}
computed:{
     skulist:function(){
           let list=[]
           for(let key in this.skuObj){
               for(let item of this.skuObj[key]){
                   list.push(item)
               }
           }
       return list
     }
 }

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值