|
@@ -0,0 +1,178 @@
|
|
|
+<template>
|
|
|
+ <view class="u-content">
|
|
|
+ <section style="margin-top: 1.5em; overflow-x: auto;">
|
|
|
+ <table style="min-width: 400px;" cellspacing="0" cellpadding="5">
|
|
|
+ <thead>
|
|
|
+ <tr>
|
|
|
+ <th colspan="4" style="text-align: center; font-size: 20px; font-weight: bold;">
|
|
|
+ 清运列表
|
|
|
+ </th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th v-for="(header, index) in tableHeaders" :key="index">{{ header }}</th>
|
|
|
+ </tr>
|
|
|
+ </thead>
|
|
|
+ <tbody>
|
|
|
+ <tr v-for="(row, rowIndex) in tableData" :key="rowIndex" :style="rowIndex % 2 === 1 ? 'background-color: #f6f8fa;' : ''">
|
|
|
+ <td
|
|
|
+ v-for="(cell, cellIndex) in row"
|
|
|
+ :key="cellIndex"
|
|
|
+ align="center"
|
|
|
+ :style="cellIndex === 1 ? '' : ''"
|
|
|
+ >
|
|
|
+ <!-- 根据 cellIndex 来判断显示内容 -->
|
|
|
+ <template v-if="cellIndex === 0">
|
|
|
+ <a href="#" @click.prevent="handleLinkClick(cell)">{{ cell }}</a>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ {{ cell }}
|
|
|
+ </template>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ </section>
|
|
|
+ </view>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+ import disposeRubbishService from '@/api/garbageClearance/disposeRubbishService'
|
|
|
+ import taskService from "@/api/flowable/taskService"
|
|
|
+ import pick from "lodash.pick";
|
|
|
+
|
|
|
+ export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ id:'',
|
|
|
+ yearMonth:'',
|
|
|
+ // 表格的头部
|
|
|
+ tableHeaders: ["清运编号", "完成状态", "完成时间", "处理方式"],
|
|
|
+ // 表格的数据,二维数组表示每一行
|
|
|
+ tableData: []
|
|
|
+ };
|
|
|
+ },
|
|
|
+
|
|
|
+ onLoad(val) {
|
|
|
+ this.id = val.id;
|
|
|
+ this.yearMonth = val.yearMonth;
|
|
|
+ this.load();
|
|
|
+ },
|
|
|
+
|
|
|
+ methods: {
|
|
|
+ load() {
|
|
|
+ // 根据所属村落id将所有清运数据进行统计展示
|
|
|
+ disposeRubbishService.getDetailCollectByOfficeIdAndMonth(this.id,this.yearMonth).then((data) => {
|
|
|
+ this.tableData = data.map(item => [
|
|
|
+ item.no,
|
|
|
+ item.status,
|
|
|
+ item.auditPassDateStr,
|
|
|
+ item.disposeType
|
|
|
+ ]);
|
|
|
+ }).catch(error => {
|
|
|
+ console.error('数据加载失败:', error);
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ async handleLinkClick(cell) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ // 先根据编号查询具体信息
|
|
|
+ const dispose = await disposeRubbishService.getByNo(cell);
|
|
|
+
|
|
|
+ // 获取流程名称
|
|
|
+ let rowName = await taskService.getProcessNameByInstanceId(dispose.procInsId);
|
|
|
+
|
|
|
+ if (dispose.status === '5') {
|
|
|
+ // 如果流程状态为 '5',获取历史流程定义ID
|
|
|
+ const row = await taskService.getHistoryProcessDefinitionIdByInstanceId(dispose.procInsId);
|
|
|
+
|
|
|
+ const data = await taskService.getTaskDef({
|
|
|
+ taskDefKey: row.taskDefinitionKey,
|
|
|
+ procInsId: dispose.procInsId,
|
|
|
+ procDefId: row.processDefinitionId
|
|
|
+ });
|
|
|
+
|
|
|
+ // 构建导航所需的查询参数
|
|
|
+ let query = {
|
|
|
+ readOnly: true,
|
|
|
+ taskId: row.executionId,
|
|
|
+ title: `${rowName}【${rowName}】`,
|
|
|
+ formTitle: `${rowName}`,
|
|
|
+ ...pick(data, 'formType', 'formUrl', 'procDefKey', 'taskDefKey', 'procInsId', 'procDefId', 'taskId', 'status', 'title', 'businessId')
|
|
|
+ };
|
|
|
+
|
|
|
+ // 执行导航
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages/workbench/task/TaskFormDetail?flow=' + JSON.stringify(query)
|
|
|
+ });
|
|
|
+
|
|
|
+ } else {
|
|
|
+ // 如果流程状态不是 '5',获取当前的流程定义ID
|
|
|
+ const row = await taskService.getProcessDefinitionIdByInstanceId(dispose.procInsId);
|
|
|
+
|
|
|
+ const data = await taskService.getTaskDef({
|
|
|
+ taskDefKey: row.taskDefinitionKey,
|
|
|
+ procInsId: row.processInstanceId,
|
|
|
+ procDefId: row.processDefinitionId
|
|
|
+ });
|
|
|
+
|
|
|
+ // 构建导航所需的查询参数
|
|
|
+ let query = {
|
|
|
+ readOnly: true,
|
|
|
+ taskId: row.executionId,
|
|
|
+ title: `${rowName}【${rowName}】`,
|
|
|
+ formTitle: `${rowName}`,
|
|
|
+ ...pick(data, 'formType', 'formUrl', 'procDefKey', 'taskDefKey', 'procInsId', 'procDefId', 'taskId', 'status', 'title', 'businessId')
|
|
|
+ };
|
|
|
+
|
|
|
+ // 执行导航
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages/workbench/task/TaskFormDetail?flow=' + JSON.stringify(query)
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('数据加载失败:', error);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss">
|
|
|
+ .u-content {
|
|
|
+ padding: 24rpx;
|
|
|
+ font-size: 32rpx;
|
|
|
+ color: #333;
|
|
|
+ line-height: 1.6;
|
|
|
+ }
|
|
|
+ table {
|
|
|
+ box-sizing: border-box;
|
|
|
+ border-top: 1px solid #dfe2e5;
|
|
|
+ border-left: 1px solid #dfe2e5;
|
|
|
+ }
|
|
|
+ th {
|
|
|
+ border-right: 1px solid #dfe2e5;
|
|
|
+ border-bottom: 1px solid #dfe2e5;
|
|
|
+ }
|
|
|
+ td {
|
|
|
+ border-right: 1px solid #dfe2e5;
|
|
|
+ border-bottom: 1px solid #dfe2e5;
|
|
|
+ }
|
|
|
+ a {
|
|
|
+ color: rgb(41, 121, 255); /* 设置默认链接颜色 */
|
|
|
+ text-decoration: none; /* 可选: 去掉下划线 */
|
|
|
+ font-size: 16px; /* 设置所有链接的字体大小 */
|
|
|
+ }
|
|
|
+
|
|
|
+ a:hover {
|
|
|
+ color: rgb(41, 121, 255); /* 鼠标悬停时的颜色,与默认颜色一致 */
|
|
|
+ }
|
|
|
+
|
|
|
+ a:visited {
|
|
|
+ color: rgb(41, 121, 255); /* 已访问链接的颜色,与默认颜色一致 */
|
|
|
+ }
|
|
|
+
|
|
|
+ a:active {
|
|
|
+ color: rgb(41, 121, 255); /* 点击链接时的颜色,与默认颜色一致 */
|
|
|
+ }
|
|
|
+</style>
|