Browse Source

框架升级,样式升级

master
陈裕财 5 years ago
parent
commit
0f058a5fb5
  1. 5
      src/api/login.js
  2. 530
      src/components/Breadcrumb/index.vue
  3. 388
      src/components/TopModules/all_modules.js
  4. 220
      src/components/TopModules/index.vue
  5. 85
      src/components/TopModules/top_modules_oa.js
  6. 19
      src/views/layout/components/Navbar.vue
  7. 1
      src/views/layout/components/Sidebar/Logo.vue
  8. 4
      src/views/layout/components/Sidebar/index.vue
  9. 18
      src/views/layout/components/TagsView.vue
  10. 75
      src/views/mdp/arc/archiveAttachment/AttachmentUpload.vue
  11. 202
      src/views/mdp/arc/tag/TagMng.vue
  12. 2
      src/views/mdp/form/formData/FormDataMng.vue
  13. 2
      src/views/mdp/form/formData/FormDataMngForFlow.vue
  14. 2
      src/views/mdp/form/formData/FormDataMngForFlowTable.vue
  15. 3
      src/views/mdp/form/formDef/FormDefAdd.vue
  16. 3
      src/views/mdp/form/formDef/FormDefForFlowNode.vue
  17. 2
      src/views/mdp/form/formDef/FormDefList.vue
  18. 2
      src/views/mdp/form/formDef/FormDefMng.vue
  19. 2
      src/views/mdp/form/formField/FormField.vue
  20. 3
      src/views/mdp/form/formQx/FormQxSet.vue
  21. 3
      src/views/mdp/meta/category/CategoryAdd.vue
  22. 2
      src/views/mdp/meta/category/CategoryMng.vue
  23. 3
      src/views/mdp/meta/item/ItemAdd.vue
  24. 3
      src/views/mdp/meta/item/ItemEdit.vue
  25. 2
      src/views/mdp/meta/item/ItemMng.vue
  26. 3
      src/views/mdp/meta/itemOption/ItemOptionAdd.vue
  27. 2
      src/views/mdp/meta/itemOption/ItemOptionMng.vue
  28. 3
      src/views/mdp/meta/sysParam/ItemOptionAdd.vue
  29. 3
      src/views/mdp/meta/sysParam/ItemOptionEdit.vue
  30. 2
      src/views/mdp/meta/sysParam/SysParamMng.vue
  31. 2
      src/views/mdp/sys/branch/BranchSelect.vue
  32. 4
      src/views/mdp/sys/post/PostSelectCommon.vue
  33. 6
      src/views/mdp/sys/user/UsersSelect.vue
  34. 398
      src/views/mdp/sys/userDept/UserDeptEdit.vue
  35. 3
      src/views/mdp/workflow/biz/bizModel/BizModelAdd.vue
  36. 3
      src/views/mdp/workflow/biz/bizModel/BizModelEdit.vue
  37. 8
      src/views/mdp/workflow/biz/bizModel/BizModelMng.vue
  38. 8
      src/views/mdp/workflow/de/model/ModelMng.vue
  39. 4
      src/views/mdp/workflow/hi/comment/commentStep.vue
  40. 127
      src/views/mdp/workflow/hi/procinst/ProcinstMng.vue
  41. 8
      src/views/mdp/workflow/re/deployment/DeploymentMng.vue
  42. 18
      src/views/mdp/workflow/re/procdef/ProcdefListForParames.vue
  43. 14
      src/views/mdp/workflow/re/procdef/ProcdefListForSimpleStart.vue
  44. 44
      src/views/mdp/workflow/re/procdef/ProcdefListForStart.vue
  45. 8
      src/views/mdp/workflow/re/procdef/ProcdefMng.vue
  46. 10
      src/views/mdp/workflow/re/procdef/ProcdefSuspend.vue
  47. 3
      src/views/mdp/workflow/re/procdefParames/ActQxCodeSet.vue
  48. 3
      src/views/mdp/workflow/re/procdefParames/ProcdefParamesSet.vue
  49. 6
      src/views/mdp/workflow/re/procdefParamesTemplate/ProcdefParamesTemplateMng.vue
  50. 208
      src/views/mdp/workflow/ru/execution/ExecutionMng.vue
  51. 4
      src/views/mdp/workflow/ru/execution/ExecutionMngForFormData.vue
  52. 113
      src/views/mdp/workflow/ru/procinstParames/ProcinstParamesExecutionSet.vue
  53. 2
      src/views/mdp/workflow/ru/procinstParames/ProcinstParamesStartSet.vue
  54. 222
      src/views/mdp/workflow/ru/task/TaskMng.vue

5
src/api/login.js

@ -7,14 +7,13 @@ import config from '@/common/config'
let base=config.getOauth2LoginBasePath(); let base=config.getOauth2LoginBasePath();
//let base=''; //let base='';
export function doLoginByUserloginid(userloginid, password,grantType,authType,branchId,deptid) {
export function doLoginByUserloginid(userloginid, password,grantType,authType,deptid) {
removeToken(); removeToken();
const data = { const data = {
userloginid: userloginid, userloginid: userloginid,
password: password, password: password,
authType:authType, authType:authType,
deptid:deptid,
branchId:branchId,
deptid:deptid
} }
return axios({ return axios({
url: base+'/login/token?grantType='+grantType, url: base+'/login/token?grantType='+grantType,

530
src/components/Breadcrumb/index.vue

@ -6,38 +6,6 @@
<router-link v-else :to="item.redirect||item.path">{{generateTitle(item.meta.title)}}</router-link> <router-link v-else :to="item.redirect||item.path">{{generateTitle(item.meta.title)}}</router-link>
</el-breadcrumb-item> </el-breadcrumb-item>
</transition-group> </transition-group>
<el-button @click="drawer = true" type="primary" round plain style="margin-left: 16px;"> <i class="el-icon-menu" style="margin-right:5px"></i>全部应用</el-button>
<div class="drawer-box">
<el-drawer
:visible.sync="drawer"
:direction="direction">
<div class="drawer">
<div class="drawer-content">
<div class="drawer-content-input">
<el-input placeholder="请输入中文" v-model.trim="key" clearable prefix-icon = "el-icon-search" size="small" style="width:60%">
</el-input>
</div>
<div class="drawer-content-category" v-for="(item,index) in categorys" :key="index">
<div class="category-name" v-text="item.title"></div>
<div class="category-list">
<div
class="category-item"
v-for="(module,mindex) in item.childrens" :key="index+'_'+mindex"
@click="gotolink(module)"
:class="{highlight : module.isHighlight }"
>
<div class="module-icon">
<img :src="module.icon">
</div>
<div class="module-name" v-text="module.moduleName"></div>
</div>
</div>
</div>
</div>
</div>
</el-drawer>
</div>
</el-breadcrumb> </el-breadcrumb>
</template> </template>
@ -54,403 +22,12 @@ export default {
drawer: false, drawer: false,
direction: 'ttb', direction: 'ttb',
key:"", key:"",
//
categorys:[
{
title:"日常应用",
childrens:[
{
moduleName:"任务中心",
topModuleId:'oa',
link:"/mdp/workflow/ru/task/TaskListAssigneeToMe",
icon: require("../../assets/image/platform/module-task.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"流程中心",
topModuleId:'oa',
link:"/mdp/workflow/ru/execution/ExecutionListMyMonitors",
icon: require("../../assets/image/platform/module-flow.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"历史流程",
topModuleId:'oa',
link:"/mdp/workflow/hi/procinst/ProcinstListMyStart",
icon: require("../../assets/image/platform/module-historical.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"模型中心",
topModuleId:'oa',
link:"/mdp/workflow/de/ModelMng",
icon: require("../../assets/image/platform/module-odelCenter.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"智能表单",
topModuleId:'oa',
link:"/mdp/form/formDef/FormDefAdd",
icon: require("../../assets/image/platform/module-intelligentForms.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"新闻管理",
topModuleId:'arc',
link:"/mdp/arc/news/newsMng",
icon: require("../../assets/image/platform/module-news.png"),
isHighlight:false,
moduleType : '3', // 1- 2- 3-
},
{
moduleName:"公告管理",
topModuleId:'arc',
link:"/mdp/arc/notice/noticeMng",
icon: require("../../assets/image/platform/module-notice.png"),
isHighlight:false,
moduleType : '3' // 1- 2- 3-
},
]
},
{
title:"通讯沟通",
childrens:[
{
moduleName:"通讯录",
topModuleId:'sys',
link:"/mdp/sys/user/deptUserMng",
icon: require("../../assets/image/platform/module-addressBook.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},
{
moduleName:"内部邮件",
topModuleId:'oa',
link:"/oa/mail/mailEmail/MailEmailInbox",
icon: require("../../assets/image/platform/module-email1.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"外部邮件",
topModuleId:'oa',
link:"/oa/mail/mailAccount/MailAccountMng",
icon: require("../../assets/image/platform/module-email2.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"短信",
topModuleId:'sms',
link:"",
icon: require("../../assets/image/platform/module-note.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},
{
moduleName:"聊天",
topModuleId:'im',
link:"",
icon: require("../../assets/image/platform/module-project.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},
]
},
{
title:"工作执行",
childrens:[
{
moduleName:"日程管理",
topModuleId:'oa',
link:"/oa/rc/rcScheduleMy/RcScheduleMyMng",
icon: require("../../assets/image/platform/module-schedule.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"督办管理",
topModuleId:'oa',
link:"/oa/duban/dubanItem/DubanItem",
icon: require("../../assets/image/platform/module-supervise.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"督办任务",
topModuleId:'oa',
link:"/oa/duban/dubanItemTask/HostDubanItemTask",
icon: require("../../assets/image/platform/module-supervisoryTask.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
]
},
{
title:"行政管理",
childrens:[
{
moduleName:"组织",
topModuleId:'sys',
link:"/mdp/sys/dept/DeptMng",
icon: require("../../assets/image/platform/module-organization.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},
{
moduleName:"资产管理",
topModuleId:'oa',
link:"/oa/erp/pur/require/RequireMng",
icon: require("../../assets/image/platform/module-property.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"会议管理",
topModuleId:'oa',
link:"/oa/meet/meetMeeting/MeetMeetingRequire",
icon: require("../../assets/image/platform/module-meeting.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"印章中心",
topModuleId:'oa',
link:"/oa/sig/sigSignet/SigSignetMng",
icon: require("../../assets/image/platform/module-sealCenter.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"车辆中心",
topModuleId:'oa',
link:"/oa/car/carOfficeCar/CarOfficeCarMng",
icon: require("../../assets/image/platform/module-car.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"办公用品",
topModuleId:'oa',
link:"/oa/om/omCategory/OmCategoryMng",
icon: require("../../assets/image/platform/module-office.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
]
},
{
title:"人事管理",
childrens:[
{
moduleName:"考勤管理",
topModuleId:'oa',
link:"/oa/kq/attendance/AttendanceMonth",
icon: require("../../assets/image/platform/module-attendance.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"绩效考核",
topModuleId:'oa',
link:"/oa/jx/MyAssessment",
icon: require("../../assets/image/platform/module-performance.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"档案信息",
topModuleId:'oa',
link:"/oa/hr/user/employeeInfo",
icon: require("../../assets/image/platform/module-record.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
]
},
{
title:"仓储管理",
childrens:[
{
moduleName:"合同管理",
topModuleId:'oa',
link:"/oa/ht/contractCard/ContractCardMng",
icon: require("../../assets/image/platform/module-contract.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
}
]
},
{
title:"业务管控",
childrens:[
{
moduleName:"业务中心",
topModuleId:'oa',
link:"/mdp/workflow/re/procdef/ProcdefListForParames",
icon: require("../../assets/image/platform/module-business.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"客户管理",
topModuleId:'oa',
link:"/oa/crm/customer/CustomerIndex",
icon: require("../../assets/image/platform/module-customerCenter.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"项目管理",
topModuleId:'xm',
link:"/xm/core/xmProject/XmProjectMng",
icon: require("../../assets/image/platform/module-project.png"),
isHighlight:false,
moduleType : '1' // 1- 2-
},
{
moduleName:"费用管理",
topModuleId:'ac',
link:"",
icon: require("../../assets/image/platform/module-cost.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},
{
moduleName:"防伪",
topModuleId:'audit',
link:"/audit/base/productLifeCycle/productLifeCycleDetail/Safeguard",
icon: require("../../assets/image/platform/anti-fake.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},{
moduleName:"溯源",
topModuleId:'audit',
link:"/audit/base/productLifeCycle/productLifeCycleDetail/ProductLifeCycleDetailMng",
icon: require("../../assets/image/platform/traceSource.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},{
moduleName:"审计",
topModuleId:'audit',
link:"/audit/base/oper/operLog/OperLogMng",
icon: require("../../assets/image/platform/audit.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},
]
},
{
title:"系统模块",
childrens:[
{
moduleName:"组织",
topModuleId:'sys',
link:"",
icon: require("../../assets/image/platform/module-organization.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},
{
moduleName:"内容",
topModuleId:'arc',
link:"",
icon: require("../../assets/image/platform/module-content.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},
{
moduleName:"流程",
topModuleId:'oa',
link:"",
icon: require("../../assets/image/platform/module-oa.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},
{
moduleName:"商城",
topModuleId:'mallm',
link:"",
icon: require("../../assets/image/platform/module-store.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
} ,
{
moduleName:"营销",
topModuleId:'mk',
link:"",
icon: require("../../assets/image/platform/module-marketing.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},
{
moduleName:"财务",
topModuleId:'ac',
link:"",
icon: require("../../assets/image/platform/module-finance.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},
{
moduleName:"短信",
topModuleId:'',
link:"sms",
icon: require("../../assets/image/platform/module-note.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},
{
moduleName:"聊天",
topModuleId:'im',
link:"",
icon: require("../../assets/image/platform/module-project.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},
{
moduleName:"防伪",
topModuleId:'audit',
link:"/audit/base/productLifeCycle/productLifeCycleDetail/Safeguard",
icon: require("../../assets/image/platform/anti-fake.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},{
moduleName:"溯源",
topModuleId:'audit',
link:"/audit/base/productLifeCycle/productLifeCycleDetail/ProductLifeCycleDetailMng",
icon: require("../../assets/image/platform/traceSource.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},{
moduleName:"审计",
topModuleId:'audit',
link:"/audit/base/oper/operLog/OperLogMng",
icon: require("../../assets/image/platform/audit.png"),
isHighlight:false,
moduleType : '2' // 1- 2-
},
]
},
],
} }
}, },
watch: { watch: {
$route() { $route() {
this.getBreadcrumb() this.getBreadcrumb()
}, },
key(val){
console.log(this.key);
this.searchModule();
}
}, },
methods: { methods: {
generateTitle, generateTitle,
@ -462,42 +39,6 @@ export default {
} }
this.levelList = matched this.levelList = matched
}, },
//
gotolink(module) {
if(module.topModuleId==process.env.CONTEXT){
this.drawer = false
this.$router.replace(module.link);
} else{
this.jumpToOtherSystem(module);
}
},
//
jumpToOtherSystem(module) {
let href = window.location.protocol + "//" + window.location.host + "/" + module.topModuleId + "/"+ process.env.VERSION +"/#" + module.link;
window.open(href, module.moduleName,null,true);
NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it
},
//
searchModule(){
for(let i =0 ; i <this.categorys.length; i++){
for(let j =0 ; j <this.categorys[i].childrens.length; j++){
let module = this.categorys[i].childrens[j];
this.categorys[i].childrens[j].isHighlight = false;
}
}
if(this.key != ""){
for(let i =0 ; i <this.categorys.length; i++){
for(let j =0 ; j <this.categorys[i].childrens.length; j++){
let module = this.categorys[i].childrens[j];
if(module.moduleName.indexOf(this.key) > -1){
this.categorys[i].childrens[j].isHighlight = true;
}
}
}
}
}
} }
} }
</script> </script>
@ -513,75 +54,4 @@ export default {
cursor: text; cursor: text;
} }
} }
.drawer-box{
.drawer{
display: flex;
justify-content: center;
align-items: center;
.drawer-content{
width: 900px;
height: 100%;
.drawer-content-input{
display: flex;
justify-content: center;
}
.drawer-content-category{
.category-name{
color: #333333;
font-size: 16px;
}
.category-list{
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
.category-item{
height: 70px;
width: 70px;
margin-right: 20px;
transition: all 0.3s;
.module-icon{
width: 70px;
height: 38px;
text-align: center;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
img{
width: 20px;
}
}
.module-name{
height: 32px;
line-height: 32px;
color:#666666;
font-size: 12px;
text-align: center;
}
}
.category-item:hover{
background: rgb(240, 241, 245);
}
}
}
}
}
.highlight{
transform: scale(1.05);
-webkit-box-shadow: 0 0 30px rgba(0, 0, 0, 0.1);
border-radius: 50%;
box-shadow: 0 0 30px rgba(0, 0, 0, 0.15);
}
}
</style>
<style rel="stylesheet/scss" lang="scss">
.drawer-box{
.el-drawer{
height: 95%!important;
overflow: auto;
}
}
</style> </style>

388
src/components/TopModules/all_modules.js

@ -0,0 +1,388 @@
var categorys=
[
{
title:"日常应用",
childrens:[
{
moduleName:"任务中心",
topModuleId:'oa',
link:"/mdp/workflow/ru/task/TaskListAssigneeToMe",
icon: require("../../assets/image/platform/module-task.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"流程中心",
topModuleId:'oa',
link:"/mdp/workflow/ru/execution/ExecutionListMyMonitors",
icon: require("../../assets/image/platform/module-flow.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"历史流程",
topModuleId:'oa',
link:"/mdp/workflow/hi/procinst/ProcinstListMyStart",
icon: require("../../assets/image/platform/module-historical.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"模型中心",
topModuleId:'oa',
link:"/mdp/workflow/de/ModelMng",
icon: require("../../assets/image/platform/module-odelCenter.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"智能表单",
topModuleId:'oa',
link:"/mdp/form/formDef/FormDefAdd",
icon: require("../../assets/image/platform/module-intelligentForms.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"新闻管理",
topModuleId:'arc',
link:"/mdp/arc/news/newsMng",
icon: require("../../assets/image/platform/module-news.png"),
isHighlight:false,
moduleType : '3', // 模块类型,1-系统类模块 2-系统外模块 3-系统外模块的模块
},
{
moduleName:"公告管理",
topModuleId:'arc',
link:"/mdp/arc/notice/noticeMng",
icon: require("../../assets/image/platform/module-notice.png"),
isHighlight:false,
moduleType : '3' // 模块类型,1-系统类模块 2-系统外模块 3-系统外模块的模块
},
]
},
{
title:"通讯沟通",
childrens:[
{
moduleName:"通讯录",
topModuleId:'sys',
link:"/mdp/sys/user/deptUserMng",
icon: require("../../assets/image/platform/module-addressBook.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"内部邮件",
topModuleId:'oa',
link:"/oa/mail/mailEmail/MailEmailInbox",
icon: require("../../assets/image/platform/module-email1.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"外部邮件",
topModuleId:'oa',
link:"/oa/mail/mailAccount/MailAccountMng",
icon: require("../../assets/image/platform/module-email2.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"短信",
topModuleId:'sms',
link:"",
icon: require("../../assets/image/platform/module-note.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"聊天",
topModuleId:'im',
link:"",
icon: require("../../assets/image/platform/module-project.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
]
},
{
title:"工作执行",
childrens:[
{
moduleName:"日程管理",
topModuleId:'oa',
link:"/oa/rc/rcScheduleMy/RcScheduleMyMng",
icon: require("../../assets/image/platform/module-schedule.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"督办管理",
topModuleId:'oa',
link:"/oa/duban/dubanItem/DubanItem",
icon: require("../../assets/image/platform/module-supervise.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"督办任务",
topModuleId:'oa',
link:"/oa/duban/dubanItemTask/HostDubanItemTask",
icon: require("../../assets/image/platform/module-supervisoryTask.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
]
},
{
title:"行政管理",
childrens:[
{
moduleName:"组织",
topModuleId:'sys',
link:"/mdp/sys/dept/DeptMng",
icon: require("../../assets/image/platform/module-organization.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"资产管理",
topModuleId:'oa',
link:"/oa/erp/pur/require/RequireMng",
icon: require("../../assets/image/platform/module-property.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"会议管理",
topModuleId:'oa',
link:"/oa/meet/meetMeeting/MeetMeetingRequire",
icon: require("../../assets/image/platform/module-meeting.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"印章中心",
topModuleId:'oa',
link:"/oa/sig/sigSignet/SigSignetMng",
icon: require("../../assets/image/platform/module-sealCenter.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"车辆中心",
topModuleId:'oa',
link:"/oa/car/carOfficeCar/CarOfficeCarMng",
icon: require("../../assets/image/platform/module-car.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"办公用品",
topModuleId:'oa',
link:"/oa/om/omCategory/OmCategoryMng",
icon: require("../../assets/image/platform/module-office.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
]
},
{
title:"人事管理",
childrens:[
{
moduleName:"考勤管理",
topModuleId:'oa',
link:"/oa/kq/attendance/AttendanceMonth",
icon: require("../../assets/image/platform/module-attendance.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"绩效考核",
topModuleId:'oa',
link:"/oa/jx/MyAssessment",
icon: require("../../assets/image/platform/module-performance.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"档案信息",
topModuleId:'oa',
link:"/oa/hr/user/employeeInfo",
icon: require("../../assets/image/platform/module-record.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
]
},
{
title:"仓储管理",
childrens:[
{
moduleName:"合同管理",
topModuleId:'oa',
link:"/oa/ht/contractCard/ContractCardMng",
icon: require("../../assets/image/platform/module-contract.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
}
]
},
{
title:"业务管控",
childrens:[
{
moduleName:"业务中心",
topModuleId:'oa',
link:"/mdp/workflow/re/procdef/ProcdefListForParames",
icon: require("../../assets/image/platform/module-business.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"客户管理",
topModuleId:'oa',
link:"/oa/crm/customer/CustomerIndex",
icon: require("../../assets/image/platform/module-customerCenter.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"项目管理",
topModuleId:'xm',
link:"/xm/core/xmProject/XmProjectMng",
icon: require("../../assets/image/platform/module-project.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"费用管理",
topModuleId:'ac',
link:"",
icon: require("../../assets/image/platform/module-cost.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"防伪",
topModuleId:'audit',
link:"/audit/base/productLifeCycle/productLifeCycleDetail/Safeguard",
icon: require("../../assets/image/platform/anti-fake.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},{
moduleName:"溯源",
topModuleId:'audit',
link:"/audit/base/productLifeCycle/productLifeCycleDetail/ProductLifeCycleDetailMng",
icon: require("../../assets/image/platform/traceSource.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},{
moduleName:"审计",
topModuleId:'audit',
link:"/audit/base/oper/operLog/OperLogMng",
icon: require("../../assets/image/platform/audit.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
]
},
{
title:"系统模块",
childrens:[
{
moduleName:"组织",
topModuleId:'sys',
link:"",
icon: require("../../assets/image/platform/module-organization.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"内容",
topModuleId:'arc',
link:"",
icon: require("../../assets/image/platform/module-content.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"流程",
topModuleId:'oa',
link:"",
icon: require("../../assets/image/platform/module-oa.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"商城",
topModuleId:'mallm',
link:"",
icon: require("../../assets/image/platform/module-store.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
} ,
{
moduleName:"营销",
topModuleId:'mk',
link:"",
icon: require("../../assets/image/platform/module-marketing.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"财务",
topModuleId:'ac',
link:"",
icon: require("../../assets/image/platform/module-finance.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"短信",
topModuleId:'',
link:"sms",
icon: require("../../assets/image/platform/module-note.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"聊天",
topModuleId:'im',
link:"",
icon: require("../../assets/image/platform/module-project.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"防伪",
topModuleId:'audit',
link:"/audit/base/productLifeCycle/productLifeCycleDetail/Safeguard",
icon: require("../../assets/image/platform/anti-fake.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},{
moduleName:"溯源",
topModuleId:'audit',
link:"/audit/base/productLifeCycle/productLifeCycleDetail/ProductLifeCycleDetailMng",
icon: require("../../assets/image/platform/traceSource.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},{
moduleName:"审计",
topModuleId:'audit',
link:"/audit/base/oper/operLog/OperLogMng",
icon: require("../../assets/image/platform/audit.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
]
},
]
export default categorys;

220
src/components/TopModules/index.vue

@ -0,0 +1,220 @@
<template>
<section>
<div class="module-item" v-for="(item,index) in topModules" :key="index">
<div class="module-text" @click="gotolink(item)" >
<div class="box-icon">
<img :src="item.icon" height="20px" />
</div>
<div class="box-info">{{item.moduleName}}</div>
</div>
</div>
<div class="module-item">
<div class="module-text" @click="drawer=true" >
<div class="box-icon">
<i class="el-icon-menu" height="20px" />
</div>
<div class="box-info">全部应用</div>
</div>
</div>
<div class="drawer-box">
<el-drawer
:visible.sync="drawer"
:direction="direction">
<div class="drawer">
<div class="drawer-content">
<div class="drawer-content-input">
<el-input placeholder="请输入中文" v-model.trim="key" clearable prefix-icon = "el-icon-search" size="small" style="width:60%">
</el-input>
</div>
<div class="drawer-content-category" v-for="(item,index) in categorys" :key="index">
<div class="category-name" v-text="item.title"></div>
<div class="category-list">
<div
class="category-item"
v-for="(module,mindex) in item.childrens" :key="index+'_'+mindex"
@click="gotolink(module)"
:class="{highlight : module.isHighlight }"
>
<div class="module-icon">
<img :src="module.icon">
</div>
<div class="module-name" v-text="module.moduleName"></div>
</div>
</div>
</div>
</div>
</div>
</el-drawer>
</div>
</section>
</template>
<script>
import NProgress from 'nprogress' // progress bar
const topModulesData = require("./top_modules_"+process.env.CONTEXT+".js")
const allModulesData = require("./all_modules.js")
export default {
created() {
},
data() {
return {
levelList: null,
drawer: false,
direction: 'rtl',
key:"",
topModules: topModulesData.default,
//
categorys:allModulesData.default,
}
},
watch: {
key(val){
this.searchModule();
}
},
methods: {
//
gotolink(module) {
if(module.topModuleId==process.env.CONTEXT){
this.drawer = false
this.$router.push({path:module.link});
} else{
this.jumpToOtherSystem(module);
}
},
//
jumpToOtherSystem(module) {
let href = window.location.protocol + "//" + window.location.host + "/" + module.topModuleId + "/"+ process.env.VERSION +"/#" + module.link;
window.open(href, module.moduleName,null,true);
NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it
},
//
searchModule(){
for(let i =0 ; i <this.categorys.length; i++){
for(let j =0 ; j <this.categorys[i].childrens.length; j++){
let module = this.categorys[i].childrens[j];
this.categorys[i].childrens[j].isHighlight = false;
}
}
if(this.key != ""){
for(let i =0 ; i <this.categorys.length; i++){
for(let j =0 ; j <this.categorys[i].childrens.length; j++){
let module = this.categorys[i].childrens[j];
if(module.moduleName.indexOf(this.key) > -1){
this.categorys[i].childrens[j].isHighlight = true;
}
}
}
}
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.drawer-box{
.drawer{
padding-left: 10px;
padding-right: 10px;
display: flex;
justify-content: center;
align-items: center;
.drawer-content{
width: 900px;
height: 100%;
.drawer-content-input{
display: flex;
justify-content: center;
}
.drawer-content-category{
.category-name{
color: #333333;
font-size: 16px;
}
.category-list{
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
.category-item{
height: 70px;
width: 70px;
margin-right: 20px;
transition: all 0.3s;
.module-icon{
width: 70px;
height: 38px;
text-align: center;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
img{
width: 20px;
}
}
.module-name{
height: 32px;
line-height: 32px;
color:#666666;
font-size: 12px;
text-align: center;
}
}
.category-item:hover{
background: rgb(240, 241, 245);
}
}
}
}
}
.highlight{
transform: scale(1.05);
-webkit-box-shadow: 0 0 30px rgba(0, 0, 0, 0.1);
border-radius: 50%;
box-shadow: 0 0 30px rgba(0, 0, 0, 0.15);
}
}
.module-item {
display: inline-block;
cursor: pointer;
fill: #5a5e66;
align-items: center;
text-align: center;
margin-left: 10px;
.module-text{
line-height: 22px;
font-size: 22px;
}
.box-icon {
padding-top:5px;
text-align: center;
}
.box-info {
text-align: center;
font-size: 14px;
color: #000000;
}
}
</style>
<style rel="stylesheet/scss" lang="scss">
.drawer-box{
.el-drawer{
height: 100%!important;
overflow: auto;
}
}
</style>

85
src/components/TopModules/top_modules_oa.js

@ -0,0 +1,85 @@
var topModules=
[
{
moduleName:"待审批",
topModuleId:'oa',
link:"/mdp/workflow/ru/task/TaskListAssigneeToMe",
icon: require("../../assets/image/platform/module-task.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"日程",
topModuleId:'oa',
link:"/oa/rc/rcScheduleMy/RcScheduleMyMng",
icon: require("../../assets/image/platform/module-schedule.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"会议",
topModuleId:'oa',
link:"/oa/meet/meetMeeting/MeetMeetingRequire",
icon: require("../../assets/image/platform/module-meeting.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"办公用品",
topModuleId:'oa',
link:"/oa/om/omCategory/OmCategoryMng",
icon: require("../../assets/image/platform/module-office.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"档案",
topModuleId:'oa',
link:"/oa/hr/user/employeeInfo",
icon: require("../../assets/image/platform/module-record.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"通讯录",
topModuleId:'sys',
link:"/mdp/sys/user/deptUserMng",
icon: require("../../assets/image/platform/module-addressBook.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"合同",
topModuleId:'oa',
link:"/oa/ht/contractCard/ContractCardMng",
icon: require("../../assets/image/platform/module-contract.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"财务",
topModuleId:'ac',
link:"",
icon: require("../../assets/image/platform/module-finance.png"),
isHighlight:false,
moduleType : '2' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"项目",
topModuleId:'xm',
link:"/xm/core/xmProject/XmProjectMng",
icon: require("../../assets/image/platform/module-project.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
{
moduleName:"资产",
topModuleId:'oa',
link:"/oa/erp/pur/require/RequireMng",
icon: require("../../assets/image/platform/module-property.png"),
isHighlight:false,
moduleType : '1' // 模块类型,1-系统类模块 2-系统外模块
},
]
export default topModules

19
src/views/layout/components/Navbar.vue

@ -2,9 +2,11 @@
<el-menu class="navbar" mode="horizontal"> <el-menu class="navbar" mode="horizontal">
<hamburger class="hamburger-container" :toggleClick="toggleSideBar" :isActive="sidebar.opened"></hamburger> <hamburger class="hamburger-container" :toggleClick="toggleSideBar" :isActive="sidebar.opened"></hamburger>
<breadcrumb class="breadcrumb-container hidden-sm-and-down"></breadcrumb>
<!--<breadcrumb class="breadcrumb-container"></breadcrumb>-->
<top-modules class="modules-container"></top-modules>
<div class="right-menu"> <div class="right-menu">
<!--
<div class="hidden-sm-and-down" style="float:left;display:flex;align-items: center;height:100%;"> <div class="hidden-sm-and-down" style="float:left;display:flex;align-items: center;height:100%;">
<el-tooltip v-if="workShop.locationName" class="item" effect="dark" :content="workShop.branchId+' '+workShop.shopId+' '+workShop.locationId" placement="top-start"> <el-tooltip v-if="workShop.locationName" class="item" effect="dark" :content="workShop.branchId+' '+workShop.shopId+' '+workShop.locationId" placement="top-start">
<el-tag>{{workShop.branchName}} {{workShop.locationName}}</el-tag> <el-tag>{{workShop.branchName}} {{workShop.locationName}}</el-tag>
@ -14,10 +16,11 @@
</el-tooltip> </el-tooltip>
<el-button @click="showSelectShopMethod" type="primary" v-if="workShop.isSuperAdmin||workShop.isPlatFormAdmin">切换商户</el-button> <el-button @click="showSelectShopMethod" type="primary" v-if="workShop.isSuperAdmin||workShop.isPlatFormAdmin">切换商户</el-button>
</div> </div>
-->
<error-log class="errLog-container right-menu-item hidden-sm-and-down"></error-log> <error-log class="errLog-container right-menu-item hidden-sm-and-down"></error-log>
<screenfull class="screenfull right-menu-item"></screenfull>
<screenfull class="screenfull right-menu-item"></screenfull>
<lang-select class="international right-menu-item hidden-sm-and-down"></lang-select> <lang-select class="international right-menu-item hidden-sm-and-down"></lang-select>
<el-tooltip class="hidden-sm-and-down" effect="dark" :content="$t('navbar.theme')" placement="bottom"> <el-tooltip class="hidden-sm-and-down" effect="dark" :content="$t('navbar.theme')" placement="bottom">
@ -95,6 +98,7 @@
<script> <script>
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import Breadcrumb from '@/components/Breadcrumb' import Breadcrumb from '@/components/Breadcrumb'
import TopModules from '@/components/TopModules'
import Hamburger from '@/components/Hamburger' import Hamburger from '@/components/Hamburger'
import ErrorLog from '@/components/ErrorLog' import ErrorLog from '@/components/ErrorLog'
import Screenfull from '@/components/Screenfull' import Screenfull from '@/components/Screenfull'
@ -109,7 +113,8 @@ export default {
ErrorLog, ErrorLog,
Screenfull, Screenfull,
LangSelect, LangSelect,
ThemePicker
ThemePicker,
TopModules
}, },
data:function(){ data:function(){
return { return {
@ -234,12 +239,20 @@ export default {
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;
border-radius: 0px !important; border-radius: 0px !important;
background-color: lightblue;
.hamburger-container { .hamburger-container {
line-height: 58px; line-height: 58px;
height: 50px; height: 50px;
float: left; float: left;
padding: 0 10px; padding: 0 10px;
} }
.modules-container {
line-height: 58px;
height: 50px;
float: left;
padding: 0 10px;
}
.breadcrumb-container{ .breadcrumb-container{
float: left; float: left;
} }

1
src/views/layout/components/Sidebar/Logo.vue

@ -41,7 +41,6 @@ export default {
} }
.sidebar-logo-container { .sidebar-logo-container {
position: relative;
width: 100%; width: 100%;
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;

4
src/views/layout/components/Sidebar/index.vue

@ -1,4 +1,6 @@
<template> <template>
<section>
<logo :collapse="isCollapse"/>
<scroll-bar> <scroll-bar>
<el-menu <el-menu
mode="vertical" mode="vertical"
@ -9,10 +11,10 @@
text-color="#bfcbd9" text-color="#bfcbd9"
active-text-color="#409EFF" active-text-color="#409EFF"
> >
<logo :collapse="isCollapse"/>
<sidebar-item :routes="permission_routers"></sidebar-item> <sidebar-item :routes="permission_routers"></sidebar-item>
</el-menu> </el-menu>
</scroll-bar> </scroll-bar>
</section>
</template> </template>
<script> <script>

18
src/views/layout/components/TagsView.vue

@ -1,18 +1,6 @@
<template> <template>
<div class="tags-view-container">
<scroll-pane class='tags-view-wrapper' ref='scrollPane'>
<router-link ref='tag' class="tags-view-item" :class="isActive(tag)?'active':''" v-for="tag in Array.from(visitedViews)"
:to="tag" :key="tag.path" @contextmenu.prevent.native="openMenu(tag,$event)">
{{generateTitle(tag.title)}}
<span class='el-icon-close' @click.prevent.stop='closeSelectedTag(tag)'></span>
</router-link>
</scroll-pane>
<ul class='contextmenu' v-show="visible" :style="{left:left+'px',top:top+'px'}">
<li @click="closeSelectedTag(selectedTag)">{{$t('tagsView.close')}}</li>
<li @click="closeOthersTags">{{$t('tagsView.closeOthers')}}</li>
<li @click="closeAllTags">{{$t('tagsView.closeAll')}}</li>
</ul>
</div>
<section>
</section>
</template> </template>
<script> <script>
@ -37,7 +25,7 @@ export default {
watch: { watch: {
$route() { $route() {
this.addViewTags() this.addViewTags()
this.moveToCurrentTag()
//this.moveToCurrentTag()
}, },
visible(value) { visible(value) {
if (value) { if (value) {

75
src/views/mdp/arc/archiveAttachment/AttachmentUpload.vue

@ -56,9 +56,19 @@
:disabled="isDisabled" :disabled="isDisabled"
> >
<el-button type="text" :class="{ change: isDisabled }">上传附件</el-button> <el-button type="text" :class="{ change: isDisabled }">上传附件</el-button>
<!-- <el-button >查看附件</el-button> -->
</el-upload> </el-upload>
</el-col> </el-col>
<el-col :span="6" style="padding-right: 50px;">
<el-col v-if="isUserInfo&&isUserInfo==1" :span="6" style="padding-right: 50px;">
<el-button v-if="fileList==[]||fileList.length==0" @click="showFile">显示附件</el-button>
<el-button v-else @click="hideFile">隐藏附件</el-button>
<!-- <el-button
@click="handleOnlinePeview"
:disabled="previewOnlineUrls.length<=0"
>预览{{previewOnlineUrls.length}}张图</el-button> -->
</el-col>
<el-col v-else :span="6" style="padding-right: 50px;">
<el-button <el-button
@click="handleOnlinePeview" @click="handleOnlinePeview"
:disabled="previewOnlineUrls.length<=0" :disabled="previewOnlineUrls.length<=0"
@ -74,7 +84,7 @@ import {
listArchiveAttachment, listArchiveAttachment,
delArchiveAttachment delArchiveAttachment
} from "@/api/mdp/arc/archiveAttachment"; } from "@/api/mdp/arc/archiveAttachment";
import {listHrUserAccessory} from "@/api/oa/hr/user/hrUserAccessory";
export default { export default {
props: [ props: [
"branchId", "branchId",
@ -84,14 +94,27 @@ export default {
"listType", "listType",
"limit", "limit",
"eliminate", "eliminate",
"isDisabled"
"isDisabled",
"userId",
"isUserInfo"
], ],
watch: { watch: {
// archiveId: function(archiveId){
// this.fileList = [];
// console.log(1,archiveId);
// // listHrUserAccessory({relevanceId:this.archiveId}).then(res => {
// // var files1 = res.data.data
// // files1.forEach(i => (i.name = i.name));
// // console.log(2,files1);
// // });
// },
archiveId: function(archiveId) { archiveId: function(archiveId) {
var that = this; var that = this;
this.$nextTick(_ => { this.$nextTick(_ => {
this.fileList = []; this.fileList = [];
listArchiveAttachment({ archiveId: this.archiveId }).then(res => {
if(this.isUserInfo==1){
}else{
listArchiveAttachment({ archiveId: that.archiveId }).then(res => {
var files = res.data.data; var files = res.data.data;
if (files && files.length > 0) { if (files && files.length > 0) {
files.forEach(i => { files.forEach(i => {
@ -100,6 +123,8 @@ export default {
}); });
} }
}); });
}
}); });
}, },
eliminate: function(eliminate) { eliminate: function(eliminate) {
@ -128,7 +153,7 @@ export default {
}); });
previewOnlineUrls.forEach(i => { previewOnlineUrls.forEach(i => {
i.url = i.url =
config.getArcFileUploadBasePath() + "/" + i.url + "?name=" + i.name;
config.getArcFileUploadBasePath() + "/" + i.accessory + "?name=" + i.name;
}); });
console.log( console.log(
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx00000000000000000000000000000000000" "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx00000000000000000000000000000000000"
@ -144,7 +169,9 @@ export default {
fileList: [], fileList: [],
showPreviewImage: false, showPreviewImage: false,
showOnePreviewImage: false, showOnePreviewImage: false,
image: null
image: null,
isshow:false,
isshowtrue:false
/**end 在上面加自定义属性**/ /**end 在上面加自定义属性**/
}; //end return }; //end return
}, //end data }, //end data
@ -157,16 +184,39 @@ export default {
handleSuccess(res, file) { handleSuccess(res, file) {
if (res.tips.isOk) { if (res.tips.isOk) {
file = Object.assign(file, res.data); file = Object.assign(file, res.data);
console.log(this.isshowtrue);
this.fileList.push(res.data); this.fileList.push(res.data);
if(!this.isshowtrue){
this.fileList = [];
}
console.log(this.fileList);
this.$emit('getCarFrontImageUrl',res.data.url) this.$emit('getCarFrontImageUrl',res.data.url)
this.$emit('getCarBackImageUrl',res.data.url) this.$emit('getCarBackImageUrl',res.data.url)
this.$emit('getCarInnerImageUrl',res.data.url) this.$emit('getCarInnerImageUrl',res.data.url)
this.$emit('uploadSuccess',file) this.$emit('uploadSuccess',file)
this.$message.success('上传附件成功');
} else { } else {
this.$message.warning(res.tips.msg); this.$message.warning(res.tips.msg);
return false; return false;
} }
}, },
showFile(){
console.log(6,this.fileList);
this.isshowtrue = true;
listHrUserAccessory({relevanceId:this.archiveId,userid:this.userId}).then(res => {
var files = res.data.data;
files.forEach(i => (i.name = i.name));
this.fileList = files;
console.log(2,this.fileList);
if(this.fileList.length == 0||!this.fileList.length){
this.$message('暂无附件');
}
});
},
hideFile(){
this.isshowtrue = false;
this.fileList = [];
},
handleRemove(file, fileList) { handleRemove(file, fileList) {
if (!file.id || file.id == null || file.id == "") { if (!file.id || file.id == null || file.id == "") {
return true; return true;
@ -226,13 +276,14 @@ export default {
var canDel = false; var canDel = false;
this.fileList.forEach(item => { this.fileList.forEach(item => {
if (item.name == file.name) { if (item.name == file.name) {
if (item.canDel == "1") {
if (item.canDel == "1"||item.type == "1") {
canDel = true; canDel = true;
return; return;
} }
} }
}); });
if (canDel == false && file.id && file.id != null && file.id != "") { if (canDel == false && file.id && file.id != null && file.id != "") {
console.log(66);
this.$message.warning(file.name + "设置了不允许删除"); this.$message.warning(file.name + "设置了不允许删除");
return false; return false;
} else if ( } else if (
@ -252,13 +303,13 @@ export default {
this.$message({ message: "文件已经存在", type: "warning" }); this.$message({ message: "文件已经存在", type: "warning" });
return false; return false;
} else { } else {
if (file.size > 1024 * 1024 * 4) {
if (file.size > 1024 * 1024) {
//4M //4M
this.$message({ this.$message({
message: message:
"文件大小为" + "文件大小为" +
file.size / (1024 * 1024) + file.size / (1024 * 1024) +
"M,大于4M,不允许上传。",
"M,大于1M,不允许上传。",
type: "warning" type: "warning"
}); });
return false; return false;
@ -281,12 +332,6 @@ export default {
if (!this.archiveId) { if (!this.archiveId) {
return; return;
} }
listArchiveAttachment({ archiveId: this.archiveId }).then(res => {
var files = res.data.data;
files.forEach(i => (i.name = i.name));
this.fileList = files;
});
/**在下面写其它函数***/ /**在下面写其它函数***/
} //end mounted } //end mounted
}; };

202
src/views/mdp/arc/tag/TagMng.vue

@ -1,6 +1,6 @@
<template> <template>
<section> <section>
<sticky :className="'sub-navbar draft'" style="margin-left:-20px;margin-right:-20px;">
<!-- <sticky :className="'sub-navbar draft'" style="margin-left:-20px;margin-right:-20px;"> -->
<el-row> <el-row>
<el-col :span="6"> <el-col :span="6">
<el-input style="width:99%;" v-model="needAddTagCategoryNameInputValue" placeholder="标签分类,回车直接添加" <el-input style="width:99%;" v-model="needAddTagCategoryNameInputValue" placeholder="标签分类,回车直接添加"
@ -8,28 +8,42 @@
</el-col> </el-col>
<el-col :span="14"> <el-col :span="14">
<el-checkbox v-if="userInfo.isPlatformAdmin||userInfo.isSuperAdmin" v-model="isPub" true-label='1' false-label='0'>公共分类</el-checkbox>
<el-checkbox v-if="userInfo.isPlatformAdmin||userInfo.isSuperAdmin" v-model="isPub" true-label='1'
false-label='0'>公共分类</el-checkbox>
<el-button @click="getTags" v-loading="sectionLoading" style="">查询</el-button>
<el-button type="primary" v-if="jump==true" @click="selectConfirm">确认</el-button> <el-button type="primary" v-if="jump==true" @click="selectConfirm">确认</el-button>
<el-button type="primary" @click="getTags" v-loading="sectionLoading">查询</el-button>
</el-col> </el-col>
<el-col :span="4" class="hidden-sm-and-down">
<!-- <el-col :span="4" class="hidden-sm-and-down">
<el-tooltip content="黄色表示已经有的标签"><span class="addTagSquare"></span></el-tooltip> <el-tooltip content="黄色表示已经有的标签"><span class="addTagSquare"></span></el-tooltip>
<el-tooltip content="白色表示尚未拥有的标签"><span class="closeTagSquare"></span></el-tooltip> <el-tooltip content="白色表示尚未拥有的标签"><span class="closeTagSquare"></span></el-tooltip>
</el-col>
</el-col> -->
</el-row> </el-row>
</sticky> </sticky>
<el-row class="app-container">
<el-row class="page-container border">
<el-row v-for="(item,index) in convertTags" :key="item.categoryId"> <el-row v-for="(item,index) in convertTags" :key="item.categoryId">
<h3> <h3>
<div>{{item.categoryName+(item.pubc=='1'?'(公共)':'')}}<i class="el-icon-close closeStyle" @click.stop="delTagCategoryMethod(item.categoryId,index)"></i>:</div>
<div>{{item.categoryName+(item.pubc=='1'?'(公共)':'')}}<i class="el-icon-close closeStyle"
@click.stop="delTagCategoryMethod(item.categoryId,index)"></i></div>
</h3> </h3>
<!--el-icon-circle-close--> <!--el-icon-circle-close-->
<el-col :span="24" style="margin-left:30px;display:flex;flex-wrap: wrap;width: 100%;">
<div :class="v.checked?'checkCopyButton':'copyButton'" v-for="(v,valueIndex) in item.values" :key="valueIndex"
<el-tag :key="tagName" v-for="(i,valueIndex) in item.values" closable :disable-transitions="false"
@close="delTagMethod(i.tagId,index,valueIndex)" :color="i.checked?'':'#ffffff'" :effect="i.checked?'dark':'light'" @click="clickTagMethod(index,valueIndex)">
{{i.tagName +(i.pubTag=='1'?'(公共)':'')}}
</el-tag>
<el-input class="input-new-tag" v-if="item.showAddButtonVisible" v-model="item.showAddButtonInputValue"
ref="saveTagInput" size="small" @keyup.enter.native="addTagMethod(index)" @blur="addTagMethod(index)">
</el-input>
<el-button v-else class="button-new-tag" size="small" @click="showAddButtonMethod(index)">+ 标签</el-button>
<!-- <el-col :span="24" style="margin-left:30px;display:flex;flex-wrap: wrap;width: 100%;">
<div :class="v.checked?'checkCopyButton':''" v-for="(v,valueIndex) in item.values" :key="valueIndex"
@click="clickTagMethod(index,valueIndex)">{{v.tagName +(v.pubTag=='1'?'(公共)':'')}} @click="clickTagMethod(index,valueIndex)">{{v.tagName +(v.pubTag=='1'?'(公共)':'')}}
<i class="el-icon-close closeStyle" @click.stop="delTagMethod(v.tagId,index,valueIndex)"></i> <i class="el-icon-close closeStyle" @click.stop="delTagMethod(v.tagId,index,valueIndex)"></i>
</div> </div>
@ -38,7 +52,7 @@
</div> </div>
<div v-else class="add" @click="showAddButtonMethod(index)"><i class="el-icon-circle-plus-outline" style="font-size:35px;"></i></div> <div v-else class="add" @click="showAddButtonMethod(index)"><i class="el-icon-circle-plus-outline" style="font-size:35px;"></i></div>
</el-col>
</el-col> -->
</el-row> </el-row>
@ -50,7 +64,14 @@
import util from '@/common/js/util'; // import util from '@/common/js/util'; //
import Sticky from '@/components/Sticky' // header import Sticky from '@/components/Sticky' // header
//import { listOption } from '@/api/mdp/meta/itemOption';// //import { listOption } from '@/api/mdp/meta/itemOption';//
import { listTag, delTag, batchDelTag,addTag, getAllTag,deleteTagCategory} from '@/api/mdp/arc/tag';
import {
listTag,
delTag,
batchDelTag,
addTag,
getAllTag,
deleteTagCategory
} from '@/api/mdp/arc/tag';
import { import {
mapGetters mapGetters
} from 'vuex' } from 'vuex'
@ -62,23 +83,23 @@
export default { export default {
computed: { computed: {
...mapGetters([ ...mapGetters([
'workShop','userInfo'
'workShop', 'userInfo'
]) ])
}, },
// //
props: ['jump', 'visible','tagIds'],
props: ['jump', 'visible', 'tagIds'],
watch: { watch: {
'tagIds': function(tagIds) { 'tagIds': function(tagIds) {
if(tagIds && tagIds.length>0){
this.convertTags.forEach(i=>{
if( i.values && i.values.length>0){
i.values.forEach(k=>{
if(tagIds.some(j=>j==k.tagId)){
k.checked=true;
}else{
k.checked=false;
if (tagIds && tagIds.length > 0) {
this.convertTags.forEach(i => {
if (i.values && i.values.length > 0) {
i.values.forEach(k => {
if (tagIds.some(j => j == k.tagId)) {
k.checked = true;
} else {
k.checked = false;
} }
}); });
} }
@ -133,7 +154,7 @@
addTime: '', addTime: '',
state: '', state: '',
id: '', id: '',
isPub :'',
isPub: '',
}, },
editFormVisible: false, // editFormVisible: false, //
@ -146,10 +167,10 @@
addTime: '', addTime: '',
state: '', state: '',
id: '', id: '',
isPub:'',
isPub: '',
}, },
/**begin 自定义属性请在下面加 请加备注**/ /**begin 自定义属性请在下面加 请加备注**/
isPub:'0'
isPub: '0'
/**end 自定义属性请在上面加 请加备注**/ /**end 自定义属性请在上面加 请加备注**/
} }
}, //end data }, //end data
@ -215,19 +236,19 @@
let convert = []; let convert = [];
for (let i = 0; i < allTag.length; i++) { for (let i = 0; i < allTag.length; i++) {
let flag = true; // let flag = true; //
var tag=allTag[i];
var tag = allTag[i];
for (let j = 0; j < convert.length; j++) { for (let j = 0; j < convert.length; j++) {
if (tag.tagId && tag.categoryId == convert[j].categoryId ) {
if (tag.tagId && tag.categoryId == convert[j].categoryId) {
let json = { let json = {
"isSaveInDatabase": true, "isSaveInDatabase": true,
"checked": tag.checked ? true : false, "checked": tag.checked ? true : false,
"tagId": tag.tagId, "tagId": tag.tagId,
"tagName": tag.tagName, "tagName": tag.tagName,
"pubTag":tag.pubTag,
"pubTag": tag.pubTag,
} }
if(this.tagIds && this.tagIds.some(id=>id==json.tagId)){
json.checked=true;
if (this.tagIds && this.tagIds.some(id => id == json.tagId)) {
json.checked = true;
} }
convert[j].values.push(json); convert[j].values.push(json);
flag = false; flag = false;
@ -240,21 +261,21 @@
"showAddButtonInputValue": '', // "showAddButtonInputValue": '', //
"categoryId": tag.categoryId, "categoryId": tag.categoryId,
"categoryName": tag.categoryName, "categoryName": tag.categoryName,
"pubc":tag.pubc,
"pubc": tag.pubc,
"values": [{ "values": [{
"isSaveInDatabase": false, "isSaveInDatabase": false,
"checked": false, "checked": false,
"tagId": tag.tagId, "tagId": tag.tagId,
"tagName": tag.tagName, "tagName": tag.tagName,
"pubTag":tag.pubTag,
"pubTag": tag.pubTag,
}] }]
} }
if (!json.values[0].tagId) { if (!json.values[0].tagId) {
json.values = []; json.values = [];
}else{
} else {
if(this.tagIds && this.tagIds.some(id=>id==json.values[0].tagId)){
json.values[0].checked=true;
if (this.tagIds && this.tagIds.some(id => id == json.values[0].tagId)) {
json.values[0].checked = true;
} }
} }
convert.push(json); convert.push(json);
@ -356,42 +377,42 @@
}, },
// //
addTagMethod(index) { addTagMethod(index) {
if(!this.userInfo.isPlatformAdmin && !this.userInfo.isSuperAdmin){
if(this.isPub=='1'){
if (!this.userInfo.isPlatformAdmin && !this.userInfo.isSuperAdmin) {
if (this.isPub == '1') {
this.$message({ this.$message({
message:"不是平台管理员,不允许增加公共标签",
message: "不是平台管理员,不允许增加公共标签",
type: 'error' type: 'error'
}); });
return; return;
} }
} }
if(this.convertTags.some(i=>{
return i.values.some(tag=>tag.tagName==this.convertTags[index].showAddButtonInputValue)
})){
if (this.convertTags.some(i => {
return i.values.some(tag => tag.tagName == this.convertTags[index].showAddButtonInputValue)
})) {
this.$message({ this.$message({
message:"标签已经存在",
message: "标签已经存在",
type: 'error' type: 'error'
}); });
return false; return false;
} }
if(!this.convertTags[index].pubc){
if(this.isPub=='1'){
if (!this.convertTags[index].pubc) {
if (this.isPub == '1') {
this.$message({ this.$message({
message:"该分类不是公共分类,不能添加公共标签",
message: "该分类不是公共分类,不能添加公共标签",
type: 'error' type: 'error'
}); });
return false; return false;
} }
} }
let that = this; let that = this;
let tagName=this.convertTags[index].showAddButtonInputValue;
let categoryId=this.convertTags[index].categoryId;
let tagName = this.convertTags[index].showAddButtonInputValue;
let categoryId = this.convertTags[index].categoryId;
let params = { let params = {
"branchId": that.workShop.branchId, "branchId": that.workShop.branchId,
"shopId": that.workShop.shopId, "shopId": that.workShop.shopId,
"categoryId": categoryId, "categoryId": categoryId,
"tagName": tagName, "tagName": tagName,
"isPub":this.isPub
"isPub": this.isPub
}; };
if (!params.tagName) { if (!params.tagName) {
@ -409,9 +430,9 @@
"checked": false, "checked": false,
"tagId": res.data.data.id, "tagId": res.data.data.id,
"tagName": res.data.data.tagName, "tagName": res.data.data.tagName,
"pubTag":res.data.data.isPub
"pubTag": res.data.data.isPub
} }
this.convertTags[index].showAddButtonInputValue='';
this.convertTags[index].showAddButtonInputValue = '';
this.convertTags[index].values.push(json); this.convertTags[index].values.push(json);
} }
this.$message({ this.$message({
@ -422,10 +443,10 @@
}, },
// //
delTagMethod(tagId, index, valueIndex) { delTagMethod(tagId, index, valueIndex) {
if(!this.userInfo.isPlatformAdmin && !this.userInfo.isSuperAdmin){
if(this.convertTags[index].values.some(i=>i.pubTag=='1'&&i.tagId==tagId)){
if (!this.userInfo.isPlatformAdmin && !this.userInfo.isSuperAdmin) {
if (this.convertTags[index].values.some(i => i.pubTag == '1' && i.tagId == tagId)) {
this.$message({ this.$message({
message:"公共标签不允许删除",
message: "公共标签不允许删除",
type: 'error' type: 'error'
}); });
return; return;
@ -436,7 +457,7 @@
let params = { let params = {
"id": tagId "id": tagId
} }
console.log("params.id-------------------------"+params.id);
console.log("params.id-------------------------" + params.id);
if (!params.id) { if (!params.id) {
return; return;
} }
@ -470,19 +491,19 @@
// //
addTagCategorySubmitMethod() { addTagCategorySubmitMethod() {
let that = this; let that = this;
if(!(this.userInfo.isPlatformAdmin || this.userInfo.isSuperAdmin)){
if(this.isPub=='1'){
if (!(this.userInfo.isPlatformAdmin || this.userInfo.isSuperAdmin)) {
if (this.isPub == '1') {
this.$message({ this.$message({
message:"你不是平台管理员不能添加公共标签分类",
message: "你不是平台管理员不能添加公共标签分类",
type: 'error' type: 'error'
}); });
return; return;
} }
} }
if(this.convertTags.some(i=>i.categoryName==this.needAddTagCategoryNameInputValue)){
if (this.convertTags.some(i => i.categoryName == this.needAddTagCategoryNameInputValue)) {
this.$message({ this.$message({
message:"标签分类已经存在",
message: "标签分类已经存在",
type: 'error' type: 'error'
}); });
return false; return false;
@ -494,7 +515,7 @@
"branchId": this.workShop.branchId, "branchId": this.workShop.branchId,
"shopId": this.workShop.shopId, "shopId": this.workShop.shopId,
"categoryName": this.needAddTagCategoryNameInputValue, "categoryName": this.needAddTagCategoryNameInputValue,
"isPub":this.isPub
"isPub": this.isPub
}; };
that.sectionLoading = true; that.sectionLoading = true;
addTagCategory(params).then((res) => { addTagCategory(params).then((res) => {
@ -508,7 +529,7 @@
"categoryId": res.data.data.id, "categoryId": res.data.data.id,
"categoryName": res.data.data.categoryName, "categoryName": res.data.data.categoryName,
"values": [], "values": [],
"pubc":res.data.data.isPub
"pubc": res.data.data.isPub
} }
this.convertTags.push(json); this.convertTags.push(json);
} }
@ -519,19 +540,19 @@
}).catch(err => this.sectionLoading = false); }).catch(err => this.sectionLoading = false);
}, },
selectConfirm(){
let selectTags=[];
this.sels=this.convertTags.forEach(i=>{
if(i.values && i.values.length>0){
i.values.forEach(j=>{
if(j.checked==true){
selectConfirm() {
let selectTags = [];
this.sels = this.convertTags.forEach(i => {
if (i.values && i.values.length > 0) {
i.values.forEach(j => {
if (j.checked == true) {
selectTags.push(j); selectTags.push(j);
} }
}) })
} }
}) })
this.$emit("select-confirm",selectTags);
this.$emit("select-confirm", selectTags);
}, },
// //
delTagCategoryMethod(categoryId, index) { delTagCategoryMethod(categoryId, index) {
@ -545,10 +566,10 @@
"branchId": this.workShop.branchId, "branchId": this.workShop.branchId,
"id": categoryId "id": categoryId
} }
if(!this.userInfo.isPlatformAdmin && !this.userInfo.isSuperAdmin){
if(this.convertTags.some(i=>i.pubc=='1'&&i.categoryId==categoryId)){
if (!this.userInfo.isPlatformAdmin && !this.userInfo.isSuperAdmin) {
if (this.convertTags.some(i => i.pubc == '1' && i.categoryId == categoryId)) {
this.$message({ this.$message({
message:"公共分类不允许删除",
message: "公共分类不允许删除",
type: 'error' type: 'error'
}); });
return; return;
@ -599,6 +620,11 @@
</script> </script>
<style scoped> <style scoped>
.sub-navbar.draft {
background: #ffffff;
}
.copyButton { .copyButton {
margin-left: 5px; margin-left: 5px;
border-radius: 20px; border-radius: 20px;
@ -618,7 +644,7 @@
/*color: #fff;*/ /*color: #fff;*/
margin-left: 5px; margin-left: 5px;
border-radius: 20px; border-radius: 20px;
padding: 10px 1px;
padding: 10px;
border: 1px solid #FFA00A; border: 1px solid #FFA00A;
/*background-color: rgba(230, 162, 60, .1);*/ /*background-color: rgba(230, 162, 60, .1);*/
/* background-color: #f9f9f9; */ /* background-color: #f9f9f9; */
@ -641,12 +667,14 @@
.input-tag { .input-tag {
margin-left:10px;
margin-left: 10px;
margin-top: 2px; margin-top: 2px;
align-self: center; align-self: center;
} }
.closeStyle { .closeStyle {
padding: 1px; padding: 1px;
margin-left: 10px;
} }
.closeStyle:hover { .closeStyle:hover {
@ -675,6 +703,7 @@
background-color: #fff; background-color: #fff;
animation: myrotate 2s linear infinite; animation: myrotate 2s linear infinite;
} }
@keyframes myrotate { @keyframes myrotate {
0% { 0% {
transform: rotate(0deg); transform: rotate(0deg);
@ -691,4 +720,33 @@
box-shadow: 0px 0px 10px #fff; box-shadow: 0px 0px 10px #fff;
} }
} }
.el-tag+.el-tag {
margin-right: 10px;
}
.button-new-tag {
margin-right: 10px;
height: 32px;
line-height: 30px;
padding-top: 0;
padding-bottom: 0;
}
.input-new-tag {
width: 90px;
margin-right: 10px;
/* vertical-align: bottom; */
}
.el-tag--medium {
height: 32px;
line-height: 32px;
margin-right: 10px;
margin-bottom: 10px;
}
.app-container {
padding: 20px 0;
}
</style> </style>

2
src/views/mdp/form/formData/FormDataMng.vue

@ -91,7 +91,7 @@
{{showCalendar==true?'切换列表':'切换日历'}} {{showCalendar==true?'切换列表':'切换日历'}}
</el-tag> </el-tag>
</el-row> </el-row>
<el-row class="app-container">
<el-row class="page-container border">
<el-col :xs="4" :sm="4" :md="3" :lg="3" :xl="3" class="hidden-sm-and-down"> <el-col :xs="4" :sm="4" :md="3" :lg="3" :xl="3" class="hidden-sm-and-down">
<dept-tree ref="deptTree" show-root default-expand-all multiple show-checkbox :expand-on-click-node="false" v-on:check-change="handleDeptTreeCheckChange"></dept-tree> <dept-tree ref="deptTree" show-root default-expand-all multiple show-checkbox :expand-on-click-node="false" v-on:check-change="handleDeptTreeCheckChange"></dept-tree>
</el-col> </el-col>

2
src/views/mdp/form/formData/FormDataMngForFlow.vue

@ -31,7 +31,7 @@
<el-button v-if="filters.flowState!='1'" type="primary" @click="showAdd">新增数据</el-button> <el-button v-if="filters.flowState!='1'" type="primary" @click="showAdd">新增数据</el-button>
<el-button v-if=" filters.flowState!='1'" type="danger" @click="batchDel" :disabled="this.sels.length===0">批量删除</el-button> <el-button v-if=" filters.flowState!='1'" type="danger" @click="batchDel" :disabled="this.sels.length===0">批量删除</el-button>
</sticky> </sticky>
<el-row class="app-container">
<el-row class="page-container border">
<el-table v-if="filters.flowState=='0'" :data="formDatas" @sort-change="sortChange" height="240" highlight-current-row v-loading="listLoading" border @selection-change="selsChange" style="width: 100%;"> <el-table v-if="filters.flowState=='0'" :data="formDatas" @sort-change="sortChange" height="240" highlight-current-row v-loading="listLoading" border @selection-change="selsChange" style="width: 100%;">
<el-table-column type="selection" width="55" v-if="showBtn"></el-table-column> <el-table-column type="selection" width="55" v-if="showBtn"></el-table-column>
<el-table-column type="index" width="60"></el-table-column> <el-table-column type="index" width="60"></el-table-column>

2
src/views/mdp/form/formData/FormDataMngForFlowTable.vue

@ -31,7 +31,7 @@
<el-button v-if="filters.flowState!='1'" type="primary" @click="showAdd">新增数据</el-button> <el-button v-if="filters.flowState!='1'" type="primary" @click="showAdd">新增数据</el-button>
<el-button v-if=" filters.flowState!='1'" type="danger" @click="batchDel" :disabled="this.sels.length===0">批量删除</el-button> <el-button v-if=" filters.flowState!='1'" type="danger" @click="batchDel" :disabled="this.sels.length===0">批量删除</el-button>
</sticky> </sticky>
<el-row class="app-container">
<el-row class="page-container border">
<el-table v-if="filters.flowState=='0'" :data="formDatas" @sort-change="sortChange" height="240" highlight-current-row v-loading="listLoading" border @selection-change="selsChange" style="width: 100%;"> <el-table v-if="filters.flowState=='0'" :data="formDatas" @sort-change="sortChange" height="240" highlight-current-row v-loading="listLoading" border @selection-change="selsChange" style="width: 100%;">
<el-table-column type="selection" width="55" v-if="showBtn"></el-table-column> <el-table-column type="selection" width="55" v-if="showBtn"></el-table-column>
<el-table-column type="index" width="60"></el-table-column> <el-table-column type="index" width="60"></el-table-column>

3
src/views/mdp/form/formDef/FormDefAdd.vue

@ -1,7 +1,6 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<!--新增界面 FormDef 表单定义-->
<el-row class="page-container border padding">
<form-field ref="fields" :form-def.sync="addForm" :fields.sync="fields"></form-field> <form-field ref="fields" :form-def.sync="addForm" :fields.sync="fields"></form-field>
<el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm"> <el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm">

3
src/views/mdp/form/formDef/FormDefForFlowNode.vue

@ -1,7 +1,6 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<!--新增界面 FormDef 表单定义-->
<el-row class="page-container border padding">
<form-field ref="fields" :visible="visible" :form-def.sync="addForm" :fields.sync="fields" :load-from-db="0"></form-field> <form-field ref="fields" :visible="visible" :form-def.sync="addForm" :fields.sync="fields" :load-from-db="0"></form-field>
<el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm"> <el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm">

2
src/views/mdp/form/formDef/FormDefList.vue

@ -32,7 +32,7 @@
</sticky> </sticky>
<el-row class="app-container">
<el-row class="page-container border">
<!--工具条2--> <!--工具条2-->

2
src/views/mdp/form/formDef/FormDefMng.vue

@ -46,7 +46,7 @@
{{filters.user.username}} {{filters.user.username}}
</el-tag> </el-tag>
</el-row> </el-row>
<el-row class="app-container">
<el-row class="page-container border">
<el-col :xs="4" :sm="4" :md="3" :lg="3" :xl="3" class="hidden-sm-and-down"> <el-col :xs="4" :sm="4" :md="3" :lg="3" :xl="3" class="hidden-sm-and-down">
<category-tree ref="categoryTree" multiple :expandOnClickNode="false" :defaultExpandAll="true" show-checkbox :current-key="addForm.categoryId" v-on:check-change="handleCategoryCheckChange" ></category-tree> <category-tree ref="categoryTree" multiple :expandOnClickNode="false" :defaultExpandAll="true" show-checkbox :current-key="addForm.categoryId" v-on:check-change="handleCategoryCheckChange" ></category-tree>
</el-col> </el-col>

2
src/views/mdp/form/formField/FormField.vue

@ -1,6 +1,6 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<el-row class="page-container border">
<el-col :span="10"> <el-col :span="10">
<draggable id="delDrg" class="dragArea" :list="delFields" :options="{group:{ name:'g1'}, animation:150}" :no-transition-on-drag="true" @start="drag=true" @end="drag=false"> <draggable id="delDrg" class="dragArea" :list="delFields" :options="{group:{ name:'g1'}, animation:150}" :no-transition-on-drag="true" @start="drag=true" @end="drag=false">
<el-badge :value="selectedFields.length" class="item"> <el-badge :value="selectedFields.length" class="item">

3
src/views/mdp/form/formQx/FormQxSet.vue

@ -1,7 +1,6 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<!--编辑界面 FormQx 表单权限-->
<el-row class="page-container border padding">
<el-form :model="editForm" label-width="140px" :rules="editFormRules" ref="editForm"> <el-form :model="editForm" label-width="140px" :rules="editFormRules" ref="editForm">
<el-form-item label="表单" prop="formId"> <el-form-item label="表单" prop="formId">
{{editForm.formId}}-{{formDef?formDef.formName:''}} {{editForm.formId}}-{{formDef?formDef.formName:''}}

3
src/views/mdp/meta/category/CategoryAdd.vue

@ -1,7 +1,6 @@
<template> <template>
<section> <section>
<el-row>
<!--新增界面 Category 元数据分类-->
<el-row class="page-container border padding">
<el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm"> <el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm">
<el-form-item label="分类编号" prop="id"> <el-form-item label="分类编号" prop="id">
<el-input v-model="addForm.id" auto-complete="off"></el-input><el-tag>为空则后台自动生成</el-tag> <el-input v-model="addForm.id" auto-complete="off"></el-input><el-tag>为空则后台自动生成</el-tag>

2
src/views/mdp/meta/category/CategoryMng.vue

@ -6,7 +6,7 @@
<el-button type="primary" @click="showAdd">+元数据分类</el-button> <el-button type="primary" @click="showAdd">+元数据分类</el-button>
<el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0">批量删除</el-button> <el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0">批量删除</el-button>
</sticky> </sticky>
<el-row class="app-container">
<el-row class="page-container border">
<!--列表 Category 元数据分类--> <!--列表 Category 元数据分类-->
<el-table :data="categorys" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> <el-table :data="categorys" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="55"></el-table-column> <el-table-column type="selection" width="55"></el-table-column>

3
src/views/mdp/meta/item/ItemAdd.vue

@ -1,7 +1,6 @@
<template> <template>
<section> <section>
<el-row>
<!--新增界面 Item 数据项定义-->
<el-row class="page-container border padding">
<el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm"> <el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm">
<el-form-item label="编号" prop="id"> <el-form-item label="编号" prop="id">
<el-input v-model="addForm.id" auto-complete="off"></el-input><el-tag>为空则后台自动生成</el-tag> <el-input v-model="addForm.id" auto-complete="off"></el-input><el-tag>为空则后台自动生成</el-tag>

3
src/views/mdp/meta/item/ItemEdit.vue

@ -1,7 +1,6 @@
<template> <template>
<section> <section>
<el-row>
<!--新增界面 Item 数据项定义-->
<el-row class="page-container border padding">
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editForm"> <el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editForm">
<el-form-item label="编号" prop="id"> <el-form-item label="编号" prop="id">
<el-tag>{{editForm.id}}</el-tag> <el-tag>{{editForm.id}}</el-tag>

2
src/views/mdp/meta/item/ItemMng.vue

@ -12,7 +12,7 @@
<el-button type="text" @click="showAdd" :disabled="readOnly==true">+字段</el-button> <el-button type="text" @click="showAdd" :disabled="readOnly==true">+字段</el-button>
<el-button type="text" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || readOnly==true">删除</el-button> <el-button type="text" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || readOnly==true">删除</el-button>
</sticky> </sticky>
<el-row class="app-container">
<el-row class="page-container border">
<!--列表 Item 数据项定义--> <!--列表 Item 数据项定义-->
<el-table :data="items" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> <el-table :data="items" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" min-width="55"></el-table-column> <el-table-column type="selection" min-width="55"></el-table-column>

3
src/views/mdp/meta/itemOption/ItemOptionAdd.vue

@ -1,7 +1,6 @@
<template> <template>
<section> <section>
<el-row>
<!--新增界面 ItemOption 数据项取值列表-->
<el-row class="page-container border padding">
<el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm"> <el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm">
<el-form-item label="选项值" prop="optionValue"> <el-form-item label="选项值" prop="optionValue">
<el-input v-model="addForm.optionValue" auto-complete="off"></el-input> <el-input v-model="addForm.optionValue" auto-complete="off"></el-input>

2
src/views/mdp/meta/itemOption/ItemOptionMng.vue

@ -12,7 +12,7 @@
<el-button type="text" @click="showAdd" :disabled="readOnly==true">+字段值</el-button> <el-button type="text" @click="showAdd" :disabled="readOnly==true">+字段值</el-button>
<el-button type="text" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || readOnly==true">删除</el-button> <el-button type="text" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || readOnly==true">删除</el-button>
</sticky> </sticky>
<el-row class="app-container">
<el-row class="page-container border">
<!--列表 ItemOption 数据项取值列表--> <!--列表 ItemOption 数据项取值列表-->
<el-table :data="itemOptions" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> <el-table :data="itemOptions" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="55"></el-table-column> <el-table-column type="selection" width="55"></el-table-column>

3
src/views/mdp/meta/sysParam/ItemOptionAdd.vue

@ -1,7 +1,6 @@
<template> <template>
<section> <section>
<el-row>
<!--新增界面 ItemOption 数据项取值列表-->
<el-row class="page-container border padding">
<el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm"> <el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm">
<el-form-item label="参数代码" prop="id"> <el-form-item label="参数代码" prop="id">
<el-input v-model="addForm.id" auto-complete="off"></el-input> <el-input v-model="addForm.id" auto-complete="off"></el-input>

3
src/views/mdp/meta/sysParam/ItemOptionEdit.vue

@ -1,7 +1,6 @@
<template> <template>
<section> <section>
<el-row>
<!--新增界面 ItemOption 数据项取值列表-->
<el-row class="page-container border padding">
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editForm"> <el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editForm">
<el-form-item label="参数代码" prop="id"> <el-form-item label="参数代码" prop="id">
<el-input v-model="editForm.id" auto-complete="off"></el-input> <el-input v-model="editForm.id" auto-complete="off"></el-input>

2
src/views/mdp/meta/sysParam/SysParamMng.vue

@ -8,7 +8,7 @@
<el-button type="primary" @click="showAdd">+参数</el-button> <el-button type="primary" @click="showAdd">+参数</el-button>
<el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0">批量删除</el-button> <el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0">批量删除</el-button>
</sticky> </sticky>
<el-row class="app-container">
<el-row class="page-container border">
<!--列表 ItemOption 数据项取值列表--> <!--列表 ItemOption 数据项取值列表-->
<el-table :data="itemOptions" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> <el-table :data="itemOptions" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="55"></el-table-column> <el-table-column type="selection" width="55"></el-table-column>

2
src/views/mdp/sys/branch/BranchSelect.vue

@ -4,7 +4,7 @@
<el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"></el-input> <el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"></el-input>
<el-button type="primary" v-loading="load.list" v-on:click="searchBranchs">查询</el-button> <el-button type="primary" v-loading="load.list" v-on:click="searchBranchs">查询</el-button>
</sticky> </sticky>
<el-row class="app-container">
<el-row class="page-container border">
<!--列表 Branch 管理端机构表机构下面若干部门--> <!--列表 Branch 管理端机构表机构下面若干部门-->
<el-table :data="branchs" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> <el-table :data="branchs" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="index" width="60"></el-table-column> <el-table-column type="index" width="60"></el-table-column>

4
src/views/mdp/sys/post/PostSelectCommon.vue

@ -1,6 +1,6 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<el-row class="page-container border">
<el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"></el-input> <el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"></el-input>
<el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchPosts">查询</el-button> <el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchPosts">查询</el-button>
@ -9,7 +9,7 @@
<i class="el-icon-question"></i> <i class="el-icon-question"></i>
</el-tooltip> </el-tooltip>
</el-row> </el-row>
<el-row class="app-container">
<el-row class="page-container border">
<!--列表 Post sys_post--> <!--列表 Post sys_post-->
<el-table :data="posts" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> <el-table :data="posts" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="55"></el-table-column> <el-table-column type="selection" width="55"></el-table-column>

6
src/views/mdp/sys/user/UsersSelect.vue

@ -15,7 +15,7 @@
</el-tag> </el-tag>
</el-row> </el-row>
<el-row class="app-container">
<el-row class="page-container border">
<el-col :span="6" style=" overflow-x:auto; height:600px;"> <el-col :span="6" style=" overflow-x:auto; height:600px;">
<dept-tree show-root default-expand-all show-checkbox :expand-on-click-node="false" @node-click="handleLeftDeptNodeClick" @branch-row-click="branchRowClick"></dept-tree> <dept-tree show-root default-expand-all show-checkbox :expand-on-click-node="false" @node-click="handleLeftDeptNodeClick" @branch-row-click="branchRowClick"></dept-tree>
</el-col> </el-col>
@ -279,6 +279,10 @@
return; return;
} }
} }
// console.log(this.deptTree.deptNodeSelected)
// deptid
let returnData = this.sels.map(i=>{return {'userid':i.userid,'username':i.username,'sex':i.sex,'headimgurl':i.headimgurl,'email':i.email}}); let returnData = this.sels.map(i=>{return {'userid':i.userid,'username':i.username,'sex':i.sex,'headimgurl':i.headimgurl,'email':i.email}});
if(this.isSelectByDept) returnData.deptData = this.currentSelectDeptData; if(this.isSelectByDept) returnData.deptData = this.currentSelectDeptData;
this.$emit('confirm',returnData); this.$emit('confirm',returnData);

398
src/views/mdp/sys/userDept/UserDeptEdit.vue

@ -3,74 +3,21 @@
<el-row> <el-row>
<!--编辑界面 UserDept 用户部门关系表--> <!--编辑界面 UserDept 用户部门关系表-->
<el-col :span="6" style=" overflow-x:auto; height:550px;"> <el-col :span="6" style=" overflow-x:auto; height:550px;">
<dept-tree
v-loading="load.list"
:branch-id="branch.id"
:checked-keys="defaultDeptids"
default-expand-all
show-checkbox
multiple
:expand-on-click-node="false"
ref="nodeTree"
@check-change="deptTreeCheckChange"
@branch-row-click="branchChange"
></dept-tree>
<dept-tree v-loading="load.list" :branch-id="branch.id" :checked-keys="defaultChecked" default-expand-all show-checkbox multiple :expand-on-click-node="false" ref="nodeTree" @check-change="deptTreeCheckChange" @branch-row-click="branchChange"></dept-tree>
</el-col> </el-col>
<el-col :span="18"> <el-col :span="18">
<el-form
:model="editForm"
label-width="160px"
label-position="left"
v-loading="load.list"
:rules="editFormRules"
ref="editForm"
>
<el-form :model="editForm" label-width="160px" label-position="left" v-loading="load.list" :rules="editFormRules" ref="editForm">
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>
<font style="color:blue;">{{user.username}}</font>加入的部门
<el-tag v-for="item in deptNodes " :key="item.deptid">{{item.deptName}}</el-tag>
{{deptNodes.length>0?'':'还没有加入任何部门'}}
<font style="color:green;">
<i class="el-icon-caret-left"></i>先选部门
</font>
<i class="el-icon-caret-bottom"></i>再选
<font style="color:red;">岗位</font>
</span>
<el-tooltip
class="item"
effect="dark"
content="如果选中的部门没有岗位,请先到【部门管理 -> 岗位设置 】将岗位与部门关联"
placement="top"
>
<span><font style="color:blue;">{{user.username}}</font> - 加入的部门及拥有的岗位如下 </span>
<el-tooltip class="item" effect="dark" content="如果选中的部门没有岗位,请先到【部门管理 -> 岗位设置 】将岗位与部门关联" placement="top">
<i class="el-icon-question"></i> <i class="el-icon-question"></i>
</el-tooltip> </el-tooltip>
</div> </div>
<el-form-item
v-for="item in allDeptDeptPosts"
:label=" item.deptName "
style="border-bottom:1px dashed #00F;margin-left:10px;"
prop="deptid"
:key="item.deptid"
>
<el-checkbox
v-for="deptPost in item.deptPosts"
v-model="deptPost.checked"
:true-label="'1'"
:false-label="'0'"
:key="deptPost.postId"
>{{deptPost.postName}}</el-checkbox>
</el-form-item>
<el-form-item
v-for="item in noPostDepts"
:label=" item.deptName "
style="border-bottom:1px dashed #00F;margin-left:10px;"
prop="deptid"
:key="item.deptid"
>
<font style="color:red;">该部门还没设置岗位</font>
<el-button type="text" class="el-icon-right" @click="goToSetDeptPostPage">>去设置</el-button>
<el-form-item v-for="item in allDeptDeptPosts" :label=" item.deptName " style="border-bottom:1px dashed #00F;margin-left:10px;" prop="deptid" :key="item.deptid">
<el-checkbox v-for="deptPost in item.deptPosts" v-model="deptPost.checked" :true-label="'1'" :false-label="'0'" :key="deptPost.postId" :disabled="deptPost.disabled">{{deptPost.postName}}</el-checkbox>
</el-form-item> </el-form-item>
</el-card> </el-card>
<h5></h5> <h5></h5>
<el-form-item> <el-form-item>
@ -88,42 +35,37 @@
</template> </template>
<script> <script>
import util from "@/common/js/util"; //
import {
editUserDept,
listUserDept,
batchEditUserDept
} from "@/api/mdp/sys/userDept";
import { listDept } from "@/api/mdp/sys/dept";
import DeptTree from "../dept/DeptTree.vue"; //
import { listBranch } from "@/api/mdp/sys/branch";
import { mapGetters } from "vuex";
import {
listDeptPost,
delDeptPost,
batchDelDeptPost,
batchAddDeptPost
} from "@/api/mdp/sys/post/deptPost";
import { listDeptPostUserWithDeptPosts } from "@/api/mdp/sys/post/deptPostUser";
import util from '@/common/js/util';//
import { editUserDept, listUserDept, batchEditUserDept } from '@/api/mdp/sys/userDept';
import { listDept } from '@/api/mdp/sys/dept';
import DeptTree from '../dept/DeptTree.vue';//
import { listBranch } from '@/api/mdp/sys/branch';
import { mapGetters } from 'vuex'
import { listDeptPost, delDeptPost, batchDelDeptPost,batchAddDeptPost } from '@/api/mdp/sys/post/deptPost';
import { listDeptPostUserWithDeptPosts } from '@/api/mdp/sys/post/deptPostUser';
export default {
export default {
computed: { computed: {
...mapGetters(["workShop"])
...mapGetters([
'workShop'
]),
noQxDeptids(){
return [];
},
defaultChecked(){
return this.userDepts.map(i=>i.deptid);
},
}, },
props: ["userDept", "visible", "user", "branch"],
props:['userDept','visible','user','branch'],
watch: { watch: {
visible: function(visible) {
if (visible == true) {
this.allDeptDeptPosts = [];
this.userDeptids = [];
this.deptNodes = [];
this.noPostDepts = [];
this.defaultDeptids = [];
if (this.$refs.nodeTree.branch != null) {
console.log("===========1111=========");
'visible':function(visible) {
if(visible==true){
this.allDeptDeptPosts=[]
this.userDeptids=[];
if(this.$refs.nodeTree.branch!=null){
this.getUserDepts(this.$refs.nodeTree.branch); this.getUserDepts(this.$refs.nodeTree.branch);
} else {
console.log("===========2222========="+JSON.stringify(this.branch));
}else{
this.getUserDepts(this.branch); this.getUserDepts(this.branch);
} }
@ -133,207 +75,169 @@ export default {
}, },
data() { data() {
return { return {
options: {}, //
load: { list: false, edit: false, del: false, add: false }, //...
options:{},//
load:{ list: false, edit: false, del: false, add: false },//...
editFormRules: { editFormRules: {
userid: [ userid: [
{ required: true, message: "用户编号不能为空", trigger: "blur" }
{ required: true, message: '用户编号不能为空', trigger: 'blur' }
] ]
}, },
// UserDept // UserDept
editForm: { editForm: {
userid: "",
deptid: "",
enabled: "",
seq: "",
branchId: "",
id: ""
userid:'',deptid:'',enabled:'',seq:'',branchId:'',id:''
}, },
/**begin 在下面加自定义属性,记得补上面的一个逗号**/ /**begin 在下面加自定义属性,记得补上面的一个逗号**/
deptNodes: [], //deptid:'',deptName:'',pdeptid:'',deptType:'',state:'',manager:'',leader:'',shortName:'',displayDeptid:'',orgType:'',managerName:'',leaderName:''
userDeptids: [], //
userDepts: [],
loadingDeptids: [], //
defaultDeptids: [], //
allDeptDeptPosts: [], //[{deptid:'',deptName:'',deptPosts:[{deptid:'',postId:'',postName:'',checked:''}]}]
noPostDepts: []
userDepts:[],
allDeptDeptPosts: [],//[{deptid:'',deptName:'',deptPosts:[{deptid:'',postId:'',postName:'',checked:''}]}]
deptTreeDatas:[],//
checkedDeptTreeNode:[],//
/**end 在上面加自定义属性**/ /**end 在上面加自定义属性**/
}; //end return
}, //end data
}//end return
},//end data
methods: { methods: {
// @cancel="editFormVisible=false" // @cancel="editFormVisible=false"
handleCancel: function() {
this.$emit("cancel");
handleCancel:function(){
this.$emit('cancel');
}, },
branchChange: function(branch) {
this.allDeptDeptPosts = [];
this.getUserDepts(branch);
branchChange: function(branch){
this.allDeptDeptPosts=[];
this.getUserDepts(branch)
}, },
//UserDept @submit="afterEditSubmit" //UserDept @submit="afterEditSubmit"
editSubmit: function() {
if (this.user.userid == "") {
this.$message.error("用户不能为空");
editSubmit: function () {
if(this.user.userid==''){
this.$message.error('用户不能为空');
return; return;
} }
this.load.edit = true;
var msg = "确认提交吗?";
if (this.deptNodes.length == 0) {
msg = this.user.username + "不在任何部门,将从公司中删除该用户," + msg;
}
this.$confirm(msg, "提示", {})
.then(() => {
this.load.edit=true
var msg="确认提交吗?";
this.$confirm(msg, '提示', {}).then(() => {
console.log("xxxxxxxxxxxxxx"); console.log("xxxxxxxxxxxxxx");
let delDeptids = [];
let deptids = this.$refs.nodeTree.$refs.deptTree.getCheckedKeys();
this.userDepts.forEach(ud => {
if (!deptids.some(deptid => deptid == ud.deptid)) {
delDeptids.push(ud.deptid);
let delDeptids=[];
let deptids=this.$refs.nodeTree.$refs.deptTree.getCheckedKeys();
this.userDepts.forEach(ud=>{
if(!this.noQxDeptids.some(d=>d==ud.deptid)){
if(!deptids.some(deptid=>deptid==ud.deptid)){
delDeptids.push(ud.deptid)
} }
});
let addDeptPostUsers = [];
let delDeptPostUsers = [];
this.allDeptDeptPosts.forEach(i => {
i.deptPosts.forEach(k => {
if (k.checked == "1") {
k.userid = this.user.userid;
addDeptPostUsers.push(k);
} else if (k.checked == "0" && k.id != "") {
delDeptPostUsers.push(k);
} }
});
});
})
let addDeptPostUsers=[];
let delDeptPostUsers=[];
this.allDeptDeptPosts.forEach(i=>{
i.deptPosts.forEach(k=>{
if(k.checked=='1'){
k.userid=this.user.userid
addDeptPostUsers.push(k)
}else if(k.checked=='0' && k.id!=''){
delDeptPostUsers.push(k)
}
})
})
console.log("ffffffffffffffffffffffffffffffffffffffffffffffffff"); console.log("ffffffffffffffffffffffffffffffffffffffffffffffffff");
let branch = this.$refs.nodeTree.branch;
let params = {
branchId: branch == null ? this.branch.id : branch.id,
userid: this.user.userid,
deptids: deptids,
delDeptids: delDeptids,
delDeptPostUsers: delDeptPostUsers,
addDeptPostUsers: addDeptPostUsers
};
batchEditUserDept(params)
.then(res => {
this.load.edit = false;
var tips = res.data.tips;
if (tips.isOk) {
this.$refs["editForm"].resetFields();
this.$emit("submit"); // @submit="afterEditSubmit"
let branch=this.$refs.nodeTree.branch;
let params = {branchId:branch==null?this.branch.id:branch.id,userid:this.user.userid,deptids:deptids,delDeptids:delDeptids,delDeptPostUsers:delDeptPostUsers,addDeptPostUsers:addDeptPostUsers}
batchEditUserDept(params).then((res) => {
this.load.edit=false
var tips=res.data.tips;
if(tips.isOk){
this.$refs['editForm'].resetFields();
this.$emit('submit');// @submit="afterEditSubmit"
} }
this.$message({
message: tips.msg,
type: tips.isOk ? "success" : "error"
});
})
.catch(e => {
console.log(e);
this.load.edit = false;
this.$message({ message: tips.msg, type: tips.isOk?'success':'error' });
}).catch((e) => {
console.log(e)
this.load.edit=false
}); });
}).catch((e)=>{
console.log(e)
this.load.edit=false;
}) })
.catch(e => {
console.log(e);
this.load.edit = false;
});
}, },
/**begin 在下面加自定义方法,记得补上面的一个逗号**/ /**begin 在下面加自定义方法,记得补上面的一个逗号**/
getUserDepts(branch) {
this.load.list = true;
let params = { userid: this.user.userid };
params.branchId = branch.id;
console.log("params==="+JSON.stringify(params));
listUserDept(params)
.then(res => {
this.load.list = false;
let uds = res.data.data;
this.userDepts = uds;
this.userDeptids = uds.map(i => i.deptid);
this.defaultDeptids = this.userDeptids;
this.getDeptPostUserWithDeptPosts(this.defaultDeptids);
})
.catch(() => (this.load.list = false));
getUserDepts(branch){
this.load.list=true
let params={userid:this.user.userid};
params.branchId=branch.id;
listUserDept(params).then(res=>{
this.load.list=false
let uds=res.data.data
this.userDepts=uds;
let userDeptids=uds.map(i=>i.deptid);
this.getDeptPostUserWithDeptPosts(userDeptids);
}).catch(()=>this.load.list=false);
}, },
deptTreeCheckChange: function(data, checked, indeterminate) {
console.log(
"deptTreeCheckChangedeptTreeCheckChangedeptTreeCheckChangedeptTreeCheckChangedeptTreeCheckChange"
);
console.log(data);
let deptids = this.$refs.nodeTree.$refs.deptTree.getCheckedKeys();
this.deptNodes = this.$refs.nodeTree.$refs.deptTree.getCheckedNodes(
false
);
console.log("deptNodes" + this.deptNodes);
deptTreeCheckChange: function(data,checked,indeterminate){
console.log(data)
let deptids=this.$refs.nodeTree.$refs.deptTree.getCheckedKeys();
this.deptTreeDatas=this.$refs.nodeTree.depts;
this.checkedDeptTreeNode=this.$refs.nodeTree.$refs.deptTree.getCheckedNodes(false)
console.log("deptNodes"+this.deptNodes);
this.getDeptPostUserWithDeptPosts(deptids); this.getDeptPostUserWithDeptPosts(deptids);
}, },
getDeptPostUserWithDeptPosts: function(deptids) {
this.load.list = true;
let params = { userid: this.user.userid, deptids: deptids };
this.allDeptDeptPosts = [];
listDeptPostUserWithDeptPosts(params)
.then(res => {
this.deptNodes = this.$refs.nodeTree.$refs.deptTree.getCheckedNodes(
false
);
this.load.list = false;
let allDeptDeptPosts = [];
let deptPosts = res.data.deptPosts;
let deptPostUsers = res.data.deptPostUsers;
deptPosts.forEach(i => {
i.id = "";
i.checked = "0";
if (
deptPostUsers.some(k => {
if (k.deptid == i.deptid && k.postId == i.postId) {
i.id = k.id;
return true;
} else {
return false;
getDeptPostUserWithDeptPosts: function(deptids){
this.load.list=true
let params={userid: this.user.userid,deptids:deptids}
this.allDeptDeptPosts=[]
listDeptPostUserWithDeptPosts(params).then(res=>{
this.load.list=false
let allDeptDeptPosts=[];
let deptPosts=res.data.deptPosts
let deptPostUsers=res.data.deptPostUsers
deptPosts.forEach(i=>{
i.id='';
i.checked='0'
i.disabled=this.noQxDeptids.some(n=>n==i.deptid)
if(deptPostUsers.some(k=>{
if(k.deptid==i.deptid && k.postId==i.postId){
i.id=k.id
return true
}else{
return false
} }
})
) {
i.checked = "1";
})){
i.checked='1'
} }
});
deptPosts.forEach(i => {
if (allDeptDeptPosts.some(k => k.deptid == i.deptid)) {
allDeptDeptPosts.forEach(j => {
if (j.deptid == i.deptid) {
j.deptPosts.push(i);
})
deptPosts.forEach(i=>{
if(allDeptDeptPosts.some(k=>k.deptid==i.deptid )){
allDeptDeptPosts.forEach(j=>{
if(j.deptid==i.deptid){
j.deptPosts.push(i)
} }
});
} else {
allDeptDeptPosts.push({
deptid: i.deptid,
deptName: i.deptName,
deptPosts: [i]
});
})
}else{
allDeptDeptPosts.push({deptid:i.deptid,deptName:i.deptName,deptPosts:[i]})
} }
});
this.allDeptDeptPosts = allDeptDeptPosts;
this.noPostDepts = this.deptNodes.filter(
i => !this.allDeptDeptPosts.some(k => k.deptid == i.deptid)
);
})
this.allDeptDeptPosts=allDeptDeptPosts
}).catch((e)=>{
this.load.list=false;
}) })
.catch(e => {
this.load.list = false;
});
}, },
goToSetDeptPostPage: function() {
this.$router.push({ path: "/mdp/sys/dept/DeptMng" });
goToSetDeptPostPage:function(){
this.$router.push({path:'/mdp/sys/dept/DeptMng'});
} }
/**end 在上面加自定义方法**/ /**end 在上面加自定义方法**/
}, //end method
},//end method
components: { components: {
// 'user-dept-edit':UserDeptEdit // 'user-dept-edit':UserDeptEdit
DeptTree DeptTree
}, },
mounted() { mounted() {
this.editForm = Object.assign(this.editForm, this.userDept);
this.getUserDepts(this.branch);
this.editForm=Object.assign(this.editForm, this.userDept);
this.getUserDepts(this.branch)
}
} }
};
</script> </script>
<style scoped> <style scoped>
</style> </style>

3
src/views/mdp/workflow/biz/bizModel/BizModelAdd.vue

@ -1,7 +1,6 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<!--新增界面 BizModel mdp_biz_model-->
<el-row class="page-container border padding">
<el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm"> <el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm">
<el-form-item label="业务名称" prop="bizName"> <el-form-item label="业务名称" prop="bizName">
<el-input v-model="addForm.bizName" placeholder="业务名称" ></el-input> <el-input v-model="addForm.bizName" placeholder="业务名称" ></el-input>

3
src/views/mdp/workflow/biz/bizModel/BizModelEdit.vue

@ -1,7 +1,6 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<!--编辑界面 BizModel mdp_biz_model-->
<el-row class="page-container border padding">
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editForm"> <el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editForm">
<el-form-item label="业务名称" prop="bizName" required> <el-form-item label="业务名称" prop="bizName" required>
<el-input v-model="editForm.bizName" placeholder="业务名称" ></el-input> <el-input v-model="editForm.bizName" placeholder="业务名称" ></el-input>

8
src/views/mdp/workflow/biz/bizModel/BizModelMng.vue

@ -1,7 +1,7 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<el-row>
<el-row class="page-container border">
<el-row class="page-header">
<el-input v-model="filters.key" style="width:30%;" placeholder="模糊查询"> <el-input v-model="filters.key" style="width:30%;" placeholder="模糊查询">
<template slot="append"> <template slot="append">
<el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchBizModels" icon="el-icon-search">查询</el-button> <el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchBizModels" icon="el-icon-search">查询</el-button>
@ -10,9 +10,9 @@
<el-button @click="showAdd" icon="el-icon-plus" style="margin-left: 13px;">业务模块</el-button> <el-button @click="showAdd" icon="el-icon-plus" style="margin-left: 13px;">业务模块</el-button>
<el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true" icon="el-icon-delete">批量删除</el-button> <el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true" icon="el-icon-delete">批量删除</el-button>
</el-row> </el-row>
<el-row style="padding-top:20px;">
<el-row class="page-main">
<!--列表 BizModel mdp_biz_model--> <!--列表 BizModel mdp_biz_model-->
<el-table ref="table" :max-height="tableHeight" :data="bizModels" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table ref="table" :height="tableHeight" :data="bizModels" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column sortable type="selection" width="40"></el-table-column> <el-table-column sortable type="selection" width="40"></el-table-column>
<el-table-column sortable type="index" width="40"></el-table-column> <el-table-column sortable type="index" width="40"></el-table-column>
<el-table-column sortable prop="bizName" label="业务名称" min-width="80" show-overflow-tooltip></el-table-column> <el-table-column sortable prop="bizName" label="业务名称" min-width="80" show-overflow-tooltip></el-table-column>

8
src/views/mdp/workflow/de/model/ModelMng.vue

@ -1,7 +1,7 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<el-row>
<el-row class="page-container border">
<el-row class="page-header">
<el-input v-model="filters.key" style="width:270px;" placeholder="模糊查询"> <el-input v-model="filters.key" style="width:270px;" placeholder="模糊查询">
<template slot="append"> <template slot="append">
<el-button type="primary" v-on:click="searchModels" icon="el-icon-search">查询</el-button> <el-button type="primary" v-on:click="searchModels" icon="el-icon-search">查询</el-button>
@ -12,9 +12,9 @@
icon="el-icon-download" icon="el-icon-download"
>导出数据</el-button> >导出数据</el-button>
</el-row> </el-row>
<el-row style="padding-top:20px;">
<el-row class="page-main">
<!--列表 Model act_de_model--> <!--列表 Model act_de_model-->
<el-table ref="table" :max-height="tableHeight" :data="models" highlight-current-row v-loading="listLoading" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table ref="table" :height="tableHeight" :data="models" highlight-current-row v-loading="listLoading" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="index" width="40"></el-table-column> <el-table-column type="index" width="40"></el-table-column>
<el-table-column prop="name" label="流程(点击查已发布版本)" min-width="300" show-overflow-tooltip> <el-table-column prop="name" label="流程(点击查已发布版本)" min-width="300" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">

4
src/views/mdp/workflow/hi/comment/commentStep.vue

@ -1,7 +1,7 @@
<template> <template>
<section> <section>
<el-row style="max-height:400px;overflow-y:scroll;overflow-x:hidden;">
<div style="border:1px dashed #000;padding:10px;">
<el-row style="border:1px dashed #000;padding:10px;">
<div >
<div v-if="!comments || comments.length<=0" style="padding-left: 10px;">暂无信息</div> <div v-if="!comments || comments.length<=0" style="padding-left: 10px;">暂无信息</div>
<el-steps :space="60" direction="vertical" process-status="process" finish-status="success"> <el-steps :space="60" direction="vertical" process-status="process" finish-status="success">
<el-step v-for="(item,index) in comments " :key="index" status="success"> <el-step v-for="(item,index) in comments " :key="index" status="success">

127
src/views/mdp/workflow/hi/procinst/ProcinstMng.vue

@ -1,13 +1,8 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<!-- <el-col :xs="4" :sm="4" :md="3" :lg="3" :xl="3" class="hidden-md-and-down">
<category-tree ref="categoryTree" multiple :expandOnClickNode="false" :defaultExpandAll="true" show-checkbox
:current-key="addForm.categoryId" v-on:check-change="handleCategoryCheckChange"></category-tree>
</el-col> -->
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
<el-row class="page-container border">
<!--列表 Procinst act_hi_procinst--> <!--列表 Procinst act_hi_procinst-->
<el-row>
<el-row class="page-header">
<el-select v-model="filters.filterType" clearable placeholder="查询范围" class="hidden-lg-and-down"> <el-select v-model="filters.filterType" clearable placeholder="查询范围" class="hidden-lg-and-down">
<el-option value="" label="全部"> </el-option> <el-option value="" label="全部"> </el-option>
<el-option value="startUserId" label="我发起"> </el-option> <el-option value="startUserId" label="我发起"> </el-option>
@ -19,19 +14,18 @@
<el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option> <el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
<el-date-picker v-model="filters.startTimeRanger" class="hidden-sm-and-down" type="daterange" align="right"
<el-date-picker v-model="filters.startTimeRanger" class="hidden-sm-and-down" type="daterange"
unlink-panels range-separator="-" start-placeholder="创建日期" end-placeholder="创建日期" value-format="yyyy-MM-dd" unlink-panels range-separator="-" start-placeholder="创建日期" end-placeholder="创建日期" value-format="yyyy-MM-dd"
:default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions"> :default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions">
</el-date-picker> </el-date-picker>
<el-input v-model="filters.key" style="width:270px;" placeholder="模糊查询">
<template slot="append">
<el-button v-on:click="searchProcinsts" icon="el-icon-search">查询</el-button>
</template>
</el-input>
<el-popover title="更多查询条件" placement="top-start" width="400" trigger="click">
<el-row class="more-filter-item">
<el-col :span="24">
<font class="more-label-font">
<el-input v-model="filters.key" placeholder="模糊查询"> </el-input>
<el-button type="primary" class="padding-left" v-on:click="searchProcinsts" icon="el-icon-search">查询</el-button>
<el-button class="padding-left" icon="el-icon-more" @click="moreFilterVisible=true" circle></el-button>
<el-drawer title="更多查询条件" :visible.sync="moreFilterVisible" append-to-body :size="400">
<el-row class="page-container more-filter">
<el-divider content-position="left">查询条件</el-divider>
<el-row>
<font >
查询范围 查询范围
</font> </font>
<el-select size="mini" v-model="filters.filterType" placeholder="查询范围"> <el-select size="mini" v-model="filters.filterType" placeholder="查询范围">
@ -41,17 +35,17 @@
<el-option value="sponsors" label="我主办"> </el-option> <el-option value="sponsors" label="我主办"> </el-option>
<el-option value="monitors" label="我监控"> </el-option> <el-option value="monitors" label="我监控"> </el-option>
</el-select> </el-select>
</el-col>
<el-col :span="24">
<font class="more-label-font">
</el-row>
<el-row>
<font >
分类 分类
</font> </font>
<el-select size="mini" v-model="filters.procCategory" clearable filterable placeholder="选择分类" > <el-select size="mini" v-model="filters.procCategory" clearable filterable placeholder="选择分类" >
<el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option> <el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
</el-col>
<el-col :span="24">
<font class="more-label-font">
</el-row>
<el-row>
<font >
标签查找 标签查找
</font> </font>
<el-row v-show="filters.tags && filters.tags.length>0"> <el-row v-show="filters.tags && filters.tags.length>0">
@ -62,9 +56,9 @@
</el-row> </el-row>
<el-button v-if="filters.tags==null || filters.tags.length==0" size="mini" <el-button v-if="filters.tags==null || filters.tags.length==0" size="mini"
@click.native="showTagSelect(false)">选择标签</el-button> @click.native="showTagSelect(false)">选择标签</el-button>
</el-col>
<el-col :span="24">
<font class="more-label-font">
</el-row>
<el-row>
<font >
任务执行 任务执行
</font> </font>
<el-tag v-if="filters.assignee" :type="'success'" closable :disable-transitions="false" <el-tag v-if="filters.assignee" :type="'success'" closable :disable-transitions="false"
@ -72,47 +66,46 @@
{{filters.assignee.username}} {{filters.assignee.username}}
</el-tag> </el-tag>
<el-button v-else size="mini" @click.native="userSelectVisible=true">选择执行人</el-button> <el-button v-else size="mini" @click.native="userSelectVisible=true">选择执行人</el-button>
</el-col>
<el-col :span="24">
<font class="more-label-font">
</el-row>
<el-row>
<font >
开始日期 开始日期
</font> </font>
<el-date-picker v-model="filters.startTimeRanger" type="daterange" align="right" unlink-panels <el-date-picker v-model="filters.startTimeRanger" type="daterange" align="right" unlink-panels
range-separator="-" start-placeholder="创建日期" end-placeholder="创建日期" value-format="yyyy-MM-dd" range-separator="-" start-placeholder="创建日期" end-placeholder="创建日期" value-format="yyyy-MM-dd"
:default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions"> :default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions">
</el-date-picker> </el-date-picker>
</el-col>
<el-col :span="24">
</el-row>
<el-row>
<font class="more-label-font">
<font >
计划完成日期 计划完成日期
</font> </font>
<el-date-picker v-model="filters.planFinishTimeRanger" type="daterange" align="right" unlink-panels <el-date-picker v-model="filters.planFinishTimeRanger" type="daterange" align="right" unlink-panels
range-separator="-" start-placeholder="计划完成日期" end-placeholder="计划完成日期" value-format="yyyy-MM-dd" range-separator="-" start-placeholder="计划完成日期" end-placeholder="计划完成日期" value-format="yyyy-MM-dd"
:default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions"> :default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions">
</el-date-picker> </el-date-picker>
</el-col>
</el-row>
<!-- <el-col :span="24"> <!-- <el-col :span="24">
<category-tree class="hidden-lg-and-up" ref="categoryTree" multiple :expandOnClickNode="false" <category-tree class="hidden-lg-and-up" ref="categoryTree" multiple :expandOnClickNode="false"
:defaultExpandAll="true" show-checkbox :current-key="addForm.categoryId" :defaultExpandAll="true" show-checkbox :current-key="addForm.categoryId"
v-on:check-change="handleCategoryCheckChange"></category-tree> v-on:check-change="handleCategoryCheckChange"></category-tree>
</el-col> --> </el-col> -->
<el-col :span="24" style="margin-top: 11px;">
<el-row>
<el-button size="mini" type="primary" v-on:click="searchProcinsts" icon="el-icon-search">查询</el-button> <el-button size="mini" type="primary" v-on:click="searchProcinsts" icon="el-icon-search">查询</el-button>
</el-col>
</el-row>
<el-col :span="24">
<el-row>
<el-divider content-position="left">其它操作</el-divider> <el-divider content-position="left">其它操作</el-divider>
<el-button size="mini" @click.native="showTagSelect(true)">给任务打标签</el-button> <el-button size="mini" @click.native="showTagSelect(true)">给任务打标签</el-button>
<el-button size="mini" @click="handleDownload">导出数据</el-button> <el-button size="mini" @click="handleDownload">导出数据</el-button>
</el-col>
</el-row> </el-row>
<el-button slot="reference" icon="el-icon-more" style="margin-left: 13px;" circle></el-button>
</el-popover>
</el-row> </el-row>
<el-row style="padding-top:20px;">
<el-table ref="table" :max-height="tableHeight" :data="procinsts" highlight-current-row
</el-drawer>
</el-row>
<el-row class="page-main">
<el-table ref="table" :height="tableHeight" :data="procinsts" highlight-current-row
v-loading="listLoading" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> v-loading="listLoading" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="40"></el-table-column> <el-table-column type="selection" width="40"></el-table-column>
<el-table-column type="index" width="40"></el-table-column> <el-table-column type="index" width="40"></el-table-column>
@ -149,15 +142,14 @@
@size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum"
:page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination> :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination>
<!--编辑 Execution act_ru_execution界面--> <!--编辑 Execution act_ru_execution界面-->
<el-dialog title="任务详情" fullscreen :visible.sync="editFormVisible" :width="dialogWidth()"
<el-drawer title="任务详情" :visible.sync="editFormVisible" :size="dialogWidth()" :withHeader="false"
:close-on-click-modal="false"> :close-on-click-modal="false">
<procinst-parames-execution-set :companyEmployees="companyEmployees" :companyDepts="companyDepts" <procinst-parames-execution-set :companyEmployees="companyEmployees" :companyDepts="companyDepts"
:taskInfo="editForm" :procDefId="editForm.procDefId" :procInstId="editForm.procInstId" :taskInfo="editForm" :procDefId="editForm.procDefId" :procInstId="editForm.procInstId"
:visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"> :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit">
</procinst-parames-execution-set> </procinst-parames-execution-set>
</el-dialog>
</el-drawer>
</el-row> </el-row>
</el-col>
<el-dialog append-to-body title="选择员工" :visible.sync="userSelectVisible" width="60%"> <el-dialog append-to-body title="选择员工" :visible.sync="userSelectVisible" width="60%">
<users-select :select-userids="filters.assignee?[filters.assignee.userid]:[]" @confirm="onUserSelected"> <users-select :select-userids="filters.assignee?[filters.assignee.userid]:[]" @confirm="onUserSelected">
@ -349,6 +341,7 @@
isBatchSetProcTags: false, isBatchSetProcTags: false,
userSelectVisible: false, userSelectVisible: false,
tableHeight: 300, tableHeight: 300,
moreFilterVisible:false,
/**end 自定义属性请在上面加 请加备注**/ /**end 自定义属性请在上面加 请加备注**/
}; };
}, //end data }, //end data
@ -365,10 +358,10 @@
}, },
dialogWidth: function() { dialogWidth: function() {
if (screen.width > 500) {
return "80%";
if (screen.width > 600) {
return "60%";
} else { } else {
return "100%";
return "80%";
} }
}, },
handleSizeChange(pageSize) { handleSizeChange(pageSize) {
@ -917,7 +910,7 @@
}); });
this.$nextTick(() => { this.$nextTick(() => {
var clientRect = this.$refs.table.$el.getBoundingClientRect(); var clientRect = this.$refs.table.$el.getBoundingClientRect();
var subHeight = 70 / 1000 * window.innerHeight;
var subHeight = 60 / 1000 * window.innerHeight;
this.tableHeight = window.innerHeight - clientRect.y - this.$refs.table.$el.offsetTop - subHeight; this.tableHeight = window.innerHeight - clientRect.y - this.$refs.table.$el.offsetTop - subHeight;
if (this.isMyStart) { if (this.isMyStart) {
this.filters.filterType = "startUserId" this.filters.filterType = "startUserId"
@ -937,43 +930,5 @@
</script> </script>
<style scoped> <style scoped>
.filters-show {
margin-left: 20px;
margin-top: 10px;
margin-bottom: 0px;
}
.filters-label {
font-size: 14px;
color: black;
font-weight: bold;
}
.more-filter-item {
margin: 20px 0px;
}
.more-filter-item .el-col {
margin: 2px 2px;
}
.more-filter-item button {
margin: 2px 2px;
}
.more-label-font {
text-align: center;
float: left;
height: 28px;
line-height: 28px;
margin-right: 10px;
}
.el-popover__title {
color: #303133;
font-size: 18px;
line-height: 1;
margin-bottom: 12px;
margin-top: 11px;
}
</style> </style>

8
src/views/mdp/workflow/re/deployment/DeploymentMng.vue

@ -1,7 +1,7 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<el-row>
<el-row class="page-container border">
<el-row class="page-header">
<el-select v-model="filters.category" clearable filterable placeholder="请选择分类"> <el-select v-model="filters.category" clearable filterable placeholder="请选择分类">
<el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option> <el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
@ -12,10 +12,10 @@
</el-input> </el-input>
<el-button @click="handleDownload" icon="el-icon-download" style="">导出数据</el-button> <el-button @click="handleDownload" icon="el-icon-download" style="">导出数据</el-button>
</el-row> </el-row>
<el-row style="padding-top:20px;">
<el-row class="page-main">
<!--列表 Deployment act_re_deployment--> <!--列表 Deployment act_re_deployment-->
<el-table <el-table
ref="table" :max-height="tableHeight"
ref="table" :height="tableHeight"
:data="deployments" :data="deployments"
highlight-current-row highlight-current-row
v-loading="listLoading" v-loading="listLoading"

18
src/views/mdp/workflow/re/procdef/ProcdefListForParames.vue

@ -1,26 +1,22 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<el-row>
<el-col>
<el-row>
<el-row class="page-container border">
<el-row class="page-header">
<el-select v-model="filters.procCategory" clearable filterable placeholder="请选择分类"> <el-select v-model="filters.procCategory" clearable filterable placeholder="请选择分类">
<el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option> <el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
<el-input v-model="filters.key" style="width:270px;" placeholder="模糊查询">
<template slot="append">
<el-button type="primary" v-on:click="searchProcdefs" icon="el-icon-search">查询</el-button>
</template>
<el-input v-model="filters.key" placeholder="模糊查询">
</el-input> </el-input>
<el-button type="primary" v-on:click="searchProcdefs" icon="el-icon-search">查询</el-button>
<el-button @click.native="showTagSelect(false)" icon="el-icon-search" style="margin-left: 13px;" class="hidden-sm-and-down">标签</el-button> <el-button @click.native="showTagSelect(false)" icon="el-icon-search" style="margin-left: 13px;" class="hidden-sm-and-down">标签</el-button>
<el-button @click.native="showTagSelect(true)" icon="el-icon-plus" class="hidden-sm-and-down">标签</el-button> <el-button @click.native="showTagSelect(true)" icon="el-icon-plus" class="hidden-sm-and-down">标签</el-button>
<el-button @click="handleDownload" icon="el-icon-download" class="hidden-md-and-down">导出数据</el-button> <el-button @click="handleDownload" icon="el-icon-download" class="hidden-md-and-down">导出数据</el-button>
</el-row> </el-row>
<el-row style="padding-top:20px;">
<el-row class="page-main">
<!--列表 Procdef act_re_procdef--> <!--列表 Procdef act_re_procdef-->
<el-table <el-table
ref="table" :max-height="tableHeight"
ref="table" :height="tableHeight"
:data="procdefs" :data="procdefs"
highlight-current-row highlight-current-row
v-loading="listLoading" v-loading="listLoading"
@ -141,8 +137,6 @@
></tag-mng> ></tag-mng>
</el-dialog> </el-dialog>
</el-row> </el-row>
</el-col>
</el-row>
</el-row> </el-row>
</section> </section>
</template> </template>

14
src/views/mdp/workflow/re/procdef/ProcdefListForSimpleStart.vue

@ -1,19 +1,17 @@
<template> <template>
<section> <section>
<el-row v-if="flowStartVisible==false" class="app-container">
<el-row>
<el-row v-if="flowStartVisible==false" class="page-container border">
<el-row class="page-header">
<el-input v-model="filters.key" style="width:270px;" placeholder="模糊查询"> <el-input v-model="filters.key" style="width:270px;" placeholder="模糊查询">
<template slot="append">
</el-input>
<el-button type="primary" v-loading="listLoading" :disabled="listLoading" v-on:click="searchProcdefs" <el-button type="primary" v-loading="listLoading" :disabled="listLoading" v-on:click="searchProcdefs"
icon="el-icon-search">查询</el-button> icon="el-icon-search">查询</el-button>
</template>
</el-input>
<el-tag type="info" v-if="this.procdefs.length==0">如果没有找到流程请将业务编码{{this.filters.params.bizKey}}与流程进行关联 <el-tag type="info" v-if="this.procdefs.length==0">如果没有找到流程请将业务编码{{this.filters.params.bizKey}}与流程进行关联
</el-tag> </el-tag>
</el-row> </el-row>
<el-row style="padding-top:20px;">
<el-row class="page-main">
<!--列表 Procdef act_re_procdef--> <!--列表 Procdef act_re_procdef-->
<el-table ref="procdefsTable" :max-height="tableHeight" :data="procdefs" highlight-current-row
<el-table ref="procdefsTable" :height="tableHeight" :data="procdefs" highlight-current-row
v-loading="listLoading" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> v-loading="listLoading" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="40"></el-table-column> <el-table-column type="selection" width="40"></el-table-column>
<el-table-column type="index" width="40"></el-table-column> <el-table-column type="index" width="40"></el-table-column>
@ -326,7 +324,7 @@
this.$nextTick(() => { this.$nextTick(() => {
var clientRect = this.$refs.procdefsTable.$el.getBoundingClientRect(); var clientRect = this.$refs.procdefsTable.$el.getBoundingClientRect();
var subHeight = 70 / 1000 * window.innerHeight;
var subHeight = 60 / 1000 * window.innerHeight;
this.tableHeight = window.innerHeight - clientRect.y - this.$refs.procdefsTable.$el.offsetTop - subHeight; this.tableHeight = window.innerHeight - clientRect.y - this.$refs.procdefsTable.$el.offsetTop - subHeight;
}) })

44
src/views/mdp/workflow/re/procdef/ProcdefListForStart.vue

@ -1,16 +1,13 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<el-col>
<el-row>
<el-row class="page-container border">
<el-row class="page-header">
<el-select v-model="filters.procCategory" clearable filterable placeholder="请选择分类"> <el-select v-model="filters.procCategory" clearable filterable placeholder="请选择分类">
<el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option> <el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
<el-input v-model="filters.key" style="width:270px;" placeholder="模糊查询"> <el-input v-model="filters.key" style="width:270px;" placeholder="模糊查询">
<template slot="append">
<el-button type="primary" v-on:click="searchProcdefs" icon="el-icon-search">查询</el-button>
</template>
</el-input> </el-input>
<el-button type="primary" v-on:click="searchProcdefs" icon="el-icon-search">查询</el-button>
<el-button @click.native="showTagSelect(false)" icon="el-icon-search" class="hidden-md-and-down">标签</el-button> <el-button @click.native="showTagSelect(false)" icon="el-icon-search" class="hidden-md-and-down">标签</el-button>
<el-button @click.native="showTagSelect(true)" icon="el-icon-plus" class="hidden-md-and-down">标签</el-button> <el-button @click.native="showTagSelect(true)" icon="el-icon-plus" class="hidden-md-and-down">标签</el-button>
@ -26,9 +23,9 @@
v-on:check-change="handleCategoryCheckChange"></category-tree> v-on:check-change="handleCategoryCheckChange"></category-tree>
</el-drawer> </el-drawer>
</el-row> </el-row>
<el-row style="padding-top:20px;">
<el-row class="page-main">
<!--列表 Procdef act_re_procdef--> <!--列表 Procdef act_re_procdef-->
<el-table ref="procdefsTable" :max-height="tableHeight" :data="procdefs" highlight-current-row
<el-table ref="procdefsTable" :height="tableHeight" :data="procdefs" highlight-current-row
v-loading="listLoading" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> v-loading="listLoading" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="40"></el-table-column> <el-table-column type="selection" width="40"></el-table-column>
<el-table-column type="index" width="40"></el-table-column> <el-table-column type="index" width="40"></el-table-column>
@ -86,7 +83,6 @@
@select-confirm="onTagSelected"></tag-mng> @select-confirm="onTagSelected"></tag-mng>
</el-dialog> </el-dialog>
</el-row> </el-row>
</el-col>
</el-row> </el-row>
</section> </section>
</template> </template>
@ -600,7 +596,7 @@
this.$nextTick(() => { this.$nextTick(() => {
var clientRect = this.$refs.procdefsTable.$el.getBoundingClientRect(); var clientRect = this.$refs.procdefsTable.$el.getBoundingClientRect();
var subHeight = 70 / 1000 * window.innerHeight;
var subHeight = 60 / 1000 * window.innerHeight;
this.tableHeight = window.innerHeight - clientRect.y - this.$refs.procdefsTable.$el.offsetTop - subHeight; this.tableHeight = window.innerHeight - clientRect.y - this.$refs.procdefsTable.$el.offsetTop - subHeight;
}) })
this.searchProcdefs(); this.searchProcdefs();
@ -614,34 +610,6 @@
</script> </script>
<style scoped> <style scoped>
.filters-show {
margin-left: 20px;
margin-top: 10px;
margin-bottom: 0px;
}
.filters-label {
font-size: 14px;
color: black;
font-weight: bold;
}
.el-button+.el-button {
margin-left: 0px;
}
</style> </style>
<style>
.el-input-group__append,
.el-input-group__prepend {
background-color: #409EFF !important;
color: #ffffff !important;
vertical-align: middle;
display: table-cell;
position: relative;
border: 1px solid #409EFF !important;
padding: 0 20px;
width: 1px;
white-space: nowrap;
}
</style>

8
src/views/mdp/workflow/re/procdef/ProcdefMng.vue

@ -1,6 +1,6 @@
<template> <template>
<section>
<el-row class="app-container">
<section class="page-container border">
<el-row class="page-header">
<el-input v-model="filters.key" style="width:20%;" placeholder="模糊查询"> <el-input v-model="filters.key" style="width:20%;" placeholder="模糊查询">
<template slot="append"> <template slot="append">
<el-button type="primary" v-on:click="searchProcdefs" icon="el-icon-search">查询</el-button> <el-button type="primary" v-on:click="searchProcdefs" icon="el-icon-search">查询</el-button>
@ -17,14 +17,14 @@
<el-button @click.native="showTagSelect(false)" >标签查找</el-button> <el-button @click.native="showTagSelect(false)" >标签查找</el-button>
<el-button @click.native="showTagSelect(true)" >打标签</el-button> <el-button @click.native="showTagSelect(true)" >打标签</el-button>
</el-row> </el-row>
<el-row class="app-container">
<el-row class="page-main">
<el-col :xs="4" :sm="4" :md="4" :lg="4" :xl="4" class="hidden-sm-and-down"> <el-col :xs="4" :sm="4" :md="4" :lg="4" :xl="4" class="hidden-sm-and-down">
<category-tree ref="categoryTree" multiple :expandOnClickNode="false" :defaultExpandAll="true" show-checkbox :current-key="addForm.categoryId" v-on:check-change="handleCategoryCheckChange" ></category-tree> <category-tree ref="categoryTree" multiple :expandOnClickNode="false" :defaultExpandAll="true" show-checkbox :current-key="addForm.categoryId" v-on:check-change="handleCategoryCheckChange" ></category-tree>
</el-col> </el-col>
<el-col :xs="24" :sm="24" :md="20" :lg="20" :xl="20"> <el-col :xs="24" :sm="24" :md="20" :lg="20" :xl="20">
<!--列表 Procdef act_re_procdef--> <!--列表 Procdef act_re_procdef-->
<el-table ref="table" :max-height="tableHeight" :data="procdefs" highlight-current-row v-loading="listLoading" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table ref="table" :height="tableHeight" :data="procdefs" highlight-current-row v-loading="listLoading" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="40"></el-table-column> <el-table-column type="selection" width="40"></el-table-column>
<el-table-column type="index" width="40"></el-table-column> <el-table-column type="index" width="40"></el-table-column>
<el-table-column prop="category" label="分类" min-width="80" ></el-table-column> <el-table-column prop="category" label="分类" min-width="80" ></el-table-column>

10
src/views/mdp/workflow/re/procdef/ProcdefSuspend.vue

@ -1,8 +1,7 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<el-col>
<el-row>
<el-row class="page-container border">
<el-row class="page-header" >
<el-select v-model="filters.procCategory" clearable filterable placeholder="请选择分类"> <el-select v-model="filters.procCategory" clearable filterable placeholder="请选择分类">
<el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option> <el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
@ -16,9 +15,9 @@
<el-button @click="handleDownload" icon="el-icon-download" class="hidden-md-and-down">导出数据</el-button> <el-button @click="handleDownload" icon="el-icon-download" class="hidden-md-and-down">导出数据</el-button>
</el-row> </el-row>
<!--列表 Procdef act_re_procdef--> <!--列表 Procdef act_re_procdef-->
<el-row style="padding-top:20px;">
<el-row class="page-main">
<el-table <el-table
ref="table" :max-height="tableHeight"
ref="table" :height="tableHeight"
:data="procdefs" :data="procdefs"
highlight-current-row highlight-current-row
v-loading="listLoading" v-loading="listLoading"
@ -121,7 +120,6 @@
></tag-mng> ></tag-mng>
</el-dialog> </el-dialog>
</el-row> </el-row>
</el-col>
</el-row> </el-row>
</section> </section>
</template> </template>

3
src/views/mdp/workflow/re/procdefParames/ActQxCodeSet.vue

@ -1,7 +1,6 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<el-form label-position="top" label-width="80px" :model="addForm" ref="addForm">
<el-row class="page-container border padding"> <el-form label-position="top" label-width="80px" :model="addForm" ref="addForm">
<el-form-item label="正文"> <el-form-item label="正文">
<el-checkbox v-model="qxCodeArr[0]" true-label="1" false-label="0">可看正文</el-checkbox> <el-checkbox v-model="qxCodeArr[0]" true-label="1" false-label="0">可看正文</el-checkbox>
<el-checkbox v-if="qxCodeArr[0]=='1'" v-model="qxCodeArr[1]" true-label="1" false-label="0">可修改正文</el-checkbox> <el-checkbox v-if="qxCodeArr[0]=='1'" v-model="qxCodeArr[1]" true-label="1" false-label="0">可修改正文</el-checkbox>

3
src/views/mdp/workflow/re/procdefParames/ProcdefParamesSet.vue

@ -1,7 +1,6 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<!--新增界面 ProcinstParames 流程实例参数设置表-->
<el-row class="page-container border padding">
<el-col :span="24"> <el-col :span="24">
<!--新增界面 ProcdefParames 流程定义参数设置表--> <!--新增界面 ProcdefParames 流程定义参数设置表-->
<el-form :model="addForm" label-width="120px" label-position="left" :rules="addFormRules" ref="addForm" v-loading="listLoading"> <el-form :model="addForm" label-width="120px" label-position="left" :rules="addFormRules" ref="addForm" v-loading="listLoading">

6
src/views/mdp/workflow/re/procdefParamesTemplate/ProcdefParamesTemplateMng.vue

@ -1,15 +1,15 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<el-row class="page-container border">
<el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"> <el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询">
<template slot="append"> <template slot="append">
<el-button type="primary" v-on:click="searchProcdefParamesTemplates" icon="el-icon-search">查询</el-button> <el-button type="primary" v-on:click="searchProcdefParamesTemplates" icon="el-icon-search">查询</el-button>
</template> </template>
</el-input> </el-input>
</el-row> </el-row>
<el-row class="app-container">
<el-row class="page-container border">
<!--列表 ProcdefParamesTemplate mdp_re_procdef_parames_template--> <!--列表 ProcdefParamesTemplate mdp_re_procdef_parames_template-->
<el-table ref="table" :max-height="tableHeight" :data="procdefParamesTemplates" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table ref="table" :height="tableHeight" :data="procdefParamesTemplates" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="index" width="40"></el-table-column> <el-table-column type="index" width="40"></el-table-column>
<el-table-column sortable prop="mainTitle" label="流程标题" min-width="150" ></el-table-column> <el-table-column sortable prop="mainTitle" label="流程标题" min-width="150" ></el-table-column>

208
src/views/mdp/workflow/ru/execution/ExecutionMng.vue

@ -1,8 +1,7 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<el-col v-if="showCalendar==false">
<el-row>
<el-row class="page-container">
<el-row class="page-header">
<el-select v-model="filters.filterType" clearable placeholder="查询范围" class="hidden-md-and-down"> <el-select v-model="filters.filterType" clearable placeholder="查询范围" class="hidden-md-and-down">
<el-option value="" label="全部"> </el-option> <el-option value="" label="全部"> </el-option>
<el-option value="startUserId" label="我发起"> </el-option> <el-option value="startUserId" label="我发起"> </el-option>
@ -13,30 +12,30 @@
<el-select v-model="filters.procCategory" clearable filterable placeholder="选择分类" > <el-select v-model="filters.procCategory" clearable filterable placeholder="选择分类" >
<el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option> <el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
<el-date-picker v-model="filters.startTimeRanger" class="" type="daterange" align="right"
<el-date-picker v-model="filters.startTimeRanger" type="daterange" align="right"
unlink-panels range-separator="-" start-placeholder="创建日期" end-placeholder="创建日期" value-format="yyyy-MM-dd" unlink-panels range-separator="-" start-placeholder="创建日期" end-placeholder="创建日期" value-format="yyyy-MM-dd"
:default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions"> :default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions">
</el-date-picker> </el-date-picker>
<el-input v-model="filters.key" style="width:270px;" placeholder="模糊查询">
<template slot="append">
<el-button v-on:click="searchExecutions" icon="el-icon-search">查询</el-button>
</template>
<el-input v-model="filters.key" placeholder="模糊查询">
</el-input> </el-input>
<el-button type="primary" v-on:click="searchExecutions" icon="el-icon-search">查询</el-button>
<el-button @click="moreFilterVisible=true" icon="el-icon-more" circle></el-button>
<el-popover placement="top" width="375" trigger="manual" v-model="weixinContentVisible"> <el-popover placement="top" width="375" trigger="manual" v-model="weixinContentVisible">
<p>{{weixinContent}}</p> <p>{{weixinContent}}</p>
<div style="text-align: right; margin: 0"> <div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="doCopyWeixinUrl">拷贝链接</el-button> <el-button size="mini" type="text" @click="doCopyWeixinUrl">拷贝链接</el-button>
<el-button type="primary" size="mini" @click="doCopyWeixinContent">拷贝内容</el-button> <el-button type="primary" size="mini" @click="doCopyWeixinContent">拷贝内容</el-button>
</div> </div>
<el-button slot="reference" style="margin-left: 13px;" class="hidden-lg-and-down" icon="el-icon-alarm-clock " v-on:click="showWeixin">
<el-button slot="reference" class="hidden-lg-and-down" icon="el-icon-alarm-clock " v-on:click="showWeixin">
微信催办</el-button> 微信催办</el-button>
</el-popover> </el-popover>
<el-popover title="更多查询条件" placement="top-start" width="400" trigger="click">
<el-row class="more-filter-item">
<el-col :span="24">
<font class="more-label-font">
<el-drawer title="更多查询条件" :visible.sync="moreFilterVisible" append-to-body :size="400">
<el-row class="page-container more-filter">
<el-divider content-position="left">查询条件</el-divider>
<el-row>
<font>
查询范围 查询范围
</font> </font>
<el-select size="mini" v-model="filters.filterType" placeholder="查询范围"> <el-select size="mini" v-model="filters.filterType" placeholder="查询范围">
@ -46,17 +45,17 @@
<el-option value="sponsors" label="我主办"> </el-option> <el-option value="sponsors" label="我主办"> </el-option>
<el-option value="monitors" label="我监控"> </el-option> <el-option value="monitors" label="我监控"> </el-option>
</el-select> </el-select>
</el-col>
<el-col :span="24">
<font class="more-label-font">
</el-row>
<el-row >
<font>
流程分类 流程分类
</font> </font>
<el-select v-model="filters.procCategory" clearable filterable placeholder="选择分类"> <el-select v-model="filters.procCategory" clearable filterable placeholder="选择分类">
<el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option> <el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
</el-col>
<el-col :span="24">
<font class="more-label-font">
</el-row>
<el-row >
<font>
标签查找 标签查找
</font> </font>
<el-row v-show="filters.tags && filters.tags.length>0"> <el-row v-show="filters.tags && filters.tags.length>0">
@ -67,9 +66,9 @@
</el-row> </el-row>
<el-button v-if="filters.tags==null || filters.tags.length==0" size="mini" <el-button v-if="filters.tags==null || filters.tags.length==0" size="mini"
@click.native="showTagSelect(false)">选择标签</el-button> @click.native="showTagSelect(false)">选择标签</el-button>
</el-col>
<el-col :span="24">
<font class="more-label-font">
</el-row>
<el-row >
<font>
任务执行 任务执行
</font> </font>
<el-tag v-if="filters.assignee" :type="'success'" closable :disable-transitions="false" <el-tag v-if="filters.assignee" :type="'success'" closable :disable-transitions="false"
@ -77,62 +76,58 @@
{{filters.assignee.username}} {{filters.assignee.username}}
</el-tag> </el-tag>
<el-button v-else size="mini" @click.native="userSelectVisible=true">选择执行人</el-button> <el-button v-else size="mini" @click.native="userSelectVisible=true">选择执行人</el-button>
</el-col>
<el-col :span="24">
<font class="more-label-font">
</el-row>
<el-row >
<font>
流程状态 流程状态
</font> </font>
<el-button size="mini" :type="filters.suspensionState=='2'?'success':''" <el-button size="mini" :type="filters.suspensionState=='2'?'success':''"
v-on:click="filters.suspensionState='2'">挂起的</el-button> v-on:click="filters.suspensionState='2'">挂起的</el-button>
<el-button size="mini" :type="filters.suspensionState=='1'?'success':''" <el-button size="mini" :type="filters.suspensionState=='1'?'success':''"
v-on:click="filters.suspensionState='1'">活动的</el-button> v-on:click="filters.suspensionState='1'">活动的</el-button>
</el-col>
<el-col :span="24">
<font class="more-label-font">
</el-row>
<el-row >
<font>
开始日期 开始日期
</font> </font>
<el-date-picker v-model="filters.startTimeRanger" type="daterange" align="right" unlink-panels <el-date-picker v-model="filters.startTimeRanger" type="daterange" align="right" unlink-panels
range-separator="-" start-placeholder="创建日期" end-placeholder="创建日期" value-format="yyyy-MM-dd" range-separator="-" start-placeholder="创建日期" end-placeholder="创建日期" value-format="yyyy-MM-dd"
:default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions"> :default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions">
</el-date-picker> </el-date-picker>
</el-col>
<el-col :span="24">
</el-row>
<el-row >
<font class="more-label-font">
<font>
计划完成日期 计划完成日期
</font> </font>
<el-date-picker v-model="filters.planFinishTimeRanger" type="daterange" align="right" unlink-panels <el-date-picker v-model="filters.planFinishTimeRanger" type="daterange" align="right" unlink-panels
range-separator="-" start-placeholder="计划完成日期" end-placeholder="计划完成日期" value-format="yyyy-MM-dd" range-separator="-" start-placeholder="计划完成日期" end-placeholder="计划完成日期" value-format="yyyy-MM-dd"
:default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions"> :default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions">
</el-date-picker> </el-date-picker>
</el-col>
<el-col :span="24">
<el-checkbox size="mini" v-model="showCalendar">按日历风格显示</el-checkbox>
</el-col>
<el-col :span="24" style="margin-top: 11px;">
</el-row>
<el-row >
<el-button size="mini" type="primary" v-on:click="searchExecutions" icon="el-icon-search">查询</el-button> <el-button size="mini" type="primary" v-on:click="searchExecutions" icon="el-icon-search">查询</el-button>
</el-col>
</el-row>
<el-col :span="24">
<el-row >
<el-divider content-position="left">其它操作</el-divider> <el-divider content-position="left">其它操作</el-divider>
<el-checkbox size="mini" v-model="showCalendar">按日历风格显示</el-checkbox>
<el-button size="mini" @click.native="showTagSelect(true)">添加标签</el-button> <el-button size="mini" @click.native="showTagSelect(true)">添加标签</el-button>
<el-button size="mini" @click="handleDownload">导出数据</el-button> <el-button size="mini" @click="handleDownload">导出数据</el-button>
</el-row>
<el-row >
<el-divider content-position="left">催办</el-divider>
<el-button size="mini" v-on:click="showWeixinTask">微信催办</el-button> <el-button size="mini" v-on:click="showWeixinTask">微信催办</el-button>
<el-button size="mini" v-on:click="showSendSms">短信催办</el-button> <el-button size="mini" v-on:click="showSendSms">短信催办</el-button>
<el-button size="mini" v-on:click="showOaMsg">OAMSG催办</el-button> <el-button size="mini" v-on:click="showOaMsg">OAMSG催办</el-button>
</el-col>
</el-row> </el-row>
<el-button slot="reference" icon="el-icon-more" style="margin-left: 13px;" circle></el-button>
</el-popover>
</el-row>
</el-drawer>
</el-row> </el-row>
<!--列表 Execution act_ru_execution--> <!--列表 Execution act_ru_execution-->
<el-row style="padding-top:20px;">
<el-table ref="table" :max-height="tableHeight" :data="executions" highlight-current-row
<el-row v-if="showCalendar==false" class="page-main">
<el-table ref="table" :height="tableHeight" :data="executions" highlight-current-row
v-loading="listLoading" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> v-loading="listLoading" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="40"></el-table-column> <el-table-column type="selection" width="40"></el-table-column>
<el-table-column type="index" width="40"></el-table-column> <el-table-column type="index" width="40"></el-table-column>
@ -164,7 +159,6 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" :width="screenWidth<500?80:160" fixed="right"> <el-table-column label="操作" :width="screenWidth<500?80:160" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" @click="showTasksInfo( scope.row,scope.$index)">详情</el-button>
<el-dropdown @command="handleCommand" class="hidden-sm-and-down"> <el-dropdown @command="handleCommand" class="hidden-sm-and-down">
<span class="el-dropdown-link"> <span class="el-dropdown-link">
更多<i class="el-icon-arrow-down el-icon--right"></i> 更多<i class="el-icon-arrow-down el-icon--right"></i>
@ -186,11 +180,9 @@
@size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum"
:page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination> :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination>
</el-row> </el-row>
</el-col>
<el-col v-if="showCalendar==true">
<el-calendar v-loading="listLoading" v-model="filters.calendarDate">
<el-calendar v-if="showCalendar==true" v-loading="listLoading" v-model="filters.calendarDate" class="page-main">
<!-- 这里使用的是 2.5 slot 语法对于新项目请使用 2.6 slot 语法--> <!-- 这里使用的是 2.5 slot 语法对于新项目请使用 2.6 slot 语法-->
<template slot="dateCell" slot-scope="{date, data}"> <template slot="dateCell" slot-scope="{date, data}">
<div :class="data.isSelected ? 'is-selected' : ''"> <div :class="data.isSelected ? 'is-selected' : ''">
@ -248,7 +240,6 @@
</div> </div>
</template> </template>
</el-calendar> </el-calendar>
</el-col>
<el-dialog append-to-body title="选择员工" :visible.sync="userSelectVisible" width="60%"> <el-dialog append-to-body title="选择员工" :visible.sync="userSelectVisible" width="60%">
<users-select :select-userids="filters.assignee?[filters.assignee.userid]:[]" @confirm="onUserSelected"> <users-select :select-userids="filters.assignee?[filters.assignee.userid]:[]" @confirm="onUserSelected">
</users-select> </users-select>
@ -265,13 +256,12 @@
:visible="sendSmsVisible" @cancel="sendSmsVisible=false"></send-sms> :visible="sendSmsVisible" @cancel="sendSmsVisible=false"></send-sms>
</el-dialog> </el-dialog>
<!--编辑 Execution act_ru_execution界面--> <!--编辑 Execution act_ru_execution界面-->
<el-dialog title="任务详情" :visible.sync="editFormVisible" fullscreen :width="dialogWidth()"
:close-on-click-modal="false">
<el-drawer title="任务详情" :visible.sync="editFormVisible" :size="dialogWidth()" :withHeader="false">
<procinst-parames-execution-set :companyEmployees="companyEmployees" :companyDepts="companyDepts" <procinst-parames-execution-set :companyEmployees="companyEmployees" :companyDepts="companyDepts"
:taskInfo='editForm' :isArchive="isArchive" :procDefId="editForm.procDefId" :procInstId="editForm.procInstId" :taskInfo='editForm' :isArchive="isArchive" :procDefId="editForm.procDefId" :procInstId="editForm.procInstId"
:visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"> :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit">
</procinst-parames-execution-set> </procinst-parames-execution-set>
</el-dialog>
</el-drawer>
</el-row> </el-row>
</section> </section>
</template> </template>
@ -500,6 +490,7 @@
userSelectVisible: false, userSelectVisible: false,
showCalendar: true, showCalendar: true,
tableHeight: 300, tableHeight: 300,
moreFilterVisible:false,
/**end 自定义属性请在上面加 请加备注**/ /**end 自定义属性请在上面加 请加备注**/
} }
}, //end data }, //end data
@ -630,7 +621,8 @@
console.log("xxxxxxxxxxxxxx进来了"); console.log("xxxxxxxxxxxxxx进来了");
var task = Object.assign({}, row); var task = Object.assign({}, row);
this.editForm = task; this.editForm = task;
this.editFormVisible=true;
/**
this.editForm = Object.assign({}, row); this.editForm = Object.assign({}, row);
this.$router.push({ this.$router.push({
name: 'ProcinstParamesExecutionSetRoute', name: 'ProcinstParamesExecutionSetRoute',
@ -638,6 +630,7 @@
taskInfo: task taskInfo: task
} }
}); });
*/
}, },
// Execution act_ru_execution // Execution act_ru_execution
showAdd: function() { showAdd: function() {
@ -684,10 +677,10 @@
}, },
dialogWidth: function() { dialogWidth: function() {
if (screen.width > 500) {
return "80%";
if (screen.width > 600) {
return "60%";
} else { } else {
return "100%";
return "80%";
} }
}, },
//execution //execution
@ -1244,10 +1237,10 @@
this.$nextTick(() => { this.$nextTick(() => {
if (!this.showCalendar) { if (!this.showCalendar) {
var clientRect = this.$refs.table.$el.getBoundingClientRect(); var clientRect = this.$refs.table.$el.getBoundingClientRect();
var subHeight = 70 / 1000 * window.innerHeight;
var subHeight = 60 / 1000 * window.innerHeight;
this.tableHeight = window.innerHeight - clientRect.y - this.$refs.table.$el.offsetTop - subHeight; this.tableHeight = window.innerHeight - clientRect.y - this.$refs.table.$el.offsetTop - subHeight;
} else { } else {
var subHeight = 70 / 1000 * window.innerHeight;
var subHeight = 60 / 1000 * window.innerHeight;
this.tableHeight = window.innerHeight - subHeight; this.tableHeight = window.innerHeight - subHeight;
} }
}); });
@ -1272,94 +1265,5 @@
</script> </script>
<style scoped> <style scoped>
.el-dropdown-link {
cursor: pointer;
color: #409EFF;
}
.el-icon-arrow-down {
font-size: 12px;
}
.filters-show {
margin-left: 20px;
margin-top: 10px;
margin-bottom: 0px;
}
.filters-label {
font-size: 14px;
color: black;
font-weight: bold;
}
.more-filter-item {
margin: 20px 0px;
}
.more-filter-item .el-col {
margin: 2px 2px;
}
.more-filter-item button {
margin: 2px 0px;
}
.more-label-font {
text-align: center;
float: left;
height: 28px;
line-height: 28px;
margin-right: 10px;
}
.el-divider--horizontal {
display: block;
height: 1px;
width: 100%;
margin: 24px 0;
padding-top: 20px;
margin-left: 0px;
background: #fff;
}
.el-divider__text.is-left {
left: 0px;
}
.el-divider__text {
padding: 0px 0px;
}
</style> </style>
<style>
.el-input-group__append,
.el-input-group__prepend {
background-color: #409EFF !important;
color: #ffffff !important;
vertical-align: middle;
display: table-cell;
position: relative;
border: 1px solid #409EFF !important;
padding: 0 20px;
width: 1px;
white-space: nowrap;
}
.el-calendar__header {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
padding: 20px 0px;
padding-top: 0px;
border: none;
}
.el-calendar__body {
padding: 12px 20px 35px;
border: 1px solid #EBEEF5;
}
</style>

4
src/views/mdp/workflow/ru/execution/ExecutionMngForFormData.vue

@ -1,6 +1,6 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<el-row class="page-container border">
<el-row> <el-row>
<el-col :xs="22" :sm="22" :md="23" :lg="23" :xl="23"> <el-col :xs="22" :sm="22" :md="23" :lg="23" :xl="23">
<el-col :xs="8" :sm="8" :md="14" :lg="16" :xl="16"> <el-col :xs="8" :sm="8" :md="14" :lg="16" :xl="16">
@ -47,7 +47,7 @@
</el-col> </el-col>
</el-row> </el-row>
</el-row> </el-row>
<el-row class="app-container">
<el-row class="page-container border">
<el-col :span="24" v-if="executions.length==0"> <el-col :span="24" v-if="executions.length==0">
<el-button type="primary" v-if="executions.length==0" v-loading="listLoading" v-on:click="startProc">还没有发起审核或者流程已结束点击发起流程</el-button> <el-button type="primary" v-if="executions.length==0" v-loading="listLoading" v-on:click="startProc">还没有发起审核或者流程已结束点击发起流程</el-button>
</el-col> </el-col>

113
src/views/mdp/workflow/ru/procinstParames/ProcinstParamesExecutionSet.vue

@ -1,15 +1,13 @@
<template> <template>
<section>
<el-row style="margin-left:-20px;">
<el-row>
<el-button type="text" @click.native="handleCancel" icon="el-icon-back">取消</el-button>
<section class="page-container page-full-height padding">
<el-row class="page-header">
<el-button class="hidden-md-and-down" type="text" @click.native="handleCancel" icon="el-icon-back">取消</el-button>
<el-button type="text" v-if="screenWidth>=500" @click.native="handlePrint" icon="el-icon-printer">打印</el-button> <el-button type="text" v-if="screenWidth>=500" @click.native="handlePrint" icon="el-icon-printer">打印</el-button>
<el-button type="text" v-if="isArchive" @click.native="handleArchive" icon="el-icon-s-grid">归档</el-button> <el-button type="text" v-if="isArchive" @click.native="handleArchive" icon="el-icon-s-grid">归档</el-button>
<el-button type="text" v-if="task.taskId" @click.native="addComment" :loading="addLoading" icon="el-icon-finished">只存办理意见</el-button>
<el-button type="text" @click.native="tagSelectVisible=true" :loading="tagSetLoading" icon="el-icon-finished">打标签</el-button> <el-button type="text" @click.native="tagSelectVisible=true" :loading="tagSetLoading" icon="el-icon-finished">打标签</el-button>
<el-button type="text" v-if="displayDiagram==false" @click="showDiagram()" icon="el-icon-picture-outline">查看流程图</el-button>
<el-button type="text" @click="showNodeInfoDialog" icon="el-icon-s-check">配置审批人</el-button>
<el-button type="text" @click="showComment=!showComment" icon="el-icon-document">{{showComment==false?"显示流转信息":"隐藏流转信息"}}</el-button>
<el-button type="text" v-if="displayDiagram==false" @click="showDiagram()" icon="el-icon-picture-outline">流程图</el-button>
<el-button type="text" @click="showNodeInfoDialog" icon="el-icon-s-check">审批人</el-button>
<el-button class="hidden-md-and-down" type="text" @click="showComment=!showComment" icon="el-icon-document">{{showComment==false?"显示流转信息":"隐藏流转信息"}}</el-button>
<el-button type="text" @click="showMainContext=!showMainContext" icon="el-icon-document" class=" hidden-md-and-down">{{showMainContext==false?"显示正文":"隐藏正文"}}</el-button> <el-button type="text" @click="showMainContext=!showMainContext" icon="el-icon-document" class=" hidden-md-and-down">{{showMainContext==false?"显示正文":"隐藏正文"}}</el-button>
<el-button type="text" @click="showMainContextOnly=!showMainContextOnly" icon="el-icon-finished" class=" hidden-sm-and-down">{{showMainContextOnly==false?"只看正文":"显示全部"}}</el-button> <el-button type="text" @click="showMainContextOnly=!showMainContextOnly" icon="el-icon-finished" class=" hidden-sm-and-down">{{showMainContextOnly==false?"只看正文":"显示全部"}}</el-button>
<el-popover <el-popover
@ -33,23 +31,16 @@
<el-button slot="reference" type="text" class="hidden-sm-and-down" v-on:click="modelFilesVisible=!modelFilesVisible" icon="el-icon-document-copy">流程附件</el-button> <el-button slot="reference" type="text" class="hidden-sm-and-down" v-on:click="modelFilesVisible=!modelFilesVisible" icon="el-icon-document-copy">流程附件</el-button>
</el-popover> </el-popover>
</el-row> </el-row>
</el-row>
<el-row v-show="showMainContextOnly==true">
<div style="padding: 20px;" v-html="addForm.mainContext"></div>
</el-row>
<el-row v-show="showMainContextOnly==false">
<el-row>
<!--新增界面 ProcinstParames 流程实例参数设置表-->
<el-form :model="addForm" :label-width="labelWidth()" label-position="left" :rules="addFormRules" ref="addForm" >
<el-row class=" hidden-sm-and-down">
<el-col class="wf-title"> {{addForm.mainTitle}}</el-col>
</el-row>
<el-row class="hidden-md-and-up">
<el-row class="page-title padding-top">
<el-row class="hidden-md-and-down">
<el-col class="wf-sub-title"> {{addForm.mainTitle}}</el-col> <el-col class="wf-sub-title"> {{addForm.mainTitle}}</el-col>
</el-row> </el-row>
<el-row>
<el-col :span="24" class="wf-sub-title">
<el-row class="hidden-lg-and-up">
<el-col class="wf-title" v-if="addForm.mainTitle.length<30"> {{addForm.mainTitle}}</el-col>
<el-col class="wf-sub-title" v-if="addForm.mainTitle.length>30"> {{addForm.mainTitle}}</el-col>
</el-row>
<el-row style="padding-top:10px;">
<el-col :span="24" class="wf-sub-sub-title">
<font v-if="addForm.tagNames" > <font v-if="addForm.tagNames" >
<el-tag v-for="tag in (addForm.tagNames.split(','))" :key="tag" <el-tag v-for="tag in (addForm.tagNames.split(','))" :key="tag"
:type="'warning'" :type="'warning'"
@ -62,6 +53,16 @@
{{addForm.startDate}} &nbsp;发起 {{addForm.startDate}} &nbsp;发起
</el-col> </el-col>
</el-row> </el-row>
</el-row>
<el-row class="page-context" style="padding-top:10px;">
<el-row v-show="showMainContextOnly==true">
<div style="padding: 20px;" v-html="addForm.mainContext"></div>
</el-row>
<el-row v-show="showMainContextOnly==false">
<el-row>
<!--新增界面 ProcinstParames 流程实例参数设置表-->
<el-form :model="addForm" :label-width="labelWidth()" label-position="top" :rules="addFormRules" ref="addForm" >
<el-row> <el-row>
预计 预计
<el-date-picker style="width:20%;" <el-date-picker style="width:20%;"
@ -122,12 +123,12 @@
<div style="padding: 20px;" v-html="addForm.mainContext"></div> <div style="padding: 20px;" v-html="addForm.mainContext"></div>
</div> </div>
</el-row> </el-row>
<el-row>
<el-row v-show="showComment">
<comment-step :task="task" :procInstId="procInstId" :refresh="refreshCommentList" @get-comments="getComments"></comment-step> <comment-step :task="task" :procInstId="procInstId" :refresh="refreshCommentList" @get-comments="getComments"></comment-step>
</el-row> </el-row>
<div v-if="task.taskId"> <div v-if="task.taskId">
<el-form-item :label="'办理意见'" prop="commentMsg"> <el-form-item :label="'办理意见'" prop="commentMsg">
<el-row class=" hidden-md-and-down" style="padding-top:10px;">
<el-row class=" hidden-md-and-down">
<el-radio-group v-model="task.action"> <el-radio-group v-model="task.action">
<div v-if="task.action!='claim'"> <div v-if="task.action!='claim'">
<el-radio min-width="60px" v-show="taskInfo && taskInfo.delegation!='PENDING'" label="agree">同意&nbsp;&nbsp;&nbsp;&nbsp;</el-radio> <el-radio min-width="60px" v-show="taskInfo && taskInfo.delegation!='PENDING'" label="agree">同意&nbsp;&nbsp;&nbsp;&nbsp;</el-radio>
@ -145,7 +146,7 @@
</div> </div>
</el-radio-group> </el-radio-group>
</el-row> </el-row>
<el-row class=" hidden-lg-and-up" style="padding-top:10px;">
<el-row class=" hidden-lg-and-up">
<el-select v-model="task.action" placeholder="请选择办理意见" > <el-select v-model="task.action" placeholder="请选择办理意见" >
<div v-if="task.action!='claim'"> <div v-if="task.action!='claim'">
<el-option v-show="taskInfo && taskInfo.delegation!='PENDING'" label="同意" value="agree"> </el-option> <el-option v-show="taskInfo && taskInfo.delegation!='PENDING'" label="同意" value="agree"> </el-option>
@ -183,7 +184,7 @@
</el-form-item> </el-form-item>
<el-form-item v-show="task.action=='transfer'||task.action=='delegate'||needAssignee!=''||(actAssignee&&actAssignee.showNextAssignees=='1')" :label="nextAssigneeListLabel" prop="needAssignee"> <el-form-item v-show="task.action=='transfer'||task.action=='delegate'||needAssignee!=''||(actAssignee&&actAssignee.showNextAssignees=='1')" :label="nextAssigneeListLabel" prop="needAssignee">
<el-col :xs="24" :sm="18" :md="16" :lg="14" :xl="12"> <el-col :xs="24" :sm="18" :md="16" :lg="14" :xl="12">
<el-select value-key="userid" style="width:80%" v-model="task.nextAssigneeList" multiple @change="nextAssigneeListSelectChange" placeholder="如果不选则系统自动判断">
<el-select value-key="userid" v-model="task.nextAssigneeList" multiple @change="nextAssigneeListSelectChange" placeholder="如果不选则系统自动判断">
<el-option <el-option
v-for="item in baseUserList" v-for="item in baseUserList"
:key="item.userid" :key="item.userid"
@ -197,26 +198,6 @@
</el-col> </el-col>
</el-form-item> </el-form-item>
</div> </div>
<el-row v-if="screenWidth<500" v-loading="listLoading" style="padding-top:10px;">
<el-col :span="24">
<el-button @click.native="handleCancel">取消</el-button>
<el-button v-if="screenWidth>=500" @click.native="handlePrint" >打印</el-button>
<el-button v-if="isArchive" @click.native="handleArchive" >归档</el-button>
<el-button v-if="task.taskId" @click.native="addComment" :loading="addLoading">只存意见</el-button>
<el-button v-if="task.action!='claim' && task.taskId" @click.native="completeHandle" :loading="addLoading">提交任务</el-button>
<el-button v-if="task.action=='claim'" @click.native="completeHandle" :loading="addLoading">领取任务</el-button>
<el-button v-if="task.action=='claim' && task.taskId && sponsors.some(i=>i.userid==userInfo.userid)" @click.native="addCandidateUsers" :loading="addLoading">添加候选人</el-button>
</el-col>
</el-row>
<el-form-item v-if="screenWidth>=500" v-loading="listLoading" style="padding-top:10px;">
<el-button @click.native="handleCancel" icon="el-icon-back">取消</el-button>
<el-button v-if="screenWidth>=500" @click.native="handlePrint" icon="el-icon-printer">打印</el-button>
<el-button v-if="isArchive" @click.native="handleArchive" icon="el-icon-s-grid">归档</el-button>
<el-button v-if="task.taskId" @click.native="addComment" :loading="addLoading" icon="el-icon-finished">只存办理意见</el-button>
<el-button v-if="task.action!='claim' && task.taskId" type="primary" @click.native="completeHandle" :loading="addLoading" icon="el-icon-finished">提交任务</el-button>
<el-button v-if="task.action=='claim' && task.taskId" @click.native="completeHandle" :loading="addLoading" icon="el-icon-finished">领取任务</el-button>
<el-button v-if="task.action=='claim' && task.taskId && sponsors.some(i=>i.userid==userInfo.userid)" @click.native="showTaskCandidateSet" :loading="addLoading" icon="el-icon-s-check">添加候选人</el-button>
</el-form-item>
</el-form> </el-form>
</el-row> </el-row>
<el-dialog <el-dialog
@ -261,6 +242,17 @@
<task-candidate-set :taskId="taskInfo.taskId" :procInstId="taskInfo.procInstId" @confirm="selectCandidateSetVisible=false"></task-candidate-set> <task-candidate-set :taskId="taskInfo.taskId" :procInstId="taskInfo.procInstId" @confirm="selectCandidateSetVisible=false"></task-candidate-set>
</el-dialog> </el-dialog>
</el-row> </el-row>
</el-row>
<el-row class="page-bottom">
<el-button @click.native="handleCancel" icon="el-icon-back">取消</el-button>
<el-button v-if="screenWidth>=500" @click.native="handlePrint" icon="el-icon-printer">打印</el-button>
<el-button v-if="isArchive" @click.native="handleArchive" icon="el-icon-s-grid">归档</el-button>
<el-button v-if="task.taskId" @click.native="addComment" :loading="addLoading" icon="el-icon-finished">只存办理意见</el-button>
<el-button v-if="task.action!='claim' && task.taskId" type="primary" @click.native="completeHandle" :loading="addLoading" icon="el-icon-finished">提交任务</el-button>
<el-button v-if="task.action=='claim' && task.taskId" @click.native="completeHandle" :loading="addLoading" icon="el-icon-finished">领取任务</el-button>
<el-button v-if="task.action=='claim' && task.taskId && sponsors.some(i=>i.userid==userInfo.userid)" @click.native="showTaskCandidateSet" :loading="addLoading" icon="el-icon-s-check">添加候选人</el-button>
</el-row>
</section> </section>
</template> </template>
@ -1143,17 +1135,22 @@
</script> </script>
<style>
<style scoped>
.wf-title { .wf-title {
text-align: center; text-align: center;
font: outline;
font-size:2.5em; font-size:2.5em;
overflow-x:auto;
overflow-y:auto;
} }
.wf-sub-title { .wf-sub-title {
text-align: center; text-align: center;
font: outline;
margin-top: 0.875em;
margin-bottom: 0.875em;
font-size:1.5em;
overflow-x:auto;
overflow-y:auto;
}
.wf-sub-sub-title{
text-align: center;
} }
.wf-main-context-box { .wf-main-context-box {
border:1px dashed #000; border:1px dashed #000;
@ -1172,4 +1169,16 @@
float:left; float:left;
padding-top:5px; padding-top:5px;
} }
.page-title{
height: calc(10vh);
overflow-x:auto;
overflow-y:auto;
}
.page-context{
height: calc(70vh);
overflow: auto;
}
.page-bottom{
height: calc(5vh);
}
</style> </style>

2
src/views/mdp/workflow/ru/procinstParames/ProcinstParamesStartSet.vue

@ -1,6 +1,6 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<el-row class="page-container border">
<!--新增界面 ProcinstParames 流程实例参数设置表--> <!--新增界面 ProcinstParames 流程实例参数设置表-->
<el-col :span="24"> <el-col :span="24">

222
src/views/mdp/workflow/ru/task/TaskMng.vue

@ -1,19 +1,13 @@
<template> <template>
<section> <section>
<el-row class="app-container">
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
<el-row>
<el-row class="page-container page-height">
<el-row class="page-header">
<el-select v-model="filters.procCategory" clearable filterable placeholder="选择分类"> <el-select v-model="filters.procCategory" clearable filterable placeholder="选择分类">
<el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option> <el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
<el-input v-model="filters.key" style="width:270px;" placeholder="模糊查询">
<template slot="append">
<div class="search">
<el-button @click="searchAssigneeToMeTasks" icon="el-icon-search">查询</el-button>
</div>
</template>
<el-input v-model="filters.key" class="input-width" placeholder="模糊查询">
</el-input> </el-input>
<el-button type="primary" @click="searchAssigneeToMeTasks" icon="el-icon-search">查询</el-button>
<el-popover placement="top" width="375" trigger="manual" v-model="weixinContentVisible"> <el-popover placement="top" width="375" trigger="manual" v-model="weixinContentVisible">
<p>{{weixinContent}}</p> <p>{{weixinContent}}</p>
<div style="text-align: right; margin: 0"> <div style="text-align: right; margin: 0">
@ -28,23 +22,24 @@
<el-button v-show="assigneeToMe===false" class="hidden-sm-and-down" v-on:click="showOaMsg">OAMSG催办</el-button> <el-button v-show="assigneeToMe===false" class="hidden-sm-and-down" v-on:click="showOaMsg">OAMSG催办</el-button>
<el-button @click.native="showTagSelect(false)" icon="el-icon-plus">标签</el-button> <el-button @click.native="showTagSelect(false)" icon="el-icon-plus">标签</el-button>
<el-button @click="drawer = true" circle icon="el-icon-more"></el-button>
<el-button @click="moreFilterVisible = true" circle icon="el-icon-more"></el-button>
<el-drawer title="更多查询条件" :visible.sync="drawer" :with-header="false" append-to-body>
<el-row class="more-filter-item">
<el-drawer title="更多查询条件" :visible.sync="moreFilterVisible" append-to-body :size="400">
<el-row class="page-container more-filter">
<el-col :span="24">
<font class="more-label-font" style="margin-right: 13px;">
<el-divider content-position="left">查询条件</el-divider>
<el-row>
<font>
流程分类 流程分类
</font> </font>
<el-select v-model="filters.procCategory" clearable filterable placeholder="选择分类">
<el-select size="small" v-model="filters.procCategory" clearable filterable placeholder="选择分类">
<el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option> <el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
</el-col>
</el-row>
<el-col :span="24">
<font class="more-label-font">
<el-row>
<font >
标签查找 标签查找
</font> </font>
<el-row v-show="filters.tags && filters.tags.length>0"> <el-row v-show="filters.tags && filters.tags.length>0">
@ -55,50 +50,43 @@
</el-row> </el-row>
<el-button v-if="filters.tags==null || filters.tags.length==0" size="mini" <el-button v-if="filters.tags==null || filters.tags.length==0" size="mini"
@click.native="showTagSelect(false)">选择标签</el-button> @click.native="showTagSelect(false)">选择标签</el-button>
</el-col>
<el-col :span="24">
<font class="more-label-font">
</el-row>
<el-row>
<font >
开始日期 开始日期
</font> </font>
<el-date-picker v-model="filters.startTimeRanger" type="daterange" align="right" unlink-panels <el-date-picker v-model="filters.startTimeRanger" type="daterange" align="right" unlink-panels
range-separator="-" start-placeholder="创建日期" end-placeholder="创建日期" value-format="yyyy-MM-dd HH:mm:ss" range-separator="-" start-placeholder="创建日期" end-placeholder="创建日期" value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions"></el-date-picker> :default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions"></el-date-picker>
</el-col>
<el-col :span="24">
<font class="more-label-font">
</el-row>
<el-row>
<font >
计划完成日期 计划完成日期
</font> </font>
<el-date-picker v-model="filters.planFinishTimeRanger" type="daterange" align="right" unlink-panels <el-date-picker v-model="filters.planFinishTimeRanger" type="daterange" align="right" unlink-panels
range-separator="-" start-placeholder="计划完成日期" end-placeholder="计划完成日期" range-separator="-" start-placeholder="计划完成日期" end-placeholder="计划完成日期"
value-format="yyyy-MM-dd HH:mm:ss" :default-time="['00:00:00','23:59:59']" value-format="yyyy-MM-dd HH:mm:ss" :default-time="['00:00:00','23:59:59']"
:picker-options="pickerOptions"></el-date-picker> :picker-options="pickerOptions"></el-date-picker>
</el-col>
<el-col :span="24">
<el-checkbox v-model="showCalendar">按日历风格显示</el-checkbox>
</el-col>
<el-col :span="24">
</el-row>
<el-row>
<el-button type="primary" @click="searchAssigneeToMeTasks" icon="el-icon-search" <el-button type="primary" @click="searchAssigneeToMeTasks" icon="el-icon-search"
style="margin-top: 11px;">查询</el-button> style="margin-top: 11px;">查询</el-button>
</el-col>
<el-col :span="24">
</el-row>
<el-row>
<el-divider content-position="left">其它操作</el-divider> <el-divider content-position="left">其它操作</el-divider>
<el-checkbox v-model="showCalendar">按日历风格显示</el-checkbox>
<el-button @click.native="showTagSelect(true)">添加标签</el-button> <el-button @click.native="showTagSelect(true)">添加标签</el-button>
<el-button @click="handleDownload">导出数据</el-button> <el-button @click="handleDownload">导出数据</el-button>
</el-col>
</el-row>
</el-row> </el-row>
</el-drawer> </el-drawer>
<el-row class="page-tips"><span></span></el-row>
</el-row> </el-row>
<el-row style="padding-top:20px;" v-if="showCalendar==false">
<el-row v-if="showCalendar==false" class="page-main">
<!--列表 Task act_ru_task--> <!--列表 Task act_ru_task-->
<el-table ref="table" :data="tasks" highlight-current-row v-loading="listLoading" border <el-table ref="table" :data="tasks" highlight-current-row v-loading="listLoading" border
@selection-change="selsChange" @row-click="rowClick" style="width: 100%;" :max-height="tableHeight">
@selection-change="selsChange" @row-click="rowClick" style="width: 100%;" :height="tableHeight">
<el-table-column type="selection" width="40" v-if="screenWidth>=500" :class="'hidden-sm-and-down'"> <el-table-column type="selection" width="40" v-if="screenWidth>=500" :class="'hidden-sm-and-down'">
</el-table-column> </el-table-column>
<el-table-column type="index" width="40" :class="'hidden-sm-and-down'"></el-table-column> <el-table-column type="index" width="40" :class="'hidden-sm-and-down'"></el-table-column>
@ -137,20 +125,20 @@
</el-table-column> </el-table-column>
<el-table-column sortable v-if="assigneeToMe===false" prop="dueDate" label="处理时长" min-width="80" <el-table-column sortable v-if="assigneeToMe===false" prop="dueDate" label="处理时长" min-width="80"
show-overflow-tooltip></el-table-column> show-overflow-tooltip></el-table-column>
<!--
<el-table-column label="操作" width="100" fixed="right"> <el-table-column label="操作" width="100" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" @click="showTaskDetail( scope.row,scope.$index)">详情</el-button> <el-button type="primary" @click="showTaskDetail( scope.row,scope.$index)">详情</el-button>
</template> </template>
</el-table-column> </el-table-column>
-->
</el-table> </el-table>
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" <el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange"
@size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum"
:page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination> :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination>
<!--编辑 Execution act_ru_execution界面--> <!--编辑 Execution act_ru_execution界面-->
</el-row> </el-row>
</el-col>
<el-col v-if="showCalendar==true">
<el-calendar v-loading="listLoading" v-model="filters.calendarDate">
<el-calendar v-if="showCalendar==true" v-loading="listLoading" v-model="filters.calendarDate">
<!-- 这里使用的是 2.5 slot 语法对于新项目请使用 2.6 slot 语法--> <!-- 这里使用的是 2.5 slot 语法对于新项目请使用 2.6 slot 语法-->
<template slot="dateCell" scope="{date, data}"> <template slot="dateCell" scope="{date, data}">
<div :class="data.isSelected ? 'is-selected' : ''"> <div :class="data.isSelected ? 'is-selected' : ''">
@ -208,19 +196,18 @@
</div> </div>
</template> </template>
</el-calendar> </el-calendar>
</el-col>
<el-dialog title="短信催办" :visible.sync="sendSmsVisible" :width="dialogWidth()" :close-on-click-modal="false"> <el-dialog title="短信催办" :visible.sync="sendSmsVisible" :width="dialogWidth()" :close-on-click-modal="false">
<send-sms :sms-body-params="smsBodyParams" :sms-user-list="smsUserList" :load-phoneno-by-userid="true" <send-sms :sms-body-params="smsBodyParams" :sms-user-list="smsUserList" :load-phoneno-by-userid="true"
:visible="sendSmsVisible" @cancel="sendSmsVisible=false"></send-sms> :visible="sendSmsVisible" @cancel="sendSmsVisible=false"></send-sms>
</el-dialog> </el-dialog>
<el-dialog fullscreen title="任务详情" :visible.sync="editFormVisible" :width="dialogWidth()"
<el-drawer fullscreen title="任务详情" :visible.sync="editFormVisible" :size="dialogWidth()" :withHeader="false"
:close-on-click-modal="false"> :close-on-click-modal="false">
<procinst-parames-execution-set :companyEmployees="companyEmployees" :companyDepts="companyDepts" <procinst-parames-execution-set :companyEmployees="companyEmployees" :companyDepts="companyDepts"
:taskInfo="editForm" :procDefId="editForm.procDefId" :procInstId="editForm.procInstId" :taskInfo="editForm" :procDefId="editForm.procDefId" :procInstId="editForm.procInstId"
:visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"> :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit">
</procinst-parames-execution-set> </procinst-parames-execution-set>
</el-dialog>
</el-drawer>
<el-dialog append-to-body title="标签条件" :visible.sync="tagSelectVisible" class="dialog-body" width="60%"> <el-dialog append-to-body title="标签条件" :visible.sync="tagSelectVisible" class="dialog-body" width="60%">
<tag-mng :tagIds="filters.tags?filters.tags.map(i=>i.tagId):[]" :jump="true" @select-confirm="onTagSelected"> <tag-mng :tagIds="filters.tags?filters.tags.map(i=>i.tagId):[]" :jump="true" @select-confirm="onTagSelected">
</tag-mng> </tag-mng>
@ -453,7 +440,7 @@
myBranchDepts: [], myBranchDepts: [],
categorys: [], categorys: [],
tagSelectVisible: false, tagSelectVisible: false,
drawer: false,
moreFilterVisible: false,
showCalendar: true, showCalendar: true,
tableHeight: 300, tableHeight: 300,
/** end 自定义属性请在上面加 请加备注**/ /** end 自定义属性请在上面加 请加备注**/
@ -496,10 +483,10 @@
this.getTasks(); this.getTasks();
}, },
dialogWidth: function() { dialogWidth: function() {
if (screen.width > 500) {
return "80%";
if (screen.width > 600) {
return "60%";
} else { } else {
return "100%";
return "80%";
} }
}, },
@ -1015,14 +1002,17 @@
// Task act_ru_task // Task act_ru_task
showTaskDetail: function(row, index) { showTaskDetail: function(row, index) {
// this.editFormVisible = true;
this.editForm = Object.assign({}, row); this.editForm = Object.assign({}, row);
this.editFormVisible = true;
/**
this.$router.push({ this.$router.push({
name: "ProcinstParamesExecutionSetRoute", name: "ProcinstParamesExecutionSetRoute",
params: { params: {
taskInfo: row taskInfo: row
} }
}); });
*/
}, },
// Task act_ru_task // Task act_ru_task
showAdd: function() { showAdd: function() {
@ -1401,10 +1391,10 @@
this.$nextTick(() => { this.$nextTick(() => {
if (!this.showCalendar) { if (!this.showCalendar) {
var clientRect = this.$refs.table.$el.getBoundingClientRect(); var clientRect = this.$refs.table.$el.getBoundingClientRect();
var subHeight = 70 / 1000 * window.innerHeight;
var subHeight = 60 / 1000 * window.innerHeight;
this.tableHeight = window.innerHeight - clientRect.y - this.$refs.table.$el.offsetTop - subHeight; this.tableHeight = window.innerHeight - clientRect.y - this.$refs.table.$el.offsetTop - subHeight;
} else { } else {
var subHeight = 70 / 1000 * window.innerHeight;
var subHeight = 60 / 1000 * window.innerHeight;
this.tableHeight = window.innerHeight - subHeight; this.tableHeight = window.innerHeight - subHeight;
} }
}) })
@ -1432,130 +1422,6 @@
</script> </script>
<style rel="stylesheet/scss" lang="scss" scoped> <style rel="stylesheet/scss" lang="scss" scoped>
.filters-show {
margin-left: 20px;
margin-top: 10px;
margin-bottom: 0px;
}
.filters-label {
font-size: 14px;
color: black;
font-weight: bold;
}
.dialog-body {
padding: 0px 0px;
}
.more-filter-item {
margin: 20px 20px;
}
.more-filter-item .el-col {
margin: 2px 2px;
}
.more-filter-item button {
margin: 2px 2px;
}
.calendar-cell-data {
flex: 1;
display: inline-block;
align-items: left;
justify-content: space-between;
font-size: 14px;
color: #4386c6;
ispan {
margin-left: 0px;
font-size: 18px;
font-weight: 600;
}
}
.el-ic {
display: none;
i,
span {
padding: 0 0px;
font-size: 18px;
font-weight: 600;
}
}
.calendar-cell-data:hover .el-ic {
color: #428bca !important;
display: inline-block;
margin-left: 20px;
}
.calendar-cell-datat:hover {
font-weight: bold;
}
.more-label-font {
text-align: center;
float: left;
height: 28px;
line-height: 28px;
margin-right: 10px;
margin-top: 2px;
}
.el-input--medium .el-input__inner {
height: 36px;
line-height: 36px;
margin-left: 2px;
}
.el-divider--horizontal {
display: block;
height: 1px;
width: 100%;
margin: 24px 0;
padding-top: 20px;
margin-left: 0px;
background: #fff;
}
.el-divider__text.is-left {
left: 0px;
}
</style> </style>
<style>
.el-input-group__append, .el-input-group__prepend {
background-color: #409EFF!important;
color: #ffffff!important;
vertical-align: middle;
display: table-cell;
position: relative;
border: 1px solid #409EFF!important;
padding: 0 20px;
width: 1px;
white-space: nowrap;
}
.el-calendar__header {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
padding: 20px 0px;
border: none;
}
.el-calendar__body {
padding: 12px 20px 35px;
border: 1px solid #EBEEF5;
}
.el-divider__text {
position: absolute;
background-color: #FFF;
padding: 0px 0px;
color: #303133;
}
</style>
Loading…
Cancel
Save