Просмотр исходного кода

Merge branch 'master' of http://47.110.251.215:3000/web/saber

gangyj 2 лет назад
Родитель
Сommit
d8e64c9e73

+ 93 - 0
src/api/manager/archivetreecontract.js

@@ -0,0 +1,93 @@
+import request from '@/router/axios';
+
+
+//树节点懒加载
+export const lazyTree = (params) => {
+    return request({
+        url: '/api/blade-manager/archiveTreeContract/lazy-tree',
+        method: 'get',
+        params
+    })
+}
+
+//词典接口
+export const dictionary = (params) => {
+    return request({
+        url: '/api/blade-system/dict-biz/dictionary',
+        method: 'get',
+        params
+    })
+}
+
+//删除
+export const remove = (params) => {
+    return request({
+        url: '/api/blade-manager/archiveTreeContract/remove',
+        method: 'post',
+        params
+    })
+}
+
+//新增
+export const archiveTreeSave = (data) => {
+    return request({
+        url: '/api/blade-manager/archiveTreeContract/save',
+        method: 'post',
+        data
+    })
+}
+
+//编辑
+export const archiveTreeUpdate = (data) => {
+    return request({
+        url: '/api/blade-manager/archiveTreeContract/update',
+        method: 'post',
+        data
+    })
+}
+
+//编辑
+export const archiveTreeDetail = (params) => {
+    return request({
+        url: '/api/blade-manager/archiveTreeContract/detail',
+        method: 'get',
+        params
+    })
+}
+
+//全加载树形结构-显示树
+export const archiveTreetree = (params) => {
+    return request({
+        url: '/api/blade-manager/archiveTreeContract/tree',
+        method: 'get',
+        params
+    })
+}
+
+
+//保存树
+export const submitDisplayConfigTree = (params) => {
+    return request({
+        url: '/api/blade-manager/archiveTreeContract/submit-display-config-tree',
+        method: 'post',
+        params
+    })
+}
+
+//获取归档树同级节点
+export const getSameGradeNode = (params) => {
+  return request({
+    url: '/api/blade-manager/archiveTreeContract/get-same-grade-node',
+    method: 'get',
+    params
+  })
+}
+
+//提交归档树手动排序
+export const submitArchiveTreeSort = (data) => {
+  return request({
+    url: '/api/blade-manager/archiveTreeContract/submit-tree-sort',
+    method: 'post',
+    data
+  })
+}

+ 51 - 0
src/api/ws.js

@@ -0,0 +1,51 @@
+
+import website from "@/config/website";
+import { getStore} from "@/util/store";
+import { getUserInfo} from '@/api/user'
+const userInfo=getStore({name: 'userInfo'}) || [];
+let ws = {};
+let socket
+ws.msgCount={
+    myMessageCount:'0',
+    userId:'1111111'
+}
+ws.setInitSocket= function(uid){
+	const user_id = userInfo.user_id;
+        socket = new WebSocket(website.socket + user_id);
+        socket.onopen = function (evt) {
+            console.log('websocket链接成功');
+        };
+      
+        socket.onclose = function (evt) {
+            console.log('websocket连接已断开')
+        };
+        let that=this
+        socket.onmessage = function ({data}) {
+            if (data) {
+                if(JSON.parse(data)!==null){
+                   ws.msgCount = JSON.parse(data)
+                    
+                }
+            }
+            console.log(data,'消息信息')
+        };
+        socket.onerror = function ({data}) {
+            console.log('发生错误:', data)
+        };
+
+}
+ws.socketSend= function(uid){
+	const user_id = userInfo.user_id;
+        console.log('发送消息:',)
+        if (socket) {
+            socket.send(user_id);
+        } else {
+            setTimeout(()=>{
+                socket.send(user_id);
+            }, 1000)
+        }
+    
+
+}
+export default ws;
+ 

+ 24 - 14
src/page/index/index.vue

@@ -26,9 +26,9 @@
           v-show="!isSearch"
         >
           <keep-alive>
-            <router-view class="avue-view" v-if="$route.meta.keepAlive" />
+            <router-view class="avue-view" v-if="$route.meta.keepAlive" :msgCount="msgCount" />
           </keep-alive>
-          <router-view class="avue-view" v-if="!$route.meta.keepAlive" />
+          <router-view class="avue-view" v-if="!$route.meta.keepAlive" :msgCount="msgCount" />
         </div>
       </div>
     </div>
@@ -66,14 +66,10 @@ export default {
       index: this,
     };
   },
- watch: {
-        $route(val){
-          //发送消息
-          this.socketSend()
-        },
-    },
 
 
+ computed: mapGetters(["isMenu", "isLock", "isCollapse", "website", "menu", "userInfo"]),
+
   data() {
     return {
       //搜索控制
@@ -83,11 +79,23 @@ export default {
       //刷新token的时间
       refreshTime: "",
       msgCount:{
-        myMessageCount:2
+        myMessageCount:'0',
+        userId:'1111111'
+  
       },
       routeinfo:{}
     };
   },
+ watch: {
+        $route(val){
+          //发送消息
+          this.socketSend()
+        },
+        menu(){
+           this.socketSend()
+        },
+
+    },
   created() {
   
     //实时检测刷新token
@@ -97,11 +105,9 @@ export default {
 
   mounted() {
     this.init();
-    this.setInitSocket()
-     
-
+   
   },
-  computed: mapGetters(["isMenu", "isLock", "isCollapse", "website", "menu", "userInfo"]),
+ 
 
   props: [],
   methods: {
@@ -153,6 +159,7 @@ export default {
     },
     // 定时检测token
     refreshToken() {
+       this.setInitSocket()
       this.refreshTime = setInterval(() => {
         const token =
           getStore({
@@ -186,9 +193,12 @@ export default {
         socket.onclose = function (evt) {
             console.log('websocket连接已断开')
         };
+        let that=this
         socket.onmessage = function ({data}) {
             if (data) {
-                this.msgCount = JSON.parse(data)
+                if(JSON.parse(data)!==null){
+                   that.msgCount = JSON.parse(data)
+                }
             }
             console.log(data,'消息信息')
         };

+ 7 - 0
src/page/index/sidebar/index.vue

@@ -34,9 +34,16 @@
     props:{
       msgCount:{
         type:Object,
+         default: {
+           myMessageCount:0
+         }
        
       }
     },
+     watch: {
+       
+    },
+
     data() {
       return {};
     },

+ 8 - 3
src/page/index/sidebar/sidebarItem.vue

@@ -18,7 +18,7 @@
             <i :class="item[iconKey]"></i>
             <span slot="title"
                   :class="{'el-menu--display':collapse && first}">{{generateTitle(item)}}</span>
-            <el-badge :value="msgCount.myMessageCount" class="menu-elbadge" v-if="item.code === 'work'&&msgCount.myMessageCount>0"/>
+            <el-badge :value="msgCount.myMessageCount||0" class="menu-elbadge" v-if="item.code === 'work'&&msgCount.myMessageCount>0"/>
           </div>
           
         </template>
@@ -31,7 +31,7 @@
             <div>
               <i :class="child[iconKey]"></i>
               <span slot="title">{{generateTitle(child)}}</span>
-              <el-badge :value="msgCount.myMessageCount" class="menu-elbadge1" v-if="child['code'] === 'new1'&&msgCount.myMessageCount>0"/>
+              <el-badge :value="msgCount.myMessageCount||0" class="menu-elbadge1" v-if="child['code'] === 'new1'&&msgCount.myMessageCount>0"/>
             </div>
           </el-menu-item>
           <sidebar-item v-else
@@ -78,12 +78,17 @@
         type: Boolean
       },
       msgCount:{
-         type: Object
+         type: Object,
+         default: {
+           myMessageCount:0
+         }
       }
     },
     created() {
     },
+
     mounted() {
+      
     },
     computed: {
       ...mapGetters(["roles"]),

+ 2 - 2
src/views/formula/edit.vue

@@ -1375,7 +1375,7 @@ export default {
         this.eleList = this.paramDataList;
         this.eleList1 = this.paramDataList;
       }else{
-        selectFormElements(tableId,{nodeId:this.nodeid}).then((res)=>{
+        selectFormElements(tableId,{nodeId:this.nodeid,type:1}).then((res)=>{
           this.eleList = res.data.data;
           this.eleList1 = res.data.data;
         })
@@ -1461,7 +1461,7 @@ export default {
         this.eleListComp = this.paramDataList;
         this.eleListComp1 = this.paramDataList;
       }else{
-        selectFormElements(tableId).then((res)=>{
+        selectFormElements(tableId,{type:1}).then((res)=>{
           this.eleListComp = res.data.data;
            this.eleListComp1 = res.data.data;
         })

+ 1 - 1
src/views/formula/edit1.vue

@@ -348,7 +348,7 @@
 
     <div class="text-align-c" v-show="!operationVisible">
       <el-button type="warning" @click="$emit('hideDialog')">取消</el-button>
-      <el-button type="primary" @click="saveFormula">保存+</el-button>
+      <el-button type="primary" @click="saveFormula">保存</el-button>
     </div>
   </div>
 

+ 26 - 26
src/views/manager/projectinfo/archivetreeRule.vue

@@ -20,7 +20,7 @@
                       clearable
                       v-model="filterText"
                     >
-                    </el-input>    
+                    </el-input>
                   <div class="scrollClass" style="height:721px">
                     <el-scrollbar style="height:100%">
                       <el-tree
@@ -36,7 +36,7 @@
                           slot-scope="{ node, data }"
                           @mouseover="mouseOver(data)"
                           @mouseleave="mouseLeave(data)"
-                            
+
                         >
                           <span style="text-overflow: ellipsis;width:101%;">{{ data.title }}</span>
                           <span
@@ -70,7 +70,7 @@
                           </span>
                         </span>
                       </el-tree>
-                      
+
                       <el-tree
                       v-show="filterText"
                       :default-expanded-keys='defaultExpanded'
@@ -122,7 +122,7 @@
                       </el-tree>
                     </el-scrollbar>
                   </div>
-                
+
             </div>
           </el-tab-pane>
           <el-tab-pane label="文书档案目录" name="second">
@@ -133,7 +133,7 @@
                   clearable
                   v-model="filterText"
                 >
-                </el-input>    
+                </el-input>
               <div class="scrollClass" style="height:721px">
                 <el-scrollbar style="height:100%">
                   <el-tree
@@ -149,7 +149,7 @@
                       slot-scope="{ node, data }"
                       @mouseover="mouseOver(data)"
                       @mouseleave="mouseLeave(data)"
-                        
+
                     >
                       <span style="text-overflow: ellipsis;">{{ data.title }}</span>
                       <span
@@ -235,19 +235,19 @@
                   </el-tree>
                 </el-scrollbar>
               </div>
-             
+
               </div>
           </el-tab-pane>
-         
+
       </el-tabs>
-       
+
       </el-col>
       <el-col
         :span="9"
         style="padding-top:30px;"
       >
         <!-- <h3>上传文件入口显示配置</h3> -->
-<!--        
+<!--
         <div
           class="peizhi"
           :style="{'height':heights-210+'px','overflow': 'hidden'}"
@@ -270,13 +270,13 @@
                     node-key="id"
                     ref="tree"
                     class="filter-tree"
-                   
+
                   >
                   </el-tree>
                  </el-scrollbar>
               </div>
-         
- 
+
+
           <div v-if="!isentryTree" style="margin-top:20px">
               <el-checkbox-group v-model="checkList">
                 <el-checkbox label="设置为最高并卷层级"></el-checkbox>
@@ -284,7 +284,7 @@
                 <el-checkbox label="设置为单独并卷层级"></el-checkbox>
               </el-checkbox-group>
               <div style="margin-top:20px;border:1px solid #e5e5e5;padding:20px">
-                    
+
                       <div style="display: flex;justify-content: space-between;">
                          <el-select v-model="publictreevalue" clearable placeholder="请选择公有质检化分树" style="    width:45%;">
                             <el-option
@@ -312,22 +312,22 @@
                   <div  class="scrollClass"  style="height:521px ;">
                       <el-scrollbar style="height:100%">
                           <el-tree
-                         
+
                             class="filter-tree"
                             :data="rightData"
                             :props="Rightprops"
                             default-expand-all
                             :filter-node-method="rulefilterNode"
-                             
+
                             ref="ruletree">
                           </el-tree>
 
                       </el-scrollbar>
                   </div>
               </div>
-          
-           
-            
+
+
+
           </div>
         </div> -->
          <div class="peizhi" :style="{'height':heights-210+'px','overflow': 'hidden'}">
@@ -359,7 +359,7 @@
                 </el-tab-pane>
                 <el-tab-pane label="工程文件入口配置" name="first"></el-tab-pane>
           </el-tabs>
-         
+
           <div class="scrollClass"  v-if="activetabName==='second'" style="height:721px">
                  <el-scrollbar style="height:100%">
                     <el-tree
@@ -382,7 +382,7 @@
                             @click.stop="() => viewConfig(data)">
                             查看配置
                           </el-button>
-                         
+
                         </span>
                    </div>
                   </el-tree>
@@ -403,12 +403,12 @@
                     node-key="id"
                     ref="tree"
                     class="filter-tree"
-                   
+
                   >
                   </el-tree>
                  </el-scrollbar>
               </div>
-         
+
         </div>
       </el-col>
     </el-row>
@@ -728,7 +728,7 @@
           <el-tab-pane label="最高层级配置" name="first"></el-tab-pane>
           <el-tab-pane label="分类并卷配置" name="second"></el-tab-pane>
           <el-tab-pane label="独立组卷配置" name="third"></el-tab-pane>
-         
+
         </el-tabs>
       <el-checkbox-group v-model="checkList">
         <el-checkbox label="复选框 A" style="margin-bottom:10px"></el-checkbox><br/>
@@ -751,7 +751,7 @@
 
 <script>
 import ManualSorting from '@/components/WbsTree/ManualSorting'
-import { archiveTreeInit, lazyTree, dictionary, remove, archiveTreeSave, archiveTreeUpdate, archiveTreeDetail, archiveTreetree, submitDisplayConfigTree, getSameGradeNode, submitArchiveTreeSort } from "@/api/manager/archivetree";
+import { lazyTree, dictionary, remove, archiveTreeSave, archiveTreeUpdate, archiveTreeDetail, archiveTreetree, submitDisplayConfigTree, getSameGradeNode, submitArchiveTreeSort } from "@/api/manager/archivetreecontract";
 import { getToken } from '@/util/auth';
 import { roletree } from "@/api/system/role.js";
 // import logoVue from '../../page/index/logo.vue';
@@ -999,7 +999,7 @@ export default {
     //切换tabs
      handleClick(tab, event) {
         console.log(tab, event);
-       
+
      },
      handletabClick(tab, event) {
         console.log(tab, event);

+ 9 - 11
src/views/manager/projectinfo/tree.vue

@@ -469,7 +469,7 @@
                       class="mg-l-10"
                       type="primary"
                       @click="handleEditFormula(scope.$index, scope.row)"
-                      >编辑元素公式</el-link
+                      >编辑元素公式.</el-link
                     >
                     <el-link
                       class="mg-l-10"
@@ -577,7 +577,7 @@
                       class="mg-l-10"
                       type="primary"
                       @click="handleEditFormula(scope.$index, scope.row)"
-                      >编辑元素公式</el-link
+                      >编辑元素公式..</el-link
                     >
                     <el-link
                       class="mg-l-10"
@@ -1172,7 +1172,7 @@
     </el-dialog>
 <!-- 元素公式 -->
     <el-dialog
-      title="元素公式22"
+      title="元素公式.."
       :visible.sync="editEleFormulaVisible"
       width="800px"
       append-to-body
@@ -1202,13 +1202,13 @@
           <template slot-scope="scope">
             <el-link
               :type="scope.row.globalFormula == 1 ? 'warning' : 'primary'"
-              @click="toFormulaEdit(scope.row,1)"
+              @click="toFormulaEdit(scope.row,10)"
               >全局公式</el-link
             >
             <el-link
               class="mg-l-10"
               :type="scope.row.isSaveFormula == 1 ? 'warning' : 'primary'"
-              @click="toFormulaEdit(scope.row,2)"
+              @click="toFormulaEdit(scope.row,20)"
               >节点公式</el-link
             >
             <!-- <el-link
@@ -2177,10 +2177,8 @@ export default {
       return res.code;
     },
     handleEditFormula(index, row) {
-      console.log('编辑元素公式',row);
       this.curEleTable = row;
-     
-      selectFormElements(this.curEleTable.initTableId).then((res) => {
+      selectFormElements(this.curEleTable.initTableId,{type:0}).then((res) => {
         this.editEleListFilter = res.data.data;
         this.editEleListAll = [].concat(this.editEleListFilter);
       });
@@ -2518,7 +2516,7 @@ export default {
   //关闭公式弹窗
     closeformulaComp(){
       console.log('关闭');
-        selectFormElements( this.curEleTable.initTableId).then((res) => {
+        selectFormElements( this.curEleTable.initTableId,{type:0}).then((res) => {
         this.editEleListFilter = res.data.data;
         this.editEleListAll = [].concat(this.editEleListFilter);
       })
@@ -2527,7 +2525,7 @@ export default {
       //关闭公式弹窗
     closeformulaComp1(){
       console.log('关闭');
-        selectFormElements( this.curEleTable.initTableId).then((res) => {
+        selectFormElements( this.curEleTable.initTableId,{type:0}).then((res) => {
         this.editEleListFilter = res.data.data;
         this.editEleListAll = [].concat(this.editEleListFilter);
       })
@@ -3375,7 +3373,7 @@ export default {
     tolinkEle(row){
       this.curLinkEleTable = row;
       this.linkCheckVisible = true;
-      selectFormElements(row.id).then((res) => {
+      selectFormElements(row.id,{type:0}).then((res) => {
         res.data.data.forEach((ele)=>{
           ele.checked = false;
           ele.show = true;

+ 4 - 4
src/views/manager/wbsinfo/edit.vue

@@ -1225,7 +1225,7 @@
     </el-dialog>
 
     <el-dialog
-      title="元素公式55"
+      title="元素公式(WBS级)"
       :visible.sync="editEleFormulaVisible"
       width="800px"
       append-to-body
@@ -1270,7 +1270,7 @@
               class="mg-l-10"
               type="danger"
               @click="delEleRowHandle(scope.$index,editEleListFilter)"
-            >删除</el-link>
+            >删除元素</el-link>
           </template>
         </el-table-column>
       </el-table>
@@ -2186,7 +2186,7 @@ export default {
 
     handleEdit (index, row) {
       this.curEleTable = row;
-      selectFormElements(this.curEleTable.id).then((res) => {
+      selectFormElements(this.curEleTable.id,{type:1}).then((res) => {
         res.data.data.forEach((element) => {
           this.eleReg.exec(element.eAllowDeviation);
           element.allow = RegExp.$1 ? RegExp.$1 : '';
@@ -2224,7 +2224,7 @@ export default {
 
     handleEditFormula (index, row) {
       this.curEleTable = row;
-      selectFormElements(this.curEleTable.id).then((res) => {
+      selectFormElements(this.curEleTable.id,{type:1}).then((res) => {
 
         this.editEleListFilter = res.data.data;
         this.editEleListAll = [].concat(this.editEleListFilter);

+ 1 - 1
src/views/manager/wbsinfo/element.vue

@@ -236,7 +236,7 @@
           <template slot-scope="scope">
             <el-link
               :type="scope.row.globalFormula == 1 ? 'warning' : 'primary'"
-              @click="toFormulaEdit(scope.row,1)"
+              @click="toFormulaEdit(scope.row,0)"
               >全局公式</el-link
             >
             <!-- <el-link

+ 23 - 2
src/views/news/news.vue

@@ -5,7 +5,12 @@
       mode="horizontal"
       @select="handleSelect"
     >
-      <el-menu-item index="1">我的消息</el-menu-item>
+      <el-menu-item index="1">
+        
+         <el-badge :value="msgCount.myMessageCount" style="display: flex;" >
+              <span class="font-bold">我的消息&nbsp;</span>
+          </el-badge>
+        </el-menu-item>
       <el-menu-item index="2">所有消息</el-menu-item>
     </el-menu>
     <avue-crud
@@ -138,6 +143,7 @@
 <script>
 import { queryBusinessUserOpinionList, manageUserOperationStatus, queryBusinessUserOpinionListAll } from "@/api/news/news.js";
 import { mapGetters } from "vuex";
+import ws from "@/api/ws.js";
 export default {
   data () {
     return {
@@ -233,6 +239,14 @@ export default {
       };
     },
   },
+  props:{
+    msgCount:{
+         type: Object,
+         default: {
+           myMessageCount:0
+         }
+    }
+  },
   created () {
     this.init();
     //console.log(this.userInfo)
@@ -272,6 +286,7 @@ export default {
       this.activeIndex = key
     },
     async SubmissionProgress () {//提交进度弹框保存按钮事件
+   
       if (this.curRow.currentLink == 2) {
         if (this.operation.manageTime) {
           await this.manageUserOperationStatus({
@@ -314,6 +329,7 @@ export default {
       }
     },
     async queryBusinessUserOpinionList () {//获取分配给当前登录用户的工单记录
+       this.showLoading=true
       const { data: res } = await queryBusinessUserOpinionList({
         current: this.page.currentPage,
         size: this.page.pageSize
@@ -322,6 +338,8 @@ export default {
       if (res.code == 200) {
         this.data = res.data.records
         this.page.total = res.data.total
+          this.showLoading=false
+
       }
     },
     async manageUserOperationStatus (da) {//业务人员提交环节操作
@@ -333,7 +351,10 @@ export default {
           message: '提交成功!'
         })
         //重新刷新列表
-        await this.queryBusinessUserOpinionList();
+        // await this.queryBusinessUserOpinionList();
+        //刷新页面
+          window.location.reload()
+
       }
     },
     async queryBusinessUserOpinionListAll () {//所有工单处理列表