Merge remote-tracking branch 'origin/yuekuo' into zhoulingpo

# Conflicts:
#	src/router/modules/userCenter.js
#	src/views/Report/ReportList.vue
#	src/views/Report/ReportManager.vue
#	src/views/userCenter/processCenter.vue
This commit is contained in:
zhoulingpo
2023-04-19 16:40:58 +08:00
15 changed files with 1822 additions and 1425 deletions
+1
View File
@@ -9,6 +9,7 @@
"vueui": "vue ui"
},
"dependencies": {
"@johmun/vue-tags-input": "^2.1.0",
"axios": "^0.24.0",
"core-js": "^3.19.1",
"echarts": "^5.2.2",
+11 -5
View File
@@ -18,10 +18,10 @@ export default {
params: data
})
},
// 标签管理
// 标签增加
labelAdd (data) {
return request({
url: '/api/label/add',
url: 'api/tree-label/add',
method: 'POST',
data
})
@@ -29,7 +29,7 @@ export default {
// 标签列表
labelList (data) {
return request({
url: '/api/label/list',
url: 'api/tree-label/list',
method: 'GET',
params: data
})
@@ -37,11 +37,16 @@ export default {
// 标签删除|单个
labelDeleteId (data) {
return request({
url: `/api/label/delete/${data.id}`,
url: `api/tree-label/${data.id}`,
method: 'POST'
})
},
labelUpdate(){
return request({
url: 'api/tree-label/update',
method: 'POST'
})
},
// 新增或编辑报告
reportAdd (data) {
return request({
@@ -129,4 +134,5 @@ export default {
params: data
})
}
//
}
+3
View File
@@ -75,5 +75,8 @@ Vue.config.productionTip = false
new Vue({
router,
store,
beforeCreate(){
Vue.prototype.$bus = this //安装全局事件总线
},
render: h => h(App)
}).$mount('#app')
+32 -27
View File
@@ -1,30 +1,35 @@
const routes = [
// 用户中心管理
{
path: '/userCenter',
name: 'userCenter',
component: () => import('../../views/Layout.vue'),
children: [
// 流程中心
{
path: 'processCenter',
name: 'processCenter',
component: () => import('../../views/userCenter/processCenter.vue'),
meta: {
crumb: ['流程中心']
// 用户中心管理
{
path: '/userCenter',
name: 'userCenter',
component: () => import('../../views/Layout.vue'),
children: [
// 流程中心
{
path: 'processCenter',
name: 'processCenter',
component: () => import('../../views/userCenter/processCenter.vue'),
meta: {
crumb: ['流程中心']
}
},
// 流程配置
{
path: 'processConfig',
name: 'processConfig',
component: () => import('../../views/userCenter/processConfig/index.vue'),
meta: {
crumb: ['流程配置']
}
},
{
path:'monitorViews',
name:'monitorViews',
component: () => import('../../views/userCenter/processCenter/monitorProcesses/monitorViews.vue')
}
},
// 流程配置
{
path: 'processConfig',
name: 'processConfig',
component: () => import('../../views/userCenter/processConfig/index.vue'),
meta: {
crumb: ['流程配置']
}
}
]
}
]
]
}
]
export default routes
export default routes
+120 -20
View File
@@ -5,9 +5,15 @@
</div>
<div class="tag-search">
<el-row>
<el-col :span="24">
<el-col :span="6">
<div class="tag-item">
<label class="tag-title">报告年份</label>
<label class="tag-title">关键词:</label>
<el-input v-model="q.keyContent" placeholder="请输入报告名称"></el-input>
</div>
</el-col>
<el-col :span="6">
<div class="tag-item">
<label class="tag-title">报告年份</label>
<el-select v-model="q.year" multiple collapse-tags placeholder="请选择报告年份">
<template v-for="item in yearList">
<el-option :label="item" :value="item" :key="item"></el-option>
@@ -15,7 +21,18 @@
</el-select>
</div>
</el-col>
<el-col :span="24">
<el-col :span="6">
<div class="tag-item">
<label class="tag-title">报告名称:</label>
<el-input v-model="q.name" placeholder="请输入报告名称"></el-input>
</div>
</el-col>
<el-col :span="6" align="right" class="tag-btns">
<el-button type="primary" @click="search">查询</el-button>
<el-button type="default" @click="reset">重置</el-button>
</el-col>
<!-- <el-col :span="24">
<div class="tag-item">
<el-tooltip :content="tagData[1].name" placement="top">
<label class="tag-title">{{ tagData[1].name }}</label>
@@ -34,8 +51,8 @@
:class="{'el-icon-arrow-down': !tagData[1].tagShow, 'el-icon-arrow-up': tagData[1].tagShow}"></i>
</div>
</div>
</el-col>
<el-col :span="24">
</el-col> -->
<!-- <el-col :span="24">
<div class="tag-item">
<el-tooltip :content="tagData[2].name" placement="top">
<label class="tag-title">{{ tagData[2].name }}</label>
@@ -54,8 +71,8 @@
:class="{'el-icon-arrow-down': !tagData[2].tagShow, 'el-icon-arrow-up': tagData[2].tagShow}"></i>
</div>
</div>
</el-col>
<el-col :span="24">
</el-col> -->
<!-- <el-col :span="24">
<div class="tag-item">
<el-tooltip :content="tagData[3].name" placement="top">
<label class="tag-title">{{ tagData[3].name }}</label>
@@ -74,23 +91,31 @@
:class="{'el-icon-arrow-down': !tagData[3].tagShow, 'el-icon-arrow-up': tagData[3].tagShow}"></i>
</div>
</div>
</el-col>
<el-col :span="12">
<div class="tag-item">
<label class="tag-title">搜索:</label>
<el-input v-model="q.keyContent" placeholder="请输入搜索内容"></el-input>
</div>
</el-col>
<el-col :span="12" align="right" class="tag-btns">
<el-button type="primary" @click="search">查询</el-button>
<el-button type="default" @click="reset">重置</el-button>
</el-col>
</el-col> -->
</el-row>
</div>
<el-row class="tag-btn">
<el-button type="primary" size="big" @click="permissionApp">权限申请</el-button>
</el-row>
<div class="table">
<el-row>
<el-col :span="4" class="treeList">
<el-input placeholder="输入关键字进行过滤" v-model="filterText">
</el-input>
<el-tree
class="filter-tree"
:data="treeData"
show-checkbox
node-key="id"
default-expand-all
:filter-node-method="filterNode"
ref="tree"
>
</el-tree>
</el-col>
<el-col :span="19">
<vxe-table ref="xTable" :data="tableData" :empty-render="{name: 'NotData'}" align="center" border stripe v-table-min-height="'calc(100vh - 420px)'"
@checkbox-all="selectAllEvent" @checkbox-change="selectChangeEvent">
<vxe-column type="checkbox" width="60"></vxe-column>
@@ -116,12 +141,12 @@
<div class="tag-info">
<span class="icon-tag-item"><img src="@/assets/imgs/icon-time.png"
alt=""><span>{{row.year}}</span></span>
<span class="icon-tag-item"><img src="@/assets/imgs/icon-tag01.png"
<!-- <span class="icon-tag-item"><img src="@/assets/imgs/icon-tag01.png"
alt=""><span>{{row.labelOneName}}</span></span>
<span class="icon-tag-item"><img src="@/assets/imgs/icon-tag02.png"
alt=""><span>{{row.labelTwoName}}</span></span>
<span class="icon-tag-item"><img src="@/assets/imgs/icon-tag03.png"
alt=""><span>{{row.labelThreeName}}</span></span>
alt=""><span>{{row.labelThreeName}}</span></span> -->
<!--<span class="icon-tag-item"><span>{{(row.fileSize / 1024 / 1024).toFixed(2) }}MB</span></span>-->
</div>
</div>
@@ -134,6 +159,7 @@
<!-- <el-button type="text" @click="downloadRow(row)">下载</el-button>-->
</template>
</vxe-column>
</vxe-table>
<el-pagination
@size-change="handleSizeChange"
@@ -143,6 +169,12 @@
:page-size="q.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"/>
</el-col>
</el-row>
</div>
<!--预览-->
@@ -214,10 +246,78 @@ export default {
},
dialogPreview: false, // 预览
content: '',
filterText:'',
treeData: [
{
id: 0,
label: '根节点',
children: [
{
id: 1,
label: '一级 1',
children: [
{
id: 4,
label: '二级 1-1',
children: [
{
id: 9,
label: '三级 1-1-1'
},
{
id: 10,
label: '三级 1-1-2'
}
]
}
]
},
{
id: 2,
label: '一级 2',
children: [
{
id: 5,
label: '二级 2-1'
},
{
id: 6,
label: '二级 2-2'
}
]
},
{
id: 3,
label: '一级 3',
children: [
{
id: 7,
label: '二级 3-1'
},
{
id: 8,
label: '二级 3-2'
}
]
},
]
}
],
content: '',
checkIds: []
}
},
watch: {
filterText(val) {
this.$refs.tree.filter(val);
}
},
methods: {
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
selectAllEvent ({ checked }) {
const records = this.$refs.xTable.getCheckboxRecords()
this.checkIds = records.map(item => {
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,155 @@
<template>
<div>
<el-dialog title="新增/编辑标签" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
<div class="form">
<el-form ref="form" :model="form" label-width="80px" :rules="rule">
<el-form-item label="上级标签">
<el-cascader v-model="form.nodeLabel" placeholder="请选择上级标签" :options="cascaderOptions" filterable :props="{ checkStrictly: true }" clearable >
</el-cascader>
</el-form-item>
<el-form-item label="标签名称" prop="label">
<el-input v-model="form.label"></el-input>
</el-form-item>
<el-form-item label="排序">
<el-input v-model="form.orderNum"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input v-model="form.remark"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="cancel" class="btn">取消</el-button>
<el-button type="primary" @click="submitForm" class="btn">确定</el-button>
</el-form-item>
</el-form>
</div>
<!-- <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click=" submit"> </el-button>
</span> -->
</el-dialog>
</div>
</template>
<script>
export default {
name: 'labelModal',
data() {
return {
dialogVisible: false,
form: {
label:undefined,
name:'',
sort:'',
tip:''
},
cascaderOptions:[
],
rule: {
name: [
{ required: true, trigger: 'blur', message: '请输入标签名称' }
],
resource: [
{
required: true, trigger: 'change', message: '请选择标签属性'
}
]
},
};
},
methods: {
handleClose(done) {
// this.$confirm('确认关闭?')
// .then(_ => {
// done();
// })
// .catch(_ => {});
done();
},
open(node, data) {
this.dialogVisible = true
this.$api.report.labelList().then(res => {
console.log('666',res);
this.cascaderOptions=res.data
})
if (node && data) {
this.showAddOrUpdateLabel = true
this.form.nodeLabel = node.parent.data.label
this.form.label = data.label
this.form.orderNum = data.orderNum
this.form.remark = data.remark
this.form={...this.form}
this.$refs.form.clearValidate('name')
this.$forceUpdate()
} else {
this.form = {}
this.$forceUpdate()
}
},
cancel() {
this.dialogVisible = false
},
submitForm() {
this.$refs.form.validate((valid) => {
if (valid) {
this.form.parentId=this.form.nodeLabel[this.form.nodeLabel.length - 1]
delete this.form.nodeLabel
this.$api.report.labelAdd(this.form).then(res => {
})
this.dialogVisible = false
this.$bus.$emit('updataList')
}
})
}
}
}
</script>
<style lang="scss" scoped>
.form {
padding: 50px;
.btn {
margin-left: 40px;
width: 90px;
height: 40px;
border-radius: 30px;
margin-right: 30px;
}
}
.form ::v-deep .el-input__inner {
width: 90%
}
.form ::v-deep .el-select {
width: 90%;
}
.form ::v-deep .el-select .el-input__inner {
width: 100%;
}
::v-deep .el-form-item--mini .el-form-item__label {
line-height: 40px !important;
}
::v-deep .el-input__inner {
height: 40px;
line-height: 40px;
width: 80%;
}
::v-deep .el-cascader{
height: 40px !important;
line-height: 40px !important;
width: 90%;
}
::v-deep .el-cascader .el-input__inner {
height: 40px !important;
line-height: 40px !important;
width: 100%;
}
</style>
+68 -87
View File
@@ -1,123 +1,104 @@
<template>
<div class="centerBox content-height">
<div class="content">
<div class="title">
<span>流程中心</span>
</div>
<div class="search">
<el-row>
<el-col :span="20">
<div class="search-box-left">
<div class="">
<label>流程编号:</label>
<el-input v-model="form.id" placeholder="请输入流程编号"></el-input>
</div>
<div class="">
<label>流程名称:</label>
<el-input v-model="form.name" placeholder="请输入流程名称"></el-input>
</div>
</div>
</el-col>
<el-col :span="4" align="right">
<div class="search-box-right">
<div class="searchForm">
<div class="item">
<div>流程编号</div>
<el-input v-model="form.id" ></el-input>
</div>
<div class="item">
<div>流程名称</div>
<el-input v-model="form.name"></el-input>
</div>
<div class="item">
<el-button type="primary" @click="search">查询</el-button>
<el-button type="" @click="reset">重置</el-button>
</div>
</el-col>
</el-row>
</div>
</div>
<div class="tabs">
<tabs />
<tabs :tableData="tableData"/>
</div>
</div>
</template>
<script>
import tabs from '../userCenter/processCenter/tabs.vue'
export default {
name: 'processCenter',
components: {
tabs
},
data () {
return {
form: {}
}
},
created () {
},
mounted () {
},
methods: {
// 查询
search () {
// this.$api.processCenter.search({})
export default {
name:'processCenter',
components:{
tabs
},
data() {
return {
form: {},
tableData:[]
}
},
created () {
;
},
mounted () {
this.$bus.$on('clearForm',()=>{
this.form={}
});
},
// 重置
reset () {
this.form = {}
// this.$api.processCenter.reset({})
methods: {
//查询
search() {
this.$bus.$emit('getSearchItem',this.form)
// this.$api.processCenter.search({})
this.tableData=[{createTime:'1999-10-1'}]
},
//重置
reset(){
this.form={}
this.$forceUpdate()
this.$bus.$emit('getSearchItem',this.form)
this.tableData=[{createTime:'3000-10-1'}]
// this.$api.processCenter.reset({})
}
},
}
}
}
</script>
<style lang="scss" scoped>
.centerBox{
background-color: #fff;
height: 100%;
width: 100%;
.content{
min-height: calc(100vh - 60px - 20px);
box-shadow: 0 6px 11px 0 rgba(163, 163, 163, 0.2);
border-radius: 6px;
background: #FFFFFF;
.title {
border-bottom: 1px solid #EBEEF5;
height: 42px;
line-height: 42px;
margin: 0 18px 0 22px;
margin: 0 18px 0 22px;
span {
font-size: 16px;
font-weight: 600;
color: #262626;
}
}
.search {
.search-box-left {
padding-top: 20px;
display: flex;
justify-content: flex-start;
align-items: center;
label {
font-size: 14px;
font-weight: 400;
color: #595959;
margin-right: 5px;
padding-left: 22px;
}
::v-deep .el-input {
width: 167px;
margin-right: 5px;
}
@media screen and (max-width: 1366px) {
::v-deep .el-input {
width: 135px;
margin-right: 5px;
.searchForm{
width: 1200px;
display: flex;
align-items: center;
margin: 20px 0 0 22px;
.item{
width: 300px;
display: flex;
align-items: center;
}
}
}
.search-box-right {
padding-top: 20px;
display: flex;
justify-content: flex-end;
align-items: center;
padding-right: 14px;
}
}
}
.tabs{
margin: 20px 20px 5px;
margin: 20px 0 0 13px;
}
}
::v-deep .el-input{
width: 200px;
}
</style>
@@ -1,129 +1,89 @@
<template>
<div>
<el-table
:data="tableData"
style="width: 100%"
border
:header-cell-style="{background:'#DFE6EC',fontWeight:'700',color:'#1F2D3D'}"
>
<el-table-column
prop="processId"
label="流程编号"
width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="processName"
label="流程名称"
align="center"
>
</el-table-column>
<el-table-column
prop="processPerson"
label="发起人"
width="220"
align="center"
>
</el-table-column>
<el-table-column
prop="now"
label="当前处理人"
width="190"
align="center"
>
</el-table-column>
<el-table-column
prop="last"
label="上一处理人"
width="180"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
width="180"
sortable
align="center"
>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
width="170"
sortable
align="center"
>
</el-table-column>
<el-table-column
prop="status"
label="状态"
width="125"
align="center"
>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="120"
align="center">
<template slot-scope="scope">
<el-button
@click.native.prevent="view(scope.$index, tableData)"
type="text"
size="small">
查看
</el-button>
</template>
</el-table-column>
</el-table>
<el-table :data="tableData" style="width: 100%" border
:header-cell-style="{ background: '#DFE6EC', fontWeight: '700', color: '#1F2D3D' }">
<el-table-column prop="processId" label="流程编号" align="center">
</el-table-column>
<el-table-column prop="processName" label="流程名称" align="center">
</el-table-column>
<el-table-column prop="processPerson" label="发起人" align="center">
</el-table-column>
<el-table-column prop="now" label="当前处理人" align="center">
</el-table-column>
<el-table-column prop="last" label="上一处理人" align="center">
</el-table-column>
<el-table-column prop="createTime" label="创建时间" sortable align="center">
</el-table-column>
<el-table-column prop="endTime" label="完成时间" sortable align="center">
</el-table-column>
<el-table-column prop="status" label="状态" align="center">
</el-table-column>
<el-table-column label="操作" width="120" align="center">
<template slot-scope="scope">
<el-button @click.native.prevent="view(scope.$index, tableData)" type="text" size="small">
查看
</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name:'finishProcess',
data() {
return {
tableData: [{
processId: '2016-05-1',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-1'
}, {
processId: '2016-05-2',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-2'
}, {
processId: '2016-05-3',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-3'
}, {
processId: '2016-05-4',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-4'
}]
export default {
name: 'finishProcess',
data() {
return {
tableData: [{
processId: '2016-05-1',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime: '2023-1-1'
}, {
processId: '2016-05-2',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime: '2023-1-2'
}, {
processId: '2016-05-3',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime: '2023-1-3'
}, {
processId: '2016-05-4',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime: '2023-1-4'
}]
}
},
props:{
secondData:{
type:Array,
default:[],
}
},
mounted () {
this.$bus.$on('getSearchItem',(data)=>{
console.log('22',data)
});
},
watch: {
secondData(newValue, oldValue) {
this.tableData=newValue
}
},
methods: {
view(){
view() {
alert(111)
},
}
}
}
</script>
<style lang="sass" scoped>
<style lang="scss" scoped>
::v-deep .el-table__fixed, ::v-deep .el-table__fixed-right ::before{
height: 0px !important;
}
</style>
@@ -1,96 +1,93 @@
<template>
<div>
<el-table
:data="tableData"
style="width: 100%"
border
:header-cell-style="{background:'#DFE6EC',fontWeight:'700',color:'#1F2D3D'}"
>
<el-table-column
prop="processId"
label="流程编号"
width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="processName"
label="流程名称"
align="left"
>
</el-table-column>
<el-table-column
prop="processPerson"
label="发起人"
width="390"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
width="260"
sortable
align="center"
>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="120"
align="center">
<template slot-scope="scope">
<el-button
@click.native.prevent="handle(scope.$index, tableData)"
type="text"
size="small">
办理
</el-button>
</template>
<div>
<el-table :data="tableData" style="width: 100%" border :header-cell-style="{
background: '#DFE6EC',
fontWeight: '700',
color: '#1F2D3D',
}">
<el-table-column prop="processId" label="流程编号" align="center">
</el-table-column>
</el-table>
</div>
<el-table-column prop="processName" label="流程名称" align="left">
</el-table-column>
<el-table-column prop="processPerson" label="发起人" align="center">
</el-table-column>
<el-table-column prop="createTime" label="创建时间" sortable align="center">
</el-table-column>
<el-table-column label="操作" width="120" align="center">
<template slot-scope="scope">
<el-button @click.native.prevent="handle(scope.$index, tableData)" type="text" size="small">
办理
</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name:'gencyProcess',
data() {
return {
tableData: [{
processId: '2016-05-1',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-1'
}, {
processId: '2016-05-2',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-2'
}, {
processId: '2016-05-3',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-3'
}, {
processId: '2016-05-4',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-4'
}]
export default {
name: "gencyProcess",
data() {
return {
tableData: [
{
processId: "2016-05-1",
processName: "王小虎",
processPerson: "上海市普陀区金沙江路 1518 弄",
createTime: "2023-1-1",
},
{
processId: "2016-05-2",
processName: "王小虎",
processPerson: "上海市普陀区金沙江路 1518 弄",
createTime: "2023-1-2",
},
{
processId: "2016-05-3",
processName: "王小虎",
processPerson: "上海市普陀区金沙江路 1518 弄",
createTime: "2023-1-3",
},
{
processId: "2016-05-4",
processName: "王小虎",
processPerson: "上海市普陀区金沙江路 1518 弄",
createTime: "2023-1-4",
},
],
};
},
props:{
firstData:{
type:Array,
default:[],
}
},
methods: {
handle(){
alert(111)
watch: {
firstData(newValue, oldValue) {
this.tableData=newValue
}
}
}
},
mounted () {
this.$bus.$on('getSearchItem',(data)=>{
console.log('11',data)
});
},
methods: {
handle() {
alert(111);
},
},
beforeDestroy(){
this.$bus.$off('getSearchItem')
}
};
</script>
<style lang="sass" scoped>
<style lang="scss" scoped>
::v-deep .el-table__fixed, ::v-deep .el-table__fixed-right ::before{
height: 0px !important;
}
</style>
@@ -1,130 +1,93 @@
<template>
<div>
<el-table
:data="tableData"
style="width: 100%"
border
:header-cell-style="{background:'#DFE6EC',fontWeight:'700',color:'#1F2D3D'}"
>
<el-table-column
prop="processId"
label="流程编号"
align="center"
>
</el-table-column>
<el-table-column
prop="processName"
label="流程名称"
width="220"
align="center"
>
</el-table-column>
<el-table-column
prop="processPerson"
label="发起人"
width="220"
align="center"
>
</el-table-column>
<el-table-column
prop="now"
label="当前处理人"
width="190"
align="center"
>
</el-table-column>
<el-table-column
prop="last"
label="上一处理人"
width="180"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
width="180"
sortable
align="center"
>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
width="170"
sortable
align="center"
>
</el-table-column>
<el-table-column
prop="status"
label="状态"
width="125"
align="center"
>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="120"
align="center">
<template slot-scope="scope" >
<el-button
@click.native.prevent="view(scope.$index, tableData)"
type="text"
size="small"
>
<span>查看</span>
</el-button>
</template>
</el-table-column>
</el-table>
<el-table :data="tableData" style="width: 100%" border
:header-cell-style="{ background: '#DFE6EC', fontWeight: '700', color: '#1F2D3D' }">
<el-table-column prop="processId" label="流程编号" align="center">
</el-table-column>
<el-table-column prop="processName" label="流程名称" align="center">
</el-table-column>
<el-table-column prop="processPerson" label="发起人" align="center">
</el-table-column>
<el-table-column prop="now" label="当前处理人" align="center">
</el-table-column>
<el-table-column prop="last" label="上一处理人" align="center">
</el-table-column>
<el-table-column prop="createTime" label="创建时间" sortable align="center">
</el-table-column>
<el-table-column prop="endTime" label="完成时间" sortable align="center">
</el-table-column>
<el-table-column prop="status" label="状态" align="center">
</el-table-column>
<el-table-column label="操作" width="120" align="center">
<template slot-scope="scope">
<el-button @click.native.prevent="view(scope.$index, tableData)" type="text" size="small">
查看
</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name:'monitorProcess',
data() {
return {
tableData: [{
processId: '2016-05-1',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-1'
}, {
processId: '2016-05-2',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-2'
}, {
processId: '2016-05-3',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-3'
}, {
processId: '2016-05-4',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-4'
}]
export default {
name: 'monitorProcess',
data() {
return {
tableData: [{
processId: '2016-05-1',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime: '2023-1-1'
}, {
processId: '2016-05-2',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime: '2023-1-2'
}, {
processId: '2016-05-3',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime: '2023-1-3'
}, {
processId: '2016-05-4',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime: '2023-1-4'
}]
}
},
props:{
fourthData:{
type:Array,
default:[],
}
},
watch: {
fourthData(newValue, oldValue) {
this.tableData=newValue
}
},
mounted () {
this.$bus.$on('getSearchItem',(data)=>{
console.log('44',data)
});
},
methods: {
view(){
alert(111)
view() {
this.$router.push({
path: 'monitorViews',
query:{
id: this.$route.query.id
}
})
}
}
}
}
</script>
<style lang="sass" scoped>
<style lang="scss" scoped>
::v-deep .el-table__fixed,.el-table__fixed-right ::before{
height: 0px !important;
}
</style>
@@ -0,0 +1,98 @@
<template>
<div>
<el-dialog title="调整处理人" :visible.sync="dialogVisible" :before-close="handleClose">
<div class="form-container">
<el-form ref="form" :model="form" label-width="80px" :rules="rules">
<el-form-item label="选择人员" prop="select" >
<el-select v-model="form.select" placeholder="请选择调整处理人">
<el-option label="张三" value="1"></el-option>
<el-option label="李四" value="2"></el-option>
</el-select>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false" class="btn"> </el-button>
<el-button type="primary" @click="submit" class="btn"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
name: 'modal',
data() {
return {
dialogVisible: false,
form: {},
rules: {
select: [
{
required: 'true',
trigger: 'change',
message: '请选择调整处理人'
}
]
}
};
},
methods: {
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => { });
},
open() {
this.dialogVisible = true
},
submit() {
this.$refs.form.validate((valid) => {
if (valid) {
alert(11)
this.dialogVisible = false
}
})
}
}
}
</script>
<style lang="scss" scoped>
.dialog-footer {
display: flex;
justify-content: center;
margin-bottom: 30px;
}
::v-deep .el-dialog {
width: 600px;
}
::v-deep .el-dialog .el-dialog__body {
font-size: 50px;
height: 230px;
display: flex;
justify-content: center;
align-items: center;
}
::v-deep .el-input__inner {
height: 40px;
line-height: 40px;
}
::v-deep .el-form-item--mini .el-form-item__label {
line-height: 40px !important;
}
::v-deep .btn {
width: 90px;
height: 40px;
border-radius: 30px;
margin-right: 30px;
}</style>
@@ -0,0 +1,84 @@
<template>
<div class="content">
<div class="map">
</div>
<div class="btn">
<el-button type="primary" class="inner-btn" @click="showDialog">
调整处理人
</el-button>
</div>
<div class="table">
<el-table :data="tableData" style="width: 100%" border
:header-cell-style="{ background: '#DFE6EC', fontWeight: '700', color: '#1F2D3D' }">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column prop="step" label="任务步骤" align="center">
</el-table-column>
<el-table-column prop="missionPer" label="任务受理人" align="center">
</el-table-column>
<el-table-column prop="createTime" label="创建时间" sortable align="center">
</el-table-column>
<el-table-column prop="endTime" label="完成时间" sortable align="center">
</el-table-column>
<el-table-column prop="status" label="状态" align="center">
</el-table-column>
</el-table>
</div>
<monitorModal ref="monitorModal"></monitorModal>
</div>
</template>
<script>
import monitorModal from './monitorModal.vue'
export default {
name:'monitorViews',
components:{
monitorModal
},
data() {
return {
tableData: [
{
step:'1',
missionPer:'王五',
createTime:'2023-1-1',
endTime:'2023-5-1',
status:'待定'
}
]
}
},
methods: {
showDialog() {
this.$refs.monitorModal.open()
}
},
}
</script>
<style lang="scss" scoped>
.content{
min-height: calc(100vh - 60px - 20px);
box-shadow: 0 6px 11px 0 rgba(163, 163, 163, 0.2);
border-radius: 6px;
background: #FFFFFF;
.map{
width: 100%;
height: 360px;
border: 1px red solid;
}
.btn{
padding: 20px 13px;
.inner-btn{
width: 100px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
}
}
}
</style>
@@ -1,145 +1,110 @@
<template>
<div>
<el-table
:data="tableData"
style="width: 100%"
border
:header-cell-style="{background:'#DFE6EC',fontWeight:'700',color:'#1F2D3D'}"
>
<el-table-column
prop="processId"
label="流程编号"
width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="processName"
label="流程名称"
align="center"
>
</el-table-column>
<el-table-column
prop="processPerson"
label="发起人"
width="220"
align="center"
>
</el-table-column>
<el-table-column
prop="now"
label="当前处理人"
width="190"
align="center"
>
</el-table-column>
<el-table-column
prop="last"
label="上一处理人"
width="180"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
width="180"
sortable
align="center"
>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
width="170"
sortable
align="center"
>
</el-table-column>
<el-table-column
prop="status"
label="状态"
width="125"
align="center"
>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="120"
align="center">
<template slot-scope="scope" >
<el-button
@click.native.prevent="view(scope.$index, tableData)"
type="text"
size="small"
>
<span>查看</span>
</el-button>
<el-table :data="tableData" style="width: 100%" border :header-cell-style="{
background: '#DFE6EC',
fontWeight: '700',
color: '#1F2D3D',
}">
<el-table-column prop="processId" label="流程编号" align="center">
</el-table-column>
<el-table-column prop="processName" label="流程名称" align="center">
</el-table-column>
<el-table-column prop="processPerson" label="发起人" align="center">
</el-table-column>
<el-table-column prop="now" label="当前处理人" align="center">
</el-table-column>
<el-table-column prop="last" label="上一处理人" align="center">
</el-table-column>
<el-table-column prop="createTime" label="创建时间" sortable align="center">
</el-table-column>
<el-table-column prop="endTime" label="完成时间" sortable align="center">
</el-table-column>
<el-table-column prop="status" label="状态" align="center">
</el-table-column>
<el-table-column label="操作" width="120" align="center">
<template slot-scope="scope">
<el-button @click.native.prevent="view(scope.$index, tableData)" type="text" size="small">
查看
</el-button>
<el-button
@click.native.prevent="back(scope.$index, tableData)"
type="text"
size="small"
>
<span>强制撤回</span>
</el-button>
</template>
</el-table-column>
</el-table>
<el-button :disabled="tableData[scope.$index].status=='已完成'" @click.native.prevent="back(scope.$index, tableData)" type="text" size="small"
>
<span :style="tableData[scope.$index].status=='已完成' ? {color:icolor } :{color:color}" >强制撤回</span>
</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name:'sentProcess',
data() {
return {
tableData: [{
processId: '2016-05-1',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-1'
}, {
processId: '2016-05-2',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-2'
}, {
processId: '2016-05-3',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-3'
}, {
processId: '2016-05-4',
processName: '王小虎',
processPerson: '上海市普陀区金沙江路 1518 弄',
createTime:'2023-1-4'
}]
export default {
name: "sentProcess",
data() {
return {
color:'rgb(236, 128, 141)',
icolor:'rgb(119,136,153)',
tableData: [
{
processId: "2016-05-1",
processName: "王小虎",
processPerson: "上海市普陀区金沙江路 1518 弄",
createTime: "2023-1-1",
status:'已完成'
},
{
processId: "2016-05-2",
processName: "王小虎",
processPerson: "上海市普陀区金沙江路 1518 弄",
createTime: "2023-1-2",
},
{
processId: "2016-05-3",
processName: "王小虎",
processPerson: "上海市普陀区金沙江路 1518 弄",
createTime: "2023-1-3",
},
{
processId: "2016-05-4",
processName: "王小虎",
processPerson: "上海市普陀区金沙江路 1518 弄",
createTime: "2023-1-4",
},
],
};
},
props:{
thirdData:{
type:Array,
default:[],
}
},
methods: {
view(){
alert(111)
},
back(){
alert(222)
watch: {
thirdData(newValue, oldValue) {
this.tableData=newValue
}
}
}
},
mounted () {
this.$bus.$on('getSearchItem',(data)=>{
console.log('33',data)
});
},
methods: {
view() {
alert(111);
},
back(index,tableData) {
console.log('index',index);
console.log('tableData',tableData);
},
},
};
</script>
<style lang="scss" scoped>
.slot{
::v-deep .el-table__fixed, ::v-deep .el-table__fixed-right ::before{
height: 0px !important;
}
</style>
+29 -6
View File
@@ -2,16 +2,16 @@
<div>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="待办流程" name="first">
<gencyProcess></gencyProcess>
<gencyProcess :firstData="firstData" v-if="activeName=='first'"></gencyProcess>
</el-tab-pane>
<el-tab-pane label="已办流程" name="second">
<finishProcess></finishProcess>
<finishProcess :secondData="secondData" v-if="activeName=='second'"></finishProcess>
</el-tab-pane>
<el-tab-pane label="已发流程" name="third">
<sentProcess></sentProcess>
<sentProcess :thirdData="thirdData" v-if="activeName=='third'"></sentProcess>
</el-tab-pane>
<el-tab-pane label="监控流程" name="fourth">
<monitorProcesses></monitorProcesses>
<monitorProcesses :fourthData="fourthData" v-if="activeName=='fourth'"></monitorProcesses>
</el-tab-pane>
</el-tabs>
</div>
@@ -30,11 +30,34 @@ export default {
monitorProcesses,
sentProcess
},
props:{
tableData:{
type:Array,
default:[],
}
},
data() {
return {
activeName: 'first'
activeName: 'first',
firstData:[],
secondData:[],
thirdData:[],
fourthData:[],
};
},
watch: {
tableData(newValue, oldValue) {
if(this.activeName == 'first'){
this.firstData=newValue
}else if(this.activeName == 'second'){
this.secondData=newValue
}else if(this.activeName == 'third'){
this.thirdData=newValue
}else{
this.fourthData=newValue
}
}
},
created () {
;
},
@@ -43,7 +66,7 @@ export default {
},
methods: {
handleClick(tab, event) {
// console.log(tab, event);
this.$bus.$emit('clearForm')
}
}
}