Bladeren bron

报销类型管理页面,首页工作台等提交

wangqiang 1 jaar geleden
bovenliggende
commit
e90bada25c

+ 17 - 16
src/views/cw/reimbursementApproval/type/TypeForm.vue

@@ -3,13 +3,13 @@
     <el-dialog
       :title="title"
       :close-on-click-modal="false"
-      v-dialogDrag
+	  draggable
       width="500px"
       @close="close"
       append-to-body
       @keyup.enter.native="doSubmit"
-      :visible.sync="visible">
-      <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
+      v-model="visible">
+      <el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
                label-width="100px" @submit.native.prevent>
         <el-row  :gutter="15">
           <el-col :span="21">
@@ -21,7 +21,7 @@
                       label: 'name',         // 显示名称
                       children: 'children'    // 子级字段名
                     }"
-                url="/reimbursementApproval/type/treeData?type=3"
+                url="/public-modules-server/reimbursementApproval/type/treeData?type=3"
                 :value="inputForm.parentId"
                 :clearable="true"
                 :accordion="true"
@@ -55,10 +55,13 @@
           </el-col>
         </el-row>
       </el-form>
-      <span slot="footer" class="dialog-footer">
-      <el-button size="small" @click="close()" icon="el-icon-circle-close">关闭</el-button>
-      <el-button size="small" type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
-    </span>
+		<template #footer>
+			<span class="dialog-footer">
+			  <el-button @click="close()" icon="el-icon-circle-close">关闭</el-button>
+			  <el-button type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+			</span>
+		</template>
+
     </el-dialog>
   </div>
 </template>
@@ -67,7 +70,7 @@
   // import ReimbursementTypeService from '@/api/sys/ReimbursementTypeService'
   import ReimbursementApprovalTypeService from '@/api/cw/reimbursementApproval/ReimbursementApprovalTypeService'
   import SelectTree from '@/components/treeSelect/treeSelect.vue'
-  import OfficeService from '@/api/sys/OfficeService'
+  import officeService from '@/api/sys/officeService'
   export default {
     data () {
       return {
@@ -88,11 +91,9 @@
     },
     // reimbursementTypeService: null,
     reimbursementApprovalTypeService: null,
-    OfficeService: null,
     created () {
       // this.reimbursementTypeService = new ReimbursementTypeService()
       this.reimbursementApprovalTypeService = new ReimbursementApprovalTypeService()
-      this.officeService = new OfficeService()
     },
     components: {
       SelectTree
@@ -125,18 +126,18 @@
           if (method === 'edit' || method === 'view') { // 修改或者查看
             this.loading = true
             this.$refs.inputForm.resetFields()
-            this.reimbursementApprovalTypeService.findById(this.inputForm.id).then(({data}) => {
+            this.reimbursementApprovalTypeService.findById(this.inputForm.id).then((data) => {
               this.inputForm = this.recover(this.inputForm, data)
               this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
               this.loading = false
             })
-            // this.reimbursementTypeService.findById(this.inputForm.id).then(({data}) => {
+            // this.reimbursementTypeService.findById(this.inputForm.id).then((data) => {
             //   this.inputForm = this.recover(this.inputForm, data)
             //   this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
             //   this.loading = false
             // })
           }
-          this.officeService.getSecondLevelData().then(({data}) => {
+          officeService.getSecondLevelData().then((data) => {
             this.officeList = data
           })
         })
@@ -146,7 +147,7 @@
         this.$refs['inputForm'].validate((valid) => {
           if (valid) {
             this.loading = true
-            this.reimbursementApprovalTypeService.save(this.inputForm).then(({data}) => {
+            this.reimbursementApprovalTypeService.save(this.inputForm).then((data) => {
               if (data === false) {
                 this.close()
                 this.$message.error('报销内容名重复,请重新填写')
@@ -161,7 +162,7 @@
             }).catch(() => {
               this.loading = false
             })
-            // this.reimbursementTypeService.save(this.inputForm).then(({data}) => {
+            // this.reimbursementTypeService.save(this.inputForm).then((data) => {
             //   this.close()
             //   this.$message.success(data)
             //   this.$emit('refreshDataList')

+ 15 - 15
src/views/cw/reimbursementApproval/type/TypeList.vue

@@ -1,24 +1,24 @@
 <template>
   <div class="page">
-    <el-form size="small" :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+    <el-form :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
       <!-- 搜索框-->
       <el-form-item label="报销内容名称" prop="name">
-        <el-input size="small" v-model="searchForm.name" placeholder="请输入报销内容名称" clearable></el-input>
+        <el-input v-model="searchForm.name" placeholder="请输入报销内容名称" clearable></el-input>
       </el-form-item>
 <!--      <el-form-item label="序号" prop="sort">-->
 <!--        <el-input size="small" v-model="searchForm.sort" placeholder="请输入序号" clearable></el-input>-->
 <!--      </el-form-item>-->
 
       <el-form-item>
-        <el-button type="primary" @click="refreshList()" size="small" icon="el-icon-search">查询</el-button>
-        <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>
+        <el-button type="primary" @click="refreshList()" icon="el-icon-search">查询</el-button>
+        <el-button @click="resetSearch()"  icon="el-icon-refresh-right">重置</el-button>
       </el-form-item>
     </el-form>
 
-    <div class="bg-white top" style="">
+    <div class="jp-table top" style="">
       <vxe-toolbar :refresh="{query: refreshList}" custom>
         <template #buttons>
-          <el-button v-if="hasPermission('program:configuration:type:add')" type="primary" size="small" icon="el-icon-plus" @click="add()">新建</el-button>
+          <el-button v-if="hasPermission('program:configuration:type:add')" type="primary"  icon="el-icon-plus" @click="add()">新建</el-button>
 <!--          <el-button v-if="hasPermission('program:configuration:type:del')" type="danger"   size="small" icon="el-icon-delete" @click="del()" :disabled="$refs.typeTable && $refs.typeTable.getCheckboxRecords().length === 0" plain>删除</el-button>-->
         </template>
       </vxe-toolbar>
@@ -40,16 +40,16 @@
           :tree-config="{transform: true, rowField: 'id', parentField: 'parentId',expandAll: true}"
           :checkbox-config="{}">
           <vxe-column type="seq" width="60" title="序号"></vxe-column>
-          <vxe-column type="checkbox" width="40" ></vxe-column>
+          <vxe-column type="checkbox" width="60" ></vxe-column>
           <vxe-column min-width="200" title="报销内容名称" field="name" align="left" tree-node></vxe-column>
           <vxe-column min-width="200" title="关联部门" field="relateDepartment" align="center"></vxe-column>
           <vxe-column min-width="100" title="序号" field="sort" align="center"></vxe-column>
 
           <vxe-column title="操作" width="230px" fixed="right" align="center">
-            <template  slot-scope="scope">
-              <el-button v-if="hasPermission('reimbursement:type:edit')&&(scope.row.level === '1' || scope.row.level === '2')" type="text"  size="small" @click="addChild(scope.row.id,scope.row.businessType)">添加下级结构</el-button>
-              <el-button v-if="hasPermission('reimbursement:type:edit')" type="text"  size="small" @click="edit(scope.row.id)">修改</el-button>
-              <el-button v-if="hasPermission('reimbursement:type:remove')" type="text"   size="small" @click="del(scope.row.id)">删除</el-button>
+            <template  #default="scope">
+              <el-button v-if="hasPermission('reimbursement:type:edit')&&(scope.row.level === '1' || scope.row.level === '2')" text type="primary" @click="addChild(scope.row.id,scope.row.businessType)">添加下级结构</el-button>
+              <el-button v-if="hasPermission('reimbursement:type:edit')" text type="primary" @click="edit(scope.row.id)">修改</el-button>
+              <el-button v-if="hasPermission('reimbursement:type:remove')" text type="primary" @click="del(scope.row.id)">删除</el-button>
             </template>
           </vxe-column>
         </vxe-table>
@@ -114,14 +114,14 @@
       // 获取数据列表
       refreshList () {
         this.loading = true
-        this.reimbursementApprovalTypeService.list({...this.searchForm}).then(({data}) => {
+        this.reimbursementApprovalTypeService.list({...this.searchForm}).then((data) => {
           this.dataList = data
           this.loading = false
           this.$nextTick(() => {
             this.$refs.typeTable.setAllTreeExpand(true)
           })
         })
-        // this.reimbursementTypeService.list({...this.searchForm}).then(({data}) => {
+        // this.reimbursementTypeService.list({...this.searchForm}).then((data) => {
         //   this.dataList = data
         //   this.loading = false
         // })
@@ -137,12 +137,12 @@
           type: 'warning'
         }).then(() => {
           this.loading = true
-          this.reimbursementApprovalTypeService.remove(ids).then(({data}) => {
+          this.reimbursementApprovalTypeService.remove(ids).then((data) => {
             this.$message.success(data)
             this.refreshList()
             this.loading = false
           })
-          // this.reimbursementTypeService.remove(ids).then(({data}) => {
+          // this.reimbursementTypeService.remove(ids).then((data) => {
           //   this.$message.success(data)
           //   this.refreshList()
           //   this.loading = false

+ 126 - 126
src/views/dashboard/widgets/components/TodoList.vue

@@ -9,7 +9,7 @@
 				</div>
 			</div>
 		</template>
-		<!--<el-table :data="dataList" style="width: 100%" height="480">
+		<el-table :data="dataList" style="width: 100%" height="480">
 			<el-table-column
 				label="实例标题"
 				prop="vars.title"
@@ -52,10 +52,10 @@
 			>
 				<template #default="scope">
 					<el-button type="primary" text @click="todo(scope.row)"
-						>办理</el-button
+					>办理</el-button
 					>
 					<el-button type="primary" text @click="trace(scope.row)"
-						>进度</el-button
+					>进度</el-button
 					>
 				</template>
 			</el-table-column>
@@ -83,8 +83,8 @@
 			]"
 			@page-change="currentChangeHandle"
 		>
-		</vxe-pager>-->
-		<div style="height: calc(100% - 55px);margin-top: 5px">
+		</vxe-pager>
+		<!--<div style="height: calc(100% - 55px);margin-top: 5px">
 			<vxe-table
 				border="inner"
 				auto-resize
@@ -136,7 +136,7 @@
 				:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
 				@page-change="currentChangeHandle">
 			</vxe-pager>
-		</div>
+		</div>-->
 	</el-card>
 	<v-dialog
 		title="查看进度"
@@ -154,132 +154,132 @@
 </template>
 
 <script>
-// import FlowChart from '../modeler/FlowChart'
-import pick from "lodash.pick";
-import UserSelect from "@/components/userSelect/UserSelectDialog";
-import taskService from "@/api/flowable/taskService";
-export default {
-	title: "我的待办",
-	icon: "wodedaiban",
-	description: "我的待办任务",
-	layout: {
-		w: 6,
-		h: 15,
-	},
-	data() {
-		return {
-			dataList: [],
-			tablePage: {
-				total: 0,
-				currentPage: 1,
-				pageSize: 10,
-				orders: [],
-			},
-			loading: false,
-			visible: false,
-			currentTask: null,
-			processInstanceId: "",
-			timer: null
-		};
-	},
-	mounted() {
-		// 页面加载后
-		// 1.在执行定时器前先执行一次获取接口数据的操作函数, 否则接口会1秒钟后才调用
-		// 2.为了避免退出当前页面后,在其他页面也继续调用接口,退出前需要清除定时器.
-		this.refreshList();
-		this.timer = setInterval(() => {
-			setTimeout(this.refreshList, 0)
-		}, 60000)
-	},
-	beforeDestroy () {
-		clearInterval(this.timer)
-		this.timer = null
-	},
-	activated() {
-		this.refreshList();
-	},
-	components: {
-		UserSelect,
-		// FlowChart
-	},
-	methods: {
-		// 获取数据列表
-		refreshList() {
-			this.loading = true;
-			taskService
-				.todoList({
-					current: this.tablePage.currentPage,
-					size: this.tablePage.pageSize,
-					orders: this.tablePage.orders,
-					...this.searchForm,
-				})
-				.then((data) => {
-					this.dataList = data.records;
-					this.tablePage.total = data.total;
-					this.loading = false;
-				});
+	// import FlowChart from '../modeler/FlowChart'
+	import pick from "lodash.pick";
+	import UserSelect from "@/components/userSelect/UserSelectDialog";
+	import taskService from "@/api/flowable/taskService";
+	export default {
+		title: "我的待办",
+		icon: "wodedaiban",
+		description: "我的待办任务",
+		layout: {
+			w: 6,
+			h: 15,
 		},
-		// 当前页
-		currentChangeHandle({ currentPage, pageSize }) {
-			this.tablePage.currentPage = currentPage;
-			this.tablePage.pageSize = pageSize;
+		data() {
+			return {
+				dataList: [],
+				tablePage: {
+					total: 0,
+					currentPage: 1,
+					pageSize: 10,
+					orders: [],
+				},
+				loading: false,
+				visible: false,
+				currentTask: null,
+				processInstanceId: "",
+				timer: null
+			};
+		},
+		mounted() {
+			// 页面加载后
+			// 1.在执行定时器前先执行一次获取接口数据的操作函数, 否则接口会1秒钟后才调用
+			// 2.为了避免退出当前页面后,在其他页面也继续调用接口,退出前需要清除定时器.
 			this.refreshList();
+			this.timer = setInterval(() => {
+				setTimeout(this.refreshList, 0)
+			}, 60000)
 		},
-		todo(row) {
-			taskService
-				.getTaskDef({
-					taskId: row.task.id,
-					taskName: row.task.name,
-					taskDefKey: row.task.taskDefinitionKey,
-					procInsId: row.task.processInstanceId,
-					procDefId: row.task.processDefinitionId,
-					procDefKey: row.task.processDefKey,
-					status: row.status,
-				})
-				.then((data) => {
-					var cs = "cs"
-					this.$router.push({
-						path: "/flowable/task/TaskForm",
-						query: {
-							formTitle: `${row.vars.title}`,
-							title: `审批【${row.task.name || ""}】`,
-							cs: cs,
-							...pick(
-								data,
-								"formType",
-								"formReadOnly",
-								"formUrl",
-								"procDefKey",
-								"taskDefKey",
-								"procInsId",
-								"procDefId",
-								"taskId",
-								"status",
-								"title",
-								"businessId"
-							),
-						},
-					});
-				});
+		beforeDestroy () {
+			clearInterval(this.timer)
+			this.timer = null
+		},
+		activated() {
+			this.refreshList();
 		},
-		toPendingList () {
-			// this.$router.push('./PendingList')
-			this.$router.push({
-				path: '/flowable/task/TodoList',
-			})
+		components: {
+			UserSelect,
+			// FlowChart
 		},
-		trace(row) {
-			this.processInstanceId = row.task.processInstanceId;
-			this.visible = true;
-			this.$nextTick(() => {
-				this.$refs.preview.init();
-			});
+		methods: {
+			// 获取数据列表
+			refreshList() {
+				this.loading = true;
+				taskService
+					.todoList({
+						current: this.tablePage.currentPage,
+						size: this.tablePage.pageSize,
+						orders: this.tablePage.orders,
+						...this.searchForm,
+					})
+					.then((data) => {
+						this.dataList = data.records;
+						this.tablePage.total = data.total;
+						this.loading = false;
+					});
+			},
+			// 当前页
+			currentChangeHandle({ currentPage, pageSize }) {
+				this.tablePage.currentPage = currentPage;
+				this.tablePage.pageSize = pageSize;
+				this.refreshList();
+			},
+			todo(row) {
+				taskService
+					.getTaskDef({
+						taskId: row.task.id,
+						taskName: row.task.name,
+						taskDefKey: row.task.taskDefinitionKey,
+						procInsId: row.task.processInstanceId,
+						procDefId: row.task.processDefinitionId,
+						procDefKey: row.task.processDefKey,
+						status: row.status,
+					})
+					.then((data) => {
+						var cs = "cs"
+						this.$router.push({
+							path: "/flowable/task/TaskForm",
+							query: {
+								formTitle: `${row.vars.title}`,
+								title: `审批【${row.task.name || ""}】`,
+								cs: cs,
+								...pick(
+									data,
+									"formType",
+									"formReadOnly",
+									"formUrl",
+									"procDefKey",
+									"taskDefKey",
+									"procInsId",
+									"procDefId",
+									"taskId",
+									"status",
+									"title",
+									"businessId"
+								),
+							},
+						});
+					});
+			},
+			toPendingList () {
+				// this.$router.push('./PendingList')
+				this.$router.push({
+					path: '/flowable/task/TodoList',
+				})
+			},
+			trace(row) {
+				this.processInstanceId = row.task.processInstanceId;
+				this.visible = true;
+				this.$nextTick(() => {
+					this.$refs.preview.init();
+				});
+			},
 		},
-	},
-};
+	};
 </script>
 <style scoped>
-.box-card {
-	height: 100%;
-}
+	.box-card {
+		height: 100%;
+	}
 </style>

+ 11 - 2
src/views/dashboard/widgets/index.vue

@@ -171,10 +171,10 @@ export default {
 					w: 6,
 					h: 15,
 					i: 1,
-					name: "MyNotifyList",
+					name: "MyNoticePageList",
 					moved: false,
 				},
-				{ x: 0, y: 4, w: 12, h: 5, i: 2, name: "Myapp", moved: false },
+				// { x: 0, y: 4, w: 12, h: 5, i: 2, name: "Myapp", moved: false },MyNoticePageList
 				{ x: 8, y: 0, w: 4, h: 4, i: 4, name: "Time", moved: false },
 				{
 					x: 0,
@@ -194,6 +194,15 @@ export default {
 					name: "TodoList",
 					moved: false,
 				},
+				{
+					x: 0,
+					y: 9,
+					w: 6,
+					h: 15,
+					i: 1,
+					name: "MyNotifyList",
+					moved: false,
+				},
 			],
 			// grid: [],
 			grid: [],

+ 199 - 0
src/views/home/components/MyNoticePageList2.vue

@@ -0,0 +1,199 @@
+<template>
+	<el-card class="box-card">
+		<template #header>
+			<div class="card-header">
+				<span>我的通知</span>
+				<div style="float:right;">
+					<el-button type="text" @click="refreshList()">刷新</el-button>
+					<el-button type="text" @click="toPendingList()">更多>></el-button>
+				</div>
+			</div>
+		</template>
+		<div style="height: 250px;margin-top: 5px">
+			<vxe-table
+				border="inner"
+				auto-resize
+				resizable
+				:loading="loading"
+				size="small"
+				ref="noticetable"
+				show-header-overflow
+				show-overflow
+				highlight-hover-row
+				:menu-config="{}"
+				:print-config="{}"
+				:import-config="{}"
+				:export-config="{}"
+				@sort-change="sortChangeHandle"
+				:sort-config="{remote:true}"
+				:data="dataList"
+				:checkbox-config="{}">
+				<vxe-column title="实例标题" field="title">
+					<template #default="scope">
+						<el-link type="primary" :underline="false"
+								 @click="todo(scope.row)">{{scope.row.title}}
+						</el-link>
+					</template>
+				</vxe-column>
+				<vxe-column title="流程名称" field="taskName"></vxe-column>
+				<vxe-column title="流程发起人" field="createUser"></vxe-column>
+				<vxe-column
+					field="createTime"
+					title="创建时间">
+				</vxe-column>
+			</vxe-table>
+			<vxe-pager
+				background
+				size="small"
+				style="margin-top: 5px"
+				:current-page="tablePage.currentPage"
+				:page-size="tablePage.pageSize"
+				:total="tablePage.total"
+				:page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"
+				:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
+				@page-change="currentChangeHandle">
+			</vxe-pager>
+		</div>
+	</el-card>
+	<WareHouseHistoryPopup ref="wareHouseHistoryPopup"></WareHouseHistoryPopup>
+</template>
+
+<script>
+	import WareHouseHistoryPopup from '@/views/materialManagement/wareHouseSummary/WareHouseHistoryPopup'
+// import notifyService from "@/api/notify/notifyService";
+import noticeService from '@/api/flowable/NoticeService'
+import taskService from "@/api/flowable/taskService";
+	import pick from "lodash.pick";
+export default {
+	// title: "我的通知",
+	// icon: "tongzhi",
+	// description: "我的通知",
+	// layout: {
+	// 	w: 6,
+	// 	h: 15,
+	// },
+	components: {
+		WareHouseHistoryPopup,
+	},
+	data() {
+		return {
+			dataList: [],
+			typeList: [],
+			searchForm: {
+				title: '',
+				taskName: ''
+			},
+			tablePage: {
+				total: 0,
+				currentPage: 1,
+				pageSize: 10,
+				orders: []
+			},
+			loading: false,
+			visible: false,
+			currentTask: null,
+			processInstanceId: ''
+		};
+	},
+	mounted() {
+		this.refreshList();
+	},
+
+	activated() {
+		this.refreshList();
+	},
+	methods: {
+		// 排序
+		sortChangeHandle (column) {
+			this.tablePage.orders = []
+			if (column.order != null) {
+				this.tablePage.orders.push({column: this.$utils.toLine(column.property), asc: column.order === 'asc'})
+			}
+			this.refreshList()
+		},
+		todo (row) {
+			// console.log('row', row)
+			if (row.taskName === '库存提醒') {
+				// console.log('测试进来了')
+				this.$refs.wareHouseHistoryPopup.init(row.defId)
+				this.inputForm = {
+					id: row.id
+				}
+				noticeService.stockUpdate(this.inputForm)
+				this.resetSearch()
+			} else {
+				this.inputForm = {
+					taskId: '',
+					noticeId: ''
+				}
+				console.log('进来了+++', row.taskId)
+				taskService.getTaskDef({
+					procInsId: row.taskId,
+					procDefId: row.defId
+				}).then((data) => {
+					this.inputForm.taskId = row.taskId
+					this.inputForm.noticeId = row.noticeName
+					noticeService.update(this.inputForm)
+					// this.$router.push({
+					// 	path: '/flowable/task/TaskForm',
+					// 	query: {
+					// 		isShow: false,
+					// 		formReadOnly: true,
+					// 		formTitle: `${row.title}`,
+					// 		num: 2,
+					// 		title: `审批【${row.taskName || ''}】`,
+					// 		...pick(data, 'formType', 'formUrl', 'procDefKey', 'taskDefKey', 'procInsId', 'procDefId', 'taskId', 'status', 'title', 'businessId')
+					// 	}
+					// })
+					this.$router.push({
+					  path: '/flowable/task/TaskFormDetail',
+					  query: {
+						  ...pick(data, 'formType', 'formUrl', 'procDefKey', 'taskDefKey', 'procInsId', 'procDefId', 'taskId', 'status', 'title'),
+						  isShow: 'false',
+						  readOnly: true,
+						title: `审批【${row.taskName || ''}】`,
+						formTitle: `${row.title}`,
+						businessId: data.businessId,
+						  status: 'reback'
+					  }
+					})
+				})
+			}
+		},
+		// 获取数据列表
+		refreshList() {
+			this.loading = true
+			noticeService.list({
+				current: this.tablePage.currentPage,
+				size: this.tablePage.pageSize,
+				orders: this.tablePage.orders,
+				isSelf: true,
+				...this.searchForm
+			}).then((data) => {
+				this.dataList = data.records
+				this.tablePage.total = data.total
+				this.loading = false
+			})
+		},
+		// 当前页
+		currentChangeHandle({ currentPage, pageSize }) {
+			this.tablePage.currentPage = currentPage;
+			this.tablePage.pageSize = pageSize;
+			this.refreshList();
+		},
+		resetSearch() {
+			this.$refs.searchForm.resetFields();
+			this.refreshList();
+		},
+		toPendingList () {
+			// this.$router.push('./PendingList')
+			this.$router.push('/flowable/task/NoticePageList')
+		},
+	},
+};
+</script>
+<style scoped>
+	.box-card {
+		height: 100%;
+	}
+</style>

+ 209 - 0
src/views/home/components/TodoList2.vue

@@ -0,0 +1,209 @@
+<template>
+	<el-card class="box-card">
+		<template #header>
+			<div class="card-header">
+				<span>我的待办</span>
+				<div style="float:right;">
+					<el-button type="text" @click="refreshList()">刷新</el-button>
+					<el-button type="text" @click="toPendingList()">更多>></el-button>
+				</div>
+			</div>
+		</template>
+		<div style="height: 250px;margin-top: 5px">
+			<vxe-table
+				border="inner"
+				auto-resize
+				resizable
+				:loading="loading"
+				size="small"
+				ref="todoTable"
+				show-header-overflow
+				show-overflow
+				highlight-hover-row
+				:menu-config="{}"
+				:print-config="{}"
+				:import-config="{}"
+				:export-config="{}"
+				:data="dataList"
+				header-align="center"
+				:checkbox-config="{}">
+				<vxe-column title="实例标题" field="vars.title">
+				</vxe-column>
+				<vxe-column title="流程名称" field="processDefinitionName"></vxe-column>
+				<vxe-column title="当前环节" field="task.name">
+					<template #default="scope">
+						<el-tag>{{scope.row.task.name}}</el-tag>
+					</template>
+				</vxe-column>
+				<vxe-column title="流程发起人" field="vars.userName"></vxe-column>
+				<vxe-column
+					field="task.createTime"
+					title="发起时间">
+				</vxe-column>
+				<vxe-column title="操作" width="100px" fixed="right" align="center">
+					<template #default="scope">
+						<div>
+							<el-button text type="primary" @click="todo(scope.row)">办理</el-button>
+							<el-button  text type="primary" @click="trace(scope.row)">进度</el-button>
+						</div>
+					</template>
+				</vxe-column>
+			</vxe-table>
+			<vxe-pager
+				background
+				style="margin-top: 5px"
+				size="small"
+				:current-page="tablePage.currentPage"
+				:page-size="tablePage.pageSize"
+				:total="tablePage.total"
+				:page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"
+				:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
+				@page-change="currentChangeHandle">
+			</vxe-pager>
+		</div>
+	</el-card>
+	<v-dialog
+		title="查看进度"
+		:close-on-click-modal="true"
+		append-to-body
+		v-model="visible"
+		width="70%"
+		height="600px"
+	>
+		<flow-chart
+			ref="preview"
+			:processInstanceId="processInstanceId"
+		></flow-chart>
+	</v-dialog>
+</template>
+
+<script>
+	// import FlowChart from '../modeler/FlowChart'
+	import pick from "lodash.pick";
+	import UserSelect from "@/components/userSelect/UserSelectDialog";
+	import taskService from "@/api/flowable/taskService";
+	export default {
+		// title: "我的待办",
+		// icon: "wodedaiban",
+		// description: "我的待办任务",
+		// layout: {
+		// 	w: 6,
+		// 	h: 15,
+		// },
+		data() {
+			return {
+				dataList: [],
+				tablePage: {
+					total: 0,
+					currentPage: 1,
+					pageSize: 10,
+					orders: [],
+				},
+				loading: false,
+				visible: false,
+				currentTask: null,
+				processInstanceId: "",
+				timer: null
+			};
+		},
+		mounted() {
+			// 页面加载后
+			// 1.在执行定时器前先执行一次获取接口数据的操作函数, 否则接口会1秒钟后才调用
+			// 2.为了避免退出当前页面后,在其他页面也继续调用接口,退出前需要清除定时器.
+			this.refreshList();
+			this.timer = setInterval(() => {
+				setTimeout(this.refreshList, 0)
+			}, 60000)
+		},
+		beforeDestroy () {
+			clearInterval(this.timer)
+			this.timer = null
+		},
+		activated() {
+			this.refreshList();
+		},
+		components: {
+			UserSelect,
+			// FlowChart
+		},
+		methods: {
+			// 获取数据列表
+			refreshList() {
+				this.loading = true;
+				taskService
+					.todoList({
+						current: this.tablePage.currentPage,
+						size: this.tablePage.pageSize,
+						orders: this.tablePage.orders,
+						...this.searchForm,
+					})
+					.then((data) => {
+						this.dataList = data.records;
+						this.tablePage.total = data.total;
+						this.loading = false;
+					});
+			},
+			// 当前页
+			currentChangeHandle({ currentPage, pageSize }) {
+				this.tablePage.currentPage = currentPage;
+				this.tablePage.pageSize = pageSize;
+				this.refreshList();
+			},
+			todo(row) {
+				taskService
+					.getTaskDef({
+						taskId: row.task.id,
+						taskName: row.task.name,
+						taskDefKey: row.task.taskDefinitionKey,
+						procInsId: row.task.processInstanceId,
+						procDefId: row.task.processDefinitionId,
+						procDefKey: row.task.processDefKey,
+						status: row.status,
+					})
+					.then((data) => {
+						var cs = "cs"
+						this.$router.push({
+							path: "/flowable/task/TaskForm",
+							query: {
+								formTitle: `${row.vars.title}`,
+								title: `审批【${row.task.name || ""}】`,
+								cs: cs,
+								...pick(
+									data,
+									"formType",
+									"formReadOnly",
+									"formUrl",
+									"procDefKey",
+									"taskDefKey",
+									"procInsId",
+									"procDefId",
+									"taskId",
+									"status",
+									"title",
+									"businessId"
+								),
+							},
+						});
+					});
+			},
+			toPendingList () {
+				// this.$router.push('./PendingList')
+				this.$router.push({
+					path: '/flowable/task/TodoList',
+				})
+			},
+			trace(row) {
+				this.processInstanceId = row.task.processInstanceId;
+				this.visible = true;
+				this.$nextTick(() => {
+					this.$refs.preview.init();
+				});
+			},
+		},
+	};
+</script>
+<style scoped>
+	.box-card {
+		height: 100%;
+	}
+</style>

+ 13 - 24
src/views/home/index.vue

@@ -3,39 +3,24 @@
 		<div class="left-side">
 			<div class="panel">
 				<Banner />
-				<!-- <DataPanel /> -->
 				<ContentChart />
 			</div>
-<!--			<el-row :gutter="16" style="margin-top: 16px">-->
-<!--				<el-col :span="12">-->
-<!--					<CateforiesPercent />-->
-<!--				</el-col>-->
-<!--				<el-col :span="12">-->
-<!--					<Carousel />-->
-<!--				</el-col>-->
-<!--			</el-row>-->
 		</div>
 		<div class="right-side">
-			<el-row :gutter="16">
-				<el-col :span="24">
-					<div class="panel moduler-wrap">
-						<QuickOperation />
+			<el-row :gutter="16" style="height: 100%;">
+				<el-col :span="24" class="panel">
+					<div style="max-height: 50%;">
+						<TodoList2 />
+					</div>
+				</el-col>
+				<el-col :span="24" class="panel">
+					<div style="max-height: 50%; margin-top: 3px">
+						<MyNoticePageList2 />
 					</div>
 				</el-col>
-				<!-- <el-col :span="24">
-          <div class="panel moduler-wrap">
-            <RecentlyVisited />
-          </div>
-        </el-col> -->
 				<el-col class="panel" :span="24">
 					<Announcement />
 				</el-col>
-<!--				<el-col class="panel" :span="12">-->
-<!--					<Docs />-->
-<!--				</el-col>-->
-<!--				<el-col class="panel" :span="12">-->
-<!--					<Wx />-->
-<!--				</el-col>-->
 			</el-row>
 		</div>
 	</div>
@@ -51,6 +36,8 @@ import RecentlyVisited from "./components/recently-visited.vue";
 import QuickOperation from "./components/quick-operation.vue";
 // import TodoList from './components/todoList.vue'
 import Announcement from "./components/announcement.vue";
+import TodoList2 from "./components/TodoList2.vue";
+import MyNoticePageList2 from "./components/MyNoticePageList2.vue";
 import Carousel from "./components/carousel.vue";
 import Docs from "./components/docs.vue";
 import Wx from "./components/wx.vue";
@@ -66,6 +53,8 @@ export default {
 		RecentlyVisited,
 		QuickOperation,
 		Announcement,
+		TodoList2,
+		MyNoticePageList2,
 		Carousel,
 		Docs,
 		Wx,

+ 0 - 1
src/views/program/registered/ProjectForm2.vue

@@ -6,7 +6,6 @@
 	  draggable
       width="1300px"
       @close="close"
-      @keyup.enter.native=""
 	  v-model="visible">
       <el-row>
         <el-col :span="24">

+ 11 - 1
src/views/program/registered/ProjectThreeAuditForm.vue

@@ -185,6 +185,9 @@
         visible: false,
         loading: false,
         inputForm: {
+        	id1: '',
+        	id2: '',
+        	id3: '',
           id: '',
           remarks: '',
           programId: '',
@@ -264,6 +267,9 @@
         this.tabName = tabName
         this.method = method
         this.inputForm = {
+			id1: '',
+			id2: '',
+			id3: '',
           id: '',
           remarks: '',
           programId: '',
@@ -306,6 +312,7 @@
           this.programProjectListInfoService.findByIdAudit(this.inputForm.id).then((data) => {
             this.inputForm = this.recover(this.inputForm, data)
             this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+			  console.log('this.inputForm.id', this.inputForm)
             this.$refs.contents1Editor.clear()
             this.$refs.contents2Editor.clear()
             this.$refs.contents3Editor.clear()
@@ -581,6 +588,9 @@
       close () {
         this.$refs.uploadComponent.clearUpload()
         this.inputForm = {
+			id1: '',
+			id2: '',
+			id3: '',
           id: '',
           remarks: '',
           programId: '',
@@ -651,7 +661,7 @@
       },
 		// 查看
 		viewProjectInfo (projectId) {
-			this.$refs.projectFormView.init('view', projectId, 'auditId1', 'auditId2', 'auditId3', 'archiveId')
+			this.$refs.projectFormView.init('view', projectId, this.inputForm.id1, this.inputForm.id2, this.inputForm.id3, 'archiveId')
 		}
     }
   }