|
|
|
@ -1,10 +1,7 @@ |
|
|
|
<template> |
|
|
|
<section> |
|
|
|
<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 v-if="showCalendar==false" :xs="24" :sm="24" :md="21" :lg="21" :xl="21"> |
|
|
|
<el-col v-if="showCalendar==false"> |
|
|
|
<el-row> |
|
|
|
<el-select v-model="filters.filterType" clearable placeholder="查询范围" class="hidden-md-and-down"> |
|
|
|
<el-option value="" label="全部"> </el-option> |
|
|
|
@ -13,46 +10,34 @@ |
|
|
|
<el-option value="sponsors" label="我主办"> </el-option> |
|
|
|
<el-option value="monitors" label="我监控"> </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-select 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-date-picker v-model="filters.startTimeRanger" class="" 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-input v-model="filters.key" style="width:20%;" placeholder="模糊查询"> |
|
|
|
<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> |
|
|
|
<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> |
|
|
|
<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-button slot="reference" style="margin-left: 13px;" class="hidden-lg-and-down" icon="el-icon-alarm-clock " 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-col :span="24"> |
|
|
|
<font class="more-label-font"> |
|
|
|
查询范围: |
|
|
|
查询范围 |
|
|
|
</font> |
|
|
|
<el-select size="mini" v-model="filters.filterType" placeholder="查询范围"> |
|
|
|
<el-option value="" label="全部"> </el-option> |
|
|
|
@ -64,120 +49,119 @@ |
|
|
|
</el-col> |
|
|
|
<el-col :span="24"> |
|
|
|
<font class="more-label-font"> |
|
|
|
标签查找: |
|
|
|
流程分类 |
|
|
|
</font> |
|
|
|
<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-select> |
|
|
|
</el-col> |
|
|
|
<el-col :span="24"> |
|
|
|
<font class="more-label-font"> |
|
|
|
标签查找 |
|
|
|
</font> |
|
|
|
<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}} |
|
|
|
</el-tag> |
|
|
|
</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 :span="24"> |
|
|
|
<font class="more-label-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}} |
|
|
|
</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> |
|
|
|
<font class="more-label-font"> |
|
|
|
流程状态 |
|
|
|
</font> |
|
|
|
<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-col> |
|
|
|
<el-col :span="24"> |
|
|
|
<font class="more-label-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-col> |
|
|
|
<el-col :span="24"> |
|
|
|
|
|
|
|
<font class="more-label-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-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-col> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="24" style="margin-top: 11px;"> |
|
|
|
<el-button size="mini" type="primary" v-on:click="searchExecutions" icon="el-icon-search">查询</el-button> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col :span="24"> |
|
|
|
<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" 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-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-row> |
|
|
|
<!--列表 Execution act_ru_execution--> |
|
|
|
<el-row style="padding-top:10px;"> |
|
|
|
<el-table ref="table" :max-height="tableHeight" :data="executions" 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="executions" 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="index" width="40"></el-table-column> |
|
|
|
<el-table-column sortable prop="mainTitle" label="流程(点击详情)" min-width="300" show-overflow-tooltip> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-link type="primary" @click="showTasksInfo( scope.row,scope.$index)">{{scope.row.mainTitle}}</el-link> |
|
|
|
<el-link type="primary" @click="showTasksInfo( scope.row,scope.$index)">{{scope.row.mainTitle}} |
|
|
|
</el-link> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="taskName" label="当前节点" min-width="100" show-overflow-tooltip> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column sortable prop="tagNames" label="标签" min-width="100" show-overflow-tooltip> |
|
|
|
<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> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column sortable prop="assigneeName" label="执行人" width="100" show-overflow-tooltip></el-table-column> |
|
|
|
<el-table-column sortable prop="startUsername" label="发起人" width="100" show-overflow-tooltip></el-table-column> |
|
|
|
<el-table-column sortable prop="assigneeName" label="执行人" width="100" show-overflow-tooltip> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column sortable prop="startUsername" label="发起人" width="100" show-overflow-tooltip> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column sortable prop="startTime" label="发起时间" width="120" show-overflow-tooltip></el-table-column> |
|
|
|
<el-table-column sortable prop="planFinishTime" label="到期时间" width="120" show-overflow-tooltip></el-table-column> |
|
|
|
<el-table-column sortable prop="startDeptName" label="发起部门" width="150" show-overflow-tooltip></el-table-column> |
|
|
|
<el-table-column prop="suspensionState" label="状态" min-width="80" :formatter="formatterSuspensionState"></el-table-column> |
|
|
|
<el-table-column sortable prop="planFinishTime" label="到期时间" width="120" show-overflow-tooltip> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column sortable prop="startDeptName" label="发起部门" width="150" show-overflow-tooltip> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="suspensionState" label="状态" min-width="80" :formatter="formatterSuspensionState"> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="操作" :width="screenWidth<500?80:160" fixed="right"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button type="primary" @click="showTasksInfo( scope.row,scope.$index)">详情</el-button> |
|
|
|
@ -186,32 +170,33 @@ |
|
|
|
更多<i class="el-icon-arrow-down el-icon--right"></i> |
|
|
|
</span> |
|
|
|
<el-dropdown-menu slot="dropdown"> |
|
|
|
<el-dropdown-item icon="el-icon-setting" v-if="scope.row.suspensionState=='1'" :command="{type:'handleSuspend',row:scope.row}">挂起流程</el-dropdown-item> |
|
|
|
<el-dropdown-item icon="el-icon-success" v-if="scope.row.suspensionState=='2'" :command="{type:'handleActivite',index:scope.$index,row:scope.row}">激活流程</el-dropdown-item> |
|
|
|
<el-dropdown-item icon="el-icon-remove" :command="{type:'handleDel',index:scope.$index,row:scope.row}">删除</el-dropdown-item> |
|
|
|
<el-dropdown-item icon="el-icon-setting" v-if="scope.row.suspensionState=='1'" |
|
|
|
:command="{type:'handleSuspend',row:scope.row}">挂起流程</el-dropdown-item> |
|
|
|
<el-dropdown-item icon="el-icon-success" v-if="scope.row.suspensionState=='2'" |
|
|
|
:command="{type:'handleActivite',index:scope.$index,row:scope.row}">激活流程</el-dropdown-item> |
|
|
|
<el-dropdown-item icon="el-icon-remove" |
|
|
|
:command="{type:'handleDel',index:scope.$index,row:scope.row}">删除</el-dropdown-item> |
|
|
|
</el-dropdown-menu> |
|
|
|
</el-dropdown> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</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> |
|
|
|
</el-row> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col v-if="showCalendar==true" :xs="24" :sm="24" :md="21" :lg="21" :xl="21"> |
|
|
|
<el-col v-if="showCalendar==true"> |
|
|
|
|
|
|
|
<el-calendar v-loading="listLoading" v-model="filters.calendarDate"> |
|
|
|
<!-- 这里使用的是 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="calendar-cell-data"> {{ data.day.split('-')[2] }}{{ data.isSelected ? '✔️' : ''}} |
|
|
|
<div v-for=" (i,index) in showCalendarDataTips(date,data)" :key="index"> |
|
|
|
<el-popover |
|
|
|
placement="right" |
|
|
|
trigger="hover"> |
|
|
|
<el-popover placement="right" trigger="hover"> |
|
|
|
<el-row> |
|
|
|
<el-col> |
|
|
|
<el-tag v-for=" tag in i.tags" :key="tag.id">{{tag.tagName+'('+tag.count+')'}}</el-tag> |
|
|
|
@ -221,7 +206,9 @@ |
|
|
|
<el-table-column width="40" type="index"></el-table-column> |
|
|
|
<el-table-column sortable min-width="250" property="mainTitle" label="流程【任务】(点击详情)"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-link type="primary" @click.stop="showTasksInfo( scope.row,scope.$index)">{{scope.row.mainTitle}}【{{scope.row.taskName}}】</el-link> |
|
|
|
<el-link type="primary" @click.stop="showTasksInfo( scope.row,scope.$index)"> |
|
|
|
{{scope.row.mainTitle}}【{{scope.row.taskName}}】 |
|
|
|
</el-link> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column sortable prop="assigneeName" label="执行人" min-width="100"></el-table-column> |
|
|
|
@ -236,16 +223,24 @@ |
|
|
|
</el-table-column> |
|
|
|
<el-table-column sortable min-width="120" property="tagNames" label="标签"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div v-if="scope.row.tagNames"><el-tag effect="light" type="" v-for="(tagName,index) in scope.row.tagNames.split(',')" :key="index">{{tagName}}</el-tag> </div> |
|
|
|
<div v-if="scope.row.tagNames"> |
|
|
|
<el-tag effect="light" type="" v-for="(tagName,index) in scope.row.tagNames.split(',')" |
|
|
|
:key="index">{{tagName}}</el-tag> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column sortable min-width="100" property="planFinishTime" label="到期时间" ></el-table-column> |
|
|
|
<el-table-column sortable min-width="100" property="planFinishTime" label="到期时间"> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<div slot="reference"> |
|
|
|
<el-tag effect="dark" type="info" v-if="i.startTasksCount>0">{{'开始:'+i.startTasksCount}}</el-tag> |
|
|
|
<el-tag effect="dark" type="warning" v-if="i.planFinishTasksCount>0">{{'到期:'+i.planFinishTasksCount}}</el-tag> |
|
|
|
<el-tag effect="dark" type="success" v-if="i.runningTasksCount>0">{{'执行中:'+i.runningTasksCount}}</el-tag> |
|
|
|
<el-tag effect="dark" type="danger" v-if="i.delayTasksCount>0">{{'延期:'+i.delayTasksCount}}</el-tag> |
|
|
|
<el-tag effect="dark" type="warning" v-if="i.planFinishTasksCount>0"> |
|
|
|
{{'到期:'+i.planFinishTasksCount}} |
|
|
|
</el-tag> |
|
|
|
<el-tag effect="dark" type="success" v-if="i.runningTasksCount>0">{{'执行中:'+i.runningTasksCount}} |
|
|
|
</el-tag> |
|
|
|
<el-tag effect="dark" type="danger" v-if="i.delayTasksCount>0">{{'延期:'+i.delayTasksCount}} |
|
|
|
</el-tag> |
|
|
|
</div> |
|
|
|
</el-popover> |
|
|
|
</div> |
|
|
|
@ -254,27 +249,28 @@ |
|
|
|
</template> |
|
|
|
</el-calendar> |
|
|
|
</el-col> |
|
|
|
<el-dialog append-to-body |
|
|
|
title="选择员工" |
|
|
|
:visible.sync="userSelectVisible" |
|
|
|
width="60%"> |
|
|
|
<users-select :select-userids="filters.assignee?[filters.assignee.userid]:[]" @confirm="onUserSelected"></users-select> |
|
|
|
<el-dialog append-to-body title="选择员工" :visible.sync="userSelectVisible" width="60%"> |
|
|
|
<users-select :select-userids="filters.assignee?[filters.assignee.userid]:[]" @confirm="onUserSelected"> |
|
|
|
</users-select> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<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> |
|
|
|
<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> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
<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' :visible="sendSmsVisible" @cancel="sendSmsVisible=false" ></send-sms> |
|
|
|
<send-sms :sms-body-params="smsBodyParams" :sms-user-list="smsUserList" :load-phoneno-by-userid='true' |
|
|
|
:visible="sendSmsVisible" @cancel="sendSmsVisible=false"></send-sms> |
|
|
|
</el-dialog> |
|
|
|
<!--编辑 Execution act_ru_execution界面--> |
|
|
|
<el-dialog title="任务详情" :visible.sync="editFormVisible" fullscreen :width="dialogWidth()" :close-on-click-modal="false"> |
|
|
|
<procinst-parames-execution-set :companyEmployees="companyEmployees" :companyDepts="companyDepts" :taskInfo='editForm' :isArchive="isArchive" :procDefId="editForm.procDefId" :procInstId="editForm.procInstId" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></procinst-parames-execution-set> |
|
|
|
<el-dialog title="任务详情" :visible.sync="editFormVisible" fullscreen :width="dialogWidth()" |
|
|
|
:close-on-click-modal="false"> |
|
|
|
<procinst-parames-execution-set :companyEmployees="companyEmployees" :companyDepts="companyDepts" |
|
|
|
:taskInfo='editForm' :isArchive="isArchive" :procDefId="editForm.procDefId" :procInstId="editForm.procInstId" |
|
|
|
:visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"> |
|
|
|
</procinst-parames-execution-set> |
|
|
|
</el-dialog> |
|
|
|
</el-row> |
|
|
|
</section> |
|
|
|
@ -283,15 +279,32 @@ |
|
|
|
<script> |
|
|
|
import util from '@/common/js/util'; //全局公共库 |
|
|
|
//import { getCompanyEmployees,getCompanyDepts,selectCacheOptions,getDefaultValue,getCodeName } from '../../../../../api/common/code';//下拉框数据查询 |
|
|
|
import { listExecution, activiteExecution, suspendExecution,delExecution } from '@/api/mdp/workflow/ru/execution'; |
|
|
|
import { |
|
|
|
listExecution, |
|
|
|
activiteExecution, |
|
|
|
suspendExecution, |
|
|
|
delExecution |
|
|
|
} from '@/api/mdp/workflow/ru/execution'; |
|
|
|
import ProcinstParamesExecutionSet from '../procinstParames/ProcinstParamesExecutionSet'; //流程参数加载 |
|
|
|
import { listCategorys } from '@/api/mdp/workflow/re/procdef'; |
|
|
|
import { batchInsertOrDeleteTags } from '@/api/mdp/workflow/ru/procinstTag'; |
|
|
|
import { |
|
|
|
listCategorys |
|
|
|
} from '@/api/mdp/workflow/re/procdef'; |
|
|
|
import { |
|
|
|
batchInsertOrDeleteTags |
|
|
|
} from '@/api/mdp/workflow/ru/procinstTag'; |
|
|
|
import Sticky from '@/components/Sticky' // 粘性header组件 |
|
|
|
import { listUser } from '@/api/mdp/sys/user';//下拉框数据查询 |
|
|
|
import { listDept } from '@/api/mdp/sys/dept';//下拉框数据查询 |
|
|
|
import { mapGetters } from 'vuex' |
|
|
|
import { createShortToken } from '@/api/login';//下拉框数据查询 |
|
|
|
import { |
|
|
|
listUser |
|
|
|
} from '@/api/mdp/sys/user'; //下拉框数据查询 |
|
|
|
import { |
|
|
|
listDept |
|
|
|
} from '@/api/mdp/sys/dept'; //下拉框数据查询 |
|
|
|
import { |
|
|
|
mapGetters |
|
|
|
} from 'vuex' |
|
|
|
import { |
|
|
|
createShortToken |
|
|
|
} from '@/api/login'; //下拉框数据查询 |
|
|
|
import SendSms from '@/views/mdp/sms/SendSms'; //流程参数加载 |
|
|
|
import VueClipboard from 'vue-clipboard2' |
|
|
|
import Vue from 'vue' |
|
|
|
@ -325,7 +338,8 @@ |
|
|
|
procCategory: '', |
|
|
|
categoryTreeNodes: [], |
|
|
|
tags: [], |
|
|
|
startTimeRanger:[util.formatDate.format(fromStartTime,'yyyy-MM-dd'),util.formatDate.format(toStartTime,'yyyy-MM-dd')], |
|
|
|
startTimeRanger: [util.formatDate.format(fromStartTime, 'yyyy-MM-dd'), util.formatDate.format(toStartTime, |
|
|
|
'yyyy-MM-dd')], |
|
|
|
planFinishTimeRanger: [], |
|
|
|
assignee: null, //已选中人员 |
|
|
|
calendarDate: util.formatDate.format(toStartTime, 'yyyy-MM-dd'), |
|
|
|
@ -397,7 +411,11 @@ |
|
|
|
options: {}, //下拉选择框的所有静态数据 options.sex,options.project |
|
|
|
|
|
|
|
smsBodyParams: [], //需要发短信的短信内容参数[assigneeName,taskName,createTime,starter] |
|
|
|
smsUserList:[{userid:'',phoneno:'',username:''}],//接受短信的人 |
|
|
|
smsUserList: [{ |
|
|
|
userid: '', |
|
|
|
phoneno: '', |
|
|
|
username: '' |
|
|
|
}], //接受短信的人 |
|
|
|
sendSmsVisible: false, //是否显示发短信对话框 |
|
|
|
weixinContentVisible: false, //微信内容面板是否显示 |
|
|
|
weixinContent: '', //微信消息体 |
|
|
|
@ -405,13 +423,73 @@ |
|
|
|
drawer: false, |
|
|
|
//新增execution界面初始化数据 |
|
|
|
addForm: { |
|
|
|
id:'',rev:'',procInstId:'',businessKey:'',parentId:'',procDefId:'',superExec:'',actId:'',isActive:'',isConcurrent:'',isScope:'',isEventScope:'',suspensionState:'',cachedEntState:'',tenantId:'',name:'',lockTime:'',rootProcInstId:'',isMiRoot:'',startTime:'',startUserId:'',deptid:'',isCountEnabled:'',evtSubscrCount:'',taskCount:'',jobCount:'',timerJobCount:'',suspJobCount:'',deadletterJobCount:'',varCount:'',idLinkCount:'' |
|
|
|
id: '', |
|
|
|
rev: '', |
|
|
|
procInstId: '', |
|
|
|
businessKey: '', |
|
|
|
parentId: '', |
|
|
|
procDefId: '', |
|
|
|
superExec: '', |
|
|
|
actId: '', |
|
|
|
isActive: '', |
|
|
|
isConcurrent: '', |
|
|
|
isScope: '', |
|
|
|
isEventScope: '', |
|
|
|
suspensionState: '', |
|
|
|
cachedEntState: '', |
|
|
|
tenantId: '', |
|
|
|
name: '', |
|
|
|
lockTime: '', |
|
|
|
rootProcInstId: '', |
|
|
|
isMiRoot: '', |
|
|
|
startTime: '', |
|
|
|
startUserId: '', |
|
|
|
deptid: '', |
|
|
|
isCountEnabled: '', |
|
|
|
evtSubscrCount: '', |
|
|
|
taskCount: '', |
|
|
|
jobCount: '', |
|
|
|
timerJobCount: '', |
|
|
|
suspJobCount: '', |
|
|
|
deadletterJobCount: '', |
|
|
|
varCount: '', |
|
|
|
idLinkCount: '' |
|
|
|
}, |
|
|
|
|
|
|
|
editFormVisible: false, //编辑界面是否显示 |
|
|
|
//编辑execution界面初始化数据 |
|
|
|
editForm: { |
|
|
|
id:'',rev:'',procInstId:'',businessKey:'',parentId:'',procDefId:'',superExec:'',actId:'',isActive:'',isConcurrent:'',isScope:'',isEventScope:'',suspensionState:'',cachedEntState:'',tenantId:'',name:'',lockTime:'',rootProcInstId:'',isMiRoot:'',startTime:'',startUserId:'',deptid:'',isCountEnabled:'',evtSubscrCount:'',taskCount:'',jobCount:'',timerJobCount:'',suspJobCount:'',deadletterJobCount:'',varCount:'',idLinkCount:'' |
|
|
|
id: '', |
|
|
|
rev: '', |
|
|
|
procInstId: '', |
|
|
|
businessKey: '', |
|
|
|
parentId: '', |
|
|
|
procDefId: '', |
|
|
|
superExec: '', |
|
|
|
actId: '', |
|
|
|
isActive: '', |
|
|
|
isConcurrent: '', |
|
|
|
isScope: '', |
|
|
|
isEventScope: '', |
|
|
|
suspensionState: '', |
|
|
|
cachedEntState: '', |
|
|
|
tenantId: '', |
|
|
|
name: '', |
|
|
|
lockTime: '', |
|
|
|
rootProcInstId: '', |
|
|
|
isMiRoot: '', |
|
|
|
startTime: '', |
|
|
|
startUserId: '', |
|
|
|
deptid: '', |
|
|
|
isCountEnabled: '', |
|
|
|
evtSubscrCount: '', |
|
|
|
taskCount: '', |
|
|
|
jobCount: '', |
|
|
|
timerJobCount: '', |
|
|
|
suspJobCount: '', |
|
|
|
deadletterJobCount: '', |
|
|
|
varCount: '', |
|
|
|
idLinkCount: '' |
|
|
|
}, |
|
|
|
/**begin 自定义属性请在下面加 请加备注**/ |
|
|
|
companyEmployees: [], |
|
|
|
@ -535,7 +613,10 @@ |
|
|
|
this.pageInfo.count = false; |
|
|
|
this.executions = res.data.data; |
|
|
|
} else { |
|
|
|
this.$message({ message: tips.msg, type: 'error' }); |
|
|
|
this.$message({ |
|
|
|
message: tips.msg, |
|
|
|
type: 'error' |
|
|
|
}); |
|
|
|
} |
|
|
|
this.listLoading = false; |
|
|
|
}).catch(() => { |
|
|
|
@ -551,7 +632,12 @@ |
|
|
|
this.editForm = task; |
|
|
|
|
|
|
|
this.editForm = Object.assign({}, row); |
|
|
|
this.$router.push({name:'ProcinstParamesExecutionSetRoute',params:{taskInfo:task}}); |
|
|
|
this.$router.push({ |
|
|
|
name: 'ProcinstParamesExecutionSetRoute', |
|
|
|
params: { |
|
|
|
taskInfo: task |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
//显示新增界面 Execution act_ru_execution |
|
|
|
showAdd: function() { |
|
|
|
@ -573,7 +659,11 @@ |
|
|
|
type: 'warning' |
|
|
|
}).then(() => { |
|
|
|
this.listLoading = true; |
|
|
|
let params = { procInstId: row.procInstId,tenantId:row.tenantId,startUserid:row.userid }; |
|
|
|
let params = { |
|
|
|
procInstId: row.procInstId, |
|
|
|
tenantId: row.tenantId, |
|
|
|
startUserid: row.userid |
|
|
|
}; |
|
|
|
delExecution(params).then((res) => { |
|
|
|
this.listLoading = false; |
|
|
|
var tips = res.data.tips; |
|
|
|
@ -581,7 +671,10 @@ |
|
|
|
this.pageInfo.total = 0; |
|
|
|
this.getExecutions(); |
|
|
|
} |
|
|
|
this.$message({ message: tips.msg, type: tips.isOk?'success':'error' }); |
|
|
|
this.$message({ |
|
|
|
message: tips.msg, |
|
|
|
type: tips.isOk ? 'success' : 'error' |
|
|
|
}); |
|
|
|
|
|
|
|
}); |
|
|
|
}).catch(() => { |
|
|
|
@ -607,7 +700,9 @@ |
|
|
|
type: 'warning' |
|
|
|
}).then(() => { |
|
|
|
this.listLoading = true; |
|
|
|
let params = { procInstId: row.procInstId }; |
|
|
|
let params = { |
|
|
|
procInstId: row.procInstId |
|
|
|
}; |
|
|
|
activiteExecution(params).then((res) => { |
|
|
|
this.listLoading = false; |
|
|
|
var tips = res.data.tips; |
|
|
|
@ -615,7 +710,10 @@ |
|
|
|
this.pageInfo.total = 0; |
|
|
|
this.getExecutions(); |
|
|
|
} |
|
|
|
this.$message({ message: tips.msg, type: tips.isOk?'success':'error' }); |
|
|
|
this.$message({ |
|
|
|
message: tips.msg, |
|
|
|
type: tips.isOk ? 'success' : 'error' |
|
|
|
}); |
|
|
|
|
|
|
|
}); |
|
|
|
}).catch(() => { |
|
|
|
@ -629,7 +727,9 @@ |
|
|
|
type: 'warning' |
|
|
|
}).then(() => { |
|
|
|
this.listLoading = true; |
|
|
|
let params = { procInstId: row.procInstId }; |
|
|
|
let params = { |
|
|
|
procInstId: row.procInstId |
|
|
|
}; |
|
|
|
suspendExecution(params).then((res) => { |
|
|
|
this.listLoading = false; |
|
|
|
var tips = res.data.tips; |
|
|
|
@ -637,7 +737,10 @@ |
|
|
|
this.pageInfo.total = 0; |
|
|
|
this.getExecutions(); |
|
|
|
} |
|
|
|
this.$message({ message: tips.msg, type: tips.isOk?'success':'error' }); |
|
|
|
this.$message({ |
|
|
|
message: tips.msg, |
|
|
|
type: tips.isOk ? 'success' : 'error' |
|
|
|
}); |
|
|
|
|
|
|
|
}); |
|
|
|
}).catch(() => { |
|
|
|
@ -684,7 +787,12 @@ |
|
|
|
procInstId: row.procInstId, |
|
|
|
branchId: row.branchId, |
|
|
|
userid: this.userInfo.userid, |
|
|
|
tags:tags.map(i=>{return {tagId:i.tagId,tagName:i.tagName}}) |
|
|
|
tags: tags.map(i => { |
|
|
|
return { |
|
|
|
tagId: i.tagId, |
|
|
|
tagName: i.tagName |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
procinstTagsVos.push(procinstTags); |
|
|
|
}) |
|
|
|
@ -746,37 +854,59 @@ |
|
|
|
|
|
|
|
showSendSms: function() { |
|
|
|
if (this.sels.length > 1) { |
|
|
|
this.$message({ message: '一次只能给一个人发短信', type: 'error' }); |
|
|
|
this.$message({ |
|
|
|
message: '一次只能给一个人发短信', |
|
|
|
type: 'error' |
|
|
|
}); |
|
|
|
} else if (this.sels.length < 1) { |
|
|
|
this.$message({ message: '请选择一条任务', type: 'error' }); |
|
|
|
this.$message({ |
|
|
|
message: '请选择一条任务', |
|
|
|
type: 'error' |
|
|
|
}); |
|
|
|
} else { |
|
|
|
let task = this.sels[0]; |
|
|
|
this.smsBodyParams = [task.assigneeName, task.mainTitle + "-" + task.taskName, task.createTime, task.userid] |
|
|
|
this.smsUserList=[{userid:task.assignee}]; |
|
|
|
this.smsUserList = [{ |
|
|
|
userid: task.assignee |
|
|
|
}]; |
|
|
|
this.sendSmsVisible = true; |
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
showWeixinTask: function() { |
|
|
|
if (this.sels.length > 1) { |
|
|
|
this.$message({ message: '一次只能给一个人发信', type: 'error' }); |
|
|
|
this.$message({ |
|
|
|
message: '一次只能给一个人发信', |
|
|
|
type: 'error' |
|
|
|
}); |
|
|
|
this.weixinContentVisible = false; |
|
|
|
return false; |
|
|
|
} else if (this.sels.length < 1) { |
|
|
|
this.$message({ message: '请选择一条任务', type: 'error' }); |
|
|
|
this.$message({ |
|
|
|
message: '请选择一条任务', |
|
|
|
type: 'error' |
|
|
|
}); |
|
|
|
this.weixinContentVisible = false; |
|
|
|
return false; |
|
|
|
} else { |
|
|
|
let task = this.sels[0]; |
|
|
|
//var url=window.location.href; |
|
|
|
let url=window.location.protocol+"//"+window.location.host+"/oa/"+process.env.VERSION+"/#/mdp/workflow/ru/task/TaskListAssigneeToMe"; |
|
|
|
let url = window.location.protocol + "//" + window.location.host + "/oa/" + process.env.VERSION + |
|
|
|
"/#/mdp/workflow/ru/task/TaskListAssigneeToMe"; |
|
|
|
|
|
|
|
createShortToken({userid:task.assignee,branchId:this.userInfo.branchId}).then(res=>{ |
|
|
|
createShortToken({ |
|
|
|
userid: task.assignee, |
|
|
|
branchId: this.userInfo.branchId |
|
|
|
}).then(res => { |
|
|
|
if (res.data.tips.isOk) { |
|
|
|
var userToken = res.data.userToken; |
|
|
|
this.weixinContent=task.assigneeName+"您好,您有任务【"+task.mainTitle+"-"+task.taskName +"】待处理,请登陆OA系统或者点击以下链接处理。"+url+"?userToken="+userToken; |
|
|
|
this.weixinContent = task.assigneeName + "您好,您有任务【" + task.mainTitle + "-" + task.taskName + |
|
|
|
"】待处理,请登陆OA系统或者点击以下链接处理。" + url + "?userToken=" + userToken; |
|
|
|
this.$copyText(this.weixinContent).then(e => { |
|
|
|
this.$message({ message: '已拷贝内容,您可黏贴到微信中', type: 'success' }); |
|
|
|
this.$message({ |
|
|
|
message: '已拷贝内容,您可黏贴到微信中', |
|
|
|
type: 'success' |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
}); |
|
|
|
@ -785,23 +915,34 @@ |
|
|
|
}, |
|
|
|
showWeixin: function() { |
|
|
|
if (this.sels.length > 1) { |
|
|
|
this.$message({ message: '一次只能给一个人发信', type: 'error' }); |
|
|
|
this.$message({ |
|
|
|
message: '一次只能给一个人发信', |
|
|
|
type: 'error' |
|
|
|
}); |
|
|
|
this.weixinContentVisible = false; |
|
|
|
return false; |
|
|
|
} else if (this.sels.length < 1) { |
|
|
|
this.$message({ message: '请选择一条任务', type: 'error' }); |
|
|
|
this.$message({ |
|
|
|
message: '请选择一条任务', |
|
|
|
type: 'error' |
|
|
|
}); |
|
|
|
this.weixinContentVisible = false; |
|
|
|
return false; |
|
|
|
} else { |
|
|
|
let task = this.sels[0]; |
|
|
|
//var url=window.location.href; |
|
|
|
let url=window.location.protocol+"//"+window.location.host+"/oa/"+process.env.VERSION+"/#/mdp/workflow/ru/task/TaskListAssigneeToMe"; |
|
|
|
let url = window.location.protocol + "//" + window.location.host + "/oa/" + process.env.VERSION + |
|
|
|
"/#/mdp/workflow/ru/task/TaskListAssigneeToMe"; |
|
|
|
|
|
|
|
createShortToken({userid:task.assignee,branchId:this.userInfo.branchId}).then(res=>{ |
|
|
|
createShortToken({ |
|
|
|
userid: task.assignee, |
|
|
|
branchId: this.userInfo.branchId |
|
|
|
}).then(res => { |
|
|
|
if (res.data.tips.isOk) { |
|
|
|
var userToken = res.data.userToken; |
|
|
|
this.weixinContentVisible = true; |
|
|
|
this.weixinContent=task.assigneeName+"您好,您有任务【"+task.mainTitle+"-"+task.taskName +"】待处理,请登陆OA系统或者点击以下链接处理。"+url+"?userToken="+userToken; |
|
|
|
this.weixinContent = task.assigneeName + "您好,您有任务【" + task.mainTitle + "-" + task.taskName + |
|
|
|
"】待处理,请登陆OA系统或者点击以下链接处理。" + url + "?userToken=" + userToken; |
|
|
|
|
|
|
|
} |
|
|
|
}); |
|
|
|
@ -811,22 +952,30 @@ |
|
|
|
}, |
|
|
|
showOaMsg: function() { |
|
|
|
if (this.sels.length > 1) { |
|
|
|
this.$message({ message: '一次只能给一个人发信', type: 'error' }); |
|
|
|
this.$message({ |
|
|
|
message: '一次只能给一个人发信', |
|
|
|
type: 'error' |
|
|
|
}); |
|
|
|
return false; |
|
|
|
} else if (this.sels.length < 1) { |
|
|
|
this.$message({ message: '请选择一条任务', type: 'error' }); |
|
|
|
this.$message({ |
|
|
|
message: '请选择一条任务', |
|
|
|
type: 'error' |
|
|
|
}); |
|
|
|
return false; |
|
|
|
} else { |
|
|
|
let task = this.sels[0]; |
|
|
|
var msgBody = task.assigneeName + "您好,您有任务【" + task.mainTitle + "-" + task.taskName + "】待处理,请登陆OA系统处理"; |
|
|
|
|
|
|
|
let href=window.location.protocol+"//"+window.location.host+"/im/"+process.env.VERSION+"/#/mdp/im/messages/messageChat?toUserid="+task.assignee+"&msgBody="+msgBody |
|
|
|
let href = window.location.protocol + "//" + window.location.host + "/im/" + process.env.VERSION + |
|
|
|
"/#/mdp/im/messages/messageChat?toUserid=" + task.assignee + "&msgBody=" + msgBody |
|
|
|
window.open(href, '_blank'); |
|
|
|
} |
|
|
|
}, |
|
|
|
doCopyWeixinUrl: function() { |
|
|
|
this.weixinContentVisible = false; |
|
|
|
let href=window.location.protocol+"//"+window.location.host+"/oa/"+process.env.VERSION+"/#/mdp/workflow/ru/task/TaskListAssigneeToMe"; |
|
|
|
let href = window.location.protocol + "//" + window.location.host + "/oa/" + process.env.VERSION + |
|
|
|
"/#/mdp/workflow/ru/task/TaskListAssigneeToMe"; |
|
|
|
|
|
|
|
this.$copyText(href).then(e => { |
|
|
|
|
|
|
|
@ -1032,9 +1181,9 @@ |
|
|
|
const data = this.formatJson(filterVal, list); |
|
|
|
var filename = "流程中心"; |
|
|
|
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({ |
|
|
|
header: tHeader, |
|
|
|
@ -1072,11 +1221,18 @@ |
|
|
|
'procinst-parames-execution-set': ProcinstParamesExecutionSet, |
|
|
|
'sticky': Sticky, |
|
|
|
'send-sms': SendSms, |
|
|
|
CategoryTree,TagMng,UsersSelect |
|
|
|
CategoryTree, |
|
|
|
TagMng, |
|
|
|
UsersSelect |
|
|
|
//在下面添加其它组件 |
|
|
|
}, |
|
|
|
activated(){ |
|
|
|
this.searchExecutions(); |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
listCategorys({tenantId:this.userInfo.branchId}).then(res=>{ |
|
|
|
listCategorys({ |
|
|
|
tenantId: this.userInfo.branchId |
|
|
|
}).then(res => { |
|
|
|
this.categorys = res.data.data |
|
|
|
}) |
|
|
|
|
|
|
|
@ -1094,6 +1250,7 @@ |
|
|
|
var subHeight = 70 / 1000 * window.innerHeight; |
|
|
|
this.tableHeight = window.innerHeight - subHeight; |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
if (this.isMyStart) { |
|
|
|
this.filters.filterType = "startUserId" |
|
|
|
@ -1106,15 +1263,12 @@ |
|
|
|
} else if (this.isAll) { |
|
|
|
|
|
|
|
} |
|
|
|
this.searchExecutions(); |
|
|
|
}); |
|
|
|
//加载下拉列表 如有需要去年注释 |
|
|
|
|
|
|
|
|
|
|
|
/**在下面写其它函数***/ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
</script> |
|
|
|
|
|
|
|
<style scoped> |
|
|
|
@ -1122,6 +1276,7 @@ |
|
|
|
cursor: pointer; |
|
|
|
color: #409EFF; |
|
|
|
} |
|
|
|
|
|
|
|
.el-icon-arrow-down { |
|
|
|
font-size: 12px; |
|
|
|
} |
|
|
|
@ -1131,13 +1286,15 @@ |
|
|
|
margin-top: 10px; |
|
|
|
margin-bottom: 0px; |
|
|
|
} |
|
|
|
|
|
|
|
.filters-label { |
|
|
|
font-size: 14px; |
|
|
|
color: black; |
|
|
|
font-weight: bold; |
|
|
|
} |
|
|
|
|
|
|
|
.more-filter-item { |
|
|
|
margin: 20px 20px; |
|
|
|
margin: 20px 0px; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@ -1145,12 +1302,64 @@ |
|
|
|
margin: 2px 2px; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
.more-filter-item button { |
|
|
|
margin: 2px 2px; |
|
|
|
margin: 2px 0px; |
|
|
|
} |
|
|
|
|
|
|
|
.more-label-font { |
|
|
|
text-align: center; |
|
|
|
float: left; |
|
|
|
padding-top:5px; |
|
|
|
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> |
|
|
|
.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> |