浏览代码

权限分配

rkljw 10 月之前
父节点
当前提交
3f14d0cb7e

+ 1 - 1
src/App.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="cxt">
-    <page-header v-if="action">111</page-header>
+    <page-header v-if="action && !custom"></page-header>
     <router-view :key="$route.fullPath"/>
   </div>
 

+ 4 - 0
src/api/authority.js

@@ -16,6 +16,10 @@ export default {
      updateMenu (parames){
         return request.post("/authority/updateMenu",parames)
     },
+    //递归查询出菜单列表
+    getRecursionMenu (parames){
+        return request.get("/authority/getRecursionMenu",parames)
+    },
 
 
 }

+ 2 - 0
src/api/index.js

@@ -5,10 +5,12 @@ import login from "@/api/login"
 import pub from "@/api/pub"
 import authority from "@/api/authority"
 import website from "@/api/website"
+import publicApi from "@/api/public"
 export default {
     user,
     login,
     pub,
     authority, //权限管理
     website, //站点管理
+    publicApi,
 }

+ 8 - 0
src/api/public.js

@@ -0,0 +1,8 @@
+import { request } from '@/axios/request'
+
+export default {
+  // 地区列表
+  cityList (parames) {
+    return request.get("/public/getDistrictList",parames)
+  }
+}

+ 22 - 1
src/api/user.js

@@ -3,5 +3,26 @@ export default {
 
     loginUserInfo (){
         return request.get("/user/getUserInfo")
-    }
+    },
+
+
+    /**
+     * 角色
+     */
+    roleList(parames){
+        return request.get("/user/roleList",parames)
+    },
+    addRole(parames){
+        return request.get("/user/addRole",parames)
+    },
+    delRole(parames){
+        return request.get("/user/delRole",parames)
+    },
+    updateRole(parames){
+        return request.get("/user/updateRole",parames)
+    },
+    roleInfo(parames){
+        return request.get("/user/roleInfo",parames)
+    },
+
 }

+ 4 - 2
src/api/website.js

@@ -17,6 +17,8 @@ export default {
      updateWebsite (parames){
         return request.post("/website/updateWebsite",parames)
     },
-
-
+    //获取栏目列表
+    websiteColumnList(parames) {
+        return request.get("/website/getWebsiteColumn",parames)
+    }
 }

+ 0 - 3
src/components/dialog/index.vue

@@ -45,9 +45,6 @@ export default {
       type: String,
       default: ''
     },
-    // close:{
-    //   type: Function
-    // },
     know: {
       type: Boolean,
       default: false

+ 3 - 2
src/router/index.js

@@ -24,8 +24,9 @@ const routes = [{
                 path: 'roleList',
                 name: 'roleList',
                 component: () =>
-                    import ('@views/menu/index.vue')
+                    import ('@views/role/index.vue')
             },
+           
             {
                 meta: {
                     action: "websiteList",
@@ -52,7 +53,7 @@ const routes = [{
         name: 'login',
         component: () =>
             import ('@views/login/index.vue')
-    },
+    }
 ]
 
 const router = createRouter({

+ 4 - 2
src/views/menu/index.vue

@@ -187,7 +187,6 @@
       //   this.isloading = false
       // },
       closeDlg(val){
-          console.log("aaaaaa",val)
           this.menuDialogShow = false
           this.isloading = false
       },
@@ -232,15 +231,18 @@
         this.DialogShow = true
       },
       submitSureClickDel(row,index){
+        let _t = this
         let parames = {
           'id':this.MenuId
         }
         this.$api.authority.delMenu(parames).then(res=>{
           if(res.code==200){
             this.DialogShow = false
+            _t.tableData.splice(index, 1);
+            // row.splice(index, 1);
             this.getList()
           }else{
-            this.$message.error("查询失败")
+            this.$message.error("删除失败")
           }
         })
       }

+ 90 - 0
src/views/role/components/authority.vue

@@ -0,0 +1,90 @@
+<template>
+    <div>
+      <el-form ref="form" label-width="120px">
+        <el-form-item
+          prop="role_name"
+      >
+      <el-tree
+       :data="data"
+        show-checkbox
+        node-key="id"
+        ref="tree"
+        highlight-current
+        default-expand-all="true"
+        :props="defaultProps"
+        :default-checked-keys="rule"
+        >
+        </el-tree>
+    </el-form-item>
+    <el-form-item>
+        <div style="text-align: center">
+          <el-button type="primary" @click="onSubmit" :disabled="Isdisabled" :loading="isloading">保存</el-button>
+          <el-button style="color: #5075FC " @click="closeDlg">取消</el-button>
+        </div>
+      </el-form-item>
+      </el-form>
+    </div>
+  </template>
+  <script>
+  export default {
+    props: {
+      authorityDataForm: {
+        type: Object,
+        default: () => {}
+      },
+      isloading:{
+        type:Boolean,
+        default: true
+      },
+      closeDlg:{
+        type:Function
+      }
+    },
+    data() {
+      return {
+        data: [],
+        defaultProps: {
+          children: 'children',
+          label: 'label'
+        },
+        Isdisabled: false,
+        rule:[0],
+        form:{}
+      }
+    },
+    mounted() {
+      if(this.authorityDataForm) {
+        // this.form = Object.assign({} , this.authorityDataForm)
+        // let obj = this.authorityDataForm
+        // const arr = Object.keys(obj).map(key => obj[key]);
+        // this.rule = arr
+        this.rule = this.authorityDataForm.rule
+        console.log("权限:",this.rule)
+      }
+      this.authorityList()
+    },
+    methods: {
+      closeDlg() {
+        this.$emit('closeDlg',1)
+      },
+      onSubmit() {
+
+            this.$emit('authoritySubmitClick', this.$refs.tree.getCheckedKeys())
+      },
+      authorityList(){
+        let _t= this
+      let parames = {}
+      this.$api.authority.getRecursionMenu(parames).then(res=>{
+                if(res.code==200){
+                   console.log(res.data)
+                  _t.data = res.data
+                }else{
+                    this.$message.error("查询失败")
+                }
+            })
+      }
+    }
+  }
+  </script>
+
+  

+ 15 - 73
src/views/role/components/edit.vue

@@ -2,50 +2,17 @@
   <div>
     <el-form ref="form" :rules="rules"  :model="form" label-width="120px">
       <el-form-item
-          label="菜单名称:"
-          prop="label"
+          label="角色名称:"
+          prop="role_name"
       >
-        <el-input v-model.number="form.label"  placeholder="请输入菜单名称"></el-input>
-      </el-form-item>
-      <el-form-item
-          label="父级菜单:"
-          prop="pid"
-      >
-      <el-cascader
-      v-model="form.pid"
-      :options="menulist"
-      :props="{
-                checkStrictly: true,
-                value:'id',
-                label:'label',
-                children:'children',
-              }" 
-      clearable></el-cascader>
-    </el-form-item>
-      <el-form-item label="路由地址:" prop="url">
-        <el-input v-model="form.url"  placeholder="输入路由地址" ></el-input>
-      </el-form-item>
-      <el-form-item label="图标:" prop="icon">
-        <el-input v-model="form.icon"  placeholder="输入图标地址" ></el-input>
+        <el-input v-model="form.role_name"  placeholder="请输入角色名称"></el-input>
       </el-form-item>
+     
       <el-form-item label="排序:" prop="sort">
         <el-input v-model="form.sort"  placeholder="输入排序" ></el-input>
       </el-form-item>
-      <el-form-item label="是否外链:" prop="is_links">
-        <el-switch
-            v-model="form.is_links"
-            :active-value="1"
-            :inactive-value="0"
-        >
-        </el-switch>
-      </el-form-item>
-      <el-form-item label="是否隐藏:" prop="hidden">
-        <el-switch
-            v-model="form.hidden"
-            :active-value="1"
-            :inactive-value="0"
-        >
-        </el-switch>
+      <el-form-item label="备注信息:" prop="remark">
+        <el-input v-model="form.remark"  placeholder="输入备注信息" ></el-input>
       </el-form-item>
       <el-form-item>
         <div style="text-align: center">
@@ -59,7 +26,7 @@
 <script>
 export default {
   props: {
-    menuDataForm: {
+    roleDataForm: {
       type: Object,
       default: () => {}
     },
@@ -74,22 +41,15 @@ export default {
   data() {
     return {
       form: {
-        label: '',
-        url:"",
-        icon:"",
+        role_name: '',
+        remark:"",
         sort:"",
-        is_links:"",
-        hidden:"",
-        pid:[0]
       },
-      menulist: [],
+      rolelist: [],
       Isdisabled: false,
       rules: {
-        label: [
-          { required: true, message: '菜单名称必填' },
-        ],
-        url: [
-          { required: true, message: '路由地址必填' }
+        role_name: [
+          { required: true, message: '角色名称必填' },
         ],
         sort: [
           { pattern: /^[1-9]\d*$/, message: '排序值格式错误' },
@@ -98,40 +58,22 @@ export default {
     }
   },
   mounted() {
-    if(this.menuDataForm) {
-      this.form = Object.assign({} , this.menuDataForm)
+    if(this.roleDataForm) {
+      this.form = Object.assign({} , this.roleDataForm)
     }
-    this.getRecursionMenu()
   },
   methods: {
     closeDlg() {
-      // this.isloading = false
-      console.log("edit提交")
       this.$emit('closeDlg',1)
     },
     onSubmit() {
       let that = this
       that.$refs['form'].validate((valid) => {
         if (valid) {
-          this.$emit('menuSubmitClick', this.form)
+          this.$emit('roleSubmitClick', this.form)
         }
       })
     },
-    getRecursionMenu(){
-      let _t= this
-      let parames = {}
-      this.$api.pub.getMenuList(parames).then(res=>{
-                if(res.code==200){
-                  // id: 4, pid: 1, label: "权限设置"
-                  // res.data.concat({"id":1,"label":"一级目录","children":[]});
-                  // console.log(res.data)
-                  _t.menulist = res.data
-                }else{
-                    this.$message.error("查询失败")
-                }
-            })
-    },
-    
   }
 }
 </script>

+ 132 - 68
src/views/role/index.vue

@@ -1,5 +1,23 @@
 <template>
     <div class="main-content__div">
+      <div class="table-box__div" v-cloak v-loading="loadingFlag">
+        <el-form  class="demo-form-inline">
+          <el-form-item label="角色名称">
+            <el-input
+              placeholder="角色名称"
+              v-model="keyword"
+              style="width:150px;"
+              size="small"
+              >
+            </el-input>
+          </el-form-item>
+          
+          <!-- 搜索按钮 -->
+          <el-form-item>
+            <el-button type="primary" size="small" @click="searchFrom()">搜索</el-button>
+          </el-form-item>
+        </el-form>
+      </div>
       <!-- 列表 -->
       <div class="table-box__div" v-cloak v-loading="loadingFlag">
         <!-- 查询表单 -->
@@ -16,37 +34,15 @@
           style="width: 100%;font-size: 15px;"
           :header-cell-style="{background:'#FAFAFA'}"
         >
-          <el-table-column label="编号" width="150" prop="id"></el-table-column>
-          <el-table-column label="菜单名称" prop="label" width="250"></el-table-column>
-          <el-table-column label="路由地址" prop="url" width="200"></el-table-column>
-          <el-table-column label="图标" prop="icon" width="200"></el-table-column>
-          <el-table-column label="排序" prop="sort" width="200"></el-table-column>
-          <el-table-column label="是否外链" width="200"  prop="is_links">
-            <template v-slot="{row}">
-              <el-switch
-                v-model="row.is_links"
-                :active-value="1"
-                :inactive-value="0"
-              disabled
-              ></el-switch>
-            </template>
-          </el-table-column>
-
-          <el-table-column label="是否隐藏" width="200">
-            <template v-slot="{row}">
-              
-              <el-switch
-                v-model="row.hidden"
-                :active-value="1"
-                :inactive-value="0"
-                disabled
-              ></el-switch>
-            </template>
-          </el-table-column>
-          <el-table-column   prop="" label="操作" align="center" >
+          <el-table-column label="编号" width="250" prop="id"></el-table-column>
+          <el-table-column label="角色名称" prop="role_name" width="350"></el-table-column>
+          <el-table-column label="角色备注" prop="remark" width="300"></el-table-column>
+          <el-table-column label="操作时间" prop="updated_at" width="300"></el-table-column>
+          <el-table-column label="排序" prop="sort" width="300"></el-table-column>
+          <el-table-column   prop="" label="操作" align="center">
                   <template v-slot="scope">
-                    <div style="display: flex;flex-direction: column;justify-content: center;align-items: center;">
-                      <span class="btn "  @click="nextClick(scope.row.id)">查看下级</span>
+                    <div style="display: flex;flex-direction: column;justify-content: center;align-items: center;"  v-if="scope.row.rule[0]!='0'">
+                      <span class="btn"  @click="assignPermissions(scope.row, scope.$index)">分配权限</span>
                       <span class="btn"  @click="updateClick(scope.row, scope.$index)">编辑</span>
                       <span class="btn"  @click="deleteAuthority(scope.row,scope.$index)">删除</span>
                     </div>
@@ -66,7 +62,7 @@
         </div>
       </div>
     </div>
-  <Dialog title="温馨提示" content="您确认要删除该菜单吗?"
+  <Dialog title="温馨提示" content="您确认要删除该角色吗?"
           @close="DialogShow = false"
           @submitSureClick="submitSureClickDel"
           @DialogFalse="DialogShow = false"
@@ -74,30 +70,50 @@
   </Dialog>
   <DialogSlot
       title="添加/编辑"
-      @close="menuDialogShow = false"
-      @DialogClose="menuDialogShow = false"
-      :innerVisible="menuDialogShow"
-      @colesClick="menuDialogShow  = false"
+      @close="roleDialogShow = false"
+      @DialogClose="roleDialogShow = false"
+      :innerVisible="roleDialogShow"
+      @colesClick="roleDialogShow  = false"
   >
     <editFrom
-        @colesClick="menuDialogShow = false"
-        :menuDataForm="menuDataForm"
+        @colesClick="roleDialogShow = false"
+        :roleDataForm="roleDataForm"
          :isloading="isloading"
-        @menuSubmitClick="menuSubmitClick"
+        @roleSubmitClick="roleSubmitClick"
         @closeDlg="closeDlg"
         >
     </editFrom>
   </DialogSlot>
+
+  <DialogSlot
+      title="添加权限/编辑权限"
+      @close="authorityDialogShow = false"
+      @DialogClose="authorityDialogShow = false"
+      :innerVisible="authorityDialogShow"
+      @colesClick="authorityDialogShow  = false"
+  >
+    <authorityFrom
+        @colesClick="authorityDialogShow = false"
+        :authorityDataForm="authorityDataForm"
+         :isloading="isloading"
+        @authoritySubmitClick="authoritySubmitClick"
+        @closeDlg="closeDlg"
+        >
+    </authorityFrom>
+  </DialogSlot>
   </template>
   <script>
   import Dialog from "../../components/dialog";
   import editFrom from "./components/edit";
+  import authorityFrom from "./components/authority";
   import DialogSlot from "../../components/DialogSlot";
+import router from "../../router";
   export default {
     components: {
       Dialog,
       editFrom,
-      DialogSlot
+      DialogSlot,
+      authorityFrom
     },
     data() {
       return {
@@ -119,12 +135,17 @@
         isShowSource: false, // 是否显示来源列
         id:0,
         DialogShow: false, //控制删除弹窗
-        MenuId:'',
-        MenuRowIndex:'',
-        menuDataForm: {},
-        menuTableData: [],
+        roleId:'',
+        roleRowIndex:'',
+        roleDataForm: {},
+        roleTableData: [],
         isloading:false, //提交按钮状态
-        menuDialogShow: false, // 控制保存弹窗
+        roleDialogShow: false, // 控制保存弹窗
+
+
+        authorityDialogShow:false,
+        authorityDataForm: {},
+        keyword:'',
       }
     },
     mounted() {},
@@ -136,13 +157,14 @@
         let parames = {
             'page':this.currentPage,
             'pageSize':this.pageSize,
-            'id':this.id
+            'keyword':this.keyword
         }
-        this.$api.authority.getMenuList(parames).then(res=>{
+        console.log("**************")
+        this.$api.user.roleList(parames).then(res=>{
                 _t.loadingFlag = false;
                 if(res.code==200){
                   if(res.data.rows.length==0){
-                    this.$message.error("没有下级了,休息一下吧!!!")
+                    this.$message.error("没找到该角色!!!")
                     return
                   }
                     _t.tableData = res.data.rows;
@@ -173,76 +195,110 @@
        this.getList()
       },
       addClick(){
-        this.menuDataForm = {}
-        this.menuDialogShow = true
+        this.roleDataForm = {}
+        this.roleDialogShow = true
       },
-      //更新菜单
+      //更新角色
       updateClick(row,index){
         console.log(row)
-        this.menuDataForm = row
+        this.roleDataForm = row
         this.rowIndex = index
-        this.menuDialogShow = true
+        this.roleDialogShow = true
       },
-      // menuDialogShow(){
-      //   this.isloading = false
-      // },
       closeDlg(val){
           console.log("aaaaaa",val)
-          this.menuDialogShow = false
+          this.roleDialogShow = false
           this.isloading = false
+          this.authorityDialogShow = false
       },
-      menuSubmitClick(data){
+      roleSubmitClick(data){
         let _t = this
         console.log("提交数据",data)
         let parames = data
         _t.isloading = true
         //有id更新,没有新增
         if(parames.id){
-          this.$api.authority.updateMenu(parames).then(res=>{
+          this.$api.user.updateRole(parames).then(res=>{
                 _t.loadingFlag = false;
                 if(res.code==200){
                   _t.tableData[_t.rowIndex] = parames
                      console.log("修改成功")
-                     location.reload();
+                     this.getList()
                 }else{
                     this.$message.error("修改失败")
                 }
-                this.menuDialogShow = false
+                this.roleDialogShow = false
                 this.isloading = false
             })
         }else{
-          this.$api.authority.addMenu(parames).then(res=>{
+          this.$api.user.addRole(parames).then(res=>{
                 _t.loadingFlag = false;
                 if(res.code==200){
                      console.log("创建成功")
-                     location.reload();
+                     this.getList()
                 }else{
                     this.$message.error(res.message)
                 }
-                this.menuDialogShow = false
+                this.roleDialogShow = false
                 this.isloading = false
             })
         }
        
+      },
+      //
+      authoritySubmitClick(data){
+        let _t = this
+        console.log("提交数据",data)
+        let parames = {
+          rule:data,
+          id: this.authorityDataForm.id,
+          role_name:this.authorityDataForm.role_name,
+        }
+        _t.isloading = true
+        //有id更新,没有新增
+          this.$api.user.updateRole(parames).then(res=>{
+                _t.loadingFlag = false;
+                if(res.code==200){
+                  _t.tableData[_t.rowIndex] = parames
+                  this.$message.success("分配成功")
+                     _t.authorityDialogShow = false
+                     this.getList()
+                }else{
+                    this.$message.error("分配失败")
+                }
+                this.authorityDialogShow = false
+                this.isloading = false
+            })
+        
+       
       },
       //删除菜单
       deleteAuthority(row, index) {
-        this.MenuId = row.id
-        this.MenuRowIndex = index
+        this.roleId = row.id
+        this.roleRowIndex = index
         this.DialogShow = true
       },
       submitSureClickDel(row,index){
         let parames = {
-          'id':this.MenuId
+          'id':this.roleId
         }
-        this.$api.authority.delMenu(parames).then(res=>{
+        this.$api.user.delRole(parames).then(res=>{
           if(res.code==200){
             this.DialogShow = false
             this.getList()
           }else{
-            this.$message.error("查询失败")
+            this.$message.error("删除失败")
           }
         })
+      },
+      searchFrom(){
+        this.getList()
+      },
+      assignPermissions(row,index){
+        console.log(row)
+        this.authorityDataForm = row
+        this.rowIndex = index
+        this.authorityDialogShow = true
       }
 
     },
@@ -251,5 +307,13 @@
     }
   }
   </script>
+  <style >
+  .demo-form-inline{
+      display: flex;
+  }
+  .demo-form-inline .el-form-item{
+    margin: 0 20px;
+  }
+  </style>
   
   

+ 99 - 49
src/views/website/components/edit.vue

@@ -2,51 +2,63 @@
   <div>
     <el-form ref="form" :rules="rules"  :model="form" label-width="120px">
       <el-form-item
-          label="菜单名称:"
-          prop="label"
+          label="站点名称:"
+          prop="website_name"
       >
-        <el-input v-model.number="form.label"  placeholder="请输入菜单名称"></el-input>
+        <el-input v-model.number="form.website_name"  placeholder="请输入站点名称"></el-input>
       </el-form-item>
       <el-form-item
-          label="父级菜单:"
-          prop="pid"
+          label="父级栏目:"
+          prop="website_column_id"
       >
       <el-cascader
-      v-model="form.pid"
-      :options="menulist"
+      v-model="form.website_column_id"
+      :options="websiteColumnList"
       :props="{
-                checkStrictly: true,
                 value:'id',
-                label:'label',
+                label:'column_name',
                 children:'children',
               }" 
       clearable></el-cascader>
     </el-form-item>
-      <el-form-item label="路由地址:" prop="url">
-        <el-input v-model="form.url"  placeholder="输入路由地址" ></el-input>
+    <el-form-item
+          label="选择城市:"
+          prop="city_id"
+      >
+      <el-cascader
+          :key="cascaderKey"
+          v-model="form.city_id"
+          placeholder="选择您要绑定的城市"
+          :props="cityData"
+          filterable
+          clearable
+        ></el-cascader>
+
+    </el-form-item>
+      <el-form-item label="站点logo:" prop="logo">
+        <el-input v-model="form.logo"  placeholder="请输入站点logo" ></el-input>
       </el-form-item>
-      <el-form-item label="图标:" prop="icon">
-        <el-input v-model="form.icon"  placeholder="输入图标地址" ></el-input>
+      <el-form-item label="站点地址:" prop="website_url">
+        <el-input v-model="form.website_url"  placeholder="请输入站点地址" ></el-input>
       </el-form-item>
-      <el-form-item label="排序:" prop="sort">
-        <el-input v-model="form.sort"  placeholder="输入排序" ></el-input>
+      <el-form-item label="站点标题" prop="title">
+        <el-input v-model="form.title"  placeholder="请输入站点标题" ></el-input>
       </el-form-item>
-      <el-form-item label="是否外链:" prop="is_links">
-        <el-switch
-            v-model="form.is_links"
-            :active-value="1"
-            :inactive-value="0"
-        >
-        </el-switch>
+      <el-form-item label="站点关键字" prop="keywords">
+        <el-input v-model="form.keywords"  placeholder="请输入站点关键字" ></el-input>
+      </el-form-item>
+      <el-form-item label="站点描述" prop="description">
+        <el-input v-model="form.description"  placeholder="请输入站点描述" ></el-input>
       </el-form-item>
-      <el-form-item label="是否隐藏:" prop="hidden">
+      <el-form-item label="站点状态:" prop="status">
         <el-switch
-            v-model="form.hidden"
+            v-model="form.status"
             :active-value="1"
             :inactive-value="0"
         >
         </el-switch>
       </el-form-item>
+    
       <el-form-item>
         <div style="text-align: center">
           <el-button type="primary" @click="onSubmit" :disabled="Isdisabled" :loading="isloading">保存</el-button>
@@ -59,7 +71,7 @@
 <script>
 export default {
   props: {
-    menuDataForm: {
+    websiteDataForm: {
       type: Object,
       default: () => {}
     },
@@ -72,36 +84,74 @@ export default {
     }
   },
   data() {
+    let self = this
     return {
+      areaSupplier:[],
+      websiteColumnList:[],
+      cascaderKey:0,
+      cityData: {
+        checkStrictly: true,
+        lazy: true,
+        async lazyLoad (node, resolve) {
+          const { level, data } = node;  // 取出当前层级和选择数据
+          if (data && data.children && data.children.length !== 0) { // 提前加载数据切换后再点击回数据重复
+            return resolve(node)
+          }
+          console.log(level)
+          let parentId = level == 0 ? 0 : data.value
+          let parames = {
+            'pid':parentId
+          }
+          let res = await self.$api.publicApi.cityList(parames)
+          if (res.data) {
+            const nodes = res.data.map(item => ({
+              value: item.id,
+              label: item.name,
+              leaf: level >= 3,
+              children: []
+            }))
+            resolve(nodes)
+          }
+        }
+      },
       form: {
-        label: '',
-        url:"",
-        icon:"",
-        sort:"",
-        is_links:"",
-        hidden:"",
-        pid:[0]
+        id:'',
+        website_name: '',
+        website_column_id:[0],
+        logo:"",
+        website_url:"",
+        city_id:[0],
+        title:"",
+        description:"",
+        status:"",
+        title:'',
+        keywords:'',
+        description:''
       },
       menulist: [],
       Isdisabled: false,
       rules: {
-        label: [
-          { required: true, message: '菜单名称必填' },
-        ],
-        url: [
-          { required: true, message: '路由地址必填' }
+        website_name: [
+          { required: true, message: '站点名称必填' },
         ],
-        sort: [
-          { pattern: /^[1-9]\d*$/, message: '排序值格式错误' },
+        website_column_id: [
+          { required: true, message: '请选择栏目' }
+        ]
+        ,
+        website_url: [
+          { required: true, message: '网站地址必填' }
         ]
       }
     }
   },
   mounted() {
-    if(this.menuDataForm) {
-      this.form = Object.assign({} , this.menuDataForm)
+    if(this.websiteDataForm) {
+      this.form = Object.assign({} , this.websiteDataForm)
+      this.form.city_id =  this.websiteDataForm.city_arr_id
+      console.log("城市信息:",this.form.city_id)
     }
-    this.getRecursionMenu()
+
+    this.getWebsiteColumnList()
   },
   methods: {
     closeDlg() {
@@ -113,24 +163,24 @@ export default {
       let that = this
       that.$refs['form'].validate((valid) => {
         if (valid) {
-          this.$emit('menuSubmitClick', this.form)
+          this.$emit('websiteSubmitClick', this.form)
         }
       })
     },
-    getRecursionMenu(){
+    getWebsiteColumnList(){
+      console.log("fuck you =======")
       let _t= this
       let parames = {}
-      this.$api.pub.getMenuList(parames).then(res=>{
+     this.$api.website.websiteColumnList(parames).then(res=>{
                 if(res.code==200){
-                  // id: 4, pid: 1, label: "权限设置"
-                  // res.data.concat({"id":1,"label":"一级目录","children":[]});
-                  // console.log(res.data)
-                  _t.menulist = res.data
+                   console.log(res.data)
+                  _t.websiteColumnList = res.data
                 }else{
                     this.$message.error("查询失败")
                 }
             })
     },
+
     
   }
 }

+ 41 - 40
src/views/website/index.vue

@@ -5,16 +5,16 @@
         <el-form-item label="站点名称">
           <el-input
             placeholder="站点名称"
-            v-model="searchFrom.website_name"
+            v-model="keyWord"
             style="width:150px;"
             size="small"
-            clearable>
+            >
           </el-input>
         </el-form-item>
         
         <!-- 搜索按钮 -->
         <el-form-item>
-          <el-button type="primary" size="small" >搜索</el-button>
+          <el-button type="primary" size="small" @click="searchFrom()">搜索</el-button>
         </el-form-item>
        
       </el-form>
@@ -40,7 +40,7 @@
           <el-table-column label="站点栏目" prop="column_name" width="200"></el-table-column>
           <el-table-column label="站点logo" prop="logo" width="200"></el-table-column>
           <el-table-column label="站点地址" prop="website_url" width="200"></el-table-column>
-          <el-table-column label="站点城市" prop="city_name" width="200"></el-table-column>
+          <el-table-column label="站点城市" prop="name" width="200"></el-table-column>
           <el-table-column label="站点状态" width="200"  prop="is_links">
             <template v-slot="{row}">
               <el-switch
@@ -74,7 +74,7 @@
         </div>
       </div>
     </div>
-  <Dialog title="温馨提示" content="您确认要删除该菜单吗?"
+  <Dialog title="温馨提示" content="您确认要删除该站点吗?"
           @close="DialogShow = false"
           @submitSureClick="submitSureClickDel"
           @DialogFalse="DialogShow = false"
@@ -82,16 +82,16 @@
   </Dialog>
   <DialogSlot
       title="添加/编辑"
-      @close="menuDialogShow = false"
-      @DialogClose="menuDialogShow = false"
-      :innerVisible="menuDialogShow"
-      @colesClick="menuDialogShow  = false"
+      @close="websiteDialogShow = false"
+      @DialogClose="websiteDialogShow = false"
+      :innerVisible="websiteDialogShow"
+      @colesClick="websiteDialogShow  = false"
   >
     <editFrom
-        @colesClick="menuDialogShow = false"
-        :menuDataForm="menuDataForm"
+        @colesClick="websiteDialogShow = false"
+        :websiteDataForm="websiteDataForm"
          :isloading="isloading"
-        @menuSubmitClick="menuSubmitClick"
+        @websiteSubmitClick="websiteSubmitClick"
         @closeDlg="closeDlg"
         >
     </editFrom>
@@ -110,7 +110,7 @@
     data() {
       return {
         value:"1",
-        //  站点数据
+        //  站点数据
         tableData: [],
         //  加载中数据提示
         tableDataLoadingText:"拼命加载中······",
@@ -127,15 +127,12 @@
         isShowSource: false, // 是否显示来源列
         id:0,
         DialogShow: false, //控制删除弹窗
-        MenuId:'',
-        MenuRowIndex:'',
-        menuDataForm: {},
-        menuTableData: [],
+        WebsiteId:'',
+        websiteRowIndex:'',
+        websiteDataForm: {},
+        websiteTableData: [],
         isloading:false, //提交按钮状态
-        menuDialogShow: false, // 控制保存弹窗
-        searchFrom:{
-          "website_name":''
-        }
+        websiteDialogShow: false, // 控制保存弹窗
       }
     },
     mounted() {},
@@ -178,53 +175,54 @@
       },
 
       addClick(){
-        this.menuDataForm = {}
-        this.menuDialogShow = true
+        this.websiteDataForm = {}
+        this.websiteDialogShow = true
       },
       //更新菜单
       updateClick(row,index){
         console.log(row)
-        this.menuDataForm = row
+        this.websiteDataForm = row
         this.rowIndex = index
-        this.menuDialogShow = true
+        this.websiteDialogShow = true
       },
-      // menuDialogShow(){
+      // websiteDialogShow(){
       //   this.isloading = false
       // },
       closeDlg(val){
-          console.log("aaaaaa",val)
-          this.menuDialogShow = false
+      
+          this.websiteDialogShow = false
           this.isloading = false
       },
-      menuSubmitClick(data){
+      websiteSubmitClick(data){
         let _t = this
         console.log("提交数据",data)
         let parames = data
         _t.isloading = true
         //有id更新,没有新增
         if(parames.id){
-          this.$api.authority.updateMenu(parames).then(res=>{
+          this.$api.website.updateWebsite(parames).then(res=>{
                 _t.loadingFlag = false;
                 if(res.code==200){
                   _t.tableData[_t.rowIndex] = parames
                      console.log("修改成功")
-                     location.reload();
+                    //  location.reload();
+                    this.getList();
                 }else{
                     this.$message.error("修改失败")
                 }
-                this.menuDialogShow = false
+                this.websiteDialogShow = false
                 this.isloading = false
             })
         }else{
-          this.$api.authority.addMenu(parames).then(res=>{
+          this.$api.website.addWebsite(parames).then(res=>{
                 _t.loadingFlag = false;
                 if(res.code==200){
                      console.log("创建成功")
-                     location.reload();
+                     this.getList();
                 }else{
                     this.$message.error(res.message)
                 }
-                this.menuDialogShow = false
+                this.websiteDialogShow = false
                 this.isloading = false
             })
         }
@@ -232,22 +230,25 @@
       },
       //删除菜单
       deleteAuthority(row, index) {
-        this.MenuId = row.id
-        this.MenuRowIndex = index
+        this.WebsiteId = row.id
+        this.websiteRowIndex = index
         this.DialogShow = true
       },
       submitSureClickDel(row,index){
         let parames = {
-          'id':this.MenuId
+          'id':this.WebsiteId
         }
-        this.$api.authority.delMenu(parames).then(res=>{
+        this.$api.website.delWebsite(parames).then(res=>{
           if(res.code==200){
             this.DialogShow = false
             this.getList()
           }else{
-            this.$message.error("查询失败")
+            this.$message.error("删除失败")
           }
         })
+      },
+      searchFrom(){
+        this.getList()
       }
 
     },