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