|
|
@ -1,67 +1,38 @@ |
|
|
<template> |
|
|
<template> |
|
|
<section> |
|
|
<section> |
|
|
<el-row class="app-container"> |
|
|
<el-row class="app-container"> |
|
|
<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> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :xs="24" :sm="24" :md="21" :lg="21" :xl="21"> |
|
|
|
|
|
|
|
|
<!-- <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"> |
|
|
<!--列表 Procinst act_hi_procinst--> |
|
|
<!--列表 Procinst act_hi_procinst--> |
|
|
<el-row> |
|
|
<el-row> |
|
|
<el-select v-model="filters.filterType" clearable placeholder="查询范围" class="hidden-md-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> |
|
|
<el-option value="partake" label="我参与"> </el-option> |
|
|
<el-option value="partake" label="我参与"> </el-option> |
|
|
<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-select v-model="filters.procCategory" clearable filterable placeholder="选择分类" class="hidden-sm-and-down"> |
|
|
|
|
|
<el-option v-for="item in categorys" :key="item" :label="item" :value="item"></el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
|
<el-date-picker |
|
|
|
|
|
v-model="filters.startTimeRanger" class="hidden-sm-and-down" |
|
|
|
|
|
type="daterange" |
|
|
|
|
|
align="right" |
|
|
|
|
|
unlink-panels |
|
|
|
|
|
range-separator="至" |
|
|
|
|
|
start-placeholder="创建日期" |
|
|
|
|
|
end-placeholder="创建日期" |
|
|
|
|
|
value-format="yyyy-MM-dd" |
|
|
|
|
|
:default-time="['00:00:00','23:59:59']" |
|
|
|
|
|
:picker-options="pickerOptions"> |
|
|
|
|
|
|
|
|
<el-date-picker v-model="filters.startTimeRanger" class="hidden-sm-and-down" type="daterange" align="right" |
|
|
|
|
|
unlink-panels range-separator="-" start-placeholder="创建日期" end-placeholder="创建日期" value-format="yyyy-MM-dd" |
|
|
|
|
|
: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:20%;" placeholder="模糊查询"> |
|
|
|
|
|
|
|
|
<el-input v-model="filters.key" style="width:270px;" placeholder="模糊查询"> |
|
|
<template slot="append"> |
|
|
<template slot="append"> |
|
|
<el-button v-on:click="searchProcinsts" icon="el-icon-search">查询</el-button> |
|
|
<el-button v-on:click="searchProcinsts" icon="el-icon-search">查询</el-button> |
|
|
</template> |
|
|
</template> |
|
|
</el-input> |
|
|
</el-input> |
|
|
<el-popover |
|
|
|
|
|
placement="top" |
|
|
|
|
|
width="375" |
|
|
|
|
|
trigger="manual" |
|
|
|
|
|
v-model="weixinContentVisible"> |
|
|
|
|
|
<p>{{weixinContent}}</p> |
|
|
|
|
|
<div style="text-align: right; margin: 0"> |
|
|
|
|
|
<el-button size="mini" type="text" @click="doCopyWeixinUrl">拷贝链接</el-button> |
|
|
|
|
|
<el-button type="primary" size="mini" @click="doCopyWeixinContent">拷贝内容</el-button> |
|
|
|
|
|
</div> |
|
|
|
|
|
<el-button slot="reference" class="hidden-sm-and-down" v-on:click="showWeixin">微信催办</el-button> |
|
|
|
|
|
</el-popover> |
|
|
|
|
|
|
|
|
|
|
|
<el-popover |
|
|
|
|
|
title="更多查询条件" |
|
|
|
|
|
placement="top-start" |
|
|
|
|
|
width="400" |
|
|
|
|
|
trigger="click"> |
|
|
|
|
|
|
|
|
<el-popover title="更多查询条件" placement="top-start" width="400" trigger="click"> |
|
|
<el-row class="more-filter-item"> |
|
|
<el-row class="more-filter-item"> |
|
|
<el-col :span="24"> |
|
|
<el-col :span="24"> |
|
|
<font class="more-label-font"> |
|
|
<font class="more-label-font"> |
|
|
查询范围: |
|
|
|
|
|
|
|
|
查询范围 |
|
|
</font> |
|
|
</font> |
|
|
<el-select size="mini" v-model="filters.filterType" placeholder="查询范围"> |
|
|
<el-select size="mini" v-model="filters.filterType" placeholder="查询范围"> |
|
|
<el-option value="" label="全部"> </el-option> |
|
|
<el-option value="" label="全部"> </el-option> |
|
|
@ -73,57 +44,42 @@ |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="24"> |
|
|
<el-col :span="24"> |
|
|
<font class="more-label-font"> |
|
|
<font class="more-label-font"> |
|
|
标签查找: |
|
|
|
|
|
|
|
|
分类 |
|
|
|
|
|
</font> |
|
|
|
|
|
<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-select> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="24"> |
|
|
|
|
|
<font class="more-label-font"> |
|
|
|
|
|
标签查找 |
|
|
</font> |
|
|
</font> |
|
|
<el-row v-show="filters.tags && filters.tags.length>0"> |
|
|
<el-row v-show="filters.tags && filters.tags.length>0"> |
|
|
<el-tag |
|
|
|
|
|
:key="tag.tagId" |
|
|
|
|
|
v-for="tag in filters.tags" |
|
|
|
|
|
:type="''" |
|
|
|
|
|
closable |
|
|
|
|
|
:disable-transitions="false" |
|
|
|
|
|
@click="showTagSelect(false)" |
|
|
|
|
|
@close="handleFiltersTagClose(tag,'tags')"> |
|
|
|
|
|
|
|
|
<el-tag :key="tag.tagId" v-for="tag in filters.tags" :type="''" closable :disable-transitions="false" |
|
|
|
|
|
@click="showTagSelect(false)" @close="handleFiltersTagClose(tag,'tags')"> |
|
|
{{tag.tagName}} |
|
|
{{tag.tagName}} |
|
|
</el-tag> |
|
|
</el-tag> |
|
|
</el-row> |
|
|
</el-row> |
|
|
<el-button v-if="filters.tags==null || filters.tags.length==0" size="mini" @click.native="showTagSelect(false)">选择标签</el-button> |
|
|
|
|
|
|
|
|
<el-button v-if="filters.tags==null || filters.tags.length==0" size="mini" |
|
|
|
|
|
@click.native="showTagSelect(false)">选择标签</el-button> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="24" > |
|
|
|
|
|
|
|
|
<el-col :span="24"> |
|
|
<font class="more-label-font"> |
|
|
<font class="more-label-font"> |
|
|
任务执行人: |
|
|
|
|
|
|
|
|
任务执行 |
|
|
</font> |
|
|
</font> |
|
|
<el-tag v-if="filters.assignee" |
|
|
|
|
|
:type="'success'" |
|
|
|
|
|
closable |
|
|
|
|
|
:disable-transitions="false" |
|
|
|
|
|
@click="userSelectVisible=true" |
|
|
|
|
|
@close="handleFiltersTagClose('','assignee')"> |
|
|
|
|
|
|
|
|
<el-tag v-if="filters.assignee" :type="'success'" closable :disable-transitions="false" |
|
|
|
|
|
@click="userSelectVisible=true" @close="handleFiltersTagClose('','assignee')"> |
|
|
{{filters.assignee.username}} |
|
|
{{filters.assignee.username}} |
|
|
</el-tag> |
|
|
</el-tag> |
|
|
<el-button v-else size="mini" @click.native="userSelectVisible=true" >选择执行人</el-button> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="24" > |
|
|
|
|
|
<el-button size="mini" :type="filters.suspensionState=='2'?'success':''" v-on:click="filters.suspensionState='2'">挂起的</el-button> |
|
|
|
|
|
<el-button size="mini" :type="filters.suspensionState=='1'?'success':''" v-on:click="filters.suspensionState='1'">活动的</el-button> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-button v-else size="mini" @click.native="userSelectVisible=true">选择执行人</el-button> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="24"> |
|
|
<el-col :span="24"> |
|
|
<font class="more-label-font"> |
|
|
<font class="more-label-font"> |
|
|
开始日期: |
|
|
开始日期: |
|
|
</font> |
|
|
</font> |
|
|
<el-date-picker |
|
|
|
|
|
v-model="filters.startTimeRanger" |
|
|
|
|
|
type="daterange" |
|
|
|
|
|
align="right" |
|
|
|
|
|
unlink-panels |
|
|
|
|
|
range-separator="至" |
|
|
|
|
|
start-placeholder="创建日期" |
|
|
|
|
|
end-placeholder="创建日期" |
|
|
|
|
|
value-format="yyyy-MM-dd" |
|
|
|
|
|
:default-time="['00:00:00','23:59:59']" |
|
|
|
|
|
:picker-options="pickerOptions"> |
|
|
|
|
|
|
|
|
<el-date-picker v-model="filters.startTimeRanger" type="daterange" align="right" unlink-panels |
|
|
|
|
|
range-separator="-" start-placeholder="创建日期" end-placeholder="创建日期" value-format="yyyy-MM-dd" |
|
|
|
|
|
:default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions"> |
|
|
</el-date-picker> |
|
|
</el-date-picker> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="24"> |
|
|
<el-col :span="24"> |
|
|
@ -131,51 +87,33 @@ |
|
|
<font class="more-label-font"> |
|
|
<font class="more-label-font"> |
|
|
计划完成日期: |
|
|
计划完成日期: |
|
|
</font> |
|
|
</font> |
|
|
<el-date-picker |
|
|
|
|
|
v-model="filters.planFinishTimeRanger" |
|
|
|
|
|
type="daterange" |
|
|
|
|
|
align="right" |
|
|
|
|
|
unlink-panels |
|
|
|
|
|
range-separator="至" |
|
|
|
|
|
start-placeholder="计划完成日期" |
|
|
|
|
|
end-placeholder="计划完成日期" |
|
|
|
|
|
value-format="yyyy-MM-dd" |
|
|
|
|
|
:default-time="['00:00:00','23:59:59']" |
|
|
|
|
|
:picker-options="pickerOptions"> |
|
|
|
|
|
|
|
|
<el-date-picker v-model="filters.planFinishTimeRanger" type="daterange" align="right" unlink-panels |
|
|
|
|
|
range-separator="-" start-placeholder="计划完成日期" end-placeholder="计划完成日期" value-format="yyyy-MM-dd" |
|
|
|
|
|
:default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions"> |
|
|
</el-date-picker> |
|
|
</el-date-picker> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="24"> |
|
|
|
|
|
<category-tree class="hidden-md-and-up" ref="categoryTree" multiple :expandOnClickNode="false" :defaultExpandAll="true" show-checkbox :current-key="addForm.categoryId" v-on:check-change="handleCategoryCheckChange" ></category-tree> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="24"> |
|
|
|
|
|
<el-checkbox size="mini" v-model="showCalendar">按日历风格显示</el-checkbox> |
|
|
|
|
|
<el-button size="mini" type="primary" v-on:click="searchExecutions" icon="el-icon-search">查询</el-button> |
|
|
|
|
|
|
|
|
<!-- <el-col :span="24"> |
|
|
|
|
|
<category-tree class="hidden-lg-and-up" ref="categoryTree" multiple :expandOnClickNode="false" |
|
|
|
|
|
:defaultExpandAll="true" show-checkbox :current-key="addForm.categoryId" |
|
|
|
|
|
v-on:check-change="handleCategoryCheckChange"></category-tree> |
|
|
|
|
|
</el-col> --> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="24" style="margin-top: 11px;"> |
|
|
|
|
|
<el-button size="mini" type="primary" v-on:click="searchProcinsts" icon="el-icon-search">查询</el-button> |
|
|
</el-col> |
|
|
</el-col> |
|
|
|
|
|
|
|
|
<el-col :span="24"> |
|
|
<el-col :span="24"> |
|
|
<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-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="showOaMsg">OAMSG催办</el-button> |
|
|
|
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
</el-row> |
|
|
<el-button slot="reference" icon="el-icon-more" circle></el-button> |
|
|
|
|
|
|
|
|
<el-button slot="reference" icon="el-icon-more" style="margin-left: 13px;" circle></el-button> |
|
|
</el-popover> |
|
|
</el-popover> |
|
|
</el-row> |
|
|
</el-row> |
|
|
<el-row style="padding-top:10px;"> |
|
|
|
|
|
<el-table |
|
|
|
|
|
ref="table" |
|
|
|
|
|
:max-height="tableHeight" |
|
|
|
|
|
:data="procinsts" |
|
|
|
|
|
highlight-current-row |
|
|
|
|
|
v-loading="listLoading" |
|
|
|
|
|
border |
|
|
|
|
|
@selection-change="selsChange" |
|
|
|
|
|
@row-click="rowClick" |
|
|
|
|
|
style="width: 100%;" |
|
|
|
|
|
> |
|
|
|
|
|
|
|
|
<el-row style="padding-top:20px;"> |
|
|
|
|
|
<el-table ref="table" :max-height="tableHeight" :data="procinsts" 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 sortable prop="mainTitle" label="流程(点击详情)" min-width="300" show-overflow-tooltip> |
|
|
<el-table-column sortable prop="mainTitle" label="流程(点击详情)" min-width="300" show-overflow-tooltip> |
|
|
@ -183,152 +121,88 @@ |
|
|
<el-link type="primary" @click="showEdit( scope.row,scope.$index)">{{scope.row.mainTitle}}</el-link> |
|
|
<el-link type="primary" @click="showEdit( scope.row,scope.$index)">{{scope.row.mainTitle}}</el-link> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column |
|
|
|
|
|
sortable |
|
|
|
|
|
prop="startDeptName" |
|
|
|
|
|
label="发起部门" |
|
|
|
|
|
min-width="180" |
|
|
|
|
|
show-overflow-tooltip |
|
|
|
|
|
></el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
sortable |
|
|
|
|
|
prop="startUsername" |
|
|
|
|
|
label="发起人" |
|
|
|
|
|
min-width="120" |
|
|
|
|
|
show-overflow-tooltip |
|
|
|
|
|
></el-table-column> |
|
|
|
|
|
<el-table-column sortable prop="tagNames" label="标签" min-width="150" |
|
|
|
|
|
show-overflow-tooltip> |
|
|
|
|
|
|
|
|
<el-table-column sortable prop="startDeptName" label="发起部门" min-width="180" show-overflow-tooltip> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column sortable prop="startUsername" label="发起人" min-width="120" show-overflow-tooltip> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column sortable prop="tagNames" label="标签" min-width="150" show-overflow-tooltip> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<el-tag |
|
|
|
|
|
v-for="tagName in (scope.row.tagNames?scope.row.tagNames.split(','):[])" |
|
|
|
|
|
:key="tagName" |
|
|
|
|
|
>{{tagName}}</el-tag> |
|
|
|
|
|
|
|
|
<el-tag v-for="tagName in (scope.row.tagNames?scope.row.tagNames.split(','):[])" :key="tagName"> |
|
|
|
|
|
{{tagName}}</el-tag> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column |
|
|
|
|
|
sortable |
|
|
|
|
|
prop="startTime" |
|
|
|
|
|
label="发起时间" |
|
|
|
|
|
min-width="120" |
|
|
|
|
|
show-overflow-tooltip |
|
|
|
|
|
></el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
sortable |
|
|
|
|
|
prop="planFinishTime" |
|
|
|
|
|
label="到期时间" |
|
|
|
|
|
min-width="120" |
|
|
|
|
|
show-overflow-tooltip |
|
|
|
|
|
></el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
sortable |
|
|
|
|
|
prop="endTime" |
|
|
|
|
|
label="结束时间" |
|
|
|
|
|
min-width="120" |
|
|
|
|
|
show-overflow-tooltip |
|
|
|
|
|
></el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
sortable |
|
|
|
|
|
prop="duration" |
|
|
|
|
|
label="执行时长" |
|
|
|
|
|
min-width="120" |
|
|
|
|
|
show-overflow-tooltip |
|
|
|
|
|
:formatter="formatterDuration" |
|
|
|
|
|
></el-table-column> |
|
|
|
|
|
|
|
|
<el-table-column sortable prop="startTime" label="发起时间" min-width="120" show-overflow-tooltip> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column sortable prop="planFinishTime" label="到期时间" min-width="120" show-overflow-tooltip> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column sortable prop="endTime" label="结束时间" min-width="120" show-overflow-tooltip> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column sortable prop="duration" label="执行时长" min-width="120" show-overflow-tooltip |
|
|
|
|
|
:formatter="formatterDuration"></el-table-column> |
|
|
|
|
|
|
|
|
<el-table-column |
|
|
|
|
|
sortable |
|
|
|
|
|
prop="sponsors" |
|
|
|
|
|
label="主办" |
|
|
|
|
|
min-width="80" |
|
|
|
|
|
show-overflow-tooltip |
|
|
|
|
|
></el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
sortable |
|
|
|
|
|
prop="monitors" |
|
|
|
|
|
label="监控" |
|
|
|
|
|
min-width="80" |
|
|
|
|
|
show-overflow-tooltip |
|
|
|
|
|
></el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
sortable |
|
|
|
|
|
prop="deleteReason" |
|
|
|
|
|
label="删除原因" |
|
|
|
|
|
min-width="120" |
|
|
|
|
|
show-overflow-tooltip |
|
|
|
|
|
></el-table-column> |
|
|
|
|
|
|
|
|
<el-table-column sortable prop="sponsors" label="主办" min-width="80" show-overflow-tooltip></el-table-column> |
|
|
|
|
|
<el-table-column sortable prop="monitors" label="监控" min-width="80" show-overflow-tooltip></el-table-column> |
|
|
|
|
|
<el-table-column sortable prop="deleteReason" label="删除原因" min-width="120" show-overflow-tooltip> |
|
|
|
|
|
</el-table-column> |
|
|
</el-table> |
|
|
</el-table> |
|
|
<el-pagination |
|
|
|
|
|
layout="total, prev, next" |
|
|
|
|
|
@current-change="handleCurrentChange" |
|
|
|
|
|
@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> |
|
|
|
|
|
|
|
|
<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" |
|
|
|
|
|
: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()" |
|
|
|
|
|
:close-on-click-modal="false" |
|
|
|
|
|
> |
|
|
|
|
|
<procinst-parames-execution-set |
|
|
|
|
|
:companyEmployees="companyEmployees" |
|
|
|
|
|
:companyDepts="companyDepts" |
|
|
|
|
|
:taskInfo="editForm" |
|
|
|
|
|
:procDefId="editForm.procDefId" |
|
|
|
|
|
:procInstId="editForm.procInstId" |
|
|
|
|
|
:visible="editFormVisible" |
|
|
|
|
|
@cancel="editFormVisible=false" |
|
|
|
|
|
@submit="afterEditSubmit" |
|
|
|
|
|
></procinst-parames-execution-set> |
|
|
|
|
|
|
|
|
<el-dialog title="任务详情" fullscreen :visible.sync="editFormVisible" :width="dialogWidth()" |
|
|
|
|
|
:close-on-click-modal="false"> |
|
|
|
|
|
<procinst-parames-execution-set :companyEmployees="companyEmployees" :companyDepts="companyDepts" |
|
|
|
|
|
:taskInfo="editForm" :procDefId="editForm.procDefId" :procInstId="editForm.procInstId" |
|
|
|
|
|
:visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"> |
|
|
|
|
|
</procinst-parames-execution-set> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
</el-row> |
|
|
</el-row> |
|
|
</el-col> |
|
|
</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> |
|
|
|
|
|
|
|
|
<users-select :select-userids="filters.assignee?[filters.assignee.userid]:[]" @confirm="onUserSelected"> |
|
|
|
|
|
</users-select> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
<el-dialog append-to-body title="标签条件" :visible.sync="tagSelectVisible" width="60%"> |
|
|
<el-dialog append-to-body title="标签条件" :visible.sync="tagSelectVisible" width="60%"> |
|
|
<tag-mng |
|
|
|
|
|
:tagIds="filters.tags?filters.tags.map(i=>i.tagId):[]" |
|
|
|
|
|
:jump="true" |
|
|
|
|
|
@select-confirm="onTagSelected" |
|
|
|
|
|
></tag-mng> |
|
|
|
|
|
|
|
|
<tag-mng :tagIds="filters.tags?filters.tags.map(i=>i.tagId):[]" :jump="true" @select-confirm="onTagSelected"> |
|
|
|
|
|
</tag-mng> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
</el-row> |
|
|
</el-row> |
|
|
</section> |
|
|
</section> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
import util from "@/common/js/util"; //全局公共库 |
|
|
|
|
|
//import { getCompanyEmployees,getCompanyDepts,selectCacheOptions,getDefaultValue,getCodeName } from '../../../../../api/common/code';//下拉框数据查询 |
|
|
|
|
|
import { |
|
|
|
|
|
|
|
|
import util from "@/common/js/util"; //全局公共库 |
|
|
|
|
|
//import { getCompanyEmployees,getCompanyDepts,selectCacheOptions,getDefaultValue,getCodeName } from '../../../../../api/common/code';//下拉框数据查询 |
|
|
|
|
|
import { |
|
|
listProcinst, |
|
|
listProcinst, |
|
|
delProcinst, |
|
|
delProcinst, |
|
|
batchDelProcinst |
|
|
batchDelProcinst |
|
|
} from "@/api/mdp/workflow/hi/procinst"; |
|
|
|
|
|
import ProcinstParamesExecutionSet from "../../ru/procinstParames/ProcinstParamesExecutionSet"; //流程参数加载 |
|
|
|
|
|
import { listCategorys } from "@/api/mdp/workflow/re/procdef"; |
|
|
|
|
|
import Sticky from "@/components/Sticky"; // 粘性header组件 |
|
|
|
|
|
import { mapGetters } from "vuex"; |
|
|
|
|
|
import { listUser } from "@/api/mdp/sys/user"; //下拉框数据查询 |
|
|
|
|
|
import { listDept } from "@/api/mdp/sys/dept"; //下拉框数据查询 |
|
|
|
|
|
|
|
|
|
|
|
import CategoryTree from "@/views/mdp/arc/category/CategoryTree"; //修改界面 |
|
|
|
|
|
import TagMng from "@/views/mdp/arc/tag/TagMng"; |
|
|
|
|
|
import { batchInsertOrDeleteTags } from "@/api/mdp/workflow/ru/procinstTag"; |
|
|
|
|
|
import UsersSelect from "@/views/mdp/sys/user/UsersSelect"; |
|
|
|
|
|
|
|
|
|
|
|
export default { |
|
|
|
|
|
|
|
|
} from "@/api/mdp/workflow/hi/procinst"; |
|
|
|
|
|
import ProcinstParamesExecutionSet from "../../ru/procinstParames/ProcinstParamesExecutionSet"; //流程参数加载 |
|
|
|
|
|
import { |
|
|
|
|
|
listCategorys |
|
|
|
|
|
} from "@/api/mdp/workflow/re/procdef"; |
|
|
|
|
|
import Sticky from "@/components/Sticky"; // 粘性header组件 |
|
|
|
|
|
import { |
|
|
|
|
|
mapGetters |
|
|
|
|
|
} from "vuex"; |
|
|
|
|
|
import { |
|
|
|
|
|
listUser |
|
|
|
|
|
} from "@/api/mdp/sys/user"; //下拉框数据查询 |
|
|
|
|
|
import { |
|
|
|
|
|
listDept |
|
|
|
|
|
} from "@/api/mdp/sys/dept"; //下拉框数据查询 |
|
|
|
|
|
|
|
|
|
|
|
import CategoryTree from "@/views/mdp/arc/category/CategoryTree"; //修改界面 |
|
|
|
|
|
import TagMng from "@/views/mdp/arc/tag/TagMng"; |
|
|
|
|
|
import { |
|
|
|
|
|
batchInsertOrDeleteTags |
|
|
|
|
|
} from "@/api/mdp/workflow/ru/procinstTag"; |
|
|
|
|
|
import UsersSelect from "@/views/mdp/sys/user/UsersSelect"; |
|
|
|
|
|
|
|
|
|
|
|
export default { |
|
|
name: "ProcinstMng", |
|
|
name: "ProcinstMng", |
|
|
computed: { |
|
|
computed: { |
|
|
...mapGetters(["userInfo"]), |
|
|
...mapGetters(["userInfo"]), |
|
|
@ -357,11 +231,10 @@ export default { |
|
|
planFinishTimeRanger: [], |
|
|
planFinishTimeRanger: [], |
|
|
endTimeRanger: [], |
|
|
endTimeRanger: [], |
|
|
assignee: null, |
|
|
assignee: null, |
|
|
filterType:'', |
|
|
|
|
|
|
|
|
filterType: '', |
|
|
}, |
|
|
}, |
|
|
pickerOptions: { |
|
|
pickerOptions: { |
|
|
shortcuts: [ |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
shortcuts: [{ |
|
|
text: "最近一周", |
|
|
text: "最近一周", |
|
|
onClick(picker) { |
|
|
onClick(picker) { |
|
|
const end = new Date(); |
|
|
const end = new Date(); |
|
|
@ -475,7 +348,7 @@ export default { |
|
|
tagSelectVisible: false, |
|
|
tagSelectVisible: false, |
|
|
isBatchSetProcTags: false, |
|
|
isBatchSetProcTags: false, |
|
|
userSelectVisible: false, |
|
|
userSelectVisible: false, |
|
|
tableHeight:300, |
|
|
|
|
|
|
|
|
tableHeight: 300, |
|
|
/**end 自定义属性请在上面加 请加备注**/ |
|
|
/**end 自定义属性请在上面加 请加备注**/ |
|
|
}; |
|
|
}; |
|
|
}, //end data |
|
|
}, //end data |
|
|
@ -596,20 +469,20 @@ export default { |
|
|
params.assignee = this.filters.assignee.userid; |
|
|
params.assignee = this.filters.assignee.userid; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if(this.filters.filterType=='startUserId'){ |
|
|
|
|
|
params.startUserId=this.userInfo.userid |
|
|
|
|
|
|
|
|
if (this.filters.filterType == 'startUserId') { |
|
|
|
|
|
params.startUserId = this.userInfo.userid |
|
|
} |
|
|
} |
|
|
if(this.filters.filterType=='partake'){ |
|
|
|
|
|
params.partake=this.userInfo.userid |
|
|
|
|
|
|
|
|
if (this.filters.filterType == 'partake') { |
|
|
|
|
|
params.partake = this.userInfo.userid |
|
|
} |
|
|
} |
|
|
if(this.filters.filterType=='sponsors'){ |
|
|
|
|
|
params.sponsors='%'+this.userInfo.userid+'%' |
|
|
|
|
|
|
|
|
if (this.filters.filterType == 'sponsors') { |
|
|
|
|
|
params.sponsors = '%' + this.userInfo.userid + '%' |
|
|
} |
|
|
} |
|
|
if(this.filters.filterType=='monitors'){ |
|
|
|
|
|
params.monitors='%'+this.userInfo.userid+'%' |
|
|
|
|
|
|
|
|
if (this.filters.filterType == 'monitors') { |
|
|
|
|
|
params.monitors = '%' + this.userInfo.userid + '%' |
|
|
} |
|
|
} |
|
|
if (this.filters.proccategory != "") { |
|
|
|
|
|
params.category = this.filters.proccategory; |
|
|
|
|
|
|
|
|
if (this.filters.procCategory != "") { |
|
|
|
|
|
params.category = this.filters.procCategory; |
|
|
} |
|
|
} |
|
|
params.tenantId = this.userInfo.branchId; |
|
|
params.tenantId = this.userInfo.branchId; |
|
|
this.listLoading = true; |
|
|
this.listLoading = true; |
|
|
@ -621,7 +494,10 @@ export default { |
|
|
this.pageInfo.count = false; |
|
|
this.pageInfo.count = false; |
|
|
this.procinsts = res.data.data; |
|
|
this.procinsts = res.data.data; |
|
|
} else { |
|
|
} else { |
|
|
this.$message({ message: tips.msg, type: "error" }); |
|
|
|
|
|
|
|
|
this.$message({ |
|
|
|
|
|
message: tips.msg, |
|
|
|
|
|
type: "error" |
|
|
|
|
|
}); |
|
|
} |
|
|
} |
|
|
this.listLoading = false; |
|
|
this.listLoading = false; |
|
|
}) |
|
|
}) |
|
|
@ -661,7 +537,9 @@ export default { |
|
|
}) |
|
|
}) |
|
|
.then(() => { |
|
|
.then(() => { |
|
|
this.listLoading = true; |
|
|
this.listLoading = true; |
|
|
let params = { id: row.id }; |
|
|
|
|
|
|
|
|
let params = { |
|
|
|
|
|
id: row.id |
|
|
|
|
|
}; |
|
|
delProcinst(params).then(res => { |
|
|
delProcinst(params).then(res => { |
|
|
this.listLoading = false; |
|
|
this.listLoading = false; |
|
|
var tips = res.data.tips; |
|
|
var tips = res.data.tips; |
|
|
@ -715,7 +593,9 @@ export default { |
|
|
this.pageInfo.total = 0; |
|
|
this.pageInfo.total = 0; |
|
|
this.pageInfo.count = true; |
|
|
this.pageInfo.count = true; |
|
|
this.filters.allBtn = false; |
|
|
this.filters.allBtn = false; |
|
|
this.filters.otherParames = { partake: this.userInfo.userid }; |
|
|
|
|
|
|
|
|
this.filters.otherParames = { |
|
|
|
|
|
partake: this.userInfo.userid |
|
|
|
|
|
}; |
|
|
this.getProcinsts(); |
|
|
this.getProcinsts(); |
|
|
}, |
|
|
}, |
|
|
searchMyStart() { |
|
|
searchMyStart() { |
|
|
@ -723,7 +603,9 @@ export default { |
|
|
this.pageInfo.total = 0; |
|
|
this.pageInfo.total = 0; |
|
|
this.pageInfo.count = true; |
|
|
this.pageInfo.count = true; |
|
|
this.filters.allBtn = false; |
|
|
this.filters.allBtn = false; |
|
|
this.filters.otherParames = { startUserId: this.userInfo.userid }; |
|
|
|
|
|
|
|
|
this.filters.otherParames = { |
|
|
|
|
|
startUserId: this.userInfo.userid |
|
|
|
|
|
}; |
|
|
this.getProcinsts(); |
|
|
this.getProcinsts(); |
|
|
}, |
|
|
}, |
|
|
searchMySponsors() { |
|
|
searchMySponsors() { |
|
|
@ -841,7 +723,10 @@ export default { |
|
|
branchId: row.branchId, |
|
|
branchId: row.branchId, |
|
|
userid: this.userInfo.userid, |
|
|
userid: this.userInfo.userid, |
|
|
tags: tags.map(i => { |
|
|
tags: tags.map(i => { |
|
|
return { tagId: i.tagId, tagName: i.tagName }; |
|
|
|
|
|
|
|
|
return { |
|
|
|
|
|
tagId: i.tagId, |
|
|
|
|
|
tagName: i.tagName |
|
|
|
|
|
}; |
|
|
}) |
|
|
}) |
|
|
}; |
|
|
}; |
|
|
procinstTagsVos.push(procinstTags); |
|
|
procinstTagsVos.push(procinstTags); |
|
|
@ -990,9 +875,9 @@ export default { |
|
|
const data = this.formatJson(filterVal, list); |
|
|
const data = this.formatJson(filterVal, list); |
|
|
var filename = "历史流程"; |
|
|
var filename = "历史流程"; |
|
|
if (this.formDefSelected) { |
|
|
if (this.formDefSelected) { |
|
|
filename = this.formDefSelected.formName |
|
|
|
|
|
? this.formDefSelected.formName |
|
|
|
|
|
: this.formDefSelected.id + "历史流程"; |
|
|
|
|
|
|
|
|
filename = this.formDefSelected.formName ? |
|
|
|
|
|
this.formDefSelected.formName : |
|
|
|
|
|
this.formDefSelected.id + "历史流程"; |
|
|
} |
|
|
} |
|
|
excel.export_json_to_excel({ |
|
|
excel.export_json_to_excel({ |
|
|
header: tHeader, |
|
|
header: tHeader, |
|
|
@ -1025,56 +910,70 @@ export default { |
|
|
UsersSelect |
|
|
UsersSelect |
|
|
}, |
|
|
}, |
|
|
mounted() { |
|
|
mounted() { |
|
|
listCategorys({ tenantId: this.userInfo.branchId }).then(res => { |
|
|
|
|
|
|
|
|
listCategorys({ |
|
|
|
|
|
tenantId: this.userInfo.branchId |
|
|
|
|
|
}).then(res => { |
|
|
this.categorys = res.data.data; |
|
|
this.categorys = res.data.data; |
|
|
}); |
|
|
}); |
|
|
this.$nextTick(() => { |
|
|
this.$nextTick(() => { |
|
|
var clientRect=this.$refs.table.$el.getBoundingClientRect(); |
|
|
|
|
|
var subHeight=70/1000 * window.innerHeight; |
|
|
|
|
|
this.tableHeight = window.innerHeight -clientRect.y - this.$refs.table.$el.offsetTop-subHeight; |
|
|
|
|
|
if(this.isMyStart){ |
|
|
|
|
|
this.filters.filterType="startUserId" |
|
|
|
|
|
}else if(this.isMyMonitors){ |
|
|
|
|
|
this.filters.filterType="monitors" |
|
|
|
|
|
}else if(this.isMySponsors){ |
|
|
|
|
|
this.filters.filterType="sponsors" |
|
|
|
|
|
}else if(this.isMyPartake){ |
|
|
|
|
|
this.filters.filterType="partake" |
|
|
|
|
|
}else if(this.isAll){ |
|
|
|
|
|
|
|
|
var clientRect = this.$refs.table.$el.getBoundingClientRect(); |
|
|
|
|
|
var subHeight = 70 / 1000 * window.innerHeight; |
|
|
|
|
|
this.tableHeight = window.innerHeight - clientRect.y - this.$refs.table.$el.offsetTop - subHeight; |
|
|
|
|
|
if (this.isMyStart) { |
|
|
|
|
|
this.filters.filterType = "startUserId" |
|
|
|
|
|
} else if (this.isMyMonitors) { |
|
|
|
|
|
this.filters.filterType = "monitors" |
|
|
|
|
|
} else if (this.isMySponsors) { |
|
|
|
|
|
this.filters.filterType = "sponsors" |
|
|
|
|
|
} else if (this.isMyPartake) { |
|
|
|
|
|
this.filters.filterType = "partake" |
|
|
|
|
|
} else if (this.isAll) { |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
this.getProcinsts(); |
|
|
this.getProcinsts(); |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
}; |
|
|
|
|
|
|
|
|
}; |
|
|
</script> |
|
|
</script> |
|
|
|
|
|
|
|
|
<style scoped> |
|
|
<style scoped> |
|
|
.filters-show { |
|
|
|
|
|
|
|
|
.filters-show { |
|
|
margin-left: 20px; |
|
|
margin-left: 20px; |
|
|
margin-top: 10px; |
|
|
margin-top: 10px; |
|
|
margin-bottom: 0px; |
|
|
margin-bottom: 0px; |
|
|
} |
|
|
|
|
|
.filters-label { |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.filters-label { |
|
|
font-size: 14px; |
|
|
font-size: 14px; |
|
|
color: black; |
|
|
color: black; |
|
|
font-weight: bold; |
|
|
font-weight: bold; |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
.more-filter-item { |
|
|
|
|
|
margin: 20px 20px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
.more-filter-item { |
|
|
|
|
|
margin: 20px 0px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
.more-filter-item .el-col { |
|
|
|
|
|
|
|
|
.more-filter-item .el-col { |
|
|
margin: 2px 2px; |
|
|
margin: 2px 2px; |
|
|
} |
|
|
|
|
|
.more-filter-item button { |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.more-filter-item button { |
|
|
margin: 2px 2px; |
|
|
margin: 2px 2px; |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.more-label-font { |
|
|
|
|
|
text-align: center; |
|
|
|
|
|
float: left; |
|
|
|
|
|
height: 28px; |
|
|
|
|
|
line-height: 28px; |
|
|
|
|
|
margin-right: 10px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
.more-label-font{ |
|
|
|
|
|
text-align:center; |
|
|
|
|
|
float:left; |
|
|
|
|
|
padding-top:5px; |
|
|
|
|
|
|
|
|
.el-popover__title { |
|
|
|
|
|
color: #303133; |
|
|
|
|
|
font-size: 18px; |
|
|
|
|
|
line-height: 1; |
|
|
|
|
|
margin-bottom: 12px; |
|
|
|
|
|
margin-top: 11px; |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |