소스 검색

政企新首页

hujunwei@agilestar.cn 2 년 전
부모
커밋
dfdd12aafb
37개의 변경된 파일9488개의 추가작업 그리고 664개의 파일을 삭제
  1. 1 1
      src/assets/js/http.js
  2. BIN
      src/assets/newlogo3.png
  3. 42 71
      src/components/p-header.vue
  4. 1 0
      src/components/upload.vue
  5. 16 14
      src/components/uploadDown.vue
  6. 247 0
      src/components/uploadOnlineOffice.vue
  7. 1 4
      src/pages/main/accountPermissions/accountdel.vue
  8. 1 1
      src/pages/main/firewall/index.vue
  9. 1039 0
      src/pages/main/fullcalendar/calendarZQ.vue
  10. 1 0
      src/pages/main/funcInit/manageLnit.vue
  11. 155 155
      src/pages/main/iptv/uploadDown.vue
  12. 1 1
      src/pages/main/itknowledgetop/addKnowledge.vue
  13. 2 2
      src/pages/main/itknowledgetop/copyIndex.vue
  14. 2 2
      src/pages/main/itknowledgetop/knowledgeExamine.vue
  15. 2 2
      src/pages/main/itknowledgetop/knowledgeManagement.vue
  16. 1 1
      src/pages/main/knowledgetop/addKnowledge.vue
  17. 2 2
      src/pages/main/knowledgetop/copyIndex.vue
  18. 2 2
      src/pages/main/knowledgetop/knowledgeExamine.vue
  19. 2 2
      src/pages/main/knowledgetop/knowledgeManagement.vue
  20. 35 35
      src/pages/main/leader/index.vue
  21. 1 1
      src/pages/main/leader/leaderTag.vue
  22. 255 346
      src/pages/main/leader/leaderhomeTask.vue
  23. 8 7
      src/pages/main/leader/rli.vue
  24. 826 0
      src/pages/main/leader/rliZQ.vue
  25. 7 7
      src/pages/main/leader/rlinet.vue
  26. 1290 0
      src/pages/main/onlineOfficeExcel/index.vue
  27. 1290 0
      src/pages/main/onlineOfficeExcelSC/index.vue
  28. 1290 0
      src/pages/main/onlineOfficeExcelZQ/index.vue
  29. 1 1
      src/pages/main/opcode/index.vue
  30. 255 0
      src/pages/main/zqknowledgetop/addKnowledge.vue
  31. 503 0
      src/pages/main/zqknowledgetop/catalog.vue
  32. 2 0
      src/pages/main/zqknowledgetop/data.js
  33. 193 0
      src/pages/main/zqknowledgetop/index.vue
  34. 568 0
      src/pages/main/zqknowledgetop/knowledgeExamine.vue
  35. 990 0
      src/pages/main/zqknowledgetop/knowledgeManagement.vue
  36. 374 0
      src/pages/main/zqknowledgetop/knowledgeType.vue
  37. 82 7
      src/router/index.js

+ 1 - 1
src/assets/js/http.js

@@ -9,7 +9,7 @@ axios.defaults.headers.post['Content-Type'] = 'application/json';//'multipart/fo
 // http response 拦截器
 axios.interceptors.response.use(
   response => {
-    console.log('奇奇怪怪的网络请求');
+    // console.log('奇奇怪怪的网络请求');
     //vue.$store.commit('endLoading');
     if(response.config.url.indexOf('8880')!=-1 || response.config.url.indexOf('8099')!=-1){
 

BIN
src/assets/newlogo3.png


+ 42 - 71
src/components/p-header.vue

@@ -13,17 +13,15 @@
     >
       <span :class="item.icon"></span>{{ item.name }}
     </div> -->
-    <div class="headerspan">
+
+    <div  class="headerspan">
       <!-- <span>市场经济管理平台</span> -->
-      <img
-        :src="
-          parentorgid === '00440063000000000000'
-            ? require('../assets/newlogo2.png')
-            : require('../assets/newlogo.png')
-        "
-        style="text-align: center; vertical-align: middle"
-        alt=""
-      />
+      <img v-if="groupName == 'IT'" :src="require('../assets/newlogo2.png')"
+        style="text-align: center; vertical-align: middle" alt="" />
+      <img v-if="groupName == 'default'" :src="require('../assets/newlogo.png')"
+        style="text-align: center; vertical-align: middle" alt="" />
+      <img v-if="groupName == 'ZQ'" :src="require('../assets/newlogo3.png')"
+        style="text-align: center; vertical-align: middle" alt="" />
     </div>
 
     <div class="bars">
@@ -31,7 +29,7 @@
         <i class="el-icon-date"></i>
         日历
       </div>
-      <div class="bars-item user-info">你好{{ username }}</div>
+      <!-- <div class="bars-item user-info">你好{{ username }}</div> -->
 
       <div class="bars-item" @click="handleHelp">
         <i class="el-icon-time"></i>
@@ -43,27 +41,11 @@
       </div>
       <div class="bars-item" @click="handleLogout">
         <!-- <i class="el-icon-guide"></i> -->
-        <svg
-          t="1654163202752"
-          class="icon"
-          viewBox="0 0 1024 1024"
-          version="1.1"
-          xmlns="http://www.w3.org/2000/svg"
-          p-id="9307"
-          id="mx_n_1654163202756"
-          width="18"
-          height="18"
-        >
-          <path
-            d="M768 819.2h-256V204.8L256 102.4h512v102.4h102.4V0H0v819.2l512 204.8v-102.4h358.4v-204.8h-102.4v102.4z"
-            p-id="9308"
-            fill="#ffffff"
-          ></path>
-          <path
-            d="M1024 460.8l-256-153.6v102.4h-204.8v102.4h204.8v102.4l256-153.6z"
-            p-id="9309"
-            fill="#ffffff"
-          ></path>
+        <svg t="1654163202752" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
+          p-id="9307" id="mx_n_1654163202756" width="18" height="18">
+          <path d="M768 819.2h-256V204.8L256 102.4h512v102.4h102.4V0H0v819.2l512 204.8v-102.4h358.4v-204.8h-102.4v102.4z"
+            p-id="9308" fill="#ffffff"></path>
+          <path d="M1024 460.8l-256-153.6v102.4h-204.8v102.4h204.8v102.4l256-153.6z" p-id="9309" fill="#ffffff"></path>
         </svg>
         <span>退出</span>
       </div>
@@ -82,6 +64,7 @@ export default {
   },
   data() {
     return {
+      groupName: "",
       parentorgid: "",
       currentIndex: "5",
       date: new Date(),
@@ -105,64 +88,50 @@ export default {
     };
   },
   created() {
+    this.getDept();
     this.runInitDate();
     // if (!this.collapse) {
     //   this.$store.commit("setCollapse");
     // }
     //this.menuClose();
-    this.getDept();
     
+
   },
   methods: {
     getDept() {
       this.$http({
-        url: "/sysmgr/csysdept/queryGroupListByLoginNo",
+        url: "/market/cmkline/queryMkLineGroupNameInfo",
         method: "post",
         headers: {
           "Content-Type": "application/json",
         },
         data: {},
       }).then((res) => {
-        console.log(res.data[0].parentorgid);
-        this.parentorgid = res.data[0].parentorgid;
-        if (res.data[0].parentorgid === "00440063000000000000") {
+        this.groupName = res.data.groupName;
+        if (this.groupName === "IT") {
           document.title = "IT工作台";
+        } else if (this.groupName === "ZQ") {
+          document.title = "政企工作台";
         }
       });
     },
     handleGoToCalendar() {
-      this.$http({
-        url: "/sysmgr/csysdept/queryGroupListByLoginNo",
-        method: "post",
-        headers: {
-          "Content-Type": "application/json",
-        },
-        data: {},
-      }).then((res) => {
-        console.log("header" + res.data[0].parentorgid);
-        if (res.data[0].parentorgid === "00440063000000000000") {
-          this.$router.push("calendarnet");
-        } else {
-          this.$router.push("calendar");
-        }
-      });
+      if (this.groupName === "IT") {
+        this.$router.push("calendarnet");
+      } else if (this.groupName === "ZQ") {
+        this.$router.push("calendarZQ");
+      } else {
+        this.$router.push("calendar");
+      }
     },
     handleGoToKnowledge() {
-      this.$http({
-        url: "/sysmgr/csysdept/queryGroupListByLoginNo",
-        method: "post",
-        headers: {
-          "Content-Type": "application/json",
-        },
-        data: {},
-      }).then((res) => {
-        console.log("header" + res.data[0].parentorgid);
-        if (res.data[0].parentorgid === "00440063000000000000") {
-          this.$router.push("itknowledgetop");
-        } else {
-          this.$router.push("knowledgetop");
-        }
-      });
+      if (this.groupName === "IT") {
+        this.$router.push("itknowledgetop");
+      } else if (this.groupName === "ZQ") {
+        this.$router.push("zqknowledgetop");
+      } else {
+        this.$router.push("knowledgetop");
+      }
     },
     handleCall() {
       this.$switchTab(
@@ -242,8 +211,8 @@ export default {
           throw err;
         });
     },
-    handleSetting() {},
-    handleHelp() {},
+    handleSetting() { },
+    handleHelp() { },
     menuClose() {
       this.$store.commit("setCollapse");
       this.$emit("collapse");
@@ -273,6 +242,7 @@ export default {
     // font-size: 18px;
     // font-weight: bolder;
     color: #ffffff;
+
     // span {
     //   margin-left: 40px;
     // }
@@ -322,12 +292,14 @@ export default {
       color: #ffffff;
       position: relative;
       letter-spacing: 0;
+
       svg {
         position: absolute;
         top: 55%;
         bottom: 50%;
         transform: translate(-50%, -50%);
       }
+
       span {
         margin-left: 15px;
       }
@@ -337,5 +309,4 @@ export default {
       font-size: 18px;
     }
   }
-}
-</style>
+}</style>

+ 1 - 0
src/components/upload.vue

@@ -232,6 +232,7 @@ export default {
           } else {
             this.attList.push({
               id: res.data.body.id,
+              fileName: res.data.body.fileName,
               name: res.data.body.fileName,
               fileCode: res.data.body.fileCode,
               opName: res.data.body.opName,

+ 16 - 14
src/components/uploadDown.vue

@@ -6,13 +6,7 @@
       <i class="iconfont icon-ppt" v-if="item.type === 'ppt'"></i>
       <i class="iconfont icon-wenjian" v-if="item.type === 'wenjian'"></i>
       <i class="el-icon-picture" v-if="item.type === 'png'"></i>
-      <el-tooltip
-        class="item"
-        effect="dark"
-        :content="item.fileName"
-        placement="right"
-        :enterable="false"
-      >
+      <el-tooltip class="item" effect="dark" :content="item.fileName" placement="right" :enterable="false">
         <span class="tab-long">{{ item.fileName }}</span>
       </el-tooltip>
       <div class="seedown" v-if="datalist.type === 2">
@@ -27,6 +21,7 @@
   </div>
 </template>
 <script>
+import getConfig from '../config/dev.js'
 export default {
   props: ["datalist", "dialogStatus"],
   data() {
@@ -44,10 +39,14 @@ export default {
       }
     },
     uploadsee(v) {
-      let url = encodeURIComponent(v.callPath);
-      this.srcsc = "http://114.215.71.182:8012/onlinePreview?url=" + url;
+      console.log(v);
+      let url = encodeURIComponent(Base64.encode(v.callPath));
+      console.log(url);
+      // this.srcsc = 'http://150.158.79.10:8012/onlinePreview?url=' + url;//本地
+      // this.srcsc = 'http:///10.149.85.91:8012/onlinePreview?url=' + url;//测试
+      // this.srcsc = 'http://10.230.15.228:8012/onlinePreview?url=' + url;//生产
+      this.srcsc =  getConfig().KNOWLEDGE_URL+'/onlinePreview?url=' + url;
       this.ifrshow = true;
-      // window.open('http://114.215.71.182:8012/onlinePreview?url=' + url);
     },
     //下载e
     uploaddown(v) {
@@ -111,7 +110,7 @@ export default {
     this.dataHandle();
     console.log(this.infolist);
   },
-  created() {},
+  created() { },
   watch: {
     dialogStatus() {
       this.$forceUpdate();
@@ -178,9 +177,12 @@ export default {
       margin: 0 10px;
       overflow: hidden;
       text-overflow: ellipsis;
-      display: -webkit-box; /* 将对象作为弹性伸缩盒子模型显示 */
-      -webkit-line-clamp: 1; /* 控制最多显示几行 */
-      -webkit-box-orient: vertical; /* 设置或检索伸缩盒对象的子元素的排列方式 */
+      display: -webkit-box;
+      /* 将对象作为弹性伸缩盒子模型显示 */
+      -webkit-line-clamp: 1;
+      /* 控制最多显示几行 */
+      -webkit-box-orient: vertical;
+      /* 设置或检索伸缩盒对象的子元素的排列方式 */
     }
   }
 

+ 247 - 0
src/components/uploadOnlineOffice.vue

@@ -0,0 +1,247 @@
+<template>
+    <div v-loading="loading">
+        <el-upload class="upload-demo" accept=".xls,.xlsx,.ppt,.pptx,.doc,.docx" :drag="fileInfo.type !== 'btn'" multiple
+            :limit="fileInfo.limit" ref="upload" action="string" :on-remove="handleRemove" :on-exceed="handleExceed"
+            :file-list="attList" :auto-upload="true" :show-file-list="fileInfo.type !== 'btn'" :before-upload="deforeUp"
+            :http-request="signUpload" :on-preview="defUp" :disabled="disabled">
+            <div v-if="fileInfo.type !== 'btn'">
+                <span class="iconfont icon-excel" style="font-size: 80px;color: dodgerblue;margin-top: 10px;"></span>
+                <div class="el-upload__text" style="margin-top: 10px;">{{ fileInfo.typename
+                }}</div>
+            </div>
+            <div v-if="fileInfo.type === 'btn'">
+                <el-button size="medium" :type="fileInfo.btntype" class="btn-check" type="primary" plain
+                    icon="el-icon-upload2">{{ fileInfo.typename
+                    }}</el-button>
+            </div>
+        </el-upload>
+    </div>
+</template>
+<script>
+export default {
+    // props: ["fileInfo", "fileList", "type"],
+    props: {
+        fileInfo: {
+            type: Object,
+            default: () => { }
+        },
+        filenowFolder: {
+            type: Object,
+            default: () => { }
+        },
+        fileList: {
+            type: Array,
+            default: () => []
+        },
+        type: {
+            type: Array,
+            default: () => []
+        },
+        disabled: {
+            type: Boolean,
+            default: () => { },
+        },
+    },
+    data() {
+        return {
+            fileLists: [],
+            attList: [
+                // {
+                //   attchFileId: "",
+                //   fileCode: "202209271105276441",
+                //   name: "1231233333333333.xlsx",
+                //   id: "202209271105276441",
+                //   opName: "范岩",
+                //   opNo: "fanyan",
+                //   opTime: "2022-09-27 11:05:27",
+                //   type: 'success',
+                // },
+            ],
+            loading: false,
+            num: 0,
+            s: false,
+        };
+    },
+    // props:{
+    //    disabled: {
+    //     type: Boolean,
+    //     default: () => {},
+    //   },
+    // },
+    methods: {
+        signUpload() { },
+        //删除
+        handleRemove(file) {
+            console.log(file);
+            console.log(this.attList);
+            for (let i = 0; i < this.attList.length; i++) {
+                if (this.attList[i].name === file.name) {
+                    this.attList.splice(i, 1);
+
+
+
+                    // this.$emit("clickDownload",this.attList);
+                }
+            }
+            console.log(this.attList)
+            this.$emit("uploadBack", this.attList);
+        },
+
+        //数量限制
+        handleExceed(files, fileList) {
+            this.$message.warning(
+                `当前限制选择 ${this.fileInfo.limit} 个文件,本次选择了 ${files.length
+                } 个文件,共选择了 ${files.length + fileList.length} 个文件`
+            );
+        },
+        defUp(file) {
+            this.$emit("clickDownload", this.attList);
+        },
+        deforeUp(file) {
+            console.log(file);
+            let query = new FormData();
+            query.append("file", file);
+            console.log(query);
+            let docType = file.name.split('.')[1]
+            const extension1 = docType === "xlsx";
+            const extension2 = docType === "xls";
+            const extension3 = docType === "docx";
+            const extension4 = docType === "doc";
+            const extension5 = docType === "ppt";
+            const extension6 = docType === "pptx";
+            console.log(extension6);
+            if (!extension1 && !extension2 && !extension3 && !extension4 && !extension5 && !extension6) {
+                this.$message.error("上传文件格式有误!");
+                return false;
+            }
+            // if (docType == 'xlsx' || docType == 'xls') {
+            //     docType = 'cell'
+            // }
+            // if (docType == 'docx' || docType == 'doc') {
+            //     docType = 'word'
+            // }
+            // if (docType == 'ppt' || docType == 'pptx') {
+            //     docType = 'slide'
+            // }
+            const isLt2M = file.size / 1024 / 1024 < 100;
+            if (!isLt2M) {
+                this.$message.error("上传文件大小不能超过 20MB!");
+                return false;
+            }
+            this.loading = true;
+            if (this.fileInfo.urlType == "onlineExcel") {
+                query.append("folderId", this.filenowFolder.functionCode ? this.filenowFolder.functionCode : '');
+            }
+            this.num++;
+            let _this = this;
+            this.$http({
+                url: this.fileInfo.url,
+                method: "post",
+                headers: {
+                    "Content-Type": "application/json",
+                },
+                data: query,
+            }).then((res) => {
+                this.$refs["upload"].clearFiles();
+                if (res.data.result == 0) {
+                    _this.$message({
+                        message: res.data.desc,
+                        type: "success",
+                    });
+                } else if (res.data.result == 1) {
+                    _this.$message({
+                        message: res.data.desc,
+                        type: "error",
+                    });
+                } else if (res.data.result == 2) {
+                    _this.$message({
+                        message: res.data.desc,
+                        type: "warning",
+                    });
+                } else if (res.data.result == 3) {
+                    _this.$message({
+                        message: res.data.desc,
+                        type: "info",
+                    });
+                } else {
+                    _this.$message({
+                        message: res.data.desc,
+                        type: "success",
+                    });
+                }
+                this.num--;
+                if (this.num == 0) {
+                    this.loading = false;
+                }
+                this.$emit("uploadBack", this.attList);
+                return true;
+            }).catch((res) => {
+                this.$message({
+                    message: file.name + "上传失败",
+                    type: "error",
+                });
+                this.num--;
+                if (this.num == 0) {
+                    this.loading = false;
+                }
+                for (let i = 0; i < this.$refs["upload"].uploadFiles.length; i++) {
+                    if (file.name == this.$refs["upload"].uploadFiles[i].name) {
+                        this.$refs["upload"].uploadFiles.splice(i, 1);
+                    }
+                }
+                return false;
+            });
+
+        },
+    },
+    mounted() { },
+    created() {
+        this.attList = [];
+        console.log(this.fileList);
+        if (this.fileList) {
+            for (let i = 0; i < this.fileList.length; i++) {
+                this.attList.push({
+                    id: this.fileList[i].id,
+                    name: this.fileList[i].fileName,
+                    fileCode: this.fileList[i].fileCode,
+                    opName: this.fileList[i].opName,
+                    opNo: this.fileList[i].opNo,
+                    opTime: this.fileList[i].opTime,
+                    attchFileId: this.fileList[i].attchFileId,
+                    type: this.fileList[i].type,
+                })
+            }
+        }
+
+        console.log(this.attList);
+    },
+    watch: {
+        fileList() {
+            this.attList = [];
+            for (let i = 0; i < this.fileList.length; i++) {
+                this.attList.push({
+                    id: this.fileList[i].id,
+                    name: this.fileList[i].fileName,
+                    fileCode: this.fileList[i].fileCode,
+                    opName: this.fileList[i].opName,
+                    opNo: this.fileList[i].opNo,
+                    opTime: this.fileList[i].opTime,
+                    attchFileId: this.fileList[i].attchFileId,
+                    type: this.fileList[i].type,
+                });
+            }
+        },
+    },
+};
+</script>
+<style lang="scss" scoped>
+::v-deep .el-upload-dragger {
+    height: 120px !important;
+    border: none;
+}
+
+::v-deep .el-upload {
+    padding: 0px;
+}
+</style>
+  

+ 1 - 4
src/pages/main/accountPermissions/accountdel.vue

@@ -65,7 +65,7 @@
                     </el-form-item>
                 </div>
                 <div class="flex-header">
-                    <el-form-item label="4A主账号:" prop="mainAccount4a">
+                    <el-form-item label="4A主账号:" >
                         <el-input v-model="fromList.mainAccount4a" :disabled="disabled"></el-input>
                     </el-form-item>
                 </div>
@@ -220,9 +220,6 @@ export default {
                 deletionReason: [
                     { required: true, message: "请添加删除原因", trigger: "blur" },
                 ],
-                mainAccount4a: [
-                    { required: true, message: "请添加4A主账号", trigger: "blur" },
-                ],
                 crmAccount: [
                     { required: true, message: "请添加CRM账号", trigger: "blur" },
                 ],

+ 1 - 1
src/pages/main/firewall/index.vue

@@ -710,7 +710,7 @@ export default {
             });
         },
         setForm(e) {
-            this.request_form.title = '[工作台]-防火墙策略-' + this.$refs.formTable.form.needName;
+            this.request_form.title = '[IT工作台]-防火墙策略-' + this.$refs.formTable.form.needName;
             this.$http({
                 url: "/market/fhqProcess/add",
                 method: "post",

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1039 - 0
src/pages/main/fullcalendar/calendarZQ.vue


+ 1 - 0
src/pages/main/funcInit/manageLnit.vue

@@ -68,6 +68,7 @@
                             placeholder="分组名称">
                             <el-option value="default" label="默认"> </el-option>
 					        <el-option value="IT" label="信息中心"> </el-option>
+					        <el-option value="ZQ" label="政企"> </el-option>
                         </el-select>
                     </el-form-item>
                     <el-form-item v-if="type != '1'" prop="lineId">

+ 155 - 155
src/pages/main/iptv/uploadDown.vue

@@ -1,196 +1,196 @@
 <template>
     <div class="back-box">
         <div v-for="item in infolist" :key="item.id" @click="downcheck(item)">
-            <i class="iconfont icon-word" v-if="item.type==='word'"></i>
-            <i class="iconfont icon-excel" v-if="item.type==='excel'"></i>
-            <i class="iconfont icon-ppt" v-if="item.type==='ppt'"></i>
-            <i class="iconfont icon-wenjian" v-if="item.type==='wenjian'"></i>
-            <i class="el-icon-picture" v-if="item.type==='png'"></i>
+            <i class="iconfont icon-word" v-if="item.type === 'word'"></i>
+            <i class="iconfont icon-excel" v-if="item.type === 'excel'"></i>
+            <i class="iconfont icon-ppt" v-if="item.type === 'ppt'"></i>
+            <i class="iconfont icon-wenjian" v-if="item.type === 'wenjian'"></i>
+            <i class="el-icon-picture" v-if="item.type === 'png'"></i>
             <el-tooltip class="item" effect="dark" :content="item.fileName" placement="right" :enterable="false">
-                <span class="tab-long">{{item.fileName}}</span>
+                <span class="tab-long">{{ item.fileName }}</span>
             </el-tooltip>
-            <div class="seedown" v-if="datalist.type===2">
+            <div class="seedown" v-if="datalist.type === 2">
                 <a @click="uploaddown(item)">下载</a>
             </div>
         </div>
-        <div class="if-box-top" v-if="ifrshow" @keyup.esc="ifrshow=false">
-            <i class="el-icon-close" @click="ifrshow=false"></i>
-            <iframe
-                height="100%"
-                width="100%"
-                :src="srcsc">
+        <div class="if-box-top" v-if="ifrshow" @keyup.esc="ifrshow = false">
+            <i class="el-icon-close" @click="ifrshow = false"></i>
+            <iframe height="100%" width="100%" :src="srcsc">
             </iframe>
         </div>
     </div>
 </template>
 <script>
-    export default {
-        props: ['datalist', 'dialogStatus'],
-        data() {
-            return {
-                infolist: [],
-                status: false,
-                srcsc: '',
-                ifrshow:false,
+import getConfig from '../../../config/dev.js'
+export default {
+    props: ['datalist', 'dialogStatus'],
+    data() {
+        return {
+            infolist: [],
+            status: false,
+            srcsc: '',
+            ifrshow: false,
+        }
+    },
+    methods: {
+        downcheck(v) {
+            if (this.datalist.type === 1) {
+                this.uploaddown(v);
             }
         },
-        methods: {
-            downcheck(v) {
-                if (this.datalist.type === 1) {
-                    this.uploaddown(v);
+        uploadsee(v) {
+            let url = encodeURIComponent(Base64.encode(v.callPath));
+            this.srcsc = getConfig().KNOWLEDGE_URL + '/onlinePreview?url=' + url;
+            this.ifrshow = true;
+            // window.open('http://114.215.71.182:8012/onlinePreview?url=' + url);
+        },
+        //下载e
+        uploaddown(v) {
+            let fileData = v;
+            this.$http({
+                url: this.datalist.url,
+                method: "post",
+                headers: {
+                    "Content-Type": "application/json",
+                },
+                responseType: "blob",
+                data: { "id": fileData.id, "fileName": fileData.fileName },
+            }).then((response) => {
+                if (window.navigator && window.navigator.msSaveOrOpenBlob) {
+                    let blob = new Blob([response.data], {
+                        type: 'application/vnd.ms-excel'
+                    });
+                    window.navigator.msSaveOrOpenBlob(blob, fileData.fileName);
+                } else {
+                    /* 火狐谷歌的文件下载方式 */
+                    var blob = new Blob([response.data])
+                    var downloadElement = document.createElement('a')
+                    var href = window.URL.createObjectURL(blob);
+                    downloadElement.href = href;
+                    downloadElement.download = fileData.fileName;
+                    document.body.appendChild(downloadElement);
+                    downloadElement.click();
+                    document.body.removeChild(downloadElement);
+                    window.URL.revokeObjectURL(href);
                 }
-            },
-            uploadsee(v) {
-                let url = encodeURIComponent(Base64.encode(v.callPath));
-            this.srcsc = 'http://10.230.15.228:8012/onlinePreview?url=' + url;
-                this.ifrshow=true;
-                // window.open('http://114.215.71.182:8012/onlinePreview?url=' + url);
-            },
-            //下载e
-            uploaddown(v) {
-                let fileData = v;
-                this.$http({
-                    url: this.datalist.url,
-                    method: "post",
-                    headers: {
-                        "Content-Type": "application/json",
-                    },
-                    responseType: "blob",
-                    data: {"id": fileData.id, "fileName": fileData.fileName},
-                }).then((response) => {
-                    if (window.navigator && window.navigator.msSaveOrOpenBlob) {
-                        let blob = new Blob([response.data], {
-                            type: 'application/vnd.ms-excel'
-                        });
-                        window.navigator.msSaveOrOpenBlob(blob, fileData.fileName);
+            });
+        },
+        dataHandle() {
+            this.infolist = this.datalist.attList;
+            if (this.infolist) {
+                for (let i = 0; i < this.infolist.length; i++) {
+                    let f = this.infolist[i].fileName.split(".");
+                    let type = f[f.length - 1];
+                    if (type === 'doc' || type === 'docx') {
+                        this.infolist[i].type = 'word';
+                    } else if (type === 'ppt') {
+                        this.infolist[i].type = 'ppt';
+                    } else if (type === 'xlsx' || type === 'xls') {
+                        this.infolist[i].type = 'excel';
+                    } else if (type === 'png' || type === 'jpg' || type === 'svg' || type === 'gif' || type === 'psd') {
+                        this.infolist[i].type = 'png';
                     } else {
-                        /* 火狐谷歌的文件下载方式 */
-                        var blob = new Blob([response.data])
-                        var downloadElement = document.createElement('a')
-                        var href = window.URL.createObjectURL(blob);
-                        downloadElement.href = href;
-                        downloadElement.download = fileData.fileName;
-                        document.body.appendChild(downloadElement);
-                        downloadElement.click();
-                        document.body.removeChild(downloadElement);
-                        window.URL.revokeObjectURL(href);
-                    }
-                });
-            },
-            dataHandle() {
-                this.infolist = this.datalist.attList;
-                if (this.infolist) {
-                    for (let i = 0; i < this.infolist.length; i++) {
-                        let f = this.infolist[i].fileName.split(".");
-                        let type = f[f.length - 1];
-                        if (type === 'doc' || type === 'docx') {
-                            this.infolist[i].type = 'word';
-                        } else if (type === 'ppt') {
-                            this.infolist[i].type = 'ppt';
-                        } else if (type === 'xlsx' || type === 'xls') {
-                            this.infolist[i].type = 'excel';
-                        } else if (type === 'png' || type === 'jpg' || type === 'svg' || type === 'gif' || type === 'psd') {
-                            this.infolist[i].type = 'png';
-                        } else {
-                            this.infolist[i].type = 'wenjian';
-                        }
+                        this.infolist[i].type = 'wenjian';
                     }
                 }
             }
-        },
-        mounted() {
+        }
+    },
+    mounted() {
 
-        },
-        created() {
-            this.dataHandle();
-        },
-        watch: {
-            dialogStatus() {
-                this.$forceUpdate()
-                let _this = this;
-                _this.dataHandle();
-            }
+    },
+    created() {
+        this.dataHandle();
+    },
+    watch: {
+        dialogStatus() {
+            this.$forceUpdate()
+            let _this = this;
+            _this.dataHandle();
         }
     }
+}
 </script>
 <style scoped lang="scss">
-    .if-box-top{
-        background: #fff;
-        width: 80vw;
-        height: 80vh;
-        margin-top: 10vh;
-        margin-left: 10vw;
-    }
+.if-box-top {
+    background: #fff;
+    width: 80vw;
+    height: 80vh;
+    margin-top: 10vh;
+    margin-left: 10vw;
+}
 
-    .iconfont {
-        font-size: 42px;
-    }
+.iconfont {
+    font-size: 42px;
+}
 
-    .icon-excel {
-        color: #67DB63;
-    }
+.icon-excel {
+    color: #67DB63;
+}
 
-    .icon-word {
-        color: #FF654E;
-    }
+.icon-word {
+    color: #FF654E;
+}
 
-    .icon-ppt {
-        color: #FF8943;
-    }
+.icon-ppt {
+    color: #FF8943;
+}
 
-    .icon-wenjian {
-        color: #ccc;
-    }
+.icon-wenjian {
+    color: #ccc;
+}
 
-    .el-icon-picture {
-        font-size: 36px;
-        color: #ccc;
-        background: #fff;
-        padding: 4px 2px;
-        margin-bottom: 2px;
-        border-radius: 3px;
-    }
+.el-icon-picture {
+    font-size: 36px;
+    color: #ccc;
+    background: #fff;
+    padding: 4px 2px;
+    margin-bottom: 2px;
+    border-radius: 3px;
+}
 
-    .back-box {
-        margin-top: 20px;
-        background: #F2F2F2;
-        padding: 20px;
+.back-box {
+    margin-top: 20px;
+    background: #F2F2F2;
+    padding: 20px;
 
-        div {
-            display: inline-block;
-            text-align: center;
-            margin-right: 20px;
-            cursor: pointer;
+    div {
+        display: inline-block;
+        text-align: center;
+        margin-right: 20px;
+        cursor: pointer;
 
-            span {
-                display: block;
-                width: 80px;
-                overflow: hidden;
-                padding-top: 5px;
-                margin: 0 10px;
-                overflow: hidden;
-                text-overflow: ellipsis;
-                display: -webkit-box; /* 将对象作为弹性伸缩盒子模型显示 */
-                -webkit-line-clamp: 1; /* 控制最多显示几行 */
-                -webkit-box-orient: vertical; /* 设置或检索伸缩盒对象的子元素的排列方式 */
-            }
+        span {
+            display: block;
+            width: 80px;
+            overflow: hidden;
+            padding-top: 5px;
+            margin: 0 10px;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            display: -webkit-box;
+            /* 将对象作为弹性伸缩盒子模型显示 */
+            -webkit-line-clamp: 1;
+            /* 控制最多显示几行 */
+            -webkit-box-orient: vertical;
+            /* 设置或检索伸缩盒对象的子元素的排列方式 */
         }
+    }
 
-        .seedown {
-            margin: 0;
-            margin-top: 5px;
+    .seedown {
+        margin: 0;
+        margin-top: 5px;
 
-            a {
-                font-size: 12px;
-                padding: 2px 5px;
-                border: 1px solid transparent;
-                color: #999;
-            }
+        a {
+            font-size: 12px;
+            padding: 2px 5px;
+            border: 1px solid transparent;
+            color: #999;
+        }
 
-            a:hover {
-                color: #0b82ff;
-            }
+        a:hover {
+            color: #0b82ff;
         }
     }
-
+}
 </style>

+ 1 - 1
src/pages/main/itknowledgetop/addKnowledge.vue

@@ -131,7 +131,7 @@ export default {
       knowledgeType: [],
       fileInfo: {
         limit: 5,
-        url: "/market/cknowledgenetatt/upload",
+        url: "/market/waf/uploadByMinio",
         fileList: [],
       },
     };

+ 2 - 2
src/pages/main/itknowledgetop/copyIndex.vue

@@ -192,7 +192,7 @@
                 tooltit: '知识库管理',
                 fileInfo: {
                     limit: 5,
-                    url: '/market/cknowledgeatt/upload',
+                    url: "/market/waf/uploadByMinio",
                     fileList: []
                 },
                 fullscreen: false,
@@ -217,7 +217,7 @@
                 visibleList: [],
                 attList: [],
                 datalist: {
-                    url: '/market/compatt/downfile',
+                    url: '/market/waf/downFileByMinio',
                     type: 1
                 },
                 uploadstatus: false,

+ 2 - 2
src/pages/main/itknowledgetop/knowledgeExamine.vue

@@ -164,7 +164,7 @@
                 tooltit: '知识库审核',
                 fileInfo: {
                     limit: 5,
-                    url: '/market/cknowledgenetatt/upload',
+                    url: "/market/waf/uploadByMinio",
                     fileList: []
                 },
                 fullscreen: false,
@@ -188,7 +188,7 @@
                 visibleList: [],
                 attList: [],
                 datalist: {
-                    url: '/market/compatt/downfile',
+                    url: '/market/waf/downFileByMinio',
                     type: 1
                 },
                 uploadstatus: false,

+ 2 - 2
src/pages/main/itknowledgetop/knowledgeManagement.vue

@@ -394,7 +394,7 @@ export default {
       tooltit: "知识库管理",
       fileInfo: {
         limit: 5,
-        url: "/market/cknowledgeatt/upload",
+        url: "/market/waf/uploadByMinio",
         fileList: [],
       },
       total: 0,
@@ -451,7 +451,7 @@ export default {
       loading: false,
       loadinged: false,
       datalist: {
-        url: "/market/compatt/downfile",
+        url: '/market/waf/downFileByMinio',
         type: 2,
       },
     };

+ 1 - 1
src/pages/main/knowledgetop/addKnowledge.vue

@@ -131,7 +131,7 @@ export default {
       knowledgeType: [],
       fileInfo: {
         limit: 5,
-        url: "/market/cknowledgeatt/upload",
+        url: "/market/waf/uploadByMinio",
         fileList: [],
       },
     };

+ 2 - 2
src/pages/main/knowledgetop/copyIndex.vue

@@ -192,7 +192,7 @@
                 tooltit: '知识库管理',
                 fileInfo: {
                     limit: 5,
-                    url: '/market/cknowledgeatt/upload',
+                    url: "/market/waf/uploadByMinio",
                     fileList: []
                 },
                 fullscreen: false,
@@ -217,7 +217,7 @@
                 visibleList: [],
                 attList: [],
                 datalist: {
-                    url: '/market/compatt/downfile',
+                    url: '/market/waf/downFileByMinio',
                     type: 1
                 },
                 uploadstatus: false,

+ 2 - 2
src/pages/main/knowledgetop/knowledgeExamine.vue

@@ -164,7 +164,7 @@
                 tooltit: '知识库审核',
                 fileInfo: {
                     limit: 5,
-                    url: '/market/cknowledgeatt/upload',
+                    url: "/market/waf/uploadByMinio",
                     fileList: []
                 },
                 fullscreen: false,
@@ -188,7 +188,7 @@
                 visibleList: [],
                 attList: [],
                 datalist: {
-                    url: '/market/compatt/downfile',
+                    url: '/market/waf/downFileByMinio',
                     type: 1
                 },
                 uploadstatus: false,

+ 2 - 2
src/pages/main/knowledgetop/knowledgeManagement.vue

@@ -394,7 +394,7 @@ export default {
       tooltit: "知识库管理",
       fileInfo: {
         limit: 5,
-        url: "/market/cknowledgeatt/upload",
+        url: "/market/waf/uploadByMinio",
         fileList: [],
       },
       total: 0,
@@ -451,7 +451,7 @@ export default {
       loading: false,
       loadinged: false,
       datalist: {
-        url: "/market/compatt/downfile",
+        url: '/market/waf/downFileByMinio',
         type: 2,
       },
     };

+ 35 - 35
src/pages/main/leader/index.vue

@@ -6,19 +6,22 @@
           <el-row>
             <el-col :span="5">
               <div
-                style="background-color: #fff;height:280px;margin: 10px;border-radius: 10px;padding: 25px 5px 5px 5px;">
+                style="background-color: #fff;height:280px;margin: 10px 10px 0px 0px;border-radius: 10px;padding: 25px 5px 5px 5px;">
                 <div class="leaderuser"> 你好,{{ username }}</div>
                 <div class="usericon"><i class="el-icon-phone"></i>:{{ phone }}</div>
                 <div class="usericon"><i class="el-icon-user-solid"></i>:{{ userdept }}</div>
               </div>
             </el-col>
-            <el-col :span="13">
-              <div v-if="status">
+            <el-col :span="13" style="padding-right: 8px">
+              <div v-if="indexstatus == 'IT'">
                 <rli></rli>
               </div>
-              <div v-else>
+              <div v-if="indexstatus == 'default'">
                 <rlinet></rlinet>
               </div>
+              <div v-if="indexstatus == 'ZQ'">
+                <rliZQ></rliZQ>
+              </div>
             </el-col>
             <el-col :span="6">
               <div class="car-line-knowledge">
@@ -47,22 +50,22 @@
           </el-row>
           <el-row>
           </el-row>
-          <el-row type="flex" v-if="status">
+          <el-row type="flex" v-if="indexstatus == 'default'">
             <el-col :span="18">
-                <el-row style="background-color:#fff ;margin: 10px 0px; border-radius: 5px">
-                  <leaderTag :dynamicTags="dynamicTags"></leaderTag>
-                </el-row>
-                <el-row style="margin-top: 10px;">
-                  <hometask></hometask>
-                </el-row>
+              <el-row style="background-color:#fff ;margin: 10px 0px; border-radius: 10px">
+                <leaderTag :dynamicTags="dynamicTags"></leaderTag>
+              </el-row>
+              <el-row style="margin-top: 10px;">
+                <hometask></hometask>
+              </el-row>
             </el-col>
             <el-col :span="6" style="background: #fafafa;border-radius: 10px;margin: 10px 0px 0px 10px;">
               <numberhits :numHits="numHits" :numHits1="numHits1"></numberhits>
             </el-col>
             <div style="clear:both;"></div>
           </el-row>
-          <el-row v-if="!status">
-            <el-col :span="24" style="background: #fff; margin-top: 10px; border-radius: 5px">
+          <el-row v-else>
+            <el-col :span="24" style="background: #fff; margin-top: 10px; border-radius: 10px">
               <leaderTag :dynamicTags="dynamicTags"></leaderTag>
             </el-col>
             <el-col :span="24">
@@ -96,6 +99,7 @@ import numberhits from "./numberHits.vue";
 import leaderTag from "./leaderTag.vue";
 import rli from "./rli.vue";
 import rlinet from "./rlinet.vue";
+import rliZQ from "./rliZQ.vue";
 import notiCheck from "../../../components/notiCheck.vue";
 import uploadDown from "../../../components/uploadDown";
 
@@ -107,13 +111,14 @@ export default {
     leaderTag,
     rli,
     rlinet,
+    rliZQ,
     notiCheck,
     uploadDown,
   },
   data() {
     return {
       noticeData: [], // 公告数据源
-      status: true,
+      indexstatus: '',
       dynamicTags: [], //已添加的常用功能
       numHits: [], //点击率排行
       numHits1: [],
@@ -127,21 +132,6 @@ export default {
     };
   },
   methods: {
-    //获取员工信息
-    getpeo() {
-      this.$http({
-        url: "/sysmgr/csysdept/queryGroupListByLoginNo",
-        method: "post",
-        headers: {
-          "Content-Type": "application/json",
-        },
-        data: {},
-      }).then((res) => {
-        if (res.data[0].parentorgid === "00440063000000000000") {
-          this.status = false;
-        }
-      });
-    },
     //获取公告  分部门展示
     getNotice() {
       this.$http({
@@ -149,7 +139,7 @@ export default {
         method: "post",
         headers: {
           "Content-Type": "application/json",
-          page: '{"pageNo":"' + 1 + '","pageSize":"10"}',
+          page: '{"pageNo":"' + 1 + '","pageSize":"5"}',
         },
         data: {
           sts: 2,
@@ -207,6 +197,7 @@ export default {
       });
     },
     //获取部门,电话
+    //获取员工信息
     getuser() {
       this.$http({
         url: "/market/tygdProProcess/getPhone",
@@ -225,7 +216,6 @@ export default {
         },
         data: {},
       }).then((res) => {
-        // this.userdept=res.data[0].description
         let a = res.data[0].description.split('/')
         if (a.length == 3) {
           this.dept = a[1]
@@ -290,12 +280,23 @@ export default {
     },
   },
   mounted() {
-    this.getpeo();
+    this.getuser();
     this.getNotice();
     this.getTags();
     this.getnumberHit();
-    this.getuser();
   },
+  created() {
+    this.$http({
+      url: "/market/cmkline/queryMkLineGroupNameInfo",
+      method: "post",
+      headers: {
+        "Content-Type": "application/json",
+      },
+      data: {},
+    }).then((res) => {
+      this.indexstatus = res.data.groupName;
+    });
+  }
 };
 </script>
 
@@ -370,8 +371,7 @@ export default {
   min-height: 280px;
   max-height: 280px;
   background: #fff;
-  margin: 10px 0 0 0;
-  margin-left: 10px;
+  margin: 10px 0px 0px 2px;
   border-radius: 10px;
   overflow-y: auto;
 

+ 1 - 1
src/pages/main/leader/leaderTag.vue

@@ -246,7 +246,7 @@ svg {
   margin-bottom: 10px;
   // padding: 10px 0;
   padding-left: 10px;
-  border-radius: 5px;
+  border-radius: 10px;
 
   .numboxx {
     border-bottom: 1px solid #e1e1e1;

+ 255 - 346
src/pages/main/leader/leaderhomeTask.vue

@@ -2,29 +2,26 @@
   <div style="display: flex; justify-content: space-between">
     <div class="taskbox">
       <div class="tit">
-        <span class="span1" @click="tabboxclick1">我的待办 ({{ this.daitotal }})</span>
-        <span class="span2" @click="tabboxclick2">我的已办</span>
-        <span class="span3" @click="tabboxclick3">我的发起</span>
+        <span class="span span1" @click="tabboxclick(0)">我的待办 ({{ this.daitotal }})</span>
+        <span class="span" @click="tabboxclick(1)">我的已办</span>
+        <span class="span" @click="tabboxclick(2)">我的发起</span>
         <!-- <span class="span" @click="more">更多>></span> -->
       </div>
       <div class="fatherbox">
         <div class="tabbox">
           <!-- 我的待办列表 -->
           <el-table :header-cell-style="{
-            background: '#F2F2F2',
-            'text-align': 'center',
-          }" :cell-style="{ background: '#FaFaFa' }" v-if="tabbox1" class="com-table" ref="multipleTable"
+              background: '#F2F2F2',
+              'text-align': 'center',
+            }" :cell-style="{ background: '#FaFaFa' }" v-if="tabbox == 0" class="com-table" ref="multipleTable"
             :data="niticList" tooltip-effect="dark" size="small"
-            style="width: 100%; font-size: 16px; background: '#FaFaFa'" height="242px">
+            style="width: 100%; font-size: 16px; background: '#FaFaFa'" height="242px" v-loading="loading0">
             <el-table-column prop="woTitle" label="工单标题" align="left" :show-overflow-tooltip="true">
               <template slot-scope="scope">
-                <span :title="scope.row.woTitle" @click="RowTitle(scope.row)" :style="
-                  scope.row.woTypeDesc == '预警工单'
+                <span :title="scope.row.woTitle" @click="RowTitle(scope.row)" :style="scope.row.woTypeDesc == '预警工单'
                     ? 'cursor: pointer;color:red;'
                     : 'cursor: pointer;color:blue;'
-                ">
-                  <!-- <span style="float: left; color: #afb2d8;margin-right:5px"
-                  >•</span> -->
+                  ">
                   {{ scope.row.woTitle }}
                 </span>
               </template>
@@ -32,7 +29,7 @@
             <el-table-column prop="procName" label="流程名称" align="center" width="180" :show-overflow-tooltip="true">
               <template slot-scope="scope">
                 <span :title="scope.row.procName">{{
-                    scope.row.procName
+                  scope.row.procName
                 }}</span>
               </template>
             </el-table-column>
@@ -53,44 +50,37 @@
                 <span>{{ scope.row.opName }}</span>
               </template>
             </el-table-column>
-            <el-table-column prop="createTime" label="发起时间" align="center" width="130" :show-overflow-tooltip="true">
+            <el-table-column prop="createTime" label="发起时间" align="center" width="180" :show-overflow-tooltip="true">
               <template slot-scope="scope">
-                <span  :title="scope.row.createTime">{{ scope.row.createTime }}</span>
+                <span :title="scope.row.createTime">{{ scope.row.createTime }}</span>
               </template>
             </el-table-column>
           </el-table>
-          <!-- <el-pagination class="pageBox" @current-change="currchangeDdaiban" layout="total,prev, pager, next" background
-            page-size="10" :total="totalDaiban" v-if="tabbox1">
-          </el-pagination> -->
           <el-pagination @current-change="currchangeDdaiban" :current-page="daipage" :page-size="daisize"
-            layout="total,prev, pager, next" :total="daitotal" v-if="tabbox1">
+            layout="total,prev, pager, next" :total="daitotal" v-if="tabbox == 0">
           </el-pagination>
         </div>
         <div class="tabbox">
           <!-- 我的已办列表 -->
           <el-table :header-cell-style="{
-            background: '#F2F2F2',
-            'text-align': 'center',
-          }" :cell-style="{ background: '#FaFaFa' }" class="com-table" ref="tableDatayj" v-if="tabbox2"
+              background: '#F2F2F2',
+              'text-align': 'center',
+            }" :cell-style="{ background: '#FaFaFa' }" class="com-table" ref="tableDatayj" v-if="tabbox == 1"
             :data="tableDatayj" tooltip-effect="dark" size="small"
-            style="width: 100%; font-size: 16px; background: '#FaFaFa'" height="242px">
+            style="width: 100%; font-size: 16px; background: '#FaFaFa'" height="242px" v-loading="loading1">
             <el-table-column prop="woTitle" label="工单标题" align="left" :show-overflow-tooltip="true">
               <template slot-scope="scope">
-                <!-- <span style="float: left; color: #afb2d8;margin-right:5px"
-                  >•</span
-                > -->
-                <span @click="RowDoneTitle(scope.row)" :title="scope.row.woTitle"
-                  style="cursor: pointer; color: blue">{{ scope.row.woTitle }}</span>
+                <span @click="RowDoneTitle(scope.row)" :title="scope.row.woTitle" style="cursor: pointer; color: blue">{{
+                  scope.row.woTitle }}</span>
               </template>
             </el-table-column>
             <el-table-column prop="procName" label="流程名称" align="center" width="180" :show-overflow-tooltip="true">
               <template slot-scope="scope">
                 <span :title="scope.row.procName">{{
-                    scope.row.procName
+                  scope.row.procName
                 }}</span>
               </template>
             </el-table-column>
-
             <el-table-column prop="opName" label="发起人" align="center" width="120">
               <template slot-scope="scope">
                 <span>{{ scope.row.opName }}</span>
@@ -102,34 +92,27 @@
               </template>
             </el-table-column>
           </el-table>
-          <!-- <el-pagination class="pageBox"  @current-change="currchangeDone"
-            layout="total,prev, pager, next" background :total="totalDone" page-size="10">
-          </el-pagination> -->
           <el-pagination @current-change="currchangeyiban" :current-page="yibanpage" :page-size="yibansize"
-            layout="total,prev, pager, next" :total="yibantotal" v-if="tabbox2">
+            layout="total,prev, pager, next" :total="yibantotal" v-if="tabbox == 1">
           </el-pagination>
         </div>
         <div class="tabbox">
           <!-- 我的发起列表 -->
           <el-table :header-cell-style="{
-            background: '#F2F2F2',
-            'text-align': 'center',
-          }" :cell-style="{ background: '#FaFaFa' }" class="com-table" ref="OpList" :data="OpList" v-if="tabbox3"
-            tooltip-effect="dark" size="small" style="width: 100%; font-size: 16px; background: '#FaFaFa'"
-            height="242px">
+              background: '#F2F2F2',
+              'text-align': 'center',
+            }" :cell-style="{ background: '#FaFaFa' }" class="com-table" ref="OpList" :data="OpList" v-if="tabbox == 2"
+            tooltip-effect="dark" size="small" style="width: 100%; font-size: 16px; background: '#FaFaFa'" height="242px" v-loading="loading2">
             <el-table-column prop="woTitle" label="工单标题" align="left" :show-overflow-tooltip="true">
               <template slot-scope="scope">
-                <!-- <span style="float: left; color: #afb2d8;margin-right:5px"
-                  >•</span
-                > -->
                 <span :title="scope.row.woTitle" @click="RowlaunchTitle(scope.row)"
                   style="cursor: pointer; color: blue">{{ scope.row.woTitle }}</span>
               </template>
             </el-table-column>
-            <el-table-column prop="procName" label="流程名称" align="center" :show-overflow-tooltip="true">
+            <el-table-column prop="procName" label="流程名称" width="180" align="center" :show-overflow-tooltip="true">
               <template slot-scope="scope">
                 <span :title="scope.row.procName">{{
-                    scope.row.procName
+                  scope.row.procName
                 }}</span>
               </template>
             </el-table-column>
@@ -139,33 +122,22 @@
                 <span>{{ scope.row.createTime }}</span>
               </template>
             </el-table-column>
-             <el-table-column 
-              align="center"
-              width="80"
-              label="操作"
-            >
+            <el-table-column align="center" width="80" label="操作">
               <template slot-scope="scope">
-                <el-button
-                  size="mini"
-                  
-                  :disabled="scope.row.flag == '1' ? true : false"
+                <el-button size="mini" :disabled="scope.row.flag == '1' ? true : false"
                   @click="handleEdit(scope.$index, scope.row)">催办</el-button>
-                
               </template>
             </el-table-column>
 
           </el-table>
-          <!-- <el-pagination class="pageBox" @current-change="currchangeOp" layout="total,prev, pager, next" background
-            :total="totalOp" v-if="tabbox3" page-size="10">
-          </el-pagination> -->
           <el-pagination @current-change="currchangefaqi" :current-page="faqipage" :page-size="faqisize"
-            layout="total,prev, pager, next" :total="faqitotal" v-if="tabbox3">
+            layout="total,prev, pager, next" :total="faqitotal" v-if="tabbox == 2">
           </el-pagination>
         </div>
       </div>
       <!-- 查看待办弹窗 -->
-      <el-dialog title="查看" :visible.sync="WorkOrderStatus" width="50%" :close-on-press-escape="false"
-        :show-close="true" :destroy-on-close="true" :modal-append-to-body="false" :close-on-click-modal="false">
+      <el-dialog title="查看" :visible.sync="WorkOrderStatus" width="50%" :close-on-press-escape="false" :show-close="true"
+        :destroy-on-close="true" :modal-append-to-body="false" :close-on-click-modal="false">
         <div>
           <el-form :inline="true" :model="StatusList" class="demo-form-inline">
             <el-form-item label="工单标题">
@@ -233,47 +205,30 @@
         </div>
       </el-dialog>
       <!-- 处理弹窗 -->
-      <el-dialog title="处理" :visible.sync="WorkOrderStatus1" width="40%" :close-on-press-escape="false"
-        :show-close="true" :destroy-on-close="true" :modal-append-to-body="false" :close-on-click-modal="false">
+      <el-dialog title="处理" :visible.sync="WorkOrderStatus1" width="40%" :close-on-press-escape="false" :show-close="true"
+        :destroy-on-close="true" :modal-append-to-body="false" :close-on-click-modal="false">
         <div style="height: 450px">
           <iframe height="100%" width="100%" :src="dialogdiv" frameborder="0"></iframe>
         </div>
       </el-dialog>
       <div>
-      <el-dialog title="有您的催办工单" :visible.sync="dialogTableVisible"  :modal="false" >
-        <el-table :data="gridData">
-          <el-table-column property="woTitle" 
-          label="工单标题" width="625" 
-          show-overflow-tooltip=true 
-           >
-           <template slot-scope="scope">
-                <span 
-                  @click="urgedDeal(scope.row)"
-                  :title="scope.row.woTitle"
-                  style="cursor: pointer; color: blue"
-                  >{{ scope.row.woTitle }}</span
-                >
+        <el-dialog title="有您的催办工单" :visible.sync="dialogTableVisible" :modal="false">
+          <el-table :data="gridData">
+            <el-table-column property="woTitle" label="工单标题" width="625" show-overflow-tooltip=true>
+              <template slot-scope="scope">
+                <span @click="urgedDeal(scope.row)" :title="scope.row.woTitle" style="cursor: pointer; color: blue">{{
+                  scope.row.woTitle }}</span>
               </template>
-           </el-table-column>
-          
-          <el-table-column 
-              align="center"
-              width="100"
-              label="操作"
-            >
-            <!-- <el-form-item> -->
+            </el-table-column>
+
+            <el-table-column align="center" width="100" label="操作">
               <template slot-scope="scope">
-                
-                <el-button
-                  size="mini"
-                  @click="handleEdit1(scope.$index, scope.row)">已阅</el-button>
-                
+                <el-button size="mini" @click="handleEdit1(scope.$index, scope.row)">已阅</el-button>
               </template>
-              <!-- </el-form-item> -->
             </el-table-column>
-        </el-table>
-      </el-dialog>
-    </div>
+          </el-table>
+        </el-dialog>
+      </div>
     </div>
   </div>
 </template>
@@ -284,11 +239,9 @@ export default {
   // props:["tableDatayj","niticList"],
   data() {
     return {
-      gridData:[],//催办列表
+      gridData: [],//催办列表
       dialogTableVisible: false,//催办弹窗是否显示
-      tabbox1: true, //待办
-      tabbox2: false, //已办
-      tabbox3: false, //发起
+      tabbox: 0,//代办已办发起
       niticList: [], //待办列表
       tableDatayj: [], //已办列表
       OpList: [], //我的发起列表
@@ -302,15 +255,8 @@ export default {
       DoneList: [], //我的已办流程节点
       launchList: [], //我的发起流程节点
       urlllll: "", //跳转路由
-      totalDone: 0, //已办分页
-      totalDaiban: 0, //已办分页
-      totalOp: 0, //已办分页
       params: {},
-      pageSize: 1,
-      pagesize: 5,
-      pageSizeDone: 1,
-      pageSizeDdaiban: 1,
-      pageSizeOp: 1,
+      loginNo: '',
       daipage: 1, //第几页
       daisize: 5, //一页多少条
       daitotal: 0, //总条目数
@@ -320,6 +266,9 @@ export default {
       faqipage: 1, //第几页
       faqisize: 5, //一页多少条
       faqitotal: 0, //总条目数
+      loading0:false,
+      loading1:false,
+      loading2:false,
     };
   },
   methods: {
@@ -332,139 +281,139 @@ export default {
     },
     //查看标题按钮按钮
     RowTitle(v) {
-      this.StatusList = v;
+      // this.StatusList = v;
       console.log(v.actionUrl);
-      if (v.taskName) {
-        this.WorkOrderStatus = true;
-        this.$http({
-          url: "/market/cwo/queryProcStepByWono",
-          method: "post",
-          headers: {
-            "Content-Type": "application/json",
-          },
-          data: {
-            woNo: v.woNo,
-          },
-        }).then((res) => {
-          this.WorkOrderList = res.data;
-        });
-        this.$http({
-          url: "/market/cwo/redirectDealPage",
-          method: "post",
-          headers: {
-            "Content-Type": "application/json",
-          },
-          data: {
-            procId: v.procId,
-          },
-        }).then((res) => {
-          this.urlllll = res.data[0].jspUrl;
-          // console.log(this.urlllll)
-          // if(this.urlllll=="#"){
-          //   this.urlllll=res.data[1].jspUrl
-          // }
-          console.log(this.urlllll);
-        });
-      } else {
-        this.$router.push(v.actionUrl);
-      }
+      // if (v.taskName) {
+      //   this.WorkOrderStatus = true;
+      //   this.$http({
+      //     url: "/market/cwo/queryProcStepByWono",
+      //     method: "post",
+      //     headers: {
+      //       "Content-Type": "application/json",
+      //     },
+      //     data: {
+      //       woNo: v.woNo,
+      //     },
+      //   }).then((res) => {
+      //     this.WorkOrderList = res.data;
+      //   });
+      //   this.$http({
+      //     url: "/market/cwo/redirectDealPage",
+      //     method: "post",
+      //     headers: {
+      //       "Content-Type": "application/json",
+      //     },
+      //     data: {
+      //       procId: v.procId,
+      //     },
+      //   }).then((res) => {
+      //     this.urlllll = res.data[0].jspUrl;
+      //     // console.log(this.urlllll)
+      //     // if(this.urlllll=="#"){
+      //     //   this.urlllll=res.data[1].jspUrl
+      //     // }
+      //     console.log(this.urlllll);
+      //   });
+      // } else {
+      this.$router.push(v.actionUrl);
+      // }
     },
     //我的已办查看按钮
     RowDoneTitle(v) {
-      this.StatusList = v;
+      // this.StatusList = v;
       console.log(v.actionUrl);
-      if (v.taskName) {
-        this.DoneStatus = true;
-        this.$http({
-          url: "/market/cwo/queryProcStepByWono",
-          method: "post",
-          headers: {
-            "Content-Type": "application/json",
-          },
-          data: {
-            woNo: v.woNo,
-          },
-        }).then((res) => {
-          this.DoneList = res.data;
-        });
-        this.$http({
-          url: "/market/cwo/redirectDealPage",
-          method: "post",
-          headers: {
-            "Content-Type": "application/json",
-          },
-          data: {
-            procId: v.procId,
-          },
-        }).then((res) => {
-          this.urlllll = res.data[0].jspUrl;
-          // console.log(this.urlllll)
-          // if(this.urlllll=="#"){
-          //   this.urlllll=res.data[1].jspUrl
-          // }
-          console.log(this.urlllll);
-        });
-      } else {
-        this.$router.push(v.actionUrl);
-      }
+      // if (v.taskName) {
+      //   this.DoneStatus = true;
+      //   this.$http({
+      //     url: "/market/cwo/queryProcStepByWono",
+      //     method: "post",
+      //     headers: {
+      //       "Content-Type": "application/json",
+      //     },
+      //     data: {
+      //       woNo: v.woNo,
+      //     },
+      //   }).then((res) => {
+      //     this.DoneList = res.data;
+      //   });
+      //   this.$http({
+      //     url: "/market/cwo/redirectDealPage",
+      //     method: "post",
+      //     headers: {
+      //       "Content-Type": "application/json",
+      //     },
+      //     data: {
+      //       procId: v.procId,
+      //     },
+      //   }).then((res) => {
+      //     this.urlllll = res.data[0].jspUrl;
+      //     // console.log(this.urlllll)
+      //     // if(this.urlllll=="#"){
+      //     //   this.urlllll=res.data[1].jspUrl
+      //     // }
+      //     console.log(this.urlllll);
+      //   });
+      // } else {
+      this.$router.push(v.actionUrl);
+      // }
     },
 
     //我的发起查看按钮
     RowlaunchTitle(v) {
-      this.StatusList = v;
+      // this.StatusList = v;
       console.log(v.actionUrl);
-      if (v.taskName) {
-        this.launchStatus = true;
-        this.$http({
-          url: "/market/cwo/queryProcStepByWono",
-          method: "post",
-          headers: {
-            "Content-Type": "application/json",
-          },
-          data: {
-            woNo: v.woNo,
-          },
-        }).then((res) => {
-          this.launchList = res.data;
-        });
-      } else {
-        this.$router.push(v.actionUrl);
-      }
+      // if (v.taskName) {
+      //   this.launchStatus = true;
+      //   this.$http({
+      //     url: "/market/cwo/queryProcStepByWono",
+      //     method: "post",
+      //     headers: {
+      //       "Content-Type": "application/json",
+      //     },
+      //     data: {
+      //       woNo: v.woNo,
+      //     },
+      //   }).then((res) => {
+      //     this.launchList = res.data;
+      //   });
+      // } else {
+      this.$router.push(v.actionUrl);
+      // }
+    },
+    //催办按钮
+    handleEdit(index, row) {
+      this.open(row);
+
+    },
+    //已阅按钮
+    handleEdit1(index, row) {
+      this.haveRead(row);   //点已阅后返回数据给后台
+
     },
-     //催办按钮
-     handleEdit(index, row) {
-        this.open(row);
-  
-      },
-      //已阅按钮
-     handleEdit1(index, row) {
-        this.haveRead(row);   //点已阅后返回数据给后台
-        
-      },
-      
+
     //催办按钮弹窗
     open(row) {
-        this.$confirm('催办此条工单, 是否继续?', '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }).then(() => {
-          this.urgedDeal(row);
-          
-          this.$message({
-            type: 'success',
-            message: '催办成功!'
-          });
-        }).catch(() => {
-          this.$message({
-            type: 'info',
-            message: '已取消催办'
-          });          
+      this.$confirm('催办此条工单, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.urgedDeal(row);
+
+        this.$message({
+          type: 'success',
+          message: '催办成功!'
         });
-      },
-     
-     //催办向后台返回数据
-     urgedDeal(row) {
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消催办'
+        });
+      });
+    },
+
+    //催办向后台返回数据
+    urgedDeal(row) {
       let list = {}
       list.id = row.id;
       list.woNo = row.woNo;
@@ -473,20 +422,20 @@ export default {
       list.nextName = row.assigneeName;
       list.sts = row.sts;
       list.actionUrl = row.actionUrl;
-      console.log(row); 
-        this.$http({
+      console.log(row);
+      this.$http({
         url: "/market/remind/add",
         method: "post",
         headers: {
           "Content-Type": "application/json",
-         },
+        },
         data: list,
       }).then((res) => {
-        
+
       });
-     },
-     //已阅向后台返回数据
-     haveRead(row) {
+    },
+    //已阅向后台返回数据
+    haveRead(row) {
       let list = {}
       list.id = row.id;
       list.woNo = row.woNo;
@@ -494,34 +443,34 @@ export default {
       list.nextNo = row.assigneeNo;
       list.nextName = row.assigneeName;
       list.sts = row.sts;
-      console.log(row); 
-        this.$http({
+      console.log(row);
+      this.$http({
         url: "/market/remind/update",
         method: "post",
         headers: {
           "Content-Type": "application/json",
-         },
+        },
         data: list,
       }).then((res) => {
         this.popupWindow();
       });
-     },
+    },
 
-      //接收数据判断是否弹窗
-    popupWindow(){
-       this.$http({
+    //接收数据判断是否弹窗
+    popupWindow() {
+      this.$http({
         url: "/market/remind/queryListByNo",
         method: "post",
         headers: {
           "Content-Type": "application/json",
-         },
-        
+        },
+
       }).then((res) => {
         console.log(res);
         console.log(res.data.length);
-        if(res.data.length == 0){
+        if (res.data.length == 0) {
           this.dialogTableVisible = false;
-        }else{
+        } else {
           this.dialogTableVisible = true;
         }
         this.gridData = res.data
@@ -535,145 +484,112 @@ export default {
 
     //待办列表初始化
     daiban(v, n) {
-      this.pageSizeDdaiban = n;
+      this.loading0=true
       this.$http({
-        url: "/market/cwo/queryQaToDoList",
+        url: "/market/taskToDo/queryPage",
         method: "post",
         headers: {
           "Content-Type": "application/json",
-          page: '{"pageNo":"' + '1' + '","pageSize":"100"}',
+          page: '{"pageNo":"' + n + '","pageSize":"5"}',
+        },
+        data: {
+          nextNo: this.loginNo,
         },
-        data: '{"pageNo":"' + '1' + '","pageSize":"100"}',
       }).then((res) => {
-       // this.niticList = res.data.data;
-       let data = JSON.parse(JSON.stringify(res.data.data))
-        this.niticList = data.splice(
-          (this.daipage - 1) * this.daisize,
-          this.daisize
-        );
-        this.daitotal = res.data.data.length
-        // this.totalDaiban = res.data.totalRecord;
+        this.niticList = res.data.data;
+        this.daitotal = res.data.totalRecord;
+        this.loading0=false
       });
     },
 
     //已办列表初始化
     getListyj(v, n) {
-      this.pageSizeDone = n;
+      this.loading1=true
       let _this = this;
       this.$http({
-        url: "/market/cwo/queryQaFinishList",
+        url: "/market/taskFinish/queryPage",
         method: "post",
         headers: {
           "Content-Type": "application/json",
-          page: '{"pageNo":"' + '1' + '","pageSize":"100"}',
+          page: '{"pageNo":"' + n + '","pageSize":"5"}',
+        },
+        data: {
+          nextNo: this.loginNo,
         },
-        data: '{"pageNo":"' + '1' + '","pageSize":"100"}',
       }).then((res) => {
-         // this.tableDatayj = res.data.data;
-        // this.totalDone = res.data.totalRecord;
-        let data = JSON.parse(JSON.stringify(res.data.data))
-        this.tableDatayj = data.splice(
-          (this.yibanpage - 1) * this.yibansize,
-          this.yibansize
-        );
-        this.yibantotal = res.data.data.length
+        this.tableDatayj = res.data.data;
+        this.yibantotal = res.data.totalRecord;
+        this.loading1=false
       });
     },
     //待办分页
     currchangeDdaiban(val) {
       console.log("翻页,当前为第几页", val);
       this.daipage = val;
-      // this.getTabelData2();
-      // this.pageSizeDdaiban = v;
-      this.daiban(this.params, this.pageSizeDdaiban);
+      this.daiban(this.params, this.daipage);
     },
     //已办分页
     currchangeyiban(val) {
-      // this.pageSizeDone = v;
       this.yibanpage = val;
-      this.getListyj(this.params, this.pageSizeDone);
+      this.getListyj(this.params, this.yibanpage);
     },
     //发起分页
     currchangefaqi(val) {
-      // this.pageSizeOp = v;
       this.faqipage = val;
-      this.getOPlist(this.params, this.pageSizeOp);
+      this.getOPlist(this.params, this.faqipage);
     },
     //我的发起列表初始化
     getOPlist(v, n) {
-      this.pageSizeOp = n;
+      this.loading2=true
       this.$http({
-        url: "/market/cwo/queryOpList",
+        url: "/market/taskCreate/queryPage",
         method: "post",
         headers: {
           "Content-Type": "application/json",
-          page: '{"pageNo":"' + '1' + '","pageSize":"100"}',
+          page: '{"pageNo":"' + n + '","pageSize":"5"}',
+        },
+        data: {
+          opNo: this.loginNo,
         },
-        data: '{"pageNo":"' + '1' + '","pageSize":"100"}',
       }).then((res) => {
-      // this.OpList = res.data.data;
-        // this.totalOp = res.data.totalRecord;
-        let data = JSON.parse(JSON.stringify(res.data.data))
-        this.OpList = data.splice(
-          (this.faqipage - 1) * this.faqisize,
-          this.faqisize
-        );
-        this.faqitotal = res.data.data.length
+        this.OpList = res.data.data;
+        this.faqitotal = res.data.totalRecord;
+        this.loading2=false
       });
     },
-    tabboxclick1() {
-      this.tabbox1 = true;
-      this.tabbox2 = false;
-      this.tabbox3 = false;
-      document.querySelector(".span1").style.color = "blue";
-      document.querySelector(".span2").style.color = "black";
-      document.querySelector(".span2").style.border = 0;
-      document.querySelector(".span1").style.borderBottom = "2px solid blue";
-      document.querySelector(".span3").style.color = "black";
-      document.querySelector(".span3").style.border = 0;
-      document.querySelector(".com-table").style.backgroundColor = "#FaFaFa";
-    },
-    tabboxclick2() {
-      this.tabbox1 = false;
-      this.tabbox2 = true;
-      this.tabbox3 = false;
-      document.querySelector(".com-table").style.backgroundColor = "#FaFaFa";
-      document.querySelector(".span1").style.border = 0;
-      document.querySelector(".span2").style.borderBottom = "2px solid blue";
-      document.querySelector(".span2").style.color = "blue";
-      document.querySelector(".span1").style.color = "black";
-      document.querySelector(".span3").style.color = "black";
-      document.querySelector(".span3").style.border = 0;
-    },
-    tabboxclick3() {
-      this.tabbox1 = false;
-      this.tabbox2 = false;
-      this.tabbox3 = true;
-      document.querySelector(".com-table").style.backgroundColor = "#FaFaFa";
-      document.querySelector(".span1").style.color = "black";
-      document.querySelector(".span2").style.color = "black";
-      document.querySelector(".span1").style.border = 0;
-      document.querySelector(".span2").style.border = 0;
-      document.querySelector(".span3").style.borderBottom = "2px solid blue";
-      document.querySelector(".span3").style.color = "blue";
+    tabboxclick(e) {
+      this.tabbox = e
+      document.querySelectorAll(".tit")[1].childNodes[0].className = 'span'
+      document.querySelectorAll(".tit")[1].childNodes[1].className = 'span'
+      document.querySelectorAll(".tit")[1].childNodes[2].className = 'span'
+      document.querySelectorAll(".tit")[1].childNodes[e].className = 'span span1'
+      if (e == 0) {
+        this.daiban({}, 1);
+      } else if (e == 1) {
+        this.getListyj({}, 1);
+      } else if (e == 2) {
+        this.getOPlist({}, 1);
+      }
     },
   },
   mounted() {
     let list = getConfig()
     console.log(list);
-    
+
     this.daiban({}, 1);
-    this.getListyj({}, 1);
-    this.getOPlist({}, 1);
-    this.userInfo = JSON.parse(window.sessionStorage.userInfo);
   },
   created() {
-     this.popupWindow();
+    this.popupWindow();
+    this.loginNo = JSON.parse(window.sessionStorage.userInfo).loginNo;
   },
 };
 </script>
 
 <style lang="scss" scoped>
+.el-pagination {
+  padding: 10px;
+}
+
 .diobtn {
   position: relative;
   text-align: right;
@@ -696,8 +612,8 @@ export default {
   line-height: 47px;
   padding: 0 20px;
   font-size: 16px;
-  border-top-left-radius: 5px;
-  border-top-right-radius: 5px;
+  border-top-left-radius: 10px;
+  border-top-right-radius: 10px;
   justify-content: space-between;
 
   .com-table {
@@ -705,21 +621,6 @@ export default {
   }
 
   .span {
-    float: right;
-    color: orange;
-  }
-
-  .span1 {
-    display: inline-block;
-    color: blue;
-    text-align: center;
-    height: 46px;
-    font-weight: 900;
-    width: 120px;
-    border-bottom: 2px solid blue;
-  }
-
-  .span2 {
     display: inline-block;
     text-align: center;
     height: 46px;
@@ -727,14 +628,17 @@ export default {
     font-weight: 900;
   }
 
-  .span3 {
+  .span1 {
     display: inline-block;
+    color: blue;
     text-align: center;
     height: 46px;
-    width: 120px;
     font-weight: 900;
+    width: 120px;
+    border-bottom: 2px solid blue;
   }
 
+
   span {
     cursor: pointer;
   }
@@ -774,9 +678,9 @@ export default {
 .fatherbox {
   background: #fafafa;
   padding: 10px;
-  height: 299px;
-  border-bottom-left-radius: 5px;
-  border-bottom-right-radius: 5px;
+  height: 305px;
+  border-bottom-left-radius: 10px;
+  border-bottom-right-radius: 10px;
   width: 100%;
 }
 
@@ -790,6 +694,11 @@ export default {
   background: #fafafa;
 }
 
+::v-deep .el-button--mini,
+.el-button--mini.is-round {
+  padding: 3px !important;
+}
+
 // ::v-deep .el-table--scrollable-y .el-table__body-wrapper {
 //   overflow: hidden;
 // }

+ 8 - 7
src/pages/main/leader/rli.vue

@@ -305,7 +305,7 @@ export default {
     created() {
         // 上面的日历
         this.dateList(this.dateNum);
-        console.log(this.dateRange);
+        // console.log(this.dateRange);
         // 下面的日历
         this.initData();
         this.getList();
@@ -422,7 +422,8 @@ export default {
         },
         //新增会议
         addnewr() {
-            console.log(111);
+            this.form={}
+            // console.log(111);
             this.form.orgId = [];
             this.form.isParty = "";
             this.titleNew = "会议新增";
@@ -635,10 +636,10 @@ export default {
         // 当前选择日期
         pick(date, index) {
             // console.log(date);
-            console.log(index);
+            // console.log(index);
             let days = document.querySelector(".days");
-            console.log(days.childNodes[index].childNodes[0].childNodes);
-            console.log(days.childNodes);
+            // console.log(days.childNodes[index].childNodes[0].childNodes);
+            // console.log(days.childNodes);
             for (var i = 0; i <= 6; i++) {
                 days.childNodes[i].childNodes[0].childNodes[0].className = ''
             }
@@ -667,7 +668,7 @@ export default {
     display: flex;
     flex-direction: column;
     max-height: 161px;
-    overflow-y: scroll;
+    overflow-y: auto;
     padding-left: 20%;
     height: 161px;
     background-color: #d8eaf6;
@@ -676,7 +677,7 @@ export default {
 
 .rlitable2 {
     max-height: 161px;
-    overflow-y: scroll;
+    overflow-y: auto;
     height: 161px;
     background-color: #d8eaf6;
     border-radius: 10px;

+ 826 - 0
src/pages/main/leader/rliZQ.vue

@@ -0,0 +1,826 @@
+<template>
+    <div>
+        <!-- <div class="calendar">
+            <div class="arrow">
+                <i class="el-icon-arrow-left" @click="arrow('left')"></i>
+                <i class="el-icon-arrow-right" @click="arrow('right')"></i>
+            </div>
+            <el-calendar v-model="value" :range="dateRange"></el-calendar>
+        </div> -->
+        <!-- 下面的日历 -->
+        <div class="date">
+            <div class="arrow0">
+                <i class="el-icon-arrow-left" style="font-weight: 900;" @click="weekPre"></i>
+                <i class="el-icon-arrow-right" style="font-weight: 900;" @click="weekNext"></i>
+            </div>
+            <!-- 年份 月份 -->
+            <div class="month">
+                <span style="text-align: left;font-size: 16px;font-weight: 600;position: absolute;left: 20px;">我的日程</span>
+                <p>{{ currentYear }}年{{ currentMonth }}月</p>
+            </div>
+            <!-- 星期 -->
+            <ul class="weekdays">
+                <li>一</li>
+                <li>二</li>
+                <li>三</li>
+                <li>四</li>
+                <li>五</li>
+                <li>六</li>
+                <li>日</li>
+            </ul>
+            <!-- 日期 -->
+            <ul class="days">
+                <li @click="pick(day, index)" v-for="(day, index) in days" :key="index">
+                    <!--本月-->
+                    <span v-if="day.getMonth() + 1 != currentMonth" class="other-month">{{ day.getDate() }}</span>
+                    <span v-else>
+                        <!--今天-->
+                        <span
+                            v-if="day.getFullYear() == new Date().getFullYear() && day.getMonth() == new Date().getMonth() && day.getDate() == new Date().getDate()"
+                            class="active">{{ day.getDate() }}</span>
+                        <span v-else>{{ day.getDate() }}</span>
+                    </span>
+                </li>
+            </ul>
+            <div style="padding: 10px 0px;" @click="addnewr">
+                <div class="rlitable" v-if="tableData.length > 0">
+                    <span v-for="(item, index) in tableData" :key="index"
+                        :style="'color:' + item.textColor + ';padding:12px;display:inline-block;'">
+                        <span @click.stop="handleEventClick(item)" style="cursor:;">{{ item.title }}</span>
+                    </span>
+                </div>
+                <div v-else class="rlitable2">
+                    <div style="padding:10px;text-align: center;">
+                        暂无日程
+                    </div>
+
+                </div>
+            </div>
+            <!-- <el-table v-loading="loading" :data="tableData" style="width: 100%;" height="123">
+                <el-table-column prop="date" label="日期" width="180" align="center">
+                </el-table-column>
+                <el-table-column prop="name" label="姓名" width="180" align="center">
+                </el-table-column>
+                <el-table-column prop="address" label="地址" align="center">
+                </el-table-column>
+            </el-table>
+            <el-pagination @current-change="currchange" :current-page="page" :page-size="size"
+                layout="total,prev, pager, next" :total="total">
+            </el-pagination> -->
+            <!--日程新增弹窗start-->
+            <el-dialog :title="titleNew" :visible.sync="dialogVisible" :before-close="close" :modal="false" width="45%">
+                <el-form :model="form" :rules="rules" ref="form" label-width="120px" size="small" class="demo-ruleForm">
+                    <el-form-item label="日程名称" prop="title">
+                        <el-input v-model="form.title"></el-input>
+                    </el-form-item>
+                    <!-- <el-form-item label="参会角色" prop="orgId">
+                        <el-select v-model="form.orgId" style="width: 70%; overflow: hidden" clearable filterable
+                            placeholder="参会角色" multiple>
+                            <el-option v-for="item in roleNameList" :key="item.userId" :label="item.name"
+                                :value="item.userId">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="是否是党会" prop="isParty">
+                        <el-select v-model="form.isParty" clearable style="width: 70%" filterable placeholder="是否是党会">
+                            <el-option v-for="item in isParrty" :key="item.is_party" :label="item.name"
+                                :value="item.is_party">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="发起科室" prop="leaderName">
+                        <el-input v-model="form.leaderName"></el-input>
+                    </el-form-item> -->
+                    <el-form-item label="日程开始时间" required>
+                        <el-col :span="11">
+                            <el-form-item prop="begindate" style="margin-bottom: 0">
+                                <el-date-picker type="date" disabled format="yyyy-MM-dd" value-format="yyyy-MM-dd"
+                                    placeholder="选择日期" v-model="form.begindate" style="width: 100%">
+                                </el-date-picker>
+                            </el-form-item>
+                        </el-col>
+                        <el-col class="line" :span="2">-</el-col>
+                        <el-col :span="11">
+                            <el-form-item prop="startTime" style="margin-bottom: 0">
+                                <el-select v-model="form.startTime" placeholder="选择时间" clearable>
+                                    <el-option v-for="item in timeOptions" :key="item.time" :disabled="item.disabled"
+                                        :label="item.time" :value="item.time" />
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                    </el-form-item>
+                    <el-form-item label="日程结束时间" required>
+                        <el-col :span="11">
+                            <el-form-item prop="enddate" style="margin-bottom: 0">
+                                <el-date-picker type="date" disabled format="yyyy-MM-dd" value-format="yyyy-MM-dd"
+                                    placeholder="选择日期" v-model="form.enddate" style="width: 100%">
+                                </el-date-picker>
+                            </el-form-item>
+                        </el-col>
+                        <el-col class="line" :span="2">-</el-col>
+                        <el-col :span="11">
+                            <el-form-item prop="endTime" style="margin-bottom: 0">
+                                <el-select v-model="form.endTime" placeholder="选择时间" clearable>
+                                    <el-option v-for="item in timeOptions" :key="item.time" :disabled="item.disabled"
+                                        :label="item.time" :value="item.time" />
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                    </el-form-item>
+                    <el-form-item label="日程备注" prop="remark">
+                        <el-input type="textarea" v-model="form.remark"></el-input>
+                    </el-form-item>
+                    <el-form-item>
+                        <el-button v-if="form.id" type="danger">删除</el-button>
+                        <el-button @click="resetForm('form')">取消</el-button>
+                        <el-button type="primary" @click="submitForm('form')">提交</el-button>
+                    </el-form-item>
+                </el-form>
+            </el-dialog>
+            <!--日程新增弹窗end-->
+        </div>
+    </div>
+</template>
+   
+<script>
+import { getNowdata, } from "../../../http/api.js";//../../../http/api.js
+export default {
+    data() {
+        return {
+            // 上
+            value: "",
+            endDate: "",
+            dateRange: [],
+            dateNum: 0,
+            // 下
+            currentYear: "",   // 年份
+            currentMonth: "",  // 月份
+            currentDay: "",    // 日期
+            currentWeek: "",    // 星期
+            days: [],
+            tableData: [
+                {
+                    date: '2016-05-02',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, {
+                    date: '2016-05-04',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1517 弄'
+                },
+                {
+                    date: '2016-05-01',
+                    name: '王小虎',
+                    address: '上海市普陀区金沙江路 1519 弄'
+                },
+            ],
+            loading: false,
+            params: {},
+            page: 1, //第几页
+            size: 10, //一页多少条
+            total: 50, //总条目数
+            subList: [],
+            array: [],
+            roleNameList: [
+                {
+                    userId: 1,
+                    name: "分管公司领导/部门负责人",
+                },
+                {
+                    userId: 2,
+                    name: "部门负责人",
+                },
+                {
+                    userId: 3,
+                    name: "部门分管线条领导/科室主任",
+                },
+            ],
+            isParrty: [
+                {
+                    is_party: "1",
+                    name: "是",
+                },
+                {
+                    is_party: "0",
+                    name: "否",
+                },
+            ],
+            dialogVisible: false,
+            titleNew: "",
+            form: {
+                title: "",
+                userId: "",
+                begindate: "",
+                startTime: "",
+                enddate: "",
+                endTime: "",
+                remark: "",
+                leaderName: "",
+                roleId: "",
+                roleColor: "",
+                id: "",
+                isParty: "否",
+                // roleName: '分管公司领导/部门负责人'
+                // roleName: [],
+                orgId: [2, 3],
+                // orgIds: "[2,3]",
+            },
+            rules: {
+                title: [{ required: true, message: "请输入日程主题", trigger: "blur" }],
+                userid: [
+                    { required: true, message: "请选择日程室使用人", trigger: "change" },
+                ],
+                begindate: [
+                    { required: true, message: "请选择开始日期", trigger: "change" },
+                ],
+                startTime: [
+                    { required: true, message: "请选择开始时间", trigger: "change" },
+                ],
+                enddate: [
+                    { required: true, message: "请选择结束日期", trigger: "change" },
+                ],
+                endTime: [
+                    { required: true, message: "请选择结束时间", trigger: "change" },
+                ],
+                remark: [
+                    { required: true, message: "请填写日程备注", trigger: "blur" },
+                ],
+                leaderName: [{ required: true, message: "发起科室", trigger: "blur" }],
+                isParty: [{ required: true, message: "是否是党会", trigger: "change" }],
+                // roleName:[{required: true, message: '参会角色', trigger: 'change'}],
+                orgId: [{ required: true, message: "参会角色", trigger: "change" }],
+                // orgIds: [{required: true, message: '参会角色', trigger: 'change'}]
+            },
+            // 时间选项
+            timeOptions: [
+                { time: "08:00" },
+                { time: "08:30" },
+                { time: "09:00" },
+                { time: "09:30" },
+                { time: "10:00" },
+                { time: "10:30" },
+                { time: "11:00" },
+                { time: "11:30" },
+                { time: "12:00" },
+                { time: "12:30" },
+                { time: "13:00" },
+                { time: "13:30" },
+                { time: "14:00" },
+                { time: "14:30" },
+                { time: "15:00" },
+                { time: "15:30" },
+                { time: "16:00" },
+                { time: "16:30" },
+                { time: "17:00" },
+                { time: "17:30" },
+                { time: "18:00" },
+            ],
+            // 备份
+            backupTimeOptions: [
+                { time: "08:00" },
+                { time: "08:30" },
+                { time: "09:00" },
+                { time: "09:30" },
+                { time: "10:00" },
+                { time: "10:30" },
+                { time: "11:00" },
+                { time: "11:30" },
+                { time: "12:00" },
+                { time: "12:30" },
+                { time: "13:00" },
+                { time: "13:30" },
+                { time: "14:00" },
+                { time: "14:30" },
+                { time: "15:00" },
+                { time: "15:30" },
+                { time: "16:00" },
+                { time: "16:30" },
+                { time: "17:00" },
+                { time: "17:30" },
+                { time: "18:00" },
+            ],
+            nowdata: '',
+        }
+    },
+    created() {
+        this.getnowdata()
+        // 上面的日历
+        this.dateList(this.dateNum);
+        // console.log(this.dateRange);
+        // 下面的日历
+        this.initData();
+        this.getList();
+
+    },
+    methods: {
+        getnowdata(val) {
+            let yy = new Date().getFullYear()
+            let mm = new Date().getMonth() + 1 < 10 ? '0' + (new Date().getMonth() + 1) : new Date().getMonth() + 1
+            let dd = new Date().getDate() < 10 ? '0' + new Date().getDate() : new Date().getDate()
+            this.nowdata = yy + '-' + mm + '-' + dd
+        },
+        //重置数据
+        resetForm(formName) {
+            this.dialogVisible = false;
+            this.$refs[formName].resetFields();
+        },
+
+        // 提交数据
+        submitForm(formName) {
+            this.$refs[formName].validate((valid) => {
+                if (valid) {
+                    this.form.begindate = `${this.form.begindate} ${this.form.startTime}`;
+                    this.form.enddate = `${this.form.enddate} ${this.form.endTime}`;
+                    // console.log(this.form, "数据");
+                    this.dialogVisible = false;
+                    if (this.form.id === "") {
+                        this.form === "";
+                    }
+                    if (new Date(this.form.enddate) < new Date(this.form.begindate)) {
+                        this.$message({
+                            message: "日程时间填写错误",
+                            type: "error",
+                        });
+                    } else {
+                        this.$http({
+                            url:
+                                this.form.id === ""
+                                    ? "/market/calendarnet/add"
+                                    : "/market/calendarnet/update",
+                            method: "post",
+                            headers: {
+                                "Content-Type": "application/json",
+                            },
+                            data: this.form,
+                        }).then((res) => {
+                            // console.log(res);
+                            this.loadinged = false;
+                            if (res.data.result === 1) {
+                                this.$message({
+                                    message: res.data.desc,
+                                    type: "error",
+                                });
+                            } else {
+                                this.$message({
+                                    message: "成功",
+                                    type: "success",
+                                });
+                                // location.reload();
+                                this.getList();
+                            }
+                        });
+                    }
+                } else {
+                    // console.log("error submit!!");
+                    return false;
+                }
+            });
+        },
+        // 日历日程点击事件
+        handleEventClick(e) {
+            this.titleNew = "日程修改";
+            this.dialogVisible = true;
+            let id = e.id;
+            let info = this.subList.filter((item) => {
+                return item.id == id;
+            });
+            this.$nextTick(() => {
+                this.form = _.cloneDeep(info[0]);
+                // 处理时间回显
+                this.getShowTime(this.form.begindate, this.form.enddate);
+                // this.gitPeople(this.form.roleName);
+                this.orgId = this.form.roleName;
+                // this.orgIds=this.form.roleName
+                // this.roleNameList.userId=info[0].roleName
+            });
+        },
+        getShowTime(beginDate, endDate) {
+            this.form.begindate = this.dealWithTime(beginDate);
+            this.form.startTime = this.getHoursMin(beginDate);
+            this.form.enddate = this.dealWithTime(endDate);
+            this.form.endTime = this.getHoursMin(endDate);
+            // console.log(this.form);
+            // this.$forceUpdate()
+            this.form = { ...this.form };
+        },
+        //新增日程
+        addnewr() {
+            console.log(11);
+            this.form = {}
+            this.form.orgId = [];
+            this.form.isParty = "";
+            this.titleNew = "日程新增";
+            // if (!this.auth) {
+            //     return;
+            // }
+            //开始时间
+            this.form.begindate = this.nowdata;
+            //结束时间
+            this.form.enddate = this.nowdata;
+
+            this.dialogVisible = true;
+        },
+        //关闭弹窗,重置表单
+        close() {
+            this.dialogVisible = false;
+            this.$refs["form"].resetFields();
+        },
+        // 获取日程信息
+        getList() {
+            this.$http({
+                url: "/market/calendarnet/queryList",
+                method: "post",
+                headers: {
+                    "Content-Type": "application/json",
+                },
+                data: {
+                    isFile: "0",
+                    data: this.nowdata
+                },
+            }).then((res) => {
+                console.log("res", res);
+                if (res.data && res.data.length > 0) {
+                    this.array = res.data;
+                    // this.getReservationList(this.array.scheduleList0);
+                    this.getReservationList(this.array);
+                }
+            });
+        },
+        getReservationList(arrayData) {
+            let newArr = [];
+            let newAr2r = [];
+            this.subList = arrayData;
+            arrayData.forEach((item) => {
+                newArr.push({
+                    newBeginTime: item.begindate.split(" ")[1].substr(0, 5),
+                    newEndTime: item.enddate.split(" ")[1].substr(0, 5),
+                    start: this.dealWithTime(item.begindate),
+                    end: this.addDate(this.dealWithTime(item.enddate), 1),
+                    textColor: item.roleColor,
+                    id: item.id,
+                    title: `${this.getTitle(
+                        item.begindate,
+                        item.enddate,
+                        item.isParty
+                    )}   ${item.title}    ${"召集人:" + item.leaderName}`,
+                });
+            });
+            console.log(newArr);
+            console.log(this.nowdata);
+            newArr.map((item) => {
+                if (item.start == this.nowdata) {
+                    newAr2r.push(item)
+                }
+            })
+            this.tableData = newAr2r;
+        },
+        // 获取时分时间
+        getHoursMin(value) {
+            return value.substring(11, 16);
+        },
+        // 处理日程时间格式
+        dealWithTime(date) {
+            let newDate = /\d{4}-\d{1,2}-\d{1,2}/g.exec(date)[0];
+            return newDate;
+        },
+        // 获取日程事件title
+        getTitle(date1, date2, isParty) {
+            let start =
+                isParty == "1"
+                    ? "★" + date1.substring(11, 16)
+                    : date1.substring(11, 16);
+            let end = date2.substring(11, 16);
+            return `${start}~${end}`;
+        },
+        // 日期加1天
+        addDate(date, days) {
+            var d = new Date(date);
+            d.setDate(d.getDate() + days);
+            var mon =
+                d.getMonth() + 1 < 10 ? "0" + (d.getMonth() + 1) : d.getMonth() + 1;
+            let endD = d.getDate() < 10 ? "0" + d.getDate() : d.getDate();
+            return `${d.getFullYear()}-${mon}-${endD}`;
+        },
+        // 上面的日历
+
+        // 获取当前时间的周一
+        getMonday(date) {
+            var day = date.getDay();
+            var deltaDay;
+            if (day == 0) {
+                deltaDay = 6;
+            } else {
+                deltaDay = day - 1;
+            }
+            var monday = new Date(date.getTime() - deltaDay * 24 * 60 * 60 * 1000);
+            monday.setHours(0);
+            monday.setMinutes(0);
+            monday.setSeconds(0);
+            return monday; //返回选定时间的周一的0时0分0秒
+        },
+        getDateNew(time) {
+            console.log(time);
+            let times = new Date(time);
+            let year = times.getFullYear();
+            let month = times.getMonth() + 1 < 10 ? "0" + (times.getMonth() * 1 + 1) : times.getMonth() * 1 + 1;
+            let day = times.getDate() < 10 ? "0" + times.getDate() * 1 : times.getDate() * 1;
+            return year + "-" + month + "-" + day;
+        },
+        dateList(delta) {
+            //将时间对象转换为时间戳并加几天后转换为时间对象
+            var DateNews = this.getMonday(
+                new Date((new Date().getTime() / 1000 + 86400 * 7 * delta) * 1000)
+            );
+            let startDate = this.getDateNew(DateNews, delta);
+            this.endDate = this.getDateNew(
+                new Date((DateNews.getTime() / 1000 + 6 * 86400) * 1000)
+            );
+            this.dateRange = [startDate, this.endDate];
+        },
+        arrow(arrow) {
+            if (arrow == "left") {
+                this.dateNum--;
+                this.dateList(this.dateNum);
+            } else if (arrow == "right") {
+                this.dateNum++;
+                this.dateList(this.dateNum);
+            }
+        },
+
+        // 下面的日历
+
+        formatDate(year, month, day) {
+            const y = year
+            let m = month
+            if (m < 10) m = `0${m}`
+            let d = day
+            if (d < 10) d = `0${d}`
+            return `${y}-${m}-${d}`
+        },
+        initData(cur) {
+            let date = ''
+            if (cur) {
+                date = new Date(cur)
+            } else {
+                date = new Date()
+            }
+            this.currentDay = date.getDate()          // 今日日期 几号
+            this.currentYear = date.getFullYear()       // 当前年份
+            this.currentMonth = date.getMonth() + 1    // 当前月份
+            this.currentWeek = date.getDay() // 1...6,0   // 星期几
+            if (this.currentWeek === 0) {
+                this.currentWeek = 7
+            }
+            const str = this.formatDate(this.currentYear, this.currentMonth, this.currentDay) // 今日日期 年-月-日
+            this.days.length = 0
+            // 今天是周日,放在第一行第7个位置,前面6个 这里默认显示一周,如果需要显示一个月,则第二个循环为 i<= 35- this.currentWeek
+            /* eslint-disabled */
+            for (let i = this.currentWeek - 1; i >= 0; i -= 1) {
+                const d = new Date(str)
+                d.setDate(d.getDate() - i)
+                // console.log(y:" + d.getDate())
+                this.days.push(d)
+            }
+            for (let i = 1; i <= 7 - this.currentWeek; i += 1) {
+                const d = new Date(str)
+                d.setDate(d.getDate() + i)
+                this.days.push(d)
+            }
+        },
+        //  上个星期
+        weekPre() {
+            const d = this.days[0]    // 如果当期日期是7号或者小于7号
+            d.setDate(d.getDate() - 7)
+            this.initData(d)
+            let days = document.querySelector(".days");
+            for (var i = 0; i <= 6; i++) {
+                days.childNodes[i].childNodes[0].childNodes[0].className = ''
+            }
+        },
+        //  下个星期
+        weekNext() {
+            const d = this.days[6]    // 如果当期日期是7号或者小于7号
+            d.setDate(d.getDate() + 7)
+            this.initData(d)
+            let days = document.querySelector(".days");
+            for (var i = 0; i <= 6; i++) {
+                days.childNodes[i].childNodes[0].childNodes[0].className = ''
+            }
+        },
+        // 上一個月   传入当前年份和月份
+        pickPre(year, month) {
+            const d = new Date(this.formatDate(year, month, 1))
+            d.setDate(0)
+            this.initData(this.formatDate(d.getFullYear(), d.getMonth() + 1, 1))
+        },
+        // 下一個月   传入当前年份和月份
+        pickNext(year, month) {
+            const d = new Date(this.formatDate(year, month, 1))
+            d.setDate(35)
+            this.initData(this.formatDate(d.getFullYear(), d.getMonth() + 1, 1))
+        },
+        // 当前选择日期
+        pick(date, index) {
+            // console.log(date);
+            // console.log(index);
+            let days = document.querySelector(".days");
+            // console.log(days.childNodes[index].childNodes[0].childNodes);
+            // console.log(days.childNodes);
+            for (var i = 0; i <= 6; i++) {
+                days.childNodes[i].childNodes[0].childNodes[0].className = ''
+            }
+            if (days.childNodes[index].childNodes[0].childNodes[0].className == '') {
+                days.childNodes[index].childNodes[0].childNodes[0].className = 'active'
+            } else {
+                days.childNodes[index].childNodes[0].childNodes[0].className = ''
+            }
+            this.nowdata = this.formatDate(date.getFullYear(), date.getMonth() + 1, date.getDate())
+            this.getList()
+        },
+    },
+};
+</script>
+   
+<style lang="scss" scoped>
+::v-deep .el-table .el-table__cell {
+    padding: 8px 0;
+}
+
+::v-deep .el-table__header-wrapper {
+    display: none;
+}
+
+.rlitable {
+    display: flex;
+    flex-direction: column;
+    max-height: 161px;
+    overflow-y: auto;
+    padding-left: 20%;
+    height: 161px;
+    background-color: #d8eaf6;
+    border-radius: 10px;
+}
+
+.rlitable2 {
+    max-height: 161px;
+    overflow-y: auto;
+    height: 161px;
+    background-color: #d8eaf6;
+    border-radius: 10px;
+}
+
+ul {
+    padding: 0;
+}
+
+li {
+    list-style-type: none;
+}
+
+/* 上面的日历 */
+.calendar {
+    position: relative;
+    width: 100%;
+    background: #fff;
+    margin-top: 10px;
+    border-radius: 10px;
+    margin-left: 20px;
+}
+
+.el-calendar__header {
+    display: block;
+}
+
+.el-calendar-table .el-calendar-day {
+    height: auto;
+    text-align: center;
+}
+
+.el-calendar-table td.is-selected {
+    background-color: #24b18d;
+    color: #fff;
+}
+
+.el-calendar-table .el-calendar-day:hover {
+    background-color: #24b18d;
+    color: #fff;
+}
+
+.el-calendar-table {
+    border-bottom: 1px solid #e4e4e4;
+    padding-bottom: 15px;
+}
+
+.el-calendar-table .next {
+    color: rgb(143, 143, 143);
+}
+
+.el-calendar__title,
+.el-calendar__button-group {
+    text-align: center;
+}
+
+.arrow {
+    width: 100%;
+    max-height: 46px;
+    position: absolute;
+    top: 15px;
+    text-align: center;
+}
+
+.arrow i {
+    font-size: 20px;
+    cursor: pointer;
+}
+
+.arrow i:nth-child(1) {
+    margin-right: 10%;
+    text-align: left;
+}
+
+.arrow i:nth-child(2) {
+    margin-left: 10%;
+    text-align: right;
+}
+
+/* 下面的日历 */
+.date {
+    position: relative;
+    margin-top: 10px;
+    padding: 10px 20px;
+    border-radius: 10px;
+    background-color: #ffffff;
+}
+
+.arrow0 {
+    width: 100%;
+    max-height: 46px;
+    position: absolute;
+    top: 10px;
+    left: 0px;
+    text-align: center;
+}
+
+.arrow0 i {
+    font-size: 20px;
+    cursor: pointer;
+}
+
+.arrow0 i:nth-child(1) {
+    margin-right: 10%;
+    text-align: left;
+}
+
+.arrow0 i:nth-child(2) {
+    margin-left: 10%;
+    text-align: right;
+}
+
+.month {
+    text-align: center;
+}
+
+.weekdays {
+    display: flex;
+    margin: 10px 0px;
+}
+
+.weekdays li {
+    flex: 1;
+    text-align: center;
+}
+
+.days {
+    display: flex;
+}
+
+.days li {
+    flex: 1;
+    text-align: center;
+    cursor: pointer;
+}
+
+.days li span {
+    display: inline-block;
+    width: 22px;
+    height: 22px;
+    line-height: 22px;
+}
+
+.days li span:hover {
+    color: #fff;
+    background-color: #409EFF;
+    border-radius: 50%;
+}
+
+.active {
+    display: inline-block;
+    color: #fff;
+    border-radius: 50%;
+    background-color: #52d4fc !important;
+}
+
+.other-month {
+    color: #e4393c;
+}
+</style>

+ 7 - 7
src/pages/main/leader/rlinet.vue

@@ -306,7 +306,7 @@ export default {
     created() {
         // 上面的日历
         this.dateList(this.dateNum);
-        console.log(this.dateRange);
+        // console.log(this.dateRange);
         // 下面的日历
         this.initData();
         this.getList();
@@ -422,7 +422,7 @@ export default {
         },
         //新增会议
         addnewr() {
-            console.log(111);
+            this.form={}
             this.form.orgId = [];
             this.form.isParty = "";
             this.titleNew = "会议新增";
@@ -635,10 +635,10 @@ export default {
         // 当前选择日期
         pick(date, index) {
             // console.log(date);
-            console.log(index);
+            // console.log(index);
             let days = document.querySelector(".days");
-            console.log(days.childNodes[index].childNodes[0].childNodes);
-            console.log(days.childNodes);
+            // console.log(days.childNodes[index].childNodes[0].childNodes);
+            // console.log(days.childNodes);
             for (var i = 0; i <= 6; i++) {
                 days.childNodes[i].childNodes[0].childNodes[0].className = ''
             }
@@ -667,7 +667,7 @@ export default {
     display: flex;
     flex-direction: column;
     max-height: 161px;
-    overflow-y: scroll;
+    overflow-y: auto;
     padding-left: 20%;
     height: 161px;
     background-color: #d8eaf6;
@@ -676,7 +676,7 @@ export default {
 
 .rlitable2 {
     max-height: 161px;
-    overflow-y: scroll;
+    overflow-y: auto;
     height: 161px;
     background-color: #d8eaf6;
     border-radius: 10px;

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1290 - 0
src/pages/main/onlineOfficeExcel/index.vue


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1290 - 0
src/pages/main/onlineOfficeExcelSC/index.vue


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1290 - 0
src/pages/main/onlineOfficeExcelZQ/index.vue


+ 1 - 1
src/pages/main/opcode/index.vue

@@ -693,7 +693,7 @@ export default {
             });
         },
         setForm(e) {
-            this.request_form.title = '[工作台]-Op_Code-' + this.$refs.formTable.form.needName;
+            this.request_form.title = '[IT工作台]-Op_Code-' + this.$refs.formTable.form.needName;
             this.$http({
                 url: "/market/opProcess/add",
                 method: "post",

+ 255 - 0
src/pages/main/zqknowledgetop/addKnowledge.vue

@@ -0,0 +1,255 @@
+<template>
+  <fullscreen class="mc-container">
+    <div class="container-box">
+      <h2>新增知识库</h2>
+      <el-row :gutter="20" style="margin-top: 15px">
+        <el-col :span="24"
+          ><el-form
+            :model="formData"
+            :rules="rules"
+            ref="ruleForm"
+            label-width="50px"
+            class="demo-ruleForm"
+          >
+            <el-col :span="10">
+              <el-form-item label="标题" prop="title">
+                <el-input
+                  v-model="formData.title"
+                  placeholder="请输入标题"
+                ></el-input>
+              </el-form-item>
+              <el-form-item prop="pubType" label="类型">
+                <el-select
+                  style="width: 100%"
+                  :popper-append-to-body="false"
+                  v-model="formData.pubType"
+                  placeholder="发布类型"
+                  clearable
+                >
+                  <el-option
+                    v-for="item in knowledgeType"
+                    :key="item.id"
+                    :label="item.pubType"
+                    :value="item.id"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="目录" prop="catalogDesc">
+                <div style="display: flex">
+                  <el-input
+                    v-model="formData.catalogDesc"
+                    readonly
+                    placeholder="请选择目录"
+                  ></el-input>
+                  <el-button @click="selectCatalogs">选择</el-button>
+                </div>
+              </el-form-item>
+              <el-form-item label="附件" prop="catalog">
+                <myUpload
+                  @uploadBack="uploadBack"
+                  :fileInfo="fileInfo"
+                  :fileList="fileInfo.fileList"
+                >
+                </myUpload>
+              </el-form-item>
+              <el-form-item>
+                <el-button type="primary" @click="submitForm('ruleForm')"
+                  >立即创建</el-button
+                >
+                <el-button @click="resetForm('ruleForm')">取消</el-button>
+              </el-form-item>
+            </el-col>
+            <el-col :span="14">
+              <el-form-item label="内容" prop="content">
+                <p-editor-tiny
+                  imgType="upload"
+                  v-model="formData.content"
+                ></p-editor-tiny
+              ></el-form-item>
+            </el-col> </el-form
+        ></el-col>
+      </el-row>
+    </div>
+    <el-dialog
+      title="目录树"
+      :visible.sync="catalogDialogVisible"
+      width="45%"
+      :modal-append-to-body="false"
+    >
+      <el-tree
+        class="filter-tree"
+        :data="treeData"
+        node-key="catalog"
+        :props="defaultProps"
+        default-expand-all
+        :filter-node-method="filterNode"
+        @node-click="nodeClick"
+        ref="tree"
+      >
+      </el-tree>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="clearCatalog">取 消</el-button>
+        <el-button type="primary" @click="trueCatalog">确 定</el-button>
+      </span>
+    </el-dialog>
+  </fullscreen>
+</template><script>
+import myUpload from "../../../components/upload";
+export default {
+  data() {
+    return {
+      catalogDialogVisible: false,
+      departmentDialogVisible: false,
+      formData: {
+        title: "",
+        catalog: "",
+        catalogDesc: "",
+        content: "",
+        pubType: "",
+      },
+      rules: {
+        title: [{ required: true, message: "请输入标题", trigger: "blur" }],
+        catalogDesc: [
+          { required: true, message: "请选择目录", trigger: "change" },
+        ],
+        pubType: [{ required: true, message: "请选择类型", trigger: "change" }],
+        content: [
+          {
+            required: true,
+            message: "请输入内容",
+            trigger: "change",
+          },
+        ],
+      },
+      filterText: "",
+      treeData: [],
+      defaultProps: {
+        children: "children",
+        label: "title",
+      },
+      knowledgeType: [],
+      fileInfo: {
+        limit: 5,
+        // url: "/market/cknowledgeZqatt/upload",//"/market/waf/uploadByMinio"
+        url: "/market/waf/uploadByMinio",//"/market/waf/uploadByMinio"
+        fileList: [],
+      },
+    };
+  },
+  components: {
+    PEditorTiny: () =>
+      import(
+        /* webpackChunkName: "peditor-tiny" */ "../../../components/p-editor-tiny"
+      ),
+    myUpload,
+  },
+  methods: {
+    uploadBack(v) {
+      this.attList = v;
+    },
+    // 选择完目录清空
+    clearCatalog() {
+      this.formData.catalogDesc = "";
+      this.formData.catalog = "";
+      this.catalogDialogVisible = false;
+    },
+    // 选择完目录确认
+    trueCatalog() {
+      this.catalogDialogVisible = false;
+    },
+    // 选择目录弹出
+    selectCatalogs() {
+      this.catalogDialogVisible = true;
+    },
+    // 选择部门弹出
+    selectDepartment() {
+      this.departmentDialogVisible = true;
+    },
+    //字典类型
+    getListype(v) {
+      this.$http({
+        url: "/market/mkKnowledgePubMsgType/queryList",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: {
+          dictCode: "pubType",
+        },
+      }).then((res) => {
+        this.knowledgeType = res.data;
+      });
+    },
+    // 树筛选
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.label.indexOf(value) !== -1;
+    },
+    async submitForm(formName) {
+      let valid = await this.$refs[formName].validate().catch((err) => err);
+      if (valid) {
+        alert("submit!");
+      } else {
+        console.log("error submit!!");
+        return false;
+      }
+    }, // 树点击
+    nodeClick(index, data, node) {
+      this.formData.catalogDesc = data.data.title;
+      this.formData.catalog = data.data.id;
+    },
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+    },
+    getData() {
+      this.$http({
+        url: "/market/mkKnowledgeCatalog/queryList",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: {},
+      }).then((res) => {
+        this.treeData = res.data;
+      });
+    },
+  },
+  mounted() {
+    this.getData();
+    this.getListype();
+  },
+  watch: {
+    filterText(val) {
+      this.$refs.tree.filter(val);
+    },
+  },
+};
+</script>
+<style>
+.mc-container {
+  margin: 15px;
+  background: #fff;
+  border-radius: 5px;
+  height: calc(100vh - 150px);
+  margin-bottom: 0;
+}
+.mc-container .container-box {
+  width: 100%;
+  height: 100%;
+  max-height: 96vh;
+  margin-top: 20px;
+  padding: 0 20px 0 20px;
+  overflow-x: hidden !important;
+  padding-top: 20px;
+}
+.tinymce-editor {
+  height: 300px;
+}
+.mc-container .el-upload{
+  width:100%
+}
+.mc-container .el-upload-dragger{
+  width: 100%;
+}
+</style>

+ 503 - 0
src/pages/main/zqknowledgetop/catalog.vue

@@ -0,0 +1,503 @@
+<template>
+  <div class="container">
+    <div class="main-box container-box">
+      <div class="inner-left" style="overflow: hidden">
+        <div class="button-list">
+          <el-button type="primary" @click="firstMenu" plain
+            >添加一级目录</el-button
+          >
+          <el-button type="primary" @click="addMenu" plain
+            >添加子目录</el-button
+          >
+          <el-button type="primary" @click="delMenu" plain>删除</el-button>
+          <el-dropdown
+            @command="treeAction"
+            trigger="click"
+            style="margin-left: 15px"
+          >
+            <el-button type="primary" plain>
+              树操作<i class="el-icon-arrow-down el-icon--right"></i>
+            </el-button>
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item :command="1">全部展开</el-dropdown-item>
+              <el-dropdown-item :command="2">全部关闭</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
+        </div>
+        <div class="choice-style">
+          <div class="ant-alert-info ant-alert">
+            <i style="color: #1890ff" class="el-icon-warning"></i>当前选择:{{
+              actionName
+            }}
+            <span class="canel-style" @click="canelChoice" v-show="actionName"
+              >取消选择</span
+            >
+          </div>
+        </div>
+        <div style="margin: 10px 0">
+          <el-input
+            placeholder="请输入内容"
+            v-model="filterText"
+            class="input-with-select"
+            clearable
+            @change="
+              () => {
+                if (!filterText) {
+                  searchMenu();
+                }
+              }
+            "
+          >
+            <el-button
+              slot="append"
+              @click="searchMenu"
+              icon="el-icon-search"
+            ></el-button>
+          </el-input>
+        </div>
+        <div
+          v-loading="loading"
+          style="height: calc(100% - 200px); overflow-y: scroll"
+        >
+          <el-tree
+            ref="catalogTree"
+            class="tree-line"
+            :expand-on-click-node="true"
+            :auto-expand-parent="true"
+            :default-expand-all="true"
+            :props="defaultProps"
+            :data="menuList"
+            @node-click="nodeClick"
+            :filter-node-method="filterNode"
+            node-key="id"
+          >
+            <span class="custom-tree-node" slot-scope="{ node }">
+              <span>
+                <span style="color: #009cff" class="iconfont icon-wenjianjia"></span>
+                <!-- <span
+                  v-if="
+                    node.data.hasOwnProperty('children') &&
+                    node.data.children.length > 0
+                  "
+                  style="color: #009cff"
+                  class="iconfont icon-wenjianjia"
+                ></span> -->
+                <!-- <span
+                  v-else
+                  style="color: #fdb441"
+                  class="iconfont icon-wenjian"
+                ></span> -->
+                <span
+                  :style="
+                    node.data.hasOwnProperty('parent')
+                      ? 'font-size:14px;padding-left:5px'
+                      : 'font-size:12px;padding-left:5px'
+                  "
+                  >{{ node.data.title }}</span
+                >
+              </span>
+            </span>
+          </el-tree>
+        </div>
+        <div class="tree-action"></div>
+      </div>
+      <div class="inner-right">
+        <div v-if="actionName">
+          <div class="choice-style" style="width: 80%; margin: 15px auto">
+            <div class="ant-alert-info ant-alert">
+              <i style="color: #1890ff" class="el-icon-warning"></i>请编辑信息
+            </div>
+          </div>
+          <el-form
+            :model="formData"
+            :rules="rules"
+            ref="ruleForm"
+            label-width="100px"
+            class="demo-ruleForm"
+            style="width: 80%; margin: 50px auto"
+          >
+            <el-form-item label="目录名称" prop="title">
+              <el-input
+                v-model="formData.title"
+                placeholder="请输入标题"
+              ></el-input>
+            </el-form-item>
+            <el-form-item
+              prop="parentId"
+              v-if="actionName != 'add'"
+              label="父级编码"
+            >
+              <el-input
+                disabled
+                v-model="formData.parentId"
+                placeholder="请输入父级编码"
+              ></el-input>
+            </el-form-item>
+            <el-form-item
+              label="父级名称"
+              v-if="actionName != 'add'"
+              prop="parentName"
+            >
+              <el-input
+                disabled
+                v-model="formData.parentName"
+                readonly
+                placeholder="请输入父级名称"
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="操作人" prop="createName">
+              <el-input
+                v-model="formData.createName"
+                readonly
+                placeholder="请输入操作人"
+              ></el-input>
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" @click="submitForm('ruleForm')">{{
+                subType
+              }}</el-button>
+              <el-button @click="resetForm('ruleForm')">取消</el-button>
+            </el-form-item>
+          </el-form>
+        </div>
+        <div v-else style="text-align: center">
+          <img src="../../../assets/404.png" alt="" />
+          <div>请先选择一个目录</div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      loading: false,
+      defaultExpand: true,
+      functionCode: "",
+      filterText: "", // tree搜索value
+      actionName: "", // 当前选择节点名称
+      menuList: [], // tree数据源
+      checkedMenu: [], // 选中节点的functionCode
+      checkedNodes: [], // 选中节点的node值
+      roleData: "", // 某一条数据
+      formData: {
+        id: "",
+        title: "",
+        createName: JSON.parse(sessionStorage.userInfo).loginName,
+        createId: JSON.parse(sessionStorage.userInfo).loginNo,
+        orgName: JSON.parse(sessionStorage.userInfo).groupName,
+        orgId: JSON.parse(sessionStorage.userInfo).groupId,
+        parentId: "",
+        parentName: "",
+      },
+      defaultProps: {
+        children: "children",
+        label: "title",
+      },
+      rules: {
+        title: [{ required: true, message: "请输入标题", trigger: "change" }],
+        parentId: [
+          { required: false, message: "请选择父级编码", trigger: "change" },
+        ],
+      },
+      subType: "",
+    };
+  },
+  methods: {
+    async submitForm(formName) {
+      let valid = await this.$refs[formName].validate().catch((err) => err);
+      if (valid) {
+        this.$http({
+          url:
+            this.subType == "保存"
+              ? "/market/mkKnowledgeCatalogZq/add"
+              : "/market/mkKnowledgeCatalogZq/update",
+          method: "post",
+          headers: {
+            "Content-Type": "application/json",
+          },
+          data: this.formData,
+        }).then((res) => {
+          if (res.data.result == 0) {
+            this.$message({
+              type: "success",
+              message: res.data.desc,
+            });
+            this.actionName = "";
+            this.getData();
+          }
+        });
+      } else {
+        console.log("error submit!!");
+        return false;
+      }
+    },
+    resetForm(formName) {
+      this.actionName = "";
+      this.$refs[formName].resetFields();
+    },
+    addMenu() {
+      if (!this.actionName) {
+        this.$message("请先点击选中要增加菜单的位置");
+      } else {
+        this.subType = "保存";
+        this.formData.parentId = this.formData.id;
+        this.formData.parentName = this.formData.title;
+        this.formData.title = "";
+        this.formData.id = "";
+      }
+    },
+    treeAction(val) {
+      val == 1 ? (this.defaultExpand = true) : (this.defaultExpand = false);
+      for (let i = 0; i < this.$refs.catalogTree.store._getAllNodes().length; i++) {
+        this.$refs.catalogTree.store._getAllNodes()[i].expanded = this.defaultExpand;
+      }
+    },
+    canelChoice() {
+      this.actionName = "";
+      this.formData.title = "";
+    },
+    delMenu() {
+      if (!this.formData.id) {
+        this.$message("请先点击选中要删除的菜单");
+      } else {
+        this.$confirm("即将删除此条数据, 是否删除?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+          .then(() => {
+            this.$http({
+              url: "/market/mkKnowledgeCatalogZq/del",
+              method: "post",
+              headers: {
+                "Content-Type": "application/json",
+              },
+              data: {
+                id: this.formData.id,
+              },
+            }).then((res) => {
+              if (res.data.result == 0) {
+                this.$notify({
+                  title: "成功",
+                  message: res.data.desc,
+                  type: "success",
+                });
+                this.actionName = "";
+                this.getData();
+              }
+            });
+          })
+          .catch(() => {});
+      }
+    },
+    // 添加一级菜单
+    firstMenu() {
+      this.actionName = "add";
+      this.subType = "保存";
+      this.formData.title = "";
+      this.formData.parentId = "";
+      this.formData.parentName = "";
+      this.formData.id = "";
+    },
+    // 搜索按钮事件
+    searchMenu() {
+      this.$refs.tree.filter(this.filterText);
+    },
+    // tree过滤方法
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.functionName.indexOf(value) !== -1;
+    },
+    // 点击树节点事件
+    nodeClick(a, b, c, d) {
+      let nodeData = JSON.parse(JSON.stringify(b.data));
+      this.formData.title = nodeData.title;
+      this.formData.parentId = nodeData.parentId;
+      this.formData.parentName = nodeData.parentName;
+      this.formData.id = nodeData.id;
+      delete Object["children"];
+      this.actionName = nodeData.title;
+      this.subType = "修改";
+    },
+    closeDialog() {
+      this.actionName = "";
+      this.getTreeData({});
+    },
+    // 树形图 复选框监听事件
+    checkChange(a, b, c, d) {
+      this.checkedNodes = b.checkedNodes;
+    },
+    getData() {
+      this.$http({
+        url: "/market/mkKnowledgeCatalogZq/queryList",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: {},
+      }).then((res) => {
+        this.menuList = res.data;
+      });
+    },
+  },
+  mounted() {
+    this.getData();
+  },
+};
+</script>
+<style lang="scss" scoped>
+.container {
+  background-color: #f0f2f5;
+
+  .el-col {
+    background-color: white;
+    padding: 0 20px;
+  }
+
+  .container-box {
+    padding: 0;
+    margin-top: 0;
+    height: 100%;
+  }
+
+  .main-box {
+    overflow: hidden;
+    display: flex;
+
+    > div {
+      background-color: white;
+    }
+
+    .inner-left {
+      width: 40%;
+      padding: 0 20px;
+
+      .canel-style {
+        color: #1890ff;
+        cursor: pointer;
+        padding-left: 10px;
+      }
+    }
+
+    .inner-right {
+      width: 58%;
+      margin-left: 2%;
+      overflow-y: auto;
+    }
+  }
+}
+
+.el-button + .el-button {
+  margin-left: 20px;
+}
+
+.button-list {
+  padding: 30px 0 10px 0;
+}
+
+.choice-style {
+  background: rgb(255, 255, 255);
+}
+
+.tree-action {
+  bottom: 0;
+  width: 100%;
+  // border-top: 1px solid #e8e8e8;
+  padding: 10px 16px;
+  text-align: left;
+  left: 0;
+  background: #fff;
+  border-radius: 0 0 2px 2px;
+}
+
+.tree-line {
+  .el-tree-node__content {
+    padding-left: 0 !important;
+  }
+
+  .el-tree-node__expand-icon.is-leaf {
+    display: none !important;
+  }
+
+  .el-tree-node {
+    position: relative;
+    padding-left: 16px; // 缩进量
+  }
+
+  .el-tree-node__children {
+    padding-left: 16px; // 缩进量
+  }
+
+  // 竖线
+  .el-tree-node::before {
+    content: "";
+    height: 100%;
+    width: 1px;
+    position: absolute;
+    left: -3px;
+    top: -17px;
+    border-width: 1px;
+    border-left: 1px dashed #52627c;
+  }
+
+  // 当前层最后一个节点的竖线高度固定
+  .el-tree-node:last-child::before {
+    height: 38px; // 可以自己调节到合适数值
+  }
+
+  // 横线
+  .el-tree-node::after {
+    content: "";
+    width: 24px;
+    height: 20px;
+    position: absolute;
+    left: -3px;
+    top: 20px;
+    border-width: 1px;
+    border-top: 1px dashed #52627c;
+  }
+
+  // 去掉最顶层的虚线,放最下面样式才不会被上面的覆盖了
+  & > .el-tree-node::after {
+    border-top: none;
+  }
+
+  & > .el-tree-node::before {
+    border-left: none;
+  }
+
+  // 展开关闭的icon
+  .el-tree-node__expand-icon {
+    font-size: 16px;
+
+    // 叶子节点(无子节点)
+    &.is-leaf {
+      color: transparent;
+      // display: none; // 也可以去掉
+    }
+  }
+}
+
+.ant-alert-info {
+  background-color: #e6f7ff;
+  border: 1px solid #91d5ff;
+}
+
+.ant-alert {
+  box-sizing: border-box;
+  margin: 0;
+  padding: 0;
+  color: rgb(0, 0, 0);
+  font-size: 14px;
+  font-variant: tabular-nums;
+  line-height: 1.5;
+  list-style: none;
+  font-feature-settings: "tnum";
+  position: relative;
+  padding: 8px 15px 8px 37px;
+  word-wrap: break-word;
+  border-radius: 4px;
+}
+</style>

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 2 - 0
src/pages/main/zqknowledgetop/data.js


+ 193 - 0
src/pages/main/zqknowledgetop/index.vue

@@ -0,0 +1,193 @@
+<template>
+    <fullscreen :fullscreen.sync="fullscreen" class="container">
+        <div class="container-box">
+            <h2 style="margin-top: 20px;">政企知识库</h2>
+            <div class="adv-type">
+                <div
+                    class="wfour"
+                    @click="jumpinfo('/zqknowledgeManagement', '知识库管理')"
+                >
+                    <span><i class="el-icon-folder-opened"></i></span>
+                    <span>知识库管理</span>
+                </div>
+                <!-- <div
+                    class="wfour"
+                    @click="jumpinfo('/knowledgeExaminetop', '知识库审核')"
+                >
+                    <span><i class="el-icon-folder-opened"></i></span>
+                    <span>知识库审核</span>
+                </div> -->
+                <div
+                    class="wfour"
+                    @click="jumpinfo('/zqknowledgeTypetop', '知识类型管理')"
+                    v-if="lockFlag == 'add'"
+                >
+                    <span><i class="el-icon-folder-opened"></i></span>
+                    <span>知识类型管理</span>
+                </div>
+                <div
+                    class="wfour"
+                    @click="
+                        jumpinfo('/zqknowledgeCatalogtop', '知识库目录管理')
+                    "
+                    v-if="lockFlag == 'add'"
+                >
+                    <span><i class="el-icon-folder-opened"></i></span>
+                    <span>知识库目录管理</span>
+                </div>
+            </div>
+        </div>
+    </fullscreen>
+</template>
+<script>
+import mySearch from "../../../components/search.vue";
+import myMessage from "../../../components/myMessage.vue";
+import toolList from "../../../components/toolList";
+import myUpload from "../../../components/upload";
+
+export default {
+    components: {
+        mySearch,
+        myMessage,
+        toolList,
+        myUpload
+    },
+    data() {
+        return {
+            fullscreen: false,
+            lockFlag: "see",
+            province: true
+        };
+    },
+    methods: {
+        jumpinfop(p, v, n) {
+            this.$router.push({
+                path: p,
+                query: {
+                    type: v
+                }
+            });
+            this.setabList(n, p + "?type=" + v);
+        },
+        jumpinfo(p, n) {
+            this.$router.push({
+                path: p
+            });
+            this.setabList(n, p);
+        },
+        setabList(n, p) {
+            let params = {
+                children: "",
+                name: n,
+                rountPath: p,
+                target: "_self"
+            };
+            for (let i = 0; i < this.$store.state.tabList.length; i++) {
+                if (this.$store.state.tabList[i].name === params.name) {
+                    this.$store.state.tabList[i] = params;
+                }
+            }
+            let set = new Set([...this.$store.state.tabList, params]);
+            set.add(params);
+            this.$store.commit("setDefaultActive", params.rountPath);
+            this.$store.commit("setTabList", Array.from(set));
+        },
+         getRole(){
+            this.$http({
+                url:"/market/mkNewknowledge/queryRole",
+                method: "post",
+                headers: {
+                    "Content-Type": "application/json",
+                },
+                data: {}
+            }).then(res => {
+                console.log("vue"+res.data);
+                if(res.data == "1"){
+                    this.lockFlag = 'add';//管理员
+                }else{
+                    this.lockFlag = 'updata';//普通员工
+                }
+            });
+        },
+        // getUser() {
+        //     this.userInfo = JSON.parse(window.sessionStorage.userInfo);
+        //     let Menus = JSON.parse(window.sessionStorage.childrenMenus);
+        //     for (let i = 0; i < Menus.length; i++) {
+        //         if (
+        //             Menus[i].systemflag == 1 &&
+        //             Menus[i].jspUrl == "/publicityAccount"
+        //         ) {
+        //             this.lockFlag = "add"; //省级
+        //         }
+        //         if (
+        //             Menus[i].systemflag == 1 &&
+        //             Menus[i].jspUrl == "/publicity"
+        //         ) {
+        //             this.lockFlag = "updata"; //管理员
+        //             i = Menus.length;
+        //         }
+        //     }
+        //     for (let i = 0; i < Menus.length; i++) {
+        //         if (
+        //             Menus[i].systemflag == 1 &&
+        //             Menus[i].jspUrl == "/province"
+        //         ) {
+        //             this.province = true; //省公司
+        //         }
+        //     }
+        // }
+    },
+    mounted() {
+        this.getRole();
+        // this.getUser();
+    },
+    created() {}
+};
+</script>
+<style scoped lang="scss">
+.container-box {
+    height: calc(100vh - 200px);
+    overflow-y: scroll;
+    padding-bottom: 20px;
+}
+.adv-type {
+    margin-top: 20px;
+    display: flex;
+    justify-content: space-between;
+    flex-wrap: wrap;
+    // border: 1px solid #ddd;
+    border-radius: 5px;
+    padding: 20px;
+    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+    div {
+        width: 33%;
+        text-align: center;
+        height: 80px;
+        overflow: hidden;
+        min-width: 100px;
+        cursor: pointer;
+        padding-top: 10px;
+        margin: 10px 0;
+    }
+    div:hover {
+        background: #cfe8fc;
+        border-radius: 5px;
+    }
+    span {
+        width: 100%;
+        display: inline-block;
+        height: 40px;
+        // line-height: 40px;
+        i {
+            color: #0074d9;
+            font-size: 36px;
+        }
+    }
+    .wfour {
+        width: 25%;
+    }
+    .wfive {
+        width: 20%;
+    }
+}
+</style>

+ 568 - 0
src/pages/main/zqknowledgetop/knowledgeExamine.vue

@@ -0,0 +1,568 @@
+<template>
+
+    <fullscreen :fullscreen.sync="fullscreen" class="container">
+
+        <div class="container-box">
+            <toolList @iconCli='iconCli' :tooltit='tooltit'></toolList>
+            <div class="search">
+                <mySearch :searchList="searchList" @searchInfo="searchInfo"></mySearch>
+            </div>
+            <div class="tabbox">
+                <el-table height="calc(100% - 40px)" class="com-table" ref="multipleTable" :data="tableData"
+                    tooltip-effect="dark" size="small" border style="width: 100%" v-loading="loading">
+                    <el-table-column prop="knowledgeTitle" label="标题">
+                    </el-table-column>
+                    <el-table-column label="发布工号">
+                        <template slot-scope="scope">
+                            <span class="">{{scope.row.opNo}}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="发布姓名">
+                        <template slot-scope="scope">
+                            <span>{{$desensitization(scope.row.opName,1)}}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="pubDeptName" label="发布部门">
+                    </el-table-column>
+                    <el-table-column prop="pubTypeName" label="发布类型">
+                    </el-table-column>
+                    <el-table-column prop="pubTime" label="发布时间">
+                    </el-table-column>
+                    <el-table-column prop="stsDesc" label="状态">
+                    </el-table-column>
+
+                    <el-table-column label="操作" width="100px" align="center">
+                        <template slot-scope="scope">
+                            <el-button size="mini" v-if="scope.row.sts == 2" :disabled="!btnctrlStatus" type="danger"
+                                @click="dialogCheck(scope.row)">审核</el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+                <el-pagination class="pageBox" @current-change="currchange" layout="prev, pager, next" background
+                    :total="total">
+                </el-pagination>
+            </div>
+
+            <el-dialog title="审核知识" :visible.sync="dialogStatus" width="50%" :close-on-press-escape="false"
+                :show-close="true" :before-close="closedia" :destroy-on-close="true" :modal-append-to-body="false"
+                :close-on-click-modal="false">
+                <div v-loading="loadinged">
+                    <el-form style="height: 50vh;overflow-y: scroll;" :model="infolist" ref="infolist" :rules="rules">
+                        <div class="info-line">
+                            <el-form-item>
+                                <span>标题</span>
+                                <el-input v-model="infolist.knowledgeTitle" disabled></el-input>
+                            </el-form-item>
+                            <el-form-item>
+                                <span>发布类型</span>
+                                <el-input v-model="infolist.pubTypeName" disabled></el-input>
+                            </el-form-item>
+                            <el-form-item>
+                                <span>发布姓名</span>
+                                <el-input v-model="infolist.opName" disabled></el-input>
+                            </el-form-item>
+                            <el-form-item>
+                                <span>发布工号</span>
+                                <el-input v-model="infolist.opNo" disabled></el-input>
+                            </el-form-item>
+                        </div>
+                        <el-form-item class="info-line online">
+                            <span>发布部门</span>
+                            <el-input v-model="infolist.pubDeptName" disabled></el-input>
+                        </el-form-item>
+                        <el-form-item class="info-line online">
+                            <span>可见部门</span>
+                            <deptTree class="tree" @treeCheck="treeCheck" :defaultList="defaultList" :type="depttype"></deptTree>
+                        </el-form-item>
+                        <el-form-item class="info-line online">
+                            <span>备注</span>
+                            <el-input v-model="infolist.auditDesc" placeholder="备注" type="textarea" :rows="3">
+                            </el-input>
+                        </el-form-item>
+                        <div style="padding:0 20px 10px 100px">
+                            <uploadDown :datalist="datalist" :dialogStatus="uploadstatus"></uploadDown>
+                        </div>
+                    </el-form>
+                    <div class="dialog-footer myfooter">
+                        <el-button type="primary" @click="dialogCli(1)">通 过</el-button>
+                        <el-button type="primary" @click="dialogCli(3)">打 回</el-button>
+                        <el-button @click="dialogCli(2)">取 消</el-button>
+                    </div>
+                </div>
+            </el-dialog>
+        </div>
+    </fullscreen>
+
+</template>
+<script>
+    import myUpload from '../../../components/upload'
+    import uploadDown from '../../../components/uploadDown'
+    import mySearch from '../../../components/search'
+    import toolList from '../../../components/toolList'
+    import deptTree from '../../../components/deptTree.vue'
+
+    export default {
+        components: {
+            myUpload,
+            uploadDown,
+            mySearch,
+            toolList,
+            deptTree
+        },
+        data() {
+            const knowledgeTitle = (rule, value, callback) => {
+                if (!this.infolist.knowledgeTitle) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            const opName = (rule, value, callback) => {
+                if (!this.infolist.opName) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            const pubType = (rule, value, callback) => {
+                if (!this.infolist.pubType) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            const opNo = (rule, value, callback) => {
+                if (!this.infolist.opNo) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            return {
+                rules: {
+                    opNo: [{
+                        required: true,
+                        trigger: 'blur',
+                        validator: opNo
+                    }],
+                    pubType: [{
+                        required: true,
+                        trigger: 'change',
+                        validator: pubType
+                    }],
+                    opName: [{
+                        required: true,
+                        trigger: 'blur',
+                        validator: opName
+                    }],
+                    knowledgeTitle: [{
+                        required: true,
+                        trigger: 'blur',
+                        validator: knowledgeTitle
+                    }],
+                },
+                tooltit: '知识库审核',
+                fileInfo: {
+                    limit: 5,
+                    // url: '/market/cknowledgeZqatt/upload',//"/market/waf/uploadByMinio"
+                    url: '/market/waf/uploadByMinio',//"/market/waf/uploadByMinio"
+                    fileList: []
+                },
+                fullscreen: false,
+                total: 0,
+                pageSize: 1,
+                knowledge: {
+                    type: {
+                        value: '',
+                        options: []
+                    },
+                    startime: null,
+                    endtime: null,
+                },
+                tableData: [],
+                dialogStatus: false,
+                infolist: {},
+                titname: '',
+                disableStatus: false,
+                fileList: [],
+                visiblec: '',
+                visibleList: [],
+                attList: [],
+                datalist: {
+                    // url: '/market/compatt/downfile',//"/market/waf/downFileByMinio"
+                    url: '/market/waf/downFileByMinio',//"/market/waf/downFileByMinio"
+                    type: 1
+                },
+                uploadstatus: false,
+                userInfo: {},
+                searchList: [{
+                        type: 'sel',
+                        tit: '发布类型',
+                        value: '',
+                        width: '19%',
+                        options: []
+                    },
+                    {
+                        type: 'input',
+                        tit: '发布标题',
+                        value: '',
+                        width: '19%',
+                    },
+                    {
+                        type: 'date',
+                        tit: '开始时间',
+                        value: '',
+                        width: '19%',
+                    },
+                    {
+                        type: 'date',
+                        tit: '结束时间',
+                        value: '',
+                        width: '19%',
+                    },
+                    {
+                        type: 'input',
+                        tit: '关键字',
+                        value: '',
+                        width: '19%',
+                    },
+                ],
+                params: {},
+                centerDialogVisible: false,
+                messTit: '',
+                delid: '',
+                loading: false,
+                loadinged: false,
+                btnctrlStatus: false,
+                treeList: [],
+                defaultList:[],
+                depttype:0,
+            }
+        },
+        methods: {
+            treeCheck(v){
+                this.treeList = v;
+            },
+            closedia() {
+                this.infolist = {};
+                this.dialogStatus = false;
+                this.fileInfo.fileList = [];
+                this.defaultList = [];
+                this.depttype = 0;
+            },
+            //搜索数据
+            searchInfo(v) {
+                this.params = {};
+                v[0] ? this.params.pubType = v[0] : '';
+                v[1] ? this.params.knowledgeTitle = v[1] : '';
+                v[2] ? this.params.opTimeFrom = this.$formatDate(v[2], "YYYY-MM-DD") : '';
+                v[3] ? this.params.opTimeTo = this.$formatDate(v[3], "YYYY-MM-DD") : '';
+                if (v[4]) {
+                    this.params = {};
+                    this.params.keyWord = v[4]
+                }
+                this.getList(this.params, this.pageSize);
+            },
+            //获取列表
+            getList(v, n) {
+                this.pageSize = n;
+                let _this = this;
+                this.loading = true;
+                this.tableData = [];
+                this.$http({
+                    url: "/market/cknowledgeZq/queryChkPage",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                        "page": '{"pageNo":"' + n + '","pageSize":"10"}'
+                    },
+                    data: v,
+                }).then((res) => {
+                    this.tableData = res.data.data;
+                    this.total = res.data.totalRecord;
+                    this.loading = false;
+                });
+            },
+            //字典
+            getListype(v) {
+                this.$http({
+                    url: "/market/mkKnowledgePubMsgTypeZq/queryList",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    data: {
+                        dictCode: 'pubType'
+                    },
+                }).then((res) => {
+                    let listopt = [];
+                    res.data.forEach(item => {
+                        listopt.push({
+                            dataCode: item.id,
+                            dataName: item.pubType,
+                        })
+                    })
+                    this.searchList[0].options = listopt;
+                    this.knowledge.type.options = listopt;
+                });
+            },
+            //功能栏
+            iconCli(v) {
+                if (v === 1) {
+                    this.getList(this.params, this.pageSize);
+                }
+                if (v === 2) {
+                    this.fullscreen = !this.fullscreen
+                }
+            },
+            // 分页
+            currchange(v) {
+                this.pageSize = v;
+                this.getList(this.params, this.pageSize);
+            },
+            //查看 修改 新增
+            dialogCheck(v) {
+                this.dialogStatus = true;
+                this.visiblec = '';
+                this.infolist = {};
+                this.$http({
+                    url: "/market/cknowledgeZq/queryInfo",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    data: {
+                        id: v.id
+                    },
+                }).then((res) => {
+                    res.data.opName = this.$desensitization(res.data.opName,1);
+                    this.datalist.attList = res.data.attList;
+                    this.uploadstatus = true;
+                    this.infolist = res.data;
+                    this.fileInfo.fileList = [];
+                    this.attList = this.infolist.attList;
+                    this.treeList = this.infolist.visibleList;
+                    this.defaultList = [];
+                    res.data.attList.forEach(item => {
+                        this.fileInfo.fileList.push({
+                            name: item.fileName,
+                            url: '',
+                            id: item.id,
+                            fileName: item.fileName,
+                            fileCode: item.fileCode,
+                            opName: item.opName,
+                            opNo: item.opNo,
+                            opTime: item.opTime,
+                        });
+                    })
+                    res.data.visibleList.forEach(item => {
+                        this.defaultList.push(item.deptId);
+                    })
+                    this.depttype = 2;
+                    this.loadinged = false;
+                });
+            },
+            //添加 修改
+            dialogCli(v) {
+                this.uploadstatus = false;
+                this.datalist.attList = [];
+                this.fileInfo.fileList = [];
+                if (v === 2) {
+                    this.getUser();
+                    this.dialogStatus = false;
+                    this.defaultList = [];
+                    this.depttype = 0;
+                    return
+                }
+                this.infolist.sts = v;
+                v == 1 ? this.infolist.stsDesc = "通过" : this.infolist.stsDesc = "打回";
+                this.infolist.auditNo = this.userInfo.loginNo;
+                this.infolist.auditName = this.userInfo.loginName;
+                this.infolist.auditTime = this.$formatDate(new Date(), "YYYY-MM-DD");
+                this.submitInfo("/market/cknowledgeZq/update", v);
+            },
+            submitInfo(u, v) {
+                let _this = this;
+                this.loadinged = true;
+                this.$http({
+                    url: u,
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    data: {
+                        knowledge: this.infolist,
+                        attList: this.attList,
+                        visibleList: this.treeList
+                    },
+                }).then((res) => {
+                    this.loadinged = false;
+                    if (res.data.result === 1) {
+                        _this.$message({
+                            message: res.data.desc,
+                            type: 'error'
+                        });
+                    } else {
+                        _this.$message({
+                            message: '成功',
+                            type: 'success'
+                        });
+                        _this.fileInfo.fileList = [];
+                        _this.infolist = {};
+                        _this.dialogStatus = false;
+                        _this.getList(_this.params, _this.pageSize);
+                        _this.defaultList = [];
+                        _this.depttype = 0;
+                    }
+                })
+            },
+            ctrlbtn() {
+                let v = JSON.parse(window.sessionStorage.childrenMenus);
+                for (let i = 0; i < v.length; i++) {
+                    if (v[i].jspUrl == this.$route.path && v[i].systemflag == '1') {
+                        this.btnctrlStatus = true;
+                        return
+                    }
+                }
+            },
+            getUser() {
+                this.userInfo = JSON.parse(window.sessionStorage.userInfo);
+            }
+        },
+        mounted() {
+            this.getList(this.params, this.pageSize);
+            this.getListype();
+            this.ctrlbtn();
+        },
+        created() {
+
+        }
+    }
+</script>
+<style scoped lang="scss">
+    @import "../../../assets/style";
+
+    .iconfont {
+        font-size: 42px;
+    }
+
+    .icon-excel {
+        color: #67DB63;
+    }
+
+    .icon-word {
+        color: #FF654E;
+    }
+
+    .icon-ppt {
+        color: #FF8943;
+    }
+
+    .icon-wenjian {
+        color: #ccc;
+    }
+
+    .el-icon-picture {
+        font-size: 36px;
+        color: #ccc;
+        background: #fff;
+        padding: 4px 2px;
+        margin-bottom: 2px;
+    }
+
+    .back-box {
+        margin-top: 20px;
+        background: #F2F2F2;
+        padding: 20px;
+
+        div {
+            display: inline-block;
+            text-align: center;
+            margin-right: 20px;
+            cursor: pointer;
+
+            span {
+                display: block;
+                width: 80px;
+                overflow: hidden;
+                padding-top: 10px;
+                margin: 0 10px;
+                overflow: hidden;
+                text-overflow: ellipsis;
+                display: -webkit-box;
+                /* 将对象作为弹性伸缩盒子模型显示 */
+                -webkit-line-clamp: 1;
+                /* 控制最多显示几行 */
+                -webkit-box-orient: vertical;
+                /* 设置或检索伸缩盒对象的子元素的排列方式 */
+            }
+        }
+    }
+
+    .titbox {
+        div {
+            float: right;
+
+            i {
+                font-size: 22px;
+                margin-left: 20px;
+                cursor: pointer;
+            }
+        }
+    }
+
+    .tabbox {
+        margin-top: 15px;
+    }
+
+    .pageBox {
+        text-align: right;
+        margin-top: 10px;
+    }
+
+    .info-line {
+        width: 100%;
+        display: block;
+        padding-left: 20px;
+
+        div {
+            width: 50%;
+            display: inline-block;
+        }
+
+        span {
+            width: 80px;
+            display: inline-block;
+            text-align: left;
+
+            i {
+                color: red;
+                display: inline-block;
+                padding-right: 5px;
+            }
+        }
+
+        .el-select,
+        .el-input {
+            width: calc(100% - 100px);
+        }
+        .tree{
+            width: calc(100% - 100px);
+        }
+    }
+
+    .online {
+        width: 100%;
+
+        .el-select {
+            width: calc(100% - 100px);
+        }
+        span {
+            vertical-align: top;
+        }
+
+        .el-textarea {
+            width: calc(100% - 100px);
+        }
+    }
+</style>

+ 990 - 0
src/pages/main/zqknowledgetop/knowledgeManagement.vue

@@ -0,0 +1,990 @@
+<template>
+  <fullscreen :fullscreen.sync="fullscreen" class="container">
+    <div class="container-box">
+      <toolList @iconCli="iconCli" :tooltit="tooltit"></toolList>
+      <el-row :gutter="20" style="height: 100%">
+        <el-col :span="4" style="height: 100%">
+          <el-input
+            style="margin-top: 20px"
+            placeholder="输入关键字进行过滤"
+            v-model="filterText"
+          >
+          </el-input>
+          <div class="choice-style">
+            <div class="ant-alert-info ant-alert">
+              <i style="color: #1890ff" class="el-icon-warning"></i>当前选择:{{
+                actionName || "无"
+              }}
+              <div class="canel-style" @click="canelChoice" v-show="actionName">
+                取消选择
+              </div>
+            </div>
+          </div>
+          <div class="tree-box">
+            <el-tree
+              class="filter-tree"
+              :data="treeData"
+              node-key="id"
+              :props="defaultProps"
+              default-expand-all
+              :filter-node-method="filterNode"
+              @node-click="checkNode"
+              ref="tree"
+            ><span class="custom-tree-node" slot-scope="{ node }">
+              <span>
+                <span style="color: #009cff" class="iconfont icon-wenjianjia"></span>
+                <!-- <span
+                  v-if="
+                    node.data.hasOwnProperty('children') &&
+                    node.data.children.length > 0
+                  "
+                  style="color: #009cff"
+                  class="iconfont icon-wenjianjia"
+                ></span> -->
+                <!-- <span
+                  v-else
+                  style="color: #fdb441"
+                  class="iconfont icon-wenjian"
+                ></span> -->
+                <span
+                  :style="
+                    node.data.hasOwnProperty('parent')
+                      ? 'font-size:14px;padding-left:5px'
+                      : 'font-size:12px;padding-left:5px'
+                  "
+                  >{{ node.data.title }}</span
+                >
+              </span>
+            </span>
+            </el-tree>
+          </div>
+        </el-col>
+        <el-col :span="20" style="height: 100%">
+          <div class="search">
+            <mySearch
+              :searchList="searchList"
+              @searchInfo="searchInfo"
+            ></mySearch>
+            <el-button
+              class="btn-check"
+              size="medium"
+              type="primary"
+              @click="dialogCheck(1)"
+              >添加
+            </el-button>
+          </div>
+          <div class="tabbox">
+            <el-table
+              height="calc(100% - 40px)"
+              class="com-table"
+              ref="multipleTable"
+              :data="tableData"
+              tooltip-effect="dark"
+              size="small"
+              border
+              style="width: 100%"
+              v-loading="loading"
+              @sort-change="sortChange"
+            >
+              <el-table-column prop="title" show-overflow-tooltip label="标题">
+              </el-table-column>
+              <el-table-column label="发布工号">
+                <template slot-scope="scope">
+                  <span class="">{{ scope.row.handlerId }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="发布姓名">
+                <template slot-scope="scope">
+                  <span>{{ $desensitization(scope.row.handler, 1) }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="orgName"
+                show-overflow-tooltip
+                label="发布部门"
+              >
+              </el-table-column>
+              <el-table-column prop="typeName" label="发布类型">
+              </el-table-column>
+              <el-table-column
+                prop="catalogName"
+                show-overflow-tooltip
+                label="归属目录"
+              >
+              </el-table-column>
+              <el-table-column
+                prop="createTime"
+                show-overflow-tooltip
+                label="发布时间"
+                width="140"
+              >
+              </el-table-column>
+              <!-- <el-table-column prop="stsDesc" label="状态"> </el-table-column> -->
+              <el-table-column
+                prop="hits"
+                width="90"
+                label="点击量"
+                sortable="custom"
+              >
+              </el-table-column>
+              <el-table-column label="操作" width="250px" align="center">
+                <template slot-scope="scope">
+                  <el-button
+                    size="mini"
+                    type="success"
+                    @click="collectionHandle(scope.row)"
+                    plain
+                    >{{
+                      scope.row.collection == "0" ? "点击收藏" : "取消收藏"
+                    }}</el-button
+                  >
+                  <el-button
+                    size="mini"
+                    type="primary"
+                    plain
+                    @click="dialogCheck(2, scope.row)"
+                    >查看</el-button
+                  >
+                  <el-button
+                    size="mini"
+                    v-if="scope.row.sts != 1"
+                    type="primary"
+                    plain
+                    @click="dialogCheck(3, scope.row)"
+                    >修改</el-button
+                  >
+                  <el-button
+                    size="mini"
+                    v-if="scope.row.sts != 1"
+                    type="danger"
+                    plain
+                    @click="delLine(scope.row)"
+                  >
+                    删除</el-button
+                  >
+                </template>
+              </el-table-column>
+            </el-table>
+            <el-pagination
+              class="pageBox"
+              @current-change="currchange"
+              layout="prev, pager, next"
+              background
+              :total="total"
+            >
+            </el-pagination></div
+        ></el-col>
+      </el-row>
+
+      <el-dialog
+        :title="titname + '知识'"
+        :visible.sync="dialogStatus"
+        width="50%"
+        :close-on-press-escape="false"
+        :show-close="true"
+        :fullscreen="fullscreen"
+        :before-close="closedia"
+        :destroy-on-close="true"
+        :modal-append-to-body="false"
+        :close-on-click-modal="false"
+      >
+        <div slot="title">
+          <div>
+            {{ titname + "知识"
+            }}<i
+              class="el-icon-full-screen"
+              style="float: right; margin-right: 30px"
+              @click="
+                () => {
+                  fullscreen = !fullscreen;
+                }
+              "
+            ></i>
+          </div>
+        </div>
+        <div v-loading="loadinged">
+          <el-form
+            v-if="titname != '查看'"
+            :model="infolist"
+            :style="fullscreen ? '' : 'height: 50vh; overflow-y: scroll'"
+            ref="infolist"
+            :rules="rules"
+          >
+            <div class="info-line">
+              <el-form-item prop="title">
+                <span>标题</span>
+                <el-input v-model="infolist.title" placeholder="标题">
+                </el-input>
+              </el-form-item>
+              <el-form-item prop="type">
+                <span>发布类型</span>
+                <el-select
+                  :popper-append-to-body="false"
+                  v-model="infolist.type"
+                  placeholder="发布类型"
+                  clearable
+                  @change="verifcheck(1)"
+                >
+                  <el-option
+                    v-for="item in knowledge.type.options"
+                    :key="item.dataCode"
+                    :label="item.dataName"
+                    :value="item.dataCode"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </div>
+            <el-form-item prop="catalogName" class="info-line online">
+              <span>目录</span>
+              <div class="treebox">
+                <el-select
+                  v-model="infolist.catalogName"
+                  placeholder="请选择报表路径"
+                  ref="selectReport"
+                >
+                  <el-option
+                    style="height:auto;background-color:#fff"
+                    :value="infolist.catalogName"
+                    :label="infolist.catalogName"
+                  >
+                    <el-tree
+                      :data="treeData"
+                      :props="defaultProps"
+                      @node-click="nodeClick"
+                    ></el-tree>
+                  </el-option>
+                </el-select>
+              </div>
+              <!-- <div class="treebox tree">
+                <p style="padding-left: 10px">
+                  当前选择: <span>{{ infolist.catalogName }}</span>
+                </p>
+                <el-tree
+                  class="tree"
+                  :data="treeData"
+                  node-key="id"
+                  :props="defaultProps"
+                  @node-click="nodeClick"
+                ></el-tree>
+              </div> -->
+            </el-form-item>
+            <el-form-item class="info-line online" prop="text">
+              <span>内容</span>
+              <p-editor-tiny
+                imgType="upload"
+                v-model="infolist.text"
+              ></p-editor-tiny>
+            </el-form-item>
+            <div style="padding-left: 80px">
+              <myUpload
+                @uploadBack="uploadBack"
+                :fileInfo="fileInfo"
+                :fileList="fileInfo.fileList"
+              >
+              </myUpload>
+            </div>
+          </el-form>
+          <div v-loading="loadinged" v-else>
+            <h3 style="text-align: center; margin: 10px 0">
+              {{ infolist.title }}
+            </h3>
+            <div style="font-size: 12px; color: grey; margin: 10px 0">
+              发布时间:{{ infolist.createTime || "暂无" }} 发布人:{{
+                infolist.handler || "暂无"
+              }}
+            </div>
+            <div v-html="infolist.text"></div>
+            <div style="margin: 10px 0">
+              附件:
+              <uploadDown
+                :datalist="datalist"
+                :dialogStatus="uploadstatus"
+              ></uploadDown>
+            </div>
+          </div>
+          <div class="dialog-footer myfooter">
+            <el-button
+              type="primary"
+              v-if="titname != '查看'"
+              @click="dialogCli(1)"
+              >保 存</el-button
+            >
+            <el-button @click="dialogCli(2)">取 消</el-button>
+          </div>
+        </div>
+      </el-dialog>
+      <myMessage
+        :messTit="messTit"
+        @closeMessage="closeMessage"
+        :centerDialogVisible="centerDialogVisible"
+        v-if="centerDialogVisible"
+      ></myMessage>
+    </div>
+  </fullscreen>
+</template>
+<script>
+import myUpload from "../../../components/upload";
+import uploadDown from "../../../components/uploadDown";
+import mySearch from "../../../components/search";
+import toolList from "../../../components/toolList";
+import myMessage from "../../../components/myMessage.vue";
+export default {
+  components: {
+    myMessage,
+    myUpload,
+    uploadDown,
+    mySearch,
+    toolList,
+    PEditorTiny: () =>
+      import(
+        /* webpackChunkName: "peditor-tiny" */ "../../../components/p-editor-tiny"
+      ),
+  },
+  data() {
+    const catalogName = (rule, value, callback) => {
+      if (!this.infolist.catalogName) {
+        callback(new Error("不能为空"));
+      } else {
+        callback();
+      }
+    };
+    return {
+      actionName: "",
+      htmlS: "",
+      filterText: "",
+      choiceName: "", // 点击树提示当前选择项
+      treeData: [], //  目录树数据
+      defaultProps: {
+        children: "children",
+        label: "title",
+      },
+      fullscreen: false, // 是否全屏控制按钮
+      rules: {
+        type: [
+          {
+            required: true,
+            trigger: "change",
+            message: "请选择类型",
+          },
+        ],
+        title: [
+          {
+            required: true,
+            trigger: "blur",
+            message: "请输入标题",
+          },
+        ],
+        text: [
+          {
+            required: true,
+            trigger: "blur",
+            message: "请输入内容",
+          },
+        ],
+        catalogName: [
+          {
+            required: true,
+            trigger: "blur",
+            message: "请选择目录",
+            validator: catalogName,
+          },
+        ],
+      },
+      tooltit: "知识库管理",
+      fileInfo: {
+        limit: 5,
+        // url: "/market/cknowledgeatt/upload",//"/market/waf/uploadByMinio"
+        url: "/market/waf/uploadByMinio",//"/market/waf/uploadByMinio"
+        fileList: [],
+      },
+      total: 0,
+      pageSize: 1,
+      knowledge: {
+        type: {
+          options: [],
+        },
+      },
+      tableData: [], // 表格数据源
+      dialogStatus: false, // 弹窗开启关闭
+      infolist: {}, // 提交表单数据源
+      typeOptions: [], // 类型数据源
+      titname: "", // 操作名称 -- 新增、修改、查看
+      fileList: [], // 回显附件数据源
+      attList: [], // 修改附件数据源
+      uploadstatus: false,
+      userInfo: {}, // 登录用户信息
+      searchList: [
+        {
+          type: "sel",
+          tit: "类型",
+          value: "",
+          width: "100%",
+          options: [],
+        },
+        {
+          type: "input",
+          tit: "标题",
+          value: "",
+          width: "100%",
+        },
+        {
+          type: "sel",
+          tit: "状态",
+          value: "",
+          width: "100%",
+          options: [
+            {
+              dataCode: "0",
+              dataName: "未收藏",
+            },
+            {
+              dataCode: "1",
+              dataName: "已收藏",
+            },
+          ],
+        },
+      ],
+      params: {},
+      centerDialogVisible: false,
+      messTit: "",
+      dataId: "",
+      loading: false,
+      loadinged: false,
+      datalist: {
+        // url: "/market/compatt/downfile",//"/market/waf/downFileByMinio"
+        url: "/market/waf/downFileByMinio",//"/market/waf/downFileByMinio"
+        type: 2,
+      },
+    };
+  },
+  methods: {
+    canelChoice() {
+      this.params.catalogId = "";
+      this.actionName = "";
+      this.getList(this.params, this.pageSize);
+    },
+    collectionHandle(val) {
+      this.$http({
+        url: "/market/cnewknowledgeZq/collection",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: {
+          id: val.id,
+          collection: val.collection == "0" ? "1" : "0",
+        },
+      }).then((res) => {
+        if (res.data.result === 1) {
+          this.$message({
+            message: res.data.desc,
+            type: "error",
+          });
+        } else {
+          this.$message({
+            message: "成功",
+            type: "success",
+          });
+          this.getList(this.params, this.pageSize);
+        }
+      });
+    },
+    sortChange(val) {
+      if (val.prop == "hits") {
+        this.params.hits = val.order;
+      }
+      this.getList(this.params, this.pageSize);
+    },
+    checkNode(index, data, node) {
+      this.actionName = data.label;
+      this.searchList.map((item) => {
+        item.value = "";
+      });
+      this.params.type = "";
+      this.params.title = "";
+      this.params.collection = "";
+      this.params.catalogId = data.key;
+      this.getList(this.params, this.pageSize);
+    },
+    // 树筛选
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.title.indexOf(value) !== -1;
+    },
+    // 树点击
+    nodeClick(index, data, node) {
+      this.infolist.catalogName = data.data.title;
+      this.infolist.catalogId = data.data.id;
+      this.$forceUpdate();
+    },
+    // 获取树
+    getTreeData() {
+      this.$http({
+        url: "/market/mkKnowledgeCatalogZq/queryList",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: {},
+      }).then((res) => {
+        this.treeData = res.data;
+      });
+    },
+    // 关闭弹窗
+    closedia() {
+      this.fullscreen = false;
+      this.infolist = {};
+      this.dialogStatus = false;
+      this.fileInfo.fileList = [];
+      this.getList(this.params, this.pageSize);
+    },
+    // 上传回调
+    uploadBack(v) {
+      console.log(v);
+      this.attList = v;
+    },
+    //搜索数据
+    searchInfo(v) {
+      this.params = {};
+      v[0] ? (this.params.type = v[0]) : "";
+      v[1] ? (this.params.title = v[1]) : "";
+      v[2] ? (this.params.collection = v[2]) : "";
+      this.getList(this.params, this.pageSize);
+    },
+    //获取列表
+    getList(v, n) {
+      this.pageSize = n;
+      this.loading = true;
+      this.tableData = [];
+      this.$http({
+        url: "/market/mkNewknowledgeZq/queryPage",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+          page: '{"pageNo":"' + n + '","pageSize":"10"}',
+        },
+        data: v,
+      }).then((res) => {
+        this.tableData = res.data.data;
+        this.total = res.data.totalRecord;
+        this.loading = false;
+      });
+    },
+    //字典类型
+    getListype(v) {
+      this.$http({
+        url: "/market/mkKnowledgePubMsgTypeZq/queryList",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: {
+          dictCode: "pubType",
+        },
+      }).then((res) => {
+        let listopt = [];
+        res.data.forEach((item) => {
+          listopt.push({
+            dataCode: item.id,
+            dataName: item.pubType,
+          });
+        });
+        this.searchList[0].options = listopt;
+        this.knowledge.type.options = listopt;
+      });
+    },
+    //功能栏
+    iconCli(v) {
+      if (v === 1) {
+        this.getList(this.params, this.pageSize);
+      }
+      if (v === 2) {
+        this.fullscreen = !this.fullscreen;
+        // let isFullscreen =
+        //   document.body.scrollHeight == window.screen.height &&
+        //   document.body.scrollWidth == window.screen.width;
+        // if (!isFullscreen) {
+        //   this.requestFullscreen();
+        // } else {
+        //   this.exitFullscreen();
+        // }
+      }
+    },
+    // 全屏
+    requestFullscreen() {
+      const element = element || document.documentElement;
+      if (element.requestFullscreen) {
+        element.requestFullscreen();
+      } else if (element.msRequestFullscreen) {
+        element.msRequestFullscreen();
+      } else if (element.mozRequestFullScreen) {
+        element.mozRequestFullScreen();
+      } else if (element.webkitRequestFullscreen) {
+        element.webkitRequestFullscreen();
+      }
+    },
+    // 退出全屏
+    exitFullscreen() {
+      const element = element || document.documentElement;
+      if (document.exitFullscreen) {
+        document.exitFullscreen();
+      } else if (document.msExitFullscreen) {
+        document.msExitFullscreen();
+      } else if (document.mozCancelFullScreen) {
+        document.mozCancelFullScreen();
+      } else if (document.webkitCancelFullScreen) {
+        document.webkitCancelFullScreen();
+      }
+    },
+    // 分页
+    currchange(v) {
+      this.pageSize = v;
+      this.getList(this.params, this.pageSize);
+    },
+    //查看 修改 新增
+    dialogCheck(v, n) {
+      this.dialogStatus = true;
+      this.infolist = {};
+      if (v === 1) {
+        this.titname = "新建";
+        this.infolist = {};
+        this.getUser();
+        return;
+      } else if (v === 2) {
+        this.titname = "查看";
+        this.loadinged = true;
+      } else if (v === 3) {
+        this.titname = "修改";
+        this.loadinged = true;
+      }
+      this.$http({
+        url: "/market/cnewknowledgeZq/queryInfo",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: {
+          id: n.id,
+        },
+      }).then((res) => {
+        this.datalist.attList = res.data.attList;
+        this.uploadstatus = true;
+        this.infolist = res.data;
+        this.fileInfo.fileList = [];
+        this.attList = [];
+        res.data.attList.forEach((item) => {
+          this.fileInfo.fileList.push({
+            name: item.fileName,
+            url: "",
+            id: item.id,
+            fileName: item.fileName,
+            fileCode: item.fileCode,
+            opName: item.opName,
+            opNo: item.opNo,
+            opTime: item.opTime,
+          });
+          this.attList.push({
+            name: item.fileName,
+            url: "",
+            id: item.id,
+            fileName: item.fileName,
+            fileCode: item.fileCode,
+            opName: item.opName,
+            opNo: item.opNo,
+            opTime: item.opTime,
+          });
+        });
+        this.loadinged = false;
+      });
+    },
+    //添加 修改
+    dialogCli(v) {
+      this.uploadstatus = false;
+      this.fileInfo.fileList = [];
+      if (v === 2) {
+        this.getUser();
+        this.dialogStatus = false;
+        this.getList(this.params, this.pageSize);
+        return;
+      }
+      if (this.titname === "新建") {
+        this.submitInfo("/market/cnewknowledgeZq/addSave", v);
+      } else if (this.titname === "修改") {
+        this.submitInfo("/market/cnewknowledgeZq/update ", v);
+      }
+    },
+    submitInfo(u, v) {
+      this.$refs.infolist.validate((valid) => {
+        if (valid) {
+          let attList = [];
+          for (let i = 0; i < this.attList.length; i++) {
+            attList.push({
+              id: this.attList[i].id,
+              fileCode: this.attList[i].fileCode,
+              fileName: this.attList[i].fileName,
+              opName: this.attList[i].opName,
+              opNo: this.attList[i].opNo,
+              opTime: this.attList[i].opTime,
+            });
+          }
+          this.loadinged = true;
+          this.$http({
+            url: u,
+            method: "post",
+            headers: {
+              "Content-Type": "application/json",
+            },
+            data: {
+              newKnowleDge: this.infolist,
+              attList: attList,
+            },
+          }).then((res) => {
+            this.loadinged = false;
+            if (res.data.result === 1) {
+              this.$message({
+                message: res.data.desc,
+                type: "error",
+              });
+            } else {
+              this.$message({
+                message: "成功",
+                type: "success",
+              });
+              this.fileInfo.fileList = [];
+              this.infolist = {};
+              this.dialogStatus = false;
+              this.getList(this.params, this.pageSize);
+            }
+          });
+        }
+      });
+    },
+    //处理所需数据
+    verifcheck(v) {
+      if (v === 1) {
+        for (let i = 0; i < this.knowledge.type.options.length; i++) {
+          if (this.knowledge.type.options[i].dataCode == this.infolist.type) {
+            this.infolist.typeName = this.knowledge.type.options[i].dataName;
+          }
+        }
+      }
+    },
+    //删除
+    delLine(val) {
+      this.centerDialogVisible = true;
+      this.messTit = "即将删除此条数据, 是否删除?";
+      this.dataId = val.id;
+    },
+    closeMessage(v) {
+      this.centerDialogVisible = false;
+      if (v === 1) {
+        this.$http({
+          url: "/market/cnewknowledgeZq/delete",
+          method: "post",
+          headers: {
+            "Content-Type": "application/json",
+          },
+          data: { id: this.dataId },
+        }).then((res) => {
+          this.$message({
+            message: "删除成功",
+            type: "success",
+          });
+          this.getList(this.params, this.pageSize);
+        });
+      }
+    },
+    getUser() {
+      this.userInfo = JSON.parse(window.sessionStorage.userInfo);
+      this.infolist = {};
+      this.infolist.handler = this.userInfo.loginNo;
+      this.infolist.orgId = this.userInfo.groupId;
+      this.infolist.orgName = this.userInfo.groupName;
+      this.infolist.handlerId = this.userInfo.loginName;
+    },
+  },
+  watch: {
+    filterText(val) {
+      this.$refs.tree.filter(val);
+    },
+  },
+  mounted() {
+    this.getList(this.params, this.pageSize);
+    this.getListype();
+    this.getUser();
+    this.getTreeData();
+  },
+  created() {},
+};
+</script>
+<style>
+.el-select-dropdown__item {
+  /* padding: 0 !important; */
+}
+</style>
+<style scoped lang="scss">
+@import "../../../assets/style";
+
+// .iconfont {
+//   font-size: 42px;
+// }
+
+.icon-excel {
+  color: #67db63;
+}
+
+.icon-word {
+  color: #ff654e;
+}
+
+.icon-ppt {
+  color: #ff8943;
+}
+
+.icon-wenjian {
+  color: #ccc;
+}
+.tinymce-editor {
+  width: calc(100% - 100px) !important;
+}
+.el-icon-picture {
+  font-size: 36px;
+  color: #ccc;
+  background: #fff;
+  padding: 4px 2px;
+  margin-bottom: 2px;
+}
+.el-icon-full-screen {
+  cursor: pointer;
+}
+.back-box {
+  margin-top: 20px;
+  background: #f2f2f2;
+  padding: 20px;
+
+  div {
+    display: inline-block;
+    text-align: center;
+    margin-right: 20px;
+    cursor: pointer;
+
+    span {
+      display: block;
+      width: 80px;
+      overflow: hidden;
+      padding-top: 10px;
+      margin: 0 10px;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      display: -webkit-box;
+      /* 将对象作为弹性伸缩盒子模型显示 */
+      -webkit-line-clamp: 1;
+      /* 控制最多显示几行 */
+      -webkit-box-orient: vertical;
+      /* 设置或检索伸缩盒对象的子元素的排列方式 */
+    }
+  }
+}
+.tree-box {
+  height: calc(100% - 170px);
+  overflow: auto;
+  border: 1px solid #dcdfe6;
+  border-top: none;
+}
+
+.titbox {
+  div {
+    float: right;
+
+    i {
+      font-size: 22px;
+      margin-left: 20px;
+      cursor: pointer;
+    }
+  }
+}
+
+.tabbox {
+  margin-top: 15px;
+}
+
+.pageBox {
+  text-align: right;
+  margin-top: 10px;
+}
+
+.info-line {
+  width: 100%;
+  display: block;
+  padding-left: 20px;
+
+  div {
+    width: 50%;
+    display: inline-block;
+  }
+
+  span {
+    width: 80px;
+    display: inline-block;
+    text-align: left;
+
+    i {
+      color: red;
+      display: inline-block;
+      padding-right: 5px;
+    }
+  }
+
+  .el-select,
+  .el-input {
+    width: calc(100% - 100px);
+  }
+  .tree {
+    width: calc(100% - 100px);
+  }
+}
+
+.online {
+  width: 100%;
+
+  .el-select {
+    width: calc(100% - 100px);
+  }
+
+  span {
+    vertical-align: top;
+  }
+
+  .el-textarea {
+    width: calc(100% - 100px);
+  }
+}
+.choice-style {
+  background: rgb(255, 255, 255);
+}
+.ant-alert-info {
+  background-color: #e6f7ff;
+  border: 1px solid #91d5ff;
+}
+.ant-alert {
+  box-sizing: border-box;
+  margin: 0;
+  padding: 0;
+  color: rgb(0, 0, 0);
+  font-size: 14px;
+  font-variant: tabular-nums;
+  line-height: 1.5;
+  list-style: none;
+  font-feature-settings: "tnum";
+  position: relative;
+  padding: 5px 0;
+  word-wrap: break-word;
+  border-radius: 4px;
+}
+.canel-style {
+  color: #1890ff;
+  cursor: pointer;
+  padding-left: 10px;
+}
+</style>

+ 374 - 0
src/pages/main/zqknowledgetop/knowledgeType.vue

@@ -0,0 +1,374 @@
+<template>
+
+    <fullscreen :fullscreen.sync="fullscreen" class="container">
+        <div class="container-box">
+            <toolList @iconCli='iconCli' :tooltit='tooltit'></toolList>
+            <div class="search">
+                <mySearch :searchList="searchList" @searchInfo="searchInfo"></mySearch>
+                <el-button class="btn-check" size="medium" type="primary" @click="dialogCheck(3)">添加
+                </el-button>
+            </div>
+            <div class="tabbox">
+                <el-table height="calc(100% - 40px)" class="com-table" ref="multipleTable" :data="tableData"
+                    tooltip-effect="dark" size="small" border style="width: 100%" v-loading="loading">
+                    <el-table-column prop="pubType" label="知识类型">
+                    </el-table-column>
+                    <el-table-column prop="createName" label="配置姓名">
+                        <template slot-scope="scope">
+                            <span>{{$desensitization(scope.row.createName,1)}}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="createNo" label="配置工号">
+                        <template slot-scope="scope">
+                            <span class="">{{scope.row.createNo}}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="createTime" label="配置时间">
+                    </el-table-column>
+                    <el-table-column label="操作" width="160px" align="center">
+                        <template slot-scope="scope">
+                            <el-button size="mini" type="primary" @click="dialogCheck(1,scope.row)">查看</el-button>
+                            <el-button size="mini" type="primary" @click="dialogCheck(2,scope.row)">修改</el-button>
+                            <el-button size="mini" type="danger" @click="delLine(scope.row)">删除</el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+                <el-pagination class="pageBox" @current-change="currchange" layout="prev, pager, next" background
+                    :total="total">
+                </el-pagination>
+            </div>
+        </div>
+
+        <el-dialog :title="titname + '知识类型'" :visible.sync="dialogStatus" width="50%" :destroy-on-close="true"
+            :modal-append-to-body="false" :close-on-click-modal="false" :before-close="closedia">
+            <div v-loading="loadinged">
+                <el-form :model="infolist" ref="infolist" :rules="rules">
+                    <div class="info-line">
+                        <el-form-item prop="pubType">
+                            <span>知识类型</span>
+                            <el-input v-model="infolist.pubType" placeholder="知识类型" :disabled="disableStatus"></el-input>
+                        </el-form-item>
+                        <el-form-item>
+                            <span>创建时间</span>
+                            <el-date-picker v-model="infolist.createTime" type="date" placeholder="创建时间" disabled>
+                            </el-date-picker>
+                        </el-form-item>
+                    </div>
+
+                    <div class="info-line">
+                        <el-form-item>
+                            <span>创建工号</span>
+                            <el-input v-model="infolist.createNo" placeholder="创建工号" disabled></el-input>
+                        </el-form-item>
+                        <el-form-item>
+                            <span>创建姓名</span>
+                            <el-input v-model="infolist.createName" placeholder="" disabled></el-input>
+                        </el-form-item>
+                    </div>
+                </el-form>
+
+                <div slot="footer" class="dialog-footer myfooter">
+                    <el-button type="primary" @click="dialogCli(2)" v-if="titname !== '查看'">确 定</el-button>
+                    <el-button @click="dialogCli(1)" v-if="titname === '查看'">确 定</el-button>
+                    <el-button @click="dialogCli(1)">取 消</el-button>
+                </div>
+            </div>
+        </el-dialog>
+
+        <myMessage :messTit='messTit' @closeMessage="closeMessage" :centerDialogVisible="centerDialogVisible" v-if="centerDialogVisible"></myMessage>
+    </fullscreen>
+
+</template>
+<script>
+    import mySearch from "../../../components/search.vue";
+    import myUpload from '../../../components/upload'
+    import myMessage from "../../../components/myMessage.vue"
+    import toolList from '../../../components/toolList'
+
+    export default {
+        components: {
+            mySearch,
+            myUpload,
+            myMessage,
+            toolList
+        },
+        data() {
+            const pubType = (rule, value, callback) => {
+                if (!this.infolist.pubType) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            return {
+                rules: {
+                    pubType: [{
+                        required: true,
+                        trigger: 'blur',
+                        validator: pubType
+                    }],
+                },
+                searchList: [
+                    {
+                        type: 'input',
+                        tit: '知识类型',
+                        value: '',
+                        width: '98%',
+                    },
+                ],
+                tooltit:'知识类型管理',
+                fullscreen: false,
+                total: 0,
+                pageSize: 1,
+                tableData: [{}],
+                dialogStatus: false,
+                disableStatus: false,
+                titname: '',
+                infolist: {},
+                userInfo: {},
+                params: {},
+                centerDialogVisible: false,
+                messTit: '',
+                delid: '',
+                loading:false,
+                loadinged:false,
+            }
+        },
+        methods: {
+            closedia() {
+                this.infolist = {};
+                this.dialogStatus = false;
+            },
+            //搜索数据
+            searchInfo(v) {
+                this.params = {};
+                v[0] ? this.params.pubType = v[0] : '';
+                this.getList(this.params, this.pageSize);
+            },
+            //获取列表
+            getList(v, n) {
+                this.pageSize = n;
+                let _this = this;
+                this.loading = true;
+                this.tableData = [];
+                this.$http({
+                    url: "/market/mkKnowledgePubMsgTypeZq/queryPage",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                        "page": '{"pageNo":"' + n + '","pageSize":"10"}'
+                    },
+                    data: v,
+                }).then((res) => {
+                    this.tableData = res.data.data;
+                    this.total = res.data.totalRecord;
+                    this.loading = false;
+                });
+            },
+            // 分页
+            currchange(v) {
+                this.pageSize = v;
+                this.getList(this.params, this.pageSize);
+            },
+            //申请
+            dialogCheck(v, n) {
+                this.dialogStatus = true;
+                this.infolist = Object.assign({}, n);
+                this.infolist.createNo = this.userInfo.loginNo;
+                this.infolist.createName = this.userInfo.loginName;
+                if (v === 1) {
+                    this.titname = '查看';
+                    this.disableStatus = true;
+                } else if (v === 2) {
+                    this.titname = '修改';
+                    this.disableStatus = false;
+                } else if (v === 3) {
+                    this.titname = '添加';
+                    this.disableStatus = false;
+                    return
+                }
+                this.infolist.createName = this.$desensitization(this.infolist.createName,1);
+            },
+            //添加
+            dialogCli(v) {
+                if (v === 1) {
+                    this.infolist = {};
+                    this.dialogStatus = false;
+                    return
+                } else {
+                    this.infolist.createNo = this.userInfo.loginNo;
+                    this.infolist.createName = this.userInfo.loginName;
+                    this.infolist.createTime = this.$formatDate(new Date(), "YYYY-MM-DD");
+                    if (this.titname === '添加') {
+                        this.submitInfo("/market/cpubMsgZqType/add");
+                    } else if (this.titname === '修改') {
+                        this.submitInfo("/market/mkKnowledgePubMsgTypeZq/update", v);
+                    }
+
+                }
+            },
+            submitInfo(u) {
+                let _this = this;
+                this.$refs.infolist.validate(valid => {
+                    if (valid) {
+                        this.loadinged = true;
+                        this.$http({
+                            url: u,
+                            method: "post",
+                            headers: {
+                                "Content-Type": "application/json",
+                            },
+                            data: this.infolist,
+                        }).then((res) => {
+                            this.loadinged = false;
+                            if (res.data.result === 1) {
+                                _this.$message({
+                                    message: res.data.desc,
+                                    type: 'error'
+                                });
+                            } else {
+                                _this.$message({
+                                    message: '成功',
+                                    type: 'success'
+                                });
+                                _this.infolist = {};
+                                _this.dialogStatus = false;
+                                _this.getList({}, _this.pageSize);
+                            }
+
+                        });
+                    }
+                })
+            },
+            closeMessage(v) {
+                this.centerDialogVisible = false;
+                let _this = this;
+                if (v === 1) {
+                    _this.$http({
+                        url: "/market/mkKnowledgePubMsgTypeZq/del",
+                        method: "post",
+                        headers: {
+                            "Content-Type": "application/json",
+                        },
+                        data: {
+                            id: this.delid
+                        },
+                    }).then((res) => {
+                        if (res.data.result === 1) {
+                            _this.$message({
+                                message: res.data.desc,
+                                type: 'error'
+                            });
+                        } else {
+                            _this.$message({
+                                message: '删除成功',
+                                type: 'success'
+                            });
+                            _this.getList(this.params, this.pageSize);
+                        }
+                    });
+                }
+            },
+            //删除
+            delLine(v) {
+                this.centerDialogVisible = true;
+                this.messTit = '即将删除此条数据, 是否删除?';
+                this.delid = v.id;
+            },
+            //文件返回值
+            uploadBack(v) {
+                console.log(v)
+            },
+            //功能栏
+            iconCli(v) {
+                if (v === 1) {
+                    this.getList(this.params, this.pageSize);
+                }
+                if (v === 2) {
+                    this.fullscreen = !this.fullscreen
+                }
+            },
+            getUser() {
+                this.userInfo = JSON.parse(window.sessionStorage.userInfo);
+            }
+        },
+        mounted() {
+            this.getList({}, 1);
+            this.getUser();
+        },
+        created() {
+
+        }
+    }
+</script>
+<style scoped lang="scss">
+    .onetab {
+        margin-bottom: 20px;
+        padding: 0 20px;
+    }
+
+    .titbox {
+        div {
+            float: right;
+
+            i {
+                font-size: 22px;
+                margin-left: 20px;
+                cursor: pointer;
+            }
+        }
+    }
+
+    .tabbox {
+        margin-top: 15px;
+    }
+
+    .pageBox {
+        text-align: right;
+        margin-top: 10px;
+    }
+
+    .info-line {
+        width: 100%;
+        display: block;
+        padding-left: 20px;
+
+        div {
+            width: 50%;
+            display: inline-block;
+        }
+
+        span {
+            width: 80px;
+            display: inline-block;
+            text-align: left;
+
+            i {
+                color: red;
+                display: inline-block;
+                padding-right: 5px;
+            }
+        }
+
+        .el-select,
+        .el-input {
+            width: calc(100% - 100px);
+        }
+    }
+
+    .online {
+        width: 100%;
+
+        .el-select {
+            width: calc(100% - 100px);
+        }
+
+        span {
+            vertical-align: top;
+        }
+
+        .el-textarea {
+            width: calc(100% - 100px);
+        }
+    }
+</style>

+ 82 - 7
src/router/index.js

@@ -22,6 +22,24 @@ const routes = [{
             component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/onlineOffice/index.vue'], resolve)
         },
         {
+            meta: { name: '在线onlineOfficeExcel(IT)', keepAlive: false },
+            path: '/onlineOfficeExcel',
+            name: 'onlineOfficeExcel',
+            component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/onlineOfficeExcel/index.vue'], resolve)
+        },
+        {
+            meta: { name: '在线onlineOfficeExcel(ZQ)', keepAlive: false },
+            path: '/onlineOfficeExcelZQ',
+            name: 'onlineOfficeExcelZQ',
+            component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/onlineOfficeExcelZQ/index.vue'], resolve)
+        },
+        {
+            meta: { name: '在线onlineOfficeExcel(市场)', keepAlive: false },
+            path: '/onlineOfficeExcelSC',
+            name: 'onlineOfficeExcelSC',
+            component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/onlineOfficeExcelSC/index.vue'], resolve)
+        },
+        {
             meta: { name: '绩效', keepAlive: false },
             path: '/performance',
             name: 'performance',
@@ -1234,6 +1252,12 @@ const routes = [{
             component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/fullcalendar/calendarnet'], resolve)
         },
         {
+            meta: { name: '政企工作台日历', keepAlive: true },
+            path: '/calendarZQ',
+            name: 'calendarZQ',
+            component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/fullcalendar/calendarZQ'], resolve)
+        },
+        {
             meta: { name: '公告', keepAlive: false },
             path: '/noticec',
             name: 'noticec',
@@ -1815,6 +1839,57 @@ const routes = [{
         },
         {
             meta: {
+                name: 'ZQ知识库',
+                keepAlive: false
+            },
+            path: '/zqknowledgetop',
+            name: 'zqknowledgetop',
+            component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/zqknowledgetop/index'], resolve)
+        },
+        {
+            meta: {
+                name: 'ZQ知识库',
+                keepAlive: false
+            },
+            path: '/zqknowledgeManagement',
+            name: 'zqknowledgeManagement',
+            component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/zqknowledgetop/knowledgeManagement'], resolve)
+        }, {
+            meta: {
+                name: '新增ZQ知识库',
+                keepAlive: false
+            },
+            path: '/addzqknowledgetop',
+            name: 'addzqknowledgetop',
+            component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/zqknowledgetop/addKnowledge'], resolve)
+        },
+        {
+            meta: {
+                name: 'ZQ知识库目录',
+                keepAlive: false
+            },
+            path: '/zqknowledgeCatalogtop',
+            name: 'zqknowledgeCatalogtop',
+            component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/zqknowledgetop/catalog'], resolve)
+        }, {
+            meta: {
+                name: 'ZQ知识库审核',
+                keepAlive: false
+            },
+            path: '/zqknowledgeExaminetop',
+            name: 'zqknowledgeExaminetop',
+            component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/zqknowledgetop/knowledgeExamine'], resolve)
+        }, {
+            meta: {
+                name: 'ZQ知识库类型',
+                keepAlive: false
+            },
+            path: '/zqknowledgeTypetop',
+            name: 'zqknowledgeTypetop',
+            component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/zqknowledgetop/knowledgeType'], resolve)
+        },
+        {
+            meta: {
                 name: 'IT知识库',
                 keepAlive: false
             },
@@ -2339,49 +2414,49 @@ const routes = [{
                 ['../pages/main/accountPermissions/accountApplication.vue'], resolve)
         },
         {
-            meta: { name:  '系统资源申请', keepAlive: false },
+            meta: { name: '系统资源申请', keepAlive: false },
             path: '/resourceApply',
             name: 'resourceApply',
             component: (resolve) => require( /* webpackChunkName: "system" */
                 ['../pages/main/applyFor/resourceApply.vue'], resolve)
         },
         {
-            meta: { name:  '应急预案审批', keepAlive: false },
+            meta: { name: '应急预案审批', keepAlive: false },
             path: '/emergencyPlan',
             name: 'emergencyPlan',
             component: (resolve) => require( /* webpackChunkName: "system" */
                 ['../pages/main/applyFor/emergencyPlan.vue'], resolve)
         },
         {
-            meta: { name:  '安全审计计划管理', keepAlive: false },
+            meta: { name: '安全审计计划管理', keepAlive: false },
             path: '/securityAudit',
             name: 'securityAudit',
             component: (resolve) => require( /* webpackChunkName: "system" */
                 ['../pages/main/applyFor/securityAudit.vue'], resolve)
         },
         {
-            meta: { name:  '用户使用者变更', keepAlive: false },
+            meta: { name: '用户使用者变更', keepAlive: false },
             path: '/userChange',
             name: 'userChange',
             component: (resolve) => require( /* webpackChunkName: "system" */
                 ['../pages/main/applyFor/userChange.vue'], resolve)
         },
         {
-            meta: { name:  '口令授权', keepAlive: false },
+            meta: { name: '口令授权', keepAlive: false },
             path: '/authoriZation',
             name: 'authoriZation',
             component: (resolve) => require( /* webpackChunkName: "system" */
                 ['../pages/main/applyFor/authoriZation.vue'], resolve)
         },
         {
-            meta: { name:  '互联网端口访问', keepAlive: false },
+            meta: { name: '互联网端口访问', keepAlive: false },
             path: '/internetAccess',
             name: 'internetAccess',
             component: (resolve) => require( /* webpackChunkName: "system" */
                 ['../pages/main/applyFor/internetAccess.vue'], resolve)
         },
         {
-            meta: { name:  '备份需求及变更', keepAlive: false },
+            meta: { name: '备份需求及变更', keepAlive: false },
             path: '/backupRequire',
             name: 'backupRequire',
             component: (resolve) => require( /* webpackChunkName: "system" */