Browse Source

Merge branch 'master' of https://git.agilestar.cn/hujunwei/spfm-market-front into hjw-documentCollection

# Conflicts:
#	config/dev.env.js
#	src/assets/js/common.js
hujunwei@agilestar.cn 2 years ago
parent
commit
02aa948d9a

+ 3 - 3
public/index.html

@@ -19,7 +19,7 @@
   <link rel='stylesheet' href='/static/js/luckysheet/plugins/plugins.css' />
   <link rel='stylesheet' href='/static/js/luckysheet/plugins/plugins.css' />
   <link rel='stylesheet' href='/static/js/luckysheet/css/luckysheet.css' />
   <link rel='stylesheet' href='/static/js/luckysheet/css/luckysheet.css' />
   <link rel='stylesheet' href='/static/js/luckysheet/assets/iconfont/iconfont.css' />
   <link rel='stylesheet' href='/static/js/luckysheet/assets/iconfont/iconfont.css' />
-
+  <script src="./static/js/base64.min.js"></script>
   <script src="/static/js/ace.js"></script>
   <script src="/static/js/ace.js"></script>
 </head>
 </head>
 
 
@@ -31,8 +31,8 @@
   <div id="app"></div>
   <div id="app"></div>
   <!-- built files will be auto injected -->
   <!-- built files will be auto injected -->
   <script type="text/javascript">
   <script type="text/javascript">
-    // window.staticHost = 'http://10.230.26.15:8000/mkt'; // 正式
-    window.staticHost = 'http://10.149.85.91:8000/spfm'; // 测试
+    window.staticHost = 'http://10.230.26.15:8000/mkt'; // 正式
+    // window.staticHost = 'http://10.149.85.91:8000/spfm'; // 测试
     // window.staticHost = 'http://192.168.0.103:9600/';
     // window.staticHost = 'http://192.168.0.103:9600/';
     // window.staticHost = 'http://43.138.50.94:9600/';
     // window.staticHost = 'http://43.138.50.94:9600/';
 
 

File diff suppressed because it is too large
+ 8 - 0
public/static/js/base64.min.js


+ 13 - 0
src/assets/js/common.js

@@ -263,6 +263,7 @@ let common = {
                     if (!obj.disableLoading) {
                     if (!obj.disableLoading) {
                         loading.close()
                         loading.close()
                     }
                     }
+<<<<<<< .mine
                     // if (response.data.code === 1 ||response.data.code == '1') {
                     // if (response.data.code === 1 ||response.data.code == '1') {
                     //     bus.$message.success(response.data.message)
                     //     bus.$message.success(response.data.message)
                     //      loading.close()
                     //      loading.close()
@@ -273,6 +274,18 @@ let common = {
                              loading.close()
                              loading.close()
                              success(response.data?response.data:response)
                              success(response.data?response.data:response)
                              return response
                              return response
+=======
+                    if (response.data.code === 1 ||response.data.code == '1') {
+                        bus.$message.success(response.data.data.message)
+                         loading.close()
+                         success(response.data.data)
+                         return response
+                        // if (response.code === 1 ||response.code == '1') {
+                        //     bus.$message.success(response.data.message)
+                        //      loading.close()
+                        //      success(response.data)
+                        //      return response
+>>>>>>> .theirs
                     } else {
                     } else {
                         if (obj.printMsg) {
                         if (obj.printMsg) {
                             if (response.message) {
                             if (response.message) {

+ 2 - 2
src/components/uploadDown.vue

@@ -42,8 +42,8 @@
                 }
                 }
             },
             },
             uploadsee(v) {
             uploadsee(v) {
-                let url = encodeURIComponent(v.callPath);
-                this.srcsc = 'http://114.215.71.182:8012/onlinePreview?url=' + url;
+                let url = encodeURIComponent(Base64.encode(v.callPath));
+                this.srcsc = 'http://10.230.15.228:8012/onlinePreview?url=' + url;
                 this.ifrshow=true;
                 this.ifrshow=true;
                 // window.open('http://114.215.71.182:8012/onlinePreview?url=' + url);
                 // window.open('http://114.215.71.182:8012/onlinePreview?url=' + url);
             },
             },

+ 198 - 139
src/components/workDeptThree.vue

@@ -1,149 +1,208 @@
 <template>
 <template>
-    <div class="treebox" v-loading="loading">
-        <!-- <el-input placeholder="输入关键字进行过滤" v-model="filterText"></el-input> -->
-        <el-tree :highlight-current="true" :check-strictly="true" ref="tree" @check-change="handleCheckChange"
-            :data="treeList" node-key="id" :default-checked-keys="defaultListc" :default-expanded-keys="defaultListc"
-            @node-click="handleNodeClick" @node-expand="handleNodeClick" >
-            <span class="custom-tree-node" slot-scope="{ node, data }" @click="cs(node)">
-                <em style="display: inline-block;width: 20px;" v-if="node.data.haveUserFlag == 'N'&& node.data.children.length == 0"></em>
-                <i class="el-icon-caret-right" v-if="node.data.haveUserFlag == 'Y' && node.data.children.length == 0"></i>
-                <el-checkbox style="margin-right: 10px" v-model="node.checked" v-if="node.data.type == 1"></el-checkbox>
-                <span>{{ node.label }}</span>
-            </span>
-        </el-tree>
-    </div>
+  <div class="treebox" v-loading="loading">
+    <!-- <el-input placeholder="输入关键字进行过滤" v-model="filterText"></el-input> -->
+    <el-tree
+      :default-expand-all="expandAll"
+      :highlight-current="true"
+      :check-strictly="true"
+      ref="tree"
+      @check-change="handleCheckChange"
+      :data="treeList"
+      node-key="id"
+      :default-checked-keys="defaultListc"
+      :default-expanded-keys="defaultListc"
+      @node-click="handleNodeClick"
+      @node-expand="handleNodeClick"
+    >
+      <span
+        class="custom-tree-node"
+        slot-scope="{ node, data }"
+        @click="cs(node)"
+      >
+        <em
+          style="display: inline-block; width: 20px"
+          v-if="node.data.haveUserFlag == 'N' && node.data.children.length == 0"
+        ></em>
+        <i
+          class="el-icon-caret-right"
+          v-if="node.data.haveUserFlag == 'Y' && node.data.children.length == 0"
+        ></i>
+        <el-checkbox
+          style="margin-right: 10px"
+          v-model="node.checked"
+          v-if="node.data.type == 1"
+        ></el-checkbox>
+        <span>{{ node.label }}</span>
+      </span>
+    </el-tree>
+  </div>
 </template>
 </template>
 
 
 <script>
 <script>
-    export default {
-        props: ["defaultList", "type", "closeList","treeList"],
-        data() {
-            return {
-                treeList: [],
-                opt: [],
-                defaultProps: {
-                    children: "children",
-                    label: "label",
-                },
-                defaultListc: [],
-                loading:false,
-                filterText: '',
-            };
-        },
-        methods: {
-            filterNode(value, data) {
-                if (!value) return true;
-                return data.label.indexOf(value) !== -1;
-            },
-            cs(v){
-                // console.log(v)
-            },
-            // getTree(v) {
-            //     this.loading = true;
-            //     this.$http({
-            //         url: "/sysmgr/csysdept/queryAllList",
-            //         method: "post",
-            //         headers: {
-            //             "Content-Type": "application/json",
-            //         },
-            //         data: {
-            //             parentorgid: v,
-            //         },
-            //     }).then((res) => {
-            //         this.treeList = res.data;
-            //         this.loading = false;
-            //     });
-            // },
-            handleCheckChange(v) {
-                let opt = [];
-                let list = this.$refs.tree.getCheckedNodes();
-                for (let i = 0; i < list.length; i++) {
-                    if (list[i].type == 1) {
-                        opt.push({
-                            receiveNo: list[i].loginNoStr,
-                            receiveName: list[i].label,
-                            deptName: list[i].displayname,
-                            deptCode: list[i].groupId,
-                            id: list[i].id,
-                            type: list[i].type,
-                            label: list[i].label,
-                        });
-                    }
-                }
-                this.$emit("treeCheck", opt);
-            },
-            handleNodeClick(v) {
-                let s = false;
-                if (v.children && v.children.length == 0) {
-                    s = true;
-                }
-                if (v.type) {
-                    return;
-                }
-                if (
-                    v.children &&
-                    v.children.length > 0 &&
-                    v.children[v.children.length - 1].type == 1
-                ) {
-                    return;
-                }
-                this.$http({
-                    url: "/sysmgr/sysuserinfo/queryList",
-                    method: "post",
-                    headers: {
-                        "Content-Type": "application/json",
-                    },
-                    data: {
-                        groupId: v.o,
-                    },
-                }).then((res) => {
-                    res.data.forEach((item) => {
-                        v.children.push({
-                            id: item.id,
-                            label: item.loginNameStr,
-                            type: 1,
-                            displayname: v.displayname,
-                            groupId: item.groupId,
-                            loginNoStr: item.loginNoStr,
-                        });
-                    });
-                });
-                for (let i = 0; i < this.$refs.tree.store._getAllNodes().length; i++) {
-                    if (s && v.o == this.$refs.tree.store._getAllNodes()[i].data.o) {
-                        this.$refs.tree.store._getAllNodes()[i].expanded = true;
-                        return;
-                    }
-                }
-            },
-        },
-        created() {
-            // this.getTree();
-            this.defaultListc = this.defaultList;
+export default {
+  props: ["defaultList", "type", "closeList", "treeList"],
+  data() {
+    return {
+      expandAll: false,
+      opt: [],
+      defaultProps: {
+        children: "children",
+        label: "label",
+      },
+      defaultListc: [],
+      loading: false,
+      filterText: "",
+    };
+  },
+  methods: {
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.label.indexOf(value) !== -1;
+    },
+    cs(v) {
+      // console.log(v)
+    },
+    // getTree(v) {
+    //     this.loading = true;
+    //     this.$http({
+    //         url: "/sysmgr/csysdept/queryAllList",
+    //         method: "post",
+    //         headers: {
+    //             "Content-Type": "application/json",
+    //         },
+    //         data: {
+    //             parentorgid: v,
+    //         },
+    //     }).then((res) => {
+    //         this.treeList = res.data;
+    //         this.loading = false;
+    //     });
+    // },
+    handleCheckChange(v) {
+      let opt = [];
+      let list = this.$refs.tree.getCheckedNodes();
+      for (let i = 0; i < list.length; i++) {
+        if (list[i].type == 1) {
+          opt.push({
+            receiveNo: list[i].loginNoStr,
+            receiveName: list[i].label,
+            deptName: list[i].displayname,
+            deptCode: list[i].groupId,
+            id: list[i].id,
+            type: list[i].type,
+            label: list[i].label,
+            loginNameStr:list[i].loginNameStr,
+            loginNoStr: list[i].loginNoStr,
+          });
+        }
+      }
+      this.$emit("changeTree", opt);
+    },
+    handleNodeClick(v) {
+      let s = false;
+      if (v.children && v.children.length == 0) {
+        s = true;
+      }
+      if (v.type) {
+        return;
+      }
+      if (
+        v.children &&
+        v.children.length > 0 &&
+        v.children[v.children.length - 1].type == 1
+      ) {
+        return;
+      }
+      this.$http({
+        url: "/sysmgr/sysuserinfo/queryList",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
         },
         },
-        watch: {
-            filterText(val) {
-                this.$refs.tree.filter(val);
-            },
-            type() {
-                this.defaultListc = this.defaultList;
-                this.$forceUpdate();
-            },
-            defaultList() {
-                this.$forceUpdate();
-            },
-            closeList() {
-                this.$refs.tree.setCheckedNodes(this.closeList);
-            },
+        data: {
+          groupId: v.o,
         },
         },
-    };
+      }).then((res) => {
+        res.data.forEach((item) => {
+          v.children.push({
+            id: item.id,
+            label: item.loginNameStr,
+            type: 1,
+            displayname: v.displayname,
+            groupId: item.groupId,
+            loginNoStr: item.loginNoStr,
+          });
+        });
+      });
+      for (let i = 0; i < this.$refs.tree.store._getAllNodes().length; i++) {
+        if (s && v.o == this.$refs.tree.store._getAllNodes()[i].data.o) {
+          this.$refs.tree.store._getAllNodes()[i].expanded = true;
+          return;
+        }
+      }
+    },
+  },
+  created() {
+    // this.getTree();
+    // console.log(this.treeList);
+    this.defaultListc = this.defaultList;
+  },
+  watch: {
+    treeList(newVal, oldVal) {
+      console.log(newVal);
+      this.$nextTick(() => {
+        if (newVal.length <= 1) {
+          this.isexpand = true;
+
+          for (
+            var i = 0;
+            i < this.$refs.tree.store._getAllNodes().length;
+            i++
+          ) {
+
+            this.$refs.tree.store._getAllNodes()[i].expanded = true;
+          }
+        } else {
+          for (
+            var i = 0;
+            i < this.$refs.tree.store._getAllNodes().length;
+            i++
+          ) {
+
+            this.$refs.tree.store._getAllNodes()[i].expanded =false;
+          }
+        }
+      });
+    },
+    filterText(val) {
+      this.$refs.tree.filter(val);
+    },
+    type() {
+      this.defaultListc = this.defaultList;
+      this.$forceUpdate();
+    },
+    defaultList() {
+      this.$forceUpdate();
+    },
+    closeList() {
+      this.$refs.tree.setCheckedNodes(this.closeList);
+    },
+  },
+};
 </script>
 </script>
 
 
 <style scoped lang="scss">
 <style scoped lang="scss">
-    .el-icon-caret-right{
-        color: #ccc;
-        margin:0 5px;
-    }
-    .treebox {
-        border: 1px solid #ddd;
-    }
+// ::v-deep .el-tree--highlight-current {
+//
+// }
+::v-deep .el-tree--highlight-current {
+  height: 500px;
+}
+.el-icon-caret-right {
+  color: #ccc;
+  margin: 0 5px;
+}
+.treebox {
+  border: 1px solid #ddd;
+}
 </style>
 </style>

+ 81 - 25
src/components/workflow.vue

@@ -9,7 +9,20 @@
               选择路径
               选择路径
 
 
               <div class="flex-path-list">
               <div class="flex-path-list">
-                <div v-if="transferStatus" :class="active" @click="clickTransfer(1)">转派</div>
+                <div
+                  v-if="manyReassignment"
+                  :class="actives"
+                  @click="clickManyTransfer(1)"
+                >
+                  转派
+                </div>
+                <div
+                  v-if="transferStatus"
+                  :class="active"
+                  @click="clickTransfer(1)"
+                >
+                  转派
+                </div>
                 <div v-if="copyStatus" @click="clickTransfer(2)">抄送</div>
                 <div v-if="copyStatus" @click="clickTransfer(2)">抄送</div>
                 <div
                 <div
                   v-for="(item, index) in node.nextShapes"
                   v-for="(item, index) in node.nextShapes"
@@ -136,14 +149,14 @@ export default {
   name: "workflow",
   name: "workflow",
   data() {
   data() {
     return {
     return {
-      active:'',
+      active: "",
       transferStatus: false, //转派按钮控制
       transferStatus: false, //转派按钮控制
       manyPeopleStatus: false, //多人处理下发任务
       manyPeopleStatus: false, //多人处理下发任务
       TransferStatus: false, //是否点击转派状态
       TransferStatus: false, //是否点击转派状态
       copyStatus: false, //抄送按钮控制
       copyStatus: false, //抄送按钮控制
       CopyStatus: false, //是否点击抄送状态
       CopyStatus: false, //是否点击抄送状态
       node: [], //路径列表
       node: [], //路径列表
-      seleIndex: "", //点击路径下标
+      seleIndex: "1099", //点击路径下标
       commonlyList: [], //常用意见数组
       commonlyList: [], //常用意见数组
       textarea: "未填写意见", //意见内容字段
       textarea: "未填写意见", //意见内容字段
       copyUser: "", //抄送人员列表
       copyUser: "", //抄送人员列表
@@ -159,6 +172,8 @@ export default {
       demand: "",
       demand: "",
       nextDealManList: "",
       nextDealManList: "",
       isLastManStatus: false,
       isLastManStatus: false,
+      manyReassignment: false,
+      actives: "",
     };
     };
   },
   },
   props: {
   props: {
@@ -170,12 +185,24 @@ export default {
     requestForm: {
     requestForm: {
       type: Object,
       type: Object,
     },
     },
+    adminResourceId: {
+      type: String,
+    },
   },
   },
   created() {
   created() {
+    if (this.adminResourceId) {
+      this.manyReassignment = true;
+    }
     this.getNextPath(this.list.resourceId, 1);
     this.getNextPath(this.list.resourceId, 1);
     this.getMetirialType();
     this.getMetirialType();
   },
   },
   methods: {
   methods: {
+    //多人转派
+    clickManyTransfer() {
+      (this.actives = this.actives != "" ? "" : "active"),
+        (this.seleIndex = "1099");
+      this.getNextPath(this.adminResourceId, 3);
+    },
     //生成需求决策编号接口
     //生成需求决策编号接口
     getDemand() {
     getDemand() {
       this.$http({
       this.$http({
@@ -204,26 +231,49 @@ export default {
       function success(data) {}
       function success(data) {}
     },
     },
     async nextWorks(lists, list) {
     async nextWorks(lists, list) {
-      let _this = this;
-      let obj = {
-        url: _this.$url.formList.nextWork, //下一步工作流接口
-        data: lists,
-        status: "form",
-      };
-      await this.common.httpPost(obj, success);
-      function success(data) {
-        console.log(data);
-        let updateList = {
-          taskId: data.taskid,
-          id: _this.list.id,
-          resourceId: _this.nodes.currentShape[0].resourceId,
+     let listss = {
+          userId:this.nextDealManList , //人员id
+          taskId: this.list.taskId, //表单标识
+          loginstr: JSON.parse(window.sessionStorage.userInfo).loginNoStr,
+          // taskName: this.clicknextName, //流程节点
+          content: this.textarea, //意见内容
+        };
+      if (this.manyReassignment == true) {
+        let _this = this;
+        let obj = {
+          url: _this.$url.formList.getNewTransferTask + _this.list.taskId, //下一步工作流接口
+          data: listss,
+          status: "form",
+        };
+        await this.common.httpPost(obj, success);
+        function success(data) {
+          _this.$emit("beforeClose", true);
+        }
+      } else {
+        let _this = this;
+        let obj = {
+          url: _this.$url.formList.nextWork, //下一步工作流接口
+          data: lists,
+          status: "form",
         };
         };
-        list.taskId = data.taskid;
-        _this.setUpdate(updateList);
-        _this.getLastManList(list);
+        await this.common.httpPost(obj, success);
+        function success(data) {
+          console.log(data);
+          let updateList = {
+            taskId: data.taskid,
+            id: _this.list.id,
+            resourceId: _this.nodes.currentShape[0].resourceId,
+          };
+          list.taskId = data.taskid;
+          _this.setUpdate(updateList);
+          _this.getLastManList(list);
+        }
       }
       }
     },
     },
     submitWork() {
     submitWork() {
+      console.log(this.nodes);
+      //多人转派环节
+
       //多人会签处理环节
       //多人会签处理环节
       let list = {
       let list = {
         userId: JSON.parse(window.sessionStorage.userInfo).loginNo, //人员id
         userId: JSON.parse(window.sessionStorage.userInfo).loginNo, //人员id
@@ -232,6 +282,7 @@ export default {
         taskName: this.clicknextName, //流程节点
         taskName: this.clicknextName, //流程节点
         userCode: JSON.parse(window.sessionStorage.userInfo).loginNo, //人员code
         userCode: JSON.parse(window.sessionStorage.userInfo).loginNo, //人员code
         content: this.textarea, //意见内容
         content: this.textarea, //意见内容
+        resourceId: this.nodes.currentShape[0].resourceId,
       };
       };
       let newlist = {
       let newlist = {
         userId: JSON.parse(window.sessionStorage.userInfo).loginNo, //人员id
         userId: JSON.parse(window.sessionStorage.userInfo).loginNo, //人员id
@@ -241,13 +292,14 @@ export default {
         userCode: JSON.parse(window.sessionStorage.userInfo).loginNo, //人员code
         userCode: JSON.parse(window.sessionStorage.userInfo).loginNo, //人员code
         content: this.textarea, //意见内容
         content: this.textarea, //意见内容
       };
       };
+
       if (this.manyPeopleStatus == true) {
       if (this.manyPeopleStatus == true) {
         list.procinstid = this.list.processId;
         list.procinstid = this.list.processId;
         // if (this.backThree.length <= 1) {
         // if (this.backThree.length <= 1) {
         //   this.$message.error("请选择多人");
         //   this.$message.error("请选择多人");
         //   return;
         //   return;
         // } else {
         // } else {
-          list.lastmanList = this.nextDealManList;
+        list.lastmanList = this.nextDealManList;
         // }
         // }
         if (this.nodes.currentShape) {
         if (this.nodes.currentShape) {
           newlist.resolution = this.nodes.currentShape[0].condition.resolution;
           newlist.resolution = this.nodes.currentShape[0].condition.resolution;
@@ -462,7 +514,7 @@ export default {
       }
       }
 
 
       this.$http({
       this.$http({
-       url: "/market/api/user/info/queryNodePers?params=" + id,
+        url: "/market/api/user/info/queryNodePers?params=" + id,
         method: "post",
         method: "post",
         headers: {
         headers: {
           "Content-Type": "application/json",
           "Content-Type": "application/json",
@@ -471,26 +523,27 @@ export default {
       }).then((res) => {
       }).then((res) => {
         console.log(res);
         console.log(res);
         if (status === 2) {
         if (status === 2) {
+          console.log(777);
           this.treeCopyList = res.data; //抄送
           this.treeCopyList = res.data; //抄送
           //  this.$refs.defTrees.treeList = res.data;
           //  this.$refs.defTrees.treeList = res.data;
         } else {
         } else {
           // let list = []
           // let list = []
           // list.push(res.data)
           // list.push(res.data)
           // this.treeList = list; //抄送
           // this.treeList = list; //抄送
-          this.treeList = res.data
+          this.treeList = res.data;
           // this.$refs.defTree.treeList = res.data;
           // this.$refs.defTree.treeList = res.data;
         }
         }
       });
       });
     },
     },
 
 
-   
     //转派按钮方法
     //转派按钮方法
     clickTransfer(e) {
     clickTransfer(e) {
       this.$refs.defTree.userList = [];
       this.$refs.defTree.userList = [];
       this.backThree = [];
       this.backThree = [];
       this.treeList = [];
       this.treeList = [];
       if (e == 1) {
       if (e == 1) {
-        this.active = this.active!=""?'':'active'
+        this.seleIndex = "";
+        this.active = this.active != "" ? "" : "active";
         this.manyPeopleStatus = false;
         this.manyPeopleStatus = false;
         this.TransferStatus = true;
         this.TransferStatus = true;
       } else if (e == 2) {
       } else if (e == 2) {
@@ -500,13 +553,15 @@ export default {
     },
     },
     //点击节点获取下一步的处理人字段
     //点击节点获取下一步的处理人字段
     clickGetTree(e, index) {
     clickGetTree(e, index) {
-      this.active = ''
+      this.active = "";
+      this.actives = "";
       this.$refs.defTree.userList = [];
       this.$refs.defTree.userList = [];
       this.backThree = [];
       this.backThree = [];
       // this.CopyStatus = false;
       // this.CopyStatus = false;
       this.TransferStatus = false;
       this.TransferStatus = false;
       //   this.clickTaskName = e.properties.name;
       //   this.clickTaskName = e.properties.name;
       this.clicknextName = e.properties.name;
       this.clicknextName = e.properties.name;
+      console.log(index);
       this.seleIndex = index;
       this.seleIndex = index;
       this.getNextPath(e.resourceId, 3); //1 为点击后获取线
       this.getNextPath(e.resourceId, 3); //1 为点击后获取线
     },
     },
@@ -545,6 +600,7 @@ export default {
           }
           }
         }
         }
       }
       }
+      console.log(this.backThree);
     },
     },
     //获取字典表常用意见
     //获取字典表常用意见
     getMetirialType(e) {
     getMetirialType(e) {

+ 133 - 46
src/components/workflowBase.vue

@@ -8,10 +8,27 @@
               选择路径
               选择路径
 
 
               <div class="flex-path-list">
               <div class="flex-path-list">
-                <div v-if="transferStatus" @click="clickTransfer(1)">转派</div>
+                <div
+                  v-if="manyReassignment"
+                  :class="actives"
+                  @click="clickManyTransfer(1)"
+                >
+                  转派
+                </div>
+                <div
+                  v-if="transferStatus"
+                  :class="active"
+                  @click="clickTransfer(1)"
+                >
+                  转派
+                </div>
                 <div v-if="copyStatus" @click="clickTransfer(2)">抄送</div>
                 <div v-if="copyStatus" @click="clickTransfer(2)">抄送</div>
-                <div v-for="(item, index) in node.nextShapes" :key="index" :class="seleIndex == index ? 'active' : ''"
-                  @click="clickGetTree(item, index)">
+                <div
+                  v-for="(item, index) in node.nextShapes"
+                  :key="index"
+                  :class="seleIndex == index ? 'active' : ''"
+                  @click="clickGetTree(item, index)"
+                >
                   {{ item.properties.name }}
                   {{ item.properties.name }}
                 </div>
                 </div>
               </div>
               </div>
@@ -20,11 +37,18 @@
           <div class="flex-commons">
           <div class="flex-commons">
             <div class="flex-left-header-text">
             <div class="flex-left-header-text">
               常用意见
               常用意见
-              <span @click="clickEdit" class="flex-icon"><i class="el-icon-edit"></i>修改</span>
+              <span @click="clickEdit" class="flex-icon"
+                ><i class="el-icon-edit"></i>修改</span
+              >
             </div>
             </div>
             <div class="flex-slide">
             <div class="flex-slide">
-              <div v-for="(item, index) in commonlyList" :key="index" ref="common" class="flex-common"
-                @click="clickCommonly($event)">
+              <div
+                v-for="(item, index) in commonlyList"
+                :key="index"
+                ref="common"
+                class="flex-common"
+                @click="clickCommonly($event)"
+              >
                 {{ item.dataName }}
                 {{ item.dataName }}
               </div>
               </div>
             </div>
             </div>
@@ -32,17 +56,30 @@
         </div>
         </div>
         <div class="flex-opinion">
         <div class="flex-opinion">
           <div class="flex-left-header-text">意见内容</div>
           <div class="flex-left-header-text">意见内容</div>
-          <el-input type="textarea" autosize placeholder="请输入内容" v-model="textarea">
+          <el-input
+            type="textarea"
+            autosize
+            placeholder="请输入内容"
+            v-model="textarea"
+          >
           </el-input>
           </el-input>
         </div>
         </div>
       </div>
       </div>
       <div class="flex-right" :class="{ copyClass: CopyStatus }">
       <div class="flex-right" :class="{ copyClass: CopyStatus }">
-        <div class="flex-left-header-text" :class="{ 'flex-right-text': CopyStatus }">
+        <div
+          class="flex-left-header-text"
+          :class="{ 'flex-right-text': CopyStatus }"
+        >
           本部门人员办理
           本部门人员办理
           <div style="display: flex">
           <div style="display: flex">
             <div class="flex-header-text-tree">
             <div class="flex-header-text-tree">
               候选人
               候选人
-              <deptTree ref="defTree" class="flex-slide" :treeList="treeList" @changeTree="changeTree" />
+              <deptTree
+                ref="defTree"
+                class="flex-slide"
+                :treeList="treeList"
+                @changeTree="changeTree"
+              />
             </div>
             </div>
             <div class="flex-header-text-tree">
             <div class="flex-header-text-tree">
               已选人员
               已选人员
@@ -58,7 +95,12 @@
           <div style="display: flex">
           <div style="display: flex">
             <div class="flex-header-text-tree">
             <div class="flex-header-text-tree">
               抄送人
               抄送人
-              <deptTree ref="defTrees" class="flex-slide" :treeList="treeCopyList" @changeTree="changeTreeCopy" />
+              <deptTree
+                ref="defTrees"
+                class="flex-slide"
+                :treeList="treeCopyList"
+                @changeTree="changeTreeCopy"
+              />
             </div>
             </div>
             <div class="flex-header-text-tree">
             <div class="flex-header-text-tree">
               已选人员
               已选人员
@@ -73,12 +115,23 @@
         <el-button type="primary" @click="submitWork()">提交</el-button>
         <el-button type="primary" @click="submitWork()">提交</el-button>
       </div>
       </div>
     </div>
     </div>
-    <el-dialog title="修改常用意见" :visible.sync="editStatus" width="100%" :before-close="editCloses" :modal="false"
-      :destroy-on-close="true">
+    <el-dialog
+      title="修改常用意见"
+      :visible.sync="editStatus"
+      width="100%"
+      :before-close="editCloses"
+      :modal="false"
+      :destroy-on-close="true"
+    >
       <div style="overflow-y: scroll; overflow-x: hidden; height: 240px">
       <div style="overflow-y: scroll; overflow-x: hidden; height: 240px">
-        <div v-for="(item, index) in commonlyList" :key="index" ref="common" class="flex-common">
+        <div
+          v-for="(item, index) in commonlyList"
+          :key="index"
+          ref="common"
+          class="flex-common"
+        >
           {{ item.dataName
           {{ item.dataName
-}}<i class="el-icon-circle-close" @click="deleStatus(item)"></i>
+          }}<i class="el-icon-circle-close" @click="deleStatus(item)"></i>
         </div>
         </div>
         <div class="flex-common">
         <div class="flex-common">
           <i class="el-icon-circle-plus-outline" @click="addStatus()"></i>
           <i class="el-icon-circle-plus-outline" @click="addStatus()"></i>
@@ -97,6 +150,7 @@ export default {
   name: "workflow",
   name: "workflow",
   data() {
   data() {
     return {
     return {
+      active: "",
       manyPeopleStatus: false, //多人处理下发任务
       manyPeopleStatus: false, //多人处理下发任务
       editStatus: false, //常用意见控制
       editStatus: false, //常用意见控制
       transferStatus: false, //转派按钮控制
       transferStatus: false, //转派按钮控制
@@ -104,7 +158,7 @@ export default {
       copyStatus: false, //抄送按钮控制
       copyStatus: false, //抄送按钮控制
       CopyStatus: false, //是否点击抄送状态
       CopyStatus: false, //是否点击抄送状态
       node: [], //路径列表
       node: [], //路径列表
-      seleIndex: "", //点击路径下标
+      seleIndex: "1099", //点击路径下标
       commonlyList: [], //常用意见数组
       commonlyList: [], //常用意见数组
       textarea: "未填写意见", //意见内容字段
       textarea: "未填写意见", //意见内容字段
       copyUser: "", //抄送人员列表
       copyUser: "", //抄送人员列表
@@ -119,6 +173,8 @@ export default {
       demand: "",
       demand: "",
       nextDealManList: "",
       nextDealManList: "",
       isLastManStatus: false,
       isLastManStatus: false,
+      manyReassignment: false,
+      actives: "",
     };
     };
   },
   },
   props: {
   props: {
@@ -130,30 +186,75 @@ export default {
     requestForm: {
     requestForm: {
       type: Object,
       type: Object,
     },
     },
+    adminResourceId: {
+      type: String,
+    },
   },
   },
   created() {
   created() {
+    console.log(this.list);
     this.getNextPath(this.list.resourceId, 1);
     this.getNextPath(this.list.resourceId, 1);
     this.getMetirialType();
     this.getMetirialType();
   },
   },
   methods: {
   methods: {
-    async nextWorks(lists, list) {
+    //多人转派
+    clickManyTransfer() {
+      (this.actives = this.actives != "" ? "" : "active"),
+        (this.seleIndex = "1099");
+      this.getNextPath(this.adminResourceId, 3);
+    },
+    async getLastManList(e) {
       let _this = this;
       let _this = this;
       let obj = {
       let obj = {
-        url: _this.$url.formList.nextWork, //下一步工作流接口
-        data: lists,
-        status: "form",
+        url: _this.$url.formList.getComplateLastMan, //开始工作流接口
+        data: e,
+        // status: "form",
+        headers: {
+          "Content-Type": "application/json",
+        },
       };
       };
-      await this.common.httpPost(obj, success);
-      function success(data) {
-        let updateList = {
-          taskId: data.taskid,
-          id: _this.list.id,
-          resourceId: _this.nodes.currentShape[0].resourceId,
-          tableName: _this.requestForm.processDefinitionKey,
+
+      let res = await this.common.httpPost(obj, success);
+      function success(data) {}
+    },
+    async nextWorks(lists, list) {
+      let listss = {
+        userId: this.nextDealManList, //人员id
+        taskId: this.list.taskId, //表单标识
+        loginstr: JSON.parse(window.sessionStorage.userInfo).loginNoStr,
+        // taskName: this.clicknextName, //流程节点
+        content: this.textarea, //意见内容
+      };
+      if (this.manyReassignment == true) {
+        let _this = this;
+        let obj = {
+          url: _this.$url.formList.getNewTransferTask + _this.list.taskId, //下一步工作流接口
+          data: listss,
+          status: "form",
+        };
+        await this.common.httpPost(obj, success);
+        function success(data) {
+          _this.$emit("beforeClose", true);
+        }
+      } else {
+        let _this = this;
+        let obj = {
+          url: _this.$url.formList.nextWork, //下一步工作流接口
+          data: lists,
+          status: "form",
         };
         };
-        list.taskId = data.taskid;
-        _this.setUpdate(updateList);
-        _this.getLastManList(list);
+        await this.common.httpPost(obj, success);
+        function success(data) {
+          console.log(data);
+          let updateList = {
+            taskId: data.taskid,
+            id: _this.list.id,
+            resourceId: _this.nodes.currentShape[0].resourceId,
+            tableName: _this.requestForm.processDefinitionKey,
+          };
+          list.taskId = data.taskid;
+          _this.setUpdate(updateList);
+          _this.getLastManList(list);
+        }
       }
       }
     },
     },
     submitWork() {
     submitWork() {
@@ -230,7 +331,7 @@ export default {
               list.nextDealMan = this.backThree[0].loginNoStr;
               list.nextDealMan = this.backThree[0].loginNoStr;
             }
             }
           } else {
           } else {
-            if (this.clicknextName === "流程结束") {
+            if (this.clicknextName === "流程结束"||this.clicknextName === "提交至任务发起人") {
             } else {
             } else {
               this.$message.error("请选择候选人");
               this.$message.error("请选择候选人");
               return false;
               return false;
@@ -253,20 +354,6 @@ export default {
         this.demand = res.data;
         this.demand = res.data;
       });
       });
     },
     },
-    async getLastManList(e) {
-      let _this = this;
-      let obj = {
-        url: _this.$url.formList.getComplateLastMan, //开始工作流接口
-        data: e,
-        // status: "form",
-        headers: {
-          "Content-Type": "application/json",
-        },
-      };
-
-      let res = await this.common.httpPost(obj, success);
-      function success(data) { }
-    },
     async nextWork(list) {
     async nextWork(list) {
       //e:yes||no,list:传入数组,title:结束标签,res:驳回标签,id:工单更新id
       //e:yes||no,list:传入数组,title:结束标签,res:驳回标签,id:工单更新id
       let _this = this;
       let _this = this;
@@ -409,7 +496,7 @@ export default {
     },
     },
     //查询候选人接口
     //查询候选人接口
     getTreeLists(e, status) {
     getTreeLists(e, status) {
-      let createdId = "createld";
+      let createdId = "createId";
       let id =
       let id =
         e.nextShapes[0].properties.documentation === createdId
         e.nextShapes[0].properties.documentation === createdId
           ? this.list.createId
           ? this.list.createId
@@ -694,4 +781,4 @@ export default {
     width: 222px;
     width: 222px;
   }
   }
 }
 }
-</style>
+</style>

+ 8 - 6
src/components/workflowEntrance.vue

@@ -161,6 +161,7 @@ export default {
       treeCopyList: [],
       treeCopyList: [],
       demand: "",
       demand: "",
       close: "",
       close: "",
+      nextDealManLists:''
     };
     };
   },
   },
   props: {
   props: {
@@ -221,6 +222,7 @@ export default {
         // taskName: this.clicknextName, //流程节点
         // taskName: this.clicknextName, //流程节点
         userCode: JSON.parse(window.sessionStorage.userInfo).loginNo, //人员code
         userCode: JSON.parse(window.sessionStorage.userInfo).loginNo, //人员code
         content: this.textarea, //意见内容
         content: this.textarea, //意见内容
+        resourceId:this.list.resourceId
       };
       };
       let obj = {};
       let obj = {};
       if (this.close == "1") {
       if (this.close == "1") {
@@ -229,7 +231,7 @@ export default {
           (obj.data = list);
           (obj.data = list);
       } else {
       } else {
         let listss = {
         let listss = {
-          userId: _this.backThree[0].loginNoStr, //人员id
+          userId: _this.nextDealManLists, //人员id
           taskId: this.list.taskId, //表单标识
           taskId: this.list.taskId, //表单标识
           loginstr: JSON.parse(window.sessionStorage.userInfo).loginNoStr,
           loginstr: JSON.parse(window.sessionStorage.userInfo).loginNoStr,
           // taskName: this.clicknextName, //流程节点
           // taskName: this.clicknextName, //流程节点
@@ -532,12 +534,12 @@ export default {
     //选择树的回调
     //选择树的回调
     changeTree(e) {
     changeTree(e) {
       if (this.MultipersonTransfer) {
       if (this.MultipersonTransfer) {
-        if (e.length > 1) {
-          this.$message.error("只能选择一个人");
-          return;
-        } else {
           this.backThree = e;
           this.backThree = e;
-        }
+        let arr = [];
+        this.backThree.map((item) => {
+          arr.push(item.loginNoStr);
+        });
+        this.nextDealManLists = arr.toString();
       }
       }
     },
     },
     //获取字典表常用意见
     //获取字典表常用意见

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

@@ -41,8 +41,8 @@
                 }
                 }
             },
             },
             uploadsee(v) {
             uploadsee(v) {
-                let url = encodeURIComponent(v.callPath);
-                this.srcsc = 'http://114.215.71.182:8012/onlinePreview?url=' + url;
+                let url = encodeURIComponent(Base64.encode(v.callPath));
+            this.srcsc = 'http://10.230.15.228:8012/onlinePreview?url=' + url;
                 this.ifrshow=true;
                 this.ifrshow=true;
                 // window.open('http://114.215.71.182:8012/onlinePreview?url=' + url);
                 // window.open('http://114.215.71.182:8012/onlinePreview?url=' + url);
             },
             },

+ 3 - 3
src/pages/main/leader/components/formTable.vue

@@ -497,9 +497,9 @@ export default {
         needName: [
         needName: [
           { required: true, message: "请输入需求名称", trigger: "blur" },
           { required: true, message: "请输入需求名称", trigger: "blur" },
         ],
         ],
-        mkFileShareAttachList: [
-          { required: true, validator: this.validateFiles },
-        ],
+        // mkFileShareAttachList: [
+        //   { required: true, validator: this.validateFiles },
+        // ],
         applyDept: [
         applyDept: [
           { required: true, message: "请输入申请部门", trigger: "blur" },
           { required: true, message: "请输入申请部门", trigger: "blur" },
         ],
         ],

+ 32 - 12
src/pages/main/leader/demand/demandHome.vue

@@ -55,7 +55,7 @@
         <el-button type="primary" v-if="closeStatus" @click="handleClose"
         <el-button type="primary" v-if="closeStatus" @click="handleClose"
           >关闭</el-button
           >关闭</el-button
         >
         >
-        
+
         <el-button
         <el-button
           type="primary"
           type="primary"
           v-if="forwardStatus"
           v-if="forwardStatus"
@@ -94,10 +94,12 @@
         :destroy-on-close="true"
         :destroy-on-close="true"
       >
       >
         <Workflow
         <Workflow
+          ref="workflow"
           :list="fromList"
           :list="fromList"
           v-if="isWorkflowStatus == true"
           v-if="isWorkflowStatus == true"
           @beforeClose="beforeClose"
           @beforeClose="beforeClose"
           :requestForm="requestForm"
           :requestForm="requestForm"
+          :adminResourceId="adminResourceId"
         />
         />
         <WorkflowEntrance
         <WorkflowEntrance
           :list="fromList"
           :list="fromList"
@@ -157,7 +159,7 @@ export default {
     deptTree,
     deptTree,
     Workflow,
     Workflow,
     WorkflowEntrance,
     WorkflowEntrance,
-    Tables
+    Tables,
   },
   },
   data() {
   data() {
     return {
     return {
@@ -196,8 +198,8 @@ export default {
         processDefinitionKey: "request_form_process",
         processDefinitionKey: "request_form_process",
       },
       },
       requestForm: {
       requestForm: {
-        // fresourceId: "0d94de8a-0281-11ed-a302-4ae7da54db39", // 本地环境
-        fresourceId: "bf79721c-33f3-11ed-ba0b-00505687dcd3", //测试环境
+        fresourceId: "0d94de8a-0281-11ed-a302-4ae7da54db39", // 本地环境
+        // fresourceId: "bf79721c-33f3-11ed-ba0b-00505687dcd3", //测试环境
         // fresourceId:'81455799-600d-11ed-b399-e00084564cce',//生产环境
         // fresourceId:'81455799-600d-11ed-b399-e00084564cce',//生产环境
         processDefinitionKey: "request_form_process",
         processDefinitionKey: "request_form_process",
       },
       },
@@ -585,7 +587,7 @@ export default {
                 this.disabled = true;
                 this.disabled = true;
                 this.buttonStatus = false;
                 this.buttonStatus = false;
                 this.getReadList(r.copytaskid);
                 this.getReadList(r.copytaskid);
-                this.clickForm(r)
+                this.clickForm(r);
               }, // 自定义事件
               }, // 自定义事件
             },
             },
           ],
           ],
@@ -760,6 +762,7 @@ export default {
       seachLists: {},
       seachLists: {},
       timeList: {},
       timeList: {},
       lastManList: [],
       lastManList: [],
+      adminResourceId: "", //转派多人id
     };
     };
   },
   },
   created() {
   created() {
@@ -877,8 +880,15 @@ export default {
 
 
       let res = await this.common.httpPost(obj, success);
       let res = await this.common.httpPost(obj, success);
       function success(data) {
       function success(data) {
+        console.log(data);
+        if (data.lastMan == true) {
+          _this.adminResourceId = data.adminResourceId;
+        }
+        _this.destroy = true;
+        _this.handleStatus = true;
         _this.isWorkflowStatus = data.lastMan == false ? false : true;
         _this.isWorkflowStatus = data.lastMan == false ? false : true;
         _this.lastManList = data;
         _this.lastManList = data;
+
         // console.log(_this.isWorkflowStatus);
         // console.log(_this.isWorkflowStatus);
       }
       }
     },
     },
@@ -979,12 +989,11 @@ export default {
         },
         },
         data: this.$refs.formTable.form,
         data: this.$refs.formTable.form,
       }).then((res) => {
       }).then((res) => {
-        if(res.data.result === 1) {
+        if (res.data.result === 1) {
           this.$message.success(res.data.desc);
           this.$message.success(res.data.desc);
-        }else{
+        } else {
           this.$message.error(res.data.desc);
           this.$message.error(res.data.desc);
         }
         }
-        
       });
       });
     },
     },
     //批量导出搜索
     //批量导出搜索
@@ -1360,14 +1369,25 @@ export default {
         data: list,
         data: list,
       }).then((res) => {
       }).then((res) => {
         if (res.data.body.nextShapes[0].multi) {
         if (res.data.body.nextShapes[0].multi) {
+          console.log('这是mulit节点');
           if (res.data.body.nextShapes[0].multi.multi === "true") {
           if (res.data.body.nextShapes[0].multi.multi === "true") {
+             console.log('这是mulit节点');
             this.getLastName();
             this.getLastName();
+          } else {
+            this.adminResourceId = ''
+            console.log('这不是mulit节点');
+            this.destroy = true;
+            this.handleStatus = true;
+            this.getMetirialType();
           }
           }
-        }
-        if (this.fromList.taskId) {
+        } else {
+          this.adminResourceId = ''
+          console.log('这不是mulit节点');
           this.destroy = true;
           this.destroy = true;
           this.handleStatus = true;
           this.handleStatus = true;
           this.getMetirialType();
           this.getMetirialType();
+        }
+        if (this.fromList.processId) {
         } else {
         } else {
           this.$message.error("请先点击保存按钮");
           this.$message.error("请先点击保存按钮");
         }
         }
@@ -1375,7 +1395,6 @@ export default {
     },
     },
     //处理按钮,开始工作流接口
     //处理按钮,开始工作流接口
     clickHandles() {
     clickHandles() {
-      console.log(this.fromList);
       this.getNextPath(this.fromList.resourceId || "");
       this.getNextPath(this.fromList.resourceId || "");
     },
     },
 
 
@@ -1412,7 +1431,7 @@ export default {
 
 
       let res = await this.common.httpPost(obj, success);
       let res = await this.common.httpPost(obj, success);
       function success(data) {
       function success(data) {
-        console.log('[ 接口返回值第一曾 ] >', data)
+        console.log("[ 接口返回值第一曾 ] >", data);
         let list = [];
         let list = [];
         list = data.data.data;
         list = data.data.data;
         // list.map((item,index) => {
         // list.map((item,index) => {
@@ -1612,6 +1631,7 @@ export default {
         },
         },
         data: e || {},
         data: e || {},
       }).then((res) => {
       }).then((res) => {
+        console.log(res);
         if (status === 0) {
         if (status === 0) {
           this.clickDemand("需求名称", res.data.data[0]);
           this.clickDemand("需求名称", res.data.data[0]);
         } else {
         } else {

+ 3 - 0
src/pages/main/memberFamily/dataStatistics.vue

@@ -30,6 +30,9 @@
 						</template>
 						</template>
 					</el-table-column>
 					</el-table-column>
 				</el-table>
 				</el-table>
+				<el-pagination class="pageBox" @current-change="currchange" layout="prev, pager, next" background
+                    :total="total">
+                </el-pagination>
 			</div>
 			</div>
 		</div>
 		</div>
 	</fullscreen>
 	</fullscreen>

File diff suppressed because it is too large
+ 679 - 642
src/pages/main/memberFamily/haveInHand.vue


+ 2 - 1
src/pages/main/memberFamily/index.vue

@@ -17,7 +17,8 @@
 						
 						
 
 
 					</div>
 					</div>
-					<div @click="advmaterial(typeList[1])" v-if="roleStatus <= 1">
+					<!-- <div @click="advmaterial(typeList[1])" v-if="roleStatus <= 1"> -->
+					<div @click="advmaterial(typeList[1])" v-if="roleStatus <= 2">
 						
 						
 							<span><i class="el-icon-folder-opened"></i></span>
 							<span><i class="el-icon-folder-opened"></i></span>
 							<span>信息汇总</span>
 							<span>信息汇总</span>