From 1bfba74b6bea7da6d14b0da1ab8b1efe02e474b3 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 03 一月 2025 13:38:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/views/projectEngineering/projectLibrary/index.vue | 6
src/views/flowable/task/myProcess/detail/index.vue | 56 +
src/components/flow/Dept/index.vue | 5
src/views/projectManage/plan/index.vue | 4
src/components/flow/Role/MyRole.vue | 207 ++++++++
src/views/projectEngineering/projectLibrary/list.js | 186 +++++++
src/components/flow/Dept/MyDept.vue | 105 ++++
src/components/flow/User/SingleUser.vue | 287 +++++++++++
src/router/index.js | 2
src/views/flowable/task/myProcess/send/index.vue | 255 ++++++++--
src/views/projectEngineering/abnormalProject/index.vue | 10
src/views/projectProcess/detail/index.vue | 67 ++
src/views/projectEngineering/abnormalProject/list.js | 4
src/views/projectProcess/index.vue | 27
src/components/flow/User/MultUser.vue | 259 ++++++++++
src/views/projectManage/progress/index.vue | 4
16 files changed, 1,374 insertions(+), 110 deletions(-)
diff --git a/src/components/flow/Dept/MyDept.vue b/src/components/flow/Dept/MyDept.vue
new file mode 100644
index 0000000..ea0b709
--- /dev/null
+++ b/src/components/flow/Dept/MyDept.vue
@@ -0,0 +1,105 @@
+<template>
+ <div>
+ <el-dialog
+ :title="`閫夋嫨鍊欓�夐儴闂╜"
+ :visible.sync="show"
+ width="65%"
+ :destroy-on-close="true"
+ :close-on-click-modal="false"
+ :modal="false"
+ :before-close="close">
+ <el-tree
+ ref="tree"
+ :data="deptTree"
+ show-checkbox
+ node-key="id"
+ :check-strictly="true"
+ :default-expanded-keys="['dept:100']"
+ @check-change="handleCheckChange"
+ >
+ </el-tree>
+ <span slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="submit">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import {flowableDeptTreeSelect} from "@/api/system/user";
+
+export default {
+ name: "MyDept",
+ props: {
+ show: {
+ required: true,
+ type: Boolean
+ },
+ checkeds: {
+ required: true
+ }
+ },
+ watch: {
+ checkeds: {
+ handler(newV) {
+ if (newV && newV.length > 0) {
+ this.checkList = newV
+ this.$nextTick(() => {
+ if (this.$refs.tree) {
+ this.$refs.tree.setCheckedKeys(newV.map(item => item.id));
+ }
+ });
+ } else {
+ this.checkList = []
+ }
+ },
+ deep: true
+ },
+ },
+ data() {
+ return {
+ deptTree: [],
+ checkList: [],
+ }
+ },
+ created() {
+ flowableDeptTreeSelect().then(res => {
+ this.deptTree = res.data
+ })
+ },
+ methods: {
+ setCheckList(newV) {
+ if (newV && newV.length > 0) {
+ this.checkList = newV
+ this.$nextTick(() => {
+ if (this.$refs.tree) {
+ this.$refs.tree.setCheckedKeys(newV.map(item => item.id));
+ }
+ });
+ } else {
+ this.checkList = []
+ }
+ },
+ handleCheckChange(data, checked, indeterminate) {
+ if (checked) {
+ if (this.checkList.indexOf(data) === -1) {
+ this.checkList.push(data)
+ }
+ } else {
+ this.checkList = this.checkList.filter(item => item !== data)
+ }
+ console.log(data, checked, indeterminate);
+ },
+ close() {
+ this.$emit("close")
+ },
+ submit() {
+ this.$emit("submit", this.checkList)
+ }
+ }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/src/components/flow/Dept/index.vue b/src/components/flow/Dept/index.vue
index 44fcb17..7081767 100644
--- a/src/components/flow/Dept/index.vue
+++ b/src/components/flow/Dept/index.vue
@@ -4,7 +4,6 @@
:title="`閫夋嫨鍊欓�夐儴闂╜"
:visible.sync="show"
width="65%"
-
:destroy-on-close="true"
:close-on-click-modal="false"
:modal="false"
@@ -75,7 +74,9 @@
},
handleCheckChange(data, checked, indeterminate) {
if (checked) {
- this.checkList.push(data)
+ if (this.checkList.indexOf(data) === -1) {
+ this.checkList.push(data)
+ }
} else {
this.checkList = this.checkList.filter(item => item !== data)
}
diff --git a/src/components/flow/Role/MyRole.vue b/src/components/flow/Role/MyRole.vue
new file mode 100644
index 0000000..f2027a0
--- /dev/null
+++ b/src/components/flow/Role/MyRole.vue
@@ -0,0 +1,207 @@
+<template>
+ <div>
+ <el-dialog
+ :title="`閫夋嫨鍊欓�夎鑹瞏"
+ :visible.sync="show"
+ width="65%"
+ :destroy-on-close="true"
+ :close-on-click-modal="false"
+ :modal="false"
+ :before-close="close">
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
+ <el-form-item label="瑙掕壊鍚嶇О" prop="roleName">
+ <el-input
+ v-model="queryParams.roleName"
+ placeholder="璇疯緭鍏ヨ鑹插悕绉�"
+ clearable
+ style="width: 240px"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+
+ <el-table ref="dataTable" v-loading="loading" :data="roleList" @selection-change="handleMultipleRoleSelect">
+ <el-table-column type="selection" width="50" align="center" />
+ <el-table-column label="瑙掕壊缂栧彿" prop="roleId" width="120" />
+ <el-table-column label="瑙掕壊鍚嶇О" prop="roleName" :show-overflow-tooltip="true" width="150" />
+ <el-table-column label="鏉冮檺瀛楃" prop="roleKey" :show-overflow-tooltip="true" width="150" />
+ <el-table-column label="鏄剧ず椤哄簭" prop="roleSort" width="100" />
+ <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180">
+ <template slot-scope="scope">
+ <span>{{ parseTime(scope.row.createTime) }}</span>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <pagination
+ v-show="total>0"
+ :total="total"
+ :page-sizes="[5,10]"
+ layout="prev, pager, next"
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ @pagination="getList"
+ />
+
+ <span slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="submit">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import { listRole} from "@/api/system/role";
+import {StrUtil} from "@/utils/StrUtil";
+
+export default {
+ name: "MyRole",
+ dicts: ['sys_normal_disable'],
+ // 鎺ュ彈鐖剁粍浠剁殑鍊�
+ props: {
+ show: {
+ type: Boolean,
+ required: true,
+ default: true
+ },
+ // 鍥炴樉鏁版嵁浼犲��
+ selectValues: {
+ type: Array,
+ default: [],
+ required: false
+ }
+ },
+ data() {
+ return {
+ // 閬僵灞�
+ loading: true,
+ // 閫変腑鏁扮粍
+ ids: [],
+ // 闈炲崟涓鐢�
+ single: true,
+ // 闈炲涓鐢�
+ multiple: true,
+ // 鏄剧ず鎼滅储鏉′欢
+ showSearch: true,
+ // 鎬绘潯鏁�
+ total: 0,
+ // 瑙掕壊琛ㄦ牸鏁版嵁
+ roleList: [],
+ // 寮瑰嚭灞傛爣棰�
+ title: "",
+ // 鏄惁鏄剧ず寮瑰嚭灞�
+ open: false,
+ // 鏌ヨ鍙傛暟
+ queryParams: {
+ pageNum: 1,
+ pageSize: 5,
+ roleName: undefined,
+ roleKey: undefined,
+ status: undefined
+ },
+ // 琛ㄥ崟鍙傛暟
+ form: {},
+ radioSelected: 0, // 鍗曢�夋浼犲��
+ selectRoleList: [] // 鍥炴樉鏁版嵁浼犲��
+ };
+ },
+ watch: {
+ selectValues: {
+ deep: true,
+ handler(newVal) {
+ if (newVal && newVal.length > 0) {
+ this.$nextTick(() => {
+ this.$refs.dataTable.clearSelection();
+ this.selectRoleList = []
+ newVal.forEach(item => {
+ this.roleList.forEach(role => {
+ if (item.roleId === role.roleId) {
+ this.selectRoleList.push(role)
+ this.$refs.dataTable.toggleRowSelection(role)
+ }
+ })
+ });
+ })
+ } else {
+ this.selectRoleList = []
+ }
+ }
+ },
+ roleList: {
+ deep: true,
+ handler(newVal) {
+ if (newVal && newVal.length > 0) {
+ this.$nextTick(() => {
+ this.$refs.dataTable.clearSelection();
+ this.selectValues.forEach(item => {
+ newVal.forEach(role => {
+ if (item.roleId === role.roleId) {
+ this.$refs.dataTable.toggleRowSelection(role)
+ }
+ })
+ });
+ })
+ }
+ }
+ }
+ },
+ mounted() {
+ this.getList();
+ },
+ methods: {
+ setChecked(val) {
+ if (val && val.length > 0) {
+ this.$nextTick(() => {
+ this.$refs.dataTable.clearSelection();
+ this.selectRoleList = val
+ val.forEach(check => {
+ this.roleList.forEach(item => {
+ if (check.roleId === item.roleId) {
+ this.$refs.dataTable.toggleRowSelection(item)
+ }
+ })
+ })
+ });
+ } else {
+ this.selectRoleList = []
+ }
+ },
+ close() {
+ this.$emit("close")
+ },
+ submit() {
+ this.$emit("submit", this.selectRoleList)
+ },
+ /** 鏌ヨ瑙掕壊鍒楄〃 */
+ getList() {
+ this.loading = true;
+ listRole(this.queryParams).then(response => {
+ this.roleList = response.rows;
+ this.total = response.total;
+ this.loading = false;
+ }
+ );
+ },
+ // 澶氶�夋閫変腑鏁版嵁
+ handleMultipleRoleSelect(selection) {
+ this.selectRoleList = selection
+ },
+ /** 鎼滅储鎸夐挳鎿嶄綔 */
+ handleQuery() {
+ this.queryParams.pageNum = 1;
+ this.getList();
+ },
+ /** 閲嶇疆鎸夐挳鎿嶄綔 */
+ resetQuery() {
+ this.handleQuery();
+ },
+ }
+};
+</script>
+<style scoped>
+
+</style>
diff --git a/src/components/flow/User/MultUser.vue b/src/components/flow/User/MultUser.vue
new file mode 100644
index 0000000..c4e18b7
--- /dev/null
+++ b/src/components/flow/User/MultUser.vue
@@ -0,0 +1,259 @@
+<template>
+ <div>
+ <el-dialog
+ :title="`閫夋嫨杞姙鎺ユ敹浜哄憳`"
+ :visible.sync="show"
+ width="65%"
+ :destroy-on-close="true"
+ :close-on-click-modal="false"
+ :modal="false"
+ :before-close="close">
+ <el-row :gutter="20">
+ <!--閮ㄩ棬鏁版嵁-->
+ <el-col :span="6" :xs="24">
+ <div class="head-container">
+ <el-input
+ v-model="deptName"
+ placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�"
+ clearable
+ size="small"
+ prefix-icon="el-icon-search"
+ style="margin-bottom: 20px"
+ />
+ </div>
+ <div class="head-container">
+ <el-tree
+ :data="deptOptions"
+ :props="defaultProps"
+ :expand-on-click-node="false"
+ :filter-node-method="filterNode"
+ ref="tree"
+ node-key="id"
+ default-expand-all
+ highlight-current
+ @node-click="handleNodeClick"
+ />
+ </div>
+ </el-col>
+ <!--鐢ㄦ埛鏁版嵁-->
+ <el-col :span="18" :xs="24">
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+ <el-form-item label="鐢ㄦ埛鍚嶇О" prop="userName">
+ <el-input
+ v-model="queryParams.userName"
+ placeholder="璇疯緭鍏ョ敤鎴峰悕绉�"
+ clearable
+ style="width: 150px"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ <el-table ref="dataTable" v-loading="loading" :row-key="getRowKey" :data="userList" @selection-change="handleUserSelect">
+ <el-table-column type="selection" align="center" />
+ <el-table-column label="鐢ㄦ埛缂栧彿" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
+ <el-table-column label="鐧诲綍璐﹀彿" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
+ <el-table-column label="鐢ㄦ埛濮撳悕" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
+ <el-table-column label="閮ㄩ棬" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
+ <el-table-column label="鎵嬫満鍙风爜" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
+ </el-table>
+ <pagination
+ v-show="total>0"
+ :total="total"
+ :page-sizes="[5,10]"
+ layout="prev, pager, next"
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ @pagination="getList"
+ />
+ </el-col>
+ </el-row>
+ <span slot="footer" class="dialog-footer">
+ <el-button type="danger" @click="getSelected">纭</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import { listUser, deptTreeSelect } from "@/api/system/user";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {StrUtil} from '@/utils/StrUtil'
+
+export default {
+ name: "SingleUser",
+ dicts: ['sys_normal_disable', 'sys_user_sex'],
+ components: { Treeselect },
+ // 鎺ュ彈鐖剁粍浠剁殑鍊�
+ props: {
+ show: {
+ required: true,
+ type: Boolean
+ },
+ // 鍥炴樉鏁版嵁浼犲��
+ selectUserList: {
+ type: Number,
+ default: null,
+ required: false
+ },
+
+ },
+ data() {
+ return {
+ innerSelected: [],
+ // 閬僵灞�
+ loading: true,
+ // 閫変腑鏁扮粍
+ ids: [],
+ // 鏄剧ず鎼滅储鏉′欢
+ showSearch: true,
+ // 鎬绘潯鏁�
+ total: 0,
+ // 鐢ㄦ埛琛ㄦ牸鏁版嵁
+ userList: [],
+ // 寮瑰嚭灞傛爣棰�
+ title: "",
+ // 閮ㄩ棬鏍戦�夐」
+ deptOptions: undefined,
+ // 鏄惁鏄剧ず寮瑰嚭灞�
+ open: false,
+ // 閮ㄩ棬鍚嶇О
+ deptName: undefined,
+ // 琛ㄥ崟鍙傛暟
+ form: {},
+ defaultProps: {
+ children: "children",
+ label: "label"
+ },
+ // 鏌ヨ鍙傛暟
+ queryParams: {
+ pageNum: 1,
+ pageSize: 5,
+ userName: undefined,
+ phonenumber: undefined,
+ status: undefined,
+ deptId: undefined
+ },
+ // 鍒椾俊鎭�
+ columns: [
+ { key: 0, label: `鐢ㄦ埛缂栧彿`, visible: true },
+ { key: 1, label: `鐢ㄦ埛鍚嶇О`, visible: true },
+ { key: 2, label: `鐢ㄦ埛鏄电О`, visible: true },
+ { key: 3, label: `閮ㄩ棬`, visible: true },
+ { key: 4, label: `鎵嬫満鍙风爜`, visible: true },
+ { key: 5, label: `鐘舵�乣, visible: true },
+ { key: 6, label: `鍒涘缓鏃堕棿`, visible: true }
+ ],
+ radioSelected: 0, // 鍗曢�夋浼犲��
+ };
+ },
+ watch: {
+ // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲
+ deptName(val) {
+ this.$refs.tree.filter(val);
+ },
+ selectUserList: {
+ deep: true,
+ handler(newVal) {
+ console.log(this.selectValues, "浼犲叆鐨勫�兼槸")
+ this.setChecked(newVal)
+ },
+ },
+ userList: {
+ deep: true,
+ handler(newVal) {
+ this.$nextTick(() => {
+ this.$refs.dataTable.clearSelection();
+ this.innerSelected.forEach(check => {
+ newVal.forEach(item => {
+ if (check.userId === item.userId) {
+ this.$refs.dataTable.toggleRowSelection(item)
+ }
+ })
+ })
+ });
+ },
+ },
+ },
+ mounted() {
+ this.getList();
+ this.getDeptTree();
+ },
+ methods: {
+ setChecked(val) {
+ this.$nextTick(() => {
+ this.$refs.dataTable.clearSelection();
+ this.innerSelected = val
+ val.forEach(check => {
+ this.userList.forEach(item => {
+ if (check.userId === item.userId) {
+ this.$refs.dataTable.toggleRowSelection(item)
+ }
+ })
+ })
+ });
+ },
+ /** 鏌ヨ鐢ㄦ埛鍒楄〃 */
+ getList() {
+ this.loading = true;
+ listUser(this.queryParams).then(response => {
+ this.userList = response.rows;
+ this.total = response.total;
+ this.loading = false;
+ }
+ );
+ },
+ /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
+ getDeptTree() {
+ deptTreeSelect().then(response => {
+ this.deptOptions = response.data;
+ });
+ },
+ // 淇濆瓨閫変腑鐨勬暟鎹甶d,row-key灏辨槸瑕佹寚瀹氫竴涓猭ey鏍囪瘑杩欎竴琛岀殑鏁版嵁
+ getRowKey (row) {
+ return row.id
+ },
+ // 绛涢�夎妭鐐�
+ filterNode(value, data) {
+ if (!value) return true;
+ return data.label.indexOf(value) !== -1;
+ },
+ // 鑺傜偣鍗曞嚮浜嬩欢
+ handleNodeClick(data) {
+ this.queryParams.deptId = data.id;
+ this.handleQuery();
+ },
+ // 浼犻�掗�変腑鍊�
+ handleUserSelect(selectionList) {
+ console.log("閫変腑鍊�", selectionList)
+ this.innerSelected = selectionList
+ },
+ getSelected() {
+ this.$emit('submit', this.innerSelected);
+ },
+ /** 鎼滅储鎸夐挳鎿嶄綔 */
+ handleQuery() {
+ this.queryParams.pageNum = 1;
+ this.getList();
+ },
+ /** 閲嶇疆鎸夐挳鎿嶄綔 */
+ resetQuery() {
+ this.dateRange = [];
+ this.resetForm("queryForm");
+ this.queryParams.deptId = undefined;
+ this.$refs.tree.setCurrentKey(null);
+ this.handleQuery();
+ },
+ close() {
+ this.$emit("close")
+ },
+ }
+};
+</script>
+<style scoped>
+
+</style>
diff --git a/src/components/flow/User/SingleUser.vue b/src/components/flow/User/SingleUser.vue
new file mode 100644
index 0000000..e8cf64d
--- /dev/null
+++ b/src/components/flow/User/SingleUser.vue
@@ -0,0 +1,287 @@
+<template>
+ <div>
+ <el-dialog
+ :title="`閫夋嫨杞姙鎺ユ敹浜哄憳`"
+ :visible.sync="show"
+ width="65%"
+ :destroy-on-close="true"
+ :close-on-click-modal="false"
+ :modal="false"
+ :before-close="close">
+ <el-row :gutter="20">
+ <!--閮ㄩ棬鏁版嵁-->
+ <el-col :span="6" :xs="24">
+ <div class="head-container">
+ <el-input
+ v-model="deptName"
+ placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�"
+ clearable
+ size="small"
+ prefix-icon="el-icon-search"
+ style="margin-bottom: 20px"
+ />
+ </div>
+ <div class="head-container">
+ <el-tree
+ :data="deptOptions"
+ :props="defaultProps"
+ :expand-on-click-node="false"
+ :filter-node-method="filterNode"
+ ref="tree"
+ node-key="id"
+ default-expand-all
+ highlight-current
+ @node-click="handleNodeClick"
+ />
+ </div>
+ </el-col>
+ <!--鐢ㄦ埛鏁版嵁-->
+ <el-col :span="18" :xs="24">
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+ <el-form-item label="鐢ㄦ埛鍚嶇О" prop="userName">
+ <el-input
+ v-model="queryParams.userName"
+ placeholder="璇疯緭鍏ョ敤鎴峰悕绉�"
+ clearable
+ style="width: 150px"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ <el-table ref="dataTable" v-loading="loading" :row-key="getRowKey" :data="userList" @selection-change="handleUserSelect">
+ <el-table-column type="selection" />
+ <el-table-column label="鐢ㄦ埛缂栧彿" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
+ <el-table-column label="鐧诲綍璐﹀彿" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
+ <el-table-column label="鐢ㄦ埛濮撳悕" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
+ <el-table-column label="閮ㄩ棬" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
+ <el-table-column label="鎵嬫満鍙风爜" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
+ </el-table>
+ <pagination
+ v-show="total>0"
+ :total="total"
+ :page-sizes="[5,10]"
+ layout="prev, pager, next"
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ @pagination="getList"
+ />
+ </el-col>
+ </el-row>
+ <span slot="footer" class="dialog-footer">
+ <el-button type="danger" @click="getSelected">纭</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import { listUser, deptTreeSelect } from "@/api/system/user";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {StrUtil} from '@/utils/StrUtil'
+
+export default {
+ name: "SingleUser",
+ dicts: ['sys_normal_disable', 'sys_user_sex'],
+ components: { Treeselect },
+ // 鎺ュ彈鐖剁粍浠剁殑鍊�
+ props: {
+ show: {
+ required: true,
+ type: Boolean
+ },
+ // 鍥炴樉鏁版嵁浼犲��
+ selectUser: {
+ default: null,
+ required: false
+ },
+
+ },
+ data() {
+ return {
+ innerSelected: null,
+ // 閬僵灞�
+ loading: true,
+ // 閫変腑鏁扮粍
+ ids: [],
+ // 鏄剧ず鎼滅储鏉′欢
+ showSearch: true,
+ // 鎬绘潯鏁�
+ total: 0,
+ // 鐢ㄦ埛琛ㄦ牸鏁版嵁
+ userList: [],
+ // 寮瑰嚭灞傛爣棰�
+ title: "",
+ // 閮ㄩ棬鏍戦�夐」
+ deptOptions: undefined,
+ // 鏄惁鏄剧ず寮瑰嚭灞�
+ open: false,
+ // 閮ㄩ棬鍚嶇О
+ deptName: undefined,
+ // 琛ㄥ崟鍙傛暟
+ form: {},
+ defaultProps: {
+ children: "children",
+ label: "label"
+ },
+ // 鏌ヨ鍙傛暟
+ queryParams: {
+ pageNum: 1,
+ pageSize: 5,
+ userName: undefined,
+ phonenumber: undefined,
+ status: undefined,
+ deptId: undefined
+ },
+ // 鍒椾俊鎭�
+ columns: [
+ { key: 0, label: `鐢ㄦ埛缂栧彿`, visible: true },
+ { key: 1, label: `鐢ㄦ埛鍚嶇О`, visible: true },
+ { key: 2, label: `鐢ㄦ埛鏄电О`, visible: true },
+ { key: 3, label: `閮ㄩ棬`, visible: true },
+ { key: 4, label: `鎵嬫満鍙风爜`, visible: true },
+ { key: 5, label: `鐘舵�乣, visible: true },
+ { key: 6, label: `鍒涘缓鏃堕棿`, visible: true }
+ ],
+ radioSelected: 0, // 鍗曢�夋浼犲��
+ selectUserList: [] // 鍥炴樉鏁版嵁浼犲��
+ };
+ },
+ watch: {
+ // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲
+ deptName(val) {
+ this.$refs.tree.filter(val);
+ },
+ selectUser: {
+ deep: true,
+ handler(newVal) {
+ if (newVal) {
+ this.$nextTick(() => {
+ this.$refs.dataTable.clearSelection();
+ this.userList.forEach(item => {
+ if (newVal === item.userId) {
+ this.innerSelected = item
+ this.$refs.dataTable.toggleRowSelection(item)
+ }
+ })
+ });
+ } else {
+ this.innerSelected = null;
+ }
+ },
+ },
+ userLst: {
+ deep: true,
+ handler(newVal) {
+ if (newVal) {
+ this.$nextTick(() => {
+ this.$refs.dataTable.clearSelection();
+ if (! this.innerSelected) {
+ newVal.forEach(item => {
+ if (this.innerSelected.userId === item.userId) {
+ this.innerSelected = item
+ this.$refs.dataTable.toggleRowSelection(item)
+ }
+ })
+ }
+ });
+ } else {
+ this.innerSelected = null;
+ }
+ },
+ },
+ },
+ mounted() {
+ this.getList();
+ this.getDeptTree();
+ },
+ methods: {
+ setChecked(val) {
+ if (val) {
+ this.$nextTick(() => {
+ this.$refs.dataTable.clearSelection();
+ this.userList.forEach(item => {
+ if (val.userId === item.userId) {
+ this.innerSelected = item
+ this.$refs.dataTable.toggleRowSelection(item)
+ }
+ })
+ });
+ } else {
+ this.innerSelected = null
+ }
+ },
+ /** 鏌ヨ鐢ㄦ埛鍒楄〃 */
+ getList() {
+ this.loading = true;
+ listUser(this.queryParams).then(response => {
+ this.userList = response.rows;
+ this.total = response.total;
+ this.loading = false;
+ }
+ );
+ },
+ /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
+ getDeptTree() {
+ deptTreeSelect().then(response => {
+ this.deptOptions = response.data;
+ });
+ },
+ // 淇濆瓨閫変腑鐨勬暟鎹甶d,row-key灏辨槸瑕佹寚瀹氫竴涓猭ey鏍囪瘑杩欎竴琛岀殑鏁版嵁
+ getRowKey (row) {
+ return row.id
+ },
+ // 绛涢�夎妭鐐�
+ filterNode(value, data) {
+ if (!value) return true;
+ return data.label.indexOf(value) !== -1;
+ },
+ // 鑺傜偣鍗曞嚮浜嬩欢
+ handleNodeClick(data) {
+ this.queryParams.deptId = data.id;
+ this.handleQuery();
+ },
+ // 浼犻�掗�変腑鍊�
+ handleUserSelect(selectionList) {
+ if (selectionList && selectionList.length > 1) {
+ this.$refs.dataTable.clearSelection();
+ this.$refs.dataTable.toggleRowSelection(selectionList[selectionList.length - 1]);
+ }
+ if (selectionList && selectionList.length > 0) {
+ this.innerSelected = selectionList[selectionList.length - 1]
+ console.log(this.innerSelected)
+ } else {
+ this.innerSelected = null
+ }
+ },
+ getSelected() {
+ this.$emit('submit', this.innerSelected);
+ },
+ /** 鎼滅储鎸夐挳鎿嶄綔 */
+ handleQuery() {
+ this.queryParams.pageNum = 1;
+ this.getList();
+ },
+ /** 閲嶇疆鎸夐挳鎿嶄綔 */
+ resetQuery() {
+ this.dateRange = [];
+ this.resetForm("queryForm");
+ this.queryParams.deptId = undefined;
+ this.$refs.tree.setCurrentKey(null);
+ this.handleQuery();
+ },
+ close() {
+ this.$emit("close")
+ },
+ }
+};
+</script>
+<style scoped>
+/deep/ .el-table__header-wrapper .el-checkbox{
+ display:none
+}
+</style>
diff --git a/src/router/index.js b/src/router/index.js
index 396f639..64c8440 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -136,7 +136,7 @@
path: 'task/myProcess/send/index',
component: () => import('@/views/flowable/task/myProcess/send/index'),
name: 'SendRecord',
- meta: { title: '娴佺▼鍙戣捣', icon: '' }
+ meta: { title: '娴佺▼鍔炵悊', icon: '' }
}
]
},
diff --git a/src/views/flowable/task/myProcess/detail/index.vue b/src/views/flowable/task/myProcess/detail/index.vue
index f1d763c..baa1eae 100644
--- a/src/views/flowable/task/myProcess/detail/index.vue
+++ b/src/views/flowable/task/myProcess/detail/index.vue
@@ -1,18 +1,46 @@
<template>
<div class="app-container">
<el-card class="box-card" >
- <div slot="header" class="clearfix">
- <span class="el-icon-document">浠诲姟璇︽儏</span>
+ <div slot="header" class="clearfix" style="display: flex">
+ <div style="flex: 1" class="el-icon-document">{{`浠诲姟璇︽儏锛歚 + this.goBackParams.processName}}</div>
+ <div style="flex: 2">{{projectName + '鈥斺��' + flowName}}</div>
<el-button style="float: right;" size="mini" type="danger" @click="goBack">鍏抽棴</el-button>
</div>
<el-tabs tab-position="top" v-model="activeName" @tab-click="handleClick">
<!--琛ㄥ崟淇℃伅-->
<el-tab-pane label="琛ㄥ崟淇℃伅" name="1">
- <el-col :span="16" :offset="4" v-if="formDataList && formDataList.length > 0">
- <div v-for="(formDataObj, index) in formDataList" :key="index" class="form-warp">
- <div v-if="formDataObj.current" style="margin-bottom: 15px;color: #409eff">褰撳墠闃舵锛�<span style="color: red">{{formDataObj.beforeNodeName}}</span></div>
- <div v-else style="margin-bottom: 15px;color: #409eff">鍓嶇疆闃舵锛�<span style="color: #d5904b">{{formDataObj.beforeNodeName}}</span></div>
- <v-form-render :form-data="formDataObj.formJson" :ref="'form' + index"/>
+ <el-col :span="16" :offset="4">
+ <div v-if="formDataList && formDataList.length > 0">
+ <div v-for="(formDataObj, index) in formDataList" :key="index" class="form-warp">
+ <div v-if="formDataObj.current" style="margin-bottom: 15px;color: #409eff">褰撳墠闃舵锛�<span style="color: red">{{formDataObj.beforeNodeName}}</span></div>
+ <div v-else style="margin-bottom: 15px;color: #409eff">鍓嶇疆闃舵锛�<span style="color: #d5904b">{{formDataObj.beforeNodeName}}</span></div>
+ <div v-if="formDataObj.formJson !== null && formDataObj.formJson !== ''">
+ <v-form-render :form-data="formDataObj.formJson" :ref="'form' + index"/>
+ </div>
+ <div v-else>
+ <el-alert
+ title="鑺傜偣鏃犺〃鍗曟暟鎹�"
+ type="info"
+ :closable="false"
+ >
+ </el-alert>
+ </div>
+ </div>
+ </div>
+ <div v-else>
+ <el-alert
+ title="褰撳墠鑺傜偣鏃犺〃鍗曟暟鎹�"
+ type="info"
+ :closable="false"
+ >
+ </el-alert>
+ <el-alert
+ style="margin-top: 20px"
+ title="鍓嶇疆鑺傜偣鏃犺〃鍗曟暟鎹�"
+ type="info"
+ :closable="false"
+ >
+ </el-alert>
</div>
</el-col>
</el-tab-pane>
@@ -90,6 +118,8 @@
props: {},
data() {
return {
+ projectName: '',
+ flowName: '',
// 妯″瀷xml鏁版嵁
flowData: {},
formDataList: [], // 琛ㄥ崟鍒楄〃
@@ -116,6 +146,8 @@
this.taskForm.taskId = this.$route.query && this.$route.query.taskId;
this.taskForm.procInsId = this.$route.query && this.$route.query.procInsId;
this.goBackParams = this.$route.query && this.$route.query.goBackParams;
+ this.projectName = this.$route.query && this.$route.query.projectName;
+ this.flowName = this.$route.query && this.$route.query.flowName;
// 娴佺▼浠诲姟閲嶈幏鍙栧彉閲忚〃鍗�
this.processVariables( this.taskForm.taskId)
this.getFlowRecordList(this.taskForm.procInsId, this.taskForm.deployId);
@@ -199,7 +231,8 @@
path: '/projectFlow/detail',
query: {
projectId: this.goBackParams.projectId,
- processDefId: this.goBackParams.processDefId
+ processDefId: this.goBackParams.processDefId,
+ processName: this.goBackParams.processName
}
})
},
@@ -236,11 +269,10 @@
}
.form-warp {
+ min-width: 700px;
padding: 20px;
+ margin-top: 5px;
margin-bottom: 20px;
- box-shadow:
- inset 0 -3em 3em rgba(0, 0, 0, 0.1),
- 0 0 0 2px rgb(239, 239, 239),
- 0.3em 0.3em 1em rgba(0, 0, 0, 0.3);
+ box-shadow: rgba(67, 71, 85, 0.27) 0px 0px 0.25em, rgba(90, 125, 188, 0.05) 0px 0.25em 1em;
}
</style>
diff --git a/src/views/flowable/task/myProcess/send/index.vue b/src/views/flowable/task/myProcess/send/index.vue
index 70d044d..76f7c37 100644
--- a/src/views/flowable/task/myProcess/send/index.vue
+++ b/src/views/flowable/task/myProcess/send/index.vue
@@ -1,8 +1,9 @@
<template>
<div class="app-container">
<el-card class="box-card" >
- <div slot="header" class="clearfix">
- <span class="el-icon-document">{{`娴佺▼澶勭悊锛歚 + processName}}</span>
+ <div slot="header" class="clearfix" style="display: flex">
+ <div style="flex: 1" class="el-icon-document">{{`浠诲姟鍔炵悊锛歚 + processName}}</div>
+ <div style="flex: 2">{{projectName + '鈥斺��' + flowName}}</div>
<el-button style="float: right;" size="mini" type="danger" @click="goBack">鍏抽棴</el-button>
</div>
<el-tabs tab-position="top" v-model="activeName" @tab-click="handleClick">
@@ -11,20 +12,19 @@
<!--鍒濆鍖栨祦绋嬪姞杞借〃鍗曚俊鎭�-->
<el-col :span="16" :offset="4" v-if="formDataList && formDataList.length > 0">
<div v-for="(formDataObj, index) in formDataList" :key="index" class="form-warp" style="position: relative">
- <div v-if="!formDataObj.current" style="position: absolute; top: 2px; right: 2px">
- <el-button type="danger" @click="openRejectTask(formDataObj.beforeNodeDefId)">椹冲洖</el-button>
+<!-- 鍓嶇疆鑺傜偣鍙┏鍥� -->
+ <div v-if="!formDataObj.current" style="position: absolute; top: 4px; right: 4px">
+ <el-button type="danger" size="small" @click="openRejectTask(formDataObj.beforeNodeDefId)">椹� 鍥�</el-button>
</div>
- <div v-if="formDataObj.current" style="margin-bottom: 15px;color: #409eff">褰撳墠闃舵锛�<span style="color: red">{{formDataObj.beforeNodeName}}</span></div>
- <div v-else style="margin-bottom: 15px;color: #409eff">鍓嶇疆闃舵锛�<span style="color: #d5904b">{{formDataObj.beforeNodeName}}</span></div>
+<!-- 褰撳墠鑺傜偣鍙崗鍚屻�佽浆鍔炵瓑鎿嶄綔 -->
+ <div v-else style="position: absolute; top: 4px; right: 4px; display: flex;justify-content: center; align-items: center;">
+ <el-button size="small" type="primary" @click="submitForm">纭骞舵彁浜�</el-button>
+ <el-button size="small" type="primary" disabled @click="submitForm">鍗忓悓鍔炵悊(鍔熻兘寮�鍙戜腑)</el-button>
+ <el-button size="small" type="primary" @click="openDelegation(formDataList[0].beforeNodeName)">杞姙</el-button>
+ </div>
+ <div v-if="formDataObj.current" style="margin-bottom: 15px;color: #E6A23C">褰撳墠闃舵锛�<span style="color: #409EFF">{{formDataObj.beforeNodeName}}</span></div>
+ <div v-else style="margin-bottom: 15px;color: #E6A23C">鍓嶇疆闃舵锛�<span style="color: #F56C6C">{{formDataObj.beforeNodeName}}</span></div>
<v-form-render :form-data="formDataObj.formJson" :ref="'form' + index"/>
- </div>
-
-<!-- <v-form-render :form-data="formRenderData" ref="vFormRef"/>-->
- <div style="display: flex;justify-content: center; align-items: center; margin: 20px 0">
- <el-button type="primary" @click="submitForm">纭骞舵彁浜�</el-button>
- <el-button type="primary" disabled @click="submitForm">鍗忓悓鍔炵悊(鍔熻兘寮�鍙戜腑)</el-button>
- <el-button type="primary" @click="openDelegation(formDataList[0].beforeNodeName)">杞姙</el-button>
-<!-- <el-button type="primary" @click="resetForm">閲� 缃�</el-button>-->
</div>
</el-col>
</el-tab-pane>
@@ -83,17 +83,46 @@
</el-alert>
<el-form-item label="鐢ㄦ埛绫诲瀷" prop="peopleType">
<el-select v-model="delegationForm.peopleType" @change="peopleTypeChange" placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷">
- <el-option label="鎸囧畾浜哄憳" disabled value="FIX_USER"></el-option>
- <el-option label="鍊欓�夌敤鎴�" disabled value="USER"></el-option>
+ <el-option label="鎸囧畾浜哄憳" value="FIX_USER"></el-option>
+ <el-option label="鍊欓�夌敤鎴�" value="USER"></el-option>
<el-option label="鍊欓�夐儴闂�" value="DEPT"></el-option>
- <el-option label="鍊欓�夎鑹�" disabled value="ROLE"></el-option>
+ <el-option label="鍊欓�夎鑹�" value="ROLE"></el-option>
</el-select>
</el-form-item>
<el-form-item v-if="delegationForm.peopleType === 'DEPT'" label="鍊欓�夐儴闂�" prop="targetId">
- <Dept ref="dept" :checkeds="delegationDeptSelect" :show="deptShow" @close="closeDept" @submit="getDeptSelect"/>
+ <MyDept ref="dept" :checkeds="delegationDeptSelect" :show="deptShow" @close="closeDept" @submit="getDeptSelect"/>
<div style="display: flex;align-items: center">
- <div>{{deptNames}}</div>
- <el-button style="margin-left: 8px" type="text" @click="editDept">缂栬緫</el-button>
+ <div>
+ <el-tag v-for="dept in delegationDeptSelect" :key="dept.id + 'zxc'" type="info" closable @close="removeDept(dept)">{{dept.label}}</el-tag>
+ </div>
+ <el-button style="margin-left: 8px" type="text" @click="editDept">閫夋嫨</el-button>
+ </div>
+ </el-form-item>
+ <el-form-item v-if="delegationForm.peopleType === 'FIX_USER'" label="鎸囧畾鐢ㄦ埛" prop="targetId">
+ <single-user ref="singleUser" :select-user="delegationForm.targetId" :show="singleUserShow" @close="closeSingleUser" @submit="getSingleUserSelect"/>
+ <div style="display: flex;align-items: center">
+ <div>
+ <el-tag v-for="user in delegationUserSelect" :key="user.userId + 'abc'" type="info" closable @close="removeSingleUser(user)">{{user.nickName}}</el-tag>
+ </div>
+ <el-button style="margin-left: 8px" type="text" @click="editSingleUser">閫夋嫨</el-button>
+ </div>
+ </el-form-item>
+ <el-form-item v-if="delegationForm.peopleType === 'USER'" label="鍊欓�夌敤鎴�" prop="targetId">
+ <mult-user ref="multUser" :select-user="delegationUserSelect" :show="multUserShow" @close="closeMultUser" @submit="getMultUserSelect"/>
+ <div style="display: flex;align-items: center">
+ <div>
+ <el-tag v-for="user in delegationUserSelect" :key="user.userId + 'qwe'" type="info" closable @close="removeMultUser(user)">{{user.nickName}}</el-tag>
+ </div>
+ <el-button style="margin-left: 8px" type="text" @click="editMultUser">閫夋嫨</el-button>
+ </div>
+ </el-form-item>
+ <el-form-item v-if="delegationForm.peopleType === 'ROLE'" label="鍊欓�夎鑹�" prop="targetId">
+ <my-role ref="role" :select-values="delegationRoleSelect" :show="roleShow" @close="closeRole" @submit="getRoleSelect"/>
+ <div style="display: flex;align-items: center">
+ <div>
+ <el-tag v-for="role in delegationRoleSelect" :key="role.roleId + 'rty'" type="info" closable @close="removeRole(role)">{{role.roleName}}</el-tag>
+ </div>
+ <el-button style="margin-left: 8px" type="text" @click="editRole">閫夋嫨</el-button>
</div>
</el-form-item>
</el-form>
@@ -109,12 +138,13 @@
<script>
import {definitionStart, flowXmlAndNode} from "@/api/flowable/definition";
import BpmnViewer from '@/components/Process/viewer';
-import Dept from '@/components/flow/Dept'
+import MyDept from '@/components/flow/Dept/MyDept'
+import SingleUser from '@/components/flow/User/SingleUser'
+import MultUser from '@/components/flow/User/MultUser'
+import MyRole from '@/components/flow/Role/MyRole'
import {completeSubmitFormTask} from "@/api/flowable/process";
import { flowTaskForm } from "@/api/flowable/todo";
import {getNextFlowNodeByStart} from "@/api/flowable/todo";
-import FlowUser from '@/components/flow/User'
-import FlowRole from '@/components/flow/Role'
import {rejectTask} from "@/api/flowable/process";
import {taskDelegation} from "@/api/projectProcess/projectProcess";
@@ -122,15 +152,22 @@
name: "Record",
components: {
BpmnViewer,
- FlowUser,
- FlowRole,
- Dept,
+ MyRole,
+ MyDept,
+ SingleUser,
+ MultUser,
},
props: {},
data() {
return {
- deptShow: false, // 閮ㄩ棬鏄剧ず
- deptNames: '', // 閫変腑鐨勯儴闂ㄥ悕绉�
+ projectName: '',
+ flowName: '',
+ roleShow: false, // 瑙掕壊缁勬樉绀�
+ delegationRoleSelect: [], // 閫変腑瑙掕壊
+ multUserShow: false, // 鐢ㄦ埛缁勬樉绀�
+ singleUserShow: false, // 鎸囧畾鐢ㄦ埛鏄剧ず
+ delegationUserSelect: [], // 閫変腑鐨勭敤鎴�
+ deptShow: false, // 閮ㄩ棬缁勬樉绀�
delegationDeptSelect: [], // 閫変腑閮ㄩ棬
delegationFormRules: {
peopleType: [
@@ -186,6 +223,8 @@
this.processName = this.$route.query && this.$route.query.processName;
this.deployId = this.$route.query && this.$route.query.deployId;
this.taskId = this.$route.query && this.$route.query.taskId;
+ this.projectName = this.$route.query && this.$route.query.projectName;
+ this.flowName = this.$route.query && this.$route.query.flowName;
// 鍒濆鍖栬〃鍗�
this.procDefId = this.$route.query && this.$route.query.procDefId;
this.goBackParams = this.$route.query && this.$route.query.goBackParams;
@@ -193,21 +232,63 @@
this.getFlowFormData(this.taskId);
},
methods: {
+ removeDept(dept) {
+ let index = this.delegationDeptSelect.indexOf(dept);
+ if (index !== -1) {
+ this.delegationDeptSelect.splice(index, 1);
+ }
+ this.delegationForm.targetId = this.delegationDeptSelect.map(item => item.id).join(",")
+ },
+ removeRole(role) {
+ let index = this.delegationRoleSelect.indexOf(role);
+ if (index !== -1) {
+ this.delegationRoleSelect.splice(index, 1);
+ }
+ this.delegationForm.targetId = this.delegationRoleSelect.map(item => item.roleId).join(",")
+ },
+ removeMultUser(user) {
+ let index = this.delegationUserSelect.indexOf(user);
+ if (index !== -1) {
+ this.delegationUserSelect.splice(index, 1);
+ }
+ this.delegationForm.targetId = this.delegationUserSelect.map(item => item.userId).join(",")
+ },
+ removeSingleUser(user) {
+ // 鍥犱负鍙兘閫変竴涓敤鎴凤紝鎵�浠ュ垹浜嗗氨娌′簡
+ this.delegationUserSelect = []
+ this.delegationForm.targetId = ''
+ },
+ getTips() {
+ if (this.delegationForm.peopleType === 'USER' || this.delegationForm.peopleType === 'FIX_USER') {
+ return this.delegationUserSelect.map(item => item.nickName).join("銆�")
+ } else if (this.delegationForm.peopleType === 'DEPT') {
+ return this.delegationDeptSelect.map(item => item.label).join("銆�")
+ } else if (this.delegationForm.peopleType === 'ROLE') {
+ return this.delegationRoleSelect.map(item => item.roleName).join("銆�")
+ }
+ },
delegation() {
- this.$confirm(`纭畾瑕佸皢姝や换鍔′氦鐢便��${this.deptNames}銆戝鐞嗗悧?`, '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- taskDelegation(this.delegationForm).then(res => {
- this.$message.success("宸插彂璧疯浆鍔炵敵璇�")
- this.goBack()
- })
- }).catch(() => {
- this.$message({
- type: 'info',
- message: '宸插彇娑堣浆鍔炴搷浣�'
- });
+ this.$refs['delegationForm'].validate((valid) => {
+ if (valid) {
+ this.$confirm(`纭畾瑕佸皢姝や换鍔′氦鐢便��${this.getTips()}銆戝鐞嗗悧?`, '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ taskDelegation(this.delegationForm).then(res => {
+ this.$message.success("宸插彂璧疯浆鍔炵敵璇�")
+ this.goBack()
+ })
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: '宸插彇娑堣浆鍔炴搷浣�'
+ });
+ });
+ } else {
+ console.log('error submit!!');
+ return false;
+ }
});
},
peopleTypeChange(val) {
@@ -216,6 +297,12 @@
this.$refs.dept.setCheckList(this.delegationDeptSelect)
})
this.deptShow = true
+ } else if (val === 'FIX_USER') {
+ this.singleUserShow = true
+ } else if (val === 'USER') {
+ this.multUserShow = true
+ } else if (val === 'ROLE') {
+ this.roleShow = true
}
},
editDept() {
@@ -224,18 +311,78 @@
})
this.deptShow = true
},
- getDeptSelect(list, names) {
- console.log(list, names)
- if (list) {
- this.delegationForm.targetId = list
- this.delegationDeptSelect = list.split(",")
- this.deptNames = names
+ editSingleUser() {
+ if (this.delegationUserSelect && this.delegationUserSelect.length > 0) {
+ this.$nextTick(() => {
+ this.$refs.singleUser.setChecked(this.delegationUserSelect[0])
+ })
+ }
+ this.singleUserShow = true
+ },
+ editRole() {
+ if (this.delegationRoleSelect && this.delegationRoleSelect.length > 0) {
+ this.$nextTick(() => {
+ this.$refs.role.setChecked(this.delegationRoleSelect)
+ })
+ }
+ this.roleShow = true
+ },
+ editMultUser() {
+ if (this.delegationForm.targetId) {
+ this.$nextTick(() => {
+ this.$refs.multUser.setChecked(this.delegationUserSelect)
+ })
+ }
+ this.multUserShow = true
+ },
+ getDeptSelect(deptList) {
+ if (deptList && deptList.length > 0) {
+ this.delegationForm.targetId = deptList.map(item => item.id).join(",")
+ this.delegationDeptSelect = deptList
}
this.deptShow = false
},
+ getMultUserSelect(userList) {
+ if (userList && userList.length > 0) {
+ this.delegationForm.targetId = userList.map(item => item.userId).join(",")
+ this.delegationUserSelect = userList
+ } else {
+ this.delegationForm.targetId = ''
+ this.delegationUserSelect = []
+ }
+ this.multUserShow = false
+ },
+ getRoleSelect(roleList) {
+ if (roleList && roleList.length > 0) {
+ this.delegationForm.targetId = roleList.map(item => item.roleId).join(",")
+ this.delegationRoleSelect = roleList
+ } else {
+ this.delegationForm.targetId = ''
+ this.delegationRoleSelect = []
+ }
+ this.roleShow = false
+ },
+ getSingleUserSelect(user) {
+ if (user) {
+ this.delegationForm.targetId = user.userId
+ this.delegationUserSelect = [user]
+ } else {
+ this.delegationForm.targetId = ''
+ this.delegationUserSelect = []
+ }
+ this.singleUserShow = false
+ },
closeDept() {
- console.log(this.deptNames)
this.deptShow = false
+ },
+ closeSingleUser() {
+ this.singleUserShow = false
+ },
+ closeRole() {
+ this.roleShow = false
+ },
+ closeMultUser() {
+ this.multUserShow = false
},
openDelegation(taskName) {
this.delegationForm.taskName = taskName
@@ -312,7 +459,8 @@
path: '/projectFlow/detail',
query: {
projectId: this.goBackParams.projectId,
- processDefId: this.goBackParams.processDefId
+ processDefId: this.goBackParams.processDefId,
+ processName: this.goBackParams.processName
}
})
},
@@ -466,11 +614,10 @@
}
.form-warp {
+ min-width: 700px;
padding: 20px;
+ margin-top: 5px;
margin-bottom: 20px;
- box-shadow:
- inset 0 -3em 3em rgba(0, 0, 0, 0.1),
- 0 0 0 2px rgb(239, 239, 239),
- 0.3em 0.3em 1em rgba(0, 0, 0, 0.3);
+ box-shadow: rgba(67, 71, 85, 0.27) 0px 0px 0.25em, rgba(90, 125, 188, 0.05) 0px 0.25em 1em;
}
</style>
diff --git a/src/views/projectEngineering/abnormalProject/index.vue b/src/views/projectEngineering/abnormalProject/index.vue
index 4118f26..a401857 100644
--- a/src/views/projectEngineering/abnormalProject/index.vue
+++ b/src/views/projectEngineering/abnormalProject/index.vue
@@ -92,7 +92,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="椤圭洰鐮�">
- <el-select v-model="queryParams.projectColorCode" clearable placeholder="璇烽�夋嫨" class="select-option"
+ <el-select v-model="queryParams.coding" clearable placeholder="璇烽�夋嫨" class="select-option"
@change="handleQuery">
<el-option v-for="item in dict.type.sys_project_code" :key="item.value" :label="item.label"
:value="item.value"/>
@@ -201,9 +201,9 @@
<template v-if="item.slotName === 'projectStatus'">
<dict-tag :options="dict.type.sys_project_status" :value="scope.row.projectStatus"/>
</template>
- <!-- projectColorCode鎻掓Ы -->
- <template v-if="item.slotName === 'projectColorCode'">
- <dict-tag :options="dict.type.sys_project_code" :value="scope.row.projectColorCode"/>
+ <!-- coding鎻掓Ы -->
+ <template v-if="item.slotName === 'coding'">
+ <dict-tag :options="dict.type.sys_project_code" :value="scope.row.coding"/>
</template>
<!-- projectType鎻掓Ы -->
<template v-if="item.slotName === 'projectType'">
@@ -331,7 +331,7 @@
projectType: '', // 椤圭洰绫诲瀷
importanceType: '', // 閲嶇偣鍒嗙被
projectStatus: '', // 椤圭洰鐘舵��
- projectColorCode: '', // 椤圭洰鐮�
+ coding: '', // 椤圭洰鐮�
investmentType: '', // 璧勯噾绫诲瀷
projectPhase: '', // 椤圭洰闃舵
investType: '', // 鎶曡祫绫诲埆
diff --git a/src/views/projectEngineering/abnormalProject/list.js b/src/views/projectEngineering/abnormalProject/list.js
index d187287..f72eda4 100644
--- a/src/views/projectEngineering/abnormalProject/list.js
+++ b/src/views/projectEngineering/abnormalProject/list.js
@@ -1,7 +1,7 @@
export const current = [
{id: 'projectName', label: '椤圭洰鍚嶇О', visible: true},
{id: 'projectOwnerUnit', label: '涓氫富鍗曚綅', visible: true},
- {id: 'projectColorCode', label: '椤圭洰鐮�', slotName: 'projectColorCode', visible: true},
+ {id: 'coding', label: '椤圭洰鐮�', slotName: 'coding', visible: true},
{id: 'projectCode', label: '椤圭洰浠g爜', visible: true},
{id: 'projectType', label: '椤圭洰绫诲瀷', slotName: 'projectType', visible: true},
{id: 'projectPhase', label: '椤圭洰闃舵', visible: true},
@@ -89,7 +89,7 @@
export const currentRest = [
{ id: 'projectName', label: '椤圭洰鍚嶇О', visible: true },
{ id: 'projectOwnerUnit', label: '涓氫富鍗曚綅', visible: true },
- { id: 'projectColorCode', label: '椤圭洰鐮�', slotName: 'projectColorCode', visible: true },
+ { id: 'coding', label: '椤圭洰鐮�', slotName: 'coding', visible: true },
{ id: 'projectCode', label: '椤圭洰浠g爜', visible: true },
{ id: 'projectType', label: '椤圭洰绫诲瀷', slotName: 'projectType', visible: true },
{ id: 'projectPhase', label: '椤圭洰闃舵', visible: true },
diff --git a/src/views/projectEngineering/projectLibrary/index.vue b/src/views/projectEngineering/projectLibrary/index.vue
index 07fd71e..a5e95d3 100644
--- a/src/views/projectEngineering/projectLibrary/index.vue
+++ b/src/views/projectEngineering/projectLibrary/index.vue
@@ -216,8 +216,8 @@
<template v-if="item.slotName === 'projectStatus'">
<dict-tag :options="dict.type.sys_project_status" :value="scope.row.projectStatus"/>
</template>
- <!-- projectColorCode鎻掓Ы -->
- <template v-if="item.slotName === 'projectColorCode'">
+ <!-- coding鎻掓Ы -->
+ <template v-if="item.slotName === 'coding'">
<dict-tag :options="dict.type.sys_project_code" :value="scope.row.coding"/>
</template>
<!-- projectType鎻掓Ы -->
@@ -350,7 +350,7 @@
projectType: '', // 椤圭洰绫诲瀷
importanceType: '', // 閲嶇偣鍒嗙被
projectStatus: '', // 椤圭洰鐘舵��
- projectColorCode: '', // 椤圭洰鐮�
+ coding: '', // 椤圭洰鐮�
investmentType: '', // 璧勯噾绫诲瀷
projectPhase: '', // 椤圭洰闃舵
investType: '', // 鎶曡祫绫诲埆
diff --git a/src/views/projectEngineering/projectLibrary/list.js b/src/views/projectEngineering/projectLibrary/list.js
index 0da3a9a..bbc8e98 100644
--- a/src/views/projectEngineering/projectLibrary/list.js
+++ b/src/views/projectEngineering/projectLibrary/list.js
@@ -1,7 +1,7 @@
export const current = [
{id: 'projectName', label: '椤圭洰鍚嶇О', visible: true},
{id: 'projectOwnerUnit', label: '涓氫富鍗曚綅', visible: true},
- {id: 'projectColorCode', label: '椤圭洰鐮�', slotName: 'projectColorCode', visible: true},
+ {id: 'coding', label: '椤圭洰鐮�', slotName: 'coding', visible: true},
{id: 'projectCode', label: '椤圭洰浠g爜', visible: true},
{id: 'projectType', label: '椤圭洰绫诲瀷', slotName: 'projectType', visible: true},
{id: 'projectPhase', label: '椤圭洰闃舵', visible: true},
@@ -89,7 +89,189 @@
export const currentRest = [
{id: 'projectName', label: '椤圭洰鍚嶇О', visible: true},
{id: 'projectOwnerUnit', label: '涓氫富鍗曚綅', visible: true},
- {id: 'projectColorCode', label: '椤圭洰鐮�', slotName: 'projectColorCode', visible: true},
+ {id: 'coding', label: '椤圭洰鐮�', slotName: 'coding', visible: true},
+ {id: 'projectCode', label: '椤圭洰浠g爜', visible: true},
+ {id: 'projectType', label: '椤圭洰绫诲瀷', slotName: 'projectType', visible: true},
+ {id: 'projectPhase', label: '椤圭洰闃舵', visible: true},
+ {id: 'totalInvestment', label: '鎬绘姇璧勯', visible: true},
+ {id: 'yearInvestAmount', label: '鏈勾璁″垝鎶曡祫', visible: true},
+ {id: 'planStartTime', label: '椤圭洰骞翠唤', slotName: 'planStartTime', visible: true},
+ {id: 'projectStatus', label: '椤圭洰鐘舵��', slotName: 'projectStatus', visible: true},
+ {id: 'investType', label: '鎶曡祫绫诲埆', slotName: 'investType', visible: true},
+ {id: 'content', label: '寤鸿鍐呭', visible: false},
+ {id: 'fundType', label: '璧勯噾绫诲瀷', visible: false},
+ {id: 'projectContactPerson', label: '椤圭洰鑱旂郴浜�', visible: false},
+ {id: 'contact', label: '鑱旂郴鏂瑰紡', visible: false},
+ {id: 'engineeringIdList', label: '鍏宠仈宸ョ▼', visible: false},
+ {id: 'competentDepartmentList', label: '涓荤閮ㄩ棬', visible: false},
+ {id: 'area', label: '琛屾斂鍖哄垝', visible: false},
+ {id: 'managementCentralizationList', label: '绠$悊褰掑彛', visible: false},
+ {id: 'projectApprovalType', label: '椤圭洰瀹℃壒绫诲瀷', visible: false},
+ {id: 'importanceType', label: '閲嶇偣鍒嗙被', slotName: 'importanceType', visible: false},
+ {id: 'setTime', label: '绔嬮」鏃堕棿', visible: false},
+ {id: 'planCompleteTime', label: '璁″垝绔e伐鏃堕棿', visible: false},
+ {id: 'winUnit', label: '涓爣鍗曚綅', visible: false},
+ {id: 'winAmount', label: '涓爣閲戦', visible: false},
+ {id: 'winTime', label: '涓爣鏃堕棿', visible: false},
+ {id: 'year', label: '骞村害鎶曡祫璁″垝', visible: false},
+ {id: 'address', label: '椤圭洰鍦板潃', visible: false},
+ {id: 'projectBudget', label: '椤圭洰棰勭畻', visible: false},
+ {id: 'beCrossRegion', label: '寤鸿鍦扮偣鏄惁璺ㄥ煙', visible: false},
+ {id: 'constructionLocation', label: '椤圭洰寤鸿鍦扮偣', visible: false},
+ {id: 'detailedAddress', label: '寤鸿璇︾粏鍦板潃', visible: false},
+ {id: 'beCompensationProject', label: '鏄惁鏄ˉ鐮侀」鐩�', visible: false},
+ {id: 'compensationReason', label: '琛ョ爜鍘熷洜', visible: false},
+ {id: 'plannedStartDate', label: '璁″垝寮�宸ユ椂闂�', visible: false},
+ {id: 'expectedCompletionDate', label: '鎷熷缓鎴愭椂闂�', visible: false},
+ {id: 'nationalIndustryClassification', label: '鍥介檯琛屼笟鍒嗙被', visible: false},
+ {id: 'industryClassification', label: '鎵�灞炶涓氬垎绫�', visible: false},
+ {id: 'projectNature', label: '椤圭洰寤烘垚鎬ц川', visible: false},
+ {id: 'projectAttribute', label: '椤圭洰灞炴��', visible: false},
+ {id: 'useEarth', label: '鏄惁浣跨敤鍦熷湴', visible: false},
+ {id: 'contentScale', label: '涓昏寤鸿鍐呭鍙婅妯�', visible: false},
+ {id: 'code', label: '寤虹骞冲彴浠g爜', visible: false},
+ {id: 'projectUnit', label: '椤圭洰鍗曚綅', visible: false},
+ {id: 'projectUnitType', label: '椤圭洰鍗曚綅绫诲瀷', visible: false},
+ {id: 'registrationType', label: '鐧昏娉ㄥ唽绫诲瀷', visible: false},
+ {id: 'holdingSituation', label: '鎺ц偂鎯呭喌', visible: false},
+ {id: 'certificateType', label: '璇佺収绫诲瀷', visible: false},
+ {id: 'certificateNumber', label: '璇佷欢鍙风爜', visible: false},
+ {id: 'registeredAddress', label: '娉ㄥ唽鍦板潃', visible: false},
+ {id: 'registeredCapital', label: '娉ㄥ唽璧勯噾', visible: false},
+ {id: 'legal_representative', label: '娉曚汉浠h〃', visible: false},
+ {id: 'fixedPhone', label: '鍥哄畾鐢佃瘽', visible: false},
+ {id: 'legalPersonIdcard', label: '娉曚汉韬唤璇佸彿', visible: false},
+ {id: 'projectContactPerson', label: '椤圭洰鑱旂郴浜�', visible: false},
+ {id: 'phone', label: '绉诲姩鐢佃瘽', visible: false},
+ {id: 'contactIdcard', label: '鑱旂郴浜鸿韩浠借瘉鍙�', visible: false},
+ {id: 'wechat', label: '寰俊鍙�', visible: false},
+ {id: 'contactAddress', label: '鑱旂郴浜洪�氳鍦板潃', visible: false},
+ {id: 'postCode', label: '閭斂缂栫爜', visible: false},
+ {id: 'email', label: '鐢靛瓙閭', visible: false},
+ {id: 'totalInvestment', label: '椤圭洰鎬绘姇璧勯', visible: false},
+ {id: 'principal', label: '椤圭洰鏈噾', visible: false},
+ {id: 'governmentInvestmentTotal', label: '鏀垮簻鎶曡祫', visible: false},
+ {id: 'centralInvestmentTotal', label: '涓ぎ鎶曡祫', visible: false},
+ {id: 'centralBudgetInvestment', label: '涓ぎ棰勭畻鎶曡祫', visible: false},
+ {id: 'centralFiscalInvestment', label: '涓ぎ璐㈡斂', visible: false},
+ {id: 'centralSpecialBondInvestment', label: '涓ぎ涓撻」鍊哄埜绛归泦鐨勪笓椤瑰缓璁捐祫閲�', visible: false},
+ {id: 'centralSpecialFundInvestment', label: '涓ぎ涓撻」寤鸿鍩洪噾', visible: false},
+ {id: 'provincialInvestmentTotal', label: '鐪佺骇鎶曡祫', visible: false},
+ {id: 'provincialBudgetInvestment', label: '鐪侀绠楀唴鎶曡祫', visible: false},
+ {id: 'provincialFiscalInvestment', label: '鐪佽储鏀挎�у缓璁炬姇璧�', visible: false},
+ {id: 'provincialSpecialFundInvestment', label: '鐪佷笓椤瑰缓璁捐祫閲�', visible: false},
+ {id: 'cityInvestmentTotal', label: '甯�(宸�)鎶曡祫', visible: false},
+ {id: 'cityBudgetInvestment', label: '甯�(宸�)棰勭畻鍐呮姇璧�', visible: false},
+ {id: 'cityFiscalInvestment', label: '甯�(宸�)璐㈡斂鎬ф姇璧�', visible: false},
+ {id: 'citySpecialFundInvestment', label: '甯�(宸�)涓撻」璧勯噾', visible: false},
+ {id: 'countyInvestmentTotal', label: '鍘�(甯傘�佸尯)鎶曡祫', visible: false},
+ {id: 'countyBudgetInvestment', label: '鍖�(鍘�)棰勭畻鍐呮姇璧�', visible: false},
+ {id: 'countyFiscalInvestment', label: '鍖猴紙鍘匡級璐㈡斂鎬у缓璁捐祫閲�', visible: false},
+ {id: 'countySpecialFundInvestment', label: '鍖�(鍘�)涓撻」璧勯噾', visible: false},
+ {id: 'domesticLoanTotal', label: '鍥藉唴璐锋', visible: false},
+ {id: 'bankLoan', label: '閾惰璐锋', visible: false},
+ {id: 'foreignInvestmentTotal', label: '澶栧晢鎶曡祫', visible: false},
+ {id: 'enterpriseSelfRaisedTotal', label: '浼佷笟鑷', visible: false},
+ {id: 'otherInvestmentTotal', label: '鍏朵粬鎶曡祫', visible: false}
+];
+
+
+
+// 娴佺▼鎺ㄨ繘鍒楄〃浣跨敤
+export const projectProcessCurrent = [
+ {id: 'projectName', label: '椤圭洰鍚嶇О', visible: true},
+ {id: 'flowableProcessName', label: '缁戝畾娴佺▼', visible: true, minWidth: 200, showOverflowTooltip: true},
+ {id: 'projectOwnerUnit', label: '涓氫富鍗曚綅', visible: true},
+ {id: 'coding', label: '椤圭洰鐮�', slotName: 'coding', visible: true},
+ {id: 'projectCode', label: '椤圭洰浠g爜', visible: true},
+ {id: 'projectType', label: '椤圭洰绫诲瀷', slotName: 'projectType', visible: true},
+ {id: 'projectPhase', label: '椤圭洰闃舵', visible: true},
+ {id: 'totalInvestment', label: '鎬绘姇璧勯', visible: true},
+ {id: 'yearInvestAmount', label: '鏈勾璁″垝鎶曡祫', visible: true},
+ {id: 'planStartTime', label: '椤圭洰骞翠唤', slotName: 'planStartTime', visible: true},
+ {id: 'projectStatus', label: '椤圭洰鐘舵��', slotName: 'projectStatus', visible: true},
+ {id: 'investType', label: '鎶曡祫绫诲埆', slotName: 'investType', visible: true},
+ {id: 'content', label: '寤鸿鍐呭', visible: false},
+ {id: 'fundType', label: '璧勯噾绫诲瀷', visible: false},
+ {id: 'projectContactPerson', label: '椤圭洰鑱旂郴浜�', visible: false},
+ {id: 'contact', label: '鑱旂郴鏂瑰紡', visible: false},
+ {id: 'engineeringIdList', label: '鍏宠仈宸ョ▼', visible: false},
+ {id: 'competentDepartmentList', label: '涓荤閮ㄩ棬', visible: false},
+ {id: 'area', label: '琛屾斂鍖哄垝', visible: false},
+ {id: 'managementCentralizationList', label: '绠$悊褰掑彛', visible: false},
+ {id: 'projectApprovalType', label: '椤圭洰瀹℃壒绫诲瀷', visible: false},
+ {id: 'importanceType', label: '閲嶇偣鍒嗙被', slotName: 'importanceType', visible: false},
+ {id: 'setTime', label: '绔嬮」鏃堕棿', visible: false},
+ {id: 'planCompleteTime', label: '璁″垝绔e伐鏃堕棿', visible: false},
+ {id: 'winUnit', label: '涓爣鍗曚綅', visible: false},
+ {id: 'winAmount', label: '涓爣閲戦', visible: false},
+ {id: 'winTime', label: '涓爣鏃堕棿', visible: false},
+ {id: 'year', label: '骞村害鎶曡祫璁″垝', visible: false},
+ {id: 'address', label: '椤圭洰鍦板潃', visible: false},
+ {id: 'projectBudget', label: '椤圭洰棰勭畻', visible: false},
+ {id: 'beCrossRegion', label: '寤鸿鍦扮偣鏄惁璺ㄥ煙', visible: false},
+ {id: 'constructionLocation', label: '椤圭洰寤鸿鍦扮偣', visible: false},
+ {id: 'detailedAddress', label: '寤鸿璇︾粏鍦板潃', visible: false},
+ {id: 'beCompensationProject', label: '鏄惁鏄ˉ鐮侀」鐩�', visible: false},
+ {id: 'compensationReason', label: '琛ョ爜鍘熷洜', visible: false},
+ {id: 'plannedStartDate', label: '璁″垝寮�宸ユ椂闂�', visible: false},
+ {id: 'expectedCompletionDate', label: '鎷熷缓鎴愭椂闂�', visible: false},
+ {id: 'nationalIndustryClassification', label: '鍥介檯琛屼笟鍒嗙被', visible: false},
+ {id: 'industryClassification', label: '鎵�灞炶涓氬垎绫�', visible: false},
+ {id: 'projectNature', label: '椤圭洰寤烘垚鎬ц川', visible: false},
+ {id: 'projectAttribute', label: '椤圭洰灞炴��', visible: false},
+ {id: 'useEarth', label: '鏄惁浣跨敤鍦熷湴', visible: false},
+ {id: 'contentScale', label: '涓昏寤鸿鍐呭鍙婅妯�', visible: false},
+ {id: 'code', label: '寤虹骞冲彴浠g爜', visible: false},
+ {id: 'projectUnit', label: '椤圭洰鍗曚綅', visible: false},
+ {id: 'projectUnitType', label: '椤圭洰鍗曚綅绫诲瀷', visible: false},
+ {id: 'registrationType', label: '鐧昏娉ㄥ唽绫诲瀷', visible: false},
+ {id: 'holdingSituation', label: '鎺ц偂鎯呭喌', visible: false},
+ {id: 'certificateType', label: '璇佺収绫诲瀷', visible: false},
+ {id: 'certificateNumber', label: '璇佷欢鍙风爜', visible: false},
+ {id: 'registeredAddress', label: '娉ㄥ唽鍦板潃', visible: false},
+ {id: 'registeredCapital', label: '娉ㄥ唽璧勯噾', visible: false},
+ {id: 'legal_representative', label: '娉曚汉浠h〃', visible: false},
+ {id: 'fixedPhone', label: '鍥哄畾鐢佃瘽', visible: false},
+ {id: 'legalPersonIdcard', label: '娉曚汉韬唤璇佸彿', visible: false},
+ {id: 'projectContactPerson', label: '椤圭洰鑱旂郴浜�', visible: false},
+ {id: 'phone', label: '绉诲姩鐢佃瘽', visible: false},
+ {id: 'contactIdcard', label: '鑱旂郴浜鸿韩浠借瘉鍙�', visible: false},
+ {id: 'wechat', label: '寰俊鍙�', visible: false},
+ {id: 'contactAddress', label: '鑱旂郴浜洪�氳鍦板潃', visible: false},
+ {id: 'postCode', label: '閭斂缂栫爜', visible: false},
+ {id: 'email', label: '鐢靛瓙閭', visible: false},
+ {id: 'totalInvestment', label: '椤圭洰鎬绘姇璧勯', visible: false},
+ {id: 'principal', label: '椤圭洰鏈噾', visible: false},
+ {id: 'governmentInvestmentTotal', label: '鏀垮簻鎶曡祫', visible: false},
+ {id: 'centralInvestmentTotal', label: '涓ぎ鎶曡祫', visible: false},
+ {id: 'centralBudgetInvestment', label: '涓ぎ棰勭畻鎶曡祫', visible: false},
+ {id: 'centralFiscalInvestment', label: '涓ぎ璐㈡斂', visible: false},
+ {id: 'centralSpecialBondInvestment', label: '涓ぎ涓撻」鍊哄埜绛归泦鐨勪笓椤瑰缓璁捐祫閲�', visible: false},
+ {id: 'centralSpecialFundInvestment', label: '涓ぎ涓撻」寤鸿鍩洪噾', visible: false},
+ {id: 'provincialInvestmentTotal', label: '鐪佺骇鎶曡祫', visible: false},
+ {id: 'provincialBudgetInvestment', label: '鐪侀绠楀唴鎶曡祫', visible: false},
+ {id: 'provincialFiscalInvestment', label: '鐪佽储鏀挎�у缓璁炬姇璧�', visible: false},
+ {id: 'provincialSpecialFundInvestment', label: '鐪佷笓椤瑰缓璁捐祫閲�', visible: false},
+ {id: 'cityInvestmentTotal', label: '甯�(宸�)鎶曡祫', visible: false},
+ {id: 'cityBudgetInvestment', label: '甯�(宸�)棰勭畻鍐呮姇璧�', visible: false},
+ {id: 'cityFiscalInvestment', label: '甯�(宸�)璐㈡斂鎬ф姇璧�', visible: false},
+ {id: 'citySpecialFundInvestment', label: '甯�(宸�)涓撻」璧勯噾', visible: false},
+ {id: 'countyInvestmentTotal', label: '鍘�(甯傘�佸尯)鎶曡祫', visible: false},
+ {id: 'countyBudgetInvestment', label: '鍖�(鍘�)棰勭畻鍐呮姇璧�', visible: false},
+ {id: 'countyFiscalInvestment', label: '鍖猴紙鍘匡級璐㈡斂鎬у缓璁捐祫閲�', visible: false},
+ {id: 'countySpecialFundInvestment', label: '鍖�(鍘�)涓撻」璧勯噾', visible: false},
+ {id: 'domesticLoanTotal', label: '鍥藉唴璐锋', visible: false},
+ {id: 'bankLoan', label: '閾惰璐锋', visible: false},
+ {id: 'foreignInvestmentTotal', label: '澶栧晢鎶曡祫', visible: false},
+ {id: 'enterpriseSelfRaisedTotal', label: '浼佷笟鑷', visible: false},
+ {id: 'otherInvestmentTotal', label: '鍏朵粬鎶曡祫', visible: false}
+];
+export const projectProcessCurrentRest = [
+ {id: 'projectName', label: '椤圭洰鍚嶇О', visible: true},
+ {id: 'flowableProcessName', label: '缁戝畾娴佺▼', visible: true, minWidth: 200, showOverflowTooltip: true},
+ {id: 'projectOwnerUnit', label: '涓氫富鍗曚綅', visible: true},
+ {id: 'coding', label: '椤圭洰鐮�', slotName: 'coding', visible: true},
{id: 'projectCode', label: '椤圭洰浠g爜', visible: true},
{id: 'projectType', label: '椤圭洰绫诲瀷', slotName: 'projectType', visible: true},
{id: 'projectPhase', label: '椤圭洰闃舵', visible: true},
diff --git a/src/views/projectManage/plan/index.vue b/src/views/projectManage/plan/index.vue
index fd8d129..2ab1a9f 100644
--- a/src/views/projectManage/plan/index.vue
+++ b/src/views/projectManage/plan/index.vue
@@ -74,9 +74,9 @@
{{ scope.row.reportStatus === 0 ? '宸蹭笂鎶�' : '鏈笂鎶�' }}
</template>
</el-table-column>
- <el-table-column label="椤圭洰鐮�" align="center" prop="projectColorCode">
+ <el-table-column label="椤圭洰鐮�" align="center" prop="coding">
<template slot-scope="scope">
- <el-tag type="success" v-if="scope.row.projectColorCode === 'green'">缁�</el-tag>
+ <el-tag type="success" v-if="scope.row.coding === 'green'">缁�</el-tag>
</template>
</el-table-column>
<el-table-column label="椤圭洰浠g爜" align="center" prop="projectCode" />
diff --git a/src/views/projectManage/progress/index.vue b/src/views/projectManage/progress/index.vue
index 6d4e54a..35ffa83 100644
--- a/src/views/projectManage/progress/index.vue
+++ b/src/views/projectManage/progress/index.vue
@@ -74,9 +74,9 @@
{{ scope.row.reportStatus === 0 ? '宸蹭笂鎶�' : '鏈笂鎶�' }}
</template>
</el-table-column>
- <el-table-column label="椤圭洰鐮�" align="center" prop="projectColorCode">
+ <el-table-column label="椤圭洰鐮�" align="center" prop="coding">
<template slot-scope="scope">
- <el-tag type="success" v-if="scope.row.projectColorCode === 'green'">缁�</el-tag>
+ <el-tag type="success" v-if="scope.row.coding === 'green'">缁�</el-tag>
</template>
</el-table-column>
<el-table-column label="椤圭洰浠g爜" align="center" prop="projectCode" />
diff --git a/src/views/projectProcess/detail/index.vue b/src/views/projectProcess/detail/index.vue
index 352f65f..6c17627 100644
--- a/src/views/projectProcess/detail/index.vue
+++ b/src/views/projectProcess/detail/index.vue
@@ -6,7 +6,7 @@
<h2>椤圭洰鍚嶇О锛歿{detailData.projectName}}</h2>
</div>
<div class="project-info">
- <div class="project-info-item"></div>
+ <div class="project-info-item">娴佺▼鍚嶇О锛歿{queryParams.processName}}</div>
<div class="project-info-item">椤圭洰浠g爜锛歿{detailData.projectCode}}</div>
<div class="project-info-item">
<div style="color: black">
@@ -48,11 +48,6 @@
>
</el-table-column>
<el-table-column
- prop="processName"
- label="娴佺▼鍚嶇О"
- >
- </el-table-column>
- <el-table-column
prop="promoterUnitName"
label="鍙戣捣鍗曚綅"
>
@@ -63,16 +58,36 @@
>
</el-table-column>
<el-table-column
+ align="center"
+ prop="handlerType"
+ label="澶勭悊鏂圭被鍨�"
+ >
+ <template slot-scope="scope">
+ <el-tag v-if="scope.row.handlerType === 'USER'">浜哄憳璐﹀彿</el-tag>
+ <el-tag type="success" v-else-if="scope.row.handlerType === 'DEPT'">鍗曚綅</el-tag>
+ <el-tag type="info" v-else-if="scope.row.handlerType === 'ROLE'">瑙掕壊</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
prop="handlerUnitName"
label="澶勭悊鍗曚綅"
+ :formatter="unitFormatter"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="handlerName"
+ label="鍊欓�夊鐞嗕汉"
+ :formatter="candidateFormatter"
>
</el-table-column>
<el-table-column
prop="handlerName"
label="瀹為檯澶勭悊浜�"
+ :formatter="finalFinishedFormatter"
>
</el-table-column>
<el-table-column
+ align="center"
prop="taskStatus"
label="浠诲姟鐘舵��"
>
@@ -111,7 +126,7 @@
} from "@/api/projectProcess/projectProcess";
export default {
- name: "index",
+ name: "Detail",
data() {
return {
loading: false,
@@ -127,6 +142,7 @@
currentPage: 1,
projectId: null,
processDefId: null,
+ processName: '' // 娴佺▼鍚嶇О
}
}
},
@@ -134,18 +150,45 @@
console.log(this.$route.query, "鍙傛暟")
this.queryParams.projectId = this.$route.query.projectId
this.queryParams.processDefId = this.$route.query.processDefId
+ this.queryParams.processName = this.$route.query.processName
this.loading = true
this.getProjectProcessInfo()
},
methods: {
+ unitFormatter(row) {
+ if (row.handlerType === 'USER') {
+ return null;
+ } else if (row.handlerType === 'DEPT') {
+ return row.handlerUnitName.join("銆�")
+ } else if (row.handlerType === 'ROLE') {
+ return row.handlerUnitName.join('銆�')
+ }
+ },
+ candidateFormatter(row) {
+ if (row.handlerType === 'USER') {
+ return row.handlerName.join('銆�')
+ } else if (row.handlerType === 'DEPT') {
+ return row.handlerUnitName.join('銆�')
+ } else if (row.handlerType === 'ROLE') {
+ return row.handlerUnitName.join('銆�')
+ }
+ },
+ finalFinishedFormatter(row) {
+ // 涓嶆槸宸插畬鎴愮殑鐘舵�佹病鏈夊疄闄呭鐞嗕汉锛屽凡瀹屾垚鐨勭姸鎬佸彧鏈変竴涓汉
+ if (row.taskStatus !== '宸插畬鎴�') {
+ return null
+ } else {
+ return row.handlerName
+ }
+ },
showHandle(row) {
- console.log(this.$store.state.user, "鐢ㄦ埛淇℃伅")
if (row.taskStatus === '寰呭姙') {
if (row.handlerType === "USER") {
- return this.$store.state.user.id === row.handlerId
+ console.log(row.handlerId.indexOf(this.$store.state.user.id) !== -1, "鎴戞槸涓嶆槸")
+ return row.handlerId.indexOf(this.$store.state.user.id) !== -1
} else if (row.handlerType === "DEPT") {
console.log(this.$store.state.user.deptId, "閮ㄩ棬id", row.handlerUnitId)
- return this.$store.state.user.deptId === row.handlerUnitId
+ return row.handlerUnitId.indexOf(this.$store.state.user.deptId) !== -1
// return this.$store.state.user.name === '甯傚彂灞曟敼闈╁' || this.$store.state.user.name === '甯備綇寤哄眬'
} else if (row.handlerType === "ROLE") {
return this.$auth.hasRole(row.handlerUnitName)
@@ -167,6 +210,8 @@
deployId: row.deployId,
procDefId: row.processDefId,
processName: row.taskName,
+ flowName: this.queryParams.processName,
+ projectName: this.detailData.projectName,
taskId: row.taskId,
showAuditing: res.data,
goBackParams: this.queryParams
@@ -177,6 +222,8 @@
goToProcessDetail(row) {
this.$router.push({ path: '/flowable/task/myProcess/detail/index',
query: {
+ projectName: this.detailData.projectName,
+ flowName: this.queryParams.processName,
procInsId: row.processInsId,
deployId: row.deployId,
taskId: row.taskId,
diff --git a/src/views/projectProcess/index.vue b/src/views/projectProcess/index.vue
index db7e1d4..9838167 100644
--- a/src/views/projectProcess/index.vue
+++ b/src/views/projectProcess/index.vue
@@ -88,7 +88,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="椤圭洰鐮�">
- <el-select v-model="queryParams.projectColorCode" clearable placeholder="璇烽�夋嫨" class="select-option" @change="handleQuery">
+ <el-select v-model="queryParams.coding" clearable placeholder="璇烽�夋嫨" class="select-option" @change="handleQuery">
<el-option v-for="item in dict.type.sys_project_code" :key="item.value" :label="item.label"
:value="item.value"/>
</el-select>
@@ -197,6 +197,7 @@
:prop="item.id"
:label="item.label"
:min-width="item.minWidth"
+ :show-overflow-tooltip="item.showOverflowTooltip"
>
<template slot-scope="scope">
<!-- 浣跨敤鍏峰悕鎻掓Ы -->
@@ -205,14 +206,9 @@
<template v-if="item.slotName === 'projectStatus'">
<dict-tag :options="dict.type.sys_project_status" :value="scope.row.projectStatus"/>
</template>
- <!-- projectColorCode鎻掓Ы -->
- <template v-if="item.slotName === 'projectColorCode' || item.slotName === 'coding'">
- <div v-if="scope.row.projectColorCode">
- <dict-tag :options="dict.type.sys_project_code" :value="scope.row.projectColorCode"/>
- </div>
- <div v-else>
- <dict-tag :options="dict.type.sys_project_code" :value="scope.row.coding"/>
- </div>
+ <!-- coding鎻掓Ы -->
+ <template v-if="item.slotName === 'coding' || item.slotName === 'coding'">
+ <dict-tag :options="dict.type.sys_project_code" :value="scope.row.coding"/>
</template>
<!-- projectType鎻掓Ы -->
<template v-if="item.slotName === 'projectType'">
@@ -290,7 +286,7 @@
import { listDefinition } from "@/api/flowable/definition";
import {listInfo, getInfo, delInfo, addInfo, updateInfo} from "@/api/projectEngineering/projectInfo";
import { getProjectProcess } from "@/api/projectProcess/projectProcess"
-import {current, currentRest} from '@/views/projectEngineering/projectLibrary/list';
+import {projectProcessCurrent, projectProcessCurrentRest} from '@/views/projectEngineering/projectLibrary/list';
import FileDialog from '@/views/projectEngineering/projectLibrary/component/FileDialog';
import RunProcess from "@/views/projectProcess/components/RunProcess";
import {getProcessConfigInfoList} from "@/api/projectProcess/processConfigInfo";
@@ -355,7 +351,7 @@
projectType: '', // 椤圭洰绫诲瀷
importanceType: '', // 閲嶇偣鍒嗙被
projectStatus: '', // 椤圭洰鐘舵��
- projectColorCode: '', // 椤圭洰鐮�
+ coding: '', // 椤圭洰鐮�
investmentType: '', // 璧勯噾绫诲瀷
projectPhase: '', // 椤圭洰闃舵
investType: '', // 鎶曡祫绫诲埆
@@ -384,7 +380,7 @@
if(projectCategory){
this.isProjectCategory = true;
}
- const columns = current.map((item, index) => {
+ const columns = projectProcessCurrent.map((item, index) => {
item.index = index + 1;
item.key = index;
item.serialNumber = index + 1;
@@ -402,7 +398,8 @@
path: '/projectFlow/detail',
query: {
projectId: row.id,
- processDefId: row.processDefId
+ processDefId: row.processDefId,
+ processName: row.flowableProcessName
}
})
},
@@ -433,13 +430,13 @@
},
// 閲嶇疆鎺掑簭鐨勬柟娉�
handleResetSort() {
- this.defaultColumns = currentRest.map((item, index) => {
+ this.defaultColumns = projectProcessCurrentRest.map((item, index) => {
item.index = index + 1;
item.key = index;
item.serialNumber = index + 1
return item;
});
- this.columns = currentRest.map((item, index) => {
+ this.columns = projectProcessCurrentRest.map((item, index) => {
item.index = index + 1;
item.key = index;
item.serialNumber = index + 1
--
Gitblit v1.8.0