diff --git a/WebSite/.env.development b/WebSite/.env.development index cf84ac68e6c37152715ac52a4df25373efd5ea14..7310cb2a4062ac7ca3ffc3e90f56c1b050c33e9d 100644 --- a/WebSite/.env.development +++ b/WebSite/.env.development @@ -1,2 +1,2 @@ -NODE_ENV = lg +NODE_ENV = jk VUE_APP_BASE_API = '/api' diff --git a/WebSite/package-lock.json b/WebSite/package-lock.json index 934ebe6d704110cb93c9e0a10d4d5fcc3e1601bd..8057261cec593dd5646273c0f1e4e6c3de6bc3ab 100644 --- a/WebSite/package-lock.json +++ b/WebSite/package-lock.json @@ -1720,8 +1720,13 @@ }, "ansi-styles": { "version": "4.3.0", +<<<<<<< HEAD + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", +======= "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", +>>>>>>> develop "dev": true, "optional": true, "requires": { @@ -1762,8 +1767,13 @@ }, "chalk": { "version": "4.1.2", +<<<<<<< HEAD + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", +======= "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/chalk/-/chalk-4.1.2.tgz", "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", +>>>>>>> develop "dev": true, "optional": true, "requires": { @@ -1773,8 +1783,13 @@ }, "color-convert": { "version": "2.0.1", +<<<<<<< HEAD + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", +======= "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", +>>>>>>> develop "dev": true, "optional": true, "requires": { @@ -1783,8 +1798,13 @@ }, "color-name": { "version": "1.1.4", +<<<<<<< HEAD + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", +======= "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/color-name/-/color-name-1.1.4.tgz", "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", +>>>>>>> develop "dev": true, "optional": true }, @@ -1796,8 +1816,13 @@ }, "has-flag": { "version": "4.0.0", +<<<<<<< HEAD + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", +======= "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", +>>>>>>> develop "dev": true, "optional": true }, @@ -1852,8 +1877,13 @@ }, "supports-color": { "version": "7.2.0", +<<<<<<< HEAD + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", +======= "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", +>>>>>>> develop "dev": true, "optional": true, "requires": { @@ -1888,9 +1918,15 @@ } }, "vue-loader-v16": { +<<<<<<< HEAD + "version": "npm:vue-loader@16.8.3", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", +======= "version": "npm:vue-loader@16.8.1", "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/vue-loader/-/vue-loader-16.8.1.tgz", "integrity": "sha1-NU8SvAiXlUFYtxWQ+AApVxOneS0=", +>>>>>>> develop "dev": true, "optional": true, "requires": { @@ -1901,22 +1937,37 @@ "dependencies": { "big.js": { "version": "5.2.2", +<<<<<<< HEAD + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", +======= "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/big.js/-/big.js-5.2.2.tgz", "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", +>>>>>>> develop "dev": true, "optional": true }, "emojis-list": { "version": "3.0.0", +<<<<<<< HEAD + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", +======= "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", +>>>>>>> develop "dev": true, "optional": true }, "json5": { "version": "2.2.0", +<<<<<<< HEAD + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", +======= "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/json5/-/json5-2.2.0.tgz", "integrity": "sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=", +>>>>>>> develop "dev": true, "optional": true, "requires": { @@ -1924,9 +1975,15 @@ } }, "loader-utils": { +<<<<<<< HEAD + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", +======= "version": "2.0.0", "resolved": "http://git.seaskysh.com.cn:8881/nexus/repository/npm-group/loader-utils/-/loader-utils-2.0.0.tgz", "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", +>>>>>>> develop "dev": true, "optional": true, "requires": { diff --git a/WebSite/src/api/common.js b/WebSite/src/api/common.js index be4a62af95fd2cb52e01a5a748daeba2e1064865..64893d7c1957dd609ec56aad264e23d8feae662b 100644 --- a/WebSite/src/api/common.js +++ b/WebSite/src/api/common.js @@ -1,9 +1,9 @@ -import request from '@/core/base/request' +import request from '@/core/base/request'; export default { //鑾峰彇绯荤粺骞翠唤 getConfigYearByType(type) { - return request.post(`baseConfig/queryConfigYearByType?type=${type}`) + return request.post(`baseConfig/queryConfigYearByType?type=${type}`); }, //鑾峰彇褰撳墠鐧婚檰浜烘墍鍦ㄩ儴闂ㄩ瀵间俊鎭� queryCurrentUserLeader() { @@ -11,18 +11,18 @@ export default { }, //淇濆瓨椤圭洰鐢虫姤涔� saveProjectFundApply(model) { - return request.post('projectPlan/saveProjectInfoPlan', model) + return request.post('projectPlan/saveProjectInfoPlan', model); }, //淇濆瓨鏃ュ父/鍏敤鐢虫姤涔� savePublicFundApply(model) { - return request.post('projectPlan/saveProjectDailyPlan', model) + return request.post('projectPlan/saveProjectDailyPlan', model); }, //鎻愪氦椤圭洰/鍏敤/浜哄憳鐢虫姤涔� submitPlan(model) { - return request.post('projectPlan/submitProjectPlan', model) + return request.post('projectPlan/submitProjectPlan', model); }, //閫€鍥為」鐩�/鍏敤/浜哄憳鐢虫姤涔� rejectPlan(model) { - return request.post('projectPlan/rollBackProjectPlan', model) + return request.post('projectPlan/rollBackProjectPlan', model); } -} \ No newline at end of file +}; diff --git a/WebSite/src/api/index.js b/WebSite/src/api/index.js index 034956c193d2d70fd01571e8b41795dde80be9bc..fc9364ca7ca837b6e7b3606ee0935bfb827b0e92 100644 --- a/WebSite/src/api/index.js +++ b/WebSite/src/api/index.js @@ -1,12 +1,14 @@ -import deptSP from './deptSP' -import projectFundApply from './projectFundApply' -import first from './first' -import publicFundApply from './publicFundApply' -import common from './common' +import deptSP from './deptSP'; +import projectFundApply from './projectFundApply'; +import first from './first'; +import publicFundApply from './publicFundApply'; +import common from './common'; +import performance from './performance'; export default { ...deptSP, ...projectFundApply, ...first, ...publicFundApply, - ...common -} \ No newline at end of file + ...common, + ...performance +}; diff --git a/WebSite/src/api/performance.js b/WebSite/src/api/performance.js new file mode 100644 index 0000000000000000000000000000000000000000..a925d440ac0abc3b1a8c9042e5fe38364956c721 --- /dev/null +++ b/WebSite/src/api/performance.js @@ -0,0 +1,40 @@ +import request from '@/core/base/request'; + +export default { + //鑾峰彇鑷垜璇勪环瑙嗗浘鍒楄〃 + selfTargetPage(data) { + return request.post('/target/selfTargetPage', data); + }, + //鑾峰彇璺熻釜璇勪环瑙嗗浘鍒楄〃 + followTargetPage(data) { + return request.post('/target/followTargetPage', data); + }, + //鑾峰彇缁╂晥鏁存敼瑙嗗浘鍒楄〃 + reformTargetPage(data) { + return request.post('/target/reformTargetPage', data); + }, + //鏌ヨ琛ㄦ暟鎹� + queryTargetPlan(parentId, type) { + return request.post( + `/target/queryTargetPlan?parentId=${parentId}&type=${type}` + ); + }, + //鏌ヨ閲岃〃鏁版嵁 + queryTargetByPlanId(id) { + return request.post( + `/target/queryTargetByPlanId?id=${id}` + ); + }, + //鑷瘎淇濆瓨 + saveTargetPlanSelf(data) { + return request.post('/target/saveTargetPlanSelf', data); + }, + //璺熻釜淇濆瓨 + saveTargetPlanOwn(data) { + return request.post('/target/saveTargetPlanOwn', data); + }, + //缁╂晥淇濆瓨 + saveTargetPlanReform(data) { + return request.post('/target/saveTargetPlanReform', data); + } +}; diff --git a/WebSite/src/api/projectLibrary.js b/WebSite/src/api/projectLibrary.js index c4890ccc6f7702667fab9c24ccb24a2351397814..53448b4108ef3abf0fb3f6d1b075c913c3f60e88 100644 --- a/WebSite/src/api/projectLibrary.js +++ b/WebSite/src/api/projectLibrary.js @@ -12,6 +12,9 @@ class ProjectLibrary extends Base { static queryBudgetDeptSwitchDetail(data) { return request.post('/baseConfig/queryBudgetDeptSwitchDetail', data); } + static enterAllProjectPlanType1(data) { + return request.post('/projectLibrary/enterAllProjectPlanType1', data); + } // 鍒濆鍖栫敵鎶ユ帶鍒� static initBudgetDeptSwitch(data) { return request.post('/baseConfig/initBudgetDeptSwitch', data); @@ -20,6 +23,10 @@ class ProjectLibrary extends Base { static openDeptSwitch(data) { return request.post('/baseConfig/openDeptSwitch', data); } + + static queryQuotaMoney(year) { + return request.post(`/projectLibrary/queryQuotaMoney?year=${year}`); + } // 鐢虫姤鎺у埗鎵归噺鍏� static closeDeptSwitch(data) { return request.post('/baseConfig/closeDeptSwitch', data); @@ -266,6 +273,15 @@ class ProjectLibrary extends Base { static listSecondaryMenu(data) { return request.post(`/baseinfo/listSecondaryMenu`, data); } + static submitProjectPlanListToFinish(data) { + return request.post('/projectPlan/submitProjectPlanListToFinish', data); + } + static enterPublicProjectPlan(data) { + return request.post('/projectLibrary/enterPublicProjectPlan', data); + } + static enterPersonProjectPlan(data) { + return request.post('/projectLibrary/enterPersonProjectPlan', data); + } // 鑾峰彇瀛愮骇鑿滃崟 static listChildrenMenu(id) { return request.post(`/baseinfo/listChildrenMenu?id=${id}`); diff --git a/WebSite/src/api/publicFundApply.js b/WebSite/src/api/publicFundApply.js index 3be058ba884a8da0744fad270b2d8f7dd63a05e8..63c66bed946f1719ea2e30b7f68fe91aa2627831 100644 --- a/WebSite/src/api/publicFundApply.js +++ b/WebSite/src/api/publicFundApply.js @@ -1,7 +1,7 @@ -import request from '@/core/base/request' +import request from '@/core/base/request'; export default { publicQueryDailyFund() { return request.post('fund/queryDailyFund'); - }, -} \ No newline at end of file + } +}; diff --git a/WebSite/src/components/ExtendFormTable/index.vue b/WebSite/src/components/ExtendFormTable/index.vue index 34ede7f703edc718e0e736efa53031751e2203f1..534ba958ceec9062600366b6b85af95cbf3949ce 100644 --- a/WebSite/src/components/ExtendFormTable/index.vue +++ b/WebSite/src/components/ExtendFormTable/index.vue @@ -53,6 +53,7 @@ ></InputNumber> <el-date-picker :readonly="!canEdit" + :editable="false" v-if="item.extendType == 'RIQI'" v-model="scope.row.otherJson[`${item.fileName}`]" type="date" diff --git a/WebSite/src/components/Flow/index.vue b/WebSite/src/components/Flow/index.vue index d93ff13b205936653c1c224902f68ee006aa96f6..7eb8e7053457ce95048b1d952868e7da8d4d1522 100644 --- a/WebSite/src/components/Flow/index.vue +++ b/WebSite/src/components/Flow/index.vue @@ -92,11 +92,11 @@ export default { return { btnStates: { isShowSave: true, - isShowSubmit: false, - isShowReject: false, - isShowCancel: false, - isShowChart: false, - isShowHistory: false + isShowSubmit: true, + isShowReject: true, + isShowCancel: true, + isShowChart: true, + isShowHistory: true } }; } diff --git a/WebSite/src/components/PageQuery/index.vue b/WebSite/src/components/PageQuery/index.vue index 6b94436858d6163ddc4f1a42dcbeeefd02bdeca4..fd8500954767cda8f8d4532261c698ba820d7475 100644 --- a/WebSite/src/components/PageQuery/index.vue +++ b/WebSite/src/components/PageQuery/index.vue @@ -199,7 +199,9 @@ export default { ) === -1 ); }); + data.joinedList = data.joinedList.concat(newSelected); + console.log(data.joinedList ,'00000') } else { //鍏ㄤ笉閫� 鎶妀oinedList涓笉鏄綋鍓嶉〉鐨勬壘鍑烘潵 data.joinedList = data.joinedList.filter(item => { diff --git a/WebSite/src/components/YearPicker/index.vue b/WebSite/src/components/YearPicker/index.vue index c70a8d6bc7301925267e00713905303040cf8131..2e71062ecae6243078f0f9a510271ee047db137c 100644 --- a/WebSite/src/components/YearPicker/index.vue +++ b/WebSite/src/components/YearPicker/index.vue @@ -3,6 +3,7 @@ <el-date-picker v-model="year" type="year" + :editable="false" placeholder="閫夋嫨鏃ユ湡" @change="yearChange" :clearable="false" @@ -21,23 +22,23 @@ export default { } }, emits: ['update:modelValue'], - setup(props, {emit}) { + setup(props, { emit }) { const year = computed({ get() { - return props.modelValue + return props.modelValue; }, set(val) { - emit('update:modelValue', val) + emit('update:modelValue', val); } - }) - const yearChange = (val) => { + }); + const yearChange = val => { const valFormat = new Date(val).getFullYear().toString(); year.value = valFormat; - } + }; return { year, yearChange - } + }; } }; </script> diff --git a/WebSite/src/router/guards.js b/WebSite/src/router/guards.js index 825316fe1348f4518867e874d7f0f4ca99133d40..784c33a0223fbdb610306f64a5200af6a9e68c2d 100644 --- a/WebSite/src/router/guards.js +++ b/WebSite/src/router/guards.js @@ -15,7 +15,13 @@ NProgress.configure({ showSpinner: false }); // not authenticated // 鏈璇佺姸鎬佺櫧鍚嶅崟 -const whiteListLv1 = ['/login', '/auth-redirect']; +const whiteListLv1 = [ + '/login', + '/auth-redirect', + '/i/performance/declaration', + '/i/performance/rectification', + '/i/performance/evaluation' +]; // authenticated // 宸茶璇佺姸鎬佺櫧鍚嶅崟 const whiteListLv2 = ['/login', '/auth-redirect', '/i', '/401', '/404']; diff --git a/WebSite/src/router/modules/commonRouter.js b/WebSite/src/router/modules/commonRouter.js index 352e8b716c54c1a23b2d8ec1e010644fde918552..99e2d9a51cd710ccbf394652e5691cdae8a9cfba 100644 --- a/WebSite/src/router/modules/commonRouter.js +++ b/WebSite/src/router/modules/commonRouter.js @@ -21,4 +21,4 @@ const routes = [ } ]; -export default routes; \ No newline at end of file +export default routes; diff --git a/WebSite/src/router/modules/declaration.js b/WebSite/src/router/modules/declaration.js new file mode 100644 index 0000000000000000000000000000000000000000..75e6a72e87c1c4ce1c57bbb333a469ebfc2ff654 --- /dev/null +++ b/WebSite/src/router/modules/declaration.js @@ -0,0 +1,49 @@ +const routes = [ + { + path: 'performance/declaration', + component: () => import('@/views/performance/declaration'), + name: 'declaration' + }, + { + path: 'performance/rectification', + component: () => import('@/views/performance/rectification'), + name: 'rectification' + }, + { + path: 'performance/evaluation', + component: () => import('@/views/performance/evaluation'), + name: 'evaluation' + }, + { + path: 'performance/evaluationview', + component: () => import('@/views/performance/evaluationview'), + name: 'evaluationview' + }, + { + path: 'performance/rectificationview', + component: () => import('@/views/performance/rectificationview'), + name: 'rectificationview' + }, + { + path: 'performance/declarationview', + component: () => import('@/views/performance/declarationview'), + name: 'declarationview' + }, + { + path: 'performance/declarationwatchview', + component: () => import('@/views/performance/declarationwatchview'), + name: 'declarationwatchview' + }, + { + path: 'performance/evaluationwatchview', + component: () => import('@/views/performance/evaluationwatchview'), + name: 'evaluationwatchview' + }, + { + path: 'performance/rectificationwatchview', + component: () => import('@/views/performance/rectificationwatchview'), + name: 'rectificationwatchview' + } +]; + +export default routes; diff --git a/WebSite/src/router/modules/search.js b/WebSite/src/router/modules/search.js index c89945038441b9c9b7b9df24f408ff3344e90df3..02bd2f12a4c629f77467ef7828d17e20ef15cd86 100644 --- a/WebSite/src/router/modules/search.js +++ b/WebSite/src/router/modules/search.js @@ -6,4 +6,4 @@ const routes = [ } ]; -export default routes; \ No newline at end of file +export default routes; diff --git a/WebSite/src/store/path.js b/WebSite/src/store/path.js index b1290a59ab2e0deccc68bb656e25dc9397b9a7c6..2f9be9ab49a95ae9240829a4c2ce94e274dfe43c 100644 --- a/WebSite/src/store/path.js +++ b/WebSite/src/store/path.js @@ -1003,11 +1003,141 @@ const merits = [ children: [] } ]; +const declaration = [ + { + id: '1', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_001', + name: '缁╂晥璺熻釜琛�', + icon: 'fas fa-cube', + parentId: '0', + routingUrl: 'performance/declarationview', + redirectUrl: '', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1', '2'], + children: [] + }, + { + id: '2', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_001', + name: '缁╂晥鏁存敼琛�', + icon: 'fas fa-cube', + parentId: '0', + routingUrl: 'performance/rectificationview', + redirectUrl: '', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1', '2'], + children: [] + }, + { + id: '3', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_001', + name: '缁╂晥鑷瘎琛�', + icon: 'fas fa-cube', + parentId: '0', + routingUrl: 'performance/evaluationview', + redirectUrl: '', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1', '2'], + children: [] + }, + { + id: '4', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_001', + name: '缁╂晥鏁存敼鐩戞帶', + icon: 'fas fa-cube', + parentId: '0', + routingUrl: 'performance/rectificationwatchview', + redirectUrl: '', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1', '2'], + children: [] + }, + { + id: '5', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_001', + name: '缁╂晥鑷瘎瑙嗗浘鐩戞帶', + icon: 'fas fa-cube', + parentId: '0', + routingUrl: 'performance/evaluationwatchview', + redirectUrl: '', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1', '2'], + children: [] + }, + { + id: '6', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_001', + name: '缁╂晥璺熻釜鐩戞帶', + icon: 'fas fa-cube', + parentId: '0', + routingUrl: 'performance/declarationwatchview', + redirectUrl: '', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1', '2'], + children: [] + } +]; + export default { ProjectRegistry, deptBZ, deptSP, search, base, - merits + merits, + declaration }; diff --git a/WebSite/src/views/login/components/SelectUser.vue b/WebSite/src/views/login/components/SelectUser.vue index 1df9597e7778667435f5423753139672804738e5..6cc621fed3407e1ae15311adb4cd00c07dec30e4 100644 --- a/WebSite/src/views/login/components/SelectUser.vue +++ b/WebSite/src/views/login/components/SelectUser.vue @@ -15,11 +15,11 @@ ? 'Please select a user:' : 'No user can be selected.' }}</span> --> - <!-- <span class="big" v-if="env == 'jk'">涓婃捣鍋ュ悍鍖诲闄�</span> --> - <span class="big" v-if="env == 'jk'">涓婃捣绔嬩俊浼氳閲戣瀺瀛﹂櫌</span> + <span class="big" v-if="env == 'jk'">涓婃捣鍋ュ悍鍖诲闄�</span> + <!-- <span class="big" v-if="env == 'jk'">涓婃捣绔嬩俊浼氳閲戣瀺瀛﹂櫌</span> --> <span class="big" v-if="env == 'lg'">涓婃捣鐞嗗伐澶у</span> - <!-- <span class="big" v-if="env == 'sd'">涓婃捣澶у</span> --> - <span class="big" v-if="env == 'sd'">娴峰ぉ淇℃伅</span> + <span class="big" v-if="env == 'sd'">涓婃捣澶у</span> + <!-- <span class="big" v-if="env == 'sd'">娴峰ぉ淇℃伅</span> --> </div> <div v-for="item in transitionList" :key="item.id"> <transition name="fade-transform-bottom"> @@ -66,6 +66,7 @@ export default { { deep: true } ); onMounted(() => { + console.log(process.env.NODE_ENV,'test1') props.userList.forEach(u => { transitionList.push({ ...u, diff --git a/WebSite/src/views/main/basicQuota/publicInfo/index.vue b/WebSite/src/views/main/basicQuota/publicInfo/index.vue index 081f06bcd37b2f7b214c04d11a907b136f94773f..01337b8bc60adf24e8bf26e8969af64ea36ac3c3 100644 --- a/WebSite/src/views/main/basicQuota/publicInfo/index.vue +++ b/WebSite/src/views/main/basicQuota/publicInfo/index.vue @@ -53,7 +53,11 @@ :rules="validList" > <el-form-item label="寮€璇惧闄㈢紪鍙�" prop="openCollegeCode"> - <el-input v-model="form.openCollegeCode"></el-input> + <el-input + oninput="value=value.replace(/[^\d]/g,'')" + maxLength="19" + v-model="form.openCollegeCode" + ></el-input> </el-form-item> <el-form-item label="寮€璇惧闄㈠悕绉�" prop="openCollegeName"> <el-input v-model="form.openCollegeName"></el-input> diff --git a/WebSite/src/views/main/basicSetting/declarationControl/components/List.vue b/WebSite/src/views/main/basicSetting/declarationControl/components/List.vue index cb6a649f7d50cd65553b7e8d31e362540512e5dd..ffd19b779d89bc00ffb18c38b06367a567007f9a 100644 --- a/WebSite/src/views/main/basicSetting/declarationControl/components/List.vue +++ b/WebSite/src/views/main/basicSetting/declarationControl/components/List.vue @@ -14,6 +14,7 @@ :clearable="false" v-model="form.year" type="year" + :editable="false" @change="setYear" placeholder="閫夋嫨骞�" > @@ -28,6 +29,7 @@ : '浜屼笂鐢虫姤璧锋鏃堕棿锛�' }}</span> <el-date-picker + :editable="false" :clearable="false" v-model="form.time" type="datetimerange" diff --git a/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue b/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue index 66978b4298d162fe330977220fce221389c20450..619eede05c4aec0a5e069899483fb2bbed01bac4 100644 --- a/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue +++ b/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue @@ -47,6 +47,7 @@ <el-form-item label="寮€濮嬫椂闂�" prop="beginDate"> <el-date-picker :clearable="false" + :editable="false" v-model="ruleForm.beginDate" type="date" placeholder="閫夋嫨鏃ユ湡" @@ -58,6 +59,7 @@ <el-form-item label="缁撴潫鏃堕棿" prop="endDate"> <el-date-picker :clearable="false" + :editable="false" v-model="ruleForm.endDate" type="date" placeholder="閫夋嫨鏃ユ湡" diff --git a/WebSite/src/views/main/performance-library/index.vue b/WebSite/src/views/main/performance-library/index.vue index e4a76a7e0bb00800826bfc0d4355ad5b678ee752..c4c1f1a7e4c72c28ee902c2c9c53ca9eef56d622 100644 --- a/WebSite/src/views/main/performance-library/index.vue +++ b/WebSite/src/views/main/performance-library/index.vue @@ -6,6 +6,7 @@ <div class="flexItem"> <el-date-picker v-model="checkInfo.year" + :editable="false" type="year" placeholder="閫夋嫨骞�" :clearable="false" diff --git a/WebSite/src/views/main/project-library/department/components/Detail.vue b/WebSite/src/views/main/project-library/department/components/Detail.vue index d3fe4955088f11fcebe791e630b0ac1537a613b0..58d12787193f982f62a87b1e1780cfd30a7c1793 100644 --- a/WebSite/src/views/main/project-library/department/components/Detail.vue +++ b/WebSite/src/views/main/project-library/department/components/Detail.vue @@ -97,20 +97,18 @@ export default { const handleBack = () => { cxt.emit('switch-page', 'List'); }; - const handleSave = applyInfo => { + const handleSave = async applyInfo => { console.log('鎴戠偣鍑讳簡淇濆瓨'); // if (!props.oId) { // applyInfo.year = sessionStorage.getItem('year'); // applyInfo.planType = 'XIANGMUKU'; // } applyInfo.planType = 'XIANGMUKU'; - ProjectLibrary.saveProjectInfoPlan(applyInfo).then(res => { - console.log('res', res); - init(res.data[0], '1'); - }); + const res = await ProjectLibrary.saveProjectInfoPlan(applyInfo); + init(res.data[0], '1'); }; - const handleSubmit = flowOutput => { - console.log('鎷垮埌鎻愪氦缁勪欢杩斿洖鐨勬暟鎹�', flowOutput); + const handleSubmit = async(flowOutput, applyInfo) => { + console.log('鎷垮埌鎻愪氦缁勪欢杩斿洖鐨勬暟鎹�111', applyInfo); let { nodeIds, remake } = flowOutput; let nodeIdArr = []; nodeIdArr.push(nodeIds); @@ -119,12 +117,45 @@ export default { nodeIds: nodeIdArr, remake }; - // this.formLine.actionFlowCmd = actionFlowCmd; - ProjectLibrary.submitProjectPlan(actionFlowCmd).then(res => { - console.log('res', res); - ElMessage.success('鎻愪氦鎴愬姛'); - handleBack(); + const newApplyInfo=JSON.parse(JSON.stringify(applyInfo)); + newApplyInfo.summaryJson = JSON.stringify(newApplyInfo.summaryJson); + newApplyInfo.projectTargetCmd.subOtherArrayJson = JSON.stringify( + newApplyInfo.projectTargetCmd.subOtherArrayJson + ); + newApplyInfo.projectTargetCmd.summaryJson = JSON.stringify( + newApplyInfo.projectTargetCmd.summaryJson + ); + if ( + newApplyInfo.attachmentInfoOutList && + newApplyInfo.attachmentInfoOutList.length > 0 + ) { + newApplyInfo.attachmentInfoOutList = newApplyInfo.attachmentInfoOutList.map( + v => v.id + ); + } + newApplyInfo.planSubjectList.forEach(item => { + item.otherJson = JSON.stringify(item.otherJson); + if (item.subjectDetailList.length <= 0) { + item.subjectDetailList = null; + } else { + item.subjectDetailList.forEach(jtem => { + jtem.otherJson = JSON.stringify(jtem.otherJson); + }); + } }); + + newApplyInfo.planType = 'XIANGMUKU'; + await handleSave(newApplyInfo); + await ProjectLibrary.submitProjectPlan(actionFlowCmd).then(resp => { + console.log('resp', resp); + ElMessage.success('鎻愪氦鎴愬姛'); + handleBack(); + }); + // ProjectLibrary.submitProjectPlan(actionFlowCmd).then(res => { + // console.log('res', res); + // ElMessage.success('鎻愪氦鎴愬姛'); + // handleBack(); + // }); }; const handleReturn = flowOutput => { console.log('鎷垮埌鍥為€€缁勪欢杩斿洖鐨勬暟鎹�', flowOutput); diff --git a/WebSite/src/views/main/project-library/department/components/List.vue b/WebSite/src/views/main/project-library/department/components/List.vue index fd28f0c224280c851b704f87ee5140f4d6c93778..b31af0718b13ea5163297e8a67a8476ffd7afc5f 100644 --- a/WebSite/src/views/main/project-library/department/components/List.vue +++ b/WebSite/src/views/main/project-library/department/components/List.vue @@ -5,6 +5,7 @@ <el-col :span="6"> <el-date-picker @change="setTime" + :editable="false" v-model="checkInfo.year" type="year" placeholder="閫夋嫨骞�" @@ -28,6 +29,19 @@ <el-button type="primary" plain @click="choiceProject" >鎸戦€夊巻骞撮」鐩�</el-button > + <!-- <div + style="position: absolute;right: 0px;height:28px;line-height:28px;color:red" + > + {{ money }} + </div> --> + </el-row> + <el-row class="mtop20"> + <div + style="height: 37px;line-height: 18px;color: red;font-size: 12px;padding-bottom: 12px;border: 1px solid red;" + > + <div>{{ money }}</div> + <div>{{ money1 }}</div> + </div> </el-row> </el-card> <el-card class="mtop20"> @@ -106,6 +120,7 @@ <el-row :gutter="20"> <el-col :span="6"> <el-date-picker + :editable="false" v-model="projectCheckInfo.year" type="year" @change="setTime2" @@ -179,6 +194,7 @@ export default { setup(props, cxt) { onMounted(() => { getDepartPageInfo(); + getmoneyInfo(); queryHistoryProjectLibraryPageByCurrentUserDept(); }); const multipleTable = ref(null); @@ -192,6 +208,8 @@ export default { pageIndex: 1, pageSize: 10 }, + money: '', + money1: '', env: process.env.NODE_ENV, uploadDialog: false, loading: false, @@ -254,6 +272,15 @@ export default { state.departInfo.total = res.total; }); }; + const getmoneyInfo = () => { + ProjectLibrary.queryQuotaMoney(state.checkInfo.year).then(res => { + // state.money = res.data[0]; + let arr = res.data[0].split('銆�'); + console.log(arr, 'test1'); + state.money = arr[0]; + state.money1 = arr[1]; + }); + }; const queryHistoryFirst = () => { state.projectCheckInfo.pageIndex = 1; queryHistoryProjectLibraryPageByCurrentUserDept(); @@ -397,7 +424,8 @@ export default { handleDel, handleSelectionProject, getDepartPageInfoFirst, - handleSelectionChange + handleSelectionChange, + getmoneyInfo }; } }; diff --git a/WebSite/src/views/main/project-library/department/index.vue b/WebSite/src/views/main/project-library/department/index.vue index d8a62e0c94d7184766538d3b6df4ad5a6dacaf1e..5e5fc76c68c43bea851daf84568bccae6a3bc66b 100644 --- a/WebSite/src/views/main/project-library/department/index.vue +++ b/WebSite/src/views/main/project-library/department/index.vue @@ -28,6 +28,9 @@ export default { canEdit: false }); const switchPage = (page, canEdit, id) => { + console.log("page",page) + console.log("canEdit",canEdit) + console.log("id",id) data.oId = id; data.canEdit = canEdit; data.currentComponent = page; diff --git a/WebSite/src/views/main/project-library/inSchool/components/List.vue b/WebSite/src/views/main/project-library/inSchool/components/List.vue index 49d07bf0de119324541ae0c2af568204b27cb169..1d0b769769341695bc3d7f7903756c238734d622 100644 --- a/WebSite/src/views/main/project-library/inSchool/components/List.vue +++ b/WebSite/src/views/main/project-library/inSchool/components/List.vue @@ -5,6 +5,7 @@ <el-col :span="6"> <el-date-picker v-model="checkInfo.year" + :editable="false" type="year" @change="setTime" placeholder="閫夋嫨骞�" @@ -90,9 +91,10 @@ export default { state.checkInfo.pageIndex = 1; getDepartPageInfo(); }; - // 鍒楄〃 + // 鍒楄〃 const getDepartPageInfo = () => { ProjectLibrary.queryProjectLibraryPage(state.checkInfo).then(res => { + state.departInfo.tableData = res.data; console.log('Res', res); }); }; diff --git a/WebSite/src/views/performance/declaration.vue b/WebSite/src/views/performance/declaration.vue new file mode 100644 index 0000000000000000000000000000000000000000..ae891672cea62fa7b5f9a03ff357350fb0ca41a2 --- /dev/null +++ b/WebSite/src/views/performance/declaration.vue @@ -0,0 +1,676 @@ +<template> + <div class="app-container"> + <el-card> + <Flow + @handleBack="handleBack" + @handleSave="handleSave" + @handleSubmit="handleSubmit" + @handleReturn="handleReturn" + :flowInfo="flowInfo" + ></Flow> + </el-card> + <el-card class="mt card"> + <template #header> + <span class="fs14">璐㈡斂椤圭洰鏀嚭缁╂晥璺熻釜琛�</span> + <!-- <span class="fs15">2021骞村害</span> --> + </template> + <el-form :model="detail" ref="addForm"> + <div class="account-info1"> + <el-form-item label="椤圭洰鍚嶇О:"> + <span>{{ detail.fundsProjectName }}</span> + </el-form-item> + </div> + <div class="account-info"> + <el-form-item label="涓荤閮ㄩ棬:"> + <span>{{ detail.schoolProjectName }}</span> + </el-form-item> + </div> + <div class="account-info"> + <el-form-item label="鏍″唴瀹炴柦鍗曚綅:"> + <span>{{ detail.extendFieldList.schoolfundsdep }}</span> + </el-form-item> + </div> + <el-table + class="showTable mt10 mb" + :data="tableData" + :span-method="objectSpanMethod" + border + style="width: 100%; margin-top: 20px" + > + <el-table-column prop="id" label="椤圭洰璧勯噾(涓囧厓)" width="180" /> + <el-table-column prop="name" label="" /> + <el-table-column prop="amount1" label="鎬婚绠楁暟"> + <template #default="scope"> + <el-form-item> + <el-input + v-model="scope.row.amount1" + v-if="!scope.row.amount1" + ></el-input> + <div v-if="scope.row.amount1">{{ scope.row.amount1 }}</div> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount2" label="骞村垵棰勭畻鏁�"> + <template #default="scope"> + <el-form-item> + <el-input + v-model="scope.row.amount2" + v-if="!scope.row.amount2" + ></el-input> + <div v-if="scope.row.amount2">{{ scope.row.amount2 }}</div> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount3" label="璺熻釜鏈熼绠楁暟"> + <template #default="scope"> + <el-form-item> + <el-input + v-model="scope.row.amount3" + v-if="!scope.row.amount3" + ></el-input> + <div v-if="scope.row.amount3">{{ scope.row.amount3 }}</div> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount4" label="璺熻釜鏈熸墽琛屾暟"> + <template #default="scope"> + <el-form-item> + <el-input + v-model="scope.row.amount4" + v-if="!scope.row.amount4" + ></el-input> + <div v-if="scope.row.amount4">{{ scope.row.amount4 }}</div> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount5" label="鎵ц鐜�"> + <template #default="scope"> + <el-form-item> + <el-input + v-model="scope.row.amount5" + v-if="!scope.row.amount5" + ></el-input> + <div v-if="scope.row.amount5">{{ scope.row.amount5 }}</div> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount6" label="鍋忓樊鍘熷洜鍒嗘瀽鍙婄籂鍋忔帾鏂�"> + <template #default="scope"> + <el-form-item> + <el-input + v-model="scope.row.amount6" + v-if="!scope.row.amount6" + ></el-input> + <div v-if="scope.row.amount6">{{ scope.row.amount6 }}</div> + </el-form-item> + </template> + </el-table-column> + </el-table> + + <el-form-item label="骞村害鎬荤洰鏍�(棰勬湡鐩爣)"> + <el-input + v-model="detail.extendFieldList.target" + type="textarea" + placeholder="Enter..." + maxlength="300" + show-word-limit + :autosize="{ minRows: 4, maxRows: 8 }" + ></el-input> + </el-form-item> + <el-form-item label="骞村害鎬荤洰鏍�(璺熻釜鏈熷疄闄呭畬鎴愭儏鍐�)"> + <el-input + v-model="detail.extendFieldList.completion" + type="textarea" + placeholder="Enter..." + maxlength="300" + show-word-limit + :autosize="{ minRows: 4, maxRows: 8 }" + ></el-input> + </el-form-item> + + <!-- <div class="account-info1"> + <el-form-item label="缁╂晥鎸囨爣"> + <el-row class="showTable"> + <el-button + icon="el-icon-plus" + type="primary" + @click="addPeopleInfo" + >鏂板缓缁╂晥鎸囨爣</el-button + > + </el-row> + </el-form-item> + </div> --> + + <el-table + :data="detail.extendFieldList.travelOnBusinessDetail" + class="showTable mt10 mb" + @selection-change="handleSelectionChange" + stripe + border + > + <el-table-column type="selection" width="55" /> + <el-table-column prop="oneValue" label="涓€绾ф寚鏍�"> + <template #default="scope"> + <el-form-item> + <el-input disabled v-model="scope.row.oneValue"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="twoValue" label="浜岀骇鎸囨爣"> + <template #default="scope"> + <el-form-item> + <el-input disabled v-model="scope.row.twoValue"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="threeValue" label="涓夌骇鎸囨爣"> + <template #default="scope"> + <el-form-item> + <el-input disabled v-model="scope.row.threeValue"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="targetValue" label="骞村害鎸囨爣鍊�"> + <template #default="scope"> + <el-form-item> + <el-input disabled v-model="scope.row.targetValue"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount4" label="璇勫垎瑙勫垯"> + <template #default="scope"> + <el-form-item> + <el-input v-model="scope.row.amount4"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount5" label="璺熻釜鏈熻鍒掑畬鎴愬€�"> + <template #default="scope"> + <el-form-item> + <el-input v-model="scope.row.amount5"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount6" label="璺熻釜鏈熷疄闄呭畬鎴愭儏鍐�"> + <template #default="scope"> + <el-form-item> + <el-input v-model="scope.row.amount6"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount7" label="鍋忓樊鍘熷洜鍒嗘瀽鍙婄籂鍋忔帾鏂�"> + <template #default="scope"> + <el-form-item> + <el-input v-model="scope.row.amount7"></el-input> + </el-form-item> + </template> + </el-table-column> + + <el-table-column label="鎿嶄綔" width="80"> + <template #default="scope"> + <el-button type="danger" @click="deletePelpleRow(scope.$index)" + >鍒犻櫎</el-button + > + </template> + </el-table-column> + </el-table> + <div class="account-info1"> + <el-form-item label="缁╂晥璺熻釜鎬讳綋鍒ゆ柇"> </el-form-item> + </div> + + <div class="account-info1"> + <el-form-item label="骞村害椤圭洰棰勭畻瀹屾垚鍙兘鎬�:"> + <el-radio + style="margin-left:40px" + v-model="detail.extendFieldList.radio" + label="纭畾鑳藉畬鎴�" + >纭畾鑳藉畬鎴�</el-radio + > + <el-radio v-model="detail.extendFieldList.radio" label="鏈夊彲鑳藉畬鎴�" + >鏈夊彲鑳藉畬鎴�</el-radio + > + <el-radio + v-model="detail.extendFieldList.radio" + label="纭畾涓嶈兘瀹屾垚" + >纭畾涓嶈兘瀹屾垚</el-radio + > + </el-form-item> + </div> + <div class="account-info1"> + <el-form-item label="骞村害缁╂晥鐩爣瀹屾垚鍙兘鎬�:"> + <el-radio + style="margin-left:40px" + v-model="detail.extendFieldList.radio1" + label="纭畾鑳藉畬鎴�" + >纭畾鑳藉畬鎴�</el-radio + > + <el-radio v-model="detail.extendFieldList.radio1" label="鏈夊彲鑳藉畬鎴�" + >鏈夊彲鑳藉畬鎴�</el-radio + > + <el-radio + v-model="detail.extendFieldList.radio1" + label="纭畾涓嶈兘瀹屾垚" + >纭畾涓嶈兘瀹屾垚</el-radio + > + </el-form-item> + </div> + <el-form-item label="椤圭洰棰勭畻鍙婄哗鏁堢洰鏍囪皟鏁存儏鍐�"> + <el-input + v-model="detail.extendFieldList.applyReason" + type="textarea" + placeholder="Enter..." + maxlength="300" + show-word-limit + :autosize="{ minRows: 4, maxRows: 8 }" + ></el-input> + </el-form-item> + <el-form-item label="闄勪欢涓婁紶锛�"> + <el-upload + class="upload-demo" + :on-change="fileChange" + multiple + :on-remove="removeFile" + :http-request="uploadFile" + :file-list="fileList" + action="" + > + <el-button size="small" type="primary">鐐瑰嚮閫夋嫨闄勪欢</el-button> + </el-upload> + </el-form-item> + <div class="account-info1"> + <el-form-item> + <el-row class="showTable"> + <el-button + style="float:right" + icon="el-icon-document-checked" + type="success" + @click="addPeopleInfo1" + >纭淇濆瓨</el-button + > + </el-row> + </el-form-item> + </div> + </el-form> + </el-card> + </div> +</template> + +<script> +import Api from '@/api'; +export default { + components: {}, + props: { + applicationInfo: { + type: Object, + default: () => { + return {}; + } + } + }, + data() { + return { + flowInfo: { + nextSubmitNodes: [ + { + key: '1599725907064', + value: '绉戠爺澶勫鏍�' + } + ], + canRejectNodes: [ + { + key: '1599725907064', + value: '绉戠爺澶勫鏍�' + } + ], + user: '绯荤粺绠$悊鍛�', + state: '璐熻矗浜鸿ˉ鍏�', + flow: [ + { + actionTime: '2020骞�9鏈�11鏃�', + time: '17:30:43', + icon: '', + flowName: '绔嬮」', + attitude: '', + auditor: '绯荤粺绠$悊鍛�', + startNodeName: '寮€濮�', + endNodeName: '绉戠爺澶勭珛椤�', + flowState: '娴佺▼寮€濮�', + isPassed: 'False', + systemID: '00000000-0000-0000-0000-000000000000', + isEnable: false + }, + { + actionTime: '2020骞�9鏈�11鏃�', + time: '17:31:00', + icon: '', + flowName: '绔嬮」', + attitude: '', + auditor: '绯荤粺绠$悊鍛�', + startNodeName: '绉戠爺澶勭珛椤�', + endNodeName: '璐熻矗浜鸿ˉ鍏�', + flowState: '鎻愪氦', + isPassed: 'False', + systemID: '00000000-0000-0000-0000-000000000000', + isEnable: false + } + ], + btnStates: { + isShowSave: true, + isShowSubmit: true, + isShowReject: true, + isShowRevoke: false, + isShowChart: true, + isShowHistory: true, + isShowUser: true, + isShowState: true, + isShowCancel: false + } + }, + fileList: [], + tableData: [ + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '骞村害璧勯噾鎬婚', + amount1: '0', + amount2: '', + amount3: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '鍏朵腑:褰撳勾璐㈡斂鎷ㄦ', + amount1: '', + amount2: '', + amount3: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '涓婂勾缁撹浆璧勯噾', + amount1: '', + amount2: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '鍏朵粬璧勯噾', + amount1: '', + amount2: '', + amount3: '' + } + ], + + detail: { + //椤甸潰鏁版嵁 + schoolProjectName: '鏃ュ父鏁欏缁忚垂', + id: '', + fundsProjectName: '璐㈠姟閮�', + parentId: '', + extendFieldList: { + schoolfundsdep: '鍖诲褰卞儚瀛﹂櫌', + target: '', + completion: '', + radio: '', //鍗曢€夋缁戝畾鐨勬暟鎹�--鏃犲疄闄呮剰涔� + radio1: '', //鍗曢€夋缁戝畾鐨勬暟鎹�--鏃犲疄闄呮剰涔� + applyReason: '', + achievementslist: [ + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '骞村害璧勯噾鎬婚', + amount1: '0', + amount2: '', + amount3: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '鍏朵腑:褰撳勾璐㈡斂鎷ㄦ', + amount1: '', + amount2: '', + amount3: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '涓婂勾缁撹浆璧勯噾', + amount1: '', + amount2: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '鍏朵粬璧勯噾', + amount1: '', + amount2: '', + amount3: '' + } + ], + travelOnBusinessDetail: [] + } + } + }; + }, + async created() { + if (this.$route.query.type) { + Api.queryTargetPlan( + this.$route.query.parentId, + this.$route.query.type + ).then(res => { + this.detail = res.data[0]; + this.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList); + this.tableData = this.detail.extendFieldList.achievementslist + this.flowInfo = res.data[0].flowCanShowOut; + }); + } + if (this.$route.query.projectName) { + this.detail.fundsProjectName = this.$route.query.projectName; + this.detail.schoolProjectName = this.$route.query.ownDeptName; + this.detail.extendFieldList.schoolfundsdep = this.$route.query.ownDeptName; + this.getlist(); + } + }, + + computed: {}, + methods: { + getlist() { + Api.queryTargetByPlanId(this.$route.query.parentId).then(res => { + this.detail.extendFieldList.travelOnBusinessDetail = res.data + }); + }, + handleBack() { + const ua = window.navigator.userAgent.toLowerCase(); + + if (ua.toLowerCase().indexOf('micromessenger') > -1) { + if ( + ua.toLowerCase().indexOf('iphone') > -1 && + ua.toLowerCase().indexOf('wxworklocal') > -1 + ) { + history.go(-4); + } else { + history.go(-3); + } + } else if (ua.toLowerCase().indexOf('dingtalk') > -1) { + history.go(-3); + } else { + history.go(-1); + } + return false; + }, + handleSave() { + this.detail.extendFieldList.achievementslist = this.tableData; + this.detail.parentId = this.$route.query.parentId; + this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList); + Api.saveTargetPlanOwn(this.detail).then(res => { + console.log(res); + this.getformlist(); + }); + }, + getformlist() { + Api.queryTargetPlan(this.$route.query.parentId, '璺熻釜').then(res => { + this.detail = res.data[0]; + this.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList); + console.log(this.detail.extendFieldList, '99999'); + }); + }, + handleSubmit() { + this.$emit('handleSubmit'); + }, + handleReturn() { + this.$emit('handleReturn'); + }, + handleCancel() { + this.$emit('handleCancel'); + }, + addPeopleInfo() { + this.detail.extendFieldList.travelOnBusinessDetail.push({}); + }, + addPeopleInfo1() { + this.detail.extendFieldList.achievementslist = this.tableData; + this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList); + console.log(this.detail, '000000'); + }, + fileChange(file, fileList) { + this.fileList = fileList; + }, + removeFile(file, fileList) { + this.fileList = fileList; + }, + uploadFile() { + // console.log('uploadFile'); + }, + objectSpanMethod({ rowIndex, columnIndex }) { + if (columnIndex === 0) { + if (rowIndex % 4 === 0) { + return { + rowspan: 4, + colspan: 1 + }; + } else { + return { + rowspan: 0, + colspan: 0 + }; + } + } + }, + handleSelectionChange(val) { + this.multipleSelection = val; + }, + deletePelpleRow(index) { + this.detail.extendFieldList.travelOnBusinessDetail.splice(index, 1); + } + } +}; +</script> + +<style lang="scss" scoped> +.project-card { + margin-top: 10px; + cursor: pointer; + position: relative; + .category { + text-align: center; + width: 20px; + height: 20px; + border-radius: 50%; + color: #fff !important; + background-color: #6cd1b3; + position: absolute; + font-size: 6px; + line-height: 21px; + top: calc(50% - 15px); + } + .right-sign { + position: absolute; + right: 20px; + top: 50%; + // border: solid 1px; + border-top: solid 1px rgba($color: #000000, $alpha: 0.3); + border-right: solid 1px rgba($color: #000000, $alpha: 0.3); + width: 8px; + height: 8px; + transform: rotate(45deg) translateY(-50%); + } +} +.bill-card-header { + color: #fff; + font-size: 15px; + display: flex; + justify-content: space-between; + align-items: center; + .el-button { + background-color: #3c8dbc; + color: #fff; + font-weight: 700; + } +} +.bill-info { + position: relative; + border-bottom: solid 1px rgba(0, 0, 0, 0.1); + padding-bottom: 20px; + padding-top: 10px; + div { + display: inline-block; + height: 28px; + line-height: 28px; + font-size: 14px; + } + .el-button { + position: absolute; + top: 10px; + right: 0; + } +} +.el-select { + width: 100%; +} +.account-info { + display: inline-block; + width: 40%; + margin-right: 20px; +} +.account-info1 { + display: inline-block; + width: 100%; + margin-right: 20px; +} +.showTable { + display: block; +} +.showCard { + display: none; +} +.el-table .el-form-item { + margin-bottom: 0px; +} +.mt { + margin-top: 20px; +} +.mt10 { + margin-top: 10px; +} +.mb { + margin-bottom: 20px; +} +.fs14 { + font-size: 14px; +} +.fs15 { + float: right; + font-size: 14px; +} +@media screen and (max-width: 765px) { + .account-info { + display: block; + width: 100%; + } + .showTable { + display: none; + } + .showCard { + display: block; + } +} +</style> + +<style lang="scss"> +.select-approval-user { + .el-table__body tr.current-row > td { + background-color: #409eff; + } +} +</style> diff --git a/WebSite/src/views/performance/declarationview.vue b/WebSite/src/views/performance/declarationview.vue new file mode 100644 index 0000000000000000000000000000000000000000..7e6b48c4bdc16a008b18d4f826d8f8f35d5abad3 --- /dev/null +++ b/WebSite/src/views/performance/declarationview.vue @@ -0,0 +1,344 @@ +<template> + <div class="app-container"> + <el-card class="card-override-padding"> + <el-collapse> + <el-collapse-item> + <template #title> + <span>鏌ヨ鏉′欢</span> + </template> + <el-form :model="formData"> + <el-row :gutter="20"> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-date-picker + :editable="false" + v-model="formData.year" + type="year" + placeholder="閫夋嫨骞�" + > + </el-date-picker> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ラ」鐩悕绉�" + v-model="formData.projectName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-select + style="width:100%" + v-model="formData.projectType" + placeholder="璇烽€夋嫨椤圭洰绫诲埆" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ラ」鐩崟浣�" + v-model="formData.deptName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + <!-- <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ュ綊鍙i儴闂�" + v-model="formData.ownDeptName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> --> + </el-row> + </el-form> + <el-row> + <el-button icon="el-icon-search" plain @click="search"> + 鏌ヨ + </el-button> + <el-button icon="el-icon-search" plain @click="clean"> + 閲嶇疆 + </el-button> + <el-button + type="success" + icon="el-icon-download" + plain + @click="clean" + > + 瀵煎嚭 + </el-button> + </el-row> + </el-collapse-item> + </el-collapse> + </el-card> + + <el-card class="mt-20 is-desktop"> + <el-table + :data="tableData" + @selection-change="handleSelectionChange" + stripe + border + > + <el-table-column type="selection" width="55" /> + <el-table-column + label="骞翠唤" + prop="year" + align="center" + ></el-table-column> + <el-table-column + label="椤圭洰绫诲埆" + prop="projectType" + align="center" + ></el-table-column> + <el-table-column + label="椤圭洰绫诲瀷" + prop="projectTypes" + align="center" + ></el-table-column> + <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center"> + <template #default="scope"> + <span @click="toDetail(scope.row)">{{ + scope.row.projectName + }}</span> + </template> + </el-table-column> + <el-table-column label="棰勭畻閲戦" prop="totalMoney" align="center"> + </el-table-column> + <el-table-column + label="鐢虫姤鍗曚綅" + prop="departmentName" + align="center" + ></el-table-column> + + <el-table-column label="璐熻矗浜�" prop="projectLeaderName" align="center"> + </el-table-column> + <el-table-column label="褰掑彛閮ㄩ棬" prop="ownDeptName" align="center"> + </el-table-column> + + <el-table-column label="濉姤鐘舵€�" prop="stateLabel" align="center"> + </el-table-column> + <el-table-column label="鎿嶄綔" width="200px" align="center"> + <template v-slot:default="scope"> + <el-button + type="primary" + plain + icon="el-icon-view" + v-if="scope.row.isHave == 1" + @click="remove(scope.row)" + >鏌ョ湅 + </el-button> + <el-button + type="success" + plain + icon="el-icon-edit" + v-if="scope.row.isHave == 0" + @click="remove1(scope.row)" + >鏂板缓 + </el-button> + </template> + </el-table-column> + </el-table> + <Pagination + :page="formData.pageIndex" + :limit="formData.pageSize" + :total="dataCount" + @pagination="changePage" + /> + </el-card> + <el-dialog v-model="dialogVisible" width="80%"> + <TableFlow + @handleBack="handleBack" + @handleSave="handleSave" + @handleSubmit="handleSubmit" + @handleReturn="handleReturn" + @handleCancel="handleCancel" + :flowstaus="false" + :row="applyInfo" + :canEdit="false" + /> + <template #footer> + <span class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙栨秷</el-button> + <el-button type="primary" @click="dialogVisible = false" + >纭</el-button + > + </span> + </template> + </el-dialog> + </div> +</template> + +<script> +import Api from '@/api'; +import ProjectLibrary from '@/api/projectLibrary'; +import { moneyFormat } from '@/utils'; +export default { + name: 'search', + data() { + return { + applyInfo: {}, + dialogVisible: false, + isShowForm: true, + formData: { + year: '2022', + deptName: '', + // ownDeptName: '', + projectName: '', + projectType: '', + pageIndex: 1, + pageSize: 10 + }, + options: [ + { + value: '浠g紪涓庡畾鍚戦」鐩敮鍑�', + label: '浠g紪涓庡畾鍚戦」鐩敮鍑�' + }, + { + value: '缁忓父鎬х粡璐�', + label: '缁忓父鎬х粡璐�' + }, + + { + value: '缁忓父鎬ч」鐩�', + label: '缁忓父鎬ч」鐩�' + }, + { + value: '涓€娆℃€ч」鐩�', + label: '涓€娆℃€ч」鐩�' + } + ], + school: '', + uploadDialog: false, + showList: [], + fileList: [], + tableData: [ + { + projectCode: '2021', + projectName: '鍖诲褰卞儚瀛﹂櫌', + gmtCreateUser: '鏁欏缁忚垂', + gmtCreateUser1: '鏃ュ父鏁欏缁忚垂', + gmtCreateUser2: '0490180', + gmtCreateUser3: '璐㈠姟澶�', + gmtCreateUser4: '0.00', + gmtCreateUser5: '鏈鏍�' + } + ], + dataCount: 0, + dialogSelectProject: false, //閫夋嫨缁忚垂椤圭洰 + projectList: [], + dataCountProject: 0, + multipleSelect: [], + formSelect: { + projectCode: '', + pageIndex: 1, + pageSize: 10 + } + }; + }, + created() {}, + + computed: {}, + watch: {}, + mounted() { + this.getfollowlist(); + }, + methods: { + toDetail(row) { + ProjectLibrary.queryProjectInfoPlanById(row.id).then(res => { + console.log('res', res); + + this.applyInfo = res.data[0]; + }); + this.dialogVisible = true; + }, + getfollowlist() { + Api.followTargetPage(this.formData).then(res => { + console.log(res.data, '9999'); + this.tableData = res.data; + this.tableData.forEach(item => { + item.totalMoney = moneyFormat(item.totalMoney, 2, ','); + }); + this.dataCount = res.total; + }); + }, + clean() { + this.formData.updateuser = ''; + }, + handleSelectionChange(val) { + this.multipleSelection = val; + }, + //鏌ヨ + search() { + this.formData.pageIndex = 1; + this.getfollowlist(this.formData); + }, + //鍒犻櫎 + + remove(row) { + this.$router.push({ + path: '/i/performance/declaration', + query: { + parentId: row.id, + type: '鑷瘎' + } + }); + }, + remove1(row) { + this.$router.push({ + path: '/i/performance/declaration', + query: { + parentId: row.id, + projectName: row.projectName, + ownDeptName: row.ownDeptName + } + }); + }, + + //鍒嗛〉 + changePage(val) { + this.formData.pageIndex = val.page; + this.formData.pageSize = val.limit; + this.getfollowlist(this.formData); + }, + searchProject() { + this.formSelect.pageIndex = 1; + this.getProjectList(this.formSelect); + }, + //鑾峰彇鍏ㄩ儴椤圭洰 + + //鍒嗛〉 + changePageProject(val) { + this.formSelect.pageIndex = val.page; + this.formSelect.pageSize = val.limit; + this.getProjectList(this.formSelect); + } + } +}; +</script> + +<style lang="scss" scoped> +.el-collapse { + border: none; +} +.apply-table-wrap { + padding: 0 150 0 !important; +} +</style> diff --git a/WebSite/src/views/performance/declarationwatchview.vue b/WebSite/src/views/performance/declarationwatchview.vue new file mode 100644 index 0000000000000000000000000000000000000000..3e04076813a8ecc26d6d35dc3589ccf8bed14f9b --- /dev/null +++ b/WebSite/src/views/performance/declarationwatchview.vue @@ -0,0 +1,344 @@ +<template> + <div class="app-container"> + <el-card class="card-override-padding"> + <el-collapse> + <el-collapse-item> + <template #title> + <span>鏌ヨ鏉′欢</span> + </template> + <el-form :model="formData"> + <el-row :gutter="20"> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-date-picker + :editable="false" + v-model="formData.year" + type="year" + placeholder="閫夋嫨骞�" + > + </el-date-picker> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ラ」鐩悕绉�" + v-model="formData.projectName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-select + style="width:100%" + v-model="formData.projectType" + placeholder="璇烽€夋嫨椤圭洰绫诲埆" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ラ」鐩崟浣�" + v-model="formData.deptName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + <!-- <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ュ綊鍙i儴闂�" + v-model="formData.ownDeptName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> --> + </el-row> + </el-form> + <el-row> + <el-button icon="el-icon-search" plain @click="search"> + 鏌ヨ + </el-button> + <el-button icon="el-icon-search" plain @click="clean"> + 閲嶇疆 + </el-button> + <el-button + type="success" + icon="el-icon-download" + plain + @click="clean" + > + 瀵煎嚭 + </el-button> + </el-row> + </el-collapse-item> + </el-collapse> + </el-card> + + <el-card class="mt-20 is-desktop"> + <el-table + :data="tableData" + @selection-change="handleSelectionChange" + stripe + border + > + <el-table-column type="selection" width="55" /> + <el-table-column + label="骞翠唤" + prop="year" + align="center" + ></el-table-column> + <el-table-column + label="椤圭洰绫诲埆" + prop="projectType" + align="center" + ></el-table-column> + <el-table-column + label="椤圭洰绫诲瀷" + prop="projectTypes" + align="center" + ></el-table-column> + <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center"> + <template #default="scope"> + <span @click="toDetail(scope.row)">{{ + scope.row.projectName + }}</span> + </template> + </el-table-column> + <el-table-column label="棰勭畻閲戦" prop="totalMoney" align="center"> + </el-table-column> + <el-table-column + label="鐢虫姤鍗曚綅" + prop="departmentName" + align="center" + ></el-table-column> + + <el-table-column label="璐熻矗浜�" prop="projectLeaderName" align="center"> + </el-table-column> + <el-table-column label="褰掑彛閮ㄩ棬" prop="ownDeptName" align="center"> + </el-table-column> + + <el-table-column label="濉姤鐘舵€�" prop="stateLabel" align="center"> + </el-table-column> + <el-table-column label="鎿嶄綔" width="200px" align="center"> + <template v-slot:default="scope"> + <el-button + type="primary" + plain + icon="el-icon-view" + v-if="scope.row.isHave == 1" + @click="remove(scope.row)" + >鏌ョ湅 + </el-button> + <el-button + type="success" + plain + icon="el-icon-edit" + v-if="scope.row.isHave == 0" + @click="remove1(scope.row)" + >鏂板缓 + </el-button> + </template> + </el-table-column> + </el-table> + <Pagination + :page="formData.pageIndex" + :limit="formData.pageSize" + :total="dataCount" + @pagination="changePage" + /> + </el-card> + <el-dialog v-model="dialogVisible" width="80%"> + <TableFlow + @handleBack="handleBack" + @handleSave="handleSave" + @handleSubmit="handleSubmit" + @handleReturn="handleReturn" + @handleCancel="handleCancel" + :flowstaus="false" + :row="applyInfo" + :canEdit="false" + /> + <template #footer> + <span class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙栨秷</el-button> + <el-button type="primary" @click="dialogVisible = false" + >纭</el-button + > + </span> + </template> + </el-dialog> + </div> +</template> + +<script> +import Api from '@/api'; +import ProjectLibrary from '@/api/projectLibrary'; +import { moneyFormat } from '@/utils'; +export default { + name: 'search', + data() { + return { + applyInfo: {}, + dialogVisible: false, + isShowForm: true, + formData: { + year: '2022', + deptName: '', + // ownDeptName: '', + projectName: '', + projectType: '', + pageIndex: 1, + pageSize: 10 + }, + options: [ + { + value: '浠g紪涓庡畾鍚戦」鐩敮鍑�', + label: '浠g紪涓庡畾鍚戦」鐩敮鍑�' + }, + { + value: '缁忓父鎬х粡璐�', + label: '缁忓父鎬х粡璐�' + }, + + { + value: '缁忓父鎬ч」鐩�', + label: '缁忓父鎬ч」鐩�' + }, + { + value: '涓€娆℃€ч」鐩�', + label: '涓€娆℃€ч」鐩�' + } + ], + school: '', + uploadDialog: false, + showList: [], + fileList: [], + tableData: [ + { + projectCode: '2021', + projectName: '鍖诲褰卞儚瀛﹂櫌', + gmtCreateUser: '鏁欏缁忚垂', + gmtCreateUser1: '鏃ュ父鏁欏缁忚垂', + gmtCreateUser2: '0490180', + gmtCreateUser3: '璐㈠姟澶�', + gmtCreateUser4: '0.00', + gmtCreateUser5: '鏈鏍�' + } + ], + dataCount: 0, + dialogSelectProject: false, //閫夋嫨缁忚垂椤圭洰 + projectList: [], + dataCountProject: 0, + multipleSelect: [], + formSelect: { + projectCode: '', + pageIndex: 1, + pageSize: 10 + } + }; + }, + created() {}, + + computed: {}, + watch: {}, + mounted() { + this.getfollowlist(); + }, + methods: { + toDetail(row) { + ProjectLibrary.queryProjectInfoPlanById(row.id).then(res => { + console.log('res', res); + + this.applyInfo = res.data[0]; + }); + this.dialogVisible = true; + }, + getfollowlist() { + Api.followTargetPage(this.formData).then(res => { + console.log(res.data, '9999'); + this.tableData = res.data; + this.tableData.forEach(item => { + item.totalMoney = moneyFormat(item.totalMoney, 2, ','); + }); + this.dataCount = res.total; + }); + }, + clean() { + this.formData.updateuser = ''; + }, + handleSelectionChange(val) { + this.multipleSelection = val; + }, + //鏌ヨ + search() { + this.formData.pageIndex = 1; + this.getfollowlist(this.formData); + }, + //鍒犻櫎 + + remove(row) { + this.$router.push({ + path: '/i/performance/declaration', + query: { + parentId: row.id, + type: '鑷瘎' + } + }); + }, + remove1(row) { + this.$router.push({ + path: '/i/performance/declaration', + query: { + parentId: row.id, + projectName: row.projectName, + ownDeptName: row.ownDeptName + } + }); + }, + + //鍒嗛〉 + changePage(val) { + this.formData.pageIndex = val.page; + this.formData.pageSize = val.limit; + this.getfollowlist(this.formData); + }, + searchProject() { + this.formSelect.pageIndex = 1; + this.getProjectList(this.formSelect); + }, + //鑾峰彇鍏ㄩ儴椤圭洰 + + //鍒嗛〉 + changePageProject(val) { + this.formSelect.pageIndex = val.page; + this.formSelect.pageSize = val.limit; + this.getProjectList(this.formSelect); + } + } +}; +</script> + +<style lang="scss" scoped> +.el-collapse { + border: none; +} +.apply-table-wrap { + padding: 0 150 0 !important; +} +</style> diff --git a/WebSite/src/views/performance/evaluation.vue b/WebSite/src/views/performance/evaluation.vue new file mode 100644 index 0000000000000000000000000000000000000000..a85f0d56960b3df59be78f1525b64ed46ee46235 --- /dev/null +++ b/WebSite/src/views/performance/evaluation.vue @@ -0,0 +1,638 @@ +<template> + <div class="app-container"> + <el-card> + <Flow + @handleBack="handleBack" + @handleSave="handleSave" + @handleSubmit="handleSubmit" + @handleReturn="handleReturn" + :flowInfo="flowInfo" + ></Flow> + </el-card> + + <el-card class="mt card"> + <template #header> + <span class="fs14">璐㈡斂椤圭洰鏀嚭缁╂晥鑷瘎琛�</span> + <!-- <span class="fs15">2021骞村害</span> --> + </template> + <el-form :model="detail" ref="addForm"> + <div class="account-info"> + <el-form-item label="椤圭洰鍚嶇О:"> + <span>{{ detail.fundsProjectName }}</span> + </el-form-item> + </div> + <div class="account-info"> + <el-form-item label="寰楀垎绛夌骇:"> + <span>{{ detail.extendFieldList.score }}</span> + </el-form-item> + </div> + <div class="account-info"> + <el-form-item label="涓荤閮ㄩ棬:"> + <span>{{ detail.schoolProjectName }}</span> + </el-form-item> + </div> + <div class="account-info"> + <el-form-item label="鏍″唴瀹炴柦鍗曚綅:"> + <span>{{ detail.extendFieldList.schoolfundsdep }}</span> + </el-form-item> + </div> + <el-table + class="showTable mt10 mb" + :data="tableData" + :span-method="objectSpanMethod" + border + style="width: 100%; margin-top: 20px" + > + <el-table-column prop="id" label="椤圭洰璧勯噾(涓囧厓)" width="180" /> + <el-table-column prop="name" label="" /> + <el-table-column prop="amount1" label="骞村垵棰勭畻鏁�"> + <template #default="scope"> + <el-form-item> + <el-input + v-model="scope.row.amount1" + v-if="!scope.row.amount1" + ></el-input> + <div v-if="scope.row.amount1">{{ scope.row.amount1 }}</div> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount2" label="鍏ㄥ勾棰勭畻鏁�"> + <template #default="scope"> + <el-form-item> + <el-input + v-model="scope.row.amount2" + v-if="!scope.row.amount2" + ></el-input> + <div v-if="scope.row.amount2">{{ scope.row.amount2 }}</div> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount3" label="鍏ㄥ勾鎵ц鏁�"> + <template #default="scope"> + <el-form-item> + <el-input + v-model="scope.row.amount3" + v-if="!scope.row.amount3" + ></el-input> + <div v-if="scope.row.amount3">{{ scope.row.amount3 }}</div> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount4" label="鎵ц鐜�"> + <template #default="scope"> + <el-form-item> + <el-input + v-model="scope.row.amount4" + v-if="!scope.row.amount4" + ></el-input> + <div v-if="scope.row.amount4">{{ scope.row.amount4 }}</div> + </el-form-item> + </template> + </el-table-column> + + <el-table-column prop="amount5" label="鍋忓樊鍘熷洜鍒嗘瀽鍙婄籂鍋忔帾鏂�"> + <template #default="scope"> + <el-form-item> + <el-input + v-model="scope.row.amount5" + v-if="!scope.row.amount5" + ></el-input> + <div v-if="scope.row.amount5">{{ scope.row.amount5 }}</div> + </el-form-item> + </template> + </el-table-column> + </el-table> + + <el-form-item label="骞村害鎬荤洰鏍�(棰勬湡鐩爣)"> + <el-input + v-model="detail.extendFieldList.target" + type="textarea" + placeholder="Enter..." + maxlength="300" + show-word-limit + :autosize="{ minRows: 4, maxRows: 8 }" + ></el-input> + </el-form-item> + <el-form-item label="骞村害鎬荤洰鏍�(瀹為檯瀹屾垚鎯呭喌)"> + <el-input + v-model="detail.extendFieldList.completion" + type="textarea" + placeholder="Enter..." + maxlength="300" + show-word-limit + :autosize="{ minRows: 4, maxRows: 8 }" + ></el-input> + </el-form-item> + <!-- + <div class="account-info1"> + <el-form-item label="缁╂晥鎸囨爣"> + <el-row class="showTable"> + <el-button + icon="el-icon-plus" + type="primary" + @click="addPeopleInfo" + >鏂板缓缁╂晥鎸囨爣</el-button + > + </el-row> + </el-form-item> + </div> --> + <el-table + :data="detail.extendFieldList.travelOnBusinessDetail" + class="showTable mt10 mb" + @selection-change="handleSelectionChange" + stripe + border + > + <el-table-column type="selection" width="55" /> + <el-table-column prop="oneValue" label="涓€绾ф寚鏍�"> + <template #default="scope"> + <el-form-item> + <el-input disabled v-model="scope.row.oneValue"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="twoValue" label="浜岀骇鎸囨爣"> + <template #default="scope"> + <el-form-item> + <el-input disabled v-model="scope.row.twoValue"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="threeValue" label="涓夌骇鎸囨爣"> + <template #default="scope"> + <el-form-item> + <el-input disabled v-model="scope.row.threeValue"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="targetValue" label="骞村害鎸囨爣鍊�"> + <template #default="scope"> + <el-form-item> + <el-input disabled v-model="scope.row.targetValue"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount4" label="璇勫垎瑙勫垯"> + <template #default="scope"> + <el-form-item> + <el-input v-model="scope.row.amount4"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount5" label="璺熻釜鏈熻鍒掑畬鎴愬€�"> + <template #default="scope"> + <el-form-item> + <el-input v-model="scope.row.amount5"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount6" label="璺熻釜鏈熷疄闄呭畬鎴愭儏鍐�"> + <template #default="scope"> + <el-form-item> + <el-input v-model="scope.row.amount6"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column prop="amount7" label="鍋忓樊鍘熷洜鍒嗘瀽鍙婄籂鍋忔帾鏂�"> + <template #default="scope"> + <el-form-item> + <el-input v-model="scope.row.amount7"></el-input> + </el-form-item> + </template> + </el-table-column> + + <el-table-column label="鎿嶄綔" width="80"> + <template #default="scope"> + <el-button type="danger" @click="deletePelpleRow(scope.$index)" + >鍒犻櫎</el-button + > + </template> + </el-table-column> + </el-table> + + <el-form-item label="闄勪欢涓婁紶锛�"> + <el-upload + class="upload-demo" + :on-change="fileChange" + multiple + :on-remove="removeFile" + :http-request="uploadFile" + :file-list="fileList" + action="" + > + <el-button size="small" type="primary">鐐瑰嚮閫夋嫨闄勪欢</el-button> + </el-upload> + </el-form-item> + <div class="explain"> + 璇存槑锛�1銆佽嚜璇勬椂闂村強鎬讳綋瑕佹眰銆傞」鐩哗鏁堣嚜璇勭敱鏍″唴鍚勯」鐩崟浣嶈嚜琛屽疄鏂斤紝鍦ㄩ绠楀畨鎺掓骞�3鏈�10鏃ヤ箣鍓嶅湪棰勭畻骞冲彴瀹屾垚鑷瘎骞舵彁浜ゆ寚鏍囧疄闄呭畬鎴愭儏鍐垫敮鎾戞潗鏂欍€傝瘎浠峰唴瀹瑰寘鎷绠楁墽琛屻€侀」鐩€讳綋缁╂晥鐩爣銆佸悇椤圭哗鏁堟寚鏍囧畬鎴愭儏鍐碉紝 + 鍋氬埌鍐呭瀹屾暣銆佹潈閲嶅悎鐞嗐€佹暟鎹湡瀹炪€佺粨鏋滃瑙傘€傚棰勭畻鎵ц鐜囧亸浣庛€佹湭瀹屾垚缁╂晥鐩爣鎴栧亸绂荤哗鏁堢洰鏍囪緝澶с€佽嚜璇勭粨鏋滆緝宸殑椤圭洰瑕佸垎鏋愬苟璇存槑鍘熷洜锛岀爺绌舵彁鍑烘湁閽堝鎬х殑鏁存敼鎺柦銆� + 2銆佹寚鏍囨潈閲嶈缃€傛€诲垎100鍒嗭紝鍏朵腑鎶曞叆涓庣鐞�36%銆佷骇鍑�34%銆佹晥鏋�15%銆佸奖鍝嶅姏15%锛屾寚鏍囧緱鍒嗕笉鑳借秴杩囨潈閲嶅垎鍊笺€傚鏈夌壒娈婃儏鍐碉紝涓€绾ф寚鏍囨潈閲嶅彲鍋氶€傚綋璋冩暣銆備簩銆佷笁绾ф寚鏍囧簲褰撴牴鎹寚鏍囬噸瑕佺▼搴︺€侀」鐩疄鏂介樁娈电瓑鍥犵礌缁煎悎纭畾锛屽噯纭弽鏄犻」鐩殑浜у嚭鍜屾晥鐩娿€� + 3銆佽瘎鍒嗗姙娉曘€傗憼瀹氶噺鎸囨爣锛氬畬鎴愬勾搴︽寚鏍囧€煎緱婊″垎锛屾湭瀹屾垚鐨勬寜瀹屾垚鍊间笌鎸囨爣鍊肩殑姣斾緥璁板垎锛涜嫢鍥犳寚鏍囧€艰缃槑鏄惧亸浣庨€犳垚瀹屾垚鍊奸珮浜庢寚鏍囧€艰緝澶氱殑锛屽簲鎸夊亸绂诲害閫傚害璋冨噺鍒嗗€硷紱鈶″畾鎬ф寚鏍囥€傚湪涓夋。璁″垎鍖洪棿鍚堢悊纭畾鍒嗗€硷細杈炬垚鎸囨爣涓篬100%,80%]锛岄儴鍒嗚揪鎴愭寚鏍� + 骞跺叿鏈変竴瀹氭晥鏋滀负锛�80%,60%]锛屾湭杈炬垚鎸囨爣涓旀晥鏋滆緝宸负(60%,0]锛涒憿婊℃剰搴︺€備竴鑸噰鐢ㄧぞ浼氳皟鏌ユ柟寮忚幏鍙栵紝婊℃剰搴﹁揪鍒版寚鏍囧€煎垯寰楁弧鍒嗭紝浣庝簬鎸囨爣鍊煎垯鎸夋瘮渚嬫墸鍒嗭紱鈶i绠楁墽琛岀巼銆傗墺99%寰�10鍒嗐€�(99%,95%]寰�8鍒嗐€�(95%,90%]寰�6鍒嗐€�(90%,85%]寰�4鍒嗐€佷綆浜�85%寰�0鍒嗐€� + 4銆佸緱鍒嗙瓑绾с€傛寜鎬诲垎鍒掑垎涓哄洓妗o細浼樹负[90,100]鍒嗐€佽壇涓篬80,90)鍒嗭紝涓负[60,80)鍒嗭紝宸负60鍒嗕互涓嬨€� + </div> + <!-- <div class="account-info1"> + <el-form-item> + <el-row class="showTable"> + <el-button + style="float:right" + icon="el-icon-document-checked" + type="success" + @click="addPeopleInfo1" + >纭淇濆瓨</el-button + > + </el-row> + </el-form-item> + </div> --> + </el-form> + </el-card> + </div> +</template> + +<script> +import Api from '@/api'; +export default { + components: {}, + props: { + applicationInfo: { + type: Object, + default: () => { + return {}; + } + } + }, + data() { + return { + flowInfo: { + nextSubmitNodes: [ + { + key: '1599725907064', + value: '绉戠爺澶勫鏍�' + } + ], + canRejectNodes: [ + { + key: '1599725907064', + value: '绉戠爺澶勫鏍�' + } + ], + user: '绯荤粺绠$悊鍛�', + state: '璐熻矗浜鸿ˉ鍏�', + flow: [ + { + actionTime: '2020骞�9鏈�11鏃�', + time: '17:30:43', + icon: '', + flowName: '绔嬮」', + attitude: '', + auditor: '绯荤粺绠$悊鍛�', + startNodeName: '寮€濮�', + endNodeName: '绉戠爺澶勭珛椤�', + flowState: '娴佺▼寮€濮�', + isPassed: 'False', + systemID: '00000000-0000-0000-0000-000000000000', + isEnable: false + }, + { + actionTime: '2020骞�9鏈�11鏃�', + time: '17:31:00', + icon: '', + flowName: '绔嬮」', + attitude: '', + auditor: '绯荤粺绠$悊鍛�', + startNodeName: '绉戠爺澶勭珛椤�', + endNodeName: '璐熻矗浜鸿ˉ鍏�', + flowState: '鎻愪氦', + isPassed: 'False', + systemID: '00000000-0000-0000-0000-000000000000', + isEnable: false + } + ], + btnStates: { + isShowSave: true, + isShowSubmit: true, + isShowReject: true, + isShowRevoke: false, + isShowChart: true, + isShowHistory: true, + isShowUser: true, + isShowState: true, + isShowCancel: false + } + }, + tableData: [ + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '骞村害璧勯噾鎬婚', + amount1: '0', + amount2: '', + amount3: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '鍏朵腑:褰撳勾璐㈡斂鎷ㄦ', + amount1: '', + amount2: '', + amount3: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '涓婂勾缁撹浆璧勯噾', + amount1: '', + amount2: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '鍏朵粬璧勯噾', + amount1: '', + amount2: '', + amount3: '' + } + ], + + fileList: [], + + detail: { + //椤甸潰鏁版嵁 + schoolProjectName: '鍖诲妫€楠屾娴嬪疄楠屾暀瀛﹀钩鍙板缓璁�', + id: '', + processId: '', + fundsProjectName: '鍖诲鎶€鏈闄�', + parentId: '', + extendFieldList: { + schoolfundsdep: '鍖诲褰卞儚瀛﹂櫌', + score: '', + completion: '', + + applyReason: '', + achievementslist: [ + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '骞村害璧勯噾鎬婚', + amount1: '0', + amount2: '', + amount3: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '鍏朵腑:褰撳勾璐㈡斂鎷ㄦ', + amount1: '', + amount2: '', + amount3: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '涓婂勾缁撹浆璧勯噾', + amount1: '', + amount2: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '鍏朵粬璧勯噾', + amount1: '', + amount2: '', + amount3: '' + } + ], + travelOnBusinessDetail: [] + } + } + }; + }, + async created() { + if (this.$route.query.type) { + Api.queryTargetPlan( + this.$route.query.parentId, + this.$route.query.type + ).then(res => { + this.detail = res.data[0]; + this.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList); + this.tableData = this.detail.extendFieldList.achievementslist; + console.log(this.detail.extendFieldList, '0000'); + this.flowInfo = res.data[0].flowCanShowOut; + }); + } + if (this.$route.query.projectName) { + this.detail.fundsProjectName = this.$route.query.projectName; + this.detail.schoolProjectName = this.$route.query.ownDeptName; + this.detail.extendFieldList.schoolfundsdep = this.$route.query.ownDeptName; + this.getlist(); + } + }, + + computed: {}, + methods: { + getlist() { + Api.queryTargetByPlanId(this.$route.query.parentId).then(res => { + this.detail.extendFieldList.travelOnBusinessDetail = res.data; + }); + }, + handleBack() { + const ua = window.navigator.userAgent.toLowerCase(); + + if (ua.toLowerCase().indexOf('micromessenger') > -1) { + if ( + ua.toLowerCase().indexOf('iphone') > -1 && + ua.toLowerCase().indexOf('wxworklocal') > -1 + ) { + history.go(-4); + } else { + history.go(-3); + } + } else if (ua.toLowerCase().indexOf('dingtalk') > -1) { + history.go(-3); + } else { + history.go(-1); + } + return false; + }, + handleSave() { + this.detail.extendFieldList.achievementslist = this.tableData; + this.detail.parentId = this.$route.query.parentId; + this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList); + Api.saveTargetPlanSelf(this.detail).then(res => { + console.log(res.data, '9999'); + this.getformlist(); + }); + }, + handleSubmit() { + this.$emit('handleSubmit'); + }, + handleReturn() { + this.$emit('handleReturn'); + }, + handleCancel() { + this.$emit('handleCancel'); + }, + addPeopleInfo() { + this.detail.extendFieldList.travelOnBusinessDetail.push({}); + }, + addPeopleInfo1() { + this.detail.extendFieldList.achievementslist = this.tableData; + this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList); + console.log(this.detail, '000000'); + }, + fileChange(file, fileList) { + this.fileList = fileList; + }, + removeFile(file, fileList) { + this.fileList = fileList; + }, + uploadFile() { + // console.log('uploadFile'); + }, + getformlist() { + Api.queryTargetPlan(this.$route.query.parentId, '鑷瘎').then(res => { + this.detail = res.data[0]; + this.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList); + this.flowInfo = res.data[0].flowCanShowOut; + + console.log(this.detail.extendFieldList, '99999'); + }); + }, + objectSpanMethod({ rowIndex, columnIndex }) { + if (columnIndex === 0) { + if (rowIndex % 4 === 0) { + return { + rowspan: 4, + colspan: 1 + }; + } else { + return { + rowspan: 0, + colspan: 0 + }; + } + } + }, + handleSelectionChange(val) { + this.multipleSelection = val; + }, + deletePelpleRow(index) { + this.detail.extendFieldList.travelOnBusinessDetail.splice(index, 1); + } + } +}; +</script> + +<style lang="scss" scoped> +.explain { + color: red; + line-height: 24px; +} +.project-card { + margin-top: 10px; + cursor: pointer; + position: relative; + .category { + text-align: center; + width: 20px; + height: 20px; + border-radius: 50%; + color: #fff !important; + background-color: #6cd1b3; + position: absolute; + font-size: 6px; + line-height: 21px; + top: calc(50% - 15px); + } + .right-sign { + position: absolute; + right: 20px; + top: 50%; + // border: solid 1px; + border-top: solid 1px rgba($color: #000000, $alpha: 0.3); + border-right: solid 1px rgba($color: #000000, $alpha: 0.3); + width: 8px; + height: 8px; + transform: rotate(45deg) translateY(-50%); + } +} +.bill-card-header { + color: #fff; + font-size: 15px; + display: flex; + justify-content: space-between; + align-items: center; + .el-button { + background-color: #3c8dbc; + color: #fff; + font-weight: 700; + } +} +.bill-info { + position: relative; + border-bottom: solid 1px rgba(0, 0, 0, 0.1); + padding-bottom: 20px; + padding-top: 10px; + div { + display: inline-block; + height: 28px; + line-height: 28px; + font-size: 14px; + } + .el-button { + position: absolute; + top: 10px; + right: 0; + } +} +.el-select { + width: 100%; +} +.account-info { + display: inline-block; + width: 40%; + margin-right: 20px; +} +.account-info1 { + display: inline-block; + width: 100%; + margin-right: 20px; +} +.showTable { + display: block; +} +.showCard { + display: none; +} +.el-table .el-form-item { + margin-bottom: 0px; +} +.mt { + margin-top: 20px; +} +.mt10 { + margin-top: 10px; +} +.mb { + margin-bottom: 20px; +} +.fs14 { + font-size: 14px; +} +.fs15 { + float: right; + font-size: 14px; +} +@media screen and (max-width: 765px) { + .account-info { + display: block; + width: 100%; + } + .showTable { + display: none; + } + .showCard { + display: block; + } +} +</style> + +<style lang="scss"> +.select-approval-user { + .el-table__body tr.current-row > td { + background-color: #409eff; + } +} +</style> diff --git a/WebSite/src/views/performance/evaluationview.vue b/WebSite/src/views/performance/evaluationview.vue new file mode 100644 index 0000000000000000000000000000000000000000..29601511c481b5bd7886e4e4173b82362fa5b5be --- /dev/null +++ b/WebSite/src/views/performance/evaluationview.vue @@ -0,0 +1,324 @@ +<template> + <div class="app-container"> + <el-card class="card-override-padding"> + <el-collapse> + <el-collapse-item> + <template #title> + <span>鏌ヨ鏉′欢</span> + </template> + <el-form :model="formData"> + <el-row :gutter="20"> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-date-picker + :editable="false" + v-model="formData.year" + type="year" + placeholder="閫夋嫨骞�" + > + </el-date-picker> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ラ」鐩悕绉�" + v-model="formData.projectName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-select + style="width:100%" + clearable + v-model="formData.projectType" + placeholder="璇烽€夋嫨椤圭洰绫诲埆" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ラ」鐩崟浣�" + v-model="formData.deptName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ュ綊鍙i儴闂�" + v-model="formData.ownDeptName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + </el-row> + </el-form> + <el-row> + <el-button icon="el-icon-search" plain @click="search"> + 鏌ヨ + </el-button> + <el-button icon="el-icon-search" plain @click="clean"> + 閲嶇疆 + </el-button> + <el-button + type="success" + icon="el-icon-download" + plain + @click="clean" + > + 瀵煎嚭 + </el-button> + </el-row> + </el-collapse-item> + </el-collapse> + </el-card> + + <el-card class="mt-20 is-desktop"> + <el-table + :data="tableData" + @selection-change="handleSelectionChange" + stripe + border + > + <el-table-column type="selection" width="55" /> + <el-table-column + label="骞翠唤" + prop="year" + align="center" + ></el-table-column> + <el-table-column + label="椤圭洰绫诲埆" + prop="projectType" + align="center" + ></el-table-column> + <el-table-column + label="椤圭洰绫诲瀷" + prop="projectTypes" + align="center" + ></el-table-column> + <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center"> + <template #default="scope"> + <span @click="toDetail(scope.row)">{{ + scope.row.projectName + }}</span> + </template> + </el-table-column> + <el-table-column label="棰勭畻閲戦" prop="totalMoney" align="center"> + </el-table-column> + <el-table-column + label="鐢虫姤鍗曚綅" + prop="departmentName" + align="center" + ></el-table-column> + + <el-table-column label="璐熻矗浜�" prop="projectLeaderName" align="center"> + </el-table-column> + <el-table-column label="褰掑彛閮ㄩ棬" prop="ownDeptName" align="center"> + </el-table-column> + + <el-table-column label="濉姤鐘舵€�" prop="stateLabel" align="center"> + </el-table-column> + <el-table-column label="鎿嶄綔" width="200px" align="center"> + <template v-slot:default="scope"> + <el-button + type="primary" + plain + icon="el-icon-view" + v-if="scope.row.isHave == 1" + @click="remove(scope.row)" + >鏌ョ湅 + </el-button> + <el-button + type="success" + plain + icon="el-icon-edit" + v-if="scope.row.isHave == 0" + @click="remove1(scope.row)" + >鏂板缓 + </el-button> + </template> + </el-table-column> + </el-table> + <Pagination + :page="formData.pageIndex" + :limit="formData.pageSize" + :total="dataCount" + @pagination="changePage" + /> + </el-card> + <el-dialog v-model="dialogVisible" width="80%"> + <TableFlow + @handleBack="handleBack" + @handleSave="handleSave" + @handleSubmit="handleSubmit" + @handleReturn="handleReturn" + @handleCancel="handleCancel" + :flowstaus="false" + :row="applyInfo" + :canEdit="false" + /> + <template #footer> + <span class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙栨秷</el-button> + <el-button type="primary" @click="dialogVisible = false" + >纭</el-button + > + </span> + </template> + </el-dialog> + </div> +</template> + +<script> +import Api from '@/api'; +import { moneyFormat } from '@/utils'; +import ProjectLibrary from '@/api/projectLibrary'; +export default { + name: 'search', + data() { + return { + applyInfo: {}, + dialogVisible: false, + isShowForm: true, + formData: { + year: '2022', + deptName: '', + ownDeptName: '', + projectName: '', + projectType: '', + pageIndex: 1, + pageSize: 10 + }, + options: [ + { + value: '浠g紪涓庡畾鍚戦」鐩敮鍑�', + label: '浠g紪涓庡畾鍚戦」鐩敮鍑�' + }, + { + value: '缁忓父鎬х粡璐�', + label: '缁忓父鎬х粡璐�' + }, + + { + value: '缁忓父鎬ч」鐩�', + label: '缁忓父鎬ч」鐩�' + }, + { + value: '涓€娆℃€ч」鐩�', + label: '涓€娆℃€ч」鐩�' + } + ], + school: '', + uploadDialog: false, + showList: [], + fileList: [], + tableData: [], + dataCount: 0, + dialogSelectProject: false, //閫夋嫨缁忚垂椤圭洰 + projectList: [], + dataCountProject: 0, + multipleSelect: [], + formSelect: { + projectCode: '', + pageIndex: 1, + pageSize: 10 + } + }; + }, + created() {}, + + computed: {}, + watch: {}, + mounted() { + this.getselflist(); + }, + methods: { + toDetail(row) { + ProjectLibrary.queryProjectInfoPlanById(row.id).then(res => { + console.log('res', res); + + this.applyInfo = res.data[0]; + }); + this.dialogVisible = true; + }, + getselflist() { + Api.selfTargetPage(this.formData).then(res => { + console.log(res.data, '9999'); + this.tableData = res.data; + this.tableData.forEach(item => { + item.totalMoney = moneyFormat(item.totalMoney, 2, ','); + }); + this.dataCount = res.total; + }); + }, + handleSelectionChange(val) { + this.multipleSelection = val; + }, + clean() { + this.formData.updateuser = ''; + }, + //鏌ヨ + search() { + this.formData.pageIndex = 1; + this.getselflist(this.formData); + }, + //鍒犻櫎 + remove(row) { + this.$router.push({ + path: '/i/performance/evaluation', + query: { + parentId: row.id, + type: '鑷瘎' + } + }); + }, + remove1(row) { + this.$router.push({ + path: '/i/performance/evaluation', + query: { + parentId: row.id, + projectName: row.projectName, + ownDeptName: row.ownDeptName + } + }); + }, + //鍒嗛〉 + changePage(val) { + this.formData.pageIndex = val.page; + this.formData.pageSize = val.limit; + this.getselflist(this.formData); + }, + + //鑾峰彇鍏ㄩ儴椤圭洰 + + + } +}; +</script> + +<style lang="scss" scoped> +.el-collapse { + border: none; +} +.apply-table-wrap { + padding: 0 150 0 !important; +} +</style> diff --git a/WebSite/src/views/performance/evaluationwatchview.vue b/WebSite/src/views/performance/evaluationwatchview.vue new file mode 100644 index 0000000000000000000000000000000000000000..431e121db5fa3f6ba5f40dfe304fc1bf0d93c306 --- /dev/null +++ b/WebSite/src/views/performance/evaluationwatchview.vue @@ -0,0 +1,322 @@ +<template> + <div class="app-container"> + <el-card class="card-override-padding"> + <el-collapse> + <el-collapse-item> + <template #title> + <span>鏌ヨ鏉′欢</span> + </template> + <el-form :model="formData"> + <el-row :gutter="20"> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-date-picker + :editable="false" + v-model="formData.year" + type="year" + placeholder="閫夋嫨骞�" + > + </el-date-picker> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ラ」鐩悕绉�" + v-model="formData.projectName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-select + style="width:100%" + clearable + v-model="formData.projectType" + placeholder="璇烽€夋嫨椤圭洰绫诲埆" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ラ」鐩崟浣�" + v-model="formData.deptName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ュ綊鍙i儴闂�" + v-model="formData.ownDeptName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + </el-row> + </el-form> + <el-row> + <el-button icon="el-icon-search" plain @click="search"> + 鏌ヨ + </el-button> + <el-button icon="el-icon-search" plain @click="clean"> + 閲嶇疆 + </el-button> + <el-button + type="success" + icon="el-icon-download" + plain + @click="clean" + > + 瀵煎嚭 + </el-button> + </el-row> + </el-collapse-item> + </el-collapse> + </el-card> + + <el-card class="mt-20 is-desktop"> + <el-table + :data="tableData" + @selection-change="handleSelectionChange" + stripe + border + > + <el-table-column type="selection" width="55" /> + <el-table-column + label="骞翠唤" + prop="year" + align="center" + ></el-table-column> + <el-table-column + label="椤圭洰绫诲埆" + prop="projectType" + align="center" + ></el-table-column> + <el-table-column + label="椤圭洰绫诲瀷" + prop="projectTypes" + align="center" + ></el-table-column> + <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center"> + <template #default="scope"> + <span @click="toDetail(scope.row)">{{ + scope.row.projectName + }}</span> + </template> + </el-table-column> + <el-table-column label="棰勭畻閲戦" prop="totalMoney" align="center"> + </el-table-column> + <el-table-column + label="鐢虫姤鍗曚綅" + prop="departmentName" + align="center" + ></el-table-column> + + <el-table-column label="璐熻矗浜�" prop="projectLeaderName" align="center"> + </el-table-column> + <el-table-column label="褰掑彛閮ㄩ棬" prop="ownDeptName" align="center"> + </el-table-column> + + <el-table-column label="濉姤鐘舵€�" prop="stateLabel" align="center"> + </el-table-column> + <el-table-column label="鎿嶄綔" width="200px" align="center"> + <template v-slot:default="scope"> + <el-button + type="primary" + plain + icon="el-icon-view" + v-if="scope.row.isHave == 1" + @click="remove(scope.row)" + >鏌ョ湅 + </el-button> + <el-button + type="success" + plain + icon="el-icon-edit" + v-if="scope.row.isHave == 0" + @click="remove1(scope.row)" + >鏂板缓 + </el-button> + </template> + </el-table-column> + </el-table> + <Pagination + :page="formData.pageIndex" + :limit="formData.pageSize" + :total="dataCount" + @pagination="changePage" + /> + </el-card> + <el-dialog v-model="dialogVisible" width="80%"> + <TableFlow + @handleBack="handleBack" + @handleSave="handleSave" + @handleSubmit="handleSubmit" + @handleReturn="handleReturn" + @handleCancel="handleCancel" + :flowstaus="false" + :row="applyInfo" + :canEdit="false" + /> + <template #footer> + <span class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙栨秷</el-button> + <el-button type="primary" @click="dialogVisible = false" + >纭</el-button + > + </span> + </template> + </el-dialog> + </div> +</template> + +<script> +import Api from '@/api'; +import { moneyFormat } from '@/utils'; +import ProjectLibrary from '@/api/projectLibrary'; +export default { + name: 'search', + data() { + return { + applyInfo: {}, + dialogVisible: false, + isShowForm: true, + formData: { + year: '2022', + deptName: '', + ownDeptName: '', + projectName: '', + projectType: '', + pageIndex: 1, + pageSize: 10 + }, + options: [ + { + value: '浠g紪涓庡畾鍚戦」鐩敮鍑�', + label: '浠g紪涓庡畾鍚戦」鐩敮鍑�' + }, + { + value: '缁忓父鎬х粡璐�', + label: '缁忓父鎬х粡璐�' + }, + + { + value: '缁忓父鎬ч」鐩�', + label: '缁忓父鎬ч」鐩�' + }, + { + value: '涓€娆℃€ч」鐩�', + label: '涓€娆℃€ч」鐩�' + } + ], + school: '', + uploadDialog: false, + showList: [], + fileList: [], + tableData: [], + dataCount: 0, + dialogSelectProject: false, //閫夋嫨缁忚垂椤圭洰 + projectList: [], + dataCountProject: 0, + multipleSelect: [], + formSelect: { + projectCode: '', + pageIndex: 1, + pageSize: 10 + } + }; + }, + created() {}, + + computed: {}, + watch: {}, + mounted() { + this.getselflist(); + }, + methods: { + toDetail(row) { + ProjectLibrary.queryProjectInfoPlanById(row.id).then(res => { + console.log('res', res); + + this.applyInfo = res.data[0]; + }); + this.dialogVisible = true; + }, + getselflist() { + Api.selfTargetPage(this.formData).then(res => { + console.log(res.data, '9999'); + this.tableData = res.data; + this.tableData.forEach(item => { + item.totalMoney = moneyFormat(item.totalMoney, 2, ','); + }); + this.dataCount = res.total; + }); + }, + handleSelectionChange(val) { + this.multipleSelection = val; + }, + clean() { + this.formData.updateuser = ''; + }, + //鏌ヨ + search() { + this.formData.pageIndex = 1; + this.getselflist(this.formData); + }, + //鍒犻櫎 + remove(row) { + this.$router.push({ + path: '/i/performance/evaluation', + query: { + parentId: row.id, + type: '鑷瘎' + } + }); + }, + remove1(row) { + this.$router.push({ + path: '/i/performance/evaluation', + query: { + parentId: row.id, + projectName: row.projectName, + ownDeptName: row.ownDeptName + } + }); + }, + //鍒嗛〉 + changePage(val) { + this.formData.pageIndex = val.page; + this.formData.pageSize = val.limit; + this.getselflist(this.formData); + } + + //鑾峰彇鍏ㄩ儴椤圭洰 + } +}; +</script> + +<style lang="scss" scoped> +.el-collapse { + border: none; +} +.apply-table-wrap { + padding: 0 150 0 !important; +} +</style> diff --git a/WebSite/src/views/performance/rectification.vue b/WebSite/src/views/performance/rectification.vue new file mode 100644 index 0000000000000000000000000000000000000000..b7b0cf47a55e8b1536d1ed1689c28cdb64176ff4 --- /dev/null +++ b/WebSite/src/views/performance/rectification.vue @@ -0,0 +1,499 @@ +<template> + <div class="app-container"> + <el-card> + <Flow + @handleBack="handleBack" + @handleSave="handleSave" + @handleSubmit="handleSubmit" + @handleReturn="handleReturn" + :flowInfo="flowInfo" + ></Flow> + </el-card> + <el-card class="mt card"> + <template #header> + <span class="fs14">棰勭畻椤圭洰缁╂晥璇勪环缁撴灉鏁存敼琛�</span> + </template> + <el-form :model="detail" ref="addForm"> + <div class="account-info1"> + <el-form-item label="椤圭洰鍚嶇О:"> + <span>{{ detail.fundsProjectName }}</span> + </el-form-item> + </div> + <div class="account-info1"> + <el-form-item label="鏍″唴椤圭洰鍗曚綅:"> + <span>{{ detail.schoolProjectName }}</span> + </el-form-item> + </div> + <div class="account-info2"> + <el-form-item label="椤圭洰璐熻矗浜�"> + <el-row class="showTable"> + <el-input v-model="fundspeople"></el-input> + </el-row> + </el-form-item> + </div> + <div class="account-info2"> + <el-form-item label="缁忓姙浜�"> + <el-row class="showTable"> + <el-input v-model="Handler"></el-input> + </el-row> + </el-form-item> + </div> + <div class="account-info2"> + <el-form-item label="鑱旂郴鐢佃瘽"> + <el-row class="showTable"> + <el-input v-model="tel"></el-input> + </el-row> + </el-form-item> + </div> + <el-table + class="showTable mt10 mb" + :data="tableData" + border + @selection-change="handleSelectionChange" + style="width: 100%; margin-top: 20px" + > + <el-table-column type="selection" width="55"> </el-table-column> + <el-table-column prop="id" label="缁╂晥鎸囨爣" width="180" /> + <el-table-column prop="name" label="鍋忓樊鍘熷洜鍙婄籂閿�" /> + <el-table-column + prop="amount1" + label="宸插畬鎴愭暣鏀�(璇存槑鏁存敼鎺柦鍜屾晥鏋�)" + > + <template #default="scope"> + <el-form-item> + <el-input v-model="scope.row.amount1"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column + prop="amount2" + label="姝e湪鏁存敼(璇存槑鏁存敼鎺柦,棰勬湡瀹屾垚鏁存敼鐨勬椂闂村強鏁堟灉)" + > + <template #default="scope"> + <el-form-item> + <el-input v-model="scope.row.amount2"></el-input> + </el-form-item> + </template> + </el-table-column> + <el-table-column + prop="amount3" + label="鏈暣鏀�(璇存槑鏈暣鏀圭殑鍘熷洜锛屼笅涓€姝ユ墦绠�)" + > + <template #default="scope"> + <el-form-item> + <el-input v-model="scope.row.amount3"></el-input> + </el-form-item> + </template> + </el-table-column> + </el-table> + <div class="account-info1"> + <el-form-item> + <el-row class="showTable"> + <el-button + style="float:right" + icon="el-icon-document-checked" + type="success" + @click="addPeopleInfo" + >纭淇濆瓨</el-button + > + </el-row> + </el-form-item> + </div> + </el-form> + </el-card> + </div> +</template> + +<script> +import Api from '@/api'; +export default { + components: {}, + props: { + applicationInfo: { + type: Object, + default: () => { + return {}; + } + } + }, + data() { + return { + flowInfo: { + nextSubmitNodes: [ + { + key: '1599725907064', + value: '绉戠爺澶勫鏍�' + } + ], + canRejectNodes: [ + { + key: '1599725907064', + value: '绉戠爺澶勫鏍�' + } + ], + user: '绯荤粺绠$悊鍛�', + state: '璐熻矗浜鸿ˉ鍏�', + flow: [ + { + actionTime: '2020骞�9鏈�11鏃�', + time: '17:30:43', + icon: '', + flowName: '绔嬮」', + attitude: '', + auditor: '绯荤粺绠$悊鍛�', + startNodeName: '寮€濮�', + endNodeName: '绉戠爺澶勭珛椤�', + flowState: '娴佺▼寮€濮�', + isPassed: 'False', + systemID: '00000000-0000-0000-0000-000000000000', + isEnable: false + }, + { + actionTime: '2020骞�9鏈�11鏃�', + time: '17:31:00', + icon: '', + flowName: '绔嬮」', + attitude: '', + auditor: '绯荤粺绠$悊鍛�', + startNodeName: '绉戠爺澶勭珛椤�', + endNodeName: '璐熻矗浜鸿ˉ鍏�', + flowState: '鎻愪氦', + isPassed: 'False', + systemID: '00000000-0000-0000-0000-000000000000', + isEnable: false + } + ], + btnStates: { + isShowSave: true, + isShowSubmit: true, + isShowReject: true, + isShowRevoke: false, + isShowChart: true, + isShowHistory: true, + isShowUser: true, + isShowState: true, + isShowCancel: false + } + }, + fundspeople: '', + Handler: '', + tel: '', + namechange: false, + information: '', + multipleSelection: [], + reason: '', + reason1: '', + showelse: false, + showelse1: false, + options1: [], + tableData: [ + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '骞村害璧勯噾鎬婚', + amount1: '0', + amount2: '', + amount3: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '鍏朵腑:褰撳勾璐㈡斂鎷ㄦ', + amount1: '', + amount2: '', + amount3: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '涓婂勾缁撹浆璧勯噾', + amount1: '', + amount2: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '鍏朵粬璧勯噾', + amount1: '', + amount2: '', + amount3: '' + } + ], + + selectSignatureVisiable: false, //閫夋嫨绛剧珷瀵硅瘽妗� + radio: '', //鍗曢€夋缁戝畾鐨勬暟鎹�--鏃犲疄闄呮剰涔� + input: '', + detail: { + //椤甸潰鏁版嵁 + schoolProjectName: '闄勫睘鍗牎浣撹偛鑹烘湳鏁欏閮�', + projectID: '', + fundsProjectName: '鏁欒偛鏁欏缁忚垂-浣撹偛鑹烘湳鏍″洯鏂囧寲寤鸿(2020)', + parentId: '', + extendFieldList: { + fundspeople: '', + Handler: '', + tel: '', + achievementslist: [ + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '骞村害璧勯噾鎬婚', + amount1: '0', + amount2: '', + amount3: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '鍏朵腑:褰撳勾璐㈡斂鎷ㄦ', + amount1: '', + amount2: '', + amount3: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '涓婂勾缁撹浆璧勯噾', + amount1: '', + amount2: '' + }, + { + id: '椤圭洰璧勯噾(涓囧厓)', + name: '鍏朵粬璧勯噾', + amount1: '', + amount2: '', + amount3: '' + } + ] + } + }, + organizationlist: [], + applyname: '', + date: '', + listnum: '', + test1: [], + fundsname: [], + sumlist: '' + }; + }, + async created() { + if (this.$route.query.type) { + Api.queryTargetPlan( + this.$route.query.parentId, + this.$route.query.type + ).then(res => { + this.detail = res.data[0]; + this.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList); + this.tableData = this.detail.extendFieldList; + this.flowInfo = res.data[0].flowCanShowOut; + }); + } + if (this.$route.query.ownDeptName) { + this.detail.fundsProjectName = this.$route.query.projectName; + this.detail.schoolProjectName = this.$route.query.ownDeptName; + } + }, + + computed: {}, + methods: { + getformlist() { + Api.queryTargetPlan(this.$route.query.parentId, '鏁存敼').then(res => { + this.detail = res.data[0]; + this.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList); + console.log(this.detail.extendFieldList, '99999'); + }); + }, + handleBack() { + const ua = window.navigator.userAgent.toLowerCase(); + + if (ua.toLowerCase().indexOf('micromessenger') > -1) { + if ( + ua.toLowerCase().indexOf('iphone') > -1 && + ua.toLowerCase().indexOf('wxworklocal') > -1 + ) { + history.go(-4); + } else { + history.go(-3); + } + } else if (ua.toLowerCase().indexOf('dingtalk') > -1) { + history.go(-3); + } else { + history.go(-1); + } + return false; + }, + handleSave() { + this.detail.extendFieldList.achievementslist = this.tableData; + this.detail.parentId = this.$route.query.parentId; + this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList); + Api.saveTargetPlanReform(this.detail).then(res => { + console.log(res.data, '9999'); + this.getformlist(); + }); + }, + handleSubmit() { + this.$emit('handleSubmit'); + }, + handleReturn() { + this.$emit('handleReturn'); + }, + handleCancel() { + this.$emit('handleCancel'); + }, + addPeopleInfo() { + this.detail.extendFieldList.fundspeople = this.fundspeople; + this.detail.extendFieldList.Handler = this.Handler; + this.detail.extendFieldList.tel = this.tel; + this.detail.extendFieldList.achievementslist = this.tableData; + this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList); + console.log(this.detail, '000000'); + }, + fileChange(file, fileList) { + this.fileList = fileList; + }, + removeFile(file, fileList) { + this.fileList = fileList; + }, + uploadFile() { + // console.log('uploadFile'); + }, + objectSpanMethod({ rowIndex, columnIndex }) { + if (columnIndex === 0) { + if (rowIndex % 4 === 0) { + return { + rowspan: 4, + colspan: 1 + }; + } else { + return { + rowspan: 0, + colspan: 0 + }; + } + } + }, + handleSelectionChange(val) { + this.multipleSelection = val; + }, + deletePelpleRow(index) { + console.log(index); + } + } +}; +</script> + +<style lang="scss" scoped> +.project-card { + margin-top: 10px; + cursor: pointer; + position: relative; + .category { + text-align: center; + width: 20px; + height: 20px; + border-radius: 50%; + color: #fff !important; + background-color: #6cd1b3; + position: absolute; + font-size: 6px; + line-height: 21px; + top: calc(50% - 15px); + } + .right-sign { + position: absolute; + right: 20px; + top: 50%; + // border: solid 1px; + border-top: solid 1px rgba($color: #000000, $alpha: 0.3); + border-right: solid 1px rgba($color: #000000, $alpha: 0.3); + width: 8px; + height: 8px; + transform: rotate(45deg) translateY(-50%); + } +} +.bill-card-header { + color: #fff; + font-size: 15px; + display: flex; + justify-content: space-between; + align-items: center; + .el-button { + background-color: #3c8dbc; + color: #fff; + font-weight: 700; + } +} +.bill-info { + position: relative; + border-bottom: solid 1px rgba(0, 0, 0, 0.1); + padding-bottom: 20px; + padding-top: 10px; + div { + display: inline-block; + height: 28px; + line-height: 28px; + font-size: 14px; + } + .el-button { + position: absolute; + top: 10px; + right: 0; + } +} +.el-select { + width: 100%; +} +.account-info { + display: inline-block; + width: 40%; + margin-right: 20px; +} +.account-info1 { + display: inline-block; + width: 100%; + margin-right: 20px; +} +.account-info2 { + display: inline-block; + width: 30%; + margin-right: 20px; +} +.showTable { + display: block; +} +.showCard { + display: none; +} +.el-table .el-form-item { + margin-bottom: 0px; +} +.mt { + margin-top: 20px; +} +.mt10 { + margin-top: 10px; +} +.mb { + margin-bottom: 20px; +} +.fs14 { + font-size: 14px; +} +.fs15 { + float: right; + font-size: 14px; +} +@media screen and (max-width: 765px) { + .account-info { + display: block; + width: 100%; + } + .showTable { + display: none; + } + .showCard { + display: block; + } +} +</style> + +<style lang="scss"> +.select-approval-user { + .el-table__body tr.current-row > td { + background-color: #409eff; + } +} +</style> diff --git a/WebSite/src/views/performance/rectificationview.vue b/WebSite/src/views/performance/rectificationview.vue new file mode 100644 index 0000000000000000000000000000000000000000..042be5b2557ae79adeed4d6c6134d68d8e2c88a6 --- /dev/null +++ b/WebSite/src/views/performance/rectificationview.vue @@ -0,0 +1,332 @@ +<template> + <div class="app-container"> + <el-card class="card-override-padding"> + <el-collapse> + <el-collapse-item> + <template #title> + <span>鏌ヨ鏉′欢</span> + </template> + <el-form :model="formData"> + <el-row :gutter="20"> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-date-picker + :editable="false" + v-model="formData.year" + type="year" + placeholder="閫夋嫨骞�" + > + </el-date-picker> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ラ」鐩悕绉�" + v-model="formData.projectName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-select + style="width:100%" + clearable + v-model="formData.projectType" + placeholder="璇烽€夋嫨椤圭洰绫诲埆" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ラ」鐩崟浣�" + v-model="formData.deptName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ュ綊鍙i儴闂�" + v-model="formData.ownDeptName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + </el-row> + </el-form> + <el-row> + <el-button icon="el-icon-search" plain @click="search"> + 鏌ヨ + </el-button> + <el-button icon="el-icon-search" plain @click="clean"> + 閲嶇疆 + </el-button> + <el-button + type="success" + icon="el-icon-download" + plain + @click="clean" + > + 瀵煎嚭 + </el-button> + </el-row> + </el-collapse-item> + </el-collapse> + </el-card> + + <el-card class="mt-20 is-desktop"> + <el-table + :data="tableData" + @selection-change="handleSelectionChange" + stripe + border + > + <el-table-column type="selection" width="55" /> + <el-table-column + label="骞翠唤" + prop="year" + align="center" + ></el-table-column> + <el-table-column + label="椤圭洰绫诲埆" + prop="projectType" + align="center" + ></el-table-column> + <el-table-column + label="椤圭洰绫诲瀷" + prop="projectTypes" + align="center" + ></el-table-column> + <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center"> + <template #default="scope"> + <span @click="toDetail(scope.row)">{{ + scope.row.projectName + }}</span> + </template> + </el-table-column> + <el-table-column label="棰勭畻閲戦" prop="totalMoney" align="center"> + </el-table-column> + <el-table-column + label="鐢虫姤鍗曚綅" + prop="departmentName" + align="center" + ></el-table-column> + + <el-table-column label="璐熻矗浜�" prop="projectLeaderName" align="center"> + </el-table-column> + <el-table-column label="褰掑彛閮ㄩ棬" prop="ownDeptName" align="center"> + </el-table-column> + + <el-table-column label="濉姤鐘舵€�" prop="stateLabel" align="center"> + </el-table-column> + <el-table-column label="鎿嶄綔" width="200px" align="center"> + <template v-slot:default="scope"> + <el-button + type="primary" + plain + icon="el-icon-view" + v-if="scope.row.isHave == 1" + @click="remove(scope.row)" + >鏌ョ湅 + </el-button> + <el-button + type="success" + plain + icon="el-icon-edit" + v-if="scope.row.isHave == 0" + @click="remove1(scope.row)" + >鏂板缓 + </el-button> + </template> + </el-table-column> + </el-table> + <Pagination + :page="formData.pageIndex" + :limit="formData.pageSize" + :total="dataCount" + @pagination="changePage" + /> + </el-card> + <el-dialog v-model="dialogVisible" width="80%"> + <TableFlow + @handleBack="handleBack" + @handleSave="handleSave" + @handleSubmit="handleSubmit" + @handleReturn="handleReturn" + @handleCancel="handleCancel" + :flowstaus="false" + :row="applyInfo" + :canEdit="false" + /> + <template #footer> + <span class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙栨秷</el-button> + <el-button type="primary" @click="dialogVisible = false" + >纭</el-button + > + </span> + </template> + </el-dialog> + </div> +</template> + +<script> +import Api from '@/api'; +import ProjectLibrary from '@/api/projectLibrary'; +import { moneyFormat } from '@/utils'; +export default { + name: 'search', + data() { + return { + applyInfo: {}, + dialogVisible: false, + isShowForm: true, + formData: { + year: '2022', + deptName: '', + ownDeptName: '', + projectName: '', + projectType: '', + pageIndex: 1, + pageSize: 10 + }, + options: [ + { + value: '浠g紪涓庡畾鍚戦」鐩敮鍑�', + label: '浠g紪涓庡畾鍚戦」鐩敮鍑�' + }, + { + value: '缁忓父鎬х粡璐�', + label: '缁忓父鎬х粡璐�' + }, + + { + value: '缁忓父鎬ч」鐩�', + label: '缁忓父鎬ч」鐩�' + }, + { + value: '涓€娆℃€ч」鐩�', + label: '涓€娆℃€ч」鐩�' + } + ], + school: '', + uploadDialog: false, + showList: [], + fileList: [], + tableData: [ + { + projectCode: '2021', + projectName: '鍖诲褰卞儚瀛﹂櫌', + gmtCreateUser: '鏁欏缁忚垂', + gmtCreateUser1: '鏃ュ父鏁欏缁忚垂', + gmtCreateUser2: '0490180', + gmtCreateUser3: '璐㈠姟澶�', + gmtCreateUser4: '0.00', + gmtCreateUser5: '鏈鏍�' + } + ], + dataCount: 0, + dialogSelectProject: false, //閫夋嫨缁忚垂椤圭洰 + projectList: [], + dataCountProject: 0, + multipleSelect: [], + formSelect: { + year: '2022', + pageIndex: 1, + pageSize: 10 + } + }; + }, + created() {}, + + computed: {}, + watch: {}, + mounted() { + this.getreformlist(); + }, + methods: { + toDetail(row) { + ProjectLibrary.queryProjectInfoPlanById(row.id).then(res => { + console.log('res', res); + + this.applyInfo = res.data[0]; + }); + this.dialogVisible = true; + }, + getreformlist() { + Api.reformTargetPage(this.formData).then(res => { + console.log(res.data, '9999'); + this.tableData = res.data; + this.tableData.forEach(item => { + item.totalMoney = moneyFormat(item.totalMoney, 2, ','); + }); + this.dataCount = res.total; + }); + }, + clean() { + this.formData.updateuser = ''; + }, + handleSelectionChange(val) { + this.multipleSelection = val; + }, + //鏌ヨ + search() { + this.formData.pageIndex = 1; + this.getreformlist(this.formData); + }, + //鍒犻櫎 + + remove(row) { + this.$router.push({ + path: '/i/performance/rectification', + query: { + parentId: row.id, + type: '鏁存敼' + } + }); + }, + remove1(row) { + this.$router.push({ + path: '/i/performance/rectification', + query: { + parentId: row.id, + projectName: row.projectName, + ownDeptName: row.ownDeptName + } + }); + }, + //鍒嗛〉 + changePage(val) { + this.formData.pageIndex = val.page; + this.formData.pageSize = val.limit; + this.getreformlist(this.formData); + } + } +}; +</script> + +<style lang="scss" scoped> +.el-collapse { + border: none; +} +.apply-table-wrap { + padding: 0 150 0 !important; +} +</style> diff --git a/WebSite/src/views/performance/rectificationwatchview.vue b/WebSite/src/views/performance/rectificationwatchview.vue new file mode 100644 index 0000000000000000000000000000000000000000..c729bb141a820498482309dbae99d9a688f1e8ce --- /dev/null +++ b/WebSite/src/views/performance/rectificationwatchview.vue @@ -0,0 +1,332 @@ +<template> + <div class="app-container"> + <el-card class="card-override-padding"> + <el-collapse> + <el-collapse-item> + <template #title> + <span>鏌ヨ鏉′欢</span> + </template> + <el-form :model="formData"> + <el-row :gutter="20"> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-date-picker + :editable="false" + v-model="formData.year" + type="year" + placeholder="閫夋嫨骞�" + > + </el-date-picker> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ラ」鐩悕绉�" + v-model="formData.projectName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-select + style="width:100%" + clearable + v-model="formData.projectType" + placeholder="璇烽€夋嫨椤圭洰绫诲埆" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ラ」鐩崟浣�" + v-model="formData.deptName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + <el-col :sm="12" :md="8" :lg="6"> + <el-form-item> + <el-form-item> + <el-input + placeholder="璇疯緭鍏ュ綊鍙i儴闂�" + v-model="formData.ownDeptName" + ></el-input> + </el-form-item> + </el-form-item> + </el-col> + </el-row> + </el-form> + <el-row> + <el-button icon="el-icon-search" plain @click="search"> + 鏌ヨ + </el-button> + <el-button icon="el-icon-search" plain @click="clean"> + 閲嶇疆 + </el-button> + <el-button + type="success" + icon="el-icon-download" + plain + @click="clean" + > + 瀵煎嚭 + </el-button> + </el-row> + </el-collapse-item> + </el-collapse> + </el-card> + + <el-card class="mt-20 is-desktop"> + <el-table + :data="tableData" + @selection-change="handleSelectionChange" + stripe + border + > + <el-table-column type="selection" width="55" /> + <el-table-column + label="骞翠唤" + prop="year" + align="center" + ></el-table-column> + <el-table-column + label="椤圭洰绫诲埆" + prop="projectType" + align="center" + ></el-table-column> + <el-table-column + label="椤圭洰绫诲瀷" + prop="projectTypes" + align="center" + ></el-table-column> + <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center"> + <template #default="scope"> + <span @click="toDetail(scope.row)">{{ + scope.row.projectName + }}</span> + </template> + </el-table-column> + <el-table-column label="棰勭畻閲戦" prop="totalMoney" align="center"> + </el-table-column> + <el-table-column + label="鐢虫姤鍗曚綅" + prop="departmentName" + align="center" + ></el-table-column> + + <el-table-column label="璐熻矗浜�" prop="projectLeaderName" align="center"> + </el-table-column> + <el-table-column label="褰掑彛閮ㄩ棬" prop="ownDeptName" align="center"> + </el-table-column> + + <el-table-column label="濉姤鐘舵€�" prop="stateLabel" align="center"> + </el-table-column> + <el-table-column label="鎿嶄綔" width="200px" align="center"> + <template v-slot:default="scope"> + <el-button + type="primary" + plain + icon="el-icon-view" + v-if="scope.row.isHave == 1" + @click="remove(scope.row)" + >鏌ョ湅 + </el-button> + <el-button + type="success" + plain + icon="el-icon-edit" + v-if="scope.row.isHave == 0" + @click="remove1(scope.row)" + >鏂板缓 + </el-button> + </template> + </el-table-column> + </el-table> + <Pagination + :page="formData.pageIndex" + :limit="formData.pageSize" + :total="dataCount" + @pagination="changePage" + /> + </el-card> + <el-dialog v-model="dialogVisible" width="80%"> + <TableFlow + @handleBack="handleBack" + @handleSave="handleSave" + @handleSubmit="handleSubmit" + @handleReturn="handleReturn" + @handleCancel="handleCancel" + :flowstaus="false" + :row="applyInfo" + :canEdit="false" + /> + <template #footer> + <span class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙栨秷</el-button> + <el-button type="primary" @click="dialogVisible = false" + >纭</el-button + > + </span> + </template> + </el-dialog> + </div> +</template> + +<script> +import Api from '@/api'; +import ProjectLibrary from '@/api/projectLibrary'; +import { moneyFormat } from '@/utils'; +export default { + name: 'search', + data() { + return { + applyInfo: {}, + dialogVisible: false, + isShowForm: true, + formData: { + year: '2022', + deptName: '', + ownDeptName: '', + projectName: '', + projectType: '', + pageIndex: 1, + pageSize: 10 + }, + options: [ + { + value: '浠g紪涓庡畾鍚戦」鐩敮鍑�', + label: '浠g紪涓庡畾鍚戦」鐩敮鍑�' + }, + { + value: '缁忓父鎬х粡璐�', + label: '缁忓父鎬х粡璐�' + }, + + { + value: '缁忓父鎬ч」鐩�', + label: '缁忓父鎬ч」鐩�' + }, + { + value: '涓€娆℃€ч」鐩�', + label: '涓€娆℃€ч」鐩�' + } + ], + school: '', + uploadDialog: false, + showList: [], + fileList: [], + tableData: [ + { + projectCode: '2021', + projectName: '鍖诲褰卞儚瀛﹂櫌', + gmtCreateUser: '鏁欏缁忚垂', + gmtCreateUser1: '鏃ュ父鏁欏缁忚垂', + gmtCreateUser2: '0490180', + gmtCreateUser3: '璐㈠姟澶�', + gmtCreateUser4: '0.00', + gmtCreateUser5: '鏈鏍�' + } + ], + dataCount: 0, + dialogSelectProject: false, //閫夋嫨缁忚垂椤圭洰 + projectList: [], + dataCountProject: 0, + multipleSelect: [], + formSelect: { + year: '2022', + pageIndex: 1, + pageSize: 10 + } + }; + }, + created() {}, + + computed: {}, + watch: {}, + mounted() { + this.getreformlist(); + }, + methods: { + toDetail(row) { + ProjectLibrary.queryProjectInfoPlanById(row.id).then(res => { + console.log('res', res); + + this.applyInfo = res.data[0]; + }); + this.dialogVisible = true; + }, + getreformlist() { + Api.reformTargetPage(this.formData).then(res => { + console.log(res.data, '9999'); + this.tableData = res.data; + this.tableData.forEach(item => { + item.totalMoney = moneyFormat(item.totalMoney, 2, ','); + }); + this.dataCount = res.total; + }); + }, + clean() { + this.formData.updateuser = ''; + }, + handleSelectionChange(val) { + this.multipleSelection = val; + }, + //鏌ヨ + search() { + this.formData.pageIndex = 1; + this.getreformlist(this.formData); + }, + //鍒犻櫎 + + remove(row) { + this.$router.push({ + path: '/i/performance/rectification', + query: { + parentId: row.id, + type: '鏁存敼' + } + }); + }, + remove1(row) { + this.$router.push({ + path: '/i/performance/rectification', + query: { + parentId: row.id, + projectName: row.projectName, + ownDeptName: row.ownDeptName + } + }); + }, + //鍒嗛〉 + changePage(val) { + this.formData.pageIndex = val.page; + this.formData.pageSize = val.limit; + this.getreformlist(this.formData); + } + } +}; +</script> + +<style lang="scss" scoped> +.el-collapse { + border: none; +} +.apply-table-wrap { + padding: 0 150 0 !important; +} +</style> diff --git a/WebSite/src/views/yo-common/IncomeApply/index.vue b/WebSite/src/views/yo-common/IncomeApply/index.vue index 0cd14c13071d1c1a53b28b59b2f6cb4050787310..005fc50c96cbba7cf7fa25572a794c0f817124bf 100644 --- a/WebSite/src/views/yo-common/IncomeApply/index.vue +++ b/WebSite/src/views/yo-common/IncomeApply/index.vue @@ -501,6 +501,7 @@ export default { attachmentInfoOutList: [], advertisement: {}, donate: {}, + recovery: {}, nationalHire: {}, totalMoney: '' }, @@ -528,7 +529,6 @@ export default { watch( () => props.row, val => { - console.log('val', val); data.flowCanShowOut = val.flowCanShowOut; data.incomeType = val.planType; const dept = data.deptList.find( @@ -553,6 +553,7 @@ export default { data.eduData.total = toThousands(val.totalMoney); } else if (val.planType == 'BAXIANG') { data[`${incomeTypeStr.value}` + 'Data'] = JSON.parse(val.otherJson); + console.log(data.eightData); } else { data.eduData.deptNO = val.departmentCode; let arr = []; @@ -680,7 +681,7 @@ export default { context.emit('handleSave', saveData.value, props.row.id); }; const handleSubmit = flowOutput => { - context.emit('handleSubmit', flowOutput, props.row.id); + context.emit('handleSubmit', flowOutput, props.row.id, saveData.value); }; const handleReturn = flowOutput => { context.emit('handleReturn', flowOutput, props.row.id); diff --git a/WebSite/src/views/yo-common/IncomeApplyPageList/index.vue b/WebSite/src/views/yo-common/IncomeApplyPageList/index.vue index 9a417809b2dcdadec23703c1e7ff5e38d8325eec..49da51a1a9e78ebb6def0dfcdc37b64b57b3f9a6 100644 --- a/WebSite/src/views/yo-common/IncomeApplyPageList/index.vue +++ b/WebSite/src/views/yo-common/IncomeApplyPageList/index.vue @@ -4,6 +4,7 @@ <el-row :gutter="20"> <el-col :span="6"> <el-date-picker + :editable="false" v-model="queryForm.year" type="year" placeholder="閫夋嫨鏃ユ湡" @@ -18,11 +19,13 @@ v-model="queryForm.planType" clearable > - <el-option label="鏁欒偛" value="JIAOYU"></el-option> - <el-option label="鍏」" value="BAXIANG"></el-option> - <el-option label="鍏朵粬" value="QITA"></el-option> - <el-option label="绉戠爺" value="KEYAN"></el-option> - <el-option label="鏁欏" value="JIAOWEI"></el-option> + <el-option label="鏁欒偛浜嬩笟鏀跺叆" value="JIAOYU"></el-option> + <el-option label="鍏」鏀跺叆" value="BAXIANG"></el-option> + <el-option label="鍏朵粬鏀跺叆" value="QITA"></el-option> + <el-option label="绉戠爺浜嬩笟鏀跺叆" value="KEYAN"></el-option> + <el-option label="鏁欏涓撻」鏀跺叆" value="JIAOWEI"></el-option> + <el-option label="璐㈡斂鎷ㄦ-鐢熷潎鎷ㄦ" value="SHENGJUN"></el-option> + <el-option label="璐㈡斂鎷ㄦ-鍐呮兜寤鸿" value="NEIHAN"></el-option> </el-select> </el-col> <el-col :span="6" v-if="showStateInput"> diff --git a/WebSite/src/views/yo-common/PeopleApplyPageList/index.vue b/WebSite/src/views/yo-common/PeopleApplyPageList/index.vue index 28ebf306480f43b0c72afd38bd0729912f697cd1..175b7fa5b8068e6dc2778b2723d254378715e4d6 100644 --- a/WebSite/src/views/yo-common/PeopleApplyPageList/index.vue +++ b/WebSite/src/views/yo-common/PeopleApplyPageList/index.vue @@ -4,6 +4,7 @@ <el-row :gutter="20"> <el-col :span="6"> <el-date-picker + :editable="false" v-model="queryForm.year" type="year" placeholder="閫夋嫨鏃ユ湡" diff --git a/WebSite/src/views/yo-common/PeopleFundApply/index.vue b/WebSite/src/views/yo-common/PeopleFundApply/index.vue index fc7f534095f26056f3a21dc5eedfa99435ab23e2..19fb537ab565fddc5f4ee26c2704388f85079d5f 100644 --- a/WebSite/src/views/yo-common/PeopleFundApply/index.vue +++ b/WebSite/src/views/yo-common/PeopleFundApply/index.vue @@ -178,7 +178,11 @@ export default { ]); }; const handleSubmit = flowOutput => { - context.emit('handleSubmit', flowOutput, props.row[0].id); + context.emit('handleSubmit', flowOutput, props.row[0].id, [ + data.personSubjectList, + data.deptName, + props.row + ]); }; const handleReturn = flowOutput => { context.emit('handleReturn', flowOutput, props.row[0].id); diff --git a/WebSite/src/views/yo-common/ProjectApplyPageList/detail.vue b/WebSite/src/views/yo-common/ProjectApplyPageList/detail.vue index 50b4287d2d857284f831b0a88cb03e2deec49b60..5ba7542f3b34eff56ca4e2b709962e96c551561b 100644 --- a/WebSite/src/views/yo-common/ProjectApplyPageList/detail.vue +++ b/WebSite/src/views/yo-common/ProjectApplyPageList/detail.vue @@ -68,6 +68,13 @@ export default { nodeIds: [flowOutput.nodeIds], remake: flowOutput.remake }; + // const newApplyInfo = JSON.parse(JSON.stringify(applyInfo)); + // newApplyInfo.summaryJson = JSON.stringify(newApplyInfo.summaryJson); + + // newApplyInfo.planType = newApplyInfo.planType + // ? newApplyInfo.planType + // : props.planType; + // await Api.saveProjectFundApply(newApplyInfo); await Api.submitPlan(params); handleBack(); }; diff --git a/WebSite/src/views/yo-common/ProjectApplyPageList/index.vue b/WebSite/src/views/yo-common/ProjectApplyPageList/index.vue index c3ca3d81f0c4bbf692cfee62280587c26175e9fe..3e932ffd63815454eb3b3288f5df6621fca24981 100644 --- a/WebSite/src/views/yo-common/ProjectApplyPageList/index.vue +++ b/WebSite/src/views/yo-common/ProjectApplyPageList/index.vue @@ -7,6 +7,8 @@ </el-col> <el-col :span="6"> <el-select + clearable + filterable v-model="queryForm.departmentName" placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" > @@ -20,6 +22,7 @@ </el-col> <el-col :span="6"> <el-input + clearable v-model="queryForm.projectType" placeholder="璇疯緭鍏ラ」鐩被鍨�" ></el-input> @@ -27,6 +30,7 @@ <!-- v-if="showDepartment" --> <el-col :span="6"> <el-input + clearable v-model="queryForm.projectName" placeholder="璇疯緭鍏ラ」鐩悕绉�" ></el-input> @@ -34,11 +38,16 @@ </el-row> <el-row :gutter="20" class="mtop20"> <el-col :span="6"> - <el-select v-model="queryForm.state" placeholder="璇疯緭鍏ュ鏍哥姸鎬�"> + <el-select + clearable + v-model="queryForm.state" + placeholder="璇疯緭鍏ュ鏍哥姸鎬�" + > <el-option label="寰呮彁浜�" value="寰呮彁浜�"></el-option> <el-option label="閮ㄩ棬棰嗗瀹℃壒" value="閮ㄩ棬棰嗗瀹℃壒"></el-option> - <el-option label="褰掑彛閮ㄩ棬瀹℃壒" value="褰掑彛閮ㄩ棬瀹℃壒"></el-option> - <el-option label="璐㈠姟澶勫鎵�" value="璐㈠姟澶勫鎵�"></el-option> + <el-option label="褰掑彛閮ㄩ棬瀹℃牳" value="褰掑彛閮ㄩ棬瀹℃牳"></el-option> + <el-option label="璐㈠姟澶勭‘璁�" value="璐㈠姟澶勭‘璁�"></el-option> + <el-option label="瀹℃牳瀹屾垚" value="瀹℃牳瀹屾垚"></el-option> </el-select> </el-col> <el-col :span="3"> @@ -51,8 +60,8 @@ <template #header> <el-row type="flex" justify="start"> <div> - <el-button disabled plain type="primary" @click="batchSubmitHandler" - >鎵归噺閫氳繃</el-button + <el-button plain type="primary" @click="batchSubmitHandler" + >鎵归噺鎻愪氦鑷冲畬鎴�</el-button > <el-button disabled plain type="warning" @click="batchRejectHandler" >鎵归噺椹冲洖</el-button @@ -86,11 +95,12 @@ <script> import PageQuery from '@/components/PageQuery'; import { reactive, toRefs, watch, onMounted } from 'vue'; -import { ElMessage } from 'element-plus'; +import { ElMessage, ElMessageBox } from 'element-plus'; import ProjectLibrary from '@/api/projectLibrary'; import { useRoute } from 'vue-router'; import Storage from '@/utils/Storage'; import { moneyFormat } from '@/utils'; + export default { props: { planType: { @@ -113,6 +123,7 @@ export default { const data = reactive({ tableData: [], deptList: [], + idList: [], pageNO: Storage.getSession('PROJECT_QUERY_FORM')?.pageIndex || 1, pageSize: Storage.getSession('PROJECT_QUERY_FORM')?.pageSize || 10, total: 0, @@ -170,8 +181,32 @@ export default { ); // http://bi.sumhs.edu.cn/WebReport/ReportServer?reportlet=ProjectPlan%2FprojectplanExport.cpt&id=1435865032658386946 }; - const batchSubmitHandler = () => { - ElMessage.success('鎻愪氦鎴愬姛'); + const batchSubmitHandler = async () => { + console.log(data.selectedList, '0000'); + data.selectedList.forEach(item => { + data.idList.push(item.id); + }); + ElMessageBox.confirm( + '鏄惁灏嗘墍閫夐」鐩粠鈥滆储鍔″纭鈥濇彁浜よ嚦鈥滃鏍稿畬鎴愨€濊妭鐐�?', + '鎻愮ず', + { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + } + ) + .then(async () => { + await ProjectLibrary.submitProjectPlanListToFinish(data.idList); + await getPageList(); + data.idList = []; + ElMessage.success('鎻愪氦鎴愬姛'); + }) + .catch(() => { + ElMessage({ + type: 'info', + message: '鎻愪氦宸插彇娑�' + }); + }); }; const batchRejectHandler = () => { ElMessage.success('椹冲洖鎴愬姛'); diff --git a/WebSite/src/views/yo-common/ProjectFundApply/jk.vue b/WebSite/src/views/yo-common/ProjectFundApply/jk.vue index fa06b6b2a0636ca4c10bbaef4a32836be710ca25..5462c4c9f8dcb087c23dcdec79c100f31c982dfd 100644 --- a/WebSite/src/views/yo-common/ProjectFundApply/jk.vue +++ b/WebSite/src/views/yo-common/ProjectFundApply/jk.vue @@ -41,6 +41,7 @@ </el-steps> </div> <div + v-if="flowstaus" id="flowWrap" style="position: absolute; left: 0px; @@ -126,7 +127,7 @@ <!-- <el-input v-model="applyInfo.projectLeaderName" placeholder="璇疯緭鍏ヨ礋璐d汉"></el-input> --> </el-form-item> </el-col> - <el-col :xs="8" :sm="8" :md="8" :lg="8"> + <!-- <el-col :xs="8" :sm="8" :md="8" :lg="8"> <el-form-item label="寤鸿閲戦锛�"> <InputNumber disabled @@ -134,7 +135,7 @@ placeholder="璇疯緭鍏ュ缓璁噾棰�" ></InputNumber> </el-form-item> - </el-col> + </el-col> --> </el-row> </el-card> @@ -718,6 +719,10 @@ export default { type: Boolean, required: true }, + flowstaus: { + type: Boolean, + default: true + }, row: { type: Object, default: () => { @@ -892,9 +897,9 @@ export default { const getApplyDept = async () => { const res = await Api.pfApplyDept(); baseinfoData.applyDept = res.data; - if (res.data && res.data.length > 0) { - data.applyInfo.departmentCode = baseinfoData.applyDept[0].code; - } + // if (res.data && res.data.length > 0) { + // data.applyInfo.departmentCode = baseinfoData.applyDept[0].code; + // } }; const getProjectType = async () => { const res = await Api.projectFundProjectType({ diff --git a/WebSite/src/views/yo-common/ProjectFundApply/lg.vue b/WebSite/src/views/yo-common/ProjectFundApply/lg.vue index d81e02ec580957bb7bcc9725ae290bbc705ec585..7a3c1384f6252e11b63dda7d276284d8ba5ae8bb 100644 --- a/WebSite/src/views/yo-common/ProjectFundApply/lg.vue +++ b/WebSite/src/views/yo-common/ProjectFundApply/lg.vue @@ -1012,9 +1012,9 @@ export default { const getApplyDept = async () => { const res = await Api.pfApplyDept(); baseinfoData.applyDept = res.data; - if (res.data && res.data.length > 0) { - data.applyInfo.departmentCode = baseinfoData.applyDept[0].code; - } + // if (res.data && res.data.length > 0) { + // data.applyInfo.departmentCode = baseinfoData.applyDept[0].code; + // } }; const getProjectType = async () => { const res = await Api.projectFundProjectType({ diff --git a/WebSite/src/views/yo-common/ProjectFundApply/sd.vue b/WebSite/src/views/yo-common/ProjectFundApply/sd.vue index 6b008731e7a561d5a6ea4ff47d0080d2e7b8d75c..0d655129e1bf9d464a47a2e182c6714509d74188 100644 --- a/WebSite/src/views/yo-common/ProjectFundApply/sd.vue +++ b/WebSite/src/views/yo-common/ProjectFundApply/sd.vue @@ -898,9 +898,9 @@ export default { const getApplyDept = async () => { const res = await Api.pfApplyDept(); baseinfoData.applyDept = res.data; - if (res.data && res.data.length > 0) { - data.applyInfo.departmentCode = baseinfoData.applyDept[0].code; - } + // if (res.data && res.data.length > 0) { + // data.applyInfo.departmentCode = baseinfoData.applyDept[0].code; + // } }; const getProjectType = async () => { const res = await Api.projectFundProjectType({ diff --git a/WebSite/src/views/yo-common/PublicApplyPageList/detail.vue b/WebSite/src/views/yo-common/PublicApplyPageList/detail.vue index 648c4df4e5f0ce1110aa33cb7739ad6ded011c20..11e71c7d05038c58bbb1151fed87d57e7c3edf6e 100644 --- a/WebSite/src/views/yo-common/PublicApplyPageList/detail.vue +++ b/WebSite/src/views/yo-common/PublicApplyPageList/detail.vue @@ -122,6 +122,28 @@ export default { } }; const handleSubmit = async (flowOutput, applyInfo) => { + const newApplyInfo=JSON.parse(JSON.stringify(applyInfo)); + newApplyInfo.summaryJson = JSON.stringify(newApplyInfo.summaryJson); + newApplyInfo.note = JSON.stringify(newApplyInfo.note); + + + + newApplyInfo.planSubjectList.forEach(item => { + item.otherJson = JSON.stringify(item.otherJson); + if (item.subjectDetailList.length <= 0) { + item.subjectDetailList = null; + } else { + item.subjectDetailList.forEach(jtem => { + jtem.otherJson = JSON.stringify(jtem.otherJson); + }); + } + }); + // applyInfo.planType = applyInfo.planType + // ? applyInfo.planType + // : props.planType; + // const newApplyInfo = JSON.parse(JSON.stringify(applyInfo)); + // newApplyInfo.note = JSON.stringify(newApplyInfo.note); + await Api.savePublicFundApply(newApplyInfo); console.log(flowOutput, applyInfo); const params = { id: applyInfo.id, diff --git a/WebSite/src/views/yo-common/PublicApplyPageList/index.vue b/WebSite/src/views/yo-common/PublicApplyPageList/index.vue index dd9dcc3223de3ab054402234be35c7623d1fd91b..644d579f02082a5f7e45124e4f26ecb7581a3020 100644 --- a/WebSite/src/views/yo-common/PublicApplyPageList/index.vue +++ b/WebSite/src/views/yo-common/PublicApplyPageList/index.vue @@ -4,6 +4,7 @@ <el-row :gutter="20"> <el-col :span="6"> <el-date-picker + :editable="false" v-model="queryForm.year" type="year" placeholder="閫夋嫨鏃ユ湡" diff --git a/WebSite/src/views/yo-dept-bz/find/FindBackDeptFund/index.vue b/WebSite/src/views/yo-dept-bz/find/FindBackDeptFund/index.vue index 1f743228190058866787a3dfc93642407b0d2f80..437aa62765c57bad8c46531599df9abb98ac915b 100644 --- a/WebSite/src/views/yo-dept-bz/find/FindBackDeptFund/index.vue +++ b/WebSite/src/views/yo-dept-bz/find/FindBackDeptFund/index.vue @@ -18,7 +18,7 @@ import PageList from './components/PageList.vue'; import { reactive, toRefs } from 'vue'; export default { - components: { PageList}, + components: { PageList }, setup() { const data = reactive({ activeTab: 'first' diff --git a/WebSite/src/views/yo-dept-bz/first/IncomeApply/components/Detail.vue b/WebSite/src/views/yo-dept-bz/first/IncomeApply/components/Detail.vue index c2bc7a994fd1d102a0f18075a6c0b014d349073e..b7cfb4ab27124eac32e31ef4daa43e4218f2b016 100644 --- a/WebSite/src/views/yo-dept-bz/first/IncomeApply/components/Detail.vue +++ b/WebSite/src/views/yo-dept-bz/first/IncomeApply/components/Detail.vue @@ -42,7 +42,7 @@ export default { context.emit('switch-page', 'List'); }; const handleSave = (obj, id) => { - console.log('obj.model', obj.model.deptNO); + console.log('obj.model', obj); if (obj.incomeType == 'JIAOYU') { let arr = []; obj.model.tableData.forEach(item => { @@ -117,7 +117,8 @@ export default { }); } }; - const handleSubmit = (flowOutput, id) => { + const handleSubmit = async (flowOutput, id, obj) => { + await handleSave(obj, id); Api.submitIncome({ id: id, nodeIds: [flowOutput.nodeIds], @@ -130,6 +131,7 @@ export default { handleBack(); }); }; + const handleReturn = (flowOutput, id) => { Api.rollBackInComePlan({ id: id, diff --git a/WebSite/src/views/yo-dept-bz/first/PeopleFundApply/components/Detail.vue b/WebSite/src/views/yo-dept-bz/first/PeopleFundApply/components/Detail.vue index f8030b347309c6deec3f6b8760800756cd098b56..2f8c0af1540acc6efe26027078de89d3dd644ed0 100644 --- a/WebSite/src/views/yo-dept-bz/first/PeopleFundApply/components/Detail.vue +++ b/WebSite/src/views/yo-dept-bz/first/PeopleFundApply/components/Detail.vue @@ -118,7 +118,7 @@ export default { departmentName: handleSave[1].split('|')[1], departmentCode: handleSave[1].split('|')[0], projectLeaderCode: '', - planType: 'XIANGMUKU', + planType: 'YISHANG', projectLeaderId: 0, //璐熻矗浜篿d projectLeaderName: '', //璐熻矗浜哄悕绉� year: sessionStorage.getItem('year'), @@ -129,12 +129,13 @@ export default { getPersonDetail(res.data[0]); }); }; - const handleSubmit = (flowOutput, id) => { + const handleSubmit = async (flowOutput, id, handleSave) => { + await handleSave(handleSave); Api.submit({ id: id, nodeIds: [flowOutput.nodeIds], remake: flowOutput.remake - }).then(() => { + }).then(() => { Message.success('鎻愪氦鎴愬姛'); handleBack(); }); diff --git a/WebSite/src/views/yo-dept-bz/first/PeopleFundApply/components/List.vue b/WebSite/src/views/yo-dept-bz/first/PeopleFundApply/components/List.vue index 605f7a97e4222a209b5d3af102823c93c7ce93f0..78d113bfe2ef50e6c2ccd3aa43d5b627b6f20a6c 100644 --- a/WebSite/src/views/yo-dept-bz/first/PeopleFundApply/components/List.vue +++ b/WebSite/src/views/yo-dept-bz/first/PeopleFundApply/components/List.vue @@ -95,8 +95,8 @@ export default { Api.getPersonList({ pageIndex: data.pageNO, pageSize: data.pageSize, - year: data.year - // planType: 'YISHANG' + year: data.year, + planType: 'YISHANG' }).then(res => { data.tableData = res.data; data.tableData.forEach( diff --git a/WebSite/src/views/yo-dept-bz/first/ProjectFundApply/index.vue b/WebSite/src/views/yo-dept-bz/first/ProjectFundApply/index.vue index a39a8aca7e48c42fc59e1177c4342e4920a8a33a..2d7df9b716138553c44b60518358c22d579a058c 100644 --- a/WebSite/src/views/yo-dept-bz/first/ProjectFundApply/index.vue +++ b/WebSite/src/views/yo-dept-bz/first/ProjectFundApply/index.vue @@ -15,7 +15,7 @@ <script> import List from '@/views/yo-dept-bz/first/ProjectFundApply/components/List'; // import Detail from '@/views/yo-dept-bz/first/ProjectFundApply/components/Detail'; -import Detail from '@/views/yo-common/ProjectApplyPageList/detail.vue' +import Detail from '@/views/yo-common/ProjectApplyPageList/detail.vue'; import { reactive, toRefs } from 'vue'; export default { name: 'ProjectCheck', diff --git a/WebSite/src/views/yo-dept-bz/first/PuplicFundApply/components/Detail.vue b/WebSite/src/views/yo-dept-bz/first/PuplicFundApply/components/Detail.vue index 646a6698e236b81178c206de740a9fae2622af80..97073ba85c4afce9a5b4e1ac78bbc4134d748534 100644 --- a/WebSite/src/views/yo-dept-bz/first/PuplicFundApply/components/Detail.vue +++ b/WebSite/src/views/yo-dept-bz/first/PuplicFundApply/components/Detail.vue @@ -104,7 +104,7 @@ export default { data.applyInfo = res.data[0]; }); }; - const handleSave = (applyInfo) => { + const handleSave = applyInfo => { console.log(applyInfo); }; const handleSubmit = () => {}; diff --git a/WebSite/src/views/yo-dept-bz/first/PuplicFundApply/index.vue b/WebSite/src/views/yo-dept-bz/first/PuplicFundApply/index.vue index 72f2ff1d628e035811727d2c59d114b4634a2ef9..d1ec06de8d487e30aa6f22b2ee961ac2b4bdd632 100644 --- a/WebSite/src/views/yo-dept-bz/first/PuplicFundApply/index.vue +++ b/WebSite/src/views/yo-dept-bz/first/PuplicFundApply/index.vue @@ -15,7 +15,7 @@ <script> import List from '@/views/yo-dept-bz/first/PuplicFundApply/components/List'; // import Detail from '@/views/yo-dept-bz/first/PuplicFundApply/components/Detail'; -import Detail from '@/views/yo-common/PublicApplyPageList/detail.vue' +import Detail from '@/views/yo-common/PublicApplyPageList/detail.vue'; import { reactive, toRefs } from 'vue'; export default { name: 'ProjectCheck', diff --git a/WebSite/src/views/yo-dept-bz/quota/daily/index.vue b/WebSite/src/views/yo-dept-bz/quota/daily/index.vue index 9d943c95696ea2c48c31e453275ef94599dd1ab8..4ac00a3c356eb4163bc76a79b7c64181b6c36c39 100644 --- a/WebSite/src/views/yo-dept-bz/quota/daily/index.vue +++ b/WebSite/src/views/yo-dept-bz/quota/daily/index.vue @@ -4,6 +4,7 @@ <el-row :gutter="10"> <el-col :span="6"> <el-date-picker + :editable="false" v-model="checkInfo.year" type="year" @change="setTime" @@ -12,10 +13,19 @@ </el-date-picker> </el-col> <el-col :span="6"> - <el-input - placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" + <el-select + clearable + filterable v-model="checkInfo.deptName" - ></el-input> + placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" + > + <el-option + v-for="(v, index) in deptList" + :key="index" + :label="v.name" + :value="v.name" + ></el-option> + </el-select> </el-col> </el-row> <el-row class="mtop20"> @@ -35,7 +45,12 @@ <el-table-column label="骞翠唤" prop="year" /> <el-table-column label="閮ㄩ棬鍚嶇О" prop="deptName" /> <el-table-column label="閮ㄩ棬缂栧彿" prop="deptCode" /> - <el-table-column label="涓€涓婄敵鎶ラ噾棰�" prop="amountDeclared" /> + <el-table-column + label="涓€涓婄敵鎶ラ噾棰�" + prop="amountDeclared" + header-align="left" + align="right" + /> <el-table-column label="閮ㄩ棬鏍稿畾鏁�" prop="quotaMoney"> <template #default="scope"> <el-input @@ -61,12 +76,15 @@ import { reactive, toRefs, onMounted } from 'vue'; import { ElMessage } from 'element-plus'; import ProjectLibrary from '@/api/projectLibrary'; import Moment from 'moment'; +import { moneyFormat } from '@/utils'; export default { setup() { onMounted(() => { getQueryUserByPage(); + queryDeptPage(); }); const state = reactive({ + deptList: [], checkInfo: { pageIndex: 1, pageSize: 10, @@ -87,9 +105,19 @@ export default { const getQueryUserByPage = () => { ProjectLibrary.queryDeptQuotaDailyPage(state.checkInfo).then(res => { state.departInfo.tableData = res.data; + state.departInfo.tableData.forEach(v => { + v.amountDeclared = moneyFormat(v.amountDeclared, 2, ','); + }); state.departInfo.total = res.total; }); }; + const queryDeptPage = () => { + ProjectLibrary.queryDeptPage({ pageIndex: 1, pageSize: 9999 }).then( + res => { + state.deptList = res.data; + } + ); + }; const handleEdit = row => { ProjectLibrary.saveProjectDeptMoney({ id: row.id, @@ -114,7 +142,8 @@ export default { getQueryUserByPageFirst, handleEdit, setTime, - getQueryUserByPage + getQueryUserByPage, + queryDeptPage }; } }; diff --git a/WebSite/src/views/yo-dept-bz/quota/dept/index.vue b/WebSite/src/views/yo-dept-bz/quota/dept/index.vue index c3cdf01b8ab8b524c08af44b52289d594ee82a33..18eab0bd476894b2bf60274cdffef19a60a5f569 100644 --- a/WebSite/src/views/yo-dept-bz/quota/dept/index.vue +++ b/WebSite/src/views/yo-dept-bz/quota/dept/index.vue @@ -4,6 +4,7 @@ <el-row :gutter="10"> <el-col :span="6"> <el-date-picker + :editable="false" v-model="checkInfo.year" @change="setTime" type="year" @@ -12,10 +13,19 @@ </el-date-picker> </el-col> <el-col :span="6"> - <el-input - placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" + <el-select + clearable + filterable v-model="checkInfo.deptName" - ></el-input> + placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" + > + <el-option + v-for="(v, index) in deptList" + :key="index" + :label="v.name" + :value="v.name" + ></el-option> + </el-select> </el-col> </el-row> <el-row class="mtop20"> @@ -41,6 +51,8 @@ label="涓€涓婄敵鎶ラ噾棰�" prop="amountDeclared" width="150" + header-align="left" + align="right" /> <el-table-column label="閮ㄩ棬鏍稿畾鏁�" prop="quotaMoney"> <template #default="scope"> @@ -68,12 +80,15 @@ import { reactive, toRefs, onMounted } from 'vue'; import { ElMessage } from 'element-plus'; import ProjectLibrary from '@/api/projectLibrary'; import Moment from 'moment'; +import { moneyFormat } from '@/utils'; export default { setup() { onMounted(() => { getQueryUserByPage(); + queryDeptPage(); }); const state = reactive({ + deptList: [], checkInfo: { pageIndex: 1, pageSize: 10, @@ -90,14 +105,19 @@ export default { state.checkInfo.pageIndex = 1; getQueryUserByPage(); }; + const queryDeptPage = () => { + ProjectLibrary.queryDeptPage({ pageIndex: 1, pageSize: 9999 }).then( + res => { + state.deptList = res.data; + } + ); + }; const getQueryUserByPage = () => { ProjectLibrary.queryDeptQuotaProjectPage(state.checkInfo).then(res => { console.log('res', res); state.departInfo.tableData = res.data; state.departInfo.tableData.forEach(v => { - if (v.amountDeclared === 0) { - v.amountDeclared = '0.00'; - } + v.amountDeclared = moneyFormat(v.amountDeclared, 2, ','); }); state.departInfo.total = res.total; }); @@ -132,7 +152,8 @@ export default { handleEdit, init, setTime, - getQueryUserByPage + getQueryUserByPage, + queryDeptPage }; } }; diff --git a/WebSite/src/views/yo-dept-bz/quota/project/index.vue b/WebSite/src/views/yo-dept-bz/quota/project/index.vue index 06ad6fab402813cb59f128c4fb846ccc80c77936..1da8852db112293b2355f0609a9d802e4ecf63b0 100644 --- a/WebSite/src/views/yo-dept-bz/quota/project/index.vue +++ b/WebSite/src/views/yo-dept-bz/quota/project/index.vue @@ -4,6 +4,7 @@ <el-row :gutter="10"> <el-col :span="6"> <el-date-picker + :editable="false" @change="setTime" v-model="checkInfo.year" type="year" @@ -12,26 +13,40 @@ </el-date-picker> </el-col> <el-col :span="6"> - <el-input + <el-select + clearable + filterable + v-model="checkInfo.deptName" placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" + > + <el-option + v-for="(v, index) in deptList" + :key="index" + :label="v.name" + :value="v.name" + ></el-option> + </el-select> + <!-- <el-input + placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�1" v-model="checkInfo.deptName" - ></el-input> + ></el-input> --> </el-col> <el-col :span="6"> <el-input placeholder="涓€绾ч」鐩悕绉�" - v-model="checkInfo.one" + v-model="checkInfo.projectTypeName" ></el-input> </el-col> <el-col :span="6"> <el-input placeholder="浜岀骇椤圭洰鍚嶇О" - v-model="checkInfo.two" + v-model="checkInfo.projectName" ></el-input> </el-col> </el-row> <el-row class="mtop20"> <el-button type="primary" plain @click="init">鍒濆鍖栭」鐩�</el-button> + <el-button type="primary" plain @click="batch">鎵归噺杩涘叆涓€涓�</el-button> <el-button @click="getQueryUserByPageFirst">鏌ヨ</el-button> </el-row> </el-card> @@ -49,8 +64,14 @@ <el-table-column label="閮ㄩ棬缂栧彿" prop="deptCode" /> <el-table-column label="涓€绾ч」鐩�" prop="projectTypeName" /> <el-table-column label="浜岀骇椤圭洰" prop="projectName" /> - <el-table-column label="涓€涓婄敵鎶ラ噾棰�" prop="amountDeclared" /> - <el-table-column label="閮ㄩ棬鏍稿畾鏁�" prop="quotaMoney"> + <el-table-column + label="涓€涓婄敵鎶ラ噾棰�" + prop="amountDeclared" + width="150" + header-align="left" + align="right" + /> + <el-table-column label="椤圭洰鏍稿畾鏁�" prop="quotaMoney"> <template #default="scope"> <el-input v-model="scope.row.quotaMoney" @@ -75,12 +96,15 @@ import { reactive, toRefs, onMounted } from 'vue'; import { ElMessage } from 'element-plus'; import ProjectLibrary from '@/api/projectLibrary'; import Moment from 'moment'; +import { moneyFormat } from '@/utils'; export default { setup() { onMounted(() => { getQueryUserByPage(); + queryDeptPage(); }); const state = reactive({ + deptList: [], checkInfo: { pageIndex: 1, pageSize: 10, @@ -101,15 +125,30 @@ export default { const getQueryUserByPage = () => { ProjectLibrary.queryProjectQuotaPage(state.checkInfo).then(res => { state.departInfo.tableData = res.data; + state.departInfo.tableData.forEach(v => { + v.amountDeclared = moneyFormat(v.amountDeclared, 2, ','); + }); state.departInfo.total = res.total; }); }; + const queryDeptPage = () => { + ProjectLibrary.queryDeptPage({ pageIndex: 1, pageSize: 9999 }).then( + res => { + state.deptList = res.data; + } + ); + }; const init = () => { ProjectLibrary.initProject({}).then(() => { ElMessage.success('鍒濆鍖栨垚鍔�'); getQueryUserByPage(); }); }; + const batch = () => { + ProjectLibrary.enterAllProjectPlanType1({}).then(() => { + ElMessage.success('鎵归噺鍚屾鎴愬姛'); + }); + }; const handleEdit = row => { ProjectLibrary.saveProjectDeptMoney({ id: row.id, @@ -128,7 +167,9 @@ export default { init, setTime, getQueryUserByPageFirst, - getQueryUserByPage + getQueryUserByPage, + queryDeptPage, + batch }; } }; diff --git a/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/components/Detail.vue b/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/components/Detail.vue new file mode 100644 index 0000000000000000000000000000000000000000..9a74c8e9c3724b834463e779f2aef54f73e97843 --- /dev/null +++ b/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/components/Detail.vue @@ -0,0 +1,173 @@ +<template> + <div> + <PeopleFundApply + :canEdit="canEdit" + :row="applyInfo" + :flowInfo="flowInfo" + @handleBack="handleBack" + @handleSave="handleSave" + @handleSubmit="handleSubmit" + @handleReturn="handleReturn" + @handleCancel="handleCancel" + /> + </div> +</template> + +<script> +import { onMounted, reactive, toRefs } from 'vue'; +import Api from '@/api'; +import Message from 'element-plus/lib/el-message'; +import { ElMessage } from 'element-plus'; +import ProjectLibrary from '@/api/projectLibrary'; +export default { + props: { + canEdit: { + type: Boolean, + required: true + }, + row: { + type: Object, + default: () => { + return {}; + } + } + }, + setup(props, context) { + onMounted(() => { + if (props.row.id) { + getPersonDetail(props.row.id); + } else { + console.log('鏂板'); + } + }); + const data = reactive({ + flowInfo: { + nextSubmitNodes: [ + { + key: '1599725907064', + value: '绉戠爺澶勫鏍�' + } + ], + canRejectNodes: [ + { + key: '1599725907064', + value: '绉戠爺澶勫鏍�' + } + ], + user: '绯荤粺绠$悊鍛�', + state: '璐熻矗浜鸿ˉ鍏�', + flow: [ + { + actionTime: '2020骞�9鏈�11鏃�', + time: '17:30:43', + icon: '', + flowName: '绔嬮」', + attitude: '', + auditor: '绯荤粺绠$悊鍛�', + startNodeName: '寮€濮�', + endNodeName: '绉戠爺澶勭珛椤�', + flowState: '娴佺▼寮€濮�', + isPassed: 'False', + systemID: '00000000-0000-0000-0000-000000000000', + isEnable: false + }, + { + actionTime: '2020骞�9鏈�11鏃�', + time: '17:31:00', + icon: '', + flowName: '绔嬮」', + attitude: '', + auditor: '绯荤粺绠$悊鍛�', + startNodeName: '绉戠爺澶勭珛椤�', + endNodeName: '璐熻矗浜鸿ˉ鍏�', + flowState: '鎻愪氦', + isPassed: 'False', + systemID: '00000000-0000-0000-0000-000000000000', + isEnable: false + } + ], + btnStates: { + isShowSave: true, + isShowSubmit: true, + isShowReject: true, + isShowRevoke: false, + isShowChart: true, + isShowHistory: true, + isShowUser: true, + isShowState: true, + isShowCancel: false + } + }, + applyInfo: {} + }); + const getPersonDetail = id => { + Api.getPersonDetail(id).then(res => { + data.applyInfo = res.data; + }); + }; + const handleBack = () => { + context.emit('switch-page', 'List'); + }; + const handleSave = handleSave => { + handleSave[0].forEach(item => { + item.personSubjectName = item.personFundName; + }); + Api.savePerson({ + projectName: '浜哄憳缁忚垂', + id: handleSave[2][0] ? handleSave[2][0].id : '', + departmentName: handleSave[1].split('|')[1], + departmentCode: handleSave[1].split('|')[0], + projectLeaderCode: '', + planType: 'ERSHANG', + projectLeaderId: 0, //璐熻矗浜篿d + projectLeaderName: '', //璐熻矗浜哄悕绉� + year: sessionStorage.getItem('year'), + personSubjectList: handleSave[0] + }).then(res => { + Message.success('淇濆瓨鎴愬姛'); + console.log('1234', res.data[0]); + getPersonDetail(res.data[0]); + }); + }; + const handleSubmit = (flowOutput, id) => { + Api.submit({ + id: id, + nodeIds: [flowOutput.nodeIds], + remake: flowOutput.remake + }).then(() => { + Message.success('鎻愪氦鎴愬姛'); + handleBack(); + }); + }; + const handleCancel = () => { + ProjectLibrary.reCallProjectPlan(props.row.id).then(() => { + ElMessage.success('鍥炴挙鎴愬姛'); + if (props.row.id) { + getPersonDetail(props.row.id); + } + }); + }; + const handleReturn = (flowOutput, id) => { + Api.cancel({ + id: id, + nodeIds: [flowOutput.nodeIds], + remake: flowOutput.remake + }).then(() => { + Message.success('鎾ゅ洖鎴愬姛'); + handleBack(); + }); + }; + return { + ...toRefs(data), + handleBack, + getPersonDetail, + handleCancel, + handleSave, + handleSubmit, + handleReturn + }; + } +}; +</script> + +<style></style> diff --git a/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/components/List.vue b/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/components/List.vue index de950a67c2f06755c49d9900e7a1120044eeebd2..4ca16ec38293f57d74a3779391b48537f420293e 100644 --- a/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/components/List.vue +++ b/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/components/List.vue @@ -23,6 +23,9 @@ v-if="switch1 && switch2" >鏂板缓</el-button > + <!-- <el-button plain type="primary" @click="connet()" + >鍚屾涓€涓�</el-button + > --> <el-button plain type="primary" disabled>鎵归噺鎻愪氦</el-button> <el-button plain type="warning" disabled>鎵归噺鎾ゅ洖</el-button> <el-button plain type="danger" @click="deletePerson" @@ -78,7 +81,6 @@ export default { selectedList: [], tableConfig: [ { prop: 'year', label: '骞翠唤' }, - { prop: 'projectType', label: '椤圭洰绫诲瀷' }, { prop: 'projectName', label: '椤圭洰鍚嶇О' }, { prop: 'departmentName', label: '閮ㄩ棬鍚嶇О' }, { prop: 'departmentCode', label: '閮ㄩ棬缂栧彿' }, @@ -90,6 +92,12 @@ export default { ], primaryKey: 'id' }); + const connet = () => { + ProjectLibrary.enterPersonProjectPlan({}).then(res => { + console.log(res); + getPersonList(); + }); + }; const getPersonList = () => { Api.getPersonList({ pageIndex: data.pageNO, @@ -151,7 +159,8 @@ export default { navToDetail, pageInfoChange, createPeopleApply, - deletePerson + deletePerson, + connet }; } }; diff --git a/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/index.vue b/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/index.vue index e902d5ac06aaf2791e058b75935c8524f4f9b1dd..cf21a58455da2ea869c87b575ec431d389223d92 100644 --- a/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/index.vue +++ b/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/index.vue @@ -13,7 +13,7 @@ <script> import List from '@/views/yo-dept-bz/second/SecondPeopleFundApply/components/List'; -import Detail from '@/views/yo-dept-bz/first/PeopleFundApply/components/Detail'; +import Detail from '@/views/yo-dept-bz/second/SecondPeopleFundApply/components/Detail'; import { reactive, toRefs } from 'vue'; export default { name: 'ProjectCheck', diff --git a/WebSite/src/views/yo-dept-bz/second/SecondProjectFundApply/index.vue b/WebSite/src/views/yo-dept-bz/second/SecondProjectFundApply/index.vue index 4a25e9dd6c19aa919156073f01df6bed68ab38a6..e002f41647e2befa9176dc800d103e90d3b28fb0 100644 --- a/WebSite/src/views/yo-dept-bz/second/SecondProjectFundApply/index.vue +++ b/WebSite/src/views/yo-dept-bz/second/SecondProjectFundApply/index.vue @@ -15,7 +15,7 @@ <script> import List from '@/views/yo-dept-bz/second/SecondProjectFundApply/components/List'; // import Detail from '@/views/yo-dept-bz/first/ProjectFundApply/components/Detail'; -import Detail from '@/views/yo-common/ProjectApplyPageList/detail.vue' +import Detail from '@/views/yo-common/ProjectApplyPageList/detail.vue'; import { reactive, toRefs } from 'vue'; export default { name: 'ProjectCheck', diff --git a/WebSite/src/views/yo-dept-bz/second/SecondPuplicFundApply/components/List.vue b/WebSite/src/views/yo-dept-bz/second/SecondPuplicFundApply/components/List.vue index 3c08909432606a25447923db0be733cb691ba12c..f5b1170d174d923c1fb35c8c1e01b9b01996c201 100644 --- a/WebSite/src/views/yo-dept-bz/second/SecondPuplicFundApply/components/List.vue +++ b/WebSite/src/views/yo-dept-bz/second/SecondPuplicFundApply/components/List.vue @@ -28,6 +28,9 @@ v-if="switch1 && switch2" >鏂板缓</el-button > + <el-button plain type="primary" @click="connet()" + >鍚屾涓€涓�</el-button + > <el-button plain type="primary" disabled>鎵归噺鎻愪氦</el-button> <el-button plain type="warning" disabled>鎵归噺鎾ゅ洖</el-button> <el-button plain type="danger" @click="deletePubliic"> @@ -44,7 +47,7 @@ :tableData="tableData" :tableConfig="tableConfig" :primaryKey="primaryKey" - :selectedList="selectedList" + v-model:selectedList="selectedList" @pageinfo-change="pageInfoChange" > <template #tableColumn="{scope}"> @@ -119,12 +122,19 @@ export default { row ); }; + const connet = () => { + ProjectLibrary.enterPublicProjectPlan({}).then(res => { + console.log(res); + getPublicList(); + }); + }; const pageInfoChange = val => { data.pageSize = val.limit; data.pageNO = val.page; getPublicList(); }; const deletePubliic = () => { + console.log(data.selectedList, '0000'); let arr = []; data.selectedList.forEach(item => { arr.push(item.id); @@ -157,7 +167,8 @@ export default { navToDetail, pageInfoChange, deletePubliic, - createPublicApply + createPublicApply, + connet }; } }; diff --git a/WebSite/src/views/yo-dept-bz/second/SecondPuplicFundApply/index.vue b/WebSite/src/views/yo-dept-bz/second/SecondPuplicFundApply/index.vue index f9cecf56612e67c92c1b982e8cff7a9e8670e8bc..dcb66593e3975b5d8a0a150ae22615b09f0d5315 100644 --- a/WebSite/src/views/yo-dept-bz/second/SecondPuplicFundApply/index.vue +++ b/WebSite/src/views/yo-dept-bz/second/SecondPuplicFundApply/index.vue @@ -15,7 +15,7 @@ <script> import List from '@/views/yo-dept-bz/second/SecondPuplicFundApply/components/List'; // import Detail from '@/views/yo-dept-bz/first/PuplicFundApply/components/Detail'; -import Detail from '@/views/yo-common/PublicApplyPageList/detail.vue' +import Detail from '@/views/yo-common/PublicApplyPageList/detail.vue'; import { reactive, toRefs } from 'vue'; export default { name: 'ProjectCheck', diff --git a/WebSite/src/views/yo-dept-sp/financial-monitoring/maintenance/index.vue b/WebSite/src/views/yo-dept-sp/financial-monitoring/maintenance/index.vue index 842221a0d7a8157ff85cb800d2e680af0d9d73f2..69c81886b62b7860e082b399c9e06eef2b4f5d60 100644 --- a/WebSite/src/views/yo-dept-sp/financial-monitoring/maintenance/index.vue +++ b/WebSite/src/views/yo-dept-sp/financial-monitoring/maintenance/index.vue @@ -14,7 +14,7 @@ <script> import List from '@/views/yo-dept-sp/financial-monitoring/maintenance/components/List'; // import Detail from '@/views/yo-dept-sp/financial-monitoring/maintenance/components/Detail'; -import Detail from '@/views/yo-common/ProjectApplyPageList/detail.vue' +import Detail from '@/views/yo-common/ProjectApplyPageList/detail.vue'; import { reactive, toRefs } from 'vue'; export default { name: 'ProjectCheck', diff --git a/WebSite/src/views/yo-dept-sp/people-fund-approval/FinanceApproval/components/List.vue b/WebSite/src/views/yo-dept-sp/people-fund-approval/FinanceApproval/components/List.vue index 8a008c012ca0e707b3650644907285a500e436b4..51050a58729222619669d74facebce63d6f80f11 100644 --- a/WebSite/src/views/yo-dept-sp/people-fund-approval/FinanceApproval/components/List.vue +++ b/WebSite/src/views/yo-dept-sp/people-fund-approval/FinanceApproval/components/List.vue @@ -40,7 +40,7 @@ export default { const getPageList = async (params, callback) => { const res = await Api.peopleGetPageList(params); callback(res); - } + }; return { ...toRefs(data), navToDetail, diff --git a/WebSite/src/views/yo-dept-sp/people-fund-approval/HrApproval/components/List.vue b/WebSite/src/views/yo-dept-sp/people-fund-approval/HrApproval/components/List.vue index 17925d8525cd4707ec196ec8276f4e462bdac723..bcbc4dfc76dbb61211fa2496a5d354b8c3986e7f 100644 --- a/WebSite/src/views/yo-dept-sp/people-fund-approval/HrApproval/components/List.vue +++ b/WebSite/src/views/yo-dept-sp/people-fund-approval/HrApproval/components/List.vue @@ -38,9 +38,7 @@ export default { context.emit('switch-page', 'Detail', false, row); }; const getPageList = async (params, callback) => { - const res = await Api.peopleGetPageList( - params - ); + const res = await Api.peopleGetPageList(params); callback(res); }; return { diff --git a/WebSite/src/views/yo-dept-sp/project-fund-approval/BackDeptApproval/index.vue b/WebSite/src/views/yo-dept-sp/project-fund-approval/BackDeptApproval/index.vue index 970052e0eabafdaeddd79e83cda9ea6563f108a9..459a0fc5be0315b96dba83a3334246c806532503 100644 --- a/WebSite/src/views/yo-dept-sp/project-fund-approval/BackDeptApproval/index.vue +++ b/WebSite/src/views/yo-dept-sp/project-fund-approval/BackDeptApproval/index.vue @@ -14,7 +14,7 @@ <script> import List from '@/views/yo-dept-sp/project-fund-approval/BackDeptApproval/components/List'; // import Detail from '@/views/yo-dept-sp/project-fund-approval/BackDeptApproval/components/Detail'; -import Detail from '@/views/yo-common/ProjectApplyPageList/detail.vue' +import Detail from '@/views/yo-common/ProjectApplyPageList/detail.vue'; import { reactive, toRefs } from 'vue'; export default { name: 'ProjectCheck', diff --git a/WebSite/src/views/yo-dept-sp/project-fund-approval/FinanceApproval/index.vue b/WebSite/src/views/yo-dept-sp/project-fund-approval/FinanceApproval/index.vue index 5d1d3afaa7c429541189b2e89e4d1a79d27d89f9..fb4ad4162fa29343290bfeb41396a356866c4a33 100644 --- a/WebSite/src/views/yo-dept-sp/project-fund-approval/FinanceApproval/index.vue +++ b/WebSite/src/views/yo-dept-sp/project-fund-approval/FinanceApproval/index.vue @@ -14,7 +14,7 @@ <script> import List from '@/views/yo-dept-sp/project-fund-approval/FinanceApproval/components/List'; // import Detail from '@/views/yo-dept-sp/project-fund-approval/FinanceApproval/components/Detail'; -import Detail from '@/views/yo-common/ProjectApplyPageList/detail.vue' +import Detail from '@/views/yo-common/ProjectApplyPageList/detail.vue'; import { reactive, toRefs } from 'vue'; export default { name: 'ProjectCheck', diff --git a/WebSite/src/views/yo-dept-sp/project-fund-approval/LeaderApproval/index.vue b/WebSite/src/views/yo-dept-sp/project-fund-approval/LeaderApproval/index.vue index cd3b4783fc3ac0b7c0e2da90a891e4f79429c063..a3b4dbe7f4983dfdb3dc222d22d49d4229f6674e 100644 --- a/WebSite/src/views/yo-dept-sp/project-fund-approval/LeaderApproval/index.vue +++ b/WebSite/src/views/yo-dept-sp/project-fund-approval/LeaderApproval/index.vue @@ -14,7 +14,7 @@ <script> import List from '@/views/yo-dept-sp/project-fund-approval/LeaderApproval/components/List'; // import Detail from '@/views/yo-dept-sp/project-fund-approval/LeaderApproval/components/Detail'; -import Detail from '@/views/yo-common/ProjectApplyPageList/detail.vue' +import Detail from '@/views/yo-common/ProjectApplyPageList/detail.vue'; import { reactive, toRefs } from 'vue'; export default { name: 'ProjectCheck', diff --git a/WebSite/src/views/yo-dept-sp/project-fund-approval/SchoolLeaderApproval/components/List.vue b/WebSite/src/views/yo-dept-sp/project-fund-approval/SchoolLeaderApproval/components/List.vue index bc97f4709790269f10a727297d9005212afe99b1..f78601be6d42289c3866219c5840296c6531f66f 100644 --- a/WebSite/src/views/yo-dept-sp/project-fund-approval/SchoolLeaderApproval/components/List.vue +++ b/WebSite/src/views/yo-dept-sp/project-fund-approval/SchoolLeaderApproval/components/List.vue @@ -1,10 +1,6 @@ <template> <div class="app-container"> - <el-tabs - v-model="activeTab" - type="border-card" - stretch - > + <el-tabs v-model="activeTab" type="border-card" stretch> <el-tab-pane label="椤圭洰搴�" name="XIANGMUKU" lazy> <page-list :planType="activeTab" @@ -48,9 +44,11 @@ export default { context.emit('switch-page', 'Detail', false, row); }; const getPageList = async (params, callback) => { - const res = await Api.queryProjectInfoPlanPageByCurrentUserRelevantDept(params); + const res = await Api.queryProjectInfoPlanPageByCurrentUserRelevantDept( + params + ); callback(res); - } + }; return { ...toRefs(data), navToDetail, diff --git a/WebSite/src/views/yo-dept-sp/project-fund-approval/SchoolLeaderApproval/index.vue b/WebSite/src/views/yo-dept-sp/project-fund-approval/SchoolLeaderApproval/index.vue index aed39baebcae676e7f7d5535a6bd3338c033e2f0..9e92f2be9049cdc99cf5a611fc2f4113e02e7cc3 100644 --- a/WebSite/src/views/yo-dept-sp/project-fund-approval/SchoolLeaderApproval/index.vue +++ b/WebSite/src/views/yo-dept-sp/project-fund-approval/SchoolLeaderApproval/index.vue @@ -14,7 +14,7 @@ <script> import List from '@/views/yo-dept-sp/project-fund-approval/SchoolLeaderApproval/components/List'; // import Detail from '@/views/yo-dept-sp/project-fund-approval/SchoolLeaderApproval/components/Detail'; -import Detail from '@/views/yo-common/ProjectApplyPageList/detail.vue' +import Detail from '@/views/yo-common/ProjectApplyPageList/detail.vue'; import { reactive, toRefs } from 'vue'; export default { name: 'ProjectCheck', diff --git a/WebSite/src/views/yo-dept-sp/public-fund-approval/FinanceApproval/index.vue b/WebSite/src/views/yo-dept-sp/public-fund-approval/FinanceApproval/index.vue index abfb0dde65da45a3bd21b758b676de3d03ddf738..67bccfdc3a9780899a76c83b1ee3cfe5d063ab3f 100644 --- a/WebSite/src/views/yo-dept-sp/public-fund-approval/FinanceApproval/index.vue +++ b/WebSite/src/views/yo-dept-sp/public-fund-approval/FinanceApproval/index.vue @@ -14,7 +14,7 @@ <script> import List from '@/views/yo-dept-sp/public-fund-approval/FinanceApproval/components/List'; // import Detail from '@/views/yo-dept-sp/public-fund-approval/FinanceApproval/components/Detail'; -import Detail from '@/views/yo-common/PublicApplyPageList/detail.vue' +import Detail from '@/views/yo-common/PublicApplyPageList/detail.vue'; import { reactive, toRefs } from 'vue'; export default { name: 'ProjectCheck', diff --git a/WebSite/src/views/yo-dept-sp/public-fund-approval/LeaderApproval/index.vue b/WebSite/src/views/yo-dept-sp/public-fund-approval/LeaderApproval/index.vue index d9c3d3640596ab44aa61ce081024d425595a524a..b5d7f536fbd747728f55332a3a28aa53dd235983 100644 --- a/WebSite/src/views/yo-dept-sp/public-fund-approval/LeaderApproval/index.vue +++ b/WebSite/src/views/yo-dept-sp/public-fund-approval/LeaderApproval/index.vue @@ -14,7 +14,7 @@ <script> import List from '@/views/yo-dept-sp/public-fund-approval/LeaderApproval/components/List'; // import Detail from '@/views/yo-dept-sp/public-fund-approval/LeaderApproval/components/Detail'; -import Detail from '@/views/yo-common/PublicApplyPageList/detail.vue' +import Detail from '@/views/yo-common/PublicApplyPageList/detail.vue'; import { reactive, toRefs } from 'vue'; export default { name: 'ProjectCheck', diff --git a/WebSite/src/views/yo-dept-sp/public-fund-approval/SchoolLeaderApproval/index.vue b/WebSite/src/views/yo-dept-sp/public-fund-approval/SchoolLeaderApproval/index.vue index d0787d6c66ec39401a235b8a7bb2a1bc15da199f..2e60a15d95a62443182184d696a351ef7e20e15a 100644 --- a/WebSite/src/views/yo-dept-sp/public-fund-approval/SchoolLeaderApproval/index.vue +++ b/WebSite/src/views/yo-dept-sp/public-fund-approval/SchoolLeaderApproval/index.vue @@ -14,7 +14,7 @@ <script> import List from '@/views/yo-dept-sp/public-fund-approval/SchoolLeaderApproval/components/List'; // import Detail from '@/views/yo-dept-sp/public-fund-approval/SchoolLeaderApproval/components/Detail'; -import Detail from '@/views/yo-common/PublicApplyPageList/detail.vue' +import Detail from '@/views/yo-common/PublicApplyPageList/detail.vue'; import { reactive, toRefs } from 'vue'; export default { name: 'ProjectCheck',