shuishen
2024-01-05 f2e4a9d500d2ae2a0ca0fe9ff8cb050c90ccaa2e
src/views/work/done.vue
@@ -1,35 +1,18 @@
<template>
  <basic-container>
    <avue-crud :option="option"
               :table-loading="loading"
               :data="data"
               ref="crud"
               v-model="form"
               :page.sync="page"
               @search-change="searchChange"
               @search-reset="searchReset"
               @selection-change="selectionChange"
               @current-change="currentChange"
               @size-change="sizeChange"
               @refresh-change="refreshChange"
               @on-load="onLoad">
    <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form" :page.sync="page"
      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
      <template slot-scope="scope" slot="menu">
        <el-button type="text"
                   size="small"
                   icon="el-icon-info"
                   v-if="permission.work_done_detail"
                   @click.stop="handleDetail(scope.row)">详情
        <el-button type="text" size="small" icon="el-icon-info" v-if="permission.work_done_detail"
          @click.stop="handleDetail(scope.row)">详情
        </el-button>
        <el-button type="text"
                   size="small"
                   icon="el-icon-search"
                   v-if="permission.work_done_follow"
                   @click.stop="handleImage(scope.row,scope.index)">流程图
        <el-button type="text" size="small" icon="el-icon-search" v-if="permission.work_done_follow"
          @click.stop="handleImage(scope.row, scope.index)">流程图
        </el-button>
      </template>
      <template slot-scope="{row}"
                slot="processDefinitionVersion">
        <el-tag>v{{row.processDefinitionVersion}}</el-tag>
      <template slot-scope="{row}" slot="processDefinitionVersion">
        <el-tag>v{{ row.processDefinitionVersion }}</el-tag>
      </template>
    </avue-crud>
    <flow-design is-dialog :is-display.sync="flowBox" :process-instance-id="processInstanceId"></flow-design>
@@ -37,9 +20,16 @@
</template>
<script>
  import {mapGetters} from "vuex";
  import {doneList} from "@/api/work/work";
  import {flowCategory, flowRoute} from "@/util/flow";
  import {
    mapGetters
  } from "vuex"
  import {
    doneList
  } from "@/api/work/work"
  import {
    flowCategory,
    flowRoute
  } from "@/util/flow"
  export default {
    data() {
@@ -65,16 +55,15 @@
          searchMenuSpan: 6,
          border: true,
          index: true,
          selection: true,
          // selection: true,
          editBtn: false,
          addBtn: false,
          viewBtn: false,
          delBtn: false,
          dialogWidth: 900,
          menuWidth: 150,
          menuWidth: 280,
          dialogClickModal: false,
          column: [
            {
          column: [{
              label: "流程分类",
              type: "select",
              row: true,
@@ -86,25 +75,53 @@
              dataType: "number",
              slot: true,
              prop: "category",
              search: true,
              // search: true,
              hide: true,
              width: 100,
            },
            {
              label: '流程名称',
              prop: 'processDefinitionName',
              search: true,
              label: '申请类型',
              prop: 'categoryName',
              // search: true,
            }, {
              label: "小区",
              prop: "districtId",
              searchSpan: 5,
              // search: true,
              type: 'tree',
              dicUrl: `/api/blade-district/district/getDistrictTree`,
              props: {
                label: "name",
                value: "id"
              },
              defaultExpandedKeys: ["361102003"],
              span: 12,
              labelWidth: 120,
              width: 220,
              overHidden: true,
            }, {
              label: '联系人',
              prop: 'linkman',
              // search: true,
            }, {
              label: '联系电话',
              prop: 'linkPhone',
              // search: true,
            }, {
              label: '项目名称',
              prop: 'name',
              // search: true,
            },
            {
              label: '当前步骤',
              prop: 'taskName',
            },
            {
              label: '流程版本',
              prop: 'processDefinitionVersion',
              slot: true,
              width: 80,
            },
            // {
            //     label: '流程版本',
            //     prop: 'processDefinitionVersion',
            //     slot: true,
            //     width: 80,
            // },
            {
              label: '申请时间',
              prop: 'createTime',
@@ -113,66 +130,68 @@
          ]
        },
        data: []
      };
      }
    },
    computed: {
      ...mapGetters(["permission", "flowRoutes"]),
      ids() {
        let ids = [];
        let ids = []
        this.selectionList.forEach(ele => {
          ids.push(ele.id);
        });
        return ids.join(",");
          ids.push(ele.id)
        })
        return ids.join(",")
      },
    },
    methods: {
      searchReset() {
        this.query = {};
        this.onLoad(this.page);
        this.query = {}
        this.onLoad(this.page)
      },
      searchChange(params, done) {
        this.query = params;
        this.page.currentPage = 1;
        this.onLoad(this.page, params);
        done();
        this.query = params
        this.page.currentPage = 1
        this.onLoad(this.page, params)
        done()
      },
      selectionChange(list) {
        this.selectionList = list;
        this.selectionList = list
      },
      selectionClear() {
        this.selectionList = [];
        this.$refs.crud.toggleSelection();
        this.selectionList = []
        this.$refs.crud.toggleSelection()
      },
      handleDetail(row) {
        this.$router.push({path: `/work/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}`});
        this.$router.push({
          path: `/work/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}`
        })
      },
      handleImage(row) {
        this.processInstanceId = row.processInstanceId;
        this.flowBox = true;
        this.processInstanceId = row.processInstanceId
        this.flowBox = true
      },
      currentChange(currentPage){
        this.page.currentPage = currentPage;
      currentChange(currentPage) {
        this.page.currentPage = currentPage
      },
      sizeChange(pageSize){
        this.page.pageSize = pageSize;
      sizeChange(pageSize) {
        this.page.pageSize = pageSize
      },
      refreshChange() {
        this.onLoad(this.page, this.query);
        this.onLoad(this.page, this.query)
      },
      onLoad(page, params = {}) {
        const query = {
          ...this.query,
          category: (params.category) ? flowCategory(params.category) : null
        };
        this.loading = true;
        }
        this.loading = true
        doneList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => {
          const data = res.data.data;
          this.page.total = data.total;
          this.data = data.records;
          this.loading = false;
          this.selectionClear();
        });
          const data = res.data.data
          this.page.total = data.total
          this.data = data.records
          this.loading = false
          this.selectionClear()
        })
      }
    }
  };
</script>
  }
</script>