فهرست منبع

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

yangbifan 2 سال پیش
والد
کامیت
41c14320ec

+ 10 - 10
src/assets/js/common.js

@@ -263,16 +263,16 @@ let common = {
                     if (!obj.disableLoading) {
                         loading.close()
                     }
-                    // if (response.code === 1 ||response.code == '1') {
-                    //    bus.$message.success(response.data.message)
-                    //     loading.close()
-                    //     success(response.data)
-                    //     return response
-                        if (response.code === 1 ||response.code == '1') {
-                            bus.$message.success(response.data.message)
-                             loading.close()
-                             success(response.data.data)
-                             return response
+                    if (response.data.code === 1 ||response.data.code == '1') {
+                        bus.$message.success(response.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.data)
+                        //      return response
                     } else {
                         if (obj.printMsg) {
                             if (response.message) {

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

@@ -1,4 +1,4 @@
-
+
 import axios from 'axios'
 import common from "./common.js";
 import vue from '../../components/common/bus';

+ 1 - 0
src/assets/js/url.js

@@ -13,6 +13,7 @@ const urls = {
     //新需求申请单工作流接口
     formList: {
         startWork: ctxForm + '/startProcess',   //开始工作流
+        startWorkList: ctxForm + '/batchStartProcess',   //开始工作流多人
         nextWork: ctxForm + '/complateTask',  //工作流next流转
         getWorkId: ctxForm + '/getRunningProcessInstance', // 获取工作流任务id
         transferTask: ctxForm + '/process/transferTask/',//转派工作流接口

+ 8 - 0
src/components/el-form.vue

@@ -11,6 +11,7 @@
       @selection-change="selectionChange"
       empty-text="暂无数据"
       @cell-click="getRowList"
+      :cell-style="columnbackgroundStyle"
     >
       <!-- 是否多选 -->
       <el-table-column
@@ -116,6 +117,13 @@ export default {
 
   },
   methods: {
+    columnbackgroundStyle({ row, column, rowIndex, columnIndex }) {
+      if (column.type == 'default') {
+        if (column.label === '待办事项名称') {
+          return 'color:#0682CD;'
+        }
+      }
+    },
     selectionChange(val) {
 
       //多选数字回调

+ 33 - 28
src/components/newTree.vue

@@ -4,33 +4,17 @@
       <div class="tree-text">组织机构</div>
       <el-input placeholder="可按名字匹配所在部门" v-model="filterText">
       </el-input>
-      <el-tree
-        ref="tree"
-        @node-click="handleNodeClick"
-        :data="treeList"
-        node-key="o"
-        :indent="20"
-        :default-checked-keys="defaultListc"
-        :default-expanded-keys="defaultList"
-      >
+      <el-tree ref="tree" @node-click="handleNodeClick" :data="treeList" node-key="o" :indent="20"
+        :default-checked-keys="defaultListc" :default-expanded-keys="defaultList">
         <span class="span-ellipsis" slot-scope="{ node, data }">
-          <span :title="node.label"
-            ><i
-              v-if="data.children.length === 0"
-              class="el-icon-caret-right icon-right"
-            ></i>
-            {{ node.label }}</span
-          >
+          <span :title="node.label"><i v-if="data.children.length === 0" class="el-icon-caret-right icon-right"></i>
+            {{ node.label }}</span>
         </span>
       </el-tree>
     </div>
     <div class="flex-transfer">
-      <el-transfer
-        v-model="value"
-        :titles="['待选人员', '已选人员']"
-        @change="handleCheckChange"
-        :data="transferList"
-      ></el-transfer>
+      <el-transfer v-model="value" :titles="['待选人员', '已选人员']" @change="handleCheckChange"
+        :data="transferList"></el-transfer>
     </div>
   </div>
 </template>
@@ -59,13 +43,13 @@ export default {
   },
   methods: {
     handleNodeClick(v) {
-      for(let i = v.children.length-1;i>=0;i--){
-        if(v.children[i].haveUserFlag == "N"){
+      for (let i = v.children.length - 1; i >= 0; i--) {
+        if (v.children[i].haveUserFlag == "N") {
           v.children.splice(i, 1);
         }
       }
       // v.children.map((item,index) =>{
-        
+
       //   if(item.haveUserFlag == "N"){
       //     v.children.splice(index, 1);
       //   }
@@ -83,11 +67,16 @@ export default {
           for (let i = 0; i <= this.transferList.length - 1; i++) {
             for (let y = 0; y <= this.value.length; y++) {
               if (this.transferList[i].key === this.value[y]) {
+                console.log(this.transferList[i].key);
+                console.log(this.value[y]);
                 a.push(this.transferList[i]);
+
               }
             }
           }
+          console.log(a);
           this.transferList = a;
+          // console.log(this.transferList);
         } else {
           this.transferList = [];
         }
@@ -113,7 +102,7 @@ export default {
           headers: {
             "Content-Type": "application/json",
           },
-          data:list
+          data: list
         }).then((res) => {
           v.children = v.children ? v.children : [];
           this.treeId = v.o;
@@ -124,12 +113,18 @@ export default {
               key: item.loginNoStr,
             });
           });
+          const dalaoyang = (arr, key) => {
+            let map = new Map()
+            return arr.filter(item => !map.has(item[key]) && map.set(item[key], 1))
+          }
+          this.transferList = dalaoyang(this.transferList, "key")
+          console.log(this.transferList);
         });
       } else {
         console.log(this.transferList);
       }
     },
-    getTree(v,e) {
+    getTree(v, e) {
       let list = {
         parentorgid: v,
         // functionName: e,
@@ -203,33 +198,40 @@ export default {
 ::v-deep .el-checkbox.el-transfer-panel__item {
   display: block !important;
 }
+
 ::v-deep .el-transfer-panel__list.is-filterable {
   height: calc(100% - 110px);
 }
+
 ::v-deep .el-transfer-panel__body {
   height: 100%;
 }
+
 .tree-text {
   font-size: 20px;
   color: black;
   padding: 15px;
   font-weight: 600;
 }
+
 .flex-box {
   display: flex;
   width: 100%;
   justify-content: center;
   height: 80%;
 }
+
 ::v-deep .el-icon-caret-right {
   font-size: 12px;
   background-size: cover;
   margin-left: px;
 }
+
 .icon-right {
   margin-left: 5px;
   color: #fff;
 }
+
 .treebox {
   width: 30%;
   border: 1px solid #ddd;
@@ -238,16 +240,19 @@ export default {
   overflow: scroll;
   overflow-x: hidden;
 }
+
 .flex-transfer {
   width: 50%;
   height: 100%;
   margin-left: 30px;
 }
+
 ::v-deep .el-transfer-panel {
   width: 35%;
   height: 100%;
 }
+
 ::v-deep .el-transfer {
   height: 100%;
 }
-</style>
+</style>

+ 4 - 3
src/components/workflowBase.vue

@@ -134,6 +134,7 @@ export default {
   name: "workflow",
   data() {
     return {
+      editStatus: false, //常用意见控制
       transferStatus: false, //转派按钮控制
       TransferStatus: false, //是否点击转派状态
       copyStatus: false, //抄送按钮控制
@@ -200,7 +201,7 @@ export default {
         if (this.backThree.length > 0) {
           list.nextDealMan = this.backThree[0].loginNoStr;
         } else {
-          if (this.clicknextName === "流程结束") {
+          if (this.clicknextName === "流程结束"||this.clicknextName === "提交至任务发起人") {
           } else {
             this.$message.error("请选择候选人");
             return false;
@@ -337,7 +338,7 @@ export default {
     },
     //查询候选人接口
     getTreeLists(e, status) {
-      let createdId = "createld";
+      let createdId = "createId";
       let id =
         e.nextShapes[0].properties.documentation === createdId
           ? this.list.createId
@@ -589,4 +590,4 @@ export default {
     width: 222px;
   }
 }
-</style>
+</style>

+ 76 - 6
src/pages/main/endToEnd/index.vue

@@ -194,8 +194,41 @@
         </el-dialog>
 
 
-
-        <el-dialog title="选择审批人" :visible.sync="checkexa" width="50%" :destroy-on-close="true"
+        <el-dialog
+        title="选择审批人"
+        :visible.sync="checkexa"
+        width="100%"
+        style="height: 100%"
+        :fullscreen="true"
+        :destroy-on-close="true"
+        :modal-append-to-body="false"
+        :close-on-click-modal="false"
+      >
+        <div style="height: 100%">
+          <el-form :model="infolist" ref="infolist"  :rules="rules" style="height: 100%">
+            <el-form-item prop="visiblec" style="height: 100%" >
+             
+              <deptTreeOnly
+                @treeCheck="treeCheckonly"
+                :defaultList="defaultList"
+                :type="depttype"
+                :closeList="closeList"
+              ></deptTreeOnly>
+              <div style="text-align: center; margin-top: 30px">
+                <el-button type="primary" @click="checkProcessUser()"
+                  >确 定</el-button
+                >
+                <el-button @click="checkexa = false">取 消</el-button>
+                <!-- <el-button v-if="titname == '添加'" type="primary" @click="dialogCliadd">确 定</el-button>
+                    <el-button v-if="titname != '添加'" type="primary" @click="dialogCli(2)">确 定</el-button>
+                    <el-button @click="checkexa = false">取 消</el-button> -->
+              </div>
+              
+            </el-form-item>
+          </el-form>
+        </div>
+      </el-dialog>
+        <!-- <el-dialog title="选择审批人" :visible.sync="checkexa" width="50%" :destroy-on-close="true"
             :modal-append-to-body="false" :close-on-click-modal="false">
             <div>
 
@@ -218,7 +251,7 @@
                     <el-button @click="checkexa = false">取 消</el-button>
                 </div>
             </div>
-        </el-dialog>
+        </el-dialog> -->
 
         <myMessage :messTit='messTit' @closeMessage="closeMessage" :centerDialogVisible="centerDialogVisible"
             v-if="centerDialogVisible"></myMessage>
@@ -231,7 +264,8 @@
     import toolList from '../../../components/toolList'
     import myUpload from '../../../components/upload'
     import uploadDown from '../../../components/uploadDown.vue'
-    import deptTreeOnly from "../../../components/deptTreeOnly.vue"
+    // import deptTreeOnly from "../../../components/deptTreeOnly.vue"
+    import deptTreeOnly from "../../../components/newTree.vue";
 
     export default {
         components: {
@@ -313,7 +347,7 @@
                 demandTypeopt: [],
                 carryChannelopt: [],
                 checkexa: false,
-                treeListonly: {},
+                treeListonly: [],
                 defaultList: [],
                 closeList: false,
                 depttype: 0,
@@ -362,6 +396,17 @@
             }
         },
         methods: {
+             checkProcessUser() {
+                let _this = this;
+                if (_this.treeListonly.length > 1) {
+                    _this.$message({
+                    message: "只能选择一个人",
+                    type: "error",
+                    });
+                } else {
+                    _this.dialogCliadd();
+                }
+                },
             //搜索数据
             searchInfo(v) {
                 this.params = {};
@@ -380,6 +425,25 @@
             },
             treeCheckonly(v) {
                 this.treeListonly = v;
+                console.log(v);
+                this.treeListonly.leaderAuditName = v[0].label;
+                this.treeListonly.leaderAuditNo = v[0].key;
+                // var val = {...v};
+                // console.log(val);
+                
+
+                //  let newArr=v.map(function (currentValue, index, ar) {
+                //     console.log(currentValue);//遍历打印1,2,3
+                //     // console.log(index);//遍历打印0,1,2
+                //     console.log(ar);//遍历打印三次[1, 2, 3]
+                //     // console.log(currentValue.key);
+                   
+                // //    this.treeListonly.leaderAuditName = currentValue.label;
+                // },)
+                // this.treeListonly.leaderAuditNo = newArr.currentValue.key;
+                // console.log(this.currentValue.key);
+
+
             },
             choline(v, n) {
                 if (v == 1) {
@@ -595,6 +659,7 @@
                     }
                     this.submitInfo("/bpm/api/submitTask", params);
                 } else if (v === 2) {
+                    console.log(222222)
                     let param = {
                         dealType: '0',
                         dealTypeDesc: '提交',
@@ -684,6 +749,7 @@
             },
             //添加
             dialogCliadd(v) {
+                console.log(11111)
                 let _this = this;
                 let info = {};
                 info.params = {};
@@ -710,7 +776,7 @@
                         return
                     }
                 }
-
+                console.log(123);
                 for (let i = 0; i < this.options.length; i++) {
                     if (this.terminal == this.options[i].procId) {
                         info.procName = this.options[i].procName;
@@ -782,6 +848,7 @@
                     data: {},
                 }).then((res) => {
                     this.options = res.data.data;
+                    console.log(res.data.data);
                 });
             },
             closeMessage(v) {
@@ -870,6 +937,9 @@
     }
 </script>
 <style scoped lang="scss">
+    ::v-deep .el-dialog .flex-box{
+        height: 400px;
+    }
     .onetab {
         margin-bottom: 20px;
         padding: 0 20px;

+ 62 - 3
src/pages/main/integral/index.vue

@@ -150,7 +150,43 @@
                 </div>
             </div>
         </el-dialog>
-        <el-dialog title="选择审批人" :visible.sync="checkexa" width="50%" :destroy-on-close="true"
+        <el-dialog
+        title="选择审批人"
+        :visible.sync="checkexa"
+        width="100%"
+        style="height: 100%"
+        :fullscreen="true"
+        :destroy-on-close="true"
+        :modal-append-to-body="false"
+        :close-on-click-modal="false"
+      >
+        <div style="height: 100%">
+          <el-form :model="infolist" ref="infolist" style="height: 100%">
+            <el-form-item  style="height: 100%" >
+             
+              <deptTreeOnly
+                @treeCheck="treeCheckonly"
+                :defaultList="defaultList"
+                :type="depttype"
+                :closeList="closeList"
+              ></deptTreeOnly>
+              <div style="text-align: center; margin-top: 30px">
+                <el-button type="primary" @click="checkProcessUser()"
+                  >确 定</el-button
+                >
+				<!-- <el-button type="primary" @click="dialogCliadd" v-if="!visionchonly">确 定</el-button>
+        			<el-button type="primary" @click="dialogCli(2)" v-if="visionchonly">确 定</el-button> -->
+                <el-button @click="checkexa = false">取 消</el-button>
+                <!-- <el-button type="primary" @click="dialogCliadd" v-if="vision != '审批'">确 定</el-button>
+                    <el-button type="primary" @click="dialogCli(2)" v-if="vision == '审批'">确 定</el-button>
+                <el-button @click="checkexa = false">取 消</el-button> -->
+              </div>
+             
+            </el-form-item>
+          </el-form>
+        </div>
+      </el-dialog>
+        <!-- <el-dialog title="选择审批人" :visible.sync="checkexa" width="50%" :destroy-on-close="true"
             :modal-append-to-body="false" :close-on-click-modal="false">
             <div>
 
@@ -173,7 +209,7 @@
                     <el-button @click="checkexa = false">取 消</el-button>
                 </div>
             </div>
-        </el-dialog>
+        </el-dialog> -->
 
         <myMessage :messTit='messTit' @closeMessage="closeMessage" :centerDialogVisible="centerDialogVisible"
             v-if="centerDialogVisible"></myMessage>
@@ -186,7 +222,8 @@
     import toolList from '../../../components/toolList'
     import myUpload from '../../../components/upload'
     import uploadDown from '../../../components/uploadDown.vue'
-    import deptTreeOnly from "../../../components/deptTreeOnly.vue"
+    // import deptTreeOnly from "../../../components/deptTreeOnly.vue"
+    import deptTreeOnly from "../../../components/newTree.vue";
 
     export default {
         components: {
@@ -276,12 +313,25 @@
             }
         },
         methods: {
+            checkProcessUser() {
+                let _this = this;
+                if (_this.treeListonly.length > 1) {
+                    _this.$message({
+                    message: "只能选择一个人",
+                    type: "error",
+                    });
+                } else {
+                    _this.dialogCliadd();
+                }
+                },
             deletes() {
                 this.treeListonly = {};
                 this.closeList = !this.closeList;
             },
             treeCheckonly(v) {
                 this.treeListonly = v;
+                this.treeListonly.leaderAuditName = v[0].label;
+                this.treeListonly.leaderAuditNo = v[0].key;
             },
             choline(v, n) {
                 if (v == 1) {
@@ -670,6 +720,15 @@
     }
 </script>
 <style scoped lang="scss">
+    ::v-deep .el-dialog__body {
+        max-height: calc(100vh - 70px) !important;
+        min-height: 100px;
+        height: 100%;
+        overflow-y: hidden;
+        }
+    ::v-deep .el-dialog .flex-box{
+        height: 400px;
+    }
     .onetab {
         margin-bottom: 20px;
         padding: 0 20px;

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1284 - 0
src/pages/main/leader/risk/riskManagement.vue


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1444 - 0
src/pages/main/leader/risk/riskMaterials.vue


+ 62 - 3
src/pages/main/outCallDemand/index.vue

@@ -230,7 +230,49 @@
 				</div>
 			</div>
 		</el-dialog>
-        <el-dialog title="选择审批人" :visible.sync="checkexa" width="50%" :destroy-on-close="true"
+		 <el-dialog
+        title="选择审批人"
+        :visible.sync="checkexa"
+        width="100%"
+        style="height: 100%"
+        :fullscreen="true"
+        :destroy-on-close="true"
+        :modal-append-to-body="false"
+        :close-on-click-modal="false"
+      >
+        <div style="height: 100%">
+          <el-form :model="infolist" ref="infolist" style="height: 100%">
+            <el-form-item prop="visiblec" style="height: 100%">
+              <!-- <span style="width: 80px">审批人员</span> -->
+              <deptTreeOnly
+                @treeCheck="treeCheckonly"
+                :defaultList="defaultList"
+                :type="depttype"
+                :closeList="closeList"
+              ></deptTreeOnly>
+              <div style="text-align: center; margin-top: 30px">
+                <el-button type="primary" @click="checkProcessUser()"
+                  >确 定</el-button
+                >
+				<!-- <el-button type="primary" @click="dialogCliadd" v-if="!visionchonly">确 定</el-button>
+        			<el-button type="primary" @click="dialogCli(2)" v-if="visionchonly">确 定</el-button> -->
+                <el-button @click="checkexa = false">取 消</el-button>
+              </div>
+              <!-- <div class="tree treeUser">
+                <p>
+                  {{ treeListonly.leaderAuditName }}
+                  <i
+                    v-if="treeListonly.leaderAuditName"
+                    @click="treeDelete()"
+                    class="el-icon-error"
+                  ></i>
+                </p>
+              </div> -->
+            </el-form-item>
+          </el-form>
+        </div>
+      </el-dialog>
+        <!-- <el-dialog title="选择审批人" :visible.sync="checkexa" width="50%" :destroy-on-close="true"
         	:modal-append-to-body="false" :close-on-click-modal="false">
         	<div>
 
@@ -254,7 +296,7 @@
         			<el-button @click="checkexa = false">取 消</el-button>
         		</div>
         	</div>
-        </el-dialog>
+        </el-dialog> -->
 
 	</fullscreen>
 
@@ -265,7 +307,8 @@
 	import toolList from '../../../components/toolList'
 	import myUpload from '../../../components/upload'
 	import uploadDown from '../../../components/uploadDown.vue'
-    import deptTreeOnly from "../../../components/deptTreeOnly.vue"
+    // import deptTreeOnly from "../../../components/deptTreeOnly.vue"
+	import deptTreeOnly from "../../../components/newTree.vue";
 
 	export default {
 		components: {
@@ -532,12 +575,25 @@
 			}
 		},
 		methods: {
+			checkProcessUser() {
+                let _this = this;
+                if (_this.treeListonly.length > 1) {
+                    _this.$message({
+                    message: "只能选择一个人",
+                    type: "error",
+                    });
+                } else {
+                    _this.dialogCliadd();
+                }
+                },
             deletes() {
             	this.treeListonly = {};
             	this.closeList = !this.closeList;
             },
             treeCheckonly(v) {
             	this.treeListonly = v;
+				this.treeListonly.leaderAuditName = v[0].label;
+				this.treeListonly.leaderAuditNo = v[0].key;
             },
 			closedia() {
 				this.infolist = {
@@ -937,6 +993,9 @@
 	}
 </script>
 <style scoped lang="scss">
+	::v-deep .el-dialog .flex-box{
+        height: 400px;
+    }
 	.onetab {
 		margin-bottom: 20px;
 		padding: 0 20px;

+ 13 - 0
src/router/index.js

@@ -2162,6 +2162,19 @@ const routes = [{
             component: resolve => require(['../pages/main/processruns/processruns.vue'], resolve),
             meta: { title: '运行流程' }
         }
+        ,{
+            meta: { name: '风险防控管理', keepAlive: false },
+            path: '/riskMaterials',
+            name: 'riskMaterials',
+            component: (resolve) => require( /* webpackChunkName: "system" */
+                ['../pages/main/leader/risk/riskMaterials.vue'], resolve)
+        },{
+            meta: { name: '风险防控管理', keepAlive: false },
+            path: '/riskManagement',
+            name: 'riskManagement',
+            component: (resolve) => require( /* webpackChunkName: "system" */
+                ['../pages/main/leader/risk/riskManagement.vue'], resolve)
+        },
     ]
 },
 {