Browse Source

处理权限问题

yangg 10 months ago
parent
commit
cf2a3d1176

+ 1 - 1
src/api/AdminRole.js

@@ -31,7 +31,7 @@ export function updateAdminRole(data) {
 
 
 export function getAdminRoleInfo(data) {
 export function getAdminRoleInfo(data) {
   return request({
   return request({
-    url: '/admin/role/info',
+    url: '/admin/auth/selectInfo',
     method: 'post',
     method: 'post',
     data
     data
   })
   })

+ 3 - 3
src/views/dataCenter/search.vue

@@ -39,10 +39,10 @@ export default{
     	/* if(this.roleInfo.is_admin==1){
     	/* if(this.roleInfo.is_admin==1){
     	  return true;
     	  return true;
     	} */
     	} */
-    	/* let auth=this.authList.filter(o=>o.type==999 && o.path==path);
+    	let auth=this.authList.filter(o=>o.parent_id==999 && o.path==path);
     	if(auth.length>0){
     	if(auth.length>0){
-    	  return true;
-    	} */
+    	  return false;
+    	}
     	return true;
     	return true;
     },
     },
 
 

+ 0 - 1
src/views/document/com/components/TextArea/index.vue

@@ -389,7 +389,6 @@ export default {
       };
       };
       let res = await findData(par);
       let res = await findData(par);
       if (res.status == 200) {
       if (res.status == 200) {
-        console.log("res:", res.data);
         return res.data.result;
         return res.data.result;
       }
       }
       return 0;
       return 0;

+ 188 - 163
src/views/document/components/dataList.vue

@@ -1,188 +1,213 @@
 <template>
 <template>
   <div class="data-list">
   <div class="data-list">
-
-
-      <el-table :data="dataList" style="width: 100%" header-row-class-name="headerBg" empty-text="没有文档信息">
-        <el-table-column prop="id" label="ID" align="center" width="80"/>
-        <el-table-column prop="title" label="文档名称" align="left" min-width="180"/>
-        <el-table-column prop="category.name" label="所属分类" align="center" width="150"/>
-        <el-table-column prop="createTime" label="创建时间" align="center" width="150"/>
-        <el-table-column prop="status" label="文档状态" align="center" width="150">
-          <template #default="scope">
-              <div v-if="scope.row.status==5">启用</div>
-              <div v-if="scope.row.status==6">停用</div>
-          </template>
-        </el-table-column>
-        <el-table-column label="操作" align="center" :width="editWidth()">
-          <template #default="scope">
-            <div class="btns">
-              <el-button type="primary" size="small" v-if="allowEdit" @click="btnEdit(scope.row.id)"><svg-icon icon-class="edit"/>编辑</el-button>
-
-              <el-button type="danger" size="small" v-if="allowDelete" @click="btnDelete(scope.row.id)"><svg-icon icon-class="delete"/>删除</el-button>
-            </div>
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <div class="page-info">
-      	<el-pagination
-      	:currentPage="queryForm.page"
-      	:page-size="queryForm.pageSize"
-      	:total="recordCount"
-      	:page-count="pageTotal"
-      	 background
-      	 layout="prev, pager, next"
-      	 @current-change="ChangePage"
-      	 >
-      	 </el-pagination>
-      </div>
-
-
+    <el-table
+      :data="dataList"
+      style="width: 100%"
+      header-row-class-name="headerBg"
+      empty-text="没有文档信息"
+    >
+      <el-table-column prop="id" label="ID" align="center" width="80" />
+      <el-table-column
+        prop="title"
+        label="文档名称"
+        align="left"
+        min-width="180"
+      />
+      <el-table-column
+        prop="category.name"
+        label="所属分类"
+        align="center"
+        width="150"
+      />
+      <el-table-column
+        prop="createTime"
+        label="创建时间"
+        align="center"
+        width="150"
+      />
+      <el-table-column
+        prop="status"
+        label="文档状态"
+        align="center"
+        width="150"
+      >
+        <template #default="scope">
+          <div v-if="scope.row.status == 5">启用</div>
+          <div v-if="scope.row.status == 6">停用</div>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" :width="editWidth()">
+        <template #default="scope">
+          <div class="btns">
+            <el-button
+              type="primary"
+              size="small"
+              v-if="allowEdit"
+              @click="btnEdit(scope.row.id)"
+              ><svg-icon icon-class="edit" />编辑</el-button
+            >
+
+            <el-button
+              type="danger"
+              size="small"
+              v-if="allowDelete"
+              @click="btnDelete(scope.row.id)"
+              ><svg-icon icon-class="delete" />删除</el-button
+            >
+          </div>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <div class="page-info">
+      <el-pagination
+        :currentPage="queryForm.page"
+        :page-size="queryForm.pageSize"
+        :total="recordCount"
+        :page-count="pageTotal"
+        background
+        layout="prev, pager, next"
+        @current-change="ChangePage"
+      >
+      </el-pagination>
+    </div>
   </div>
   </div>
-
-
 </template>
 </template>
 
 
 <script>
 <script>
-  import{searchDocument,deleteDocument} from'@/api/document';
-  export default{
-
-    props:{
-      queryForm:{
-        type:Object,
-        default:()=>{
-          return {
-           page:1,
-           pageSize:10,
-           title:'',
-           category_id:'',
-           status:'',
-          }
-        }
-      },
-      allowEdit:{
-        type:Boolean,
-        default:false,
+import { searchDocument, deleteDocument } from "@/api/document";
+export default {
+  props: {
+    queryForm: {
+      type: Object,
+      default: () => {
+        return {
+          page: 1,
+          pageSize: 10,
+          title: "",
+          category_id: "",
+          status: "",
+        };
       },
       },
-      allowDelete:{
-        type:Boolean,
-        default:false,
-      }
-    },
-    watch:{
-
-        'queryForm': {
-          handler: function(val) {
-
-            this.search();
-          },
-          // immediate: true,//立即执行
-          deep: true
-
-        },
     },
     },
-    data(){
-      return{
-        dialogVisible:false,//控制产品审核
-        currentDataId:0,
-        recordCount:0,
-        pageTotal:1,
-        dataList:[],
-        currentData:{},
-      }
+    allowEdit: {
+      type: Boolean,
+      default: false,
     },
     },
-    mounted() {
-      this.search();
+    allowDelete: {
+      type: Boolean,
+      default: false,
     },
     },
-    methods:{
-
-      editWidth(){
-        if(this.allowDelete && this.allowEdit){
-          return 200;
-        }
-        if(this.allowDelete||this.allowEdit){
-          return 120;
-        }
-        return 100;
-      },
-
-
-      onFocusVal(e){
-        let _this=this;
-        _this.currentDataId=e.target.dataset.id;
+  },
+  watch: {
+    queryForm: {
+      handler: function (val) {
+        this.search();
       },
       },
+      // immediate: true,//立即执行
+      deep: true,
+    },
+  },
+  data() {
+    return {
+      dialogVisible: false, //控制产品审核
+      currentDataId: 0,
+      recordCount: 0,
+      pageTotal: 1,
+      dataList: [],
+      currentData: {},
+    };
+  },
+  mounted() {
+    this.search();
+  },
+  methods: {
+    editWidth() {
+      if (this.allowDelete && this.allowEdit) {
+        return 200;
+      }
+      if (this.allowDelete || this.allowEdit) {
+        return 120;
+      }
+      return 100;
+    },
 
 
-      onChangeVal(e){
-        let _this=this;
-        let par={
-          id:_this.currentDataId,
-          val:e,
-        };
+    onFocusVal(e) {
+      let _this = this;
+      _this.currentDataId = e.target.dataset.id;
+    },
 
 
-      },
+    onChangeVal(e) {
+      let _this = this;
+      let par = {
+        id: _this.currentDataId,
+        val: e,
+      };
+    },
 
 
-      btnDelete(e){
-        let _this=this;
-        let par={
-          id:e,
-        }
-        _this.$confirm("您是否确认删除该记录?","提示",{
-          confirmButtonText: '确认',
-          cancelButtonText: '取消',
-          type: 'warning',
-        }).then((res)=>{
+    btnDelete(e) {
+      let _this = this;
+      let par = {
+        id: e,
+      };
+      _this
+        .$confirm("您是否确认删除该记录?", "提示", {
+          confirmButtonText: "确认",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+        .then((res) => {
           // console.log("AAA")
           // console.log("AAA")
-             deleteDocument(par).then(res=>{
-               _this.search();
-             })
-        }).catch(()=>{
+          deleteDocument(par).then((res) => {
+            _this.search();
+          });
         })
         })
-      },
-
-      searchData(){
-        let _this=this;
-        _this.dialogVisible=false;
-        _this.search();
-      },
+        .catch(() => {});
+    },
 
 
+    searchData() {
+      let _this = this;
+      _this.dialogVisible = false;
+      _this.search();
+    },
 
 
-      //编辑
-      btnEdit(e){
-        let _this=this;
-        let a=document.createElement("a");
-        a.href="/document/create?articleId="+e;
-        a.target="_blank";
-        a.click();
+    //编辑
+    btnEdit(e) {
+      let _this = this;
+      let a = document.createElement("a");
+      a.href = "#/document/create?articleId=" + e; // 使用 hash
+      a.target = "_blank";
+      a.click();
 
 
-        // _this.$router.push({path:"/document/create",query:{articleId:e}})
-      },
+      // _this.$router.push({path:"/document/create",query:{articleId:e}})
+    },
 
 
-      handleClose(){
-        let _this=this;
-        _this.currentData={};
-        _this.dialogVisible=false;
-      },
+    handleClose() {
+      let _this = this;
+      _this.currentData = {};
+      _this.dialogVisible = false;
+    },
 
 
-      //搜索
-      search(){
-        let _this=this;
-        searchDocument(_this.queryForm).then(res=>{
-          if(!res)return;
-          _this.dataList=res.data.dataList;
-          _this.recordCount=res.data.totalRecord;
-          _this.pageTotal=res.data.pageTotal;
-        })
-      },
-      //修改分页
-      ChangePage(e){
-      	let _this=this;
-      	_this.queryForm.page=e;
-      	_this.search();
-      },
-    }
-  }
+    //搜索
+    search() {
+      let _this = this;
+      searchDocument(_this.queryForm).then((res) => {
+        if (!res) return;
+        _this.dataList = res.data.dataList;
+        _this.recordCount = res.data.totalRecord;
+        _this.pageTotal = res.data.pageTotal;
+      });
+    },
+    //修改分页
+    ChangePage(e) {
+      let _this = this;
+      _this.queryForm.page = e;
+      _this.search();
+    },
+  },
+};
 </script>
 </script>
 
 
 <style lang="scss">
 <style lang="scss">
-@import './dataList.scss';
+@import "./dataList.scss";
 </style>
 </style>

+ 4 - 5
src/views/document/create.vue

@@ -4,7 +4,7 @@
       <div class="left">
       <div class="left">
         <div class="doc">
         <div class="doc">
           <span>当前打开文档:</span
           <span>当前打开文档:</span
-          >{{ docAttr.title == "" ? "新建模块" : docAttr.title }}
+          >{{ docAttr.title == "" ? "新建文档" : docAttr.title }}
         </div>
         </div>
         <div class="creator" v-if="userInfo != null">
         <div class="creator" v-if="userInfo != null">
           <span>创建者:</span>{{ userInfo.username }}
           <span>创建者:</span>{{ userInfo.username }}
@@ -386,7 +386,6 @@ export default {
     async handleItemClick(item) {
     async handleItemClick(item) {
       if (item == "-1") return;
       if (item == "-1") return;
       await searchTemplateCategory({ parent_id: item }).then((res) => {
       await searchTemplateCategory({ parent_id: item }).then((res) => {
-        console.log(res.data.length == 0);
         if (res.status != 200 && res.data.length == 0) return;
         if (res.status != 200 && res.data.length == 0) return;
         this.childrenList = res.data;
         this.childrenList = res.data;
         for (var i = 0; i < this.childrenList.length; i++) {
         for (var i = 0; i < this.childrenList.length; i++) {
@@ -421,7 +420,7 @@ export default {
       for (const item of this.coms) {
       for (const item of this.coms) {
         for (const el of item.attrs) {
         for (const el of item.attrs) {
           if (el.type === "ai") {
           if (el.type === "ai") {
-            await this.retrieval(el);
+           // await this.retrieval(el);
           }
           }
         }
         }
       }
       }
@@ -609,9 +608,9 @@ export default {
 
 
       if (_this.docAttr.id > 0) {
       if (_this.docAttr.id > 0) {
         updateDocument(_this.docAttr).then((res) => {
         updateDocument(_this.docAttr).then((res) => {
-          if (res.status != 200) return; //保存文档
+          if (res.status != 200) return; //更新文档
           _this.docAttr.id = res.data;
           _this.docAttr.id = res.data;
-          _this.$alert("文档保存成功");
+          _this.$alert("文档更新成功");
           _this.searchArticle();
           _this.searchArticle();
         });
         });
       } else {
       } else {

+ 519 - 460
src/views/role/components/dataInfo.vue

@@ -2,514 +2,573 @@
   <div class="data-info">
   <div class="data-info">
     <el-card>
     <el-card>
       <el-form :model="dataForm" label-width="140px">
       <el-form :model="dataForm" label-width="140px">
-
         <el-form-item label="角色名称:">
         <el-form-item label="角色名称:">
           <el-input v-model="dataForm.name"></el-input>
           <el-input v-model="dataForm.name"></el-input>
         </el-form-item>
         </el-form-item>
         <el-form-item label="是否为管理员:">
         <el-form-item label="是否为管理员:">
-          <el-select v-model="dataForm.is_admin"  placeholder="请选择是否为管理员" size="large"  style="width:100%;">
-              <el-option
-                v-for="item in adminOptions"
-                :key="item.status"
-                :label="item.name"
-                :value="item.status"
-              />
-            </el-select>
+          <el-select
+            v-model="dataForm.is_admin"
+            placeholder="请选择是否为管理员"
+            size="large"
+            style="width: 100%"
+          >
+            <el-option
+              v-for="item in adminOptions"
+              :key="item.status"
+              :label="item.name"
+              :value="item.status"
+            />
+          </el-select>
         </el-form-item>
         </el-form-item>
         <el-form-item label="权限配置:">
         <el-form-item label="权限配置:">
-          <div style="width:100%;height:150px;overflow: hidden; border:1px solid #CCC;overflow-y: auto;padding:10px;">
-             <el-tree
-                 ref="nodeTree"
-                 style="max-width: 600px;"
-                 :props="defaultProps"
-                 :data="treeData"
-                 default-expand-all
-                 node-key="value"
-                 show-checkbox
-               />
-            </div>
+          <div
+            style="
+              width: 100%;
+              height: 150px;
+              overflow: hidden;
+              border: 1px solid #ccc;
+              overflow-y: auto;
+              padding: 10px;
+            "
+          >
+            <el-tree
+              ref="nodeTree"
+              style="max-width: 600px"
+              :props="defaultProps"
+              :data="treeData"
+              default-expand-all
+              node-key="value"
+              show-checkbox
+            />
+          </div>
         </el-form-item>
         </el-form-item>
 
 
         <el-form-item label="模板分类授权:">
         <el-form-item label="模板分类授权:">
-          <div style="width:100%;height:150px;overflow: hidden; border:1px solid #CCC;overflow-y: auto;padding:10px;">
-             <el-tree
-                 ref="templateCate"
-                 style="max-width: 600px;"
-                 :props="defaultProps"
-                 :data="templateCate"
-                 default-expand-all
-                 node-key="value"
-                 show-checkbox
-               />
-            </div>
+          <div
+            style="
+              width: 100%;
+              height: 150px;
+              overflow: hidden;
+              border: 1px solid #ccc;
+              overflow-y: auto;
+              padding: 10px;
+            "
+          >
+            <el-tree
+              ref="templateCate"
+              style="max-width: 600px"
+              :props="defaultProps"
+              :data="templateCate"
+              default-expand-all
+              node-key="value"
+              show-checkbox
+            />
+          </div>
         </el-form-item>
         </el-form-item>
         <el-form-item label="文档分类授权:">
         <el-form-item label="文档分类授权:">
-          <div style="width:100%;height:150px;overflow: hidden; border:1px solid #CCC;overflow-y: auto;padding:10px;">
-             <el-tree
-                 ref="docCate"
-                 style="max-width: 600px;"
-                 :props="defaultProps"
-                 :data="documentCate"
-                 default-expand-all
-                 node-key="value"
-                 show-checkbox
-               />
-            </div>
+          <div
+            style="
+              width: 100%;
+              height: 150px;
+              overflow: hidden;
+              border: 1px solid #ccc;
+              overflow-y: auto;
+              padding: 10px;
+            "
+          >
+            <el-tree
+              ref="docCate"
+              style="max-width: 600px"
+              :props="defaultProps"
+              :data="documentCate"
+              default-expand-all
+              node-key="value"
+              show-checkbox
+            />
+          </div>
         </el-form-item>
         </el-form-item>
         <el-form-item label="原始数据分类授权:">
         <el-form-item label="原始数据分类授权:">
-          <div style="width:100%;height:150px;overflow: hidden; border:1px solid #CCC;overflow-y: auto;padding:10px;">
-             <el-tree
-                 ref="sourceDataTree"
-                 style="max-width: 600px;"
-                 :props="defaultProps"
-                 :data="sourceDataCate"
-                 default-expand-all
-                 node-key="value"
-                 show-checkbox
-               />
-            </div>
+          <div
+            style="
+              width: 100%;
+              height: 150px;
+              overflow: hidden;
+              border: 1px solid #ccc;
+              overflow-y: auto;
+              padding: 10px;
+            "
+          >
+            <el-tree
+              ref="sourceDataTree"
+              style="max-width: 600px"
+              :props="defaultProps"
+              :data="sourceDataCate"
+              default-expand-all
+              node-key="value"
+              show-checkbox
+            />
+          </div>
         </el-form-item>
         </el-form-item>
         <el-form-item label="角色状态:">
         <el-form-item label="角色状态:">
-          <el-select v-model="dataForm.status"  placeholder="请选择状态" size="large"  style="width:100%;">
-              <el-option
-                v-for="item in statusOptions"
-                :key="item.status"
-                :label="item.name"
-                :value="item.status"
-              />
-            </el-select>
+          <el-select
+            v-model="dataForm.status"
+            placeholder="请选择状态"
+            size="large"
+            style="width: 100%"
+          >
+            <el-option
+              v-for="item in statusOptions"
+              :key="item.status"
+              :label="item.name"
+              :value="item.status"
+            />
+          </el-select>
         </el-form-item>
         </el-form-item>
         <el-form-item label="介绍:">
         <el-form-item label="介绍:">
-            <el-input type="textarea" v-model="dataForm.intro"></el-input>
+          <el-input type="textarea" v-model="dataForm.intro"></el-input>
         </el-form-item>
         </el-form-item>
       </el-form>
       </el-form>
-
     </el-card>
     </el-card>
 
 
-
-      <div style="text-align:right; margin-top:20px;">
-          <el-button type="warning" @click="btnSave">确认保存</el-button>
-      </div>
+    <div style="text-align: right; margin-top: 20px">
+      <el-button type="warning" @click="btnSave">确认保存</el-button>
+    </div>
   </div>
   </div>
 </template>
 </template>
 
 
 <script>
 <script>
-  import {createAdminRole,updateAdminRole,getAdminRoleInfo} from'@/api/AdminRole'
-
-  import {searchDocumentCategory} from "@/api/document"
-  import {searchSourceDataCategory} from "@/api/sourceData"
-  import {searchAdminAuth} from"@/api/AdminAuth"
-  import {getAllCategory} from "@/api/template"
-  export default{
-    emits:['onClose'],
-    props:{
-      id:{
-        type:Number,
-        default:0
+import {
+  createAdminRole,
+  updateAdminRole,
+  getAdminRoleInfo,
+} from "@/api/AdminRole";
+
+import { searchDocumentCategory } from "@/api/document";
+import { searchSourceDataCategory } from "@/api/sourceData";
+import { searchAdminAuth } from "@/api/AdminAuth";
+import { getAllCategory } from "@/api/template";
+export default {
+  emits: ["onClose"],
+  props: {
+    dataId: {
+      type: Number,
+      default: 0,
+    },
+  },
+  watch: {
+    dataId: {
+      handler(v) {
+        let _this = this;
+        if (v == null || v <= 0) return;
+        _this.getInfo(v);
       },
       },
+      immediate: true,
+      deep: true,
     },
     },
-    watch:{
-      id:{
-        handler(v){
-            let _this=this;
-            if(v==null || v<=0)return;
-            _this.getInfo(v);
+  },
+  data() {
+    return {
+      activeName: "base",
+      defaultProps: {
+        children: "children",
+        label: "label",
+      },
+      treeData: [],
+      dataForm: {
+        id: "",
+        name: "",
+        is_admin: "",
+        intro: "",
+        status: 5,
+      },
+      statusOptions: [
+        {
+          status: 5,
+          name: "启用",
         },
         },
-        immediate: true,
-        deep: true
-      }
-    },
-    data(){
-      return{
-        activeName:'base',
-        defaultProps :{
-           children: 'children',
-           label: 'label',
+        {
+          status: 6,
+          name: "禁用",
+        },
+      ],
+      adminOptions: [
+        {
+          status: 1,
+          name: "是",
         },
         },
-        treeData:[],
-        dataForm:{
-          id:'',
-          name:'',
-          is_admin:'',
-          intro:'',
-          status:5
+        {
+          status: 2,
+          name: "否",
         },
         },
-        statusOptions:[
+      ],
+      pickedItem: [],
+      templateCate: [],
+      documentCate: [],
+      sourceDataCate: [],
+    };
+  },
+
+  mounted() {
+    this.initNodeList();
+    this.initTemplateCate();
+    this.initDocCategory();
+    this.initSourceDataCate();
+  },
+  methods: {
+    initSourceDataCate() {
+      let _this = this;
+      searchSourceDataCategory({ page: 1, pageSize: 9999, status: 5 }).then(
+        (res) => {
+          if (res.status != 200) return;
+          _this.sourceDataCate = res.data.sourcecategories.map((res) => {
+            let item = {
+              id: res.id,
+              label: res.name,
+              name: res.name,
+              children: [
+                {
+                  action: "view",
+                  cateId: res.id,
+                  value: "view-source-data" + res.id,
+                  type: "sourceCate",
+                  isMain: true,
+                  name: "查看",
+                  label: "查看",
+                },
+                {
+                  action: "create",
+                  cateId: res.id,
+                  value: "create-source-data" + res.id,
+                  type: "sourceCate",
+                  isMain: true,
+                  name: "创建",
+                  label: "创建",
+                },
+                {
+                  action: "edit",
+                  cateId: res.id,
+                  value: "edit-source-data" + res.id,
+                  type: "sourceCate",
+                  isMain: true,
+                  name: "编辑",
+                  label: "编辑",
+                },
+                {
+                  action: "delete",
+                  cateId: res.id,
+                  value: "delete-source-data" + res.id,
+                  type: "sourceCate",
+                  isMain: true,
+                  name: "删除",
+                  label: "删除",
+                },
+              ],
+            };
+            return item;
+          });
+        }
+      );
+    },
+    initDocCategory() {
+      let _this = this;
+      searchDocumentCategory({ page: 1, pageSize: 9999, status: 5 }).then(
+        (res) => {
+          if (res.status != 200) return;
+          _this.documentCate = res.data.dataList.map((res) => {
+            let item = {
+              id: res.id,
+              label: res.name,
+              name: res.name,
+              children: [
+                {
+                  action: "view",
+                  cateId: res.id,
+                  type: "docCate",
+                  value: "view-doc-cate-" + res.id,
+                  isMain: true,
+                  name: "查看",
+                  label: "查看",
+                },
+                {
+                  action: "create",
+                  cateId: res.id,
+                  type: "docCate",
+                  value: "create-doc-cate-" + res.id,
+                  isMain: true,
+                  name: "创建",
+                  label: "创建",
+                },
+                {
+                  action: "edit",
+                  cateId: res.id,
+                  type: "docCateg",
+                  value: "edit-doc-cate-" + res.id,
+                  isMain: true,
+                  name: "编辑",
+                  label: "编辑",
+                },
+                {
+                  action: "delete",
+                  cateId: res.id,
+                  type: "docCateg",
+                  value: "delete-doc-cate-" + res.id,
+                  isMain: true,
+                  name: "删除",
+                  label: "删除",
+                },
+              ],
+            };
+            return item;
+          });
+        }
+      );
+    },
+
+    //初始化模板分类
+    initTemplateCate() {
+      let _this = this;
+      getAllCategory({}).then((res) => {
+        if (res.status != 200) return;
+        _this.templateCate = res.data.map((item) => {
+          let data = {
+            id: item.parent.id,
+            label: item.parent.name,
+            name: item.parent.name,
+            children: item.children.map((subItem) => {
+              return {
+                id: subItem.id,
+                name: subItem.name,
+                label: subItem.name,
+                children: [
+                  {
+                    action: "view",
+                    cateId: subItem.id,
+                    pCateId: item.parent.id,
+                    isMain: true,
+                    value: "view-template-cate-" + subItem.id,
+                    type: "templateCategory",
+                    name: "查看",
+                    label: "查看",
+                  },
+                  {
+                    action: "create",
+                    cateId: subItem.id,
+                    pCateId: item.parent.id,
+                    isMain: true,
+                    value: "create-template-cate-" + subItem.id,
+                    type: "templateCategory",
+                    name: "创建",
+                    label: "创建",
+                  },
+                  {
+                    action: "edit",
+                    cateId: subItem.id,
+                    pCateId: item.parent.id,
+                    isMain: true,
+                    value: "edit-template-cate-" + subItem.id,
+                    type: "templateCategory",
+                    name: "编辑",
+                    label: "编辑",
+                  },
+                  {
+                    action: "delete",
+                    cateId: subItem.id,
+                    pCateId: item.parent.id,
+                    isMain: true,
+                    value: "delete-template-cate-" + subItem.id,
+                    type: "templateCategory",
+                    name: "删除",
+                    label: "删除",
+                  },
+                ],
+              };
+            }),
+          };
+          return data;
+        });
+      });
+    },
+
+    initNodeList() {
+      let _this = this;
+      searchAdminAuth({ page: 1, pageSize: 999, status: 5 }).then((res) => {
+        if (res.status != 200) {
+          _this.treeData = [];
+          return;
+        }
+        /*      let dataList=this.$store.state.user.authList */
+        let data = [
           {
           {
-            status:5,
-            name:'启用'
+            value: 1,
+            label: "项目管理",
+            children: [],
+            sub: false,
           },
           },
           {
           {
-            status:6,
-            name:'禁用'
+            value: 4,
+            label: "客户管理",
+            children: [],
+            sub: false,
           },
           },
-
-        ],
-        adminOptions:[
           {
           {
-            status:1,
-            name:'是'
+            value: 5,
+            label: "产品管理",
+            children: [],
+            sub: false,
           },
           },
           {
           {
-            status:2,
-            name:'否'
+            value: 10,
+            label: "文档管理",
+            children: [],
+            sub: false,
           },
           },
-        ],
-        pickedItem:[],
-        templateCate:[],
-        documentCate:[],
-        sourceDataCate:[],
-
-      }
+          {
+            value: 21,
+            label: "系统设置",
+            children: [],
+            sub: false,
+          },
+        ];
+
+        let viewAuth = res.data.filter(
+          (o) => o.parent_id != 99 && o.parent_id != 999
+        );
+        let controlAuth = res.data.filter((o) => o.parent_id == 999);
+
+        let items = [];
+        data.map((item) => {
+          item.children = viewAuth
+            .filter((o) => o.parent_id == item.value)
+            .map((subItem) => {
+              let sub = {
+                value: subItem.id,
+                label: subItem.name,
+                sub: true,
+                children: controlAuth
+                  .filter((o) => o.parent_id == subItem.id)
+                  .map((res) => {
+                    let item = {
+                      value: res.id,
+                      label: res.name,
+                      sub: true,
+                    };
+                    return item;
+                  }),
+              };
+              return sub;
+            });
+          if (item.children.length > 0) {
+            items.push(item);
+          }
+        });
+        _this.treeData = items;
+      });
     },
     },
 
 
-    mounted() {
-
-      this.initNodeList();
-      this.initTemplateCate();
-      this.initDocCategory();
-      this.initSourceDataCate();
+    //保存更新
+    btnSave(e) {
+      let _this = this;
+      let items = _this.$refs.nodeTree.getCheckedNodes();
+
+      let templateCate = _this.$refs.templateCate.getCheckedNodes();
+      let docCate = _this.$refs.docCate.getCheckedNodes();
+      let sourceDataTree = _this.$refs.sourceDataTree.getCheckedNodes();
+
+      templateCate = templateCate.filter((o) => o.isMain);
+
+      let pickedItem = items.filter((o) => o.sub == true);
+      _this.dataForm.authList = JSON.stringify(pickedItem);
+
+      _this.dataForm.template_cate_auth = JSON.stringify(templateCate);
+      _this.dataForm.doc_cate_auth = JSON.stringify(docCate);
+      _this.dataForm.source_cate_auth = JSON.stringify(sourceDataTree);
+
+      let data = { ..._this.dataForm };
+      data.attrs = JSON.stringify(data.attrs);
+      if (_this.dataForm.id > 0) {
+        updateAdminRole(data).then((res) => {
+          if (res.status != 200) return;
+          _this.$alert("更新角色信息成功");
+          _this.$emit("onClose");
+        });
+      } else {
+        createAdminRole(data).then((res) => {
+          if (res.status != 200) return;
+          _this.$alert("创建角色信息成功");
+          _this.$emit("onClose");
+        });
+      }
     },
     },
-    methods:{
 
 
-
-      initSourceDataCate(){
-          let _this=this;
-          searchSourceDataCategory({page:1,pageSize:9999,status:5}).then(res=>{
-            if(res.status!=200)return;
-            _this.sourceDataCate=res.data.dataList.map(res=>{
-              let item={
-                id:res.id,
-                label:res.name,
-                name:res.name,
-                children:[
-                        {
-                          action:"view",
-                          cateId:res.id,
-                          value:'view-source-data'+res.id,
-                          type:'sourceCate',
-                          isMain:true,
-                          name:'查看',
-                          label:'查看'
-                        },
-                        {
-                          action:"create",
-                          cateId:res.id,
-                          value:'create-source-data'+res.id,
-                          type:'sourceCate',
-                          isMain:true,
-                          name:'创建',
-                          label:'创建'
-                        },
-                        {
-                          action:"edit",
-                          cateId:res.id,
-                          value:'edit-source-data'+res.id,
-                          type:'sourceCate',
-                          isMain:true,
-                          name:'编辑',
-                          label:'编辑'
-                        },
-                        {
-                          action:"delete",
-                          cateId:res.id,
-                          value:"delete-source-data"+res.id,
-                          type:'sourceCate',
-                          isMain:true,
-                          name:'删除',
-                          label:'删除'
-                        },
-                      ]
+    //产品详情
+    getInfo(id) {
+      let _this = this;
+      let par = {
+        id: id,
+      };
+      getAdminRoleInfo(par).then((res) => {
+        if (!res) return;
+        if (res.status != 200) return;
+        _this.dataForm = res.data.info;
+        if (res.data.menuList.length > 0) {
+          res.data.menuList.map((el) => {
+            el.label = el.name;
+            el.value = el.id;
+          });
+          _this.$refs.nodeTree.setCheckedNodes(res.data.menuList);
+        } else {
+          _this.$refs.nodeTree.setCheckedNodes([]);
+        }
+
+        let tempCate = res.data.templateCategoryUsers; //JSON.parse();
+        if (tempCate.length > 0) {
+          _this.$refs.templateCate.setCheckedNodes(tempCate);
+        } else {
+          _this.$refs.templateCate.setCheckedNodes([]);
+        }
+
+        let sourceCate = res.data.source_cate_auth; //JSON.parse();
+        if (sourceCate.length > 0) {
+          let list = sourceCate.flatMap((el) =>
+            el.children.map((e) => {
+              if(e.isMain=='True'){
+                e.isMain = true;
               }
               }
-              return item;
+              return e;
             })
             })
-          })
-
-      },
-      initDocCategory(){
-        let _this=this;
-        searchDocumentCategory({page:1,pageSize:9999,status:5}).then(res=>{
-          if(res.status!=200)return;
-          _this.documentCate=res.data.dataList.map(res=>{
-            let item={
-              id:res.id,
-              label:res.name,
-              name:res.name,
-              children:[
-                      {
-                        action:"view",
-                        cateId:res.id,
-                        type:'docCate',
-                        value:"view-doc-cate-"+res.id,
-                        isMain:true,
-                        name:'查看',
-                        label:'查看'
-                      },
-                      {
-                        action:"create",
-                        cateId:res.id,
-                        type:'docCate',
-                        value:"create-doc-cate-"+res.id,
-                        isMain:true,
-                        name:'创建',
-                        label:'创建'
-                      },
-                      {
-                        action:"edit",
-                        cateId:res.id,
-                        type:'docCateg',
-                        value:"edit-doc-cate-"+res.id,
-                        isMain:true,
-                        name:'编辑',
-                        label:'编辑'
-                      },
-                      {
-                        action:"delete",
-                        cateId:res.id,
-                        type:'docCateg',
-                        value:"delete-doc-cate-"+res.id,
-                        isMain:true,
-                        name:'删除',
-                        label:'删除'
-                      },
-                    ]
-            }
-            return item;
-          })
-        })
-      },
-
-
-      //初始化模板分类
-      initTemplateCate(){
-        let _this=this;
-        getAllCategory({}).then(res=>{
-          if(res.status!=200) return;
-          _this.templateCate=res.data.map((item)=>{
-              let data={
-                id:item.id,
-                label:item.name,
-                name:item.name,
-                children:item.children.map(subItem=>{
-                  return{
-                    id:subItem.id,
-                    name:subItem.name,
-                    label:subItem.name,
-                    children:[
-                      {
-                        action:"view",
-                        cateId:subItem.id,
-                        pCateId:item.id,
-                        isMain:true,
-                        value:"view-template-cate-"+res.id,
-                        type:'templateCategory',
-                        name:'捍看',
-                        label:'查看'
-                      },
-                      {
-                        action:"create",
-                        cateId:subItem.id,
-                        pCateId:item.id,
-                        isMain:true,
-                        value:"create-template-cate-"+res.id,
-                        type:'templateCategory',
-                        name:'创建',
-                        label:'创建'
-                      },
-                      {
-                        action:"edit",
-                        cateId:subItem.id,
-                        pCateId:item.id,
-                        isMain:true,
-                        value:"edit-template-cate-"+res.id,
-                        type:'templateCategory',
-                        name:'编辑',
-                        label:'编辑'
-                      },
-                      {
-                        action:"delete",
-                        cateId:subItem.id,
-                        pCateId:item.id,
-                        isMain:true,
-                        value:"delete-template-cate-"+res.id,
-                        type:'templateCategory',
-                        name:'删除',
-                        label:'删除'
-                      },
-                    ]
-                  }
-                })
+          );
+          _this.$refs.sourceDataTree.setCheckedNodes(list);
+        } else {
+          _this.$refs.sourceDataTree.setCheckedNodes([]);
+        }
+
+        let docCate = res.data.doc_cate_auth; //JSON.parse();
+        if (docCate.length > 0) {
+          let list = docCate.flatMap((el) =>
+            el.children.map((e) => {
+              if(e.isMain=='True'){
+                e.isMain = true;
               }
               }
-              return data;
-          });
-        })
-      },
-
-      initNodeList(){
-        let _this=this;
-        searchAdminAuth({page:1,pageSize:999,status:5}).then(res=>{
-           if(res.status!=200){
-             _this.treeData=[];
-             return;
-           }
-           let data=[
-             {
-               value:1,
-               label:'项目管理',
-               children:[],
-               sub:false
-             },
-             {
-               value:2,
-               label:'客户管理',
-               children:[],
-               sub:false
-             },
-             {
-               value:3,
-               label:'产品管理',
-               children:[],
-               sub:false
-             },
-             {
-               value:4,
-               label:'文档管理',
-               children:[],
-               sub:false
-             },
-             {
-               value:5,
-               label:'系统设置',
-               children:[],
-               sub:false
-             },
-           ];
-
-           let viewAuth=res.data.dataList.filter(o=>o.type!=99 && o.type!=999)
-           let controlAuth=res.data.dataList.filter(o=>o.type==999);
-
-            let items=[];
-            data.map(item=>{
-               item.children=viewAuth.filter(o=>o.type==item.value).map((subItem)=>{
-                   let sub={
-                     value:subItem.id,
-                     label:subItem.name,
-                     sub:true,
-                     children:controlAuth.filter(o=>o.parent_id==subItem.id).map(res=>{
-                       let item={
-                           value:res.id,
-                           label:res.name,
-                           sub:true,
-                         };
-                         return item;
-                     })
-                   }
-                   return sub;
-               });
-               if(item.children.length>0){
-                  items.push(item);
-               }
-           })
-           _this.treeData=items;
-        })
-      },
-
-      //保存更新
-      btnSave(e){
-          let _this=this;
-          let items=_this.$refs.nodeTree.getCheckedNodes();
-
-          let templateCate=_this.$refs.templateCate.getCheckedNodes();
-          let docCate=_this.$refs.docCate.getCheckedNodes();
-          let sourceDataTree=_this.$refs.sourceDataTree.getCheckedNodes();
-
-
-          templateCate=templateCate.filter(o=>o.isMain);
-
-
-          let pickedItem=items.filter(o=>o.sub==true);
-          _this.dataForm.authList=JSON.stringify(pickedItem);
-
-          _this.dataForm.template_cate_auth=JSON.stringify(templateCate);
-          _this.dataForm.doc_cate_auth=JSON.stringify(docCate);
-          _this.dataForm.source_cate_auth=JSON.stringify(sourceDataTree);
-
-
-          let data={..._this.dataForm};
-          data.attrs=JSON.stringify(data.attrs);
-          if(_this.dataForm.id>0){
-            updateAdminRole(data).then(res=>{
-              if(res.status!=200)return;
-              _this.$alert("更新角色信息成功");
-              _this.$emit("onClose")
-            })
-          }else{
-            createAdminRole(data).then(res=>{
-              if(res.status!=200)return;
-              _this.$alert("创建角色信息成功");
-              _this.$emit("onClose")
+              return e;
             })
             })
-          }
-      },
-
-      //产品详情
-      getInfo(id){
-          let _this=this;
-          let par={
-            id:id,
-          };
-          getAdminRoleInfo(par).then(res=>{
-              if(!res)return;
-              if(res.status!=200)return;
-              _this.dataForm=res.data;
-              if(res.data.linkData.length>0){
-                _this.$refs.nodeTree.setCheckedNodes(res.data.linkData);
-              }else{
-                _this.$refs.nodeTree.setCheckedNodes([]);
-              }
-
-
-              let tempCate=JSON.parse(res.data.template_cate_auth);
-              if(tempCate.length>0){
-                _this.$refs.templateCate.setCheckedNodes(tempCate);
-              }else{
-                _this.$refs.templateCate.setCheckedNodes([]);
-              }
-
-
-              let sourceCate=JSON.parse(res.data.source_cate_auth);
-              if(sourceCate.length>0){
-                _this.$refs.sourceDataTree.setCheckedNodes(sourceCate);
-              }else{
-                _this.$refs.sourceDataTree.setCheckedNodes([]);
-              }
-
-
-              let docCate=JSON.parse(res.data.doc_cate_auth);
-              if(docCate.length>0){
-                _this.$refs.docCate.setCheckedNodes(docCate);
-              }else{
-                _this.$refs.docCate.setCheckedNodes([]);
-              }
-
-          //     _this.$refs.docCate.setCheckedNodes(JSON.parse(res.data.doc_cate_auth));
-          //     _this.$refs.sourceDataTree.setCheckedNodes(JSON.parse(res.data.source_cate_auth));
-
-
-
-          })
-      },
-
-      onChangeStatus(e){
-          this.dataForm.status=e;
-      },
-
-
+          );
+          _this.$refs.docCate.setCheckedNodes(list);
+        } else {
+          _this.$refs.docCate.setCheckedNodes([]);
+        }
+
+        //     _this.$refs.docCate.setCheckedNodes(JSON.parse(res.data.doc_cate_auth));
+        //     _this.$refs.sourceDataTree.setCheckedNodes(JSON.parse(res.data.source_cate_auth));
+      });
+    },
 
 
-    }
-  }
+    onChangeStatus(e) {
+      this.dataForm.status = e;
+    },
+  },
+};
 </script>
 </script>
 
 
 <style lang="scss">
 <style lang="scss">
- @import './dataInfo.scss'
+@import "./dataInfo.scss";
 </style>
 </style>

+ 1 - 0
src/views/role/components/dataList.vue

@@ -133,6 +133,7 @@
 
 
       //编辑
       //编辑
       btnEdit(e){
       btnEdit(e){
+        this.dataId=e
         this.$router.push({path:'/system/role/edit',query:{id:e}})
         this.$router.push({path:'/system/role/edit',query:{id:e}})
       },
       },
 
 

+ 20 - 18
src/views/role/create.vue

@@ -1,31 +1,33 @@
 <template>
 <template>
   <div class="project-search">
   <div class="project-search">
-    <dataInfo  dataId=0></dataInfo>
+    <dataInfo :dataId="dataId"></dataInfo>
   </div>
   </div>
-
 </template>
 </template>
 
 
 <script>
 <script>
-import {dataInfo} from "./components"
-export default{
-  components:{
-    dataInfo
+import { dataInfo } from "./components";
+export default {
+  components: {
+    dataInfo,
   },
   },
-  data(){
-    return{
-      dataId:0,
-    }
+  data() {
+    return {
+      dataId: 0,
+    };
   },
   },
-  mounted(){
-
+  mounted() {
+    let _this = this;
+    _this.dataId = _this.$route.query.id;
+    if (isNaN(this.dataId)) {
+      this.dataId = 0;
+    }
+    this.dataId = parseInt(this.dataId);
+    console.log(this.dataId);
   },
   },
-  methods:{
-
-
-  }
-}
+  methods: {},
+};
 </script>
 </script>
 
 
 <style lang="scss">
 <style lang="scss">
-@import './create.scss'
+@import "./create.scss";
 </style>
 </style>