From 183ac5df096af7b1e8c8bac898dd50d7fba12786 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 22 Dec 2023 15:58:24 +0800
Subject: [PATCH] 业委会
---
src/views/work/process/maintenanceFundApply/detail.vue | 46
src/views/work/process/maintenanceFundApply/edit.vue | 411 +++++++++++++
src/router/views/index.js | 8
src/views/work/done.vue | 332 ++++++----
src/views/property/propertyCapitalApply.vue | 27
src/views/work/todo.vue | 348 ++++++-----
src/views/gzll/components/ownersMemberManager.vue | 522 +++++++++++++++++
src/views/gzll/owners.vue | 16
src/views/work/process/maintenanceFundApply/handle.vue | 49
src/api/owners/ownersCommittee.js | 13
10 files changed, 1,404 insertions(+), 368 deletions(-)
diff --git a/src/api/owners/ownersCommittee.js b/src/api/owners/ownersCommittee.js
index 74036c4..e3f0454 100644
--- a/src/api/owners/ownersCommittee.js
+++ b/src/api/owners/ownersCommittee.js
@@ -2,7 +2,7 @@
export const getList = (current, size, params) => {
return request({
- url: '/api/blade-ownersCommitteeMember/OwnersCommittee/list',
+ url: '/api/blade-ownersCommitteeMember/ownersCommitteeMember/page',
method: 'get',
params: {
...params,
@@ -14,7 +14,7 @@
export const getDetail = (id) => {
return request({
- url: '/api/blade-ownersCommitteeMember/OwnersCommittee/detail',
+ url: '/api/blade-ownersCommitteeMember/ownersCommitteeMember/detail',
method: 'get',
params: {
id
@@ -24,7 +24,7 @@
export const remove = (ids) => {
return request({
- url: '/api/blade-ownersCommitteeMember/OwnersCommittee/remove',
+ url: '/api/blade-ownersCommitteeMember/ownersCommitteeMember/remove',
method: 'post',
params: {
ids,
@@ -34,7 +34,7 @@
export const add = (row) => {
return request({
- url: '/api/blade-ownersCommitteeMember/OwnersCommittee/submit',
+ url: '/api/blade-ownersCommitteeMember/ownersCommitteeMember/submit',
method: 'post',
data: row
})
@@ -42,9 +42,8 @@
export const update = (row) => {
return request({
- url: '/api/blade-ownersCommitteeMember/OwnersCommittee/submit',
+ url: '/api/blade-ownersCommitteeMember/ownersCommitteeMember/submit',
method: 'post',
data: row
})
-}
-
+}
\ No newline at end of file
diff --git a/src/router/views/index.js b/src/router/views/index.js
index 71d0fb4..231a4c5 100644
--- a/src/router/views/index.js
+++ b/src/router/views/index.js
@@ -131,5 +131,13 @@
},
component: () =>
import( /* webpackChunkName: "views" */ '@/views/work/process/maintenanceFundApply/detail')
+ }, {
+ path: 'edit/:taskId/:processInstanceId/:businessId',
+ name: '调整维修基金申请',
+ meta: {
+ i18n: 'work'
+ },
+ component: () =>
+ import( /* webpackChunkName: "views" */ '@/views/work/process/maintenanceFundApply/edit')
}]
}]
\ No newline at end of file
diff --git a/src/views/gzll/components/ownersMemberManager.vue b/src/views/gzll/components/ownersMemberManager.vue
new file mode 100644
index 0000000..e6bdd10
--- /dev/null
+++ b/src/views/gzll/components/ownersMemberManager.vue
@@ -0,0 +1,522 @@
+<template>
+ <el-row>
+ <el-col :span="24">
+ <basic-container>
+ <avue-crud :option="option" :search.sync="search" :table-loading="loading" :data="data" ref="crud"
+ v-model="form" :permission="permissionList" @row-del="rowDel" @row-update="rowUpdate" @row-save="rowSave"
+ :before-open="beforeOpen" :page.sync="page" @search-change="searchChange" @search-reset="searchReset"
+ @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
+ @refresh-change="refreshChange">
+ <template slot="menuLeft">
+ <el-button type="danger" size="small" plain icon="el-icon-delete" v-if="permission.household_delete"
+ @click="handleDelete">删 除
+ </el-button>
+ </template>
+ <template slot-scope="{row}" slot="tenantName">
+ <el-tag>{{ row.tenantName }}</el-tag>
+ </template>
+ <template slot-scope="{row}" slot="roleName">
+ <el-tag>{{ row.roleName }}</el-tag>
+ </template>
+ <template slot-scope="{row}" slot="deptName">
+ <el-tag>{{ row.deptName }}</el-tag>
+ </template>
+ <template slot-scope="{row}" slot="userTypeName">
+ <el-tag>{{ row.userTypeName }}</el-tag>
+ </template>
+ </avue-crud>
+ </basic-container>
+ </el-col>
+ </el-row>
+</template>
+
+<script>
+ import {
+ getList,
+ remove,
+ add,
+ update,
+ getDetail
+ } from "@/api/owners/ownersCommittee.js";
+
+ import {
+ mapGetters
+ } from "vuex";
+ import {
+ getToken
+ } from '@/util/auth';
+ import {
+ downloadXls
+ } from "@/util/util";
+ import {
+ dateNow
+ } from "@/util/date";
+ import NProgress from 'nprogress';
+ import 'nprogress/nprogress.css';
+ import Qs from "qs";
+
+ export default {
+ data() {
+ return {
+ owners: {},
+ form: {},
+ search: {},
+ excelBox: false,
+ selectionList: [],
+ query: {},
+ loading: true,
+ page: {
+ pageSize: 10,
+ currentPage: 1,
+ total: 0
+ },
+ option: {
+ height: 420,
+ // calcHeight: 80,
+ tip: false,
+ searchShow: true,
+ // searchMenuSpan: 6,
+ border: true,
+ index: true,
+ // selection: true,
+ viewBtn: true,
+ addBtn: true,
+ dialogType: 'dialog',
+ dialogClickModal: false,
+ column: [{
+ label: "业委会成员",
+ prop: "userId",
+ span: 12,
+ labelWidth: 120,
+ type: "select",
+ remote: true,
+ props: {
+ label: 'name',
+ value: 'id'
+ },
+ hide: true,
+ dicUrl: `/api/blade-system/user/searchUser?name={{key}}` + `¤t=1&size=30`,
+ rules: [{
+ required: true,
+ message: "请选择业委会成员",
+ trigger: "blur",
+ }, ],
+ }, {
+ label: "名称",
+ prop: "name",
+ search: true,
+ labelWidth: 120,
+ // hide: true,
+ rules: [{
+ required: true,
+ message: "请输入名称",
+ trigger: "blur",
+ }, ],
+ }, {
+ label: "手机号",
+ prop: "mobile",
+ labelWidth: 120,
+ hide: true,
+ rules: [{
+ required: true,
+ message: "请输入手机号",
+ trigger: "blur",
+ }, ],
+ }, {
+ label: "小区",
+ prop: "areaId",
+ searchSpan: 5,
+ type: 'tree',
+ dicUrl: `/api/blade-district/district/getDistrictTree`,
+ props: {
+ label: "name",
+ value: "id"
+ },
+ defaultExpandedKeys: ["361102003"],
+ span: 12,
+ labelWidth: 120,
+ width: 220,
+ overHidden: true,
+ rules: [{
+ required: true,
+ message: "请选择小区",
+ trigger: "blur",
+ }, ],
+ display: false,
+ },
+ {
+ label: "性别",
+ prop: "sex",
+ type: "select",
+ hide: true,
+ labelWidth: 120,
+ dicUrl: "/api/blade-system/dict-biz/dictionary?code=sex",
+ dataType: "number",
+ props: {
+ label: "dictValue",
+ value: "dictKey",
+ },
+ rules: [{
+ required: true,
+ message: "请选择性别",
+ trigger: "blur",
+ }, ],
+ },
+ {
+ label: "职务",
+ prop: "post",
+ type: 'select',
+ labelWidth: 120,
+ // hide: true,
+ // 职务:1主任,2副主任,3秘书长,4委员
+ dicData: [{
+ label: "主任",
+ value: 1
+ },
+ {
+ label: "副主任",
+ value: 2
+ },
+ {
+ label: "秘书长",
+ value: 3
+ },
+ {
+ label: "委员",
+ value: 4
+ }
+ ],
+ rules: [{
+ required: true,
+ message: "请选择职务",
+ trigger: "blur",
+ }, ],
+ },
+ {
+ label: "加入时间",
+ prop: "joinTime",
+ type: "date",
+ labelWidth: 120,
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ // hide: true,
+ rules: [{
+ required: true,
+ message: "请选择加入时间",
+ trigger: "blur",
+ }, ],
+ },
+ {
+ label: "身份证",
+ prop: "identityNum",
+ // type: "date",
+ labelWidth: 120,
+ // hide: true,
+ },
+ {
+ label: "民族",
+ prop: "ethnicity",
+ type: "select",
+ hide: true,
+ labelWidth: 120,
+ dicUrl: "/api/blade-system/dict-biz/dictionary?code=nationType",
+ dataType: "number",
+ props: {
+ label: "dictValue",
+ value: "dictKey",
+ },
+ },
+ {
+ label: "学历",
+ prop: "education",
+ type: "select",
+ hide: true,
+ labelWidth: 120,
+ dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+ dataType: "number",
+ props: {
+ label: "dictValue",
+ value: "dictKey",
+ },
+ },
+
+ // {
+ // label: "工作状态",
+ // prop: "workStatus",
+ // type: "select",
+ // labelWidth: 120,
+ // hide: true,
+ // dicUrl: "/api/blade-system/dict-biz/dictionary?code=workStatusType",
+ // dataType: "number",
+ // props: {
+ // label: "dictValue",
+ // value: "dictKey",
+ // },
+ // },
+
+ // {
+ // label: "婚姻状态",
+ // prop: "maritalStatus",
+ // type: "select",
+ // labelWidth: 120,
+ // hide: true,
+ // dicUrl: "/api/blade-system/dict-biz/dictionary?code=marriageStatusType",
+ // dataType: "number",
+ // props: {
+ // label: "dictValue",
+ // value: "dictKey",
+ // },
+ // },
+
+
+ {
+ label: "排序",
+ prop: "sort",
+ labelWidth: 120,
+ hide: true,
+ },
+ {
+ label: "简介",
+ prop: "profile",
+ labelWidth: 120,
+ hide: true,
+ },
+ ]
+ },
+ ownersId: "",
+ data: [],
+ excelForm: {},
+ excelOption: {
+ submitBtn: false,
+ emptyBtn: false,
+ column: [{
+ label: '模板上传',
+ prop: 'excelFile',
+ type: 'upload',
+ drag: true,
+ loadText: '模板上传中,请稍等',
+ span: 24,
+ propsHttp: {
+ res: 'data'
+ },
+ tip: '请上传 .xls,.xlsx 标准格式文件',
+ action: "/api/blade-system/user/import-user"
+ },
+ {
+ label: "数据覆盖",
+ prop: "isCovered",
+ type: "switch",
+ align: "center",
+ width: 80,
+ dicData: [{
+ label: "否",
+ value: 0
+ },
+ {
+ label: "是",
+ value: 1
+ }
+ ],
+ value: 0,
+ slot: true,
+ rules: [{
+ required: true,
+ message: "请选择是否覆盖",
+ trigger: "blur"
+ }]
+ },
+ {
+ label: '模板下载',
+ prop: 'excelTemplate',
+ formslot: true,
+ span: 24,
+ }
+ ]
+ }
+ };
+ },
+ watch: {},
+ computed: {
+ ...mapGetters(["userInfo", "permission"]),
+ permissionList() {
+ return {
+ addBtn: this.vaildData(this.permission.household_add, true),
+ viewBtn: this.vaildData(this.permission.household_view, true),
+ delBtn: this.vaildData(this.permission.household_delete, true),
+ editBtn: this.vaildData(this.permission.household_edit, true)
+ };
+ }
+ },
+ mounted() {},
+ methods: {
+ init(data) {
+ this.ownersId = data.id
+ this.owners = data
+ this.onLoad(this.page)
+ },
+ rowSave(row, done, loading) {
+ row['ownersId'] = this.ownersId
+ row['areaId'] = this.owners.areaId
+ add(row).then(() => {
+ this.initFlag = false;
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ done();
+ }, error => {
+ window.console.log(error);
+ loading();
+ });
+ },
+ rowUpdate(row, index, done, loading) {
+ update(row).then(() => {
+ this.initFlag = false;
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ done();
+ }, error => {
+ window.console.log(error);
+ loading();
+ });
+ },
+ rowDel(row) {
+ this.$confirm("确定将选择数据删除?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning"
+ })
+ .then(() => {
+ return remove(row.id);
+ })
+ .then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ });
+ },
+ searchReset() {
+ this.query = {};
+ this.treeDeptId = '';
+ this.onLoad(this.page);
+ },
+ searchChange(params, done) {
+ this.query = params;
+ this.page.currentPage = 1;
+ this.onLoad(this.page, params);
+ done();
+ },
+ selectionChange(list) {
+ this.selectionList = list;
+ },
+ selectionClear() {
+ this.selectionList = [];
+ // this.$refs.crud.toggleSelection();
+ },
+ handleDelete() {
+ if (this.selectionList.length === 0) {
+ this.$message.warning("请选择至少一条数据");
+ return;
+ }
+ this.$confirm("确定将选择数据删除?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning"
+ })
+ .then(() => {
+ return remove(this.ids);
+ })
+ .then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ this.$refs.crud.toggleSelection();
+ });
+ },
+ handleImport() {
+ this.excelBox = true;
+ },
+ uploadAfter(res, done, loading, column) {
+ window.console.log(column);
+ this.excelBox = false;
+ this.refreshChange();
+ done();
+ },
+ handleExport() {
+ this.$confirm("是否导出住户数据?", "提示", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning"
+ }).then(() => {
+ NProgress.start();
+ var data = {
+ ...this.query
+ }
+ data = Qs.stringify(data);
+ exportBlob(
+ `/api/blade-household/household/export-household?${this.website.tokenHeader}=${getToken()}&` + data
+ ).then(res => {
+ downloadXls(res.data, `住户数据表${dateNow()}.xlsx`);
+ NProgress.done();
+ })
+ });
+ },
+ handleTemplate() {
+ exportBlob(`/api/blade-system/user/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => {
+ downloadXls(res.data, "住户数据模板.xlsx");
+ })
+ },
+ beforeOpen(done, type) {
+ if (["edit", "view"].includes(type)) {
+ getDetail(this.form.id).then(res => {
+ this.form = res.data.data;
+ });
+ }
+ this.initFlag = true;
+ done();
+ },
+ currentChange(currentPage) {
+ this.page.currentPage = currentPage;
+ },
+ sizeChange(pageSize) {
+ this.page.pageSize = pageSize;
+ },
+ refreshChange() {
+ this.onLoad(this.page, this.query);
+ },
+ onLoad(page, params = {}) {
+ params['ownersId'] = this.ownersId
+ this.loading = true;
+ getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+ const data = res.data.data;
+ this.page.total = data.total;
+ this.data = data.records;
+ this.loading = false;
+ this.selectionClear();
+ });
+ }
+ }
+ };
+</script>
+
+<style>
+ .box {
+ height: 800px;
+ }
+
+ .el-scrollbar {
+ height: 100%;
+ }
+
+ .box .el-scrollbar__wrap {
+ overflow: scroll;
+ }
+</style>
\ No newline at end of file
diff --git a/src/views/gzll/owners.vue b/src/views/gzll/owners.vue
index 031d0b3..1e9ccff 100644
--- a/src/views/gzll/owners.vue
+++ b/src/views/gzll/owners.vue
@@ -11,12 +11,8 @@
</template>
</avue-crud>
- <el-dialog title="业委会成员" append-to-body :visible.sync="memberFlag" width="345px" center>
-
- <span slot="footer" class="dialog-footer">
- <el-button @click="roleBox = false">取 消</el-button>
- <el-button type="primary" @click="submitRole">确 定</el-button>
- </span>
+ <el-dialog title="业委会成员" append-to-body :visible.sync="memberFlag" width="70%" height="60%">
+ <ownersMemberManager ref="ownersMemberManager" />
</el-dialog>
</basic-container>
@@ -35,8 +31,12 @@
} from "vuex"
import website from '@/config/website'
import func from "@/util/func";
+ import ownersMemberManager from "./components/ownersMemberManager"
export default {
+ components: {
+ ownersMemberManager
+ },
data() {
return {
form: {},
@@ -180,6 +180,10 @@
manageMember(row) {
this.memberFlag = true
+ var that = this
+ this.$nextTick(() => {
+ that.$refs.ownersMemberManager.init(row)
+ })
},
rowSave(row, done, loading) {
row.imageUrl = func.join(row.imageUrl)
diff --git a/src/views/property/propertyCapitalApply.vue b/src/views/property/propertyCapitalApply.vue
index ea54ff3..4a0f276 100644
--- a/src/views/property/propertyCapitalApply.vue
+++ b/src/views/property/propertyCapitalApply.vue
@@ -5,11 +5,18 @@
v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
@search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
- <template slot="menuLeft">
- <el-button size="small" icon="el-icon-delete" plain v-if="permission.propertyCapitalApply_delete"
- @click="handleDelete">删 除
+
+ <template slot-scope="scope" slot="menu">
+ <el-button type="text" size="small" v-if="scope.row.applyStatus === 4" @click="handleWork(scope.row)">调整申请
+ </el-button>
+ <el-button type="text" size="small" @click="goDetail(scope.row)">查看申请
</el-button>
</template>
+ <!-- <template slot="menuLeft">
+ <el-button size="small" icon="el-icon-delete" plain v-if="permission.propertyCapitalApply_delete"
+ @click="handleDelete">删 除
+ </el-button>
+ </template> -->
<!-- <template slot="constructionSchemeUrlsType" slot-scope="{file}">
<span>{{ file }}</span>
</template> -->
@@ -56,7 +63,9 @@
border: true,
//stripe:true,
index: true,
- viewBtn: true,
+ editBtn: false,
+ viewBtn: false,
+ delBtn: false,
selection: true,
dialogClickModal: false,
column: [{
@@ -293,6 +302,16 @@
},
},
methods: {
+ handleWork(row) {
+ this.$router.push({
+ path: `/work/process/maintenanceFundApply/edit/${row.taskId}/${row.processInstanceId}/${row.id}`
+ })
+ },
+ goDetail(row) {
+ this.$router.push({
+ path: `/work/process/maintenanceFundApply/detail/${row.processInstanceId}/${row.id}`
+ })
+ },
rowSave(row, done, loading) {
row.constructionSchemeUrls = func.join(row.constructionSchemeUrls)
if (row.constructionSchemeUrls.length > 0) {
diff --git a/src/views/work/done.vue b/src/views/work/done.vue
index ceaf494..ff1ba78 100644
--- a/src/views/work/done.vue
+++ b/src/views/work/done.vue
@@ -1,161 +1,197 @@
<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">
- <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>
- <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>
- </avue-crud>
- <flow-design is-dialog :is-display.sync="flowBox" :process-instance-id="processInstanceId"></flow-design>
- </basic-container>
+ <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">
+ <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>
+ <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>
+ </avue-crud>
+ <flow-design is-dialog :is-display.sync="flowBox" :process-instance-id="processInstanceId"></flow-design>
+ </basic-container>
</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 () {
- return {
- form: {},
- selectionId: '',
- selectionList: [],
- query: {},
- loading: true,
- page: {
- pageSize: 10,
- currentPage: 1,
- total: 0
+ export default {
+ data() {
+ return {
+ form: {},
+ selectionId: '',
+ selectionList: [],
+ query: {},
+ loading: true,
+ page: {
+ pageSize: 10,
+ currentPage: 1,
+ total: 0
+ },
+ processInstanceId: '',
+ flowBox: false,
+ workBox: false,
+ option: {
+ height: 'auto',
+ calcHeight: 30,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true,
+ index: true,
+ // selection: true,
+ editBtn: false,
+ addBtn: false,
+ viewBtn: false,
+ delBtn: false,
+ dialogWidth: 900,
+ menuWidth: 280,
+ dialogClickModal: false,
+ column: [{
+ label: "流程分类",
+ type: "select",
+ row: true,
+ dicUrl: "/api/blade-system/dict/dictionary?code=flow",
+ props: {
+ label: "dictValue",
+ value: "dictKey"
+ },
+ dataType: "number",
+ slot: true,
+ prop: "category",
+ // search: true,
+ hide: true,
+ width: 100,
},
- processInstanceId: '',
- flowBox: false,
- workBox: false,
- option: {
- height: 'auto',
- calcHeight: 30,
- tip: false,
- searchShow: true,
- searchMenuSpan: 6,
- border: true,
- index: true,
- selection: true,
- editBtn: false,
- addBtn: false,
- viewBtn: false,
- delBtn: false,
- dialogWidth: 900,
- menuWidth: 280,
- dialogClickModal: false,
- column: [
- {
- label: "流程分类",
- type: "select",
- row: true,
- dicUrl: "/api/blade-system/dict/dictionary?code=flow",
- props: {
- label: "dictValue",
- value: "dictKey"
- },
- dataType: "number",
- slot: true,
- prop: "category",
- search: true,
- hide: true,
- width: 100,
- },
- {
- label: '流程名称',
- prop: 'processDefinitionName',
- search: true,
- },
- {
- label: '当前步骤',
- prop: 'taskName',
- },
- {
- label: '流程版本',
- prop: 'processDefinitionVersion',
- slot: true,
- width: 80,
- },
- {
- label: '申请时间',
- prop: 'createTime',
- width: 165,
- },
- ]
+ {
+ 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,
},
- data: []
- }
+ {
+ label: '当前步骤',
+ prop: 'taskName',
+ },
+ // {
+ // label: '流程版本',
+ // prop: 'processDefinitionVersion',
+ // slot: true,
+ // width: 80,
+ // },
+ {
+ label: '申请时间',
+ prop: 'createTime',
+ width: 165,
+ },
+ ]
+ },
+ data: []
+ }
},
computed: {
- ...mapGetters(["permission", "flowRoutes"]),
- ids () {
- let ids = []
- this.selectionList.forEach(ele => {
- ids.push(ele.id)
- })
- return ids.join(",")
- },
+ ...mapGetters(["permission", "flowRoutes"]),
+ ids() {
+ let ids = []
+ this.selectionList.forEach(ele => {
+ ids.push(ele.id)
+ })
+ return ids.join(",")
+ },
},
methods: {
- searchReset () {
- this.query = {}
- this.onLoad(this.page)
- },
- searchChange (params, done) {
- this.query = params
- this.page.currentPage = 1
- this.onLoad(this.page, params)
- done()
- },
- selectionChange (list) {
- this.selectionList = list
- },
- selectionClear () {
- this.selectionList = []
- this.$refs.crud.toggleSelection()
- },
- handleDetail (row) {
- 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
- },
- currentChange (currentPage) {
- this.page.currentPage = currentPage
- },
- sizeChange (pageSize) {
- this.page.pageSize = pageSize
- },
- refreshChange () {
- this.onLoad(this.page, this.query)
- },
- onLoad (page, params = {}) {
- const query = {
- ...this.query,
- category: (params.category) ? flowCategory(params.category) : null
- }
- 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()
- })
+ searchReset() {
+ this.query = {}
+ this.onLoad(this.page)
+ },
+ searchChange(params, done) {
+ this.query = params
+ this.page.currentPage = 1
+ this.onLoad(this.page, params)
+ done()
+ },
+ selectionChange(list) {
+ this.selectionList = list
+ },
+ selectionClear() {
+ this.selectionList = []
+ this.$refs.crud.toggleSelection()
+ },
+ handleDetail(row) {
+ 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
+ },
+ currentChange(currentPage) {
+ this.page.currentPage = currentPage
+ },
+ sizeChange(pageSize) {
+ this.page.pageSize = pageSize
+ },
+ refreshChange() {
+ this.onLoad(this.page, this.query)
+ },
+ onLoad(page, params = {}) {
+ const query = {
+ ...this.query,
+ category: (params.category) ? flowCategory(params.category) : null
}
+ 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()
+ })
+ }
}
-}
-</script>
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/work/process/maintenanceFundApply/detail.vue b/src/views/work/process/maintenanceFundApply/detail.vue
index 1083a92..6e0f176 100644
--- a/src/views/work/process/maintenanceFundApply/detail.vue
+++ b/src/views/work/process/maintenanceFundApply/detail.vue
@@ -1,11 +1,11 @@
<template>
<basic-container>
<el-form ref="form" :model="form" label-width="80px">
- <el-row type="flex" class="row-bg" justify="end">
+ <!-- <el-row type="flex" class="row-bg" justify="end">
<el-form-item>
<el-button @click="handleCancel">关闭</el-button>
</el-form-item>
- </el-row>
+ </el-row> -->
<el-card shadow="hover">
<div slot="header">
<span>审批信息</span>
@@ -269,27 +269,27 @@
type: "textarea",
disabled: true
},
- // {
- // label: '施工方案附件',
- // prop: 'constructionSchemeUrls',
- // type: 'upload',
- // span: 24,
- // hide: true,
- // labelWidth: 140,
- // multiple: true,
- // // showFileList: true,
- // propsHttp: {
- // res: 'data',
- // name: "originalName",
- // url: "link"
- // },
- // action: '/api/blade-resource/oss/endpoint/put-file-attach',
- // rules: [{
- // required: true,
- // message: "请上传施工方案",
- // trigger: "blur",
- // }, ],
- // }
+ {
+ label: '施工方案附件',
+ prop: 'constructionSchemeUrls',
+ type: 'upload',
+ span: 24,
+ hide: true,
+ labelWidth: 140,
+ multiple: true,
+ // showFileList: true,
+ propsHttp: {
+ res: 'data',
+ name: "originalName",
+ url: "link"
+ },
+ action: '/api/blade-resource/oss/endpoint/put-file-attach',
+ rules: [{
+ required: true,
+ message: "请上传施工方案",
+ trigger: "blur",
+ }, ],
+ }
],
}
}
diff --git a/src/views/work/process/maintenanceFundApply/edit.vue b/src/views/work/process/maintenanceFundApply/edit.vue
new file mode 100644
index 0000000..fd10207
--- /dev/null
+++ b/src/views/work/process/maintenanceFundApply/edit.vue
@@ -0,0 +1,411 @@
+<template>
+ <basic-container>
+ <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+ <el-row type="flex" class="row-bg" justify="end">
+ <el-form-item>
+ <el-button type="primary" @click="handleAgree">重新提交</el-button>
+ <el-button type="danger" @click="handleDisagree">关闭申请</el-button>
+ <!-- <el-button @click="handleCancel">关闭</el-button> -->
+ </el-form-item>
+ </el-row>
+
+
+
+ <el-card shadow="hover">
+ <div slot="header">
+ <span>审批信息</span>
+ </div>
+ <avue-form ref="crud" :option="option" v-model="form" @submit="handleSubmit">
+ <template slot-scope="{size}" slot="menuForm">
+ <el-button type="primary" :size="size" @click="$refs.crud.submit()">保存信息</el-button>
+ <!-- <el-button :size="size" @click="$refs.form.resetForm()">自定义清空</el-button> -->
+ </template>
+ </avue-form>
+
+
+ </el-card>
+
+
+ <el-card shadow="hover">
+ <div slot="header">
+ <span>流程信息</span>
+ </div>
+ <el-row type="flex" class="row-bg">
+ <el-timeline>
+ <el-timeline-item :key="flow.id" :timestamp="flow.createTime" v-for="flow in flowList" placement="top">
+ <el-card shadow="hover">
+ <p>{{flow.assigneeName}} 在 [{{flow.createTime}}] 开始处理 [{{flow.historyActivityName}}] 环节</p>
+ <p v-if="flow.historyActivityDurationTime!==''">任务历时 [{{flow.historyActivityDurationTime}}]</p>
+ <p v-if="flow.comment!==''">批复意见: [{{flow.comment}}]</p>
+ <p v-if="flow.endTime!==''">结束时间: [{{flow.endTime}}]</p>
+ </el-card>
+ </el-timeline-item>
+ </el-timeline>
+ </el-row>
+ </el-card>
+ <el-card shadow="hover">
+ <div slot="header">
+ <span>流程跟踪</span>
+ </div>
+ <el-row class="row-bg">
+ <flow-design :is-display="true" :process-instance-id="processInstanceId"></flow-design>
+ </el-row>
+ </el-card>
+ </el-form>
+ </basic-container>
+</template>
+
+<script>
+ import {
+ historyFlowList,
+ leaveDetail
+ } from "@/api/work/process";
+
+ import {
+ getList,
+ remove,
+ update,
+ add,
+ getPropertyCapitalApply
+ } from "@/api/property/propertyCapitalApply";
+ import {
+ completeTask
+ } from "@/api/work/work";
+
+ export default {
+ data() {
+ return {
+ taskId: '',
+ businessId: '',
+ processInstanceId: '',
+ src: '',
+ flowList: [],
+ form: {
+ flow: {
+ assigneeName: '',
+ },
+ startTime: '',
+ endTime: '',
+ reason: '',
+ comment: '',
+ },
+ option: {
+ height: "auto",
+ calcHeight: 54,
+ dialogWidth: 1150,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 3,
+ menuWidth: 350,
+ border: true,
+ //stripe:true,
+ submitBtn: false,
+ emptyBtn: false,
+ index: true,
+ viewBtn: true,
+ selection: true,
+ dialogClickModal: false,
+ column: [{
+ 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,
+ rules: [{
+ required: true,
+ message: "请选择小区",
+ trigger: "blur",
+ }, ],
+ },
+ {
+ label: '维修项目名称',
+ prop: 'name',
+ searchLabelWidth: 120,
+ searchSpan: 5,
+ search: true,
+ span: 12,
+ labelWidth: 140,
+ rules: [{
+ required: true,
+ message: "请输入维修项目名称",
+ trigger: "blur",
+ }, ],
+ },
+ {
+ label: "预计开工时间",
+ prop: "runTime",
+ span: 12,
+ labelWidth: 140,
+ type: "date",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ rules: [{
+ required: true,
+ message: "请选择合同开始时间",
+ trigger: "blur",
+ }, ],
+ },
+ {
+ label: "预计竣工时间",
+ prop: "completedTime",
+ labelWidth: 140,
+ span: 12,
+ type: "date",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ rules: [{
+ required: true,
+ message: "请选择合同结束时间",
+ trigger: "blur",
+ }, ],
+ },
+ {
+ label: "项目分摊方式",
+ prop: "allocationWay",
+ labelWidth: 140,
+ value: '按建筑面积分摊',
+ span: 14,
+ row: true,
+ },
+ {
+ label: '联系人',
+ prop: 'linkman',
+ span: 12,
+ labelWidth: 120,
+ search: true,
+ searchSpan: 4,
+ rules: [{
+ required: true,
+ message: "请输入联系人",
+ trigger: "blur",
+ }, ],
+ },
+ {
+ label: '联系方式',
+ prop: 'linkPhone',
+ span: 12,
+ labelWidth: 140,
+ rules: [{
+ required: true,
+ message: "请输入联系方式",
+ trigger: "blur",
+ }, ],
+ },
+ {
+ label: "项目预算总金额(元)",
+ prop: "budgetAmount",
+ span: 12,
+ hide: true,
+ labelWidth: 140,
+ type: 'number',
+ precision: 2,
+ value: '0.00',
+ },
+ {
+ label: "实际预算金额(元)",
+ prop: "actualAmount",
+ span: 12,
+ hide: true,
+ labelWidth: 140,
+ type: 'number',
+ precision: 2,
+ value: '0.00',
+ },
+ {
+ label: "自筹金额(元)",
+ prop: "selfAmount",
+ span: 12,
+ hide: true,
+ labelWidth: 140,
+ type: 'number',
+ precision: 2,
+ value: '0.00',
+ },
+ {
+ label: "预算应拨付金额(元)",
+ prop: "budgetAppropriateAmount",
+ span: 12,
+ hide: true,
+ labelWidth: 140,
+ type: 'number',
+ precision: 2,
+ value: '0.00',
+ },
+ {
+ label: "项目摘要",
+ span: 24,
+ hide: true,
+ prop: "projectDigest",
+ placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
+ labelWidth: 140,
+ type: "textarea",
+ },
+ {
+ label: "项目进度描述",
+ span: 24,
+ hide: true,
+ prop: "projectDescribe",
+ labelWidth: 140,
+ type: "textarea",
+ },
+ // {
+ // label: "批复意见",
+ // span: 24,
+ // hide: true,
+ // prop: "comment",
+ // labelWidth: 140,
+ // type: "textarea",
+ // rules: [{
+ // required: true,
+ // message: "请输入批复意见",
+ // trigger: "blur",
+ // }, ],
+ // },
+ {
+ label: '施工方案附件',
+ prop: 'constructionSchemeUrls',
+ type: 'upload',
+ span: 24,
+ hide: true,
+ labelWidth: 140,
+ multiple: true,
+ // showFileList: true,
+ propsHttp: {
+ res: 'data',
+ name: "originalName",
+ url: "link"
+ },
+ action: '/api/blade-resource/oss/endpoint/put-file-attach',
+ rules: [{
+ required: true,
+ message: "请上传施工方案",
+ trigger: "blur",
+ }, ],
+ }
+ ],
+ }
+ }
+ },
+ created() {
+ this.init();
+ },
+ beforeRouteUpdate(to, from, next) {
+ // 在当前路由改变,但是该组件被复用时调用
+ // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候
+ // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用
+ // 可以访问组件实例 `this`
+ if (to.fullPath !== from.fullPath) {
+ next();
+ this.init();
+ }
+ },
+ methods: {
+ handleSubmit(form, done, loading) {
+ if (form.constructionSchemeUrls.length > 0) {
+ var urls = []
+ var split = form.constructionSchemeUrls.split(",");
+ split.forEach(url => {
+ var names = url.split("jczz/");
+ urls.push(names[1])
+ })
+ form.constructionSchemeUrls = urls.join(",")
+ }
+ update(form).then(
+ () => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ done();
+ },
+ (error) => {
+ window.console.log(error);
+ loading();
+ }
+ );
+ },
+ init() {
+ this.taskId = this.$route.params.taskId;
+ this.processInstanceId = this.$route.params.processInstanceId;
+ this.businessId = this.$route.params.businessId;
+ historyFlowList(this.processInstanceId).then(res => {
+ const data = res.data;
+ if (data.success) {
+ this.flowList = data.data;
+ }
+ })
+ getPropertyCapitalApply(this.businessId).then(res => {
+ const data = res.data;
+ if (data.success) {
+ this.form = data.data;
+ }
+ })
+ },
+ handleAgree() {
+ // if (!this.form.comment) {
+ // this.$message.warning('请先填写批复意见');
+ // return;
+ // }
+ const params = {
+ taskId: this.taskId,
+ processInstanceId: this.processInstanceId,
+ flag: 'ok',
+ comment: this.form.comment,
+ };
+ completeTask(params).then(res => {
+ const data = res.data;
+ if (data.success) {
+ this.$message.success(data.msg);
+ this.$router.$avueRouter.closeTag();
+ this.$router.push({
+ path: `/property/propertyCapitalApply`
+ });
+ } else {
+ this.$message.error(data.msg || '提交失败');
+ }
+ })
+ },
+ handleDisagree() {
+ this.form.comment = '关闭申请'
+ if (!this.form.comment) {
+ this.$message.warning('请先填写批复意见');
+ return;
+ }
+ const params = {
+ taskId: this.taskId,
+ processInstanceId: this.processInstanceId,
+ comment: this.form.comment,
+ };
+ completeTask(params).then(res => {
+ const data = res.data;
+ if (data.success) {
+ this.$message.success(data.msg);
+ this.$router.$avueRouter.closeTag();
+ this.$router.push({
+ path: `/property/propertyCapitalApply`
+ });
+ } else {
+ this.$message.error(data.msg || '提交失败');
+ }
+ })
+ },
+ handleCancel() {
+ this.$router.$avueRouter.closeTag();
+ this.$router.push({
+ path: `/work/todo`
+ });
+ }
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/work/process/maintenanceFundApply/handle.vue b/src/views/work/process/maintenanceFundApply/handle.vue
index ff20c8c..2ad6dad 100644
--- a/src/views/work/process/maintenanceFundApply/handle.vue
+++ b/src/views/work/process/maintenanceFundApply/handle.vue
@@ -12,10 +12,12 @@
<el-card shadow="hover">
+
<div slot="header">
<span>审批信息</span>
</div>
- <avue-form :option="option" :value="form"></avue-form>
+
+ <avue-form :option="option" v-model="form"></avue-form>
<!-- <el-form-item label="申请人">
<el-input :disabled="true" v-model="form.flow.assigneeName" />
</el-form-item>
@@ -101,7 +103,6 @@
startTime: '',
endTime: '',
reason: '',
- comment: '',
},
option: {
height: "auto",
@@ -297,27 +298,27 @@
trigger: "blur",
}, ],
},
- // {
- // label: '施工方案附件',
- // prop: 'constructionSchemeUrls',
- // type: 'upload',
- // span: 24,
- // hide: true,
- // labelWidth: 140,
- // multiple: true,
- // // showFileList: true,
- // propsHttp: {
- // res: 'data',
- // name: "originalName",
- // url: "link"
- // },
- // action: '/api/blade-resource/oss/endpoint/put-file-attach',
- // rules: [{
- // required: true,
- // message: "请上传施工方案",
- // trigger: "blur",
- // }, ],
- // }
+ {
+ label: '施工方案附件',
+ prop: 'constructionSchemeUrls',
+ type: 'upload',
+ span: 24,
+ hide: true,
+ labelWidth: 140,
+ multiple: true,
+ // showFileList: true,
+ propsHttp: {
+ res: 'data',
+ name: "originalName",
+ url: "link"
+ },
+ action: '/api/blade-resource/oss/endpoint/put-file-attach',
+ rules: [{
+ required: true,
+ message: "请上传施工方案",
+ trigger: "blur",
+ }, ],
+ }
],
}
}
@@ -354,7 +355,6 @@
})
},
handleAgree() {
- this.form.comment = '同意'
if (!this.form.comment) {
this.$message.warning('请先填写批复意见');
return;
@@ -379,7 +379,6 @@
})
},
handleDisagree() {
- this.form.comment = '不同意'
if (!this.form.comment) {
this.$message.warning('请先填写批复意见');
return;
diff --git a/src/views/work/todo.vue b/src/views/work/todo.vue
index 27c0d22..e026a87 100644
--- a/src/views/work/todo.vue
+++ b/src/views/work/todo.vue
@@ -1,168 +1,206 @@
<template>
- <basic-container>
- <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form"
- @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-s-check" v-if="permission.work_todo_handle"
- @click.stop="handleWork(scope.row)">处理
- </el-button>
- <el-button type="text" size="small" icon="el-icon-info" v-if="permission.work_todo_detail"
- @click.stop="handleDetail(scope.row)">详情
- </el-button>
- <el-button type="text" size="small" icon="el-icon-search" v-if="permission.work_todo_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>
- </avue-crud>
- <flow-design is-dialog :is-display.sync="flowBox" :process-instance-id="processInstanceId"></flow-design>
- </basic-container>
+ <basic-container>
+ <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form"
+ @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-s-check" v-if="permission.work_todo_handle"
+ @click.stop="handleWork(scope.row)">处理
+ </el-button>
+ <el-button type="text" size="small" icon="el-icon-info" v-if="permission.work_todo_detail"
+ @click.stop="handleDetail(scope.row)">详情
+ </el-button>
+ <el-button type="text" size="small" icon="el-icon-search" v-if="permission.work_todo_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>
+ </avue-crud>
+ <flow-design is-dialog :is-display.sync="flowBox" :process-instance-id="processInstanceId"></flow-design>
+ </basic-container>
</template>
<script>
-import { mapGetters } from "vuex"
-import { todoList } from "@/api/work/work"
-import { flowCategory, flowRoute } from "@/util/flow"
+ import {
+ mapGetters
+ } from "vuex"
+ import {
+ todoList
+ } from "@/api/work/work"
+ import {
+ flowCategory,
+ flowRoute
+ } from "@/util/flow"
-export default {
- data () {
- return {
- form: {},
- selectionId: '',
- selectionList: [],
- query: {},
- loading: true,
- page: {
- pageSize: 10,
- currentPage: 1,
- total: 0
+ export default {
+ data() {
+ return {
+ form: {},
+ selectionId: '',
+ selectionList: [],
+ query: {},
+ loading: true,
+ page: {
+ pageSize: 10,
+ currentPage: 1,
+ total: 0
+ },
+ processInstanceId: '',
+ flowBox: false,
+ workBox: false,
+ option: {
+ height: 'auto',
+ calcHeight: 30,
+ tip: false,
+ simplePage: true,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true,
+ index: true,
+ // selection: true,
+ editBtn: false,
+ addBtn: false,
+ viewBtn: false,
+ delBtn: false,
+ dialogWidth: 900,
+ menuWidth: 280,
+ dialogClickModal: false,
+ column: [{
+ label: "流程分类",
+ type: "select",
+ row: true,
+ dicUrl: "/api/blade-system/dict/dictionary?code=flow",
+ props: {
+ label: "dictValue",
+ value: "dictKey"
+ },
+ dataType: "number",
+ slot: true,
+ prop: "category",
+ // search: true,
+ hide: true,
+ width: 100,
},
- processInstanceId: '',
- flowBox: false,
- workBox: false,
- option: {
- height: 'auto',
- calcHeight: 30,
- tip: false,
- simplePage: true,
- searchShow: true,
- searchMenuSpan: 6,
- border: true,
- index: true,
- selection: true,
- editBtn: false,
- addBtn: false,
- viewBtn: false,
- delBtn: false,
- dialogWidth: 900,
- menuWidth: 280,
- dialogClickModal: false,
- column: [
- {
- label: "流程分类",
- type: "select",
- row: true,
- dicUrl: "/api/blade-system/dict/dictionary?code=flow",
- props: {
- label: "dictValue",
- value: "dictKey"
- },
- dataType: "number",
- slot: true,
- prop: "category",
- search: true,
- hide: true,
- width: 100,
- },
- {
- label: '流程名称',
- prop: 'processDefinitionName',
- search: true,
- },
- {
- label: '当前步骤',
- prop: 'taskName',
- },
- {
- label: '流程版本',
- prop: 'processDefinitionVersion',
- slot: true,
- width: 80,
- },
- {
- label: '申请时间',
- prop: 'createTime',
- width: 165,
- },
- ]
+ {
+ 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,
},
- data: []
- }
+ {
+ label: '当前步骤',
+ prop: 'taskName',
+ },
+ // {
+ // label: '流程版本',
+ // prop: 'processDefinitionVersion',
+ // // slot: true,
+ // width: 80,
+ // },
+ {
+ label: '申请时间',
+ prop: 'createTime',
+ width: 165,
+ },
+ ]
+ },
+ data: []
+ }
},
computed: {
- ...mapGetters(["permission", "flowRoutes"]),
- ids () {
- let ids = []
- this.selectionList.forEach(ele => {
- ids.push(ele.id)
- })
- return ids.join(",")
- },
+ ...mapGetters(["permission", "flowRoutes"]),
+ ids() {
+ let ids = []
+ this.selectionList.forEach(ele => {
+ ids.push(ele.id)
+ })
+ return ids.join(",")
+ },
},
methods: {
- searchReset () {
- this.query = {}
- this.onLoad(this.page)
- },
- searchChange (params, done) {
- this.query = params
- this.page.currentPage = 1
- this.onLoad(this.page, params)
- done()
- },
- selectionChange (list) {
- this.selectionList = list
- },
- selectionClear () {
- this.selectionList = []
- this.$refs.crud.toggleSelection()
- },
- handleWork (row) {
- this.$router.push({ path: `/work/process/${flowRoute(this.flowRoutes, row.category)}/handle/${row.taskId}/${row.processInstanceId}/${row.businessId}` })
- },
- handleDetail (row) {
- 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
- },
- currentChange (currentPage) {
- this.page.currentPage = currentPage
- },
- sizeChange (pageSize) {
- this.page.pageSize = pageSize
- },
- refreshChange () {
- this.onLoad(this.page, this.query)
- },
- onLoad (page, params = {}) {
- const query = {
- ...this.query,
- category: (params.category) ? flowCategory(params.category) : null
- }
- this.loading = true
- todoList(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()
- })
+ searchReset() {
+ this.query = {}
+ this.onLoad(this.page)
+ },
+ searchChange(params, done) {
+ this.query = params
+ this.page.currentPage = 1
+ this.onLoad(this.page, params)
+ done()
+ },
+ selectionChange(list) {
+ this.selectionList = list
+ },
+ selectionClear() {
+ this.selectionList = []
+ this.$refs.crud.toggleSelection()
+ },
+ handleWork(row) {
+ this.$router.push({
+ path: `/work/process/${flowRoute(this.flowRoutes, row.category)}/handle/${row.taskId}/${row.processInstanceId}/${row.businessId}`
+ })
+ },
+ handleDetail(row) {
+ 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
+ },
+ currentChange(currentPage) {
+ this.page.currentPage = currentPage
+ },
+ sizeChange(pageSize) {
+ this.page.pageSize = pageSize
+ },
+ refreshChange() {
+ this.onLoad(this.page, this.query)
+ },
+ onLoad(page, params = {}) {
+ const query = {
+ ...this.query,
+ category: (params.category) ? flowCategory(params.category) : null
}
+ this.loading = true
+ todoList(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()
+ })
+ }
}
-}
-</script>
+ }
+</script>
\ No newline at end of file
--
Gitblit v1.9.3